New Year’s Resolutions

No Comments

  1. Teach myself using GIT for source control. Start the move away from SVN
  2. Start using Unity for my game dev noodling. Especially now that it contains native support for 2D. Finally wean myself off XNA.

Check back in a year and see how I’ve done.

Some Poker Chip Artwork

1 Comment

For a long time I’ve harboured thoughts of doing a poker game. This probably seems quite silly given the plethora of poker games currently available on any given platform. But, believe it or not, I’ve not been able to find one that captures all of the features that I would like. I mean, I’ve seen all of those features implemented in some way, shape or form, but not all together in the one package.

So with that thought floating around the back of my mind I tend to keep half an eye out for art assets that may or may not come in handy should such a project ever grow legs. Said assets need to be of the appropriate price and licensing though. So far I’ve picked up various styles of chips, some decks of cards, some buttons and some felt / tables. Basically the reason I look for assets rather than creating my own is because my drawing skills are bloody hideous.

I’ve not been happy with the chip assets that I’ve accumulated. They are either a bit meh or not marked with denominations or too few denominations are available. I had a more concerted look over the weekend to see if I could turn up any better. While I couldn’t generate the correct combination of key words to get the result I was after (It’s pretty hard to not have search results spammed by gambling site hits), I did happen across this post made in the forums: Linky

I previously had no idea that plugins like this existed, or even how to figure out that I actually needed them. So anyway, I had a bit of a hack around and created my own chips of the denominations that I wanted. And given that I struggled to find any, I thought I’d post what I did here in case others had a use for them. So the below images are 96px png versions free for your use should you want to.

Dev Diary–Retrospective II

No Comments

AKA The Beauty of Design

Or something like that. Whilst this wasn’t the first game I’d designed by any stretch, it was the first one I’d done where I actually had a strong idea of how I was going to complete and then release it. I even registered for last year’s Dream, Build, Play competition when the game was about halfway done (the easy half, natch) thinking that was a reasonable goal (entering only, not winning, obviously).

As stated previously.I had written a few clones, read a few books and done a bunch of tutorials so I was reasonably confident of the approach. When I laid out the design I was careful that there weren’t any of what we used to call SMHH boxes back in my consulting days. SMHH standing for “Something Magic Happens Here”. I was very conscious of not making the typical noob mistakes of biting off more than I could chew or scope creep. I was far too smart for that! (Yeah, right.) So I drafted out the design and for the most part ruled a line under it. That was the scope of work.

I want to talk more about the philosophy and tools that I use when scoping out a game, but it feels like there is an entire post there, so I’ll hold off for now and talk about that next time.

At it’s core, this game was a retro space shooter. It borrowed gameplay elements heavily from Galaga and 1942.

For game progression, I wanted to take a discrete levels approach. Like in Galaga, the aliens would fly in in groups and form up into a squadron formation prior to commencing their attack. Once the player had killed all of the aliens, the level would be cleared and the player would progress onto the next one.

Back in the day, when I was in the military, we always used to joke that there was a cell at headquarters whose sole job was to think up stupid names for Operations, Exercises and Projects. I mean, there was actually an annual exercise with the US Marines called “Tandem Thrust”! Based on that experience, I thought rather than just having “Level 23”, etc. be displayed when a player started a new level, I’d display “Battle 23, Codename: Operation Desert Credenza” for example. Something that would add some humour and hopefully help encourage the player for ‘one more level’.

One of the things I loved from Galaga was the little insignias on the gameplay screen to denote the current level, and how they ramped up at milestone levels. I decided to leverage this approach also, coding the current level number into variations of military rank insignia and displaying that in the bottom corner of the gameplay screen.

I decided to add the ability to fly up and down, as well as just side to side. I thought this was necessary given my intent to release power ups to be collected by the player.

I wanted to increase the difficulty as the player progressed through levels in different ways. One way was to make the aliens gradually stronger, meaning it took multiple hits to kill them. Incorporating the concept of health or damage in enemies means I needed a way of communicating this information to the player. I didn’t much like the idea of including a little health bar display for each enemy. I thought it would add too much clutter to the screen. The idea I ended up settling on was a simple custom pixel shader where I would pass the health value of the enemy to the shader through the tint alpha channel during the drawing of the associated sprite. The shader would adjust the saturation of the sprite’s colours from full colour down to monochrome, depending on the health of the enemy, i.e. 100% healthy meant full colour and about to die was completely monochrome.

To help the player combat these strengthening enemies, I planned on having a choice of four weapons to be available to the player; normal bullets, spread shot, laser and incendiary. The player would be able to change weapons by collecting a weapon changer power up. The power up would cycle through the four weapons encoded via colour (blue, red, green and yellow) and the displayed colour at the time of collection would determine the weapon now in use.

As well as the weapon changer power up, the game would periodically release power ups for health, 1 up and weapon power up. The weapon power up would increase from an initial level of 1 to a maximum of 10. This would be represented by multiple bullets or more power as appropriate to the weapon type.

In terms of designing how the game releases power ups, I was in multiple minds of which approach to use. I reduced my options to three:

  • Levels have “magic” enemies. The level design denotes which enemies are magic, being when they are killed they drop a predetermined power up.
  • Event based manager sub system. A more holistic approach over the entire game, releasing power ups as certain criteria are met. Allows for easier tuning and taking into account player progress for different difficulties.
  • A Diablo style loot drop algorithm. Each enemy type would define a chance to drop value. Should the number come up, a power up would be dropped. I was leaning in preference of this technique, but that was more because I wanted to try implementing this type of system. Winking smile

There was a game I remember playing a heap of on the Amiga 500 called “Flood”. One feature of this game was that periodically when you went to shoot, instead of drawing your gun, you would draw a chicken! This concept has stuck with me for the better part of two decades. So I wanted to incorporate some sort of chicken gun, which turned shot enemies into chickens or something.

I wanted to have different types of enemies, each with certain characteristics, e.g. strength, speed,  and attack style. All enemies would be based upon the bug theme visually. I figured 10 types would be plenty. If a new enemy type is introduced every five levels, that’s 50 levels before everything is seen!

Typically these types of games use the concept of ‘lives’. The player gets hit, they lose a life. I decided to implement player lives through a continuous health / damage representation to make it more realistic. Yeah, I know.

For explosions I wanted to use a particle engine rather than animations.

Achievements / trophies / awardments are a necessary part of any modern game. I wanted to incorporate some internal ‘cheevo’ system as I think they encourage repeat play. Continuing with the military theme, I designed up each cheevo to be represented by a medal or service ribbon.

I played an awful lot of Diablo 2 over the journey. Having a ‘secret cow level’ seemed like something that would be fun to include as an Easter egg.

I deliberated about including shields and a shield power up for some time. I had it in and out of the design for some time. Eventually I removed it. After all, a shield is essentially identical to a 1-up in terms of game play, so I went ahead with that philosophy.

So there we go. A nice simplistic design with no hint of scope creep. Smile with tongue out I decided to name the game “Super Space Mega Boom”.

Dev Diary–Retrospective

No Comments

Development diaries for independents are a funny old thing. A lot of people do them and they can provide a terrific source of information to other like minded developers. I always thought I’d write one should I ever do something I felt was interesting enough, but at the time I always thought everything I had done was pretty mundane.

However, recently I’ve had cause to reflect over what I’ve done the past year, to consider what I’ve actually achieved versus what I was “gunna” do. And as such I think some of what I experienced might actually be worthy of mention. So I figured I might write up some ‘retrospective’ dev diaries and hit some of the high points from the last year as well having a laugh at some of the low points.

Back at the start of ‘11 I was just finishing up in my current gig as the Systems Development Manager at a tertiary college. In gamedev terms I had trodden the usual noob path. I had come across XNA game studio late in ‘08 and was dabbling in it as a fun way of maintaining my C# skills while working in management. I had done a bunch of tutorials. I’d written clones of games like Pong, Tetris, Space Invaders and Yahtzee. Heh, when I did the Pong clone, I called it “Stink”! Get it? Yep, I’m here all week, try the veal.

So I figured the time was right to try something a little more creative.

One early piece of advice I remember getting was “write the type of games you like to play”. This makes a bunch of sense, how else would you know what’s fun and what’s crap? Trouble was the games I like to play are strategy and simulation type games. Pretty complex and at this stage of proceedings I knew anything like that was well beyond me. I’ll talk about how I came to that realisation in a future post. It’s a wacky adventure chock full of typical noob assumptions.

Back in the 80’s, Galaxian and then Galaga were my favourite games. Later on I got into the vertical shooters like 1942 and the subsequent clones. In 1990 when I first joined the Air Force, we had a vertical shooter video game in our barracks rec room. It was essentially a space themed clone of 1942 and I’ll be dammed if I can remember the name of it, but all of us pumped plenty of 20c coins into it. Apart from the usual collectables for weapon power ups, shields, bombs and 1ups, this game also would release a weapon changer collectable. This item would pulse between the colours red, blue, yellow and green, with each colour relating to a style of weapon. So it required an element of tactics by the player to time their collection of the item to gain a preferred weapon. The weapons were normal bullets, spread shot, explosives and lasers, each with their strengths and weaknesses.

So I decided that the first “proper game” that I would write would be based on Galaxian while incorporating the power up collectable features of vertical shooters.

And I’ll talk more about the design of that game in the next post. Smile


Alien Aggressors Tutorial

No Comments

Here’s a vid of the result after I completed Nick Gravelyn’s excellent Alien Aggressors tutorial. You’ll notice that I used my own artwork instead. You won’t notice that I also used my own sound effects because I haven’t yet worked out how to record sound with the video capture software I’m using.

My Alien Aggressors Video

I can’t recommend this tutorial highly enough for someone just starting out in the world of XNA programming. It covers a number of key concepts and Nick has done a fantastic job of explaining the process in the text. I don’t know how he had the patience!

I still had trouble getting the penny to drop in regards to visualising game states, but this post from George Clingerman gave me the leg up that I needed.

I plan on coming back to this game later in the year. I want to try to expand it to incorporate some ideas from a vertically scrolling shooter. So we’ll see.