OUTPOST RECON DEV BLOG
Outpost Recon is a game currently under development for Android, iOS and potentially Steam in the future. On this site I’ll be documenting all the ups and downs of bringing the game to life and my closer examinations and thoughts on the various mechanics involved. As I progress I’ll also be expanding the site with new sections and features. I hope the game looks interesting and you enjoy sharing the journey!
The Resolution Bump
It finally felt like I have something within reach. There was a lot more work to do on fine tuning the ‘sewing machine’ level generator and adding in all the different variable options for each array ‘thread’. So, the perfect time to completely overhaul the visuals? Right?
While I love low res style pixel art, for Outpost Recon it was starting to become more of a hindrance and was producing visual inconsistencies with the effects I was trying to achieve. By basically doubling the resolution of all the in-game assets I unfortunately increased the art asset file sizes substantially but I think the pay off was worth it. I also worked out a pretty good workflow for overhauling a lot of my earlier turret designs in to the new resolution.
As a whole I think the increase in resolution allowed the designs to be much more interestingly shaded and better emphasized some of the smaller details. I still expect to do another pass on them later, especially as I get more experienced with my pixel art, but it feels like a nice step forwards.
I also took this opportunity to completely re-rig the Rover and do some extra reading on rigidbodies, wheel joints, hinge joints and how to get the best results out of them. The end product was a much smoother driving Rover with properly functioning suspension and less hacky settings to get the feel that I wanted. Looking back it was almost a fluke that the previous iteration of the Rover worked as well as it did.
Recon Auth Signing Out
Milestone: Test Build 2
The game feels like it has made a huge leap since the early days of the first prototype. I also threw together an equally pixel art UI and tried out a shader that would keep sprite textures within a pixel grid and prevent the low resolution pixels in sprites from ‘rotating’. Unfortunately this didn’t quite pan out as the fine details of the weapon barrel would become a mess and disabling it for only the barrel looked even weirder.
Despite some background glitches and the flood of errors as the level gen ran out of values this moment was a huge success for the game. The level generator worked! Not to say there wasn’t a pile of bugs to work out but this was a massive milestone for progress.
Recon Auth Signing Out
Level Generation v1
It was finally time to look at the level generation. There were several things on my mind when thinking through the process of level generation and the requirements the end result would require (also I love lists):
- No too heavy from a performance perspective.
- Can handle levels of any size.
- Could be adapted to make endless levels.
- The raw data of each level needs to be easy to store/retrieve.
- Can’t end up with massive level data file sizes.
- Able to handle multiple threads of data at once (terrain, background, powerups, obstacles and enemies).
- Easy to create new levels and test different scenarios.
- Automatically handle object pooling for all of the different elements.
- Bonus points for being able to start/stop/restart a level from any point or endlessly play through multiple levels.
The system I created, which I ended up calling The Sewing Machine, is far from elegant or complex but it works and covers (almost) all of the points. The system itself is based on 5 lists (threads) of comma separated values. These are loaded in to the level generator as arrays, each representing an area of the game (terrain, background, pickups, obstacles and enemies). Each value in the array data reflects what to spawn and its position in the array decides when. When a set position in the array is reached each thread’s value is taken and stitched together in to the game.
For example, loading an array of (01,03,02,04) in to the generator for terrain would create a level with a long section, a crater, a short section and finally a ramp. loading an array of (00,00,01,00) for obstacles would then spawn a boulder on the short section of terrain.
A number of colliders and detectors around the camera’s visible area help manage the current position in the arrays and move objects in and out of their respective object pools.
The great thing about this setup is that any level can be restarted from any position or an entirely new level loaded in without the need for reloading the scene. Something I’d like to implement for people who want to play multiple prebuilt levels in a row without needing to return to the menu.
The one downside is that hand crafting the levels in just a text editor would be a nightmare. But I believe making my own level editor shouldn’t be too hard thanks to the simplistic nature of the level data being in arrays. A level builder could also be a fun addition for players and sharing maps wouldn’t be hard since they’d basically be just a small txt file of data.
Recon Auth Signing Out
What is Outpost Recon?Outpost Recon is a side scrolling shooter / runner hybrid that pays homage to very early classics in the genre. In the game you travel across the map collecting intel, avoiding obstacles and blasting enemies. It will feature both a large collection of hand built levels and infinite sections to test your skills.
When will it be released?There is currently no set ETA as the game is under development as a hobby project and my workload changes week to week.
TRANSMISSION CUT: IT WAS THE SPORES.
SIGN UP TO GET THE LATEST UPDATES