For when the current one ends, there's another waiting in line.
I've been talking to Aura on IRC, and I suggested using my game as the next compo. The game is about 90% on it's way to being functional, after that I just have to add effects (explosions mainly). I'm posting this thread now because I'd like to know if people are okay with this being a compo, and any suggestions are welcome.
Knights and Pavers (name will probably change later on) is a Turn-Based-Strategy war between teams of bots.
There are two kinds of bots: Knights and Pavers (duh). Knights are offensive units that can only walk on territory that belongs to their team (team-colored tiles). All Pavers do is walk around, but they can walk on any kind of tile. As they pass over neutral or enemy territory, that ground tile is "converted" to that of the team. Meaning now Knights can pass there.
I plan on having at least two game types: Last Bot Standing and Standard. In the last bot standing, your bots have to destroy all the enemy bots while taking care of each other. In Standard mode, you don't really care about enemy bots. You just want to distroy your enemies' base, while taking care of your own.
All the player does is watch as the bots he programmed fight someone else's. To make bots, you can use (almost) any compiler that can create a dll. Certain languages (VB6) will require a wrapper, as I'm only adding support for C++.
Creating the bot in Visual Studio:
you start an empty DLL project, and add the following line:
#include "KAPAI.H"
There is a NullBrainAI class in that file, which does nothing. You create your own brain by inheriting it ( class MyAI : public NullBrainAI{ ).
Every time it's this bot's turn to play, the Think() method is called, so you'd want to overload it. Here you can send commands to the bot telling it what direction to move or shoot. You better think quickly though. There's a time limit for thinking and if you take too long your bot is penalized by a lightning bolt. Either that or getting head-butted by a goat. Dunno. At the moment all that happens is your HP goes down and it says "Bot penalized for being a slow thinker".
When your bot is loaded, the Load() method is called. Here you can specify to the game what 3D model to load. This way you can make your own tanks/monsters/ships/characters/whatever.
Bot creation will probably change a lot for other languages, depending on their wrappers. Blanky is working on a VB6 wrapper.
Your plugin doesn't receive DarkBasic's globstruct pointer, so don't even think about cheating by moving your bot across the map in a single turn.

Also, it was programmed using DBP 5.7, so no need for the latest DX.
I'll try to post some screenshots later today or tomorrow night. It doesn't look fancy because that's not what I'm aiming for ATM. I want to get the basic game flowing before I add cool exploding cats and glowing lasers.
[edit]
Links to screenies that are to be uploaded amongst the rest of the thread:
Pic 1: Placeholder graphics, knights could walk anywhere.
Pic 2: Higher resolution, same old graphics, restrected knight movement.
Pic 3: Placeholder skybox, no more crashing, fog, shooting.
More to come later!