Little bit more then a week ago I left my job at innoWate . Here wanted to share a little summary on what I did during my time there.
I worked there since November of 2009. By ProcrastiTracker stats I was collecting since April 2010 I spent 2040 hours behind the computer out of which 800 were spent in Firefox, 500 in Flash builder and 250 in SkyPe. Interesting to keep track of such stuff, sometimes shows unexpected things.
What I did there
innoWate is Latvian firm that develops social games. Mostly they are targeted at Russian social networks but there are some ports to other international(Facebook), western and Asian networks as well.
During my time there are I worked on 3 projects and here they are:
Awatars



It was my first project at innoWate. It was planed as series of games starting from avatar creator + various social stuff like giving gifts, poking and interacting with friend avatars in all kind of ways. Then games like gorodki and bowling should have followed. And they did till beta stage. Little bit later project was put on hold both because of technological issues and not much promise in what was coming out. I was transferred to more “promising” project.
My responsibilities in this project were pretty wide and I liked that. Programming UI, working on serverside scripts and protocol, game features/mechanics programming, integrating to social networks and developing related features. Design and engine behind 3D stuff were made by another guy who was doing similar stuff for XBox games before.
Sushi world



And here is second project I was involved in, a lot more people were working on it at once which brought lot more problems with sub version control and related stuff. Basically it was a restaurant type social game. You play as sushi restaurant owner, set up the place, hire and equip workers etc. Had some mini games like raising a turkey or simple fishing, various special events and quests and lot of other stuff.
Here my responsibilities shrunk a little. Was working on UI and client side game features, client side bug tracking system, social network features and integration and often was responsible for game client update process aka keeping track of features and content that are going to live version etc.
My Country



Then last January I was switched to another team with “promising” project that was in development for some time already. This time it was a new city building game, something innoWate done well before with SuperCity almost a year before. This time it was planed as a bigger, better looking and more complex city building game. Well I must say it is very pretty
Eats too much of resource too though.
My responsibility were social network features and integrations with related UI work. A more narrow field again. Mostly because by that time I had most experience with that stuff on client side while there were plenty client developers to fill other needs of the project(3 beside me).
Hassles of social developer
In the end I must say that working as social games developer is pretty crazy job. Firstly you are working with many technologies and platforms all of which have issues and may break something at some point:
- Currently games with complex graphics are mostly made in Flash so its you client technology
- You also use JavaScript/HTML to integrate with social networks and communication with Flash is a point of failure
- You are working with many social networks and social APIs that are different, buggy and have conflicts with browsers and other technologies you use sometimes
- There is also your server side which is point of failure too, admin mistakes, spike in traffic, bug in software etc
- And there are browsers
All those technologies and platforms together make it very hard to predict where problem is when you find it. Is it client, your server, browser bug or social network issue or may be even something on your players side you can not reproduce from your side?
Then there are issues of social network APIs polish. Currently most firms make ports of their games to many social networks to maximize audience and profits. Segment is hot, things change rapidly and over this 1.5 of year Facebook was making significant changes to their API and policies scrapping old API altogether and introducing completely new and and different while changing how things work overall. And other networks are no different. Thus old ways games worked sometimes break or start to violate policies, or just become pointless. There are even some ridiculous cases when with all that hurry to do something new known bugs in APIs are not fixed for months. And after that they are not fixed because games already built on top of them and would break if they fix them… And no imagine if your game needs to work well on 4+ social networks and use their API feature to the max to attract and retain players. One hell of juggling.
Then there is testing. To have products with rare bugs means to invest in to testing. But how can you test something if pretty big part of those games are dependent on social networks, communication between users, use of various social network features. With some networks its a nightmare. You can’t use many features unless you game is approved but how can it be approved if many features are not testable by developers… In other networks there are pretty good testing environments. But joke is that when game is released from test environment it turns out that real world environment differs and things that worked in test state do not work after release. And its actually a moment when your game gets in to “new” category and thousands of people are coming to see a buggy release and leave a bad review. Feels bad unless you do not care about, and if you do not care about it then its probably even worse if you know what I mean
Then there is things just specific to life of social game projects. Firstly they are released as not well tested, polished and balanced games and your users are used as testers. And that’s fine by me. Its not some AAA two years 100 million in budget project, its 1-3 months small team and small budgets project so that’s how they are developed. But then other stage of project life comes, iterative polishing and adding of new features, levels and other content. Thing is that you most keep people entertained so that they return to your game. So you need to prepare content and events for various celebrations and when there is none still think of something new each week. So new game releases come regularly with deadlines(what’s point of releasing new year content if new year already passed). I remember being at work for 12 hours sometimes before such important releases. Why the hassle? Well its competition with other games that will make interesting stuff on those events and thus will get players back. I guess TV channels have similar hassle, just not as regularly especially considering that same team is not preparing for whole world important events. There are months when each 1-2 weeks is important event somewhere.
Now what it all means from development point? That we are always late, that we are trying to cut corners, that its all a mess. Building on and around bad decisions that come to bite us later etc. In the end bad development process that goes against many things I believe about software development and also not knowing how to fix that all. Feeling powerless and as if this it is impossible to succeed in that environment. Though I do think that it is possible, just not like that, and sadly I do not know how. Anyways in the end it all is aether a turtore or you stop caring with in my book means stopping doing your job well.
Leaving and what’s next
So, since December I was thinking about leaving and kind of summarizing it all for myself. Little bit later as I mentioned above I was switched to My Country project and decided to leave it be for some time and see how things will go. Well they went the same so here we are.
Currently I am in self payed vocation for few months during which I do plan to start spending something like a half time(4 hours a day, 5 days a week) curing my “don’t care” attitude towards programming, games and web. There are bunch of things I want to learn and try and I can allow myself to do it now. As for other free time, vocation, friends, work unrelated courses. May be travel a little.
In the end I was not very active here for last months(though I did play with stuff a little at wonderfl.net) and am planing to slowly get back