• entries
55
14
• views
38473

## What happened?

Wow. Haven't work on the game much this entire past month. I don't know if thats cause I code for a living now , or if it's because of other *real-world* pursuits , but I think I built the game once... Just don't seem to have the time. I noticed this morning that I could squeeze in an extra half hour is a wake up sooner , so I'll start using that to work on a routine or two...

## Brief update...

Not much coding last week. The homing laser is near completion. Ripped out tracking code and replaced it with calls to Ent_PursueEntity. Hmmmmm... What else... Saw Speed Racer. Interesting. Wasn't a fan of the old series, and was less of a fan of the film. It just seemeed really goofy/silly. And the CG in spots was tacky. But as a concept film , it was interesting , and had it's cool/exciting spots... Next we have Narnia and then Indiana!!!

## Tony Stark..

... Is the man , most definintely. I am sure that the coders in the audience noticed the source that that was featured in a couple of scenes. From the little bit that I saw , it looked to be C , in a style not unlike my own... I confess , I am Tony Stark *hehe*. Also , I thought it was Tony Starks... GREAT movie! In fact , I am hard pressed to name a better comic-to-movie movie. Wow! And next we have Indiana Jones , The Hulk and the one I am looking most forward to : The Dark Night.

Anyway , didn't do much code this week. Fiddled around with some dot-product code trying to get the homing laser's bitmap to track and rotate towards a moving target. I might just leave it half complete for now , and move on the next weapons renderer....

## Weapons Systems...

Working on adding the homing laser graphics properly implemented. And decided that the entire weapons system need to be revamped. Have 4 more weapons to complete...

## And so begins another week...

Didn't get a chance to do much work on the project this week. Did add some tracking routines for the projectiles and the main entity :

Besides that , just been learning C#/WinForms. Definitely getting used to working w/C# and VS2005. Learning a lot of pretty cool stuff.

## Death of deprecation...

So I've finally made the move to a more modern dev environ. Really , I was forced , cause my new job is .NET based , and I use Visual Studio 2005 now ( 2008 as soon as they get it ). Picking up C# and .NET pretty quickly. A lot of it reminds me of Java , so that's cool. Still , when at home , I used Visual Studio 6. But after I finish this project I will be using C#. Really , I still love the low-levelness of C/CPP , but C# offers alot of attractive features ( language interoperability is particularly cool ). After this project , I plan on doing rapid game development with the aim of releasing a new project every month ( someone else has already done this , and I was inspired to do the same )...

Anyway , added explosions for the remaining game entities.

Also this is quite awesome!!!

## Explosions...

Added explosions. The way it is set up , each game entity can have it's own custom explosion graphics. Now , if I actually take of adavantage of that remains to be seen... This week I plan on adding the code to each enemy class to get the explosions fully intergrated.

Screenie 1 :

Screenie 2 :

Dev desktop :

Not much else for this week. Been having a hard time simulating palette animation for the true color modes. Need to come up with a hack of some sort... Dev time will be cut a bit short for this week cause I will be starting a new job... More on that later.

## Nothing but Love...

Wow!!!

Played through the Noitu Love 2 demo this past weekend. Amazing. Simply amazing. Big-ups to Joakim for such a marvel!!! It reminds me of Gunstar Heros with massive processing power behiend it, and great pixel art/animation. The play mechanics are also innovative , while still being intuitive. I didn't know such things were possible with game creators ( Fusion ). The amount of sheer chaos onscreen is really inspiring. I don't really play games ( anymore ) , so this is easily the best thing I've played in quite some time.

Almost done with the sprites for the second boss... Although everything I code/sprite seems second rate now. :) Ah well. Onward!

>

Pretty much finished up the first boss. I may go back and tweak him a little more , maybe add some more frames of animation here and there. But for now , I will be moving on and doing all the artwork for the second ( and much more interesting ) boss.

## The process...

Things are starting to shape up pretty nicely... My goal for the visual style was to get it so that it looks like an interactive cartoon ( ala Behemoth games like Alien Hominoid ). The player's sprite was the first one to use this process , the other ones where done the old pixel-art style which looks a little sloppy...

Original Sketches.

Line art done in Photoshop...

Lowered resolution/bit-depth.

Which leads to an in-game of :

The problem before was getting the hang of working with photoshops pen tool , and getting smooth enough paths. But I seem to have the hang of it now, and can crank of the sprites pretty quickly. This week I plan on doing at least one entities sprites per day...

## Attack of the sprites...

Added a sequencing system to store and recall animation loops. Been testing out the preliminary sprites ala :

>

>

Note : Having some problems with getting a proper mask when the sprite's bit-depth is reduced from 32 to 24 ( which is why the edges on some of the frames look funky ).

Will continue building the rest of the sprites during this week. Right now,
each frame is stored in a bmp file. I may leave it this way or compile all the frames together into one file...

## Sprites abound...

So I added the code to confine the player to navigatable parts of the map :

r_boolean M_P_CheckForCollision( pPlayer_t pP , pMap_t pMap ){ pVect2_t pPlayerPosition = &pP->ent.position;  // first determine where to sample the tile set from.  int mapRow = pMap->position.y >> 5; int mapCol = pMap->position.x >> 5;  // now determine where player is in relation to normalized map coords.  int playerRow = pPlayerPosition->y >> 5;  int playerCol = pPlayerPosition->x >> 5;  // sample tiles in moveable ( 4 ) directions around player , and the concurrent location int tileRefs[] = { 0 ,   0 ,  0  , 0  , 0 }; //                conc  up   down left right TileType tileTypes[] = { TILE_TYPE_BACKGROUND ,                           TILE_TYPE_BACKGROUND ,                           TILE_TYPE_BACKGROUND ,                           TILE_TYPE_BACKGROUND ,                           TILE_TYPE_BACKGROUND };  r_boolean solidTiles[] = { r_false , r_false , r_false , r_false , r_false };  // get the tile references for all the surrounding tiles   tileRefs[ MAP_DIRECTION_NULL ]  = pMap->mapTiles[ mapRow + playerRow ][ mapCol + playerCol ];   tileRefs[ MAP_DIRECTION_UP ]    = pMap->mapTiles[ (mapRow + playerRow) - 1 ][ mapCol + playerCol ]; tileRefs[ MAP_DIRECTION_DOWN ]  = pMap->mapTiles[ (mapRow + playerRow) + 1 ][ mapCol + playerCol ]; tileRefs[ MAP_DIRECTION_LEFT ]  = pMap->mapTiles[ mapRow + playerRow ][ (mapCol + playerCol) - 1 ];  tileRefs[ MAP_DIRECTION_RIGHT ] = pMap->mapTiles[ mapRow + playerRow ][ (mapCol + playerCol) + 1 ];  // ... based on the above , get the types of the surrounding tiles... tileTypes[ MAP_DIRECTION_NULL ]  = pMap->tiles[ tileRefs[0] ].attribs.type;tileTypes[ MAP_DIRECTION_UP ]    = pMap->tiles[ tileRefs[1] ].attribs.type;tileTypes[ MAP_DIRECTION_DOWN ]  = pMap->tiles[ tileRefs[2] ].attribs.type;    tileTypes[ MAP_DIRECTION_LEFT ]  = pMap->tiles[ tileRefs[3] ].attribs.type;tileTypes[ MAP_DIRECTION_RIGHT ]  = pMap->tiles[ tileRefs[4] ].attribs.type;  // ... now check to see if there are any solid tiles  solidTiles[ MAP_DIRECTION_NULL ] = pMap->tiles[ tileRefs[0] ].attribs.solid;solidTiles[ MAP_DIRECTION_UP ]   = pMap->tiles[ tileRefs[1] ].attribs.solid;solidTiles[ MAP_DIRECTION_DOWN ] = pMap->tiles[ tileRefs[2] ].attribs.solid;solidTiles[ MAP_DIRECTION_LEFT ] = pMap->tiles[ tileRefs[3] ].attribs.solid;solidTiles[ MAP_DIRECTION_RIGHT ]= pMap->tiles[ tileRefs[4] ].attribs.solid;  // Check for collison with solid tiles.  for( int direction = 0;direction < MAP_DOF;direction++ ) {  if( solidTiles[ direction ] )  {   switch( direction )    {   case MAP_DIRECTION_NULL: // concurrent    {        break;    }    case MAP_DIRECTION_UP:    {     pP->directions.up = r_false;     break;    }    case MAP_DIRECTION_DOWN:    {     pP->directions.down = r_false;     break;    }    case MAP_DIRECTION_LEFT:    {     pP->directions.left = r_false;     break;    }    case MAP_DIRECTION_RIGHT:    {     pP->directions.right = r_false;     break;    }   }      if( Ent_TestForCollision( &pP->ent , &pMap->tiles[ tileRefs[ direction ] ].ent ) )   {    Ent_InflictDamage( pP , &pMap->tiles[ tileRefs[ direction ] ].ent , r_false , r_true );   }  }   else  {   switch( direction )   {   case MAP_DIRECTION_NULL:    {     pP->directions.up =      pP->directions.down =     pP->directions.left =      pP->directions.right = r_false;     break;    }    case MAP_DIRECTION_UP:    {     pP->directions.up = r_true;     break;    }       case MAP_DIRECTION_DOWN:    {     pP->directions.down = r_true;     break;    }       case MAP_DIRECTION_LEFT:    {     pP->directions.left = r_true;     break;    }    case MAP_DIRECTION_RIGHT:    {     pP->directions.right = r_true;     break;    }   }  } }  return pP->ent.collided;}

It still only operates in 4 dof , but it needs to do so in 8 dof.

Still haven't gotten the parallax stuff working yet , but I have decided to start on the sprites so this should be an exciting week.

So here is the imported map in-game :

Next , I have to make the editor export tile descriptions so that they can be used in game for things like parallax , solid tiles , etc.

## Constructing Stage One...

So I have created 46 tiles , and that should be enough for the time being. To get everything perfect , I will need to do about 10 more slight variations , but that is to be worried about later. I should be able to get the stage constructed this week , and then go from there...

## Tilesets...

So here is the first tileset so far :

>

I should have the rest of the tiles finished soon. After getting the initial look for the game, I may have to pay someone ( or recruit an artist ) to get things looking better...

## Inspiration...

So I've started on the concepts for the first level. Right now, I am drawing it out on paper and deciding what and how many tiles I am going to need. After that, it's off to the drawing board ( well , pad actually ) and the scanner to get the tileset going.

Nostalgia is a very inspirational phenomenon , and as such I've been watching old 80's fantasy movies to get some ideas going :

* Labyrinth ( imo everything Jim Henson touched turned to inspired gold; Incredible character design )
* Neverending Story 1/2 ( first was classic , second was much less so )
* Willow ( absolutely great film! Has aged very well )
* Mirror Mask ( ... interesting , but not worthy of Henson's name , and a case study in how CG has robbed film of personality )
* Dark Crystal ( sublime , Henson at his most surreal )

## The joys of code rot...

Yeaaahhh...

So it seems that the time has come for me to return to developing the editor. Unfortunately, it has been 4 months or so since I last touched MFC. There are just a few features that I need to add, but I can clearly see that this will be rather painful.

Oh well...

Saw :
National Treasure 2 ( good , definitely in the Indiana Jones vein )
Chinatown ( ok, overrated though imo )
Talk to Me ( pretty good )

trailers :
Son of Ranbow
Wal-E
Something about Dr Suess ( that looks cool )

## FMOD...

So the menus are working now ( although some of the functionality has yet to be completed ), and so now I am working on adding sound support via FMOD. Also, today marked the first time that I've ever seen a movie where a disclaimer was posted. Apparently, due to the way that Cloverfield was shot ( freecam , done in a way to mimic an amateur photographer ) , some people were complaining from motion sickness... I can't say I had that problem , although it was still a decent flick...

## Working on the frontend...

Nothing to exciting going on in the world of code this week. Wrote the barebone code for the main menu, and am implementing the options menu next. Definitely not the most exciting stuff, so it's a little slow going ( when in reality I could knock it all out in an evening... ). Looking forward to getting into the content phase.

## Back to it...

Now that the vacation is over ( sadly ), back to work on the project. After some thought , and a general lack of progress , I have decided to put the final boss on hold for the time being. So, next I will be focusing on the frontend part of the game ( menus , gui etc )... Could it be that the content phase will soon be at hand? I hope so :)

## Back in the D...

Nothing to report. I am on vacation back in Detroit ( home-sweet-home ), and will back in DC on Wendsday. Truthfully, I haven't really even thought much about coding for the past week.

## Fear the Goliath!!!

So here is the concept art for the end boss.

Basicly, he has a horde ( remember that game w/Kirk Cameron? :) ) of minions that he controls and is able to use as projectiles and in otherwise deadly fashion. I figure I can just add lightweight AI routines to each of the horde ( of electrostatic creatures called 'Sparkys' ) in a similar way to how particles are managed. So, this, in conjunction with heavy collision detection and particle fx should give the CPU a decent workout.

## Final Boss

This week, I will start on what will be the final boss. I finished up the second one over the weekend and he is pretty cool :

I have been playing through Dynamite Heady and Alien Soilder looking for some cool ideas, but haven't come up with a solid concept yet.

Also, I have starting messing around with Fruity Loops to get my "skills" back up the speed. Fortunately, I came across this today, so I will probably use it for the sound fx ( cause I certainly wasn't looking forward to synthesizing them )...

Should have some concept art up next week.

## Final Boss

This week, I will start on what will be the final boss. I finished up the second one over the weekend and he is pretty cool :

width = 500 height = 400>

I have been playing through Dynamite Heady and Alien Soilder looking for some cool ideas, but haven't come up with a solid concept yet.

Also, I have starting messing around with Fruity Loops to get my "skills" back up the speed. Fortunately, I came across this today, so I will probably it for the sound fx ( cause I certainly wasn't looking forward to synthesizing them )...

Should have some concept art up next week.