So now that I have some time on my hands, I’ve decided to make a game in two weeks.
I mean, I’ve got the tools. I’ve got the knowledge. I’ve got the experience. I’ve got the time. And I’ve got my own reasons for it. So off we go.
First, why two weeks? Why not one week, or four weeks? The biggest reason is that I made a schedule. At first it was “As fast as possible, hopefully in a week or less,” but that has since evolved to two weeks.
So let me catch you up to the present.
Day 1. Market Research and Project Management.
It has been said that making a game is the easy part, bringing it to market is a hard part. I could have just started making whatever game I wanted and then hoped there was a vacancy in the market, but I know better.
So knowing what I know about the business of making games, I decided to check out the market. I had several ideas percolating in my head, and I brainstormed with my daughters and wife about a collection of games that I was thinking about. I know there is a real market for the games, I’ve been inside that genre multiple times over my career, and I’ve been targeting that demographic about half the time, on and off, since about 2003. Then I did quite a few Google searched for the game I wanted to make, and while there were some things that were somewhat similar, nothing was identical.
With that in mind, I’ve got ideas for several cute games, sometimes called girl games, that I believe will have broad market appeal. The first one I want to do is a racing kart game.
Since I want to earn some money from it, I carefully planned out how I intend to make money from it. While I don’t have any actual numbers at this point, I do have enough experience to know how much money I can get from in-game ads per active user, and some ideas on ways to sell in-game objects to turn the game into a free-to-play Freemium model.
Although part of me knows it would be a good idea to write a full design document to bounce around, in this case I have enough experience in the genre and in my demographic that a few handwritten brainstorm notes are sufficient. The details are in my brain, and I am able to describe all the features in depth to my family. (I could do it on here, but I’m still a little fearful about releasing too many details.)
Next up: a great big list. Spreadsheet tables are a wonderful thing for software development. Task lists are a great way to ensure everything gets tracked, and it is easy to move, sort, and track on a spreadsheet. I made a massive list of features I knew I would need and major milestones. Over the past few years I have been the sole programmer in a bunch of small projects, project after project (almost 50 of them) with most projects lasting a month or less, so I’m fairly confident in my ability to identify all the tasks and come up with estimates for my own pace of development.
Every estimate gets broken down to 1 hour, 2 hours, 4 hours, or 6 hours. If a task would take more than 6 hours then I break it down further. I must be fairly sure that my estimates are accurate because I will be holding myself accountable. And thanks to the power of this blog, you can help hold me accountable as well.
When I completed my list and my cost estimates, I started sorting out features that really were not necessary for a minimal fun game. There are many awesome features I would love to implement someday, so they go to the bottom under a generic “Backlog” milestone. Also there are many steps beyond the “First Playable” milestone. Adding up the hours until I have my “First Playable” game gives about 75 hours’ worth of tasks. Or about two weeks. Since I’ve already burned down my first day, 75 hours seems like a good number for two weeks of at-home work. If nothing else it will ensure I don’t get out of the habit of working.
Day 2. Every Good Game Has a Good Pipeline
The first milestone is the ability to build and deploy the game, and prove it by running an animated cube through the entire process.
I already know my tools. Unity3D for the game engine and editor. Blender and Daz3D for modeling and animation. (Daz sometimes has promotions where they give the app away for free in the hopes that you will spend your money buying models and related apps. One of those promotions is running right now as I write this.) Gimp for textures and images. Those are all a given. I’m targeting Android devices so the Android SDK is also on the list. There are also some tools and plugins, such as UnityVS and DevExpress CodeRush and Refactor! Pro, they are well worth the investment. And of course I already have VisualSVN Server, TortoiseSVN, Visual Studio, and AnkhSVN on my machine, with a daily online backup of my local Subversion (SVN) repository. Put it all together and you’ve got a wonderful bundle for building your own games.
It has been a while since I have updated all my software, so I start the day out with the first task on my list: downloading and installing the latest versions of everything. That took about five hours. Hey, that’s better than the six I had estimated. Of course I used the time productively to read ahead on tasks I would need to do over the coming days.
Fortunately all these tools are well-written and can work wonderfully with each other. The pipeline should work out of the box, but it still needed verification.
I opened Unity, began with the default cube, created a simple animation, opened Unity, created a simple scene, saved the cube into the scene, attached a simple script to run the animation, and hit the play button. Everything worked like magic. I will never cease to be amazed at the quality of work that exists out there. I target Android, select to target API 10, build, and deploy. And I hit my first snag.
There were some minor glitches trying to build and deploy the app because my old Eclipse path settings were pointing to an older installation. It wasn’t too hard to fix, and after a few attempts and some quick Google searches, the bouncing cube app was available on my device.
The second day down, and a milestone reached right on target. Excellent.
Much more to follow. Most likely you will have a “Next” link below you can follow, but I need to live out one day at a time.