NeL: The Software Behind the Next Great MMORPG?
Pages: 1, 2
The Developers Speak
O'Reilly Network: How did the decision come to release NeL as free software? Did Nevrax consider licensing the engine to other game developers for money? What advantages for itself does the company see in releasing the code to the public?
Olivier Lejade: That decision was basically mine.
As making free software was one of the founding principles of Nevrax, we never really considered licensing the engine. There is a very limited market for game engines anyway. Unless you're John Carmack or Tim Sweeney, you're going to have a hard time making money out of licensing a game engine.
At one point, we did consider providing commercial support to game developers who wanted to use NeL. But, understandably, most people are wary of using an engine that hasn't been used in a commercial game beforehand. So the market wasn't really there either. Therefore, we decided to first concentrate on releasing our game (Ryzom) and, from there, see how the demand for commercial support goes. Since I've left the company, I have no idea what the plans of Nevrax's current management are regarding this issue.
Now, about the reasoning behind this decision:
I wanted NeL to be free software, first and foremost, out of principle. I believe that software should be free (as in "freedom"). I came up with Nevrax's original business model out of my interest for the free software community. I was looking for a way to create a strong business, while only releasing free software.
It turned out that the MMO industry is a very good way to do this. In a Massively Multiplayer Online game, you're not selling a software product, you're selling a service for a monthly fee, access to a virtual environment and its community of players. Of course, you need to create software in order to do this, but that's not really what you're selling. What you are selling is the gameplay, the immersion, the support and, sometimes, the community itself. This "overall experience", unlike software, is unique. That is what you want to keep proprietary.
Creating and, especially, maintaining the software necessary to do this can be seen as a sunk cost. So you want all the help you can get with it. That's why we think having NeL as free software makes sense on the business side of things. By lowering the barrier of entry on the technology side and sharing the costs, we're hoping to be able to focus on what really makes the difference in a "persistent world": The conception, the artistic design, and the administration of these worlds.
Actually, that is exactly what I am doing with my new company, Mekensleep. Thanks to Nevrax doing the grunt work, [my company] is now able to build its persistent world without investing massive time in the development of an engine.
Other Linux Interviews
ORN: In what ways has releasing the code helped the development of NeL, and Ryzom, as well?
Vincent Caron: Nevrax could get feedback on their code, some help on the portability issue, and was naturally encouraged to maintain minimal documentation requested by external people. Even if [these things] helped only minimally, it surely didn't cost them a lot. I hope they release the Ryzom code for the beta test, since it would be the right and crucial time to let it be scrutinized by a lot of avid hackers. Waiting for real hacking during game exploitation is asking for trouble.
ORN: You mentioned that the C++ coding of NeL has been "on the edge" throughout its development. Is there anything in particular that you would do differently with the programming, in hindsight?
VC: Two years ago, embedding Python code was a high priority. This has been sadly dismissed, but in my honest opinion [should have been] the way to go. A fair amount of code in an MMORPG is not in a critical code path, because it is simply gluing low-level functions like 3D, sound and network. When you wrap your low-level and "fast" C++ code into Python classes, you're encouraged to make the simplest interface for both the C++ wrapper's and Python coder's sakes. The other point is that it's easier to convert existing Python code into C++ native implementation than the other way around. And a Python development cycle is many orders faster than C++'s; compile times just get insane at 500,000 lines, even with high-end hardware.
The same reasoning above works with other high-level, interpreted languages. Python has a wide audience, is free, small, fast, well-designed, and ultra portable.
ORN: Give us an example of how easy it is to develop a game under NeL compared to using other engine systems.
VC: I wouldn't compare game libraries on such a basis. NeL has a steep learning curve. It's a broad and complex piece of software. What's important for me is to have the game done. If it can be done easily, all the better. But in the rather recent and complex world of MMORPG, I don't think most concepts are popular enough to make a game library immediately intuitive and easy-to-use. However, this is what we should all be aiming for in the long term, no doubt.
ORN: What would you say is the most difficult thing about creating an MMORPG?
VC: I would say adding the social part on a large scale is tricky, and software infrastructure design. For the latter, I'm mainly talking about the networking problem. Servers must be of high availability, very scalable, very maintainable, and secure. This is not the e-commerce and banking thing; we have to secure gameplay. Besides protection of the player's data, we need to make sure the game itself can still be enjoyed by everyone at any time. This goes from basic cracking protection to well-thought game and policy design. This needs transparency, humility, and a lot of testing, as well as good sys-admin and game-design understanding and cooperation.
OL: Almost everything is a major challenge. But if I have to pick one thing, I'll say it's making the right decisions in the conceptual design. There really is no absolute way to do this. It all depends on what size and type of community you want to cultivate. Even if you count the first MUDs, building persistent worlds is still a very recent craft. There's still plenty of room for experimenting, trial and error.
ORN: What advice (game design or programming) do you have for those who are interested in using NeL to create an MMORPG, or other kind of online virtual world environment?
OL: Be prepared to read a lot and think hard before doing anything. There's tons of useful material out there: research documents, code, mailing lists, etc.. Use it!
VC: The code is available. You'll certainly have [to have] time and talent to use it. Now do you have the data? Explore the tools. If you have some [game] design and data, then the code will follow naturally. Code without data is not a game and gets quickly boring for the coder.
ORN: Do any of you play one of the MMORPGs on the market? Which ones are your favorites, and why?
OL: I've tested all of them, I think, but I can't say I have any favorite yet. If I really had to name one, it would be A Tale in the Desert; certainly not for the graphics or the engine, but for the originality of the conceptual design. At least [its lead designer] and crew are trying new, interesting things.
VC: Funnily, I prefer the good ol' arcade games. I have never played an MMORPG.
Return to the Linux DevCenter.