March 17, 2009

Project Protos: ongoing this week

I’m back on the project again today. Technically I was supposed to finish off by now, but I had some change of plan:

  • I decided on Saturday I was too exhausted to burnt myself out, so I decided to take the weekend off.
  • Hours after that decision, I was struck a series of headaches that forced that decision. [wink] Not sure what the problem was, but I was in various grades of useless all weekend.
  • Monday was better but I wasn’t able to pull it all together. I did spend some time playing with the music, but organisation was a bust.

Stuff like this happens, but I need to knuckle down and consider this project with more gravity than a pet project, if I want this to be my job.

My new target is to finish the Flash game by the end of the week, using the weekend as spillage time if necessary. For it to be finished, it needs to be playable and have a modest amount of polish, and generally be good enough to sit on a website with pride. This gives me four days to learn the Flash development pipeline well enough to get the job done. However I expect I’ll spend some of those days doing other tasks, so it reality it’s a lot less than that.

Today I will get the proper basic prototype working, even if its ugly and unbalanced. I’m aiming to post a prototype screeshot tomorrow, as well as a description of the game.

Permalink • Print

March 14, 2009

Project Protos: Day 4

Next time I do one of these, I think I’ll step down the daily updates to just key milestones. Sometimes, even if I get stuff done I don’t have much to talk about.

The good so far: I’ve got the basic cannon working. The bad: still havent got anything resembling a game. Things are moving a bit too slowly. There’s a bunch of pesky little annoyances that are taking longer than expected to sort out.

Case in point: I’ve worked on some new graphics in Inkscape. Unfortunately, Flash doesn’t import SVG files, but luckily I do have a copy of Illustrator which does. Illustrator has some strange ideas about what to do with the SVG primitives though, swapping out the colour palette for some strange muted version and completely messing up the stroke (the outline) on shapes. Grr. If I have to I’ll export as raster images, but it’s a bit of a waste to have to use raster in a vector driven tool like Flash.

The other big problem is more mental. I think I’m a bit burnt out. Strange to be burnt out before I’ve really begun, but I’m essentially doing the same thing I’ve doing for the last few months: sitting at my desk typing at my iMac. My focus is shot, which may be why I’m constantly stumbling over things and not spending my time wisely. My hunch is that I need to regulate my time a bit more, so I can spend my time at the computer focused at the task at hand and then relax guilt free. It’s the latter bit that’s important: I’ve spent the last year feeling guilty about not working when I’m away from my desk, and all it does is fuel your procrastination and make you slow down to a crawl.

I think I’ll take the pressure off myself to get this finished within a week. It’s an internal deadline after all. If I need to spend a extra few days to polish it up, then that’s okay. I can then spend significant chunks of the weekend doing other vital things without much worry, and calmly finish the game by Wednesday or so. I can take a step back for a little bit, review where I’m going wrong, then try to fix it for the finish.

Permalink • Print • 3 Comments

March 13, 2009

Project Protos: Day 3

Pew! Pew!

I haven’t yet quite got the basics running yet. I’ve got a gun turret and a crosshair cursor working, but the bullets are still broken. I haven’t yet figured out a good Flash way to implemenet them yet. It’s the memory management aspect that’s the issue. Flash’s Arrays appear to be sparse, which means it’s not straightforward to just delete a bullet, and I haven’t found Flash’s equivalent for a linked list yet. I might have to improvise something out of arrays.

Most of the delays come from my need to get up to speed and my unfamiliarity with Flash. I don’t yet know all the library functions and variables, so I have to look everything up. Occasionally I’ll hit something odd that takes a while to find the right fix.

I’m also a bit hamstrung in that it’s been a while since I’ve written game logic, so I’m trying to remember all those little details like the best way to manage my code and deal with frame rate independent logic. For this project I’ve cut back on the planning and an just piling all the logic into one file, but there’s a few cases where I’ve had to spill out into separate classes (and hence files; ActionScript is a bit like Java that way) for the sake of sanity. It’s not pretty, but it doesn’t need to be pretty.

Oh, and Flash’s drawing tools are a bit crazy. This is a gripe I have with all of Adobe’s tools, actually. I shelled out mad money for Adobe Creative Suite CS3 (well, I saved a bundle by getting an education discount, but it was still expensive), but the tools are some of the least intuitive I’ve used. Each tool seems to have multiple functions, and I don’t get when each one is in effect. I admit I haven’t given these tool enough time to do them justice, but that’s usually because I’ve got a task to complete and if it’s quicker to do it in GIMP, then that’s what I’ll fire up. Which is ironic, because GIMP’s interface is no slouch in the WTF department itself. Inkscape’s the only art tool I feel really at home with.

Back to Project Protos: at this rate, I figure I’ll be up to designing the gameplay today. I haven’t fully decided which direction to take this. The curret art is a placeholder and I don’t know which style I’ll end up using. I’ll probably just knock together something a bit more vector-y in Inkscape and use that; see what works.

Permalink • Print

March 12, 2009

Project Protos: Day 2

This week long game project is markedly different from the week I spent on Pierre and the Fish a couple of years back. Back then I felt like my mind was on fire, and threw everything I had at the project. This time, a bunch of minor ills have made me feel a bit more sedate. Nothing serious ( add indigestion to lack of sleep), so I’m not actually sick, but it means this project is more about pace and perseverance than passion. That’s not a bad thing; I won’t burn myself out that way. And I’m sure I can rekindle and regulate the necessary fire once I’ve got back up to speed.

Day 2 was spent relearning the basics of Flash and game development in general. I’ve got a copy of the book ActionScript 3.0 Game Programming University by Gary Rosenzweig, which is a good primer. It’s even got the code for a turret-based shooter game within it, so I’m virtually guaranteed to get something working on time.

I spent the day working through the basic examples: “Hello World” and all the little demos that show how to do each core element of game-related functionality in Flash (display, input, sound, timers, animation etc.). This wasn’t so much to rote learn the specifics (I’ve got references for that), but to prod my neurons into remembering how to make games. I’m very rusty, so this took all day.

The best thing I remembered about Flash and ActionScript 3 is that it uses an event-driven programming paradigm very similar to the one I developed myself for my own 2D framework. For those unfamiliar with event-driven programming, it’s where the program flow is dictated by when key events happen; i.e. when someone presses a mouse button or when a second has elapsed, then do this. You typically do this by linking functions (called listeners) to events, such as myButton.addEventListener(MouseEvent.CLICK, clickButton);, where myButton is the object that you want to deal with mouse clicks and clickButton is your listener function. Event-driven programming is perfect for GUIs and I find it works a treat in games too.

Today (start of Day 3), I’ll get to work on building the playable prototype. Having some source code as a base will help, although I plan to write it again to help jog my game development memory. My current checklist for the day goes like this:

  • Read through the bits of the book that describe the turret shooter game and take notes. Look at the reference code within Flash as well.
  • Roughly plan out the basic core of the game on paper.
  • Write the code and get it running with crudely drawn placeholder art

If I have extra time, I’ll look at the game as it stands before deciding what to do next.

Permalink • Print

March 11, 2009

Project Protos: Day 1

Day 1 was… uneventful. A complete lack of sleep doesn’t do wonders on my concentration. I ended up spending the day working on my website revamp, shifting shapes and colours around my mock up. I’ve got a good idea what the website will look like in shape, but not so sure about the colour. All I know for certain is that it will feature my favourite colour orange somewhere, and that lipstick pick works surprisingly well in a varied colour scheme.

Today I’m going to put all the HTML stuff to one side and get cracking on the Flash. My plan is simple, in that there effectively isn’t one. I’m just going to get a bare bones system up and running today without much thought into how it will come together. Once that’s in place, I’ll take it in whatever direction seems best.

Permalink • Print

March 10, 2009

Lab Game #1 - Project Protos

Ugh. Didn’t get much sleep at all last night. It’s a spate of insomnia this week. I probably need to cut back on the coffee. Well, can’t do much about that now. Despite not being in a more suitably chipper mood to start a creative project, it’s time to get cracking on my first game project of the year.

Lab Project #1: Protos

  • Codename: Project Protos
  • Goal: Game Development Warm-up
  • Technology:Flash CS3 for Flash 9
  • Concept:Turret based arcade game along the lines of Missile Command or Paratrooper
  • Duration: One Week

I’m starting my year of game development with a series of little microgames. This week I’ll work on my first of these. I always start my game projects by thinking of a unique code name, so I’ll come up with one right now: Project Protos. That’s “protos” as in Greek for “first”, not “protos” as in “those high-tech dudes from Starcraft“. It’s not the most original project name, but it’ll do for this one until I need a real title. I’ll save the creative stuff for when my morning coffee kicks in.

The sole goal of this first project is to dip my toes back into game development again. No fancy extra objectives required. Get a game idea roughly sketched on paper, get it roughly implemented, clean it up as much as possible given the time, then call it done. Pretty straight-forward. This is just about getting me to work on a game than it is about any other objective.

Since the sole goal is to make a game, I’m picking Flash as my development platform. Out of the options available to me, it’s by far the quickest to get up to speed. I never got too deep into Flash last year, but given the scope of the project and the nature of ActionScript this should not be an issue. At least I think so; I’ll have to see if I’m right about this by making the game.

Game concept wise, I’m not going with anything too complicated. A classic arcade style game should be sufficient. I’ve got a hankering to make one of those games where you control a gun turret and blast things, kind of like Missile Command or Paratrooper. This should be pretty suitable for a mouse controlled Flash game.

For time, I’ll give myself a week. I don’t want to get bogged down on the warm-up game, and a week should be plenty for this type of game. With Flash making things easy, I should be able to get the basic gameplay running in a day or two. The rest of the week can be spent polishing it up and adding in new gameplay features.

That should be a good way to start. A nice and simple warm-up arcade game in theory, but I’ll have to see how it goes in practice. Once Project Protos is complete, I can post-mortem it and use the experience to plan the next little microgame project.

Permalink • Print • 1 Comment
Made with WordPress and Semiologic • Trazoi Bounce Box skin by David Shaw