NOTE (2009): links below are broken, but the latest
source package for the W Window system on
the main site contains all the clients.
Two player games
For some time I have been making simple games. Multi-player games are
my favorites as usually computer opponents are dumb and always too
neutral (they'll never lose temper with you ;-)). Links below contain
the C sources for the mentioned games.
All of these need my 'networked, turn based, two player game framework'
that takes care of all the networking and most of the interface issues.
It offers to various game engines a 'canvas' where to draw the game
(board, pieces etc.) and then makes callbacks to the engine through a
struct setup at the game startup.
At the moment there are only W window system and
curses specific interfaces to the framework and games, but in the game
engines the GUI dependent parts are well separated from the game logic
itself, so 'porting' one after the framework has been ported, should be
Networking is implemented using BSD socket streams. All actions make a
round trip through the opponents end to ensure game engine
synchronization. As I have visualized people using this thing on
personal computers, ATM all the games use the same port for connecting.
- A framework for W window window system and curses (15k).
Game engines available for these are (image):
- Server version is of course
GUI independent (12k). Available game servers (in case you haven't
got anyone interested in remote gaming) are:
- Pente server 'brain' is
loaned from the William Schubert's X11 GPL Pente game. (14k)
- Go server is a modified
version of the free AmiGo program. (23k)
A (W) chat utility
should be a useful for discussing about the game while playing. :-)
All of these need a relatively new W server and library. Some of
these need also Kay Römer's W Toolkit library.
- Warzone is a
simple 2-8 player artillery game for Wt. It's a bit like DOS
'Scorched Earth', but monochrome. There are a couple of weapon
and shield types, but no item count nor buying/selling. And no
computer players yet either :-(. 15k
Some of my one player games come with the W window system sources.
Did you know that making even a simple program, like the one below, work
on multiple GUIs and OSes is a lot of work?
Especially if one doesn't plan for that when starting (Wyrms started as
a plain TOS game, happily it's quite simple)...
- Wyrms is a two player worm-duel
game. Like an advanced version of XTron, or of Nibbles on PC. I
originally made my version because all the mono ST games of this
genre I have seen lacked bonuses. My version got some nice
bonuses added, like turbo for overtaking the other player, doors
and keys, worm shit will make the worm that hit it uncontrollable
for a couple of moves etc. Currently Wyrms has compilation
targets for curses, W, X11, TOS and
GEM. X11 and GEM versions need my crude grafix library. 46K (updated 17th
February 1996, v1.0)
These work with two joysticks on Atari ST-high resolution. They don't
need GEM (work under plain TOS/MiNT).
- PUNSSi was the first (arcade)
game I made in C. It's a kind of a two player ball game with
two irritating droids thrown in for some more action. They say
that this is quite fun to play (I have been asked to do a PC
(DOS) port. You may guess whether I'll comply or not...).
Screen refresh rate of 71Hz with double buffering and masking can
well be achieved even on 8MHz machines with C as game has only 5
small moving objects. (v1.2 August 24th 1997) 48K
- My second game is named GRAAVi. Sources are based on Punssi v1. The game
is about two miniature space ships shooting each other
(2D). It's a bit silly. I would have liked to do something like
Omega Race on Vic-20, but run out of motivation...
(bug-fixed 4th July 1995) 32K