An early Blog this week from Sean - please comment here as usual.
Hi everyone,
Sean here this week. This is coming to you a bit earlier than usual, so I can try to get a clear shot at the rest of the day. We made a huge push at the end of last week to close off remaining bugs and get the alpha back online before the weekend, so that we could start this week with the benefit of feedback of a few day’s feedback. We pulled this off, just about, getting the server online at around 7pm on Friday. Saturday turned out to be more interesting than we hoped, with a huge server slowdown making the game nearly unplayable and causing plenty of disruption to play. Thankfully, we were able to analyse the performance problems that were being experienced, and fix them in stages over the course of the day. One of these problems meant that a lot of the code optimizations from the last month weren’t taking effect on the production server. When we solved it we unlocked a huge performance increase in one go, massively increasing the speed of page loading.
Since then, the game seems to have been running with very good performance, but still with some bugs that are serious enough that we need to fix them. Some of these are crash bugs that have been turned up thanks to new permutations of spells and attacks being tried at the same time. Others are behavioural. There have been some strange reports to do with production of runes and horses. Yesterday we identified a subtle but serious issue that could cause miscalculations of various figures throughout the game under certain circumstances. We’ve made a fix for it, and will be deploying it today. Hopefully it will clear up some of the more confusing issues that have been reported. It also appears that sometimes old data is displayed on pages instead of up-to-date information, which can be very confusing, which we are also going to look at today.
Since the weekend, we have received a bunch more bug reports, which we are trying to prioritize and work through as quickly as possible. Some of these are duplicates of open issues. Possibly the most duplicated are suggestions/complaints about the layout of the spells pages, which are currently broken up in to self spells and combat spells, and then further broken up by spell type. All of these issues will be resolved when we get these pages redesigned, so there is no need to continue reporting it.
We have identified a few steps that need to be made before we start genesis:
1. fix all remaining high-priority issue reports
2. test age end/stay-with-kingdom/age start cycle
3. run new age with full public access. The point of this age is to try to get a few hundred more people to hit the server at the same time, so that we can get real-world performance measurements. We plan to do this with an announcement in the current WoL game.
4. start genesis.
The intention of all this is to make sure that genesis, and after that, WoL, go smoothly. We also need to give everyone a bit of notice about Genesis ending, so its not going to happen this week. We are trying to fix all bugs this week, so that we can make a date to restart Genesis. Although it’s very hard to predict how long bug fixing will take (since every bug is different, and normally a complete mystery to start with), we want to make this announcement this week. Between the announcement and the actual restart we test steps (2) and (3) above.
Before moving on to questions, I’d like to acknowledge the help of all the testers so far. It’s unbelievably helpful to have so many people willing to dedicate their time to making the game better, who are able to lend their expertise in the game and put such careful attention into identifying and reporting issues. It’s a pleasure dealing with everyone in this way, and both Brian and I would like to say thanks.
So, here’s some Q&A:
Lordwarallied: S and B: do you think this work could require for you to hire a 3rd programming ninja? I trust in your abilities, but is trust that some doesnt share needs to be had at any cost?
There’s a famous software engineering book called The Mythical Man Month that answers this question for me, although every programmer knows the answer intuitively anyway. The answer is that throwing extra programmers at a late programming project can only make it later (it’s called Brook’s Law). Basically, getting a new guy up to speed on this project would take months (at a guess) of full time training by either Brian or I, meaning that resources are actually taken away from completing the project.
Lordwarallied: b. id also like to know how did so many bugs came in? was some of the logic of the game replaced by glutten and preservatives hoping to recreate the same look? i know its impossible for programs to come in bug free. but Id still like to know why some of the coding that were all supposed to be together is reacting weird like that.
We have constantly discussed between us what went wrong that caused this project to go late. The ultimate answer is that the project was going to take this long no matter what, it’s just that we didn’t predict it correctly. So, the next question is why we failed to predict it properly. The answer we’ve arrived at is that we made a mistake initially in thinking that it was an advantage that there was an existing codebase that we could replicate, thinking of it as a kind of very specific design document that we could work to. We realise now, that if one were to write a design document for all the work we’ve had to do, it would be hundreds of pages long (and no way would we have given the original estimates that we did).
So, Issue One was that the it turned out to be very hard to judge the amount of game design complexity encoded into the original codebase. Issue Two was that it was encoded, and has taken a huge amount of work throughout the entire project to decipher both the intention and the behaviour of the original code, so that we could recode it in a way that we felt we could maintain. Issue Three, I think, is that we unwittingly set a huge expectation in the community in replicating the original code, i.e. that the new code would be completely identical. As a result, we have ended up spending time making sure that things like numerical and rounding errors are reproduced, and that fairly arbitrary algorithms and mathematics are faithfully reproduced. Not to mention that changing anything visual for the better or the worse creates a outcry among some folks. If this had been a different game, written from scratch, these wouldn’t have been issues.
So, all that is to kind of outline the complexity of the task. The number of bugs is basically proportional to that. Although you could make an argument that some of the numerical bugs are so minor that no one would have noticed them if there wasn’t an existing codebase to compare them to.
Kees: Would like to know the extent of the testing they did on different browers example how far back in IE and firefox did they do testing on, did you make sure that there were no problems in opera or google’s new browser as well as safari and symbian? Will the new code be usable on older browsers or does it use newer css and php styles which are not recognized by pre XP browsers. And finally: which browser did they optimize there code for?
What browsers to support is a question of cost/benefit analysis. Internet Explorer 6 is a particularly difficult browser to support, since it has the greatest number of bugs that need to be worked around in its renderer. However, the great majority of Utopia players use Firefox, so its not as big an issue as it is for some other sites.
This isn’t an official statement, but we expect to support IE7+ and Firefox, but the site should also work on any standards compliant browser including Safari and Chrome. Supporting browsers on mobile handsets can be very difficult, but the site should work pretty well in the end on the iPhone, Symbian and WinCE browsers.
khedrei: Do you guys have plans to address, and try to fix some of (imo) the more serious issues of the game and the main reasons why people stop playing or older players don’t come back? These would be abuses of the game systems. Fake wars, farm wars, farming in general, abuse of GBP, banks, bottomfeeding, most of which comes from the flawed relation system. If not, at least state your stance on these things. IE, OMAC has nothing against FW, Farming, GBP abuse. That way we can all know the game is doomed and its just a matter of time before it crumbles so we all may as well leave now.
We’ve answered various forms of these question a bunch of times now. The broad answer is yes, on the basis that we don’t want the game to crumble and die - that would be a Bad Thing for us. Specifically we can’t give you any details because we haven’t worked them out yet - we’re still working to get the new code launched. Unlike the old code, it will be possible to make changes to the new code to address these issues.
Thanks,
Sean