Before Mythaka, I had created a small mountain of unfinished concept games. I toyed with various styles from 2d top down zelda-like games, to 3d first person shooters, to 3d third person RPG style games. Each one had some specific thing I was trying to accomplish, mostly just to see if I could. None of these little demos ever really saw the light of day... only my family and a few friends saw most of the stuff. What wasn't lost in disk crashes or theft has been collecting virtual dust and simply occupying space on my hard drive.
One game I made eons ago actually got some attention, even if it was just within a circle of friends. It was a turn based, world war 3 game about production management, technology research and strategic battle. It had aweful graphics, only depicting the rough shape of various playable countries, and little cheesy animations for submarines, missile launches, and bomber runs. The concept was by no means original. But there were few if any multiplayer ( more than 2 player ) games for the PC available, and we were rather limited in another way: we only had 1 pc to play with. So with groups of 6-8 players, we would take turns setting up build orders, transfering tech or materials to allies, sending ICBM volleys to enemies, and occasionally sneaking submarines to backstab an ally for fun (submarines were anonymous attackers). After everyone took their turn, we would all gather around the PC for the (extra cheesy) animated battle resolution sequence, where everyone's orders took place according to an initiative roll. And finally, at the end of the round, the current leaderboard would show, ranking each player according to offense, defense, and infrastructure.
If anyone saw that game today, I'd be mortified. When I say the graphics were cheesy, it is quite likely an understatement. It was barely a step up from a board game or pen and paper RPG. But my nerdy geeky friends played it, and many many hours were wasted away on that game. The tingly sensation I felt when I watched my friends concentrating hard, trying to plan as best they could with the resources they had, agonizing over whether to commit to an attack or wait until they had more offenses built up... that sensation was addicting.
Fast forward to recent times...
In April, I searched the web for game engines suitable for building MMOs. I had done this search many times in the past, and tried almost all of the ones my budget constraints would allow. This time, I came across an engine I had not seen before... Ryzom Core. It came with the basic client, server and world building tools, and all of the source for these. It is basically the Ryzom retail game, stripped of all the world maps, NPCs, AI mobs, spells, skills, etc., pretty much just a shell waiting to be filled with game. After checking out the features available in the engine I decided this is probably the closest I am going to get to the engine I want, and the handful of things it doesn't have I can add to it.
Nearly immediately upon setting up the build environment, a number of issues became apparent. This stuff has little official documentation. What documentation exists is in wiki articles, nearly all of which are labeled WIP (work in progress) and have been in that status for quite a long time. A number of the articles are obviously outdated and some are marked "depreciated" and yet are not removed or updated... in fact other wiki articles still refer to certain sections of obsolete documentation. Instead of copying the few parts that are still relevant, these articles simply ask you to ignore most of the stuff and go straight to a certain section for what to do next. A lot is left to the developer to figure out by reading through the source. The learning curve is massive. The reason this engine doesn't get used much for indie or commercial games is obvious.
However, there is nothing like taking on an insane challenge! So I read through tons of code. A lot of time was spent in Visual Studio 2008 simply tracing through the source, finding the root code through long chains of function calls. The first item of research was the sound system, which did not want to play mp3 or wma or winamp playlists, as was advertised. When I found the root of that system, it became clear why. All of the code for dealing with anything other than ogg files was missing. I can deal with that. Next up was the emote system. I'm a sucker for animated emotes, so this seemingly insignificant thing cut to the front of the line. After 2 weeks of mucking around nearly blind (absolutely no docs at all on this) I finally figured out how to get them to work. As it turns out, I might have been able to solve the issue a few days earlier if I had known to delete a certain file so that the sytem would rebuild it.
The next important thing to figure out was in game building construction. This is not a mechanic that is built into the stock engine, but there were a few nifty things in there that I could use. Actually, certain limitations helped me steer the direction of some of my gameplay concepts. In this case, I knew I wanted the players to be able to construct buildings of various purposes. I considered a number of approaches, but they all seemed to require excessive amounts of development time. Then I came across an interesting feature... you could transform one entity (NPC) into another by switching out the data (called sheets in Ryzom Core terminology). I wondered if this could be used to transform an NPC into a building? After a round of trial and error, I found that it could indeed work. So how do I turn this into a valid gameplay mechanic?
Well, Mythaka is set in the far future. So it would be quite acceptable if the NPC was a droid. In a sort of starcraft-esqe fashion, I could animate the droid constructing the building, except from the inside out. At the end of the animation cycle, switch the data sheets, and the NPC droid becomes the building. A building with multiple animations and particle effects. Oh and the building can have an AI? Awesome. And what about upgrades? Treating the building as if it were a character with clothing/accessory parts, each with different stats and visual characteristics.... it could be pretty amazing!
Moving foward toward today...
After getting a decent feel for the engine, and managing a number of accomplishments, I decided that I could deal with the limitations of the system and make use of the mechanics that are really interesting. I was really tired of building little demos and concept games... a fully finished game with a bunch of people playing it was way past due. The last time I managed that was eons ago. I can't just dream about making an MMO forever. I have to actually do it.
After making the decision to continue the project, I registered the domain name, got webhosting on Rackspace Cloud, and built enough website to work with for now. I set up the facebook page for the game (but I still need a number of Like button clicks so that I can register the page name.) I spent a day building a server status widget, and a page with many of the resources I am using to make my game.
Where I am right now!
The last few days have been spent on building a large landmass... the maximum land size possible with the engine and tools in their current state. Since last night, my PC has been occupied continuously with the build pipeline transforming all the many bits into a playable world. While this is happening, I am working out some story issues and continuing to plan out the races and game mechanics.
There are still many details to work out on the building construction mechanic, but there are other things that also need attention. The droid (pet) system needs work. Vehicles are going to be required, since the land masses are going to be very large to accomodate player construction. Interplanetary transport needs to be addressed. The crafting system built into the engine is better than most but not spectacular... and I intend to spend a lot of time on it.
So many things to do... and lots to look forward to!
Till next time,
the Undead Dev