Over the last few months, we’ve published several exclusive dev diaries from El Somni Quas, an indie sandbox from a Czech studio that cut its teeth on Ultima Online emulators and plans to port a lot of the ideas it tested there into its built-from-scratch 3-D venture. The first diary covered the game’s arena design, while the second focused on free-for-all PvP and sandbox features like housing.
Today’s deep-dive, penned by David Šanda, covers the game’s technological roots, its search for a proper game engine, and how the team has basically rebuilt the game from scratch.
Remember, that all this was long time ago, when death meant you lost all items and chunks of your experience. There is a revival of this trend in modern survival games. But these are nothing like MMOs; they are more like prolonged PvP matches. New times require new approaches.
This server is running to this very day. Let’s face it: It is old and has been old for a long time. We realized this and decided, after much deliberation, to create a new generation of our game, in 3D with all the bells and whistles and taking in the very best of what current generation of MMOs invented since Ultima Online, but still keeping with the spirit of that old game and its core rules.
But we knew we didn’t have the resources and skills to create a full 3D engine. Because of that, we considered “appropriating” some RPG game as a client and building a server for it. While we considered this and did some tests, we stumbled upon the earliest version of Ryzom, which went open source that time. We fled quickly, for there was virtually no documentation and we were rather scared.
Then came Unity3D. It was heaven-sent, striking exactly the right balance of possibilities, difficulty, and accessibility. Rather quickly, we had nice proofs-of-concept and assets started flowing in, as even before Unity3D there was a strong community of people who enjoyed making detailed 3d models of, well, everything in order to be able to render nice 3D scenes. Go figure. We put their hobby to a good use.
Assets are any and all 3D objects you see in the game world. Everything you see but terrain is an asset. A chair, that colossal black dragon we have prepared for you, small branches and grass washed up on the beach are all assets. That church on a cliff in our crater city is a single asset. These things take a lot of work and passion to create and it is a specialization in itself. My artistically oriented pals could go on for hours about various technical details. I am sure we will share some of this with you sooner or later, as it is rather enlightening and allows you to appreciate finer points of your surroundings when walking around in any MMO.
We are essentially a very small team. Roughly seven people. Can we do assets of the quality you see in our screenshots? Yes, we can, but we have not enough resources to produce it in amount necessary for our game. Your cookie-cutter MMO is a large team with a large art department, which churns out these assets and they are used exactly for the single project. Reuse across games or teams is rather rare. This is also part of what makes this development so damn expensive.
However, there are other people who specialize in asset creation for games. We would rather spend our time and energy on putting all these building blocks together to create the best game, so we simply buy these. Were it not possible, there would be no game (and no indie games at all). This talented polish artist who does great buildings. That workaholic US guy, who does monsters and NPCs and some animations and plenty of others. We contact these people, we work with them to make their product suit us and we buy it. Good money in total, but still something we can afford.
This practice is common even for seriously funded projects – for example, Shroud of the Avatar. [MOP’s note: This is true. -Eds]
We set out with giant task of crafting a fully fledged 3D world. Using world machine, L3DT and other technologies, we did terrain. After a LOT of iterations, we set out to populate it with randomized vegetation and clutters, and then we started to build cities, taking visual inspirations and leaving subtle hints for those who played Endor.
We then struck a deal with a nice university startup from Australia called Badumna. They had, at the time, a cutting-edge peer-to-peer networking system, which held much promise. Unfortunately, they did not get enough funding to be able to get from early promising prototypes to rock-solid, iron-clad reliability. And when doing P2P, nothing less will do. Some may theorize that no P2P systems really work in gaming environment larger than small. If you doubt this, consider Elite Dangerous: all but dead due to this very choice and core constraints stemming from it, severely limiting basic foundation upon which you can build actual game. [MOP’s note: We’re pretty sure Elite is not “all but dead.” -Eds]
Unfortunately, these were lessons we paid dearly for in hard-earned cash and more importantly in wasted development time. Now, with the two-year delay, we rely on our own functional networking code.
Once our world grew bigger and bigger, so did our woes with Unity3D. It is a great tool for making a proof-of-concept project, for isometric, small-scene adventures (think Wasteland 2 or Tides of Numenera), but our conclusion is that it is most certainly not useful for serious projects like an open-world MMO (huge stability and performance issues, nothing works as advertised, etc.).
So we started looking elsewhere. Eventually, we found Unigine (maybe you’ve heard about Valley benchmark; this is the technology behind it). It’s a company run by an elite team of developers based in Omsk, Russia. These guys know what they are doing, they are rather expensive (inaccessible to the Unity3D casual crowd), and their tech works. The results are worth every penny. Stable, fast, perfect support, and unlike any other available engine, perfectly suitable for large, open-world games (CryEngine and Unreal Engine are wonderful for level based games, but large open world game placed on terrain with hundreds of square kilometers would require reworking of half the engine). So the work of porting from Unity3D to Unigine started. Much had to be thrown away. And much was thrown away due to obsolescence.
Our standards grew and old assets were not good enough. In essence, we pretty much rebuilt the world from scratch.
Now we are finally at the point where we are taking everything we did during the last years andconnecting it into one piece. Currently, we are busy connecting everything our server technology does to the client and making sure our super nice animation system works smoothly and without embarrassing bugs and looks good. Running, sitting, talking, chatting and a bit of fight are already in, but we are not fully there yet. We are not even ready to announce the infamous Soon™, but we are happily busy and making progress.
We’d like to thank the ESQ developers for sharing their design plans with our readers. You can read more on the official website.