Some time ago it struck me that a lot of the same methods I use in my professional life could be applied to gaming. So... I developed a server I call "Alex".
Alex has one simple task. It maintains XML-scripted game elements ("Game Objects") and their state. As state changes, clients connected to Alex receive the changed data. (This is event-driven parsing done with a SAX parser, if anyone''s interested.) That''s all it does.
What''s cool about this is that clients are considered XML entities (Game Objects, again) in the Alex server. That is, clients are not limited to users, but can be implemented as NPC/AI creatures, PvP rule-sets, other Alex servers (not yet, but soon, for scalability), and even the world map itself. This allows for parallel development of game logic/features to construct an over all game.
The use of XML to abstract elements of a game into objects forces the responsibility of rendering or "interpreting" a game solely on the client. Clients can then be developed for multiple platforms and multiple engines without disturbing other object development. (This is done everyday in B2B development, for instance, to hook up suppliers, manufacturers, distributors, etc. who all have various types of systems... Oracle, SQL, Windows, Linux/Unix.. etc.)
Alex is open source and is based on Planet 7 Technologies'' "XML Application Server". You can get the release here:
I would love some feedback at what I''m trying to accomplish. I''m by no means a seasoned game developer, but I''m more interested in the server-side of things and believe I have pertinent experience with this.
Hey.. and if anyone wants to help out.. cool!
We now have a group of people dedicated to creating an online game using Alex. But we could always use more hands!
"We are Indigenous. Welcome."
Posted this earlier on the "General Programming" board not realizing it is more appropriate here.
I''m not a professional game developer, but I do work in the lovely realm of developing online, B2B sites that force me to deal with issues such as massive scalability, server-farming, interoperability, platform-independence, and other multi-syllabic terms.