March 25, 2009

Impromptu Break - Confession

I’ve been putting off making this post, as it’s a bit embarrassing. It’s more than a week later, and still no game. I guess this counts as a failure! What happened?

After I made my post last Monday, I did some soul searching to figure out where I was going wrong. My conclusion was I made a mistake in jumping straight into working on game projects the instant my thesis was complete. Heck, I started work as soon as it was at the printers. However, with my write-up dragging on and on and me being at least four months behind on my pencilled in schedule for 2009 I felt I had to make up for lost time.

My biggest concern is that I seem to be entirely motivated by guilt. I feel guilty I’m this far behind, that I’m not up to speed, and that I’m not putting in enough effort. Guilt can be a powerful motivator, but it’s entirely negative and really not the best motivator for anything creative. So I decided to try a motivational experiment, and told myself I didn’t need to feel guilty last week. Work on what I feel like, if I feel up to it, but if I want to dabble with other things, feel free.

The results were.. somewhat expected. I ended up doing very little on Project Protos. I did however feel a lot more relaxed. I caught up on a bunch of chores I’d been putting off for ages. I spent some time pondering the whole whys and wherefores of me going into games. I also drank a lot of tea and spent too much time surfing the internet, which is a real problem. I think I needed a break, but I can’t even relax properly.

I’m not sure if this impromptu break was wisdom or just weakness. I’m not that happy I wasn’t able to keep up with the game-a-week progress that everyone else is doing. I’m also unhappy that it’s near the end of Q1 2009 and I’m not even out of the gate yet. But I also don’t want to burn myself up in a few months due to a misplaced priority of quantity over pace, which I feel is a real danger. It’s a quandary. I feel like in the last couple of years I’ve pieced together a winning plan for this, but instead of a beautifully arranged dot-point list it’s taken the form of a 10,000 piece jigsaw puzzle designed by Escher. I’ve got all the pieces but it’s a challenge to even start putting them together. And I don’t know if my plans all hinge on me being a superman who can work productively for sixteen hours a day, seven days a week. There’s too many unknowns.

My gut feeling, which I’ve come to rely on, is that the Flash game that is Project Protos is a wonderful start point, but I should continue to work on it at a relaxed pace. I was going to say I’d aim to have it finished by the end of the month rather than in a weeks time, but I notice that for today that doesn’t make much difference! My real goal is to switch into a sustainable, professional, productive mindset. I’m giving myself a week to settle down, clear out the mental cobwebs and find my focus. When April comes round, I’ll be ready, and in a much better position mentally to work on experimental microgame projects.

My first big change is to curb my internet procrastination habit, which may be difficult. I’ve got a nasty habit of just heading to a random site whenever I get stuck on anything, which is an easy way to waste a day’s work. I’ll try tweaking my mindset each day until I find something that works.

Permalink • Print • 4 Comments

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

March 6, 2009

Thesis Complete!

My PhD thesis is printed, collected, signed, collated with CD-ROMs and paperwork, packaged up and posted. So the thesis is now complete, at my end anyway. Hopefully. I’ll be absolutely sure when I have word back from Canberra that they got it okay and I did all the admin correctly.

This means, PhD wise, there’s nothing more to do until it is examined. In a few months time I’ll get back a report, which will probably have a whole bunch of corrections to make. If it goes well, the suggested corrections will be “minor”, which means the examiners don’t want to see it again… which effectively means I pass. If “major” corrections are needed, I’ll need to resubmit… which isn’t really a fail, but it means I’ll be sweating for months doing serious PhD work. Not good. If they really hate it, then I’m in big trouble. I doubt it’ll be that bad, but fingers crossed anway.

I should now be free to worry about new, 2009 business things, rather than finishing old 2008 things now. One less thing to worry about, but replaced with several dozen more. ;)

PS. Why did I never create a PhD category on this blog? This will have to go under Real Life, as it’s too late to add one in now.

Permalink • Print • 4 Comments

March 4, 2009

Procrastination via Education

The vast wealth of knowledge on the Internet is both a blessing and a curse. When I was a boy first learning how to program I’d have given my milk teeth for something like the Internet today. All I had to work with was a couple of book on how to program in BASIC. These days, with the Internet, there are hundreds of guides for just about everything. But if you’re keen on learning then there’s an insidious downside to all this information at your fingertips; you can spend entire days reading more and more without actually doing anything. It’s an easy trap because you can use the justification that you are learning, but sooner rather than later you need to be doing as well.

This is what has happened to me over the last few days with setting up my new website. I don’t know much about web design and management, and with the emphasis on security I always feel there’s some critical gap I am missing. I’ve worried about the safety of my domain name with my registrar, the type of hosting I need, how to run my server, using WordPress over plain HTML, and so on. Sometimes the advice is conflicting. If I read too much in one sitting it just feeds into my paranoia, which makes me want to read more. It can end in effective paralysis.

There’s also the basic problem of being swamped by so many options to do everything. This is a general problem with everything to do with computing. There’s so many options to do anything; multiple types of hardware, multiple libraries, multiple service providers. If you aim to find the “best” solution you will spend an eternity evaluating all the choices. I’ve noticed this problem with myself, and I need to learn to put my foot down and if I find a decent solution that works, then I go with it.

All that aside, I have got some progress done. My current objective is to build the basics of a new website that will blossom into a business site. To start, I want to get the skeleton up and running internally where I can test it before putting it up online.

Currently, I have an Apache server running on my iMac together with PHP and MySQL. It isn’t actually that hard to get Apache and PHP running as they’re both part of Mac OS X, although dormant by default. I installed an updated package anyway to speed things up. MySQL was a little trickier as I did not get the permissions right first go. It took several hours to get it and phpMyAdmin working. Unfortunately for me, database management is a big gaping hole in my acquired knowledge so there’s plenty I need to learn.

After that, I’ve got a local copy of WordPress up, configured and “secured”. Modification is still an ongoing process. I’ve got a bit sidetracked reading about all the security issues and plugins. I know security is a big issue for a big open source project like WordPress, but I don’t know whether a lot of the security issues I hear about stem from the kind of people who think “password” is a good password for their system. Currently I think I’ve fixed the basic vulnerabilities; got all the file permissions set up, hidden information on files and directories using Apache’s config, used non-standard names to stop automated attacks and got the administration panel protected with a double password system (HTTP Digest for key files, plus WordPress’s own system). Certainly overkill for a test website that no-one online can see, but all good practice.

Next up, I need to experiment with a directory structure that works for what I want it do to. I’m leaning now towards doing the whole site in WordPress, at least to begin with. To start, my site’s basically going to be a blog anyway. Eventually I’ll be adding in a lot of static page articles and product pages, but I think WordPress should expand to cover that too in a way that has extra benefits (such as including all pages in the same . For a one man website I think it will be sufficient to do a few tweaks to a blogging engine; better that then spend an age learning a more complicated over-powered CMS system. If WordPress can generate static HTML pages for the main site with a bit of automagic, then that’s all I’ll need.

I also need some good administration tools, such as a few good ways to log what’s happening on the site and a method for automating backups. I’m assuming there’s some good methods for this already out there. Once I have the basic global structure down, then I can start thinking about web page design.

And on top of all this, I also need to get started on actually making games. With all the focus on game-a-week and game-a-fortnight projects right now, it is probably best to just jump in feet first. I’ll do a bit of thinking about what a good first project will be, but I’ll make a promise to myself to start on a short, actual game related project by Monday next week, if not earlier.

Permalink • Print
Made with WordPress and an easy to use WordPress theme • Trazoi Bounce Box skin by David Shaw