BRRRRRT Life
About
Fly CAS (Close Air Support) in an A-10 Thunderbolt II "Warthog". This is a short demo with three different enemy types and ending with a big boss fight. Live the life of BRRRRRT (plus some Hellfires).
I'm not an artist! I've sourced free art and sound from a number of places to put this together and I know, the art styles don't match up perfectly. Please keep that in mind for any feedback.
Development version 0.2. Windows x64 build.
Possible development features for later versions:
- Scripted levels - the level in this demo is semi-random, but as I develop it further I'd want to add purpose-built levels with planned spawn locations and patterns. The random element is fine for something this simple, but I do not think will work as well with more hardcore bullet hell levels.
- Additional plane options - the A-10 will likely become a mid-late game plane if I develop a full campaign, the player will unlock various other planes through the game and be able to choose their plane for each level.
- Additional weapon options - I want all aircraft to get a "main gun" (like the 30mm GAU-8 gatling cannon for the A-10) and some hardpoints that the player can switch between during the level. Currently there is only one hardpoint option (direct fire missiles which I've called Hellfires) and no mechanism to choose them or switch between them. For example rocket pods have been encoded in the game, but are inaccessible in this demo.
- A story - I have a crazy story in mind to expand this in to which will take it far beyond a simple CAS game. I wont explain yet, but it may include aliens, time travel, biplanes and plasma cannons.
- Graphics - There's a lot to be improved here, in the least just getting all the assets in the same art style! I'd really like some more realistic helicopter graphics to go with the planes (with helis like the Huey, Little Bird, Apache and Hind), and the rolling background is patched together from a few different tile sets which is not ideal. Plus some UI graphics, menu graphics, etc would be nice. But this is much too early a stage to get a load of artwork made.
Why this project?
This is my first game created in Unity and has been a useful learning project, adapting my prior experience in C++ to C# and getting to grips with how Unity works. Unity features in particular that I used:
- Using 2d animation, physics and collision meshes for the planes
- First steps learning about quaternions - I'm thinking about starting a side project specifically for a deeper study of these as I want to understand them better.
Beside learning a lot about Unity, there were a few features that were interesting to create for this project.
- Dynamic level generation - the enemies are spawned dynamically on a timer. Ground-based enemies use a combination of spawn points (so they would only appear on the ground in positions that make senses) and a timer that triggers them when they are in place. The scrolling background is also semi-dynamic and there are three segments which appear in a random order.
- Turrets - basic 360 degree turrets were fairly straightforward to implement. Restricted traverse turrets were an interesting challenge though as it required putting my intuitive grasp of geometry which was learned with diagrams and converting it to an explicit code form.
- "Karmic balance" system - this is a system I've been thinking about for a while which could be used in a turn-based strategy game to "even out" luck so you couldn't ever have a streak of failures with only a 1% chance of failure. It's unusual for a shoot-em-up to have random elements (bullets have a % chance of hitting the target and of doing damage) and I don't know if I'll include it as I develop this game further but it was interesting to build and see it working.
- Dynamic screen knock - the screen is subject to being knocked when you fire your guns or get hit. Rather than just resetting to zero I wanted the knock to oscillate back and forth before settling to zero. One extra challenge here was smoothly returning the knock to zero, as only damping the oscillation resulted in a high-frequency, low-amplitude "vibration" that was unpleasant.
- Modularity - I've made many aspects of the game highly modular so I can "plug and play" with elements while developing it to try out combinations and features. As a result it's very easy to add extra planes, weapons or enemies to the game now without a lot of extra work.
- Math! I used quite a bit of trigonometry and geometry thinking about how to make the game work which was fun.
Design:
Joseph Norris
Artwork:
https://m484games.ucoz.com/index/shoot_39_em_up_gfx/0-38
https://www.deviantart.com/angel-gabe
https://limofeus.itch.io/pixel-simulations
https://turbo-developement-team.itch.io/
https://gamesupply.itch.io/samson-battlecruiser-dragonfly
https://opengameart.org/content/tower-defence-basic-towers
https://opengameart.org/content/assets-free-space-modular-buildings-kit
https://unluckystudio.com/game-art-giveaway-5-dark-war-sprites-pack/
Sound:
https://freesound.org/people/nicStage/
https://freesound.org/people/cydon/
https://freesound.org/people/FilmmakersManual/
https://freesound.org/people/SoundFX.studio/
https://freesound.org/people/StoneyJ/
https://freesound.org/people/qubodup/
https://freesound.org/people/ikbenraar/
https://freesound.org/people/minian89/
https://freesound.org/people/Jarusca/
https://freesound.org/people/mensageirocs/
https://freesound.org/people/Timbre/