Skip to content
A rail shooter powered by the Unity game engine and my Impulse framework.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Assets
ProjectSettings
UnityPackageManager
.gitignore
LICENSE
README.md

README.md

Rail Hunter gameplay screenshot

Rail Hunter

This project is released to the public domain under The Unlicense EXCEPT for the following files:

  • Files in the Packages/ folder are bound by the Unity Asset Store EULA and are free assets users can use within those terms.
  • Audio track "Gold Coast" is by Machinima Sound and is licensed under CC-BY 4.0.
  • Audio track "Aduro" is by Machinima Sound and is licensed under CC-BY 4.0.

Features

  • Title, options, game over screens.
  • Music player.
  • Timeline-driven rails gameplay.
  • Local space player ship movement with aileron roll mechanic.
  • Enemies fire homing missiles randomly within min/max firing range.
  • Enemies flash red emission on hit.
  • Top score and options screen settings saved using PlayerPrefs.

Project Architecture

This project is built using the Impulse Framework.

  • Zenject is used for DI, binding, memory pool, and event system (signals). To see how the scene is wired, look at the GameInstaller component attached to SceneContext.
  • Input handling is done by InputListener. It listens to input from the CrossPlatformInput manager and fires events accordingly.
  • Player is set up using a Model-View-Controller pattern (MVC), where the model and controller are in Scripts/Player and the views are in Ships/PlayableShips. PlayableShip is the abstract class for player-controllable ship views. Note that there is only one playable ship, but the structure allows for adding more views easily - just extend PlayableShip and put the new script on a new ship object.
  • Weapons implement IWeapon and must have an impact damage property. See MissileWeapon, ScoutShipView, and PlayerController for how the impact damage amount is passed via event.
  • Rails gameplay is driven by Timeline. The player path runs at 0.8 speed since I originally made it too fast. Each 'wave' of enemy ships is tuned to run at a different speed for a more smooth gameplay experience.
You can’t perform that action at this time.