Prototype Plan for (remainder of) 2009

David Shaw, 8:27 am 17th August 2009
Posted under: Blog Babble

I’ve reviewed my current direction using my experiences at Freeplay 2009 to guide and inspire me. I’ve got a bit off-track in the last month or two and I needed some realignment.

If I were to be brutally honest and go all psycho-analytical on myself, my guess is that my stalling comes from a subconscious insecurity about my abilities as a game developer; a classic fear of failure. My programming skill isn’t nearly as good as it could be, and that’s miles better than my skills in art, design, business, marketing and so on. I think that’s why I felt the need to “revise” my skills, trying to get to an “appropriate” level. That’s a trap. I’m not going to know what level I truly need until I actually try to make something that needs those skills. I’d be better off making prototypes of the ideas in my scrapbook, sticking them up on the web for comment, and learn through doing. I’ll probably end up trying to push myself anyway, so if I rely a bit more on my instincts I’m sure I’ll naturally gravitate towards improvement regardless. And it’s not as if I’m hopeless; I know I’ve got enough skill to make something worthwhile – I’ve done it before.

In short, it’s time to get started.

For the next couple of months, maybe to the end of the year, I’ll aim on completing a bunch of small prototype projects, slowing testing ideas (and naturally working on my skills in the process). At the end of this, I should be in a much better position to gauge where I stand, which idea is worth developing, and in choosing a decent approach to doing so.

Some areas I think I should look at:

Ideas and Prototypes

The importance of prototyping was stressed at Freeplay 2009. The standard yardstick used by a few there was to give yourself a week or less to complete an objective, then to “just do it” using whatever method is easiest. That’s actually something I had planned to do earlier in the year based on the success of The Experimental Game Project, but I got a little side-tracked. I’ll take a few of the ideas I’ve got written down and trial them with some quick and dirty mock-ups. I won’t bother fully polishing them up into little games (unless that’s the point of the exercise I set myself); I’ll treat them as proper prototypes, testing one specific property at a time.

For the technology to use, there’s four choices that make sense for me, personally:

  1. C, C++, or (more likely) C++ that’s more like C (i.e. C with STL and namespaces)
  2. Flash (Flex, Adobe AIR, ActionScript 3)
  3. An engine like Unity 3D, Torque or Game Maker
  4. Some other language like Python or C# that I’m not fully comfortable with

I might end up cycling between all of them to try different things out. Some reasoning for each choice:

  1. I’m definitely most comfortable with C or C++, and I know if I scrap being all “software engineer” I can churn out a 2D demo in a few days.
  2. Flash makes a lot of sense as a prototyping platform; it’s got a graphical IDE, it’s got vector support (I love vector graphics), and the ability to make the prototype playable on the web is really useful. I already have Flash CS3, so the price is moot.
  3. Freeplay had a lot of champions of using the engines out there; the indie licenses are pretty cheap given what they can do. If I were into 3D I’d be mad not to use something like Unity or Torque, but for 2D I’m not sure if it’s as critical.
  4. I’d probably only choose another language if I feel a really pressing need to learn one, or if I really want to learn C# to develop for the Xbox. Or maybe I might just like the change of pace.

This week, I’ll start by picking one of the core ingredients in a game idea and mock it up in Flash to see if it’s any fun; no polish needed, just a test of gameplay. I’ll see where that goes.

Code Library

I still think it’s a good idea to build a code library, except mine will be much more like a scrapbook of useful code snippets than the traditional sense. I’ll just make a repository for old code so I can reuse the bits that are useful. Maybe in a while I’ll separate bits out into something slightly more formal, but nothing that would take more than a day’s work. I won’t know what I need until I need it again.

Marketing Plan

I really need to start work on implementing my marketing plan. “Plan” might be a bit grandiose for what it actually is: technically I’ve got a plan in the sense of several pages of rambling documents in a wiki, but it basically boils down to “make lots of content and stick it on a webpage”. I need to put up a few good tutorials, articles, comics, freebie games and the like; really flesh out the website. I’m hoping the prototyping will help spark this.

iPhone development?

I have to admit: I was pretty smitten by the cool iPhone apps I was seeing at Freeplay. I’m now thinking it might be cool to work on iPhone games too. It doesn’t seem that hard to get started, especially given I already develop on a Mac with Xcode. The biggest expense is getting an iPhone to test with; I don’t really need or want one to use as a phone, just as a software platform. But it might be worth considering getting an iPod touch and a dev membership and see how easy it is to get started. I don’t think I’d like to go completely to iPhone development, but it could make a nice complement to desktop games.

6 comments for “Prototype Plan for (remainder of) 2009”

  1. Andrew Russell says:

    I’d skip the library all together. Maybe, if you must, make an index into your old projects if you must (for example, a text file with something like “HSL to RGB code is in fooproject in bar.cpp).

    Copy-paste reuse from old projects is by far the most efficient – there’s zero wasted effort and no overhead. Also I find that, when reusing code, it’s almost always gone stale to some degree – anything from a few months ago needs to be reworked, years old code must be ported from C++.

    Speaking of iPhone – I’m rather excited about MonoTouch. Although I will reserve some enthusiasm until after I see a price (release is in September). As of today I am waiting on an iPhone – it will apparently take a couple of weeks (from a network, not directly from Apple).

  2. Kevin G. says:

    One thing to consider with iPhone development is that it looks like apps seem to sell more, but developers tend to have a thinner profit margin. Gamasutra posted an article about indie game development costs, about that. Regardless, I’m looking forward to your prototypes, and hope to be able to do something similar since I finally have a semester of grad school that isn’t bogged down in a lot of classes.

  3. David Shaw says:

    @Andrew: With the library, that’s pretty much what I’m planning to do to start with. It’s all under a SVN repository anyway, but I’ll keep a note of anything particularly useful so I don’t forget it already exists. Maybe after a couple of reuses I’ll tighten it up a bit, formalise the documentation and stick it into a common repository – but I’ll need a few projects first.

    If you haven’t looked into it already, Unity 3D supports C# as a scripting language and runs on the iPhone.

  4. David Shaw says:

    @Kevin: Thanks for the link, Kevin. I’d missed reading that article. It’s good to see some figure analysis.

    I admit I’m probably not basing my desire to make an iPhone game on shrewd business calcuations; it’s far more because I think it would be cool (handheld device with accelerometers and a touch screen! Woo!)

    The main tactical thinking is that I’d like to try a bunch of different platforms (Flash for the web, C/C++ for desktop, Obj-C/C/C++ for iPhone) and see how they pan out and can play off each other. The biggest challenge in indie game development (heck, game development in general) appears to be being noticed and getting people to try out your game demos. The more avenues you’ve got to be noticed, the better.

  5. Kevin G. says:

    RE iPhone development: That’s true, iPhone development sounds like it’d be really cool (my University just got iPhone development stuff, I think, which has me pretty psyched). I think trying everything out is a great plan, especially if technologies can be used across multiple platforms (Obj-C for iPhone and desktops for example… I wonder if there’s a way to access iPhone features from Flash, or if the web browser on the iPhone interfaces differently, alas, if only I had the money for one). The numbers analysis was a bit sobering on the iPhone section, but the PC numbers were actually somewhat encouraging, and as you mentioned in your post, at the least, it would make a good complement to desktop development, also freeing you up to make non game apps every once in a while as well. Which, come to think of it, might be a pretty good benefit.

  6. David Shaw says:

    I’m fairly sure there won’t be a way to interface iPhone features from Flash, as Flash is meant to be cross-platform; so things like the accelerometers for tilt wouldn’t have an API call. I’m not even sure if there is Flash on the iPhone at all yet, to be honest. I think Apple’s been dragging their feet on getting in on there.

    You can use your C and C++ code though. While you do need Obj-C for your app, it’s fine to just have a wrapper around a standard C/C++ code base. That’s what the developer with existing iPhone games that I talked to did, at any case. It seems they only needed a couple of months to get to grips with the platform and get started, so I’m assuming it’s moderately straightforward.

Leave a Reply