Sometimes you need a break from hardcore space combat simulation programming. As you might be able to tell from browsing Badger Head Games, while our roots can probably be traced back to the love of space games in many styles, I also like to create fun silly games as well. Over the summer I began working on a game that would star a pig – mostly because my son likes pigs and other farm animals. For awhile only a pig lived on Old McDonald’s farm when my son sang the song. Anyway, I had an idea for a ‘pig game’ that I thought would be great on mobile and I could build with some art I already had and some pretty simple programming. (haha simple programming…)
Here is a sample video of my new side project game Piggy Chase. It’s a low poly-isometric frogger / marble madness / pacman like game with farm animals and crazy tractors. The goal is to help the pig and other farm animals escape the farm. More levels and hopefully cool stuff before release on PC / iOS / Android. I just demoed this for people to play at District Arcade in Washington, DC this last weekend. Players had a lot of fun!
Over the last few weeks I’ve been trying to limit my programming time to focus on 3D modeling. I find switching between Unity and Blender to be difficult, so just working on making stuff in Blender has helped my productivity in creating new art assets for the game.
Sketching and modeling in Blender.
I have a list of space ships that need to be made and I’ve been working through it. I am almost ‘done’ one faction’s main ships. I still need to model a new fighter–and I might do a 3D cockpit while I am at it. Keep in mind nothing is really done. Everything is WIP. I’ve haven’t quite gotten my skills yet for painting textures and generating bump maps so there is still more work to be done. Also, as time goes on, these early models might need to be redone if I get better.
A new battlecruiser – 1 kilometer of destruction.
Above is the battlecruiser. Its basically the battleship class of the space fleet. For some reason I can’t use battleship. The ISC ships are going to be more boxy like current military ships and tanks. The other faction will have more sloped / angular plates on their ships.
Huge carrier ship capable of launching fighters and corvettes from those two bays in the front.
This is the carrier ship. It will have some point defense turrets on it, but other than that it will rely on its fleet and fighter squadrons to defend it. The carrier is also big enough to launch corvettes which will be used as anti-fighter type ships.
The corvette. A ‘small’ ship.
The corvette is the latest model I’ve made. Its meant to take on small missions and has weapons geared more towards fighter management or hit and runs on capital ships. The ship is fast but would probably get eaten up if it tried to go head to head with ships of the line.
The Destroyer-class. This ship is 500m long. Its got around 8 turrets mean for engaging other cap ships and point defense. It has a deck mounted rail gun and an internal beam weapon.
The Destroyer will be the workhorse of the fleet. The cruiser is a force to be reckoned with but these destroyers will pack a punch. A couple destroyers can take out a cruiser pretty fast.
Very early space station.
After these, I plan to remake the fighter and then start on the enemy faction. I also have dreadnoughts on my list as well. They’d probably be 2km. Additionally, I started messing with Space Stations.
Here is a video where I talk about the ships and compare their sizes…
Sadly, I die far too fast to show a lot off in these videos but if you look closely you will see the capital ship’s shields and two of its turrets blowing up any incoming missiles. I’ve also added some of the new weapon features to the UI so you can see what guns are selected and watch me flip between them. There is also ammo values now which will probably make a lone fighter long for a carrier to go back to reload on–it’s coming!
I’ve been working on setting up base classes for ships and weapons which is sorta why there are lots of new projectiles and guns to choose from. I also worked on making the cap ship blow up in a cool way and might use the explosion scripts for all the explosions. I sort of simulated delayed subsequent explosions. I need to make the ship come apart next instead of just disappear tho… I’ve got a list of about 48 todos still to work on before… before I make another list…
The Unity 4.6 UI is really quite easy to use and it does not really on OnGui calls! I am adding some Data screens for the ship, just not sure what to put in there! Targeting info and ship status seem like the obvious choices. I like that you can make it look 3D so it feels like they are projected on the screen.
I like the immersiveness of cockpits, but I don’t like how they obscure your view of the action. I want players to be able to see the game and see what they are doing. I stared at the Privateer cockpit for a long time but that doesn’t mean it was the best way to see the game… I think I like the Elite method because its so open, but I like Star Citizen’s info panel design.
I know I should be working on my November game, but the prospect of being able to devote more time to Space Wars (As well as finding a real game name for it – Space Warfare Infinite?) has been too tempting! I will get back to my monthly project soon, but in the mean time lets talk updates to Spacewars.
Bloom is all the rage. It’s the main reason to get Unity Pro from what I can tell. That and the profiler. But lighting effects take your game and put it in the pro category – at least with the looks. I’ve been trying a bunch of different post-processing effects, but standard bloom seems to be the best for making space object look interesting and making laser flash and glow. The battle now just seems more alive! The downside is that brighter backgrounds glow too much and look too bright. At the moment I am just letting it slide. I fooled around with the camera render orders and such but could never get the bloom to only effect lasers. So far it doesn’t seem possible for me. (I did see someone wrote a shader that keeps bloom from rendering on something. I might do something like that someday to fix the nebulas and other stuff I don’t want to glow).
I’ve also been futzing with the Ai. I really want to write behaviors and more decision making. The current Ai chooses a random target from a list of enemies and then blindly charges. When in range they start firing. The other behaviors include: if they get hit a couple time in rapid succession, they will find a random waypoint to run off to; if they are attacking for more than a few seconds they will find a new way point to back off and then go back to it; if they get hit by a ship that is not their target a few times, they will switch targets and defend themselves.
Last night I changed a few things that annoyed me. First I added a lead object to each ship so that ai will aim just before the target thus leading their shots. Works well for moving objects.
I want to build a behavior where the Ai does flybys or other maneuvers that make sense. As I step towards that, I removed their ability to stop. It looked super dumb to see ships just floating in space taking shots. I just have them thrust at all times now. I also dropped their rotation speed from 20 to 1 which makes them curve a little more when flying – looks more natural. No more turning to the player in a blink! I also want to add a behavior when they are too close for more than a few seconds, find a nearby waypoint to go to before attacking again — the ai seems to get in close and then circle the target without being able to aim shots. They need to be able to get a new attack vector. The movement makes the game much cooler looking. Everything circling around with trails.
Ai Behaviors I am hoping to put in:
Rush pass / loop: Ship flies by target attacking as they pass then pulls up and executes loops to do another run on same strike vector
Flanking loop to hit target from side Circle to get around and behind target Go to waypoint
Patrol series of waypoints
Follow / Protect target
Follow / Copy target (attack its targets) Stand still – cap ships will prob do this alot Kamakazi ramming
Strafe side – get up to speed then rotate to aim guns at target let inertia carry ship along side target while unloading weapons… (currently not possible in way game handles ship flight… but this might be an effective attack for fighters against a cap ships PDS)
Preferred targets – weakest, injured, toughest, untouched, ranged, fighter, cap, midrange, auxilery, stationary, slowest, low shields, low armor, high shields, high armor, no ‘type’ gun, specific ship
Scanning / Sight Range- how far should awareness go? Should be increased by auxiliary scanning ships in fleet.
Use specialized component – Scanner Jammer, EMP, Cloaking,
For the month of October I have been working on a way to randomly generate a world that is interconnected in a way that I can drop the functionality into my Space Wars game to manage jump gates between Star Systems. The result has been this maze game. Some of the behind the scenes stuff isn’t really used by the maze game and the wall building stuff probably won’t be used in Space Wars but its still coming along pretty well. Here is a video of the gameplay so far…
At some point you could see the maze generation. I used Conway’s Game of Life to generate the structure. Then I had to test which squares need walls. I am also using the Respawn system to drop in Ghosts and objects to help you navigate the maze. The exit portal ends up also being spawned randomly. Here is a pic of early maze generation —
Originally, I was building 100×100 mazes, but with the game in action 50×50 currently runs best. Also it seems pretty impossible even in the smaller size. I built a pseudo occlusion culling system as well which disables renderers for rooms that aren’t super close. It definitely helped speed the game up.
The month of September was devoted to experimenting with procedurally generated space areas, hyperspace jumping, and dog fighting AI.
The result is affectionately named Space Wars Team Battle Demo. The team means AI teammates, no online play for this one… yet. Technically, if you fly long enough you can arrive at the planets. The game will eventually feature some sort of landing, probably not seamless atmosphere flight as that is just magical to me.
There are also jump gates that are functional. Again they require flying far into space. They are glowing spheres. Hit one and you will jump to a new system. These will eventually link between systems in a way that makes sense. For now they are random… The main ‘game’ of this demo is just destroying the enemy fleet and then auto-jumping to the next round. It’s hard. Here is the link to the Webplayer (PC and Mac Coming soon)… Frame rate seems ok when I play it, but mileage may vary –should run real fast on the standalone build.
On the web version – Right click and Go Fullscreen. This will allow the mouse to lock and give you the ability to use the right mouse button to do a barrel roll.
Zombies have invaded Badger Head Games! My game for July is complete! (As complete as a one month game can be, right?) It’s not perfect, but it has zombies and a semblance of a plot! Basically, you try to escape the zombies by contacting a rescue helicopter. You start with your bare hands, but can find a baseball bat and a pistol to fight off the zombie hordes. There are also helpful first aid kits!
Zombies use sight lines to see you, so you sneak around them. They react to noise so guns aren’t always super smart. (Or helicopters…)
Disclaimer: There is a little bit of cartoonish / blocky violence so get permission from parents before you play… (gun noises and puffs of blood here and there are about it oh and whacking zombies on the head)
(above are updated with bug fix 7/31 at 8:24PM EST)
Problems- My house model went a little wonky when I combined the meshes so they are a little messed up-you might see some glitching there. Also I have working doors but ran out of time to put them all back in. I also wanted more weapons, crawling zombies, path finding…, different building models, more items, survival components, a longer game… Also, the game can be super easy or super impossible depending on how you play I guess. So in the next version…