AddTraction

AddTraction

Welcome to AddTraction. You may compile, play, distribute and modify the game under the terms of the GNU General Public License.

The Game

Two players ("red" and "green") take their turns on a 6x6 board. In the beginning the board is empty except for a red "1" in the upper left and a green "1" in the lower right.

Making a turn means setting one field of the board. Setting a field makes it assume the sum of the points of the 8 surrounding fields, e. g.

11    =>  11  
2X  24 
       

But there is a catch: If the field is of the opponent's color, their score is subtracted rather than added. If the resulting score is positive, the field will get your color, else your opponent's color. The same happens to the global score, which is just a colored difference of the score of all fields on the board.

If the score in the end is red, red wins. If it is green, green wins. If it is black (0), it is a draw. Have fun!

Oh, and if you have enough of it before the game is over, just press 'q' or 'ESC', or you can just close the window. Else, if all fields are filled, the program will exit on the next mouse button or key press.

Requirements

This game requires libSDL - tested with version 1.2.6, but it should probably run with any version since 1.something. The window resolution is (for now) set fixed at 800x600 pixels at 16bpp. I have not tested what SDL does to a screen with lower resolutions.

Screen Shot

Screenshot of V0.001
Click on the image to see a full-size screenie (44k).

Download

Get the source tarball (ca. 53k) here (latest version: 0.002). Expect just the game, no bells and whistles. This is just an early release to get some feedback.

Changelog

Version 0.002
  • Cursor keyboard control
  • Window title
  • remove lua prototype version
Version 0.001
  • initial release

To Do

Control:

  1. Factor out player, create a generic interface (probably callback) Mouse Player, Keyboard Player
  2. Create an option panel for player/gfx control

Graphics:

  1. Factor out graphics interface to make the game more portable and maintainable
  2. Accept different screen sizes (crop fields, resize fonts)
  3. Highlight fields that can be set (using alpha?)
  4. Fullscreen option
  5. Use alpha effect for coloring fields (shave 24k off)
  6. Optionally use SDL_image and jpgs (to make the download smaller)

Network:

  1. Accept network players (on generic interface) using inet.h or SDL_net. Probably TCP/IP with small ascii protocol
  2. Create a no-graphics server

AI:

  1. Create stupid computer opponents (using generic interface)
  2. Create brute force minimax opponent using score as rating
  3. Try out more complex rating function

Saving and Loading, Replay:

  1. Create ascii file format for games (probably using A1..F6 as fields)
  2. Create replay function

Diary

This is not really a diary, but a scrap space to put forth my ideas on how to implement specific things. This should be of interest to those who want to join (yes, I mean YOU! :-) or just want to know where the development is headed.

2004-01-26: Generic Player Interface

Linkback

Have a look at the project entry at freshmeat.net and rate AddTraction if you like it.

AddTraction has reached this rating at the Linux Game Tome: Game Tome rating

Gfx by Gimp  Valid XHTML 1.0 
Transitional  SourceForge Logo last modified:
2004-01-26 by llogiq