Tomba's

The homepage of Tomi Valkeinen

My Game - Nethack/Dwarf Fortress game

MyGame is a work name for my game project. MyGame is a Nethack/Dwarf Fortress style game (and game engine) implemented in C#. Some of the most notable differences include:

  • Client/Server model
  • Multiplayer and Spectator mode
  • Graphical user interface with graphical tiles or old-school character tiles
  • Fully storable history, with recording and playback
  • User modifiable/scriptable client
  • Plug-in worlds

The game is not playable yet, but it can be started and one can do things like move around in the world, change the environment, give jobs to "dwarfs", and run IronPython scripts on the server side.

MyGame contains two semi-interesting sub-projects, which may be of interest to someone: a very quick and simple serializer and a fast memory mapped debug log system.

NetSerializer

A fast, mean and lean serializer for .Net

See http://gitorious.org/netserializer/pages/Home for more information.

MemoryMappedLog

I also wanted a high performance logging, and with high performance I mean that the logging entity must not be affected by the logging.  For this I implemented a circular buffer located in a memory mapped file, and writing there should be pretty efficient.

I've also implemented simple LogViewer that can be used to read the logs. The LogViewer is not particularly efficient, mainly due to the UI control used to show the log messages. So there's room for improvement =).

Sources

MyGame is currently licensed under GPLv2 and the sources can be found from http://gitorious.org/tomba/mygame