Crystal Space: 3D for Freeby Howard Wen
If you want to create your own 3D graphics game, you need to have a 3D graphics engine to build it on. Traditionally, your choices were limited to either programming your own graphics engine from scratch or paying a licensing fee to use another company's -- a price which typically starts out at around $100,000. But if you don't have the programming skill or money to burn, there has been a third, though relatively unknown, alternative for a while now: Crystal Space, an open-source 3D graphics engine that was created by 30-year-old Belgian programmer Jorrit Tyberghein.
Three years ago, Tyberghein wrote the first version of Crystal Space after seeing first-person shooter games like Doom and Quake and wondering how 3D graphic games like these were made. With no prior experience in graphics programming, he started by looking for information on the Internet about 3D graphics programming. Based on his personal research, he put together the first version of Crystal Space in a little over two months.
But then he had to stop developing the engine because of increasing responsibilities at his job that were taking up more of his time. "I could have let the code sit on my hard disk to rot away into oblivion," Tyberghein says. "Or, I could release it for free. I did the latter. I sent a message to some newsgroups. People could e-mail me and I would e-mail them a copy of the source."
That's how the Crystal Space community was born. Soon after Tyberghein gave away the source to Crystal Space, volunteer programmers ported the original Windows code to other platforms like DOS, Macintosh and Amiga. Interestingly, when he released Crystal Space's code to the public back then, Tyberghein wasn't aware of the term "open source" and what it meant. "I released those initial versions of Crystal Space without any license at all because I was simply not aware of the need," he says. "Now of course, I can see that Crystal Space fits very well with the open-source movement."
Yet how important is a 3D graphics software engine these days (whether it be commercial or open source), with all the advanced and powerful 3D graphics cards that are increasingly becoming standard hardware features in computers? The answer is that even with the best 3D hardware, you still need a software engine to control that hardware. There is still much to do on the engine side, such as collision detection, artificial intelligence, and simply bringing gaming elements together within a logical, coherent package.
"Even with very fast hardware, there always is a limit to what that hardware can do," Tyberghein explains. "Game demands get higher and higher. So the engine still has to do some optimization to try to limit what is sent to the hardware. Even the best hardware cannot handle millions or more polygons just by rendering them all. The engine tries to find ways to quickly determine which parts of the game's world environment are not visible and which are visible."
The games Crystal Space can play
While Crystal Space is ideal for developing first-person games, because the engine's "camera" management is independent of the engine itself, it's equally well suited for making third-person perspective games -- something along the lines of Tomb Raider. Crystal Space is suitable for racing games and flight simulators as well, although the engine's landscape rendering needs to be improved in order to make such games comparable to a commercial product, Tyberghein admits.
A number of games are currently being made with Crystal Space. Most of these are role-playing games which are being developed by volunteers under an open-source format: TimeCity, The Amateur Scrolls, and Squawk. There's also an open-source first-person shooter, Crystal Shooter, and one commercial game, 3D Ultra Minigolf (published by Sierra On-Line), that was built on an earlier version of Crystal Space. Tyberghein theorizes that many of the games being developed with Crystal Space are role-playing because the engine includes full control of one or more "camera" perspectives and initial built-in support for networking. Both of these features make it easier to develop multi-player games such as role-players.
As for how Crystal Space compares to commercial 3D graphics engines, specifically those that power Quake 3 Arena and Unreal Tournament, Tyberghein confidently says his engine is comparable in terms of visual features but not in regard to code readiness. "Crystal Space is not finished. It is working very well already, but we still have a lot to do," he says. "I'm investigating the possibility of releasing a subset of Crystal Space that would most likely be the indoor renderer." He hopes that this subset, which generates 3D graphics similar to a commercial first-person shooter graphics engine like Quake's, can be finished and released within six months.
"In general, I think CS is much richer in features since it's not just an engine, it's a cross-platform game API," says Andrew Zabolotny, a 27-year-old programmer from St. Petersburg, Russia, who has been contributing his skills to Crystal Space's high-level coding. "It provides functions for almost anything you could need in any game. For example, it has a terrain-rendering engine. We have lots of things Quake or Unreal will never need because a first-person shooter is a very specific type of game which needs just a limited set of features."
In practical 3D game development terms, however, Thomas Hieber, who is developing Crystal Shooter, concedes that "Quake 3 is awesome. This is probably the most fantastic 3D engine currently around. Crystal Space is miles away from Quake 3 Arena in my honest opinion." But the 29-year-old software engineer from Germany doesn't think that this should stop anybody from creating great games with Crystal Space. "Take a look at Tomb Raider or Half-Life. Neither has a really great 3D engine," he says, "but they have all been successful, because of the value of their game play."
Pages: 1, 2