I delivered my MacBook Pro to the shop for repair today, so I’ll be without my main development platform for this week. Actual Flash development will be hold, although I might spend some time designing ActionScript classes.
During the time I’m without my Mac, I’ll spend a bit of time resurrecting some old skills. Now my left hand has healed I need to get back into drawing again - the Flash games are eventually going to need it, and I’ll need to start learning Illustrator too; the interface just is not intutitive to me.
I also might spend a little bit of time planning for future Flash games, including the Four Elements contest. I’m fairly sure I can factor it into a small simple Flash game if I try hard enough. I’m currently debating a series of ideas in my head, but most of them depend a lot on what Flash skills I can develop and how fast I can implement with them. My current thinking is I should brainstorm a whole series of concepts quickly, and then test the skills I need - such as the ability to animate a horse. I might have to resort to a game idea that is based primarily on still images, but that’s not necessarily a bad thing.
For those who are interested, there are two main game concepts I’m considering. The first would be some kind of fantasy management game, based on some colourful magic world filled with ponies. You have a team of accountants (vaguely supernatural ones) that help you manage crystals as a resource for managing the ponies somehow. I’m also thinking crystals can be used for fuelling explosions of restorative energy. It’s all extremely vague because I’ve only been thinking about this in dead time, such as when I’m walking from point A to B, and without the images in my head it’s a fairly useless description. I like the general concept because it’s a gameplay mechanic I’ve been wanting to implement, and it can be done with minimal animation. It needs a fair amount of 2D art to be appealing, and might take some work before I can tell if it’s fun or not.
The second idea is also a concept I’ve been meaning to try for a while - a fantasy sports game, one which is totally crazy where no-one really knows the rules. Think something like a cross between Calvinball and Blurnsball. This could work in turn-based, or maybe even with a board game/trading card like feel. I like this idea as it’s also a gameplay mechanic I’ve been meaning to try, plus it’s very scalable due to time pressures. Both a strength and a weakness is that it can pretty much work with any four elements - I could probably even throw ninjas, pirates, zombies and robots in there too.
Whatever I decide to do I probably won’t start development until December anyway; I’ve got an awful lot to do before hand, and I need to get more comfortable with Flash first. Until I can gauge how much I can do in the time I have I can’t commit to any concept.
The next game in ActionScript 3.0 Game Programming University is a shooting game called “Air Raid”, where you move a cannon from left to right to shoot down aircraft. However I’ve decided I’d prefer to branch out a little and make something else up vaguely in the same area. I settled on an old school style arcade scrolling shooter along the lines of Galaxian or Galaga. I figure it’s time to start to learn from trial and error by making more of the decisions on the program structure and programming.
So far all I’ve got is a few choice fonts (from Larabie Fonts like with the other games; Ray Larabie has brilliant free fonts for games) and a scrolling star field. The star field has taken me a little while to do. It’s got through a few iterations and I’m still not very happy with it. It’s a little bit jerky even though I’m using time based movement, and I don’t know whether that’s a limitation of Flash or I’m doing something wrong.
My first approach to the star field was to have an array of star sprites that move down the screen. My second approach was to draw the stars individually onto a single star field sprite every frame. I actually tried both approaches at the same time as I wasn’t sure which would be best. I found that there didn’t seem to be much of a difference between the two - they both were okay, but they both stuttered in movement.
My next approach was to render all the stars at creation to sprite layers saved as bitmaps, and to scroll the layers down the screen. I used two identical sprites per layer so I could have them seamlessly wrap from top to bottom. There were some weird motion effects on the two sprites where they weren’t moving at quite the same speed, which I suspect was due to floating point errors. I’ve now got them working on a variant of fixed point and got both sprites moving in lock step, but there’s still a bit of animation stutter.
I might be overreacting since it isn’t that bad, but I’m curious as to whether there’s a way to getting the scrolling silky smooth in Flash. For now it’s good enough, and I’ll move onto planning out the game.
Additional: I’ve just noticed that the PNG screenshot of the Flash file is several times larger than the Flash file itself. I might as well just post the whole darn thing instead of a still picture!
The thumbnail link now goes to a copy of the Flash file. It might be nice to have a couple of copies of works in development to compare against.
It’s the long weekend, and instead of sleeping in I’ve finished off my second Flash game, Code Breaker. This is from the fourth chapter of the Game University book; the gameplay is essentially the same, but I spend a while modding it extensively to get a feel of how to layout things in Flash.
Here’s the link to Code Breaker
The game is essentially the same as the board game “Mastermind”; the computer chooses a random code of coloured panels, and you have to deduce the code. Click on the grey panels to cycle through colours to make your guess and hit the Done button, then lights will give you clues on the code. A green light indicates you’ve got a coloured panel in the right spot in the order (but it won’t tell you which one!). A red light indicates you’ve got a coloured panel in your guess that’s somewhere in the code, but you’ve put in the wrong spot. You’ve only got ten guesses to try and crack the code.
One thing that mightn’t be obvious is that the default grey panels can be left in your guess, but are never in the secret code. You can use these to your advantage if you only want to focus on a bit of the code at a time.
Tell me what you think; I’m going to start looking into what I’ll make next.
Another link to Code Breaker for good measure
Tile Match - My First Flash Game
It took me a little bit longer than I expected, but I’ve got a Flash game up and running. I’d forgotten how many little things crop up when making a game, such as making sound effects, testing and all the other random things that get in your way. Having 4E6 announcements along the way didn’t help!
Here’s a link to a webpage for the game; it’s pretty much the same as the one that Flash spits out during its publishing phase as I haven’t yet decided what format I’ll go with for these things.
The game itself is a simple tile matching game; find pairs of matching tiles by clicking on them. It’s pretty much the same as the game described by Gary Rosenzweig in chapter three of his ActionScript 3.0 Game University book, except I prettied it up a little bit.
I’d love feedback on the game! I’ve tested it myself over the Internet and it seems to work fine, but if there’s anything obvious I need to fix let me know. I’m new to whole Flash thing so I’m sure I’ve committed a few blunders in there.
Link again in case you missed the other two.
(You might need to get the latest Flash player for the game to work.)
I know this is just after my poll result post, but since I’m using WordPress now it makes better sense to split unrelated topics off into their own posts. I get email notications on every reply, so it’s not as if someone’s useful comment will get lost along the way.
I spent a chunk of the weekend working through the first two chapters of ActionScript 3.0 Game Programming University. These chapters cover the basics and a bunch of universal elements, many of which are analogues of the sorts of techniques I’ve been using in plain vanilla C and C++ style games. In fact, ActionScript’s interface seems pretty close to what I was building towards in my own game library, such as the display list, event listeners and even the method for storing local data.
This week I’m keen to get started on making games. My plan is to work through a chapter of the book a day if I can, which roughly equates to a game every evening. I’ll also try to do all the artwork too, as I need to get to grips with that aspect of Flash and Illustrator as well. Some days I’ll have to skip game work, and I’ll only have a few hours every evening, but I think it’ll be enough time with the book to help me.
Obviously only spending a few hours per game doesn’t lend itself to producing anything too spectacular; I expect some pretty bland games over the next week. But I’ll see what I can get done each day.
This evening I’ll get started on chapter three, which describes the process of making a tile matching game in Flash. We’ll see how it goes.
My fingers on my left hand are now semi-operational. I can curl my middle finger about half way, enough to wrap it around large objects, but not enough to make a clenched fist. I can also write legibly now if I don’t put too much pressure on the pencil and I use large letters. It’s not healed enough for extended writing, but at least now I can jot things down as I work on a computer. I’m also speeding up with nine fingered typing, so that’s a bonus.
As I doubt my hand will be healed enough for fine pencil work for a while, I’ll dedicate this work to keyboard only tasks. From the perspective of game development, this means I’ll have to continue holding back learning Illustrator and Flash animation a while longer. I could just use geometric shapes with the mouse I suppose, but I’d prefer doing draft work with pencil (either real or digital), and I think it’s best to wait a bit before putting too much pressure on my swollen finger. Instead this week I’ll continue to get to grips with ActionScript 3.0.
More on Springing into ActionScript
This week, apart from being unable to a particular Queen song out of my head (He’ll save ev’ry one of us!), I’ve been slowly acquainting myself to the basic tools of Illustrator and Flash. I’m still at the absolute basics, working through a few online tutorials.
After some consideration I’ve decided to dub September “Learning Adobe Month” and put my game engine on the slow burner for a while in order to be able to devote more time to getting to speed with Illustrator and Flash. This is partly because I’m just keen to dive in and learn these tools, however it’s also because I’m going to spend a lot of my time this month programming prototypes in C++ for research purposed and I’d like to spend my spare time doing something a bit more visual to give my mind a break. Plus if Flash turns out to be great as a prototyping tool it makes sense to structure my own engine in a similar fashion to make porting easier.
More on Flash! Aaa-aah
Due to the category system in WordPress I’m trying to keep to one topic per post. It’s time for a software design related post.
During the week I have been spending some time doing some preliminary work for Ice Slider. To start with, I have taken the current code base and attempted to emulate some of the features I had running in the now obsolete prototype I had last year.
However I’ve quickly reached a snag with the text rendering. Last month I was experimenting with a scene graph like method for grouping sprites so they could be manipulated in logical groups. However I had failed to fully integrate it into support code such as that used for displaying text. After spending some time away from the code it’s painfully obvious that the graphics system is starting to fall apart with the tacked on upgrades; it’s in clear need for an overhaul.
More on Rethinking the rendering code
While I need to put in some more changes to the website (and think of a new poll too), it’s about time to start posting about my hobby projects, since that is the whole point of trazoi.net.
As you’ve probably guessed from the site my main hobby is game development. My eventual goal is to make the happy, fun, emotional roller-coaster packages of enjoyment that I dream of making. My current method of approaching this goal is “Project Diagonal” - developing my own suite of 2D game development code.
In the rest of this post, I will briefly go over the point of Diagonal, a description of my current game Ice Slider, and other plans for the rest of the year. This is also a test of WordPress’ summary capability, so click the link to see the rest of the post.
More on Diagonal Game Library and Ice Slider
The first version of my downloadable game page is now up at trazoi.net/games. It’s also on the nav bar for easy access. Currently it’s rather spartan and there’s only two games available (Brixtar, and Pierre and the Fish) - I’ll need to fill that out soon with more info and preferably more games!
I spent a while studying the WordPress help pages to figure out the best way to put in something like an archive of downloadable games. In the end though I just tinkered around with pages to get something done. I’m hoping it’s globablly workable; please tell me if something isn’t working right.