Postmortem: Area of Sarao

  • Constraints
    Time: 2 weeks (12 office days)
    Architecture: component-based (yay!)
    Platform: must work on an iOS device

    One of my fellow trainees is constantly coming up with game ideas, so the only problem I had with the concept was choosing which of his ideas I liked the most. I came up with some ideas, based on tips I heard on Lostcast (Don’t do multiplayer! Don’t do realtime! Stick to two dimensions!). But in hindsight, the scopes of those game ideas were still too large. Make sure to give time for polishing and testing. You might waste effort by making a last minute change that accidentally makes it impossible to finish level 2 or something ( happened to me before! XD ). Making a game is more than just the programming. If I had to do it over again, I would choose an idea that I was confident could be coded in half the time constraint, then use the remaining time for testing, balancing, and polishing.

    Choosing a target device
    I chose not to support iPhone devices because I’ve had web projects before where I had to support mobile, and it was really difficult to fit all the UI into a tiny area. I didn’t want to have to deal with folding menus, scrolling, panning, zooming, touches on overlapping UI… I wanted to make a game! I didn’t regret this decision at all.

    Another valuable lesson from @geoffb and @richtaur that I remembered was not to fuss over art until your design becomes more stable. And I’m glad I remembered it, because the game screen changed drastically over the course of the project, so if I had done art at the beginning, I would have been less open to changing the design. I might even have changed gameplay to fit the art, which would have been terrible!
    So I started off with rectangles and bitmap fonts to represent data. Later, when I could no longer stand the colors I was using (yuck), I decided to try out the Dawnbringer palette, and the change was so motivating! I couldn’t believe how much more fun the prototype seemed just by swapping out the colors.
    I also found some nifty resources for prototype art. I tried OpenGameArt, but it was quite disappointing. I liked these better:

    Here’s my biggest takeaway from the project:

    the software architecture is there TO HELP YOU.

    I wasted so much time debating which approaches were more “correct”, for example:
    "how do I make these things walk to an empty spot?"
    I made a map object that contained path objects that you could enable and disable, then I made a navigator component that would take the map object and you could tell that navigator component to navigate to a point, which would tell a waypoint component the steps to take to get to that point, and so on.
    All that, and only ONE entity ever used it. (facepalm)

    I could have saved so much time if I had just sucked it up and used a singleton. Adding singletons instead of using dependency injection is bad engineering practice, but in the end, it didn’t matter.

    Don’t overthink it! Fail as fast as you can!

  • LDG

    You’re already way ahead of the game! (pun intended)
    Let us know if/when we can play it.

Log in to reply