LD #16 Plans
This is our first time competing in LD48 (although not our first time competing in a short dev cycle contest). Hopefully, we’ve prepared enough; starting with a mostly-working engine instead of rolling one from scratch on contest day should help.
The obligatory stats:
Tools:
- compilation and linking: GNU toolchain
- graphics: GIMP 2.2
- sound: MilkyTracker, SFXR
- level: Mappy
- engine & framework: preexisting custom 2D
- helper libs: Allegro 4.2, DUMB, fBlend
- target platforms: Win32, x86 Linux, GP2X (maybe)
We’ll see how things go.
More about the internals:
In accordance with contest rules, here’s a note on how the framework and tile engine work.
The game is treated as a series of states – a state for the main menu, a state for gameplay, and so on. There is a state structure that looks like so:
typedef struct
{
unsigned which;
void (*init)(void);
void (*tick)(void);
void (*draw)(void);
void (*load)(void);
void (*unload)(void);
} GAMESTATE;
Before we start executing any game logic, there is an array of gamestate structs that gets populated with the functions from the various states. Each state reads input, advances counters, starts sounds, etc. in tick() and does all its painting in draw(), and these both get called at a regular rate. init() is called to reset any internal variables to their start values, and load() and unload() get or free assets from disk.
Tilemap internals
This is fairly straightforward – a level has several planes, each of which are an array of bytes that control things like what tile should be drawn where, what eyecandy should be applied to it, entity spawn points and the like.
Other
There are functions to do a few graphical tricks like waviness in water tiles, a circular wipe, full-screen blur, etc.




Just ate this.
Finally, we’re getting somewhere.



