NeL: The Software Behind the Next Great MMORPG?by Howard Wen
Giving away the engine that runs a game you plan to sell may not seem like good business sense, especially if you're in the midst of making the game. But the developers of Ryzom see things differently.
Like EverQuest and Star Wars Galaxies, Ryzom will be a massive multi-player online role-playing game (MMORPG) with immersive 3D graphics. The developers have released Ryzom's engine code under the GNU General Public License. Ryzom itself won't be going live online until late 2003, at the earliest. Nevrax, the creators, have offices in London, England and Paris, which is the center of development. (Indeed, the game's characters and settings sport a French, surrealistic-fantasy design sensibility.)
So how does Nevrax hope to make money? They see that the real monetary value of any MMORPG lies in its subscription service—players paying regular fees for the access to play—not in the software. The company still retains the copyright and other rights to Ryzom itself, and the final product will be distributed and sold in typical retail packaging. But the engine that powers it all, called NeL, is free for others to download, modify, and use for their own purposes.
Just As Good As, If Not Better Than, EverQuest?
NeL (for Nevrax Library) is a toolkit for the creating 3D-graphic MMORPGs or similar online game-play environments that require both client and server code. It runs on the Linux and Windows OSes, using OpenGL as its 3D graphics renderer.
While there are other MMORPG engines in development, with code that has been released to the public (WorldForge, a non-commercial project, is the most notable), NeL's technology is much more extensive, even in its present state. Says Vincent Caron, a Parisian software developer. "I began about two years ago to watch for projects that could support MMORPG development. You could find 3D engines, but not a whole and coherent thing to deal with all the aspects of MMORPG."
He then discovered NeL, which consists not only of a 3D graphics engine, but also networking, AI, audio and other code necessary for the development of an MMORPG. Today, Caron helps to maintain the NeL public releases.
Compared to a commercial MMORPG 3D graphics engine like EverQuest, NeL, or so its developers claim, gives artists more flexibility for modeling outdoor settings, with better rendering, and lighting model capabilities. Its major features include:
- A landscape renderer that creates environments with "patches" of land, blending together these sub-divisions with vertex shaders.
- Landscapes that can extend for more than 1 kilometer (0.62 mile) of virtual distances.
- Physical ground features in the landscape, such as holes in the ground and tunnels.
- An efficient lighting system for indoor and outdoor environments.
- A traditional indoor portal clipping system.
- Multi-Resolution Mesh (MRM) technology that can automatically scale down the complexity of a character model to conserve processing power.
- An efficient and powerful special effects manager.
- A large set of interpolators which users can use to animate most model parameters.
- A Level of Detail (LOD) balancing system that provides the best possible rendering quality for the number of character models and special effects that need to be rendered.
- Continuous streaming of textures from the hard disk during the game.
The "Extreme" Code Within NeL
Cyril Corvazier is Nevrax's lead 3D programmer. The Paris-based programmer's major work for NeL has been its 3D library modules and tools. Corvazier summarizes the toolkit's technical goals into three points:
- Immersion: NeL must be able to render high-quality 3D graphics.
- Massive: the engine must maintain a good level of performance while displaying a large online population of players and other characters.
- Open: the engine code must be easily understandable and extendable for the benefit of the open source and free software community.
NeL is written in several languages, including C++ with STL, RTTI, some assembly language, and Bash for the engine's data builder system. With the exception of external libraries like STLport, FreeType, libXML and libJPG, the NeL developers created their engine's code from scratch.
"This is 'Stroustrupian C++', or, if you prefer, 'extreme C++'," jokes Caron, describing NeL's code recipe. "This [combination of languages] was a good decision, since the project had to scale to great proportions: it's 500,000 lines of code today. Doing C++ on the edge was a bit painful, since C++ compilers are always seriously lagging behind the C++ standard, especially the STL part."
"As a personal note, I regret only C++ was used. A bunch of high-level things could be done much faster with scripting languages. I'm mostly thinking about the tools suite, which is much too painful to maintain."
"The tools in this project take a very large part. NeL has more lines of code in tools than in the engine. The tools take a lot of time for maintenance," explains Corvazier.
When it comes to designing an MMORPG engine, the toughest job, obviously, is figuring out how to render efficiently large numbers of environments and characters. The key to accomplishing this with NeL has been its developers' mastery of the code's "data pipeline".
"The data pipeline has to be smooth because, in an MMORPG, we handle thousands of small assets," says Corvazier. "NeL provides an automatic process to build the runtime data from the artist database automatically. The data production for NeL is a complex problem. NeL deals with 20 media file formats, most of them exported and built from the artist database."
This production pathway is the critical part, according to Caron. "You end up with a lot of data in most MMORPG games. You need an efficient way to go from your artist's data to the compiled game-set. And you need to do it in a continuous way, while your world is running."
Wanted: Direct3D Driver and Good Documentation
Contributors are always welcome and encouraged. The big item on the development wish list is a Direct3D driver. "The interface for the rendering driver is simple, and it doesn't change a lot now. It is for a commercial OS, but some 3D cards have really bad OpenGL drivers," says Corvazier.
NeL also needs more models, indoor and outdoor environment maps, sound samples, shaders, textures, documentation, and tutorials.
Caron describes the necessity of good documentation for a project of this size. "Documentation is a key point. Actually, the code itself should stand as part of the doc—only what's not in the code should be documented [such as] what functionalities the coder intended to bring. [It should] help newbies get into your code."
Because of all of these complex technologies which needed to be planned for and developed, Corvazier came to a personal conclusion regarding both the organizational and technical development process of NeL. "In an open source project with contributors—free software or not—I think it is best that the kernel design is made by a small team and then frozen as long as possible. All external contributions can be integrated, as long as you use the same version of the engine kernel."
Pages: 1, 2