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.

Comments

mjau
06. Dec 2009 · 03:42 UTC
First, welcome =)
Studio PAMELA
06. Dec 2009 · 04:09 UTC
Personal we, sorry (there are actually two of us working together usually, but the other half of the team is away that weekend and won’t contribute any work).