Unity now free

David Shaw, 11:54 pm 1st November 2009
Posted under: Blog Babble

In case you’ve missed the news, you can get an indie licence for Unity for free.

Unity is a 3D engine and integrated development tool, and one I’ve heard good things about from other developers. Even before this free deal, it was my most likely pick for 3D development. Now there’s no need to worry about running of time to test the demo, it’s worth grabbing a copy to play around with at your leisure. And it comes for both Windows and Mac OS, which is good for people like me who use both OSes. Even if you’ve got designs on making your own engine, Unity could be a useful tool for prototyping. Give it a go.

For me, I haven’t done much more that a superficial play around with the demo yet so despite my recommendations to try out Unity. I can’t objectively say if it’s any good or not. I prefer working in 2D and doubt I’ll need too complex an engine behind what I do, so I’m still set on using Flash, Flex and ActionScript as my prototyping platform. But for anything 3D, it’s well worth looking at the middlewares available, and you can’t beat a good deal like trying Unity for free!



October already?

David Shaw, 11:12 pm 11th October 2009
Posted under: Blog Babble

Man, this year is going by quickly. I still can’t quite get that we’re already a fair ways into October. I’ve got no idea where the time is going.

I’ve got to make a decision at the end of December as to the direction I take game development, and I’m a teensy bit concerned at my current progress; I’ve been drifting in the “warm-up” stage for way too long. Without a few milestones to focus on I’ve been a right mess.

With this in mind it’s high time I restart my “game a week” challenge. The rules this time are very simple; I make something playable each week. It doesn’t need to be fancy or even complete, but I do need to work on something else the next week. The goal is simply to stop worrying too much about the unimportant little details and start creating.

To start, I’m going to keep playing around with Flash and make something simple. I’m still tweaking the nose of ActionScript’s functionality, so it’s probably going to just be a Flash game classic straight from the pages of Flash Game University (I own the book). Got to start somewhere!



NaNoWriMo 2009

David Shaw, 4:22 am 5th October 2009
Posted under: Blog Babble

I’ve been reminded that NaNoWriMo 2009 is coming up. NaNoWriMo is the National Novel Writing Month; it is now technically very international, but the previous acronym has more punch. Basically what the event entails is writing 50,000 words of a new novel during the month of November. It’s an exercise to stop procrastinating and start writing.

My creative juices really need a boost right now and levelling up my creative writing stat would help me in the long run, so I’m planning on giving this a go this year. Given my lack of skill in this area I’m sure that whatever I spit out will be beyond awful, so forgive me if I don’t post much about what I’m actually writing in my blog. It will however be good to be forced to crank out material on a tight deadline.



ActionScript, Portal

David Shaw, 6:55 am 28th September 2009
Posted under: Blog Babble

So far I’ve just skimmed over the basics of the ActionScript 3 language and played around with them in a Hello World style class. On the surface it has a rather Java like feel to me, although given my sketchy understanding of Java that might just be a conflation of my unfamiliarity of the two languages. Another similarity is that given the strong GUI bent a lot of basic instruction tends towards cut-and-paste programming; find something that is close to what you want, then tweak it to fit your needs. I suppose that is quite apt for something that I want to use for prototyping, but with that approach I always feel uncomfortable that I don’t truly understand the language. I’ve skimmed enough to look into a proper app, I think. Nothing too fancy, but enough to get a feel for the development process.

On the non-development front, I finally got around to playing (and finishing) Portal on the weekend. Good game, although very short; only took a few hours, at least one hour of which was just playing around with the portals. I’ve also got no idea why the internet has latched onto “The cake is a lie” as the primary meme, given there were plenty of better lines than that the game.



How time flies when you aren’t concentrating

David Shaw, 5:41 am 25th September 2009
Posted under: Blog Babble

Brief progress update, condensed blog post version: The last week was a mess due to my own lack of focus. How embarrassing. Without some hard milestones I have a tendency to aimlessly drift off towards some of the more vague objectives in the back of my mind, and before I know it I’ve spent three days during “research” (i.e., reading TV Tropes and playing Spelunky). Not good. Bad game developer!

Given these slips are turning into a habit, I’ll spend the next month posting blog updates every couple of days to keep some sense of responsibility and to steer me naturally towards harder, quantifiable targets that provide something to show. I can’t hide a lack of progress if it’s out in the open!

I have spent some time reviewing Box2D though, and it’s good enough to sell me on using Flash and AS3 (ActionScript 3) as my prototyping platform. I don’t think I’m currently good enough with it to effortless whip up ideas with ease, which I think is a sticking point at the moment. I suspect I need to take a step back and shore up on the fundamentals.

By the end of October, I aim to be comfortable enough with Flash that I can prototype key game ideas and assess their suitability as the basis for long term projects. For next week, I’ll work through a few basic Flash exercises, explore my way through AS3, and actually put a game up on this website (finally!) even if it’s a basic clone.

I also need to knuckle down and work on systematically on improving my art and music, which I’ve been shamefully neglecting. And the website needs work, so that’s on the to-do list too.



Physics!

David Shaw, 7:46 am 8th September 2009
Posted under: Blog Babble

For my prototype, I need to have some asteroid-like objects floating around. That means I’ll need to have some form of collision detection. If I want my asteroids to be irregular and somewhat large, then it becomes non-trivial. I did a few rough sketches to figure out an appropriate approach, but I quickly decided it’s not worth the effort hacking together something myself. I might as well look at what physics solutions are already out there: far quicker, less hassle, more reliable and I can get greater functionality out of it too.

I had a look at Bullet and got the demos running under Xcode. It looks pretty sweet, but I wasn’t sure I needed the power of a 3D collision library. I’ll keep in mind though if I go that way.

Instead, I’m going with Box 2D. This also looks pretty nice, and I only need 2D physics. The clincher was that it has been ported to Flash, which is ideal for me. I can use a similar interface in both domains.

Given Box2D is implemented in Flash as well as C++, I’m leaning towards implementing the prototype in Flash. I feel far more comfortable playing around in Flash and ActionScript; in C++, I feel the urge to focus on writing nice code rather than just implementing ideas. If I know my way around a physics library in Flash, it should be a snap to prototype all sorts of things. Just playing with the physics demos is fairly fun all by itself, so it sounds like a perfect platform for getting a feel on new ideas.



Computer heart attack

David Shaw, 5:01 am 4th September 2009
Posted under: Blog Babble

Brief update. I’m kicking myself for slipping a week or so here. I got distracted by a whole bunch of small things and tasks that made it easy to lose track of time and priorities. I’m setting myself the task of focusing on prototypes next week.

My Windows computer had a heart attack. I was playing a not-that-recent 3D game on it and after a while the hard disk starting skipping beats. I suspect it’s either the hard drive or the power supply; since I haven’t been pushing it for a while there’s a range of potential issues. It booted up again the next day and was fine since, but I’m not sure how long it would last. Given it’s a 2004 era machine I don’t think it’s worth putting too much effort in fixing it; for a few hundred bucks I can buy a better computer. For now, I’ve got a offcast from my parents as a replacement; they’ve both moved to laptops and their desktop was gathering dust, and it’s roughly the same give-or-take as my Windows box (main difference: Radeon 9600 XT instead of Radeon 9700 Pro; not that dissimilar for most things really, and probably better to not have a card with a big power draw anyway). I’m considering buying a new computer as well, but honestly if the replacement works okay I’ll probably stick with it for a while. It’s not as if I have huge computing needs. As long as it plays Half-Life 2′s Orange Box, I’m happy (which I’ve yet to play, will get to soon).

In terms of development though, this isn’t that much of a setback as I primarily code on an iMac. All this means it might take me an extra day to port anything across to Windows as I’ll need to reinstall my tools, but nothing too drastic. I might also be able to dual boot Linux on the replacement computer, something the weird gremlins in my old computer wouldn’t allow.



flixel great, pity about the game idea

David Shaw, 8:16 am 20th August 2009
Posted under: Blog Babble

flixel appears to be really neat for whipping up sprite based Flash games. I spent a while just getting to grips with the source code, but after a while things made sense. It’s pretty similar to the flow in the structure I use for 2D games in C++, so it makes sense. Even though I’ve got a copy of the Flash IDE, the free Flex SDK works better to compile; it feels just like other compiled languages. It was pretty quick to mock up a simple Flash demo.

The problem is I’m not sure where to take it. The original idea was for a sliding maze puzzle: you need to navigate to point A to point B in a maze made out of blocks, with the catch being that once you start moving in a direction you can’t stop moving until you hit a wall. It’s pretty trivial to make that from this point, but if I just do that it’s essentially a simpler version of Duck Tiles over at the Code Zone.

The original extension and “fun part” to develop was to think of a way to generate the levels. Brainstorming this on my board, it’s pretty easy to write a puzzle solver, but thinking of a way to generate puzzles that are both solvable and interesting is a bit trickier. I shelved that for a bit because I wanted to play aound more with flixel.

Instead I put in some sliding ice blocks which you can knock around with the player. I was hoping to spark off some interesting ideas for what you could do with them. Instead it now feels like I’m going back to the original Pengo video game that sparked off the whole “Penguins on ice” inspiration.

I’m just not sure there’s enough of a spark here to keep me interested in the game. Oh, there’s plenty of interesting stuff I could lose myself into: I’d love to play around with drawing ice effects, animating sliding characters, making ice themed music and so on. But a big truism I learnt from Freeplay is that all that sort of stuff should be spent on a good idea. If a game idea doesn’t grab you when it’s just blocks and shapes, then no amount of polish will save it.

I think it’s probably best if I shelve the Project Penguin idea for now, and go move on to prototyping something else. It’s already proved to me that flixel is a good prototyping platform for pixel or sprite based games in Flash, which was sort of the point of the exercise. If I hit upon a good idea that could work with sprites, I’ll definitely use it again.

While I liked flixel, the next idea I want to prototype would work better with geometric shapes and lines and involves a fair amount of algorithms which I think is best for me to prototype in C++. I’ll be sure to use it again though, especially because I’ve got a few retro platformers I’d like to make someday.



Crack Open the Idea Vault

David Shaw, 7:10 am 18th August 2009
Posted under: Blog Babble

I’ve set myself the task this week of prototyping a core gameplay idea in Flash. This serves as a dual test of both the idea as well as using Flash as a prototyping tool. I’ve only done some basic mini-games in Flash before so there’s a learning process involves, but I feel it should be doable if I don’t get bogged down on irrelevant fiddly implementation details. I’ll be blogging this as I go, typing up my thinking as I do it as a way of recording the process.

Since I’ve chosen Flash, I’d also like to use the opportunity to trial out flixel. It does seem geared specifically towards pixel games which suits some ideas more than others, but I haven’t had a close enough look at it to properly judge. And since some of my ideas are pretty retro, it should be a great help.

But before I dive into tinkering with that, I’ll need an idea. Time to crack open my idea vault:

Pretty collection of lines and boxes entitled 'Game Plan Chart'

“Crack open” might be a bit dramatic, considering this is a chart that is pinned to the corkboard by my desk. You can click the image for a larger version where you can read the boxes; it’s somewhat meaningless if you’re not me but all the pretty lines and boxes at least it helps give the illusion that I know what I’m doing.

This is a chart of all the game ideas I’ve had over the last few years that I felt were worthy enough to remember. I tend to make a lot of charts, mostly as a creative form of procrastination, but I like this one. It’s a good reminder that I need to get cracking if I want to see even a fraction of these ideas implemented.

I made the chart a while back to help organise my ideas into some kind of logical progression. Left to right is organised by theme. Top to bottom is organised by project length and separated into four tiers:

  • Tier I are very small demo projects, mainly for warm-ups or prototypes, duration one week or less.
  • Tier II are slightly more involved, duration one week to a couple of months. They could make good freeware, or with a bit more polish suitable for iPhones or small sellable games.
  • Tier III are full game projects, duration several months to a year or two. These have content level suitable for indie games.
  • Tier IV are advanced, involving a lot of content and/or experimental technology. These would take me several years to do, and are extremely ambitious..

Some explanation of my idea process: If I have an idea for a game that sticks in my mind as a good one, I give it a name. The name is just thought up quickly as a label for the project, not the final game, and is always one word “Whatever” with a full title of “Project Whatever” – the “Project” is because I only use the one filing system for everything and I like to find all my ideas under P (along with my PhD work, publications and papers. P takes up an entire drawer). I’ve got a couple of paragraphs explaining each idea, but I tend to prefer to have scribbled doodles as a reminder. Even those aren’t that necessary; most of these ideas are more about a raw concept or are based on emotion, so really I just need the name to remember them. It’s not as if the details are important at the idea stage.

The project I’d most like to make one day is the one at the bottom, Project Ivan, a highly involved interactive storytelling RPG system. One of the prime reasons I want to be a full-time indie developer is I think it’s the only way I can see a game like that made. I’d be totally mad to start with it, obviously. I’ll start near the top and work my way down the list. Let’s look at Tier I….

Project Zexus is a straight up clone for trial purposes; I’ve had a few botched trials at it and it’s fairly boring. Project Nova is a shmup that has some potential, but it has some AI quirks that make it challenging and might be hard to do in Flash. Project Penguin is a sliding puzzle game I never finished but could actually be a nice trial for flixel. Project Muzzy is standard casual fare and doesn’t interest me at this moment. And I’ve already completed Projects Poisson and Brixtar (that’s Pierre and the Fish and Brixtar, put on the list for completeness).

A strong alternative would be a prototype trial of Project Crystal, the first game in Tier II. It’s the most interesting of the early ideas, a sort of shmup/RTS hybrid, and it should work with wireframe graphics. I think it might even be easier to do than Project Nova listed above it – I probably put it below because it’s more interesting. If I don’t prototype this now, I’m certain to try it out eventually.

Hmm, I’m a bit torn between two options:

  • Project Penguin is tile based and fairly simple, and as such would make a good trial of flixel. The gameplay idea however is pretty simple and is unlikely to have legs – basically it’s a remake of a sliding puzzle idea better implemented in Duck Tiles and as mini-games in Zelda and RPGs like Tales of Symphonia. It’s point was more a test of graphical polish than game design. There’s a bit of interesting AI in the level generation, but otherwise it’s more down to style.
  • Project Crystal is a much stronger idea and one I’d like to try out. The game will work with just geometric shapes so it’s got low graphical requirements. It’s far more the classic sort of prototype I think I should be doing. But it’s not based around tiles and might not be a good first test of flixel – I could probably code this one up myself.

I’d really like to demo Crystal, and technically speaking it is exactly the sort of thing I should be prototyping. But my gut feeling is that spending a few days on a warm-up project like Penguin and trialling flixel may make my life easier in the long run. Given I’m going cold into Flash development I’d like to start looking at ActionScript 3 with existing source code to guide me, and Penguin is a better project to have in my mind for this task. I’ll set myself the task of working on Penguin this week (and only this week to give me a deadline), then I’d do a prototype for Crystal the week after so I can do the idea justice.



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.