Marsworm

rules, log file, downloads, License, Readme, SpeedHack, index


Marsworm is a small game written for the TINS Is Not SpeedHack 2003. In short, the TINS Is Not SpeedHack is an international competition in which you have to write a game using the game programming library "Allegro" within 72 hours (one weekend). It is impossible to write the game entirely before this weekend because only at the last moment (Friday 12:00 UTC) a special set of rules is published. (This is essentially the same as the Allegro SpeedHack.)

This game is based on the classic nibbles --or snake-- game. The snake however, doesn't move around a flat rectangular grid on your monitor, but it moves round a three dimensional sphere (which is one of the two moons --Phobos and Deinos-- of mars).

Screenshot - Marsworm

The Rules

In its infinite wisdom, the rule-o-matic has ruled as follows:
  1. Genre requirements:

    There is only one genre requirement:

  2. Technical requirements:

    There will be two technical requirements:

    1. You may not use a rectangular grid (i.e. tilemap). Other map shapes or cell shapes are ok (e.g. triangular, hexagonal, ...). You also may choose not to use any grid at all, but in that case it must be very clear that you are not using a grid, so in that case your choice of game type is very limited.

    2. Your game must have a real GUI, something with dialogs and buttons. You may use the allegro built-in dialog functions, some allegro add-on such as those you can find here on allegro.cc, or you may whip up one of your own. It is up to you how prominent the GUI is featured, be it only in the main menu or throughout the game.

  3. Artistic requirements:

    There will be two artistical requirements:

    1. Feature chemical formulas, e.g. H20 or C2H5OH (alcohol). You may use them as functional elements in your game, or just as background because they look cool.

    2. Your game must feature a jelly (or jello if you're American? The stuff that comes as blocks of rubbery gel which you disolve in hot water then put into the fridge to set) like substance.

  4. Bonus rule:

    There is one bonus rule:


Log file

I intended to write a 2d game this year, as simple as possible. I was thinking 'bout an tilemapped RPG or something like that. This idea was blown into pieces by the rule which prohibited the use of a rectangular grid. I didn't want to spent my time writing a hexagonal or triangular tilemapper while there is a very good rectangular tilemapper on my HD. So I decided I would try to tackle the problems of a simple 3d game and go for it.

After some thinking I decided the game would be about a sorcerer, who could mix chemicals and throw them, in the form of jellies, to the enemy. The exact chemical formula would trigger a specific particle-explosion on the enemy.

I spent the first five hours programming (the entire friday), finding out that one cannot subdivide a tetraeder to a sphere with triangles of equal size -- One has to start with an icosahedron (20 triangles).

The second day of the contest, I finally got a wireframe sphere rendered, and, after lots of struggling with angles and quaternions in 3d, I wrote the code which centers a specific triangle on the screen by rotating the sphere. It was easy then to render a sorcerer on top of the sphere and add an enemy. I also wrote a simple particle engine.

Sunday morning, the third day, it was clear that I wouldn't be able to finish this first idea with a birthday party planned in the afternoon. Since I wrote enough code to hack it into a snake game, I decided to go for that. I still had to to the GUI and the chemical formulae. Sunday around midnight, it was kinda finished. The GUI was done by one gfx_mode_select_ex() statement.

Monday I decided I had to go for a better GUI and some kind of topscore system. I fixed this in a few hours and two hours before noon it was finally finished.


Downloads


Link to TINS Is Not SpeedHack 2003 site:

TINS Is Not SpeedHack 2003