Zalo DS Blog

Monday, March 11, 2013

Whack Mania: Post mortem

Ok, so it's been a month already. Time enough to look backwards and see what went good about this project and what went wrong. I have decided to post these conclusions here so they can become useful for someone else. Usually I prefer to begin with the bad things and finish with the good ones (that leaves a better impression)

Bad things! (things that should be improved in the future)
- First of all, and one that disappoints me a lot, working at home. I already work 8 hours and a half daily as a programmer so adding a couple more to do the same thing plus weekends can be exhausted. It totally affected my mood, made me angry easily and obviously making me less productive on an average. I haven't fully enjoyed my holidays (not summer, neither christmas) and I have suffered insomnia several days

- Working without a release date. Even thought the game was planned to be finished in two months, I have gone way too far from that date. Nobody really seemed to be worried about it, and some people were even asking me to constantly add new stuff to the game. I haven't feel capable of just stop adding content

- Listening to everyone without filter. I should have been more strong about my decisions. I listened too much to the feedback people were giving to me… first the game was too hard, then too easy, then boring, then the camera was not accurate, then we needed to add more stuff to the levels… I think there is a difference between lack of modesty and self confidence. It's not people's fault for giving me suggestions but mine. Trying yo make a game that everyone in this world like it's very hard (or probably impossible)

- Adding way too more content. Sadly for some reason the game doesn't seen to be working pretty good. Well, to be honest… it is doing terrible. I cannot publish here the number of downloads but for me it is very disappointing. Obviously I was expecting much more. Flurry is integrated in the app so I can see which levels are people playing. A big amount of the levels are still NEVER played. So, were those 40 levels necessary? Definitelly not. Besides not all the levels have the same quality. I spent a lot of time designing some of them and just a few minutes in some others. Sadly most of these levels are at the beginning so people give up before reaching the funny stuff

- Taking it personal. I don't think it will be very proffesional to post more info about this here... so just in case you are interested to know what I am talking about, ask me in private :P It is has a lot to do with that lack of confidence I was talking about before

Good things!! (The big amount of knowledge acquired!!)

- Whack Mania has been developed using my own engine. I am pretty happy with how the engine has evolved and the way everything on it is coded. More than happy, I feel proud about it. It has been released both in IOS and Android and there is also a Windows version fully working. Versions for Nintendo DS and Wii should work also, although I haven't had the time to code some new parts on the core of the engine for them. I feel that I am perfectly capable of porting it to any platform suppoting c++ as native language. More than that I have implemented: leaderboards, advertising, in app purchases, analytics and push notifications in a clean way (they are not implemented in Windows but the game still works, and even thought the behaviour in Android and IOS is very different they share a common base that makes it very expandable). I really have that feeling that I have learn from other's mistakes.

- So many changes in my 3dsmax exporter. I am pretty happy with it. I have fixed it a lot of times. I have removed a lot of trash, kept it simple and right now there are no issues that I am concerned of. No scale issues, nothing bad orientated, animations perfectly working… and if you have already worked with maxsdk you should already know what I am talking about 

- Back to maxscript! I have coded a few useful scripts for 3d max that have allowed me to use sprite atlas and define menus. Some of this stuff could have been very valuable on previous games I have been working on

- Several fights with Xcode and Eclipse had made me understand these IDEs much better (Eclipse stinks no matter what). I know how to handle libs, projects and everything. That makes me very capable of for example coding plugins for Unity3d in a safe way

- Some interesting components that I'll be using in future releases: camera safe viewport, HUD reorganization independent of screen resolution (and for the first time also, I have added a new behaviour that leaves some space for adds automatically so I didn't need to make any changes at all to support the same screen distribution both on full screen and when showing adds), input management (multiplatform), finger tracking (that I used for the movement of the planet), pathfinding (in a spherical mesh… not very different than a classic A* anyway), music synchronisation with game events (did you noticed?) . I have already coded these new behaviours into my new project in Unity without too much trouble, it is also good to realize that what really matters is the idea and not the code itself

- Interesting graphical effects (using fixed pipeline on OpenGL ES 1.1). The game doesn't use a single shader at all… I still consider that adding shaders to a cross platform engine it is a hard task and it will make things more complicated to maintain so I have refused to do it. I have used instead texture combiners for the first time that it is still fixed pipeline but when used correctly the final result can be amazing. The way for example the Wii works is pretty similar to this. I think the game performance has benefit form this a lot also.

- Implementation of my first asset manager, that can regenerate all assets form scratch just running a simple script (not true, because I coded it in C++, because it is much better :P). After too much suffering with others implementation It's hard to say how happy I am to successfully had implemented this in just one week. It is once again simple and very expandable to support new platforms or new type of assets (or even different configurations for the same platform)

And, that's it! I was right… it is good to finish with the positive stuff. As a general conclusion I'd say Whack Mania has been a total failure as a project (if you give something for free and people doesn't like it, there is no other way to consider it) and that makes me feel very disappointed, but on the other hand it has given me a great opportunity to improve my coding skills, which is something that I as a programmer need. 

I also would like to show my appreciation to the other guys who worked with me in this adventure: Domingo, David, Raquel and Antonio and all the other people who helped me to improve it: Josh, Cesar, Adrián, Juanma, Josemi, Curro, my brothers and of course Lucia who has suffered it more than anyone else. Thank you very much for your help! Even thought it is a failure it is still a game that I really enjoy

I'd like to finish this with the hands on video we released a few days, so you can see the how the game works a little bit more

Thanks for reading! ;)