W.I.P. 2: Dogfight Thing

This is the work-in-progress for Dogfight Thing – a long-running project from two or three years ago. There’s a playable download for PC at the bottom of this post of the current state of the game which is exactly what is shown in the video – i.e. lacking a lot of gameplay.

Oh Dogfight Thing – how I wish I’d finished you. You never even got a proper placeholder name.

Dogfight Thing first started as a dabble with making something a little like Time Pilot – one of my favourite arcade games. It soon became an attempt to create the kind of simple dogfight game that was ubiquitous on 8 bit computers back in the day, or indeed as one game type of the classic VCS game Combat.

So I quickly knocked up a biplane model, because biplanes are brilliant (and it also gave me an excuse to give the pilot a nice flappy scarf). The first pass was a Sopwith Camel complete with authentic colouring and RAF rondels on its wings.

Before implementing player movement I then had to add some scenery so that you’d be able to tell you were moving since the camera would be tracking the player. I was reminded of one of the dogfight games on either my Vic 20 or C64 which had the player landing and taking-off from a runway, and remembering this fondly knew that my game had to feature the same mechanic so built an airstrip at the left of the map. The immediate thought was then if I’m taking off to start then so should the enemy, so I built another at the right, and this kind of cemented how the game would develop for a while – with two opposing forces fighting with the same tools.

dogfight001

 

With that in place I then got the player moving at a constant speed, and rotating to provide the nice loopy control method. However there was an issue in that if you perform a half loop then you end up flying upside-down. The old games used to prevent this by automatically performing Split-S and Immelman turns – half-rolling/half looping, but I didn’t want that because it would make full loops look strange, and there’s a lot of fun in just lazily looping the plane about. I briefly considered auto- half-rolling if the player stayed upside down for a short while, but that sounded nasty, so the only thing to do was add a button to half-roll. This solved the problem, but also added the ability to roll whenever you want which was a definite bonus. I later added trails to the wingtips when rolling turned out to be one of the things I liked doing the most (and indeed the ability to turn the trail length up to “Frankly Silly” in the options menu).

Adding the first enemy to shoot then brought a change of direction. I had a Sopwith Camel, so the obvious choice was to add a nice Fokker as the opponent, but at this point I decided I didn’t want to go there. I’d already got a nice blue sky with fluffy white clouds in place – this didn’t feel like the right place for real war. So I recoloured the player plane in nice bright red and made a blue copy for the enemies. At this point I decided that nobody dies in the game (pilots parachute safely out and toward the camera out of the 2d-plane that the game takes place on). I also decided that since the planes were identical that the people fighting were divided purely by their choice of colour – that was the only reason for the fighting (like the cat race in Red Dwarf). Further to this I then decided to try comic book style explosions, which I rather liked.

dogfight004

I think the art style was why Dogfight Thing never got a proper name. I usually like to pick a name (even a placeholder one) to help define the game and inform decisions throughout. I also like to find a nice font early on for the same reasons. The bright and breezy feel of the game possibly meant that this was less pressing here – it was the touchstone for everything else (when I added smoke trails to damaged planes I started out with white smoke that went black as more damage was taken, but this clearly isn’t a black smoke game, so I soon changed it for denser clouds of white).

dogfight002

Back to the name – I’d been toying with were really simple names like Super Sky Pilot, but never liked any enough to commit to. I tend to struggle with names for games, which is a little strange because I love naming things like achievements. But then you can get away with a pun or a cultural reference for those – they can be silly and throwaway, whereas I think a game name needs something more – it needs to be more robust.

The next thing I added was bombing and this played nicely too once I’d got the physics working OK, and with that I needed something to bomb, and this is when the idea to make the player a part of ongoing war came about.

The idea was to give both sides armories that would produce tanks and other vehicles which would automatically move toward their opponents airfields. They’d battle each other when they met, but the player and the AI could swing the odds by bombing the opposition tanks, in an attempt to allow them to capture the enemy airfield. A fair bit of work was done on this and I added things like spotter balloons and flak cannons, and had plans for zeppelins and bombers and additional ground vehicles.

dogfight003

But development was taking ages. Suddenly my simple dogfighting game now needed the best part of a full-blown cartoon war in it. Something had gone wrong – it was far too big. I called a halt and had a rethink.

A new plan was made – I shelved a lot of ideas, and decided to make it asymmetric. The player would be given an HQ to defend, and it was just them against the enemy army and air force. I’d make it level based with each level just requiring a certain number of tanks/planes and flak cannons to be destroyed. This was much more manageable and was still the plan when I stopped working on it (probably distracted by a new idea).

A couple of additional notes:

One feature I liked in this was the sortie score functionality. The idea being that after taking off any points scored were added to the sortie score, and kills and other feats would add to the sortie muliplier. The sortie score however would only get banked to the real score when the player landed to end the sortie – adding a real risk/reward mechanic to the combat – as the player started to take damage they’d be torn between banking the points and getting repaired, or staying out and risking the lot. Obviously without much in the way of threat currently it’s not really shown off to the full right now.

I’ve mentioned how the overall design spiralled out of control, but here’s a smaller example of feature creep. The spotter ballloons I added looked nice, and were fun to pop, but only brought a collision hazard to the game – nothing more. Yet, once in I felt it needed to be done properly. To that end if you burst the balloon the basket falls and the spotter parachutes down. The basket is shootable until it hits the ground if you’re quick. If you shoot the basket the spotter parachutes away, the balloon floats off, and is shootable until it gets too high. If you fly the plane through the cables in the gap between the basket and the balloon, you get a bonus, the balloon floats away, the basket falls and both are still shootable. If you shoot both you’d get a combo bonus. That’s a lot of work for something that is just an obstacle.

The thing that’s most noticeably missing is AI for the enemy planes. I was tempted to say I’m terrible at AI, but I’m not – I’m just really bad at sitting down and having a go at it. I want to do a really good job of it, and so I put it off to do a proper job of it later, and then never get back to it. The daft thing is much of the time you probably don’t know what’s going to work until you’ve tried something, and then it often becomes much clearer. I need to work on this going forward.

I would dearly like to return to Dogfight Thing, but I’m pretty sure it won’t pay my rent so I’m going to have to leave it for now.

Click here to download Dogfight Thing for PC

Click here for the XNA 4.0 runtimes

 

W.I.P 1: Super Critter Kill

This is the work-in-progress of Super Critter Kill, a game knocked up in a few days for a competition. The name is a working title that I’m not particularly fond of (it was originally called Fur Cry, but I changed that before posting here to prevent getting sued).

It’s lacking in many many areas, and obviously absolutely everything should be considered really early placeholder work, but it’s available to download and play for PC via the link at the bottom of this page. It was created in XNA so a link is provided for the runtime files it needs.

mandl01

As mentioned, this was made in a very short time for a competition – the theme of which was Procedural Generation. The original intent was to procedurally generate an island, and make a 3rd person exploration game along the lines of Strange Adventures in Infinite Space, or The Wager – a typical island is shown opposite.

 

However, with just a few days left I realised I was nowhere near getting anything I could call a game out of that, so needed to come up with something else instead.

As an aside this original game went on to be my primary project (now on hold), and it’s one I’d dearly love to return to – but it’s massive. The basic premise is that the player is a Victorian-era explorer on a mysterious fantasy island populated by all manner of tribes and NPCs. The gameplay was intended to be almost entirely decision making with all manner of interesting consequences occurring based on the player’s actions. I do hope to return to this one in future, because it’s perhaps my favourite thing that I’ve worked on. (In the image below Branston is the players hapless manservant). At the very least I may cover it in a future WIP.

mandl002

Returning to SCK and the problem of the impending deadline – I’d always wanted to try making a first-person shooter, and knew the beauty of working in 3D is that a quick camera change gets you a different genre cheaply. So I quickly moved the camera down to eye-level and placed it at the player’s position and it worked a treat. I then changed the control method to move the camera around, and added mouse control for looking around

sck_arm001

Then I knocked up a quick arm and gun model, and positioned it just below the camera (the picture shows it with the camera pulled a little further back). Finally I added a bullet and got shooting in the game.

 

 

With that done I needed enemies, and with the art style and the time constraints I plumped for cartoon critters. Throughout my career as a game designer my stock response to the question “how do we improve this game?” is the answer “bears” so that’s the first thing I made, and added to the game.

sck_bear001

Next up I needed to be able to shoot the bear so I hacked in some collision. Collision is a real weakness for me (hence there being no landscape collision in the game yet), so I fell back on trusty old spherical collision. I know just enough maths to transform a line of spheres to create approximate sausage-shaped collision which was good enough (and incredibly fast).

sck_coll001

Having made the switch from XNA to Unity now, collision really isn’t an issue. I could probably even go the extra mile and not have completely flat landscape.

With that in place though I now needed to add behaviours to the bears. I kept this simple and created a set of states for them to be in.

  • Spawning: I didn’t have time to spawn them out of sight of the player, so decided to be silly and drop them in from the sky. I later added balloons and parachutes to them. (One of my favourite bits of advice for making games – if you’ve got a weakness try to make it a feature. Don’t try to hide it – stick it front and centre and make it work for you if possible.)
  • Mooching: When the bears land they start mooching if the player isn’t close. They pick a random location a short distance away, move to it, wait for a short while then repeat.
  • Following: If the player gets close turn to face and head toward them.
  • Angry: If the player shoots them, then they follow faster.
  • Dead: When hit points are zero keel over and wait to be skinned.
  • Skinned: Wait for a little while then disappear.

I then set up a simple set of timers to populate bears. There’s an upper limit of bears in the world at any one time, and the game spawns bears periodically until it’s reached. The maximum number of bears then also goes up over time so the game gets harder and harder.

sck_gameover001

 

With that in place I’ve almost got a game. I just need player death. This is handled really crudely – if a bear gets close enough you’re dead. It’s so harsh I put a warning alarm in when they get near, but it’s not a good solution.

 

However there was just enough game there that I decided to spend the remaining time creating new art assets – a swamp landscape type, and the panda and tiger models (largely recoloured bears). Perhaps the time would have been better spent adding scenery collision, route-finding for the critters or gameplay design that aspired to be better than the bare-minimum possible to call it playable.

superCritterKill01

So this is how it entered the competition – unsurprisingly it didn’t win. Afterwards I added the balloons/parachutes to the bears, and for release on this WIP I added the bear trap and crate pickup to make it slightly more worth a download.

So that’s largely where this prototype stands – the barest semblance of a game but bags of potential I reckon. If I was to resume this project the plan going forward would be as follows:

  • Decent collision – should be dead easy with Unity.
  • Level design – I’d probably remove the procedural map, and replace it with something nicely designed. The procedural island was a benefit to the original exploration game, but I’m not sure it brings much here. TBD.
  • Weapons: I need to replace that basic pistol with a range of cool and unusual weaponry (the beartrap is a nice aaddition and I’d already started work on a blunderbuss).
  • Vertical mouse look – omitted purely for lack of time – it’ll allow flying critters, and short ones.
  • Critters – more of them, the more taboo the better.
  • Animation – I’d rather not do animation, so I’ll either pull their legs off and rotate them to make a run cycle, rotate the whole animal in a kind of loping gait, or maybe create posed frames and swap the models. The benefit of being cartoony is that this is another weakness that could be turned into a plus point perhaps…
  • Animal behaviour – what’s there sucks, so this needs to be better and needs to be varied. Maybe getting more natural stuff in there – predators and prey doing their thing, herds, charging/stampeding etc.
  • Design: Add small details like a goal, a game structure etc. Is it a hunting game with animals sticking to habitats, or is it just a frenzied shooter, or something else entirely? TBD…
  • Name: Find a better one, or learn to live with this one.

The game is available to download below. Simply unzip it somewhere and double-click the exe to play. One warning though – the video at the top of the page shows pretty much everything that’s in the game – it’s fun to pootle around in, but there’s not much in the way of gameplay beyond shooting endless critters.

Download Super Critter Kill for PC 

Download XNA 4.0 runtimes

Finally, I’d love to hear any feedback for this game, so please feel free to post in the comments below.