WorldForge: In Pursuit of Open Source, Massive, Online Games
Pages: 1, 2
Technical challenges of online development
Designing these online, role-playing games under the open source model has presented three challenges unique to this category of gaming development that the WorldForge community has been working to iron out.
Database Reliability. MMORPG servers typically use a database to store the game-world state, and the performance and reliability of such a database is critical. The problem that the WorldForge team faces is finding a good open source or freeware database system that can fulfill the job. "It remains to be seen whether a free RDBMS is available that is good enough for our needs," says Riddoch.
"MySQL performs poorly under a heavy load," he says. "In particular, it does not handle very large tables well and does not optimize complex queries well. Until recently, PostgreSQL was generally too slow, though recent performance improvements mean that it is now a good candidate, and it's currently the preferred database for WorldForge servers."
But PostgreSQL has its own drawbacks, says Bryce Harrington, WorldForge's Project Coordinator and a 30-year-old engineer from Tigard, Oregon who works at the Open Source Development Lab. PostgreSQL "has many of the needed features MySQL lacks but is a little stricter. For read-only applications it can be significantly slower than MySQL, but we have not done any benchmarking or timing so we can't really say much there.
"Our database design is only modestly relational. Most of the data goes in just a small number of tables. Because of this, our database needs are going to emphasize the need for a few specific features, such as row-level locking and query caching. We believe PostgreSQL is a better fit than MySQL on these counts, but we aren't ruling out the possibility that other databases may be even better suited."
Core Servers. "There is very little information on such systems, whereas clients--especially on the graphics side--are quite well described," says James Turner.
There are lots of articles discussing client and server design for Quake-style games, but the WorldForge programmers have found scant information that elaborates on how server setups for other types of online games are put together. Apparently, commercial, online game developers are reticent about revealing the inner-workings of their servers. Using existing MOO, MUD, and MUSH code hasn't been of much help either.
So, for now, server design has been a guessing game. "While the basic functions [of the server] are obvious, in three years we have seen all manner of proposals as to how the game server should be architectured," says Turner.
Performance Issues. With Acorn, the performance of the game has bogged down largely due to the game's artificial intelligence (AI) engine. This is going to be tuned-up in future releases of Acorn, but it could be the tip of the iceberg: What will happen when future games, loaded with more features, are developed?
"Until we start scaling up the number of clients, rule-sets, types of objects, number of objects, and number of moving and colliding objects, we don't really know which aspect is going to limit us," admits Turner. "Will all these things scale equally? Will we spend 95 percent of our time doing collision detection? Everyone is writing their code with the expectation that it won't hog vast amounts of CPU, but until we start scaling the world up, we're just guessing. Still, we are trying to 'optimize last'--or at least not prematurely."
Think big but develop small
Despite the technical hurdles, the WorldForge programmers confidently feel that such problems are the least of their worries and definitely manageable. Along with building good code and organizing a team of talented programmers, the primary lesson to learn from the WorldForge community, when it comes to creating a complicated game under the open source model, is to take things a little at a time. Every mini-game, like Acorn and Mason, that they can successfully make will eventually lead to the bigger goal of building a more large-scale, online gaming experience. "Developing our games incrementally lightens the brain load considerably," says White.
In terms of features and technology, WorldForge's programmers think they will be able to match or exceed the commercial offerings eventually, as long as they stick to their "incremental" plan of action. That may sound a wee bit optimistic or naive, but already the programming for the non-player characters in Acorn is as sophisticated as that of many commercial titles.
"Cyphesis, the server for Acorn, uses a goal-based system for programming non-player characters that allows us more advanced behavior than that displayed in the commercial MMORPGs I have played," says Riddoch.
For example, the pig sellers in Acorn are only around during the morning and afternoon. At lunchtime and in the evening, they hang out at the inn. The pigs themselves have herding behavior, which means that if a group of pigs stays together for some time, it can be driven as a herd. "Acorn only touches the surface of the capabilities of our code," says Riddoch. "It is my hope that later games will demonstrate how much depth our non-player characters can have."
"It should be added that in spite of, or perhaps because of, these capabilities, the quantity of players that can be supported by Cyphesis may be rather limited, especially compared with the [commercial] MMORPGs," admits Harrington. "However, we did not intend Cyphesis to handle such intense loads. Its objective is to provide specialized AI services and, thus, to run as a specialized subsystem for the main server."
Making your own worlds
The biggest strength of the WorldForge project is that the community can support the type of online games which might not be viable in the commercial marketplace. Since there is no need to be concerned with drawing in large numbers of paying subscribers to recover capital investments, the focus can then be on creating specialized games for a niche of players. To encourage this sort of development, the WorldForge project offers the tools for anyone to develop his or her own online, role-play worlds and rule-sets.
That's what the people contributing to WorldForge envision as the "ultimate" online world: one where players can not only romp but can also alter to create a whole other virtual world experience for others to enjoy. The more unique these massive, online worlds are, the better.
"What you'll see is everyone's idea of a good game coming to light," says Oliver White. "People with expertise in various subjects will be able to have their say on how to implement game rules, from fencing experts to fluid dynamicists to ecologists to indigenous theologians."
Return to the Linux DevCenter.