Friday, July 31, 2009

Development Update

1. What is hopefully the last memory leak has been fixed in revision 484, after a few days of investigation (turns out it involved how NPC position updates were sent from the server). At this point there are no significant remaining bugs that I am aware of, code-wise things are basically ready for the 1.0 release of the Intensity Engine.

2. After 10 days of fairly strict test-driven development (the Django test client is quite useful), the new master server is mostly complete. It should soon be usable as a replacement for the minimaster.

Friday, July 24, 2009

New Master Server in Progress

I'm writing a new master server which will replace both the Syntensity master server (which was hacked together a long time ago, as a proof of concept, and never open sourced) and the minimaster (which will remain useful for testing, standalone demos, etc.).

The new master is in /master_django. It's written, as the name indicates, using Django, and includes a script to run it on CherryPy, which makes deployment very easy (the Django dev server isn't suitable for production, which is why something like CherryPy is needed; of course, you can also use Apache/lighttpd/etc., but that requires some setting up).

The goals with the new master server are
  • Clean extensible codebase: Beyond the basic functionality, additional features will be implemented as plugins
  • Federation: Allow anyone to easily customize and run their own Intensity Engine master server
Note that the new master is orthogonal to the Intensity Engine 1.0 release - it's optional at this point, and the 1.0 release won't wait for it. What does depend on the new master is the public launch of Syntensity. In other words, the current status is:
  • The Intensity Engine 1.0 release depends on the existence of a few good maps/games
  • The public launch of Syntensity depends on the Intensity Engine 1.0 release and on completion of the new master server

Friday, July 17, 2009

Platforms Video

I've been mostly busy with the business side of this project in past weeks, but today I found the time to do some coding, so I worked on another optional library, Platforms.js, a platforms library for multiplayer. This is still kind of buggy, but the basics sort of work.