topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Thursday March 28, 2024, 11:52 am
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - p3lb0x [ switch to compact view ]

Pages: [1] 2next
1
General Software Discussion / Fruits of my gamejam labour
« on: October 17, 2017, 12:58 AM »
At the behest of Mouser I am gonna post the results of a small local gamejam I joined by the Organization Coding Pirates here in Denmark.

Coding Pirates are a volunteer organization that does community work with kids and young adults to get them interested in technology, programming and mixing these with more artistic endeavors (Like game making or visual arts). I hadn't actually heard of them before, but I saw the event through facebook and decided to join in.

The theme of the gamejam was mirrored from what they had helped the kids in their program work on for the last half year, but we were only afforded 12 hours (actually only 11 hours since the last hour was for a presentation). That theme being "feelings", completely open to interpretation.

The group I was in decided on "The feeling of confusion" as our interpretation, resulting in a maze game that tried to confuse the player through the use of rotating the playing field and teleporters. The game was made in Unity, something I've been dabbling in recently and hopefully can produce a small game in for my NANY. Lots of corners were cut, due to a mixture of us not being the most proficient at Unity, the other programmer in the group never having written any C# and time constraints. We did however produce a fully functional game with well defined gameplay elements and no bugs (as far as I know anyway).

bacon.png

The goal of Squared? (Stylized as "?²") we made is to find 4 keys and reach the treasure behind the locked door.

1.jpg

Gameplay is really simple, you walk around the maze with limited vision, only being able to see neighboring rooms. Compass rooms reorient the gameworld and teleporters move you to another place in the maze, there's also glyph rooms that help you create a mental map (that the rotations hopefully messes with).

We ended up being tied for last place however, because the game wasn't eye catching compared to the other games (that you can also download here)

2
Community Giveaways / Shadow of Mordor and Neon Chrome
« on: September 20, 2017, 05:40 PM »
I have a spare copy of these two games from a recent Humble Bundle, anyone want them?
Middle-earth: Shadow of Mordor Game of the Year Edition
Neon Chrome


3
N.A.N.Y. 2018 / NANY 2018 Pledge: Some kind of unity game
« on: September 10, 2017, 09:44 AM »
I have been messing around in unity and I think I can churn out a small game. Which I am gonna do!

4
Community Giveaways / TIS-100, a programming game
« on: December 06, 2016, 05:39 PM »
Hey! I got an extra copy of TIS-100 due once more, to bundle overlap. If anyone is interested in solving some programming problems with something that can be be described as multithreaded assembly, give me a shout.

5
General Software Discussion / Looking back (Some of your first code)
« on: January 20, 2016, 08:02 PM »
So, I recently stumbled on my first real C project, back from high school. It is pretty bad. And I thought it would be fun to share with you guys and maybe get to see some of the first code you guys did in whatever capacity you can find. I also have code from the first major Lua project I did. Both were written around the same time.

C code:
The below code is for a master microcontroller that calculates game of life and sends the "game" field to another microcontroller that had a charlieplexed 8x7 led display that displayed it. A video of it in action can be found here
comments are translated from danish and I have commented on the comments in parentheses (pastebin link)
Spoiler
#include <htc.h> //PIC hardware mapping
#include <delay.c>
#include <I2CMaster.h>
#include <stdlib.h>
//config bits

__CONFIG(HS & PWRTDIS & WDTDIS & LVPDIS);

/////////// Constants ///////////
#define LEDPLADE8PIN 1 // Defines how many light plates with 8pins that's attached (Not ever actually used, was supposed to be able to handle more than one)

/////////// Bit manipulation functions ///////////

void clear_bit(unsigned char *x, char bitNum){
*x &= ~(1 << bitNum);
}
void set_bit(unsigned char *x, char bitNum) {
*x |= (1 << bitNum);
}
unsigned char get_bit(unsigned char x, char bitNum) {
return x & (1 << bitNum);
}

/////////////// Function prototypes for patterns //////////////////

void glider(void);
void lwss(void);
void toad(void);
void kasse(void);
void blinker(void);
void randompat(void);

/////////// Variables ///////////

////////// GAME OF LIFE ///////////

char LifeGameBuf[2][7];
char LiveCount;
char FirstEvol;
char Pattern;
char NewPattern;

///////////////////////////////////

char i; // Indexes
char j;

char I2C_Address; // Defines the i2c address we want to write to
char I2C_i; // Defines what type of byte we want to send (I don't remember what this is, and it is apparently unused)

/////////// Main program ///////////
void main(void){ // Start

srand(70);

/////////// Opsætning ///////////

/////////// Opsætning af SSP modul ///////////

TRISC = 0b00011000; // Sets port C pin 3 and 4 to be inputs
SSPADD = 39; // Defines the baudrate of the i2c communications
SSPCON = 0b00101000; // Configuration and start of SSP module
SSPCON2 = 0b00000000;
SSPSTAT = 0b11000000;
SSPIE = 1; // Enable interrupt on i2c communication start
SSPIF = 0;

/////////// Setup of interrupts ///////////

PEIE = 1;
GIE = 1; // Global interrupt enable

/////////// GAME OF LIFE ///////////

LiveCount = 0;
Pattern = 0;
NewPattern = 0;

glider();

/////////// Runs in a loop from here (Obviously not) ///////////

/////////// Pattern change ///////////
TRISD = 0b00000010; // Set pins on port D as input and output
while(!0){
PORTD = 0b00001000; // Drive current to RD3 pin
if(RD3 == 0){ // I HAVE NO IDEA WHY THIS WORKS (Basically, the code here sets a pin, then checks if it is set. It worked, I still have no idea why)
Pattern = Pattern + 1;
NewPattern = 1;
DelayMs(255);
}
if(NewPattern){
if(Pattern > 5) Pattern = 0;
if(Pattern == 0) glider();
else if(Pattern == 1) lwss();
else if(Pattern == 2) toad();
else if(Pattern == 3) kasse();
else if(Pattern == 4) blinker();
else if(Pattern == 5) randompat();
NewPattern = 0;
}

//////////////// Blink light to indicate when the next generations of game of life is calculated /////////////////
PORTD = 0;
DelayMs(50);
PORTD = 1;

//////////////// Game of Life /////////////////
if(!FirstEvol){
for(i=0; i<7; i++){
for(j=0; j<8; j++){
if(i == 0){
if(j == 0){
if(get_bit(LifeGameBuf[0][i],j+1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i],7)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][6],j+1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][6],j)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][6],7)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i+1],j+1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i+1],j)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i+1],7)) LiveCount = LiveCount + 1;
}
else if (j == 7){
if(get_bit(LifeGameBuf[0][i],0)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i],j-1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][6],0)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][6],j)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][6],j-1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i+1],0)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i+1],j)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i+1],j-1)) LiveCount = LiveCount + 1;
}
else{
if(get_bit(LifeGameBuf[0][i],j+1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i],j-1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][6],j+1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][6],j)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][6],j-1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i+1],j+1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i+1],j)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i+1],j-1)) LiveCount = LiveCount + 1;
}
}
else if(i == 6){
if(j == 0){
if(get_bit(LifeGameBuf[0][i],j+1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i],7)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i-1],j+1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i-1],j)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i-1],7)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][0],j+1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][0],j)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][0],7)) LiveCount = LiveCount + 1;
}
else if (j == 7){
if(get_bit(LifeGameBuf[0][i],0)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i],j-1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i-1],0)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i-1],j)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i-1],j-1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][0],0)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][0],j)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][0],j-1)) LiveCount = LiveCount + 1;
}
else{
if(get_bit(LifeGameBuf[0][i],j+1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i],j-1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i-1],j+1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i-1],j)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i-1],j-1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][0],j+1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][0],j)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][0],j-1)) LiveCount = LiveCount + 1;
}
}
else{
if(j == 0){
if(get_bit(LifeGameBuf[0][i],j+1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i],7)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i-1],j+1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i-1],j)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i-1],7)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i+1],j+1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i+1],j)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i+1],7)) LiveCount = LiveCount + 1;
}
else if (j == 7){
if(get_bit(LifeGameBuf[0][i],0)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i],j-1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i-1],0)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i-1],j)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i-1],j-1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i+1],0)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i+1],j)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i+1],j-1)) LiveCount = LiveCount + 1;
}
else{
if(get_bit(LifeGameBuf[0][i],j+1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i],j-1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i-1],j+1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i-1],j)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i-1],j-1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i+1],j+1)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i+1],j)) LiveCount = LiveCount + 1;
if(get_bit(LifeGameBuf[0][i+1],j-1)) LiveCount = LiveCount + 1;
}
}

if(LiveCount < 2){clear_bit(&LifeGameBuf[1][i],j);}
else if(LiveCount == 2 && get_bit(LifeGameBuf[1][i],j) == 1){set_bit(&LifeGameBuf[1][i],j);}
else if(LiveCount == 2 && get_bit(LifeGameBuf[1][i],j) == 0){clear_bit(&LifeGameBuf[1][i],j);}
else if(LiveCount == 3){set_bit(&LifeGameBuf[1][i],j);}
else if(LiveCount > 3){clear_bit(&LifeGameBuf[1][i],j);}
LiveCount = 0;

}
}
for(i=0; i<7; i++){
LifeGameBuf[0][i] = LifeGameBuf[1][i];
}
}
FirstEvol = 0; // No longer first generation

////////////// SEND TO DISPLAY /////////////////

i2c_Start();
i2c_Address(15,0);
i2c_Write(LifeGameBuf[0][0]);
i2c_Write(LifeGameBuf[0][1]);
i2c_Write(LifeGameBuf[0][2]);
i2c_Write(LifeGameBuf[0][3]);
i2c_Write(LifeGameBuf[0][4]);
i2c_Write(LifeGameBuf[0][5]);
i2c_Write(LifeGameBuf[0][6]);
i2c_Stop();
}
} // End

static void interrupt isr(void)
{

if(SSPIF){ // Was it a i2c interrupt?
SSPIF = 0; // Clear SSP interrupt flag
}
}

/////////// Game of Life pattern funftions ///////////

void glider() {

LifeGameBuf[0][0] = 0b00100000;
LifeGameBuf[0][1] = 0b10100000;
LifeGameBuf[0][2] = 0b01100000;
LifeGameBuf[0][3] = 0b00000000;
LifeGameBuf[0][4] = 0b00000000;
LifeGameBuf[0][5] = 0b00000000;
LifeGameBuf[0][6] = 0b00000000;

LifeGameBuf[1][0] = LifeGameBuf[0][0];
LifeGameBuf[1][1] = LifeGameBuf[0][1];
LifeGameBuf[1][2] = LifeGameBuf[0][2];
LifeGameBuf[1][3] = LifeGameBuf[0][3];
LifeGameBuf[1][4] = LifeGameBuf[0][4];
LifeGameBuf[1][5] = LifeGameBuf[0][5];
LifeGameBuf[1][6] = LifeGameBuf[0][6];

FirstEvol = 1;
}


void lwss() {

LifeGameBuf[0][0] = 0b00000000;
LifeGameBuf[0][1] = 0b00000000;
LifeGameBuf[0][2] = 0b00110000;
LifeGameBuf[0][3] = 0b11011000;
LifeGameBuf[0][4] = 0b11110000;
LifeGameBuf[0][5] = 0b01100000;
LifeGameBuf[0][6] = 0b00000000;

LifeGameBuf[1][0] = LifeGameBuf[0][0];
LifeGameBuf[1][1] = LifeGameBuf[0][1];
LifeGameBuf[1][2] = LifeGameBuf[0][2];
LifeGameBuf[1][3] = LifeGameBuf[0][3];
LifeGameBuf[1][4] = LifeGameBuf[0][4];
LifeGameBuf[1][5] = LifeGameBuf[0][5];
LifeGameBuf[1][6] = LifeGameBuf[0][6];

FirstEvol = 1;
}

void toad() {

LifeGameBuf[0][0] = 0b00000000;
LifeGameBuf[0][1] = 0b00000000;
LifeGameBuf[0][2] = 0b00000000;
LifeGameBuf[0][3] = 0b00111000;
LifeGameBuf[0][4] = 0b00011100;
LifeGameBuf[0][5] = 0b00000000;
LifeGameBuf[0][6] = 0b00000000;

LifeGameBuf[1][0] = LifeGameBuf[0][0];
LifeGameBuf[1][1] = LifeGameBuf[0][1];
LifeGameBuf[1][2] = LifeGameBuf[0][2];
LifeGameBuf[1][3] = LifeGameBuf[0][3];
LifeGameBuf[1][4] = LifeGameBuf[0][4];
LifeGameBuf[1][5] = LifeGameBuf[0][5];
LifeGameBuf[1][6] = LifeGameBuf[0][6];

FirstEvol = 1;
}

void kasse() {

LifeGameBuf[0][0] = 0b00000000;
LifeGameBuf[0][1] = 0b00110000;
LifeGameBuf[0][2] = 0b01001000;
LifeGameBuf[0][3] = 0b01001000;
LifeGameBuf[0][4] = 0b00110000;
LifeGameBuf[0][5] = 0b00000000;
LifeGameBuf[0][6] = 0b00000000;

LifeGameBuf[1][0] = LifeGameBuf[0][0];
LifeGameBuf[1][1] = LifeGameBuf[0][1];
LifeGameBuf[1][2] = LifeGameBuf[0][2];
LifeGameBuf[1][3] = LifeGameBuf[0][3];
LifeGameBuf[1][4] = LifeGameBuf[0][4];
LifeGameBuf[1][5] = LifeGameBuf[0][5];
LifeGameBuf[1][6] = LifeGameBuf[0][6];

FirstEvol = 1;
}

void blinker() {

LifeGameBuf[0][0] = 0b01000000;
LifeGameBuf[0][1] = 0b01000000;
LifeGameBuf[0][2] = 0b01000000;
LifeGameBuf[0][3] = 0b00001000;
LifeGameBuf[0][4] = 0b00001000;
LifeGameBuf[0][5] = 0b00001000;
LifeGameBuf[0][6] = 0b00000000;

LifeGameBuf[1][0] = LifeGameBuf[0][0];
LifeGameBuf[1][1] = LifeGameBuf[0][1];
LifeGameBuf[1][2] = LifeGameBuf[0][2];
LifeGameBuf[1][3] = LifeGameBuf[0][3];
LifeGameBuf[1][4] = LifeGameBuf[0][4];
LifeGameBuf[1][5] = LifeGameBuf[0][5];
LifeGameBuf[1][6] = LifeGameBuf[0][6];

FirstEvol = 1;
}

void randompat() {

LifeGameBuf[0][0] = (char)rand();
LifeGameBuf[0][1] = (char)rand();
LifeGameBuf[0][2] = (char)rand();
LifeGameBuf[0][3] = (char)rand();
LifeGameBuf[0][4] = (char)rand();
LifeGameBuf[0][5] = (char)rand();
LifeGameBuf[0][6] = (char)rand();

LifeGameBuf[1][0] = LifeGameBuf[0][0];
LifeGameBuf[1][1] = LifeGameBuf[0][1];
LifeGameBuf[1][2] = LifeGameBuf[0][2];
LifeGameBuf[1][3] = LifeGameBuf[0][3];
LifeGameBuf[1][4] = LifeGameBuf[0][4];
LifeGameBuf[1][5] = LifeGameBuf[0][5];
LifeGameBuf[1][6] = LifeGameBuf[0][6];

FirstEvol = 1;
}

Fun things:
while(!0)
The "I HAVE NO IDEA WHY THIS WORKS" comment

Lua code:
The below code is for a randomized gun generation thing for the game Cortex Command, a video of which can be found here. If I recall correctly, it was also my first NANY.
removed a few new lines, otherwise did nothing (pastebin link)
Spoiler
function Create(self)

-- Initialize variables and timers

self.smgbodylist = {};
self.smgbarrellist = {};
self.smgmaglist = {};
self.smgbulletlist = {};
self.smgsoundlist = {};
self.smgsoundlist["fire"] = {};
self.smgsoundlist["reload"] = {};
self.smgmuzzlelist = {};

self.projectileteam = -1;
self.allmodulesfound = false;
self.ammocounter = 0;
self.reloading = false;

self.Body = {};
self.Mag = {};
self.Barrel = {};
self.Bullet = {};
self.FireSound = nil;
self.ReloadSound = nil;
self.MuzzleFlash = nil;

self.firingtimer = Timer();

-- Initial stats
-- Basic stats
self.rateoffire = 700;
self.ammocapacity = 20;
self.accuracy = 25;

-- Initial modifiers
self.rofmod = 0.8 + math.random()*0.4;
self.magmod = 0.8 + math.random()*0.4;
self.accmod = 0.8 + math.random()*0.4;
self.firevelmod = 0.8 + math.random()*0.4;
self.massmod = 0.8 + math.random()*0.4;
self.sharpnessmod = 0.8 + math.random()*0.4;

-- Load body modules
dofile("Brolands.rte/smg/bodymodules.lua");
BrolandsBodies(self);

-- Load barrel modules
dofile("Brolands.rte/smg/barrelmodules.lua");
BrolandsBarrels(self);

-- Load magazines modules
dofile("Brolands.rte/smg/magazinemodules.lua");
BrolandsMagazines(self);

-- Load bullets
dofile("Brolands.rte/smg/bulletmodules.lua");
BrolandsBullets(self);

-- Load muzzleflashes
dofile("Brolands.rte/smg/muzzleflashmodules.lua");
BrolandsMuzzleflashes(self);

-- Load sounds
dofile("Brolands.rte/smg/soundmodules.lua");
BrolandsSounds(self);

end

function Update(self)

-- Generate gun
if self.allmodulesfound ~= true then
-- Find the attachments
for i=1,MovableMan:GetMOIDCount()-1 do
local mo = MovableMan:GetMOFromID(i);
if mo.PresetName == "SmgBody" and mo.RootID == self.RootID then
self.Body["pointer"] = ToAttachable(mo);
self.Body["pointer"].GetsHitByMOs = false;
elseif mo.PresetName == "SmgMag" and mo.RootID == self.RootID then
self.Mag["pointer"] = ToAttachable(mo);
self.Mag["pointer"].GetsHitByMOs = false;
elseif mo.PresetName == "SmgBarrel" and mo.RootID == self.RootID then
self.Barrel["pointer"] = ToAttachable(mo);
self.Barrel["pointer"].GetsHitByMOs = false;
end
if self.Body["pointer"] and self.Mag["pointer"] and self.Barrel["pointer"] then
self.allmodulesfound = true;
break;
end
end

-- Body
for k,v in pairs(self.smgbodylist[math.random(1,#self.smgbodylist)]) do self.Body[k] = v end
-- for k,v in pairs(self.smgbodylist[15]) do self.Body[k] = v end
self.Body["pointer"].Frame = self.Body["sprite"];

-- Modify stat modifier with module modifier
self.rofmod = self.rofmod * self.Body["rofmod"];
self.magmod = self.magmod * self.Body["magmod"];
self.accmod = self.accmod * self.Body["accmod"];
self.firevelmod = self.firevelmod * self.Body["firevelmod"];
self.massmod = self.massmod * self.Body["massmod"];
self.sharpnessmod = self.sharpnessmod * self.Body["sharpnessmod"];

-- Mag
for k,v in pairs(self.smgmaglist[math.random(1,#self.smgmaglist)]) do self.Mag[k] = v end
-- for k,v in pairs(self.smgmaglist[16]) do self.Mag[k] = v end
self.Mag["pointer"].Frame = self.Mag["sprite"];
self.Mag["offset"] = self.Body["magoffset"];

-- Modify stat modifier with module modifier
self.rofmod = self.rofmod * self.Mag["rofmod"];
self.magmod = self.magmod * self.Mag["magmod"];
self.accmod = self.accmod * self.Mag["accmod"];
self.firevelmod = self.firevelmod * self.Mag["firevelmod"];
self.massmod = self.massmod * self.Mag["massmod"];
self.sharpnessmod = self.sharpnessmod * self.Mag["sharpnessmod"];

-- Barrel
for k,v in pairs(self.smgbarrellist[math.random(1,#self.smgbarrellist)]) do self.Barrel[k] = v end
-- for k,v in pairs(self.smgbarrellist[18]) do self.Barrel[k] = v end
self.Barrel["pointer"].Frame = self.Barrel["sprite"];
self.Barrel["offset"] = self.Body["barreloffset"];

-- Modify gun stat modifier with module modifier
self.rofmod = self.rofmod * self.Barrel["rofmod"];
self.magmod = self.magmod * self.Barrel["magmod"];
self.accmod = self.accmod * self.Barrel["accmod"];
self.firevelmod = self.firevelmod * self.Barrel["firevelmod"];
self.massmod = self.massmod * self.Barrel["massmod"];
self.sharpnessmod = self.sharpnessmod * self.Barrel["sharpnessmod"];

-- Bullet
for k,v in pairs(self.smgbulletlist[math.random(1,#self.smgbulletlist)]) do self.Bullet[k] = v end
-- for k,v in pairs(self.smgbulletlist[3]) do self.Bullet[k] = v end

-- Modify gun stat modifier with module modifier
self.rofmod = self.rofmod * self.Bullet["rofmod"];
self.magmod = self.magmod * self.Bullet["magmod"];
self.accmod = self.accmod * self.Bullet["accmod"];
self.firevelmod = self.firevelmod * self.Bullet["firevelmod"];
self.massmod = self.massmod * self.Bullet["massmod"];
self.sharpnessmod = self.sharpnessmod * self.Bullet["sharpnessmod"];

-- Fire sound

self.FireSound = self.smgsoundlist["fire"][self.Bullet["firesounds"][math.random(1,#self.Bullet["firesounds"])]];

-- Reload sound

self.ReloadSound = self.smgsoundlist["reload"][self.Mag["reloadsounds"][math.random(1,#self.Mag["reloadsounds"])]];

-- Muzzle flash

self.MuzzleFlash = self.smgmuzzlelist[self.Bullet["muzzleflash"][math.random(1,#self.Bullet["muzzleflash"])]];

-- Done generating gun, apply gun stat modifiers
self.rateoffire = Round(self.rateoffire * self.rofmod);
self.ammocapacity = Round(self.ammocapacity * self.magmod);

-- You can't be more precise than 100%
if self.accuracy > 100 then
self.accuracy = 100;
else
self.accuracy = Round(self.accuracy * self.accmod);
end

self.Bullet["firevel"] = Round(self.Bullet["firevel"] * self.firevelmod);
self.Bullet["mass"] = self.Bullet["mass"] * self.massmod;
self.Bullet["sharpness"] = Round(self.Bullet["sharpness"] * self.sharpnessmod);


-- Output gun stats to console
-- print("\nRate of fire: "..self.rateoffire.." Rounds Per Minute\nMagazine capacity: "..self.ammocapacity.." Rounds\nAccuracy: "..self.accuracy.."%\nProjectile type: "..self.Bullet["particle"].."\nProjectile mass: "..self.Bullet["mass"].."\nProjectile speed: "..self.Bullet["firevel"].."\nProjectile sharpness: "..self.Bullet["sharpness"].."\n");

self.ammocounter = self.ammocapacity;

-- Clear unneeded tables and variables
self.smgbodylist = nil;
self.smgbarrellist = nil;
self.smgmaglist = nil;
self.smgbulletlist = nil;
self.smgsoundlist = nil;
self.rofmod = nil;
self.magmod = nil;
self.accmod = nil;
self.firevelmod = nil;
self.massmod = nil;
self.sharpnessmod = nil;
end

-- Figure out what team is currently holding the gun
self.projectileteam = MovableMan:GetMOFromID(self.RootID).Team;

-- Move around attachables
if self.Body["pointer"].ToDelete ~= true and self.Body["pointer"].PresetName ~= "" then
if self.HFlipped then
self.Body["pointer"].Pos = self.Pos + Vector(self.Body["offset"].X * -1,self.Body["offset"].Y):RadRotate(self.RotAngle);
else
self.Body["pointer"].Pos = self.Pos + Vector(self.Body["offset"].X,self.Body["offset"].Y):RadRotate(self.RotAngle);
end
self.Body["pointer"].RotAngle = self.RotAngle;
self.Body["pointer"].HFlipped = self.HFlipped;
end

if self.Mag["pointer"].ToDelete ~= true and self.Mag["pointer"].PresetName ~= "" then
if self.HFlipped then
self.Mag["pointer"].Pos = self.Pos + Vector(self.Mag["offset"].X * -1,self.Mag["offset"].Y):RadRotate(self.RotAngle);
else
self.Mag["pointer"].Pos = self.Pos + Vector(self.Mag["offset"].X,self.Mag["offset"].Y):RadRotate(self.RotAngle);
end
self.Mag["pointer"].RotAngle = self.RotAngle;
self.Mag["pointer"].HFlipped = self.HFlipped;
end

if self.Barrel["pointer"].ToDelete ~= true and self.Barrel["pointer"].PresetName ~= "" then
if self.HFlipped then
self.Barrel["pointer"].Pos = self.Pos + Vector(self.Barrel["offset"].X * -1,self.Barrel["offset"].Y):RadRotate(self.RotAngle);
else
self.Barrel["pointer"].Pos = self.Pos + Vector(self.Barrel["offset"].X,self.Barrel["offset"].Y):RadRotate(self.RotAngle);
end
self.Barrel["pointer"].RotAngle = self.RotAngle;
self.Barrel["pointer"].HFlipped = self.HFlipped;
end

if self:IsActivated() and self.firingtimer:IsPastSimMS(60000 / self.rateoffire) and self.ammocounter > 0 and self.Magazine ~= nil then
self.ammocounter = self.ammocounter - 1;
self.firingtimer:Reset()

-- Decide which kind of particle to create depending on the bullets particle type
if self.Bullet["particletype"] == "MOPixel" then
self.particle = CreateMOPixel(self.Bullet["particle"],"Brolands.rte");
elseif self.Bullet["particletype"] == "MOSRotating" then
self.particle = CreateMOSRotating(self.Bullet["particle"],"Brolands.rte");
elseif self.Bullet["particletype"] == "MOSParticle" then
self.particle = CreateMOSParticle(self.Bullet["particle"],"Brolands.rte");
end

-- Decide which kind of particle to create depending on the muzzleflashs particle type
if self.MuzzleFlash["particletype"] == "MOPixel" then
self.particle2 = CreateMOPixel(self.MuzzleFlash["particle"],"Brolands.rte");
elseif self.MuzzleFlash["particletype"] == "MOSRotating" then
self.particle2 = CreateMOSRotating(self.MuzzleFlash["particle"],"Brolands.rte");
elseif self.MuzzleFlash["particletype"] == "MOSParticle" then
self.particle2 = CreateMOSParticle(self.MuzzleFlash["particle"],"Brolands.rte");
end

-- Figure out if the actor is sharpaiming or not.
local MO = MovableMan:GetMOFromID(self.RootID)
local Aiming = 1;
if MO then
local Actor = ToActor(MO)
if Actor:GetController():IsState(Controller.AIM_SHARP) then
Aiming = 0.5;
else
Aiming = 1;
end
end

-- Create a direction vector for the projectile depending on if the gun is HFlipped or not
if self.HFlipped == true then
self.particle.Pos = self.Barrel["pointer"].Pos + Vector(self.Barrel["muzzleoffset"].X * -1,self.Barrel["muzzleoffset"].Y):RadRotate(self.RotAngle);
if math.random() > 0.5 then
self.firingvector = Vector(-1,0):RadRotate(self.RotAngle + math.random() * (math.pi/8) * ((100 - self.accuracy)/100) * Aiming);
else
self.firingvector = Vector(-1,0):RadRotate(self.RotAngle - math.random() * (math.pi/8) * ((100 - self.accuracy)/100) * Aiming);
end
else
self.particle.Pos = self.Barrel["pointer"].Pos + Vector(self.Barrel["muzzleoffset"].X,self.Barrel["muzzleoffset"].Y):RadRotate(self.RotAngle);
if math.random() > 0.5 then
self.firingvector = Vector(1,0):RadRotate(self.RotAngle + math.random() * (math.pi/8) * ((100 - self.accuracy)/100) * Aiming);
else
self.firingvector = Vector(1,0):RadRotate(self.RotAngle - math.random() * (math.pi/8) * ((100 - self.accuracy)/100) * Aiming);
end
end
self.particle.Mass = self.Bullet["mass"]
self.particle.Sharpness = self.Bullet["sharpness"];
self.particle.Vel = self.firingvector * self.Bullet["firevel"];
self.particle.LifeTime = 1500;
self.particle.Team = self.projectileteam;
self.particle.IgnoresTeamHits = true;
MovableMan:AddParticle(self.particle);

-- Create firing sound emitter.
self.particle = CreateAEmitter(self.FireSound,"Brolands.rte");
self.particle.Pos = self.Pos;
MovableMan:AddParticle(self.particle);

-- Create muzzleflash
self.particle2.Pos = self.Barrel["pointer"].Pos + Vector(self.Barrel["muzzleoffset"].X * -1,self.Barrel["muzzleoffset"].Y):RadRotate(self.RotAngle);
self.particle2.Vel = self.Vel;
MovableMan:AddParticle(self.particle2);
end

-- Keeps track of the magazine
if self.Magazine == nil then
self.Mag["pointer"].Scale = 0;
self.ammocounter = self.ammocapacity;
self.reloading = true;
else
self.Mag["pointer"].Scale = 1;
self.Magazine.RoundCount = self.ammocounter;
end

if self.reloading == true and self.Magazine ~= nil then
self.reloading = false;
-- When the gun is done reloading, play reload sound
self.particle = CreateAEmitter(self.ReloadSound,"Brolands.rte");
self.particle.Pos = self.Pos;
MovableMan:AddParticle(self.particle);
end

end

function Destroy(self)
end

function Round(num, idp)
local mult = 10^(idp or 0)
return math.floor(num * mult + 0.5) / mult
end

Fun things:
"pointers" in lua

6
Developer's Corner / Random electronics projects
« on: September 29, 2014, 04:11 PM »
So, I recently started Uni and have been doing a bit of this and that with my Atmel prototyping board using a AtMega32 µC. One of things I made with some of the assignments we've gotten so far is a small simple square wave synthesizer like thing. Has anyone else done similar small electronics projects? I am correctly dabbling in buying 6 5X8 LED dot matrixes to redo the charlieplexing display I made in high school. So yeah, any of you guys done similar things?

The small synthesizer like thing I made using the Uni-required STK500 prototyping board (An exercise in assembly):


My old charlieplexed 8x7 LED display (Written in terrible amateur C):

7
I recently got some bundle overlap and I am giving away the games. To spice things up, the games goes to whoever can tell me the worst/best joke, rather than first come first serve.

8
NANY 2013 Entry Information

Application NameUnnamed
VersionPre-alpha
Short DescriptionA platforming game, with adventure elements.
Supported OSesWindows 7 (Probably older and newer as well)
Download Linkhttps://dl.dropboxus...ANY2014/nany2014.rar
System Requirements
  • Keyboard
  • Mouse
  • Windows


Description
I set out to create some sort of game, and the basic framework is almost done. Most of the work was based on what I learned and did in my SHMUP, a Löve2d story game. I ended up making a platformer which was suppose to have adventure'esque elements, but didn't get around to that.

Features
Jumpin' 'n' runnin'

Planned Features
I am hopefully going to get around to creating some levels and actually finishing it at some point after new years.

Screenshots
Untitled.png

Usage
Installation
Unpack and run the executable

Using the Application
S and D for movement
H for jumping
J for hitting stuff with a bat (Which does nothing at the moment)
O to show collision boxes for debugging

Uninstallation
Delete the game, it also puts a small plain text file in %appdata%\LOVE\nany2014

Tips
Any tips for using it?

Known Issues
The position of the character goes haywire if you move the window around, I am not sure what's up with that


-- Original post --
Spoiler
Basically I am going to make a game, not quite sure what yet but I have a few ideas. In case anyone saw my other topic SHUMP, a Löve2D story, they know that I still need to figure out what the game is about. So, any input on that would be fantastic. Also, I will try, once again, to keep a kind of log on progress.



As of right now I only have a startup screen and some early menu stuff going on. The display settings are also being loaded from a file and I hope to make it configurable from in game at some point, but it is not priority right now.


9
Developer's Corner / SHMUP, A Löve2D story
« on: September 22, 2013, 08:35 PM »
So, in order to get my game on for NANY2014 I decided to get cracking and learn some programming. To do this, I decided to make a game using Löve2D. Löve2D is a framework that allows you to build 2d games fairly quickly using Lua. Since Lua pretty much is the only language I've had a bit of experience with it seemed like a good place to start.

Anyhow, the purpose of this thread is to chronicle the progress on this training project. Since I haven't really saved any versions yet (I plan to when I've hit some milestone, like getting the basics down) I will start from my current build and work my way forward with each new post, explaining what I've done and possibly what went wrong. With this I can look back at what I made and hopefully learn more than I did while doing it. Anyhow, lets get on with it.

These first few videos are from the early stages when I wasn't really doing much but trying to set up the basic framework to build my game on.





This video showcases projectiles and an enemy. Both were terribly done as I had mocked about in a stupid way with all the rotation and positions of the entities, this was later fixed. Even though the effect is minimal, it's always nice to do things the right way.





Gave the projectiles sprites and added different effects to the game. Including the randomly placed twinkling stars in the background.





This is where the fun begins, I changed the actual firing of projectiles from being hardcoded into the playership into objects that can be attached in arbitrary number to the ship. This way I can have powerups and upgrades without going through too many hoops. I also added some damage indication to the enemy ships as well as more stats to calculate damage. In the second video I got sound working and added some temporary sounds to the game, I don't own the rights to the music though and I plan to change it to something I can legally use later, so far it serves as a placeholder however.




In case you want to try it out, the latest compiled version can be found here. I have no idea what is needed to run it, but from what I gather it runs best under either windows 7 or 8.

Controls are the arrow keys for movement, space for shooting and p for pause

Updates:
Update1
Update2

10
Mini-Reviews by Members / Reus Mini-Review
« on: May 20, 2013, 06:22 AM »
Basic Info

App NameReus
App URLhttp://www.reusgame.com
App Version Reviewed2.0.0
Test System SpecsIntel Core i7-3770   
16GB DDR3 1600MHz      
GIGABYTE GeForce GTX 660 OC (2GB DDR5)
Supported OSesWindows, although the developer has stated that they are looking into porting the game to Linux and Mac
Pricing SchemeSteam - 10 dollars/euros
Good Old Games 10 dollars - Also DRM-free!
Gamersgate 10 dollars/euros
Desura 10 dollars/euros
It should be noted that there's a 10% off deal during launch week
Screencast Video
Relationship btwn. Reviewer and Product No affiliation besides liking the game


Intro:

Reus is a god game by dutch indie developer Abbey games. It's a bit of a casual pick up and put down game where each session lasts between 30 and 120 minutes.

home-logo-3[1].png


The Good

The game has a fantastic cute art style, simple rules and complex interaction. Figuring out how the game works takes a a couple of minutes, but finding out how the rules work with each other is a lot harder. It's also really slow paced without becoming boring, yet can get pretty tense if wars break out or an era is coming to a close.


The needs improvement section

As I stated in my video, I don't think Reus has too much replayability. You can only coax settlements along so many times before it become repetitive. The unlock system, while driving the game by giving you goals, ultimately might seem a bit grindy. As your maximum progress in the start is limited by you being unable to access the more advanced tiles for the game.


How does it compare to similar apps

The game reminds me a bit of those smart phone games where you mix and match elements to get new ones. Except there's a tangible effect rather than just getting new elements. The giants also remind me a bit of Black and White and Shadow of the Colossus. While not really all the similar to the last, it's pretty easy to make comparisons to Black and White.


Conclusions

It's a cool little game that I don't regret dropping 9 dollars on. Even if I only get 8 or so hours out of it. The developers also seem friendly. It seems like it is pretty easy to ask them questions on their forums, where they are pretty active.

11
N.A.N.Y. 2013 / NANY 2013 Release: Brolands
« on: December 28, 2012, 12:40 PM »
NANY 2013 Brolands

Application NameBrolands
VersionFirst public version (I don't really have version control)
Short DescriptionA Borderlands inspired random guns generator mod for Cortex Command
Supported OSesAny OS that can run Cortex Command
Web Pagehttp://xeno-mods.com...mod/135/brolands-wip
Download Linkhttp://xeno-mods.com...mod/135/brolands-wip
System Requirements
  • Cortex Command
  • Processor: 1GHz processor
  • Memory: 1GB RAM
  • Hard Disk Space: 150MB HDD space
  • Video Card: 640x480 (VGA) resolution monitor
  • Additional: Should run on any PC released within the past 5 years.
  • (Blatantly stolen from the steam page for CC)
Authorp3lb0x


Description
There had been talk about implementing random guns akin to the ones found in Borderlands for some time on the Datarealms fan forums. And with scripts being allowed to run on so called attachables in the game, it suddenly became a possibility. I basically thought to myself that it would be a fine project to start up after I grasped the basics of the scripting language Lua that Cortex Command uses.

Features
When you buy the weapon in game the first thing it does is pick a body, a magazine, a barrel and a bullet type. Then it smacks them together, rolls up some stats and is ready to be used. It is able to generate 57750 different guns before applying the randomized stats. It also features some lua scripting on 5 of the 7 included projectile types that are inspired by the elemental effects in Borderlands.

Planned Features
I hope to include all the weapon types of Borderlands at some point. But I need more sprites for that to work. Something that I've been supplied with by people on the Datarealms fan forums.

Screenshots

Showcases some of the bullet effects
GunEffects.png

Large amount of generated guns
GunsLotsOfGuns.png

Video


Usage
Installation
Unpack the Brolands.rte folder to the Cortex Command folder and it should automatically load the mod when the game is started.

Using the Application
It should then pop up under weapons in game. Just buy it and it will generate a random gun when it gets loaded in the game world. It might be difficult to spot as only the handle of the gun is actually visible in the shop menu in game.

Uninstallation
Just remove the Brolands.rte from the Cortex Command folder. It shouldn't have affected anything in the base game.

Tips
Luck affects the quality of the guns a lot. Some of them are pretty decent while a lot of them are below average.

Known Issues
While the mod is basically feature complete. It is missing a buttload of polish and is pretty full of bugs. It is however working and the bugs aren't game breaking in anyway (The two worst are a single console error on creation that I can't track down and some effects not triggering nearly as often as they should). In the polish department the worst part is probably how messy the code is, but also how unbalanced the different modules are. I also haven't gotten around to making muzzle offsets for the barrels. But you hardly notice it anyway.


12
N.A.N.Y. 2013 / NANY 2013 Pledge: Brolands, a mod for Cortex Command
« on: October 27, 2012, 04:21 PM »
The game Cortex Command is a sandbox side scrolling shooter with pixel physics. I have set out to create a random gun generator for this game akin to what is found in the game Borderlands.

This will be done through the games Lua scripting implementation and a lot of sprites (that I have been supplied with by the community). I am already pretty far along and I have the basic script down that handles randomization. But, I still need to implement it for all the weapon types found in Borderlands as well as scripting some different effects for different projectile types.

Here's a picture of the current prototype, which is able to generate little over 40.000 different combinations, not including the different firing sounds they have.

13
DC Gamer Club / Steams Great Gift Pile
« on: December 21, 2011, 06:01 PM »
Steam is doing an even like the summer event where completing achievements in games gives you free stuff. This time however you can trade your free stuff around.

http://store.steampo...red.com/holidaysale/

I have a few coupons I'd be willing to trade.

-25% valve games
-50% off Zombie Driver
-33% off any GSCgames Game

14
DC Gamer Club / Dungeon Defenders - A Tower Defense CO-OP RPG
« on: October 10, 2011, 02:07 PM »
Dungeon Defenders


About the Game

Dungeon Defenders is a Tower Defense Action-RPG where you must save the land of Etheria from an Ancient Evil! Create a hero from one of four distinct classes to fight back wave after wave of enemies by summoning defenses and directly participating in the action-packed combat!

Customize and level your character, forge equipment, gather loot, collect pets and more! Take your hero through multiple difficulty modes and challenge/survival missions to earn more experience & even better treasure. Join your friends with 4-player online and local (splitscreen) co-op to plan your strategies together or compete in PvP Deathmatch.
- Stolen from Steams page on it



I found it to be a quirky little game that I am sure people here on DC would appreciate. It's not out yet but will be on the 19. of October. Because I am sure there'd be people here willing to play the game with me I just went ahead and snagged a four pack while the preorder discount still was active (Also netting us some valve game related DLC). Just give a quick shout out if you want a copy of it, what timezone you're in and what time frame you think you'll be available in. To avoid people just hopping in and snagging up these copies I'll look at join dates and post counts before giving out any.

To avoid any confusion, I am already sold out!

Link to steam page

Link to screenshots and videos




15
Living Room / Second Wind - beautiful student animation
« on: June 10, 2010, 04:54 PM »

I found this small animated short from a blog post by another aspiring animation student. It's really sweet, sad and beautiful. I couldn't help but share it. Enjoy

16
I have been wanting to do more than simple video editing for some time and MS movie maker has begun to show it's faults more and more as I have been using it. I have shifted slightly over to VirtualDub but that too has a lot of stuff I would want and is pretty technical compared to MS movie maker. What I am looking for is a above basic level video editing program that can do special effects above just overlaying filters and such. Even with those requirements I am hoping I can find something that doesn't require a 2 month learning course to understand and hopefully it would also be free or at least cheap.

Any suggestions?

17
DC Gamer Club / I am looking for this old PC FPS game
« on: February 09, 2009, 03:24 PM »
Suddenly when I sat playing Xcom: Enemy unknown today I remembered some old FPS I played when I was younger. I don't remember it's name or exactly what the premise was but I have a few facts that might hint to what game it was

It's either post apocalyptic or SciFi with a very dark atomsphere (also graphically). You start the game by choosing one out of 3 characters, and if I remember correctly you could choose some big beefy guy, a gal of some sort (Amazonish I think but I am not sure, possibly red haired) and something else which I don't remember what was. Depending on which character you choose you get different weapons with basically the same functionality. One weapon I remember you could get was some sort of remote controlled spider robot bomb thingy. And IIRC the first level started outside some complex with the first enemy being some sort of turret firing red lasers

18
Living Room / Mastermind: World Conquerer - Flash game
« on: February 03, 2009, 02:13 PM »
Mastermind: World Conquerer is a great flash game. It's kinda like a Evil Genius lite game.

Image2.jpg

19
DC Gamer Club / Combat Arms another free FPS shooter
« on: December 20, 2008, 06:33 PM »
Nexon has just made the European version of Combat Arms available and I can say that I am having a blast blasting through the ranks of my enemies in it. I even made a small video. So if anyone of you guys here on DC from europe wanna play just reply here

CombatArms_screenshot_01.jpgCombatArms_screenshot_07.jpg
CombatArms_screenshot_05.jpgCombatArms_screenshot_04.jpg

Homepage:
For the European version
For the American version

20
Found Deals and Discounts / Lugaru for free
« on: December 14, 2008, 01:48 PM »
Apparently the developers of the fighting game lugaru are giving it away for free on christmas eve to promote the sequel
http://blog.wolfire....free-copy-of-lugaru/
Check it out. I don't know a lot about it and I haven't even tried it but I heard it's good soooo yeah.

21
DC Gamer Club / Spore: a Codyrific journey
« on: September 06, 2008, 12:05 PM »
Mouser told me to make a separate thread for my Cody race in Spore, so I did. Unfortunately I only began taking pics after I had the basic Cody shape in the game. So no pics from mid-late creature game or cellular.

EarlyCreature.jpg

Here I am in the early creature game, only pic I have from this part of the game. I am gonna play Cody as a evil savage killing machine because I have already played through the game as a diplomat (Besides I think Cody needs to get into shape and destroying enemy civilizations is gonna be great exercise!)

Moving unto tribal phase

EarlyTribal.jpg

TribalOutfit.jpg

Here we have the fresh Cody tribe, and the tribal outfit

Tribal2.jpg
Tribal3.jpg

Out killing animals for food, hahaha the yellow creatures in the last pic are the creatures from my previous game :D

Tribal4.jpgTribal5.jpgTribal7.jpg

Here I am waging war on the other tribes of the planet

TribalOutfit2.jpg

Upgraded Cody's tribal outfit because new and better parts were available

Tribal6.jpg

Feasting on our fallen foes food

EndTribal.jpg

And this is where we end the Tribal phase, oh hey. Cody earned me an achievement :D

CivilizationOutfit1.jpg

New "civilized" outfit

EarlyCivilization.jpg

Civilization, isn't it great? I will smash it with my mechs!

Civilization1.jpg

Apparently one of Cody's ancient ancestors have mutated and become huge

Civilization3.jpg

Die evil abomination!

Civilization4.jpg

Oh god retreat, I will be back for you!!!

Civilization5.jpg

Hah, I've got backup!

Civilization2.jpg

I am kicking ass and taking names!

Civilization6.jpg

The Cody airforce!

Civilization7.jpg

A small ICBM attack later and I am off to the space phase

Space1.jpg

I decided a flying tank would be appropriate because of how the Codys behave

Space2.jpg

Our first colony! :D

Space3.jpg

And first contact with aliens, they seem friendly. I'll blow them up when I have assessed their strength

Space4.jpg

Die alien scum! >:)

Will update when I get more pics

22
DC Gamer Club / Spore out the 4th of september
« on: September 02, 2008, 04:20 PM »
Spore will be out in 2 days time (in Australia anyway, 5th for europe, 7th for america) I am gonna refresh everyones mind.
I for one am gonna conquer the world with a flock of codies ;P

http://www.spore.com/ftl

23
Found Deals and Discounts / Red Alert 1 for free
« on: August 31, 2008, 10:15 AM »
Apparently EA is releasing the original Red Alert to promote Red Alert 3

http://www.ea.com/re...ews-detail.jsp?id=62

24
Living Room / What do you usually forget to backup?
« on: August 30, 2008, 10:09 AM »
Since I am gonna reinstall windows today, I need to backup. I have backed everything that I think I'll need up. But then it hit me, what did I forget to backup?

What do you guys usually forget to backup?

25
DC Gamer Club / Battlefield Heroes
« on: July 10, 2008, 09:38 AM »
Battlefield Heroes is a free game being developed by dice who made also made BF2 which I know some of you guys have played. It is basically a unrealistic version of Battlefield 1942 with cell shaded graphics (Cartoon graphics). It is gonna come out some time within Q2 this year (summer).

Website: http://www.battlefield-heroes.com/
Hilarious trailer: http://www.battlefie...release-announcement
Screenshots: http://www.battlefie...roes.com/screenshots
Theme music: http://www.battlefie...-music-and-user-bars

We really need to play this game when it comes out :D

Pages: [1] 2next