Hi. I decided that I was going to release the source code for my next game, as it was being created, so I might as well keep a developer journal as well
Give me a job! I am currently looking for work in the hand held game industry. I am hard working, very dedicated and have 3 years of professionl C programming experience.
All serious offers will be considered. You can contact me at
This page is inspired by the good work One Man Band and the rest of the team at Savage Pixel. Their making the game column used to run irregularly at pocket.ign
So here it is Faking the Lame - One games odyssey from lowly beginnings to whatever it becomes before I get bored and can it.
All code compiled and tested under gbdk v 2.1.0 (an oldie but a goodie)
Release 5 - Music, New rotation system (12 Mar 2001)
Only 1 change that I can think of for this version - A quest mode. In reality this makes for a whole new gameplay experience, so I hope you all like it.
A quest mode. Start the game with the A button to play 20 (or so) different levels
To win a level you must break all the star blocks
A star block will act as any other type of block to make a line
Modify tiles\level_data_1.gbm to create your own cool levels
The level names are in level_data.c at the moment. I will work out a nicer way of doing this at some stage
send your levels to for possible inclusion into later releases.
be sure to also send me the names of your levels and who you want the level credited to.
The next version of this game won't be released until I get at least 5 email (from different people) about what they think of the game. I am after a bit of ego stroking, but if people want to tell me the game is shit then that is fine too.
I think I will be adding a few more twists to the quest version:
different blocks
get 1000 points before winning
win in a set time limit
Have the game keep track of your total score
A story. I need a reason to reuse the conversation engine I made for S World :-)
I would love if the coder jr made it possible to load in new level data that could be distributed via the internet. Then I could have a pc program to design levels and a menu option in game to load them
I am eagerly awaiting my coder jr from bung, but they don't seem to have sent it first class. :-(
I was also thinking about converting the base engine to tetris, columns and puyo puyo while it is still small. Does anyone think this is worth it? Are there any other good block games that are around?
Release 3 - Learning the limitations of the GBC (8 Feb 2001)
A combo system. Now if you get 1 line then another line with the next piece your points for the second line are doubled, 3x the score for the 3rd line in a row, 4x for the forth and beyond
There is now a bit of a game over sequence.
Sped the game up - i.e. changed the start_speed, reset_speed and max_speed
Starting by pressing the A or B buttons start on different screens
50 lines mode is hard wired in at the moment, I will make a menu for the next release to choose modes of play
There is now a high score table, which is saved to memory.
Still haven't settled on a name for the game
Wanted to get this up fast so I could get my picture on devrs.com :-)
Next time I might have some quick time videos of my sprite animation engine to show you
I added some intro pages, but I still haven't given the game a title. I really like the score that comes up when you get a line, and it was quite easy to put in!
Some things to notice:
Changed colors and tiles to make the game playable.
Press the A button at the title screen to start with a screen full of blocks
All the side numbers in the main game are put up by the function displaynumber()
The little score is controlled by the variables show_score_*
show_score_t is timer
show_score_x and show_score_y are where on the screen the score goes
The little score uses sprites 0-3
The outline of the play area moving is controlled by area_box_timer and area_box_counter
What the hell do you call that thing on the side of the board anyway ???
All the tiles are kept in the tiles directory (except for font.c oops). I generally have:
A main directory
An old source directory, where I keep a copy of the game from every week or so. It is good is you try something out and it turns to shit to be able to go back to a previous version
A pictures directory, to store all the artwork from the game
A tiles directory, to store the .c and .h files of all my pictures and sprites and backgrounds
A documentation directory, where I keep notes about the source, and a things to do list and other project documents
Added some funky ass sounds. These are created in the functions sound_click() and sound_pop(), for reasons I won't go into.
Also if you want to tweak gameplay a bit here are some good variable to change in the init_board() function. I will have a menu to a few styles of play eventually
shownext, if this is set to NO then you don't see the next piece. You also get more points
start_speed, max_speed and reset_speed. The game starts at 1, gets faster until it reaches another, the resets back to the last one
The speed is increased by the magic number 10, used somewhere in the drop.c file - oops :-)
lines_per_level is how many lines the player has to get before the speed changes
length is the initial length the lines have to be before they disappear (lenght is 2 less then the length the line have to be, for reasons I can't remember)
That is about it.
There are some other things you could do, but I have to leave something till next time