A long way to Mahjong 0.7

Hello. I’m Michael Kapelko, OGS team programmer. I want to tell you what it took us to release OGS Mahjong with Ivan Korystin.
All in all, there were 86 tasks for Mahjong 0.7.
9 months 7 days have passed between 0.6 and 0.7 releases.
In total, I’ve spent about 325 hours in 38 weeks for Mahjong development. That means, I’ve been solving 2 tasks for about a calendar week. A task usually has been taking about 4 hours of pure time. I.e., I’ve been spending about 9 hours every week for Mahjong.
What do these 9 hours per week mean to Opensource Game Studio team?
The final goal of OGS is to create a large scale RPG like Dragon Age, Mass Effect, Witcher, etc., but right now we’re developing small scale games, exploring new technologies and looking for people who share our vision.
It all began in August 2005 when I have been in the 3rd year of a 5-year university course and posted a fanatic call at a forum to create a game that will combine the best of Gothic, Morrowind, and Half-Life 2. At that time many people decided to join the team, being just as crazy as me, thinking we can do that in a year or 2 at most. The time has shown that big complex valuable project is impossible to accomplish with a fanatic approach. Being crazy about playing games does not mean you can contribute anything to game development. It took me a lot of time (5 years) to grow as a specialist, to try different rendering engines, to graduate from university, to get a full time job, to read several smart books (Design patterns, Pragmatic programmer, Effective C++ and STL, Thinking in C++) and to buy a dozen of books waiting for my attention.
Sparse Mahjong development began in November 2009. One can see how good the “game” was by looking at the videos:
http://www.youtube.com/watch?v=X5DW4HMlGPg
http://www.youtube.com/watch?v=xp1VeooCgLw
Just a bunch of buttons with video effects, nothing more. Such picture is very common among young open source projects, what reminds me of the situation in Lybia: the rebels have been given American weapons, but it didn’t help them, because they were disorganized and untrained in using it.
It wasn’t a surprise the videos didn’t attract anyone. The open source world is full of such technological demos.
Mahjong 0.3 appeared at the beginning of 2010:
http://www.youtube.com/watch?v=Y23T0XhFJSg
Mahjong 0.4 appeared at February 2010:
http://www.youtube.com/watch?v=t72QhhQFjOg
I’ve looked into OGRE architecture at the end of February and fell in love with this graphics renderer. It was the only open source rendering engine known to me to use exceptions. In about the same time I’ve found out what C++ exception exist for and how to use them. Before that, I’ve just considered, having heard from some not so smart guys, the exceptions were simply bad.
In two months by April 2010 I got in OGRE what I had in Lightfeather:
http://www.youtube.com/watch?v=QYt91sJn8nU
On the 4th of May 2010 an unofficial Mahjong 0.5 release took place, now using OGRE:
http://www.youtube.com/watch?v=I6TpngqBAfU
The development was still sparse at that time. We started to use Google task tracker after 0.5 release. Ivan posted a list of necessary tasks for Mahjong 0.6. 50 tasks have been completed from May to July. The progress became more vivid and real with the task tracker.
On the 2nd of August 2010 the official Mahjong 0.6 release took place:
http://www.youtube.com/watch?v=UE1bTW1n1tQ
http://www.youtube.com/watch?v=voOAstn9z0k
We’ve posted the release message at several forums, at it was generally well accepted. Have a look at 0.2 video again and you’ll notice the difference. The release was so good that it made its way into one of Linux game reviews: http://maketecheasier.com/5-more-linux-games-you-probably-havent-played/2010/08/11 We found that out only after half a year passed after the release, while the review has been posted a week after the release. It was very nice and pleasing to see ourselves on the list. That only proved we have finally took the right development direction.
On the 4th of September 2010 Steve Streeting posted Work2.0 article: http://www.stevestreeting.com/2010/09/04/work-2-0/
This article changed my life. I embraced the idea. I’ve found a time management book and learnt of Lubishev A. A. who has been tracking his life time for 56 years as precisely as to 5 minute interval. Digging the Internet deeper in search for the man, I’ve found a book about him written by Гранин Д. А.: “Эта странная жизнь”. I’ve read the book and decided to track my life time too. First, I’ve been using Mozilla Sunbird, but since it was very uncovenient for the task I’ve wrote my own and called it Lubishev: https://bitbucket.org/kornerr/lubishev/overview
The switch from Sunbird to Lubishev took place on the 20th of December 2010, that’s why you see the 20th of December 2010 in the beginning of the article. Time spendings before that time are very hard to gather, so I’ve just made an approximation. In Lubishev all data is stored in SQLite database, so, to calculate the spent time, I’ve just had to use a simple query with aggregation.
So what do these 9 hours per week mean to a project? Let’s have a look at a big picture.
Many people wish to create something big like a great game in a year or 2. They have no skill, but they have faith. Faith alone didn’t take me far enough. Only to technological demos. I’ve tracked Mahjong 0.7 development time (since 2010-12-20) as precisely as to 5 minutes. I even track what time I spend now when I’m writing this article (as time spent for Mahjong). Concrete time spendings allow me to estimate how much time it takes to create a simple game like Mahjong.
I’ve been spending 9 hours a week for the project. A programmer working full time (40 hours a week) at a job would spend these 9 hours within 1.5 days if we take that in 8 hours only 6 hours are pure development time. I.e., if I would develop Mahjong at a job, I would do it 3 times faster. I would only spend 3 months to solve 86 tasks and release Mahjong 0.7. So a usual employed worker would do this work 3 times faster than a hobbyist.
We have 29 tasks for Mahjong 0.8 at the moment. It would take about 15 weeks, or 3 months. If I would be developing Mahjong at a job, 0.8 would come out in a month. If we take that I continue to develop Mahjong at current rate, Mahjong 1.0 will be released by the end of 2011. So, Mahjong development takes 1.5 years. A usual worker would do it in half a year.
It’s hard to estimate how much time is necessary to create a full scale RPG like Witcher all alone. But we can use some real data. Todd Howard, the head of Bethesda who gave the world The elder scrolls series, in one of the interviews said they have 60 people in the team. It took them (Wikipedia says Skyrim development has been started right after Fallout 3 release at the end of 2008) about 3 years to create Skyrim. That means one has to spend 180 years to create a similar complex game all alone. 180 years only if you work full time like a usual worker. Hobbyist (me) would need 540 years.
This figure is estimated if we take that all 60 people of the team were coders. Of course, that’s not true, but if you’re all alone in your team, the estimate is pretty correct.
This means we need more people to create a full scale RPG in reasonable amount of time. That’s why I dislike it when everyone tries to write his own engine which only 10 people would use. A lot of time is wasted for duplication. We already have OGRE, please, don’t duplicate things. You would be better off working for the next level – game development. We have enough rendering engines already. There’s no need to reinvent a wheel, it has been already invented long ago. Create new things. Make real progress.
This entry was posted in Team Blog and tagged , . Bookmark the permalink.