The AGameAWeek 2008-2009 Retrospective
Part One,
Part Two,
Part Three,
Part Four,
Part Five
AGameAWeek : Year One
A retrospective
The Beginning
Before I started AGameAWeek, I'd been working away at various games without any real goal. The fun of completing each game pushed me forward to start the next.
During 2005, it was decided that a weekly challenge might be a good idea. So, over at CodersWorkshop.com (now long gone) I set up a Wednesday Workshop challenge, which is now housed at Socoder.net. Each Wednesday I would think up a challenging topic, coding style, or gameplay style for a game, post it to the forum, and then people would try to create a game based on those rules within the week's deadline.
The challenges seemed popular at the start, but as time's gone on people don't seem to have the motivation for it anymore. It seems somewhat of a shame to have such a fun idea reduced to a shell of it's former self, but I keep the idea going even today, in the hopes that somebody, somewhere, will see the little challenges and it'll spawn an idea in their head. That's more of it's purpose nowadays. To generate new ideas, as opposed to bringing in a multitude of games.
Still, I continued to work on Workshop games, and every other week I would enter a silly little game. These games would sometimes be unfinished ideas, or occasionally more interesting complete games that could potentially be quite a lot of fun. I liked the idea of some of these games and more importantly enjoyed the rush of finishing off so many games so quickly. At the same time, though, it was becoming apparent that my games weren't gaining the audience exposure that they could. Which was a shame. All these games that nobody ever played, and yet there were some really good ideas in there.
In a vein attempt to boost my ratings a little, I decided to take things to the next level. Rather than just plonking each game into the Wednesday Workshop and leaving it there each week, I would use my blog to post them somewhere a bit more interesting. I renamed my blog to AGameAWeek.com, and forced myself to do just that.
This is the result of my strangely misguided idea.
-=-=-
Week One - The Heist -
Link
After the change in format of my Blog, I was ready to post my first game. I'd already been working on it as my Wednesday Workshop game for the week. Challenge number 162 asked us to create a game with a large ticking timer at the forefront of the gameplay. I decided that it might be a good idea to create a game based on a Bank Heist, and created a short set of mini-games that would make up the gameplay.
First, you would have to unlock the safe, by tapping the green coloured buttons. Once open, grab as many money bags as you could, each filled with random amounts of loot. Then you would have to run for your car, drive it to safety, and eventually have a shootout with a copper, before getting home safe.
Unfortunately, there was a slight issue with the gameplay. I originally wrote the game on my Celeron system, with it's nice constant 60Hz refresh rate. I made it so that to run, you could tap the mouse, and the player would gain speed. However, due to the lack of frame rate limiting, the mouse-speed combo became completely and utterly unplayable on anything above 60Hz. The game is impossible to anyone with a half-decent system. Epic Fail!
If you set your system to 60Hz, the game still plays just fine, and you can get a bit of fun out of it. Otherwise it's just a broken game, which is a shame, since it's actually quite a nice one.
Week Two - Mr Money Grabber -
Link
Bank heist, grabbing money.. It's a theme! I decided that my second game should be more platform orientated. Based on those old-school single screen platformers from the 80s, I created a nice fast game with lots of random elements bombarding the player. First off, I created a nice way to make random levels. I built a long strip of a level, ensuring all parts of the level were easy to navigate, and then got the game to take a single part of that strip to use as the in-game arena.
Next up, some elements. I got the game to randomly spawn some coins. They would appear at the top, and roll around until they reached the bottom of the level. After a while, they'd disappear in a puff of smoke. Simple AI was used to just bounce the coins around the level, and they'd just fall wherever there was no floor. A simple, almost useless AI, but one that did the trick. A lesson in simplicity!
Since the coin-"AI" worked out so well, I just replicated it for the monsters, and got them all doing the same thing. They'd wander aimlessly around, and not really do anything. Then I got the player running up to speed, and ensured the gameplay was all levelled off. Not too fast, not too slow, and just the right level of difficulty that you could potentially get a really decent score.
This game turned out just fine, and it's still just as playable today as it was then. It's not an amazing game, by any means, but if you've a few minutes to spare you can give it a whirl.
Week Three - Space Loops -
Link
Old games are fun, but as time goes on Windows loses the ability to continue to play them. I used to love playing Boogaloopers, but my system point blank refuses to play the thing anymore, which is a shame. As a result, for week three, I decided to remake it as best as I could within the time allotted.
Blitz Basic is prone to a lot of math errors. I'm not sure why this is, but the precision can sometimes be WAY off! It's good enough for most games, but if you're doing some crazy calculations, it can occasionally go a little bonkers. In this game, the trail of the ship has to be able to create solid loops that then shrink into nothingness, killing the enemy within. This proved to be rather tricky, given the obscure math errors, but I gave it a whirl anyway.
The result is a game that, for the most part, plays like it should. There are a few times where the tail will capture things that aren't within it's loop, and a few times where the loop will seem to grow for a few frames, but all in all the game tends to tweak in your favour! Whether that makes it better or worse is entirely debatable, but at least it's not unfair in it's quirkiness.
On top of this, I also spent a lot of this week working on a brand new Highscore system for Socoder.net. This allows users to create a highscore table, and then link it to one of their games, allowing online highscores to be used. Space Loops was the very first game to make use of this technology, and it makes it all the more worthwhile.
As a bonus, I used the new Highscore system, and added highscores to Spider, a game I'd written earlier.
Link
This game was a remake of an old demo game that came with Blitz Basic. It's not much of a game, but the highscores were easy enough to implement, and served as an example to others who might want to use the Socoder online highscore system.
Week Four - Cowbell Hero -
Link
This is an idea that's been bounded around the Internet for a long long while, and when Wednesday Workshop 165 asked us to create a game that used only one button, I decided that this would be my project.
First off, I'd need to come up with a way to store the music data. I opted to use the XM music format, and placed specific markers (where the note is 00) inside the actual music. Then when the game loaded the music, it would place triggers at these marker, and those would be the places where the notes should be hit.
On the one hand, this meant I wasn't going to have to build a completely new music format, just for my game. Reusing things is a coders best friend! On the other hand, it meant that I could use the regular music tools that I regularly use to create level data for my game. Additionally, if you then try to listen to the music, it doesn't actually sound any different to how it usually would. Three birds with one stone!
With that sorted, I built a quick XM Reader in Blitz Basic that could filter through the data, find the triggers, and organise the gameplay. It was simply a case of them scrolling the triggers down the screen, and having the cowbell noise hit when the player tapped their button.
Simplicity rules again, and the game worked out just fine. I even got a slight bit of interest from the ModArchive community, where a few members helped to put together a few extra tracks for the game.
Week Five - JNKPlatDS08 -
Link
As well as coding games for the PC, I use the homebrew capabilities of my Nintendo DS to full effect. In week five I created a brand new edition of my much loathed JNKPlat game that I've been consistently remaking since I was at college. JNKPlat is a puzzle/platformer, with it's roots firmly planted in the world of Puzzle games. Due to the tile-based nature of the game, I opted to use an unconventional Two-Button Jump technique to make the game a little easier. In most games, it's tricky to jump from certain places in certain directions, but if you have two separate buttons to do it, it all gets a little easier.
Unfortunately, most players don't "get" this, and tend to turn off the two button jumping system. They then complain that the game is far too difficult, and that some of the jumps are impossible.
No matter, the DS one was revealed in week five, and given the DS's button placement, the two button jump seemed to feel a lot more natural. As such, the game was given a much more welcome reception than most other versions, and I worked hard to make it the best version I previously had done. With proper animation, plenty of new gameplay elements and a whole big bunch of levels, this is definitely one of the finest of Platdude's adventures.
The game continued to be worked on for about a month after release, and some level and graphic packs were even submitted by fellow players. A fantastic JNKPlat if ever there was one.
Week Six - Bibbleman and Bobbleman 2 -
Link
In week six, I decided to purchase BlitzMax. Since I was going to be learning a whole new language, I figured I'd best attempt something nice and quick, to be sure I could get everything working.
Taking an old game of mine as a template, I recreated the look and feel of Bibbleman and Bobbleman, and tried to add something extra. The game allowed me to get simple sprites moving, allowed me to test out the recolouring techniques, and even gave me a chance to play with the audio functions, too.
As it is, this game turned out about the same as the original. It has a few new level concepts, but there's not really anything major. A rushed game a week, and it shows. Perhaps given a little more time, I might've changed the graphical stylings of the game. But then, that might've harmed it's retroness. Always a complex dilemma.
Week Seven - H~S : Horizontal Shooter -
Link
After last week's disastrous game, I decided to spruce things up a little. Looking back to another of my earlier games, I felt I could give Horizontal Shooter another go.
The original game was intended to be an entry into a "Horizontal Shooter with a boss" competition, but as is usually the case, I forgot about it halfway through! (d'oh!) No matter. As it was, the original was still a pretty fun little shooter, even without a titlescreen, or ending, or.. really.. much at all.
Taking the basics as a framework, I rebuilt the whole game. I got nice blurry alpha stuff going on, used the recolouring to good effect, and managed to get a decent background effect working, too. Or so I thought.
As it turned out, the way that BlitzMax works (or rather, doesn't!) meant that there was a huge difference in how it handled drawing to textures. On my 3 year old Celeron system it ran just fine, but on certain other newer systems, the background texture effects slowed the entire game to a painful crawl.
The game, although one of my best looking games to date, was a shell of what it could've been, all because I'd "upgraded" to BlitzMax. I called this game a loss, and returned to Blitz3D. At least Blitz3D held up on various systems, even if I couldn't make games for Mac and Linux. (dang!)
Week Eight - Afro's Chair -
Link
Back to basics and raring to go, I decided to work on something simple. The week's Wednesday Workshop (169th) asked us to make use of a forum member's 3D work, to create a game of sorts. Since the models were pretty much generic room objects it was slightly more difficult to come up with a game than it really should've been.
I put my crazy-mentalist's thinking cap on, and decided to use the model of a chair in a room to create a simple escaping game. Opening up Paintshop Pro, I took a picture of the chair, and transformed it into a little robot. A simple animation was made, and the robot was able to stroll inside the blue room, and hide from the automated cameras.
Very simple gameplay and not really all that fantastic, the game was just an experiment in animation more than gameplay. But it's something that I probably would never have come up with if it wasn't for the Wednesday Workshop. In a lot of ways, I'm glad I kept that going!
Week Nine - Sheriff Munky -
Link
Something I didn't keep going was the Monthly Workshop. It seems like something that should be workable, but people tended to overthink the Monthlys, and they usually just ended up as unworkable messes of games, rather than properly thought out ones. The Monthly Workshop has since been scrapped, in favour of just letting folk get on with their own things.
Having said that, Sheriff Munky came about as a result of two things. First off, the Sheriff Munky tune which I'd created a couple of years earlier. I thought it was a decent enough tune, but never really had a game to fit it. On top of that, the monthly workshop's theme was to create a game with guns.
Putting both together, I came up with a nice game involving the player shooting and jumping simultaneously. In the end, it plays a little like the old Mastertronic game Kane, but kinda smushed together into one.
It's quite a tricky game to play, since you're having to do two things at once, but I felt it worked out nicely. Hard games are good, right?!
Week Ten - Highscore Issues -
Link
Once Sheriff Munky was posted, a forum member cracked the Highscore encryption, and set about breaking everything. *sigh* Breaking encryption and warning about it is one thing.. To then set about posting stupid things all over the place, whilst I'm trying to fix the thing... .. I was very annoyed about that.
I spent the week working away and fixing up the highscore system as best I could. I think I did a pretty decent job of it, but.. who knows!
As a result, I reposted a newer fixed version of Sheriff Munky, as well as posting new versions of H~S Horizontal Shooter, and Mr Money Grabber which also had the new highscores implimented.
As well as those, I also added highscores to two older games. Centipong is a fantastically playable Arkanoid clone, which mixes Breakout with Centipede. Plays well, and is even better with Highscores. Mario's Fiery Forth was a game I'd written a LONG time ago, but that I'd grown fond of over the years. That, too, got the new Highscores added to it's framework.
All in all, this was a week without me really coding any new games, but I also spent the week doing a whole bunch of encryption stuff, and trying my best to lock down the scoreboard methods. I think I managed rather well, and there were still some new things to play.
Week Eleven - Centipong DS -
Link
Having added the Highscores to Centipong in the past few days, I fell in love with the game again. It would've been useless to recode the game for no real reason, so rather than just mess about with Blitz, I decided to remake the game on the DS.
Looking at the original game's files, it became apparent that this had actually been on my mind when I started. All the audio files were made in 22,050Hz, 8 bit, mono. Ready for loading straight into the DS. The music was all 4 channel mod music, also ready for the DS. Handy!
I still had to redraw the graphics, since they weren't really good for scaling, but that didn't take very long. It was then a case of bundling it all together, and recoding the actual gameplay to fit across the two screens of the DS. I later added trigger and d-pad controls for people who wanted them, and an option to add/remove the physical gap between the two screens.
Centipong DS seemed to work out rather well, and folk liked it. It's just a shame that I couldn't come up with anything new to build onto it. It's one of those "Just this" games, that gets boringly repetitive after a few goes.
Week Twelve - Ball Up -
Link
Speaking of repetitive dull games. Ball Up came about as a result of another Wednesday Workshop, the 173rd. I didn't really stick to the plan of the Workshop, instead trying to do something a little different. It didn't really work out very well!
The aim of the game was to jump a ball up the screen, gaining combo points for bounding off similarly coloured blocks. Unfortunately, the game has a terrible platform engine, and it didn't really work out very well with such a rubbish engine.
Given a much better engine, taking my time to get the jumping just right, Ball Up probably would've been a much better game. Another case of "It'll do" not being quite good enough.
Week Thirteen - Snaaaaaaake -
Link
You can usually tell when I'm busy working on something else! In this case, Week thirteen's Snake game could, again, have been a better game had I spent a bit more time on it. The basic idea was to take the classic mobile game Snake, and try to add something a little unique.
I decided to add bombs! Why not!? With bombs comes combos, and the possibility to blow up nearby bombs. That was pretty easy to achieve, but once I tried playing it, it became really easy to kill the snake with crazy explosions.
Instead, I decided to make the snake invulnerable, and set a timer in the corner of the screen. This worked out a lot better, and the game became a rush to destroy/grab as much as you could within the time allocated.
With the new timed gameplay mechanic in place, it then became even easier to make the game score based, and I threw in the Highscore system as a bonus.
Super highscoring combos, crazy explosions and online highscores. What could be better than that! I just can't imagine how insane Eikon's game must've been to get a highscore of 1,419,226,772! That's almost the 32bit limit!! (which could possibly explain why it's never been beaten!)
Week Fourteen - The Gear That Works -
Link
Working in Blitz3D again, I decided to try out the limits of my own 2D-in-3D engine. After the Texture issues of BlitzMax, I wasn't 100% sure that everything would work the same on everyone's system. The best way to test these things out is to create a game that will spread fairly rapidly, and then look out for people moaning about the game not working.
I recreated the Amiga game GearWorks. A simple game involving gears heading from a moving cog to a predetermined static cog. The idea is to line up the randomly spawned cogs so that you can get all the cogs in the screen moving.
Using a changing texture for the background, and 3D elements in front of it, I was able to fairly easily get everything I needed to test, into a simple little game. The game was then posted to Retro Remakes, and from there ended up in random places over the internet. From the comments, usually asking how to play the thing, I was quickly able to determine that.. yes, indeed, the engine was working pretty darned well. More importantly, it was working on lots of different systems. Much better.
The game's fun, and even has a level editor (I think!) so there's lots to play, and more to do. It's a shame that I never got around to making more levels. It's even more of a shame that nobody else submitted any new levels, either. Aw well.
Week Fifteen - The Wheel of No Prizes -
Link
Another perfect example of me testing my 2D-in-3D engine! This time, I wanted to test how big I could get the textures and sprites before Blitz would start to freak out.
I created a Wheel of Fortune game, complete with a great big spinning wheel, made up of individual triangular segments. Each segment is 512x64 pixels, so there's Non-rectangular textures being checked. They're then spun around on a great big wheel, far outside of the limits of the screen.
I half expected Blitz to throw a major wobbler at all of these things, even if they did seem simplistic, but Blitz handled them with ease. Nice! On top of all that, I've got a bunch of 2D sprites, font rendering and more.
A success. The only real issue is that the game's really really hard, and had I instead stuck to movie titles, it would've been 100 times easier to play. Gameplay wise, it worked out great.
The AGameAWeek 2008-2009 Retrospective
Part One,
Part Two,
Part Three,
Part Four,
Part Five