Posted July 29, 2019 by sheix
#postmortem
Why have 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:
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!