Why generation ship failed?
Today I’ve decided to stop(or quit) working on Generation Ship. Project which started as libgdx jam game from one month, became a two-year adventure, most of which was in hibernation.
I abandoned the ship last, and can say that I’m completely in charge of whatever happened with the project.
What went bad:
1) Motivation At a start, I've got an idea, a time frame of aforementioned jam, and a lot of motivation. I also had some spare time at evenings and commitment to finish it. After I've decided to continue, I didn't had such streaks. I worked in more relaxed way, was out of competition and became more tired. I developed a little public relations with potential players and got very little feedback. Which led to me spending evenings on other things. 2) Architecture In the beginning I totally ditched testing and design, and just coded in order to get things done. This created tech debt, and when I planned next features, I did not made major refactors. I skipped dependency injection at all. I've started it with java and lost interest in it, due to starting a new job in Kotlin, Python and Typescript. 3) Controls Controls were the worst. And HUD. And selection. And intent of what each action will do. I was talking a lot about controls and accessibility, but failed at it. If any spaceship was designed with such controls it was doomed to crash from the start. Now I see that it can be improved, but the game should be interesting enough to justify it. 4) It wasn't interesting. As a prototype, a mechanic - may be. But I miserably failed to make game interesting even a little bit. I tried to balance it, to make it look and sound better, but totally failed with gameplay. I totally failed at telling the player what he is supposed to do in the game. 5) Fail fast Oh, I did not failed fast. I failed slow, like a snail on parachute. Instead of dropping the project I continue to drag it with little motivation and zero interested parties. Maintenance became tedious, bug fixes hard and long (remember, no tests). I had no idea why I continued. (Actually, I do: I've set a goal to release a fully-finished game) 6) Methodology While I tried to be agile, and worked with a board I failed to make the process automatic enough to be fast and feedback oriented. Testing was manual only. While I made some automatic deployment but It clearly was not enough.
What went good:
1) Graphics. At first glance, graphics really sucked. But I learned a lot from what I've done with the graphics and animations. I think my next game will be much more beautiful and alive. 2) Sound. Ambient music, effects, interface clicks. I think I've done it well. Sure it could be better, but it definitely passes the test. 3) Methodology. While being in a bad list too, I learned my lessons. I can make much better next time in every aspect of work. Starting with couple of hours of thinking, designing and testing, continuing with sprints and retrospectives to get some feedback and adjust goals.
And what I’m going to do?
From my escape pod, there is a view. View of something new and unknown. Something beautiful, something I’m going to explore. I’m not leaving the hobby, I’m going to update soon!