Land Invaders
Watch the gameplay demonstration here on YouTube.
View the GitHub repository for this project here.

Game Overview
Land Invaders is a 3D rail shooter flying game. This project was made in Unity while learning an online course. The objective of the game is to survive the level while killing as many alien ships as possible.
Movement

There were lots of factors that needed to be considered when determining the position of the ship relative to the camera. The horizontal and vertical input manager GetAxis with the ships speed gave the two Offsets. With these values combined with the current position, it was possible to find the new desired location (if it exceeded the rail range, it would only return the maximum value). However, I needed to use an euler for the rotation values of the ship's pitch and roll for when it's changing position. Also, the angle of the ship needed to be altered so that it appeared to always be following the rail, no matter its position.
Timeline

A timeline was used to cue all the enemy ships animations and the overall rail animation for the player movement. Trying to edit the animation curves to work smoothly around the map took a great deal of time.
Learning Experiences
Learning how to make a plane/spaceship move in a realistic way was very interesting and beneficial. Also, learning how to have timeline animations for enemy waves can be used it various other games.
Example coding areas involved:
- Timeline and Animation curves
- Cross platform input manager
- Particle systems
- Coroutines
- Flying movement
- Vertor3
- Lerp
- Local euler angles