What Went Wrong
1. Premature release of the game under of the pressure of the first publisher (Montecristo Games).
When Montecristo games agreed to publish Legacy (then known as Star Peace) in 2000, we immediately started the process of transforming the game from beta to gold. From the beginning it was clear that there was substantial work to be done, and even though we provided Montecristo with estimates of the time it would take, the release date was nevertheless pushed up on us.
Eager to launch the game as soon as possible, a very ambitious launch date was set, preceded by an open beta that only lasted one month. We warned the publisher that more time was necessary for extensive testing, but they decided to go forward with releasing it anyway.
Naturally, the launch was a disaster. The game suffered prolonged periods of downtime, with our programmers struggling behind the scenes to patch problems overnight. In hindsight one could say the launch was doomed; we were inexperienced when it came to dealing with a publisher, and Montecristo was inexperienced in the online space (Star Peace was the first online game they launched). Let's just say it wasn't a match made in heaven.
After a few months of mayhem, our collaboration with Montecristo ended. We brought the servers back to Ottawa (they had been in London, England) and we took over the game. The resulting improvement in service was immediate. Players refer to that period as the "Dark Ages".
2. The use of a cache system based on files instead of a database. As a strategy game, the main duty of Legacy Online's servers is to simulate the game's virtual worlds. The CPU is a sacred resource that the game simulation servers have to make the most of. But what happens when the players want to see what is going on? If the server running the virtual world had to respond to every single request made by players, the simulation would slow down far too much.
To deal with this issue it was necessary to implement a cache system on the backend of the server application to hold copies of most of the objects in the simulation (not all of them -- just those of interest for game play). This cache is only updated when it becomes too old as compared to the one on the server. We used the well-known idea of the TTL--Time To Leave.
The problem was that we implemented the cache system using the Windows File System. Windows File System is fast and somewhat reliable, but for the type of caching we do, a database was the better option. However, at the time databases were too slow so we had to be innovative.
We have since found that databases are faster than the file and cache system. If we were to start over, we would probably have implemented the cache using a database, possibly embedded in the same database as the game's directory server for performance reasons. Yet with constant optimizations, we have made the current cache system more than adequate for the game's needs.
3. Choosing Delphi 5 for client/server programming. One of the most unusual things about Legacy Online is the language we used to develop the servers and the client. In the game's early design and implementation stages we spent a lot of time discussing which language and platform to use. At the time, Java was getting lots of hype, and while we were very fond of the language, after some initial testing we decided it was not the best choice.
The original team that began work on Star Peace had extensive experience with Object Pascal (the language used in Borland Delphi 3.0), which at the time was superior in terms of features when compared to most programming languages on the market -- including C++ and Java.
The other good thing about Borland Delphi as a platform was its easy and fast development cycle, which was great for prototyping applications. Delphi initially facilitated the development of our homemade ORB, RemDO.
At that time, to achieve the same results in C++ would have likely taken the team three times as long. Also in Delphi's favor was the fact that the game used language features that C++ does not even offer today, like RTTI (Run Time Typing Information) and Meta Classes. However, the effort to adapt the design to a C++ implementation would have permitted us to port the game server to other platforms like Unix or Linux (it currently runs on Windows NT/2000). That would open up our hosting choices for the game, considering that many of these operating systems do a better job of using the server's system resources.
Using C++ also would have allowed us optimize more code for the servers and provide a faster simulation. Borland lacks experience in terms of code generation and optimization when compared to its competitors in the market. When considering the innovative things we've seen in other languages, if we had the chance to do it all again, we'd use another language. No offense, Borland!
4. Learning curve for players was higher than expected. Given the fact that Legacy Online is a very deep game with many nuances, it takes new players substantial time to become experts. From the beginning, the steep learning curve became evident, and even with an easy and intuitive graphic interface, we lost a lot of players who were scared off by the game's complexity.
Potential publishers were often concerned that the game's complexity would negatively impact newbies. Consequently, we created different tools to help new players understand the game. For instance, it's made clear to all newbies before they start that they should expect to go bankrupt more than once as they begin to understand the economy in the game -- and that those bankruptcies would not penalize them moving forward.
Another element instrumental in helping solve this problem is the player community itself, particular our older players. These experienced players go out of their way to help new players get started. Every time someone new joined the game, they could always count on someone helping them out.
When Sega.com came aboard, it was clear that we couldn't simply lean on the good will of some altruistic players, so we decided to start the "Ambassador" program and create a new tutorial.
Legacy Online is a deep game with many nuances, which prompted Oceanus to institute an "Ambassador" program to help new players come up to speed.
We appointed 70 of the most senior players as ambassadors, applying strict criteria in the selection process. As an ambassador, a player receives in-game perks while providing guidance to other players. Ambassadors are identified in the game with a special icon so that they are easily recognizable by new players. Moreover, we gave these ambassadors direct access to the developers and a special in-game forum. Such seasoned players are extremely helpful to the development team, especially when testing out new features.
We also created a new game tutorial. An old version of the tutorial was created years ago when the game was quite different, so we decided to scratch it and go back to the drawing board. Our goal was to provide a step-by-step guide for new players that not only presented a quick explanation of the game interface and tips for setting up a profitable company, but to provide more information for players that wanted to know more than the bare essentials.
The tutorial uses a web-based component, with a system of calls from the server that alerts the tutorial if the player has completed every single step. At the same time, a system of links allows a player interested in more information to easily access it.
Both solutions have proven successful: the game's learning curve is now less than half an hour, the time to complete the tutorial, and the ambassador system effectively institutionalizes the interactive aspects of the game we seek to promote. The tutorial was not only praised by many players, but noted in recent reviews as well.
5. Insufficient funding, Visas issues, other workplace problems. As noted at the beginning this article, Legacy Online is was made possible thanks to Canada's Pilot Visa Project for foreign IT workers. This enabled the team to set up shop in Ottawa. Ottawa is not a hub for game developers in Canada, so that presented some unique challenges (Even today, fellow Canadians are shocked to hear that we are located in Ottawa -- Ottawa is synonymous with telecommunications, not game development.)
However, once we relocated to Canada, the team faced the challenge every start-up deals with: big dreams but not much money. It hasn't been easy bringing Legacy to the point it is now. We needed to assign some of the team members to outside consulting work in order to generate revenue. At times, some key developers of Star Peace had to be deployed for long periods of time in these side jobs, because it was particularly suitable to their skills.
For eight months in 2001, only one person was managing Star Peace, dealing with all issues from programming new features to game mastering and troubleshooting. At the time, players knew the team was small -- but they didn't know just how small. Despite that "one man band" period in our history, the game ran reasonably well and customer service was excellent. The only evident limitation was that features couldn't be added as quickly as players would have liked.
On To New MMOGs…
Developing Legacy Online has been a great ride. It was the first game for all of us, so we expected to learn a great deal as we went along. Fortunately, at the end of the day we managed to develop a product that made all the struggles worthwhile.
With all that we've learned professionally and personally, we are now confident in our company's ability to develop new titles, particularly MMOGs. The MMOG space is getting more crowded, but few companies out there have the same track record and knowledge as Oceanus.
of full-time developers: 5 programmers and 3 graphic designers.