I have spent the last couple weeks on the first Hello, Program project and thought it was time for a status update. In preparing to implement a project, I currently go through five steps in planning:
- Definition – Document what is my application trying to accomplish and, equally important, what is it not trying to accomplish.
- Previous work – Someone has already done what you are trying to do. Consider contributing to an existing project if something already comes close.
- Design & mockups – Choose a theme, both visually and functionally, then open up a paint program to get an idea of what the thing might look like.
- Implementation tasks – My task list is less about understanding what needs to be done and more about managing my time. Being able to visualize how much work is left does wonders for keeping me from spending an hour doing something that probably doesn’t really matter in the end.
- Future work – This is my parking lot for what to extend and possible next-steps. This lets me write these types of things down and get back to what I’m supposed to be focusing on.
Here they are for project #1: Who Goes First?.
The first project idea comes straight from my close friend and talented game designer, Matthew Moore. The pitch is to put a touch device (tablet/phone) in the middle of a table before a board game. Everyone touches the tablet and the application does some fancy randomization animation and picks who goes first. That’s it!
For this project I did searches for “who goes first”, “pick player”, and “random select”. I searched the web, Google Play, Windows Stores, and the iOS marketplaces and found five or six applications that try to accomplish the same thing, all of them ranging from tolerable to terrible. No where to go but up!
Designs and Mockups
For games and the entertainment applications, I find it insanely useful to define a theme and make sure everything you do can be related back to that theme. For Who Goes First, I chose a game show theme. I put together a few mockups to see if what I was thinking would translate to the screen.
I also include explicitly deciding on the tools and platforms as part of design to keep myself from jumping around in toolsets just because its fun to play with those things. For this project, I decided to use Construct2 for development and target HTML5, Windows 8, and whatever else I can convince it to export to (i.e. iOS, Android, …Blackberry? Really?).
Taking a page from agile development practices, I don’t go too far beyond a list in notepad or OneNote. Here is what my Who Goes First task list looks like today:
I have always found keeping the future work list invaluable. Again, I can write it down somewhere and then get back to what I should be doing.
You can see from the task list that I’m almost halfway through my implementation and each one seems to be taking an average of 1-2 hours. I should be able to have a usable something soon and I’ll see if I can figure out how to post HTML5 here.