Documentation & User Guide
Concept Comparison
Comparing my initial concept to the current build of the game (which is nearing the final state), there are certainly some differences in the implementation vs what I had initially envisioned. The core concept and story line mostly remain true to the the concept, as does the genre of 2D Platformer - however as the project progressed I found myself needing to reevaluate the inclusion and development of certain mechanics and features as outlined in the concept.
Storyline-wise, I had initially planned on having the player start in the base & break out to escape to a ship. As I progressed with creating the game world, I quickly began to realise that the exterior of the base represented some of the best parts of the game, both in visual aesthetic/feel and in actual platforming. Based on this, I pivoted to expand the "story" to allow the player to start out in the open and "find" the base, gaining entry, exploring, and exiting. This had a few advantages; It allowed more space and time to ease the player in to the mechanics, showed off more of what I believe is the nicest visual part of the game, and also expanded the play time a little. It did however create more work. Oh well.
In regard to mechanics, there's more than a few missing that I would have liked to implement, but simply didn't have the time between study/work/personal commitments. This list includes but is not limited to:
- More environmental hazards
- Limited oxygen with refills, also health packs
- Roll when grounded, but jetpack in air (with particles for steam jets)
- Additional enemy types - perhaps one more larger monster type, and possibly a security drone
- More lighting-related gameplay, i.e. dark areas that require a flashlight
- More robust collectable/evidence system
- Speedrun timer and high score page (as of writing this 7pm Thurs 29/5/2025, I may try and implement this before submission tomorrow)
One thing that I am extremely happy with the outcome of, is the visual style and graphical presentation. Whilst not exactly what I envisioned, I feel it's very, very close. Whilst I didn't personally draw all the assets (I wouldn't have had the time, and my pixel art skills aren't up to scratch), almost every single asset from an external source has been personally modified by me to have a cohesive style, and I feel the time spent doing so has paid off. The end result fits my initial concept's vision of what the visual style should be rather well.
Finally, sounds. These aren't exactly what I had envisioned - up until I started implementing sounds (which was relatively late in development), what I had planned was a sort of 8-bit style. Whilst looking for sounds however, I rapidly realised that going with such a theme wasn't really going to match the mixed pixel art and modern lighting visual theme, and I pivoted to a more realistic basis for sound - focusing on improving the ambience and eerie, lonely feel. Overall, I am happy with how the audio turned out. Whilst it doesn't really match my initial concept ideas, I do feel like I executed it well, and have had very positive feedback on the game audio.
Feedback Summary
Over the course of development for this game, I have been fortunate to have received a decent amount of feedback, and it has certainly helped shape the game into where it presently sits. Occasionally, feedback given by peers and friends+family related to areas that I had already planned on fixing, improving, or implementing, however it certainly helped prioritise focus on areas that mattered the most to the target audience.
Primarily, feedback on overall movement was very positive, with players describing it as "intuitive," "amazing," and "fast." Rolling and jumping mechanics were particularly well-received, with some players experimenting with combinations of movement (e.g. roll into jump) and expressing enthusiasm for the possibilities. A somewhat recurring point was that the jump amplitude and speed may be too sensitive or high. One person noted they could potentially skip entire level sections due to this, which could have undermined level design, pacing and intended storyline/flow. Based on this feedback, only small tweaks were needed to fine-tune certain movement stats, and after some slight changes early on to player speed and jump height (and also nerfing triple jump to double jump), the movement remained largely the same for the rest of development.
Feedback on overall aesthetics and atmosphere has remained entirely positive throughout development, and has largely been taken as an encouragement to continue & experiment with current course, rather than change anything. Players consistently complimented the parallax backgrounds, lighting, and overall vibe, highlighting immersion and visual appeal. References to Dead Space, Doom, and Terraria suggest the visual style is successfully invoking the mix of retro and modern sci-fi inspirations I hoped to achieve, so I am relatively stoked on that.
Positive stuff aside, there was also immensely helpful feedback on a variety of issues, bugs, and improvement opportunities.
- Gun Arm Rotation Feels Unnatural to Some - While some liked the 360-degree aiming, others felt it was unnatural and suggested angle restrictions for more grounded feel. There was some discussion around aim vs movement trade-offs (e.g. strafing while aiming backward), but in the end I decided to keep it as-is for now.
- Tile Flicker/Tearing - One point of recurring feedback has been tile overflow/flicker/tearing (not sure what to call this). Based on some immensely helpful feedback and information from current and past students I was able to get this sorted by using a Sprite Atlas
- Wall Sticking Bug - A bug in early builds caused the player to get stuck on walls. This was consistently reported and flagged early on, and I was able to implement a fix for this based on feedback. Presently the fix isn't 100% release-ready, but it's a far sight better than it was.
- Lava death (or lack thereof) - This one popped up a lot haha, and was one of those "I had already planned on fixing" points. For a fairly long period I hadn't implemented death in lava, and the player just falling through it like it wasn't there was jarring and unnatural for players. Based on recurring feedback I made implementing this a priority, and once implemented with proper 'sinking', SFX, and death, feedback was resoundingly extremely positive, with players reporting that they were jumping in lava multiple times just because it was so satisfying.
- Lack of direction - One point that popped up more and more late into development was that there was a lack of direction, and players didn't really know what they were supposed to be doing, or where they should be going. Based on this, I moved a planned mechanic of interactable dialog/info boxes from the backburner to current development, and started implementing them into the game world. The addition of the text boxes seems to have helped address these concerns, with players reporting that they liked that the game now takes more time to ease the player into the movement mechanics with helpful prompts.
As a whole, feedback from peers (both current and previous students), friends, and family has been immensely useful in developing this project. The mixture of feedback from people both extremely familiar and also very unfamiliar with games has helped shape and refine core mechanics, identify usability and flow/progression issues, and validated choices with the game’s visual theme, audio, and gameplay direction. While there's still a lot that could be implemented and improved, the game has already evolved significantly - becoming more polished and player feedback-informed.
Asset List
Art + Animation
Note: Almost all art assets from external sources (as listed below) were lightly to heavily modified by myself (Isaak Cole) using Adobe Photoshop, to create a cohesive and consistent atmosphere.
Sprites
Enemies:
- MediumMonster, Generated by ChatGPT 4o, modified by Isaak Cole in Adobe Photoshop
- TinyBlob, TinyBlobBlack: Drawn in Adobe Photoshop, by me (Isaak Cole)
Player:
- Space Game Pixel Art Pack: Harald-Thorsson, itch.io, https://harald-thorsson.itch.io/space-pixel-art-pack, modified by Isaak Cole in Adobe Photoshop
FX:
- Red emission effects: Pixel Art Effect, NYKNCK, itch,io, https://nyknck.itch.io/, modified by Isaak Cole in Adobe Photoshop
- Bullet: Drawn in Adobe Photoshop, by me (Isaak Cole)
Environment:
- Cryo tanks: Space Game Pixel Art Pack: Harald-Thorsson, itch.io, https://harald-thorsson.itch.io/space-pixel-art-pack, modified by Isaak Cole in Adobe Photoshop
- Rocks: Markus Koskinen, Artstation, https://www.artstation.com/artwork/8eLdrE, modified by Isaak Cole in Adobe Photoshop
- Dead scientists, Chairs, Drop Pod, Spaceship, Lab Desk: Generated by ChatGPT 4o, modified by Isaak Cole in Adobe Photoshop
UI:
- WhiteMenuButton: Drawn in Adobe Photoshop, by me (Isaak Cole)
Background:
- Multi-layered parallax background: Ahmad R, itch.io, https://ahmad-r.itch.io/parallax-backgrounds-pack, modified by Isaak Cole in Adobe Photoshop
Environment & Foreground
Tilesheets:
Include terrain & some props for both indoors and outdoors game environments, layered in different grids. Both packs were modified by myself (Isaak Cole) in Adobe Photoshop
- Space Game Pixel Art Pack: Harald-Thorsson, itch.io, https://harald-thorsson.itch.io/space-pixel-art-pack
- 2D Pixel Spacecraft Tileset: Matthias Stuetzer, Unity Asset Store, https://assetstore.unity.com/packages/2d/environments/2d-pixel-spacecraft-tileset-70802#reviews
World Items:
- Door Panels: Drawn in Adobe Photoshop, by me (Isaak Cole)
- Elevator panels: Drawn in Adobe Photoshop, by me (Isaak Cole)
- Other miscellaneous props: See “Environment” in Sprites section above.
Audio
Note: Most sounds were modified/mixed/trimmed/extended to better suit a consistent theme and match game timing by Isaak Cole using Audacity (https://www.audacityteam.org/)
Player Sounds:
- die-blue.wav: Dying Guy, Pixabay, https://pixabay.com/sound-effects/dying-guy-288051/
- hurt-1.wav to hurt-5.wav: Suffering Damage – Pixabay, https://pixabay.com/sound-effects/suffering-damage-284365/
- Footsteps: Different steps on gravel, wood – opengameart.org, https://opengameart.org/content/different-steps-on-wood-stone-leaves-gravel-and-mud
- Button Press – Pixabay, https://pixabay.com/sound-effects/button-press-40018/
Monster and Environmental Sounds
- Monster Noises: Slime Monster Noises – Pixabay, https://pixabay.com/sound-effects/slime-monster-noises-66776/
- Slime Crawling – Pixabay, https://pixabay.com/sound-effects/slime-crawling-241446/
- Splat Sound: Flap Splat Poo – OpenGameArt, https://opengameart.org/content/flap-splat-poo-yo-frankie
- Squelch: SoundDesignForYou – Freesound, https://freesound.org/people/SoundDesignForYou/sounds/649980/
Lava and Fire Sounds
- Lava Loop: Lava Loop 3 – Pixabay, https://pixabay.com/sound-effects/lava-loop-3-28887/
- Lava Death – Pixabay, https://pixabay.com/sound-effects/lava-death-103785/
- Lava Splash – YouTube, https://www.youtube.com/watch?v=fgFn_7wcUVE
- Burning Hiss: Burning Towels – Pixabay, https://pixabay.com/sound-effects/burning-towels-59459/
Sci-Fi Ambience and Background Loops
- Computer Hum – Pixabay, https://pixabay.com/sound-effects/computer-hum-78343/
- Spaceship Ambience – Pixabay, https://pixabay.com/sound-effects/028301-spaceship-ambience-61038/
- Wind Ambience: Sci-Fi Designed Atmospheres – Pixabay, https://pixabay.com/sound-effects/sci-fi-ambience-designed-atmospheres-wind-001-ii-120590/
- Space Chords Loop – Pixabay, https://pixabay.com/sound-effects/space-chords-loop-310493/
- Cave Sounds – YouTube, https://www.youtube.com/watch?app=desktop&v=kxqJuc1HHbg&t=161s
Weapons and Tech Sounds
- Electronic Burn – Pixabay, https://pixabay.com/sound-effects/electronic-element-burn-spark-1-248606/
- Pew – Pixabay, https://pixabay.com/sound-effects/pew-234075/
- Empty Gun Shot – Pixabay, https://pixabay.com/sound-effects/empty-gun-shot-6209/
- Simple Zaps – Pixabay, https://pixabay.com/sound-effects/simple-zaps-48107/
UI & Game Feedback Sounds
- Notification Pluck-On – Pixabay, https://pixabay.com/sound-effects/notification-pluck-on-269288/
- Firework Cluster – Pixabay, https://pixabay.com/sound-effects/firework-cluster-90480/
- Wrong / Denied – Pixabay, https://pixabay.com/sound-effects/wrong-47985/
Scripts
Note: Most/all gameplay scripts were created with development support provided by OpenAI's ChatGPT 4o and Github Copilot. While generative AI tools were used to assist with code structure and syntax, the core game logic, mechanics, and script behaviours were directed, designed, and prompted by the developer (i.e, myself, Isaak Cole). The AI was used primarily as a tool to speed up implementation, debug issues, and streamline repetitive tasks - not to generate systems autonomously. Where possible, i've added links to shared chats as comments at the top of scripts, however the combination of multiple tools and multiple chats all mixed up together has made this somewhat challenging.
Core Gameplay & Mechanics
- PlayerMovementController.cs – Primary player controller, heavily modified version of Tarodev Ultimate 2D Controller, itch.io, https://tarodev.itch.io/ultimate-2d-controller
- PlayerAnimationController.cs – Player animation controller, animations handled via code using Animation.Crossfade instead of in Unity UI. Modified version of animation controller for Tarodev Ultimate 2D Controller, itch.io, https://tarodev.itch.io/ultimate-2d-controller
- ArmAimer.cs – Controls arm rotation
- ArmManager.cs – Controls which arms are enabled
- BulletController.cs – Controller for bullet objects
- FlipArms.cs (unused in final build, was used when there was just static arms and no gun)
- PlayerAreaEffectorFix.cs (unused in final build, was intended for integrating area effectors with player movement controller, but didn’t end up using effectors)
- PlayerHealthSystem.cs - Handles all things related to player health, setting/resetting health, taking damage, and death etc.
- PlayerStats.asset
- ScriptableStats.cs – Scriptable stats to adjust various physics systems used by PlayerController
Enemies (Scripts/Enemies/)
- BlobAnimationController.cs – Blob animation controller (animations handled via code using Animation.Crossfade instead of in Unity UI)
- BlobMovementController.cs – Blob movement & AI behaviour controller
- MediumMonsterAnimation.cs – Monster animation controller (animations handled via code using Animation.Crossfade instead of in Unity UI)
- MediumMonsterMovement.cs Monster movement & AI behaviour controller
- HealthSystemEnemies.cs – Reusable health system for enemies, manages taking damage, death, etc
Managers
- GameManager.cs – Script for a persistent GameManager game object that uses DoNotDestroyOnLoad
- Checkpoint.cs – To be used on gameobject with collider, to set current checkpoint when player collides using OnTrigger.
- CheckpointManager.cs – Called by multiple other scripts, respawns the player and tracks current checkpoint
Miscellaneous Utilities
- BGParallax.cs – Script to apply to background elements to apply parallax effect
- CameraPanner.cs – Used in main menu scene to pan camera based on a tracking target
- DestroyAfterAnimation.cs – Destroy game object after animation finishes playing, was going to be used on effects instantiated like dust cloud on player lading etc
- FlipSpriteDirection.cs – Script to flip sprite X direction based on velocity, not used in final build as enemy/player controllers take care of that.
- RandomSpriteColour.cs (unused, was used to set random colours for blobs initially, but settled on black in the end)
- Speedrun Scripts:
- FinalRunTImeDisplay.cs - Updates text on finish screen/canvas
- RunTrigger.cs - Script to add to game objects with Collider2Ds, to act as start/end timer triggers
- SpeedrunHighScoreDisplay.cs - Script to get high score from PlayerPrefs and show it in TMP Text
- SpeedrunTimer.cs - Main speedrun timer script. Has functions for startin/stopping timer, getting last run time and saving run time
- TimerBinder.cs - Quickfix script to add to TMP text object to rebind it to SpeedrunTimer instanace on scene reload
Audio
- SoundFXManager.cs – Script that runs as instance to manage instantiation and destruction of SFX prefabs to play sound effects. Sound clips instantiated from other scripts using SoundFXManager.instance.PlaySoundFXClip(soundClip, transform, 1f); Made with help of “How To Add Sound Effects the RIGHT Way” video by Sasquatch B Studios, Youtube, (Link)
- SoundMixerManager.cs – Has functions to update mixer volumes based on slider or values or from other scripts
- FootstepController.cs – Controller script attached to player that plays footstep sounds based on area and velocity (by instantiating game objects as sound sources, using SoundFXManager)
- AmbienceManager.cs – Controller that plays ambience sounds depending on player entering zones, detected using trigger zones below
- AmbienceZone.cs – Added to game objects with 2D collider to make “zones” for playing certain ambiance sound effect loops, as above
- AreaProximityAudioPlayer.cs – Plays a loops audio clip at transform point of object, fading in and out depending on player proximity
- MusicManager.cs – Only really used in title screen to play background music
- ProximityAudioPlayer.cs
UI & Popups (Scripts/UI/)
- BobbingObject.cs – Bobs the collectable prompt up & down
- DeathMenuUI.cs – Added to death UI canvas, has functions that are assigned to buttons on the canvas/menu, to call other functions on GameManager instance, as directly assigning GameManager to buttons wasn’t possible if it carried over from previous scene using DoNotDestroyOnLoad
- MenuSwitcher.cs - Switches UI Menus/canvases, used for pause menu on gameplay scene
- PauseMenuUI.cs Similar to DeathMenuUI above, same logic/reasoning, but for Pause menu instead of Death.
- SceneSwitcher.cs – This is the SceneSwitcher provided in the KIT109 interactive tutorials
- SceneSwitcherButton.cs, used soley on “Play” button OnClick on title screen
- UICanvasSwitcher.cs – Switches UI Menus/canvases, used for options menu on main title screen
UI Popups
- HelpPopupTrigger.cs – Script that goes on a gameobject in the world that contains text, and instantiates a world-space canvas at point of trigger object, to display text to player.
- MultiPagePopup.cs – Manager to handle text popups with multiple pages
- TypingEffect.cs – Enables a “Typing” effect on text popups
- Collectible.cs – (unused, went with different system below)
- CollectablePopupTrigger.cs – Trigger similar to HelpPopupTrigger below, but also instantiates a floating prompt for player interaction. On interaction, shows player a dialog box with information, and also increments collectable count in GameManager.
World Interaction
- DoorController.cs - Controller for simple up/down doors
- DoorPanel.cs - Panel controller for simple up/down doors, with multiple states for locked/unlocked/unpowered/destroyed
- DoorPanelActivator.cs – Used to change door panel state from a separate game object elsewhere
- ElevatorController.cs – Controller for simple up/down elevators
- ElevatorPanel.cs – Panel controller for simple up/down elevators
- ElevatorMulti.cs – Elevator controller with multiple levels
- ElevatorMultiPanel.cs – Panel controller for elevator with multiple levels
- LavaDamageZone.cs – Simple trigger zone on game object to indicate player is in lava/acid when player enters 2D collider, integrates with player health controller and game manager
User Guide:
You're soldier sent by your corporate overlords to investigate a secret moon research base that has gone dark.. all the scientists are dead when you arrive, and there’s a mysterious blue substance everywhere. Run, jump, and blast your way across the moon to the abandoned base, discover what happened and gather evidence for your employer, find an exit, and attempt to reach your ship and escape!
Controls Keyboard:
Run Left & Right: [A] & [D]
Jump: [Space] (double jump by jumping whilst airborne)
Roll/Dash: Double-Tap [A] or [D ]
Aim: Mouse movement 🖱️
Shoot: Left click
Interact: [E] (with objects and popups)
Equip/Unequip Gun: [G]
Pause: [Esc]
Features:
Run (or roll) your way across the landscape. Run with [A] and [D] (or double-tap to roll)

Jump and Platform by pressing [Space]! To double-jump, press [Space] again while airborne. Whee!
Fight Back! Use your mouse to aim, and left click to shoot!

Beware though, your gun has a small capacitor & limited energy, you don't want to run out when you need it the most..
- The red bar represents your gun's current charge
- The green bar shows your health.
Interact with the world! Interact with text popups or interaction markers, or push buttons for doors and elevators by pressing [E]
Find clues scattered over the world. Journal entries, data logs, and more. Interact with [E] to read & see what they uncover..
Time your run! There's a nifty little timer in the top right that tracks how long it takes you to complete the level. See your fastest time on the high score page!
Outpost Zero
Status | Prototype |
Author | ibcole |
Genre | Platformer |
More posts
- Devlog #6 - Testing10 hours ago
- Devlog #5 - UI & Polish8 days ago
- Game Testing & Feedback10 days ago
- Devlog #4 - Additions and Some Graphical Stuff15 days ago
- Devlog #3 - Interactions24 days ago
- Devlog #2 - Level Blocking29 days ago
- Devlog #1 - Player Movement35 days ago
- Game Concept53 days ago
Leave a comment
Log in with itch.io to leave a comment.