Neon Crystal Shift Dimensions
Lead scripter | Game designer | Project manager
Genre: Shoot ’em up
Engine: Unreal Engine 4
Language: Blueprint Visual Scripting
Development time: 10 days
Team: 4 game designers + 4 3D artists
- Code based framework
- Script player movement
- Script player abilities
- Hold morning meetings
- Coordinate team utilization
A fast paced shoot’em up with puzzle elements where you play a little droid trying to escape a space station after a failed experiment with the beautiful but dangerous neon dimension. The player needs to dodge obstacles and enemies by switching back and forth between dimensions and slowing time using the droid’s dimension-shift-capacitor.
As lead scripter on this project I learned how to coordinate the other scripters, create a script framework for the other scripters to use and to build upon and to integrate scripts from different coders together.
As project manager on my first game project I learned a lot about the different workflows for artists, scripters, game- and level designers and how to coordinate these roles to work together.
The game plays like a classic shoot’em up with a scrolling view. The player can move up and down, left and right within that view.
The ship has a base horizontal velocity, same as the scrolling view. To that base velocity I added the vertical and horizontal input both multiplied by a movement speed. The result is the player’s velocity for this frame. I multiplied this velocity with delta time to get the new position of the player.
I calculated the horizontal and vertical velocity separately to get a better, more old-school feeling of controlling the ship.
The main mechanic of the game is the player’s ability to switch between two dimensions with different features and visual style. In the normal dimension the player collides with normal objects and obstacles but flies through the ghost image of the neon crystals. In the neon dimension the player collides with the the crystals but passes through the ghost image of the normal world.
Anything that changes apperance or functionality in-game inherits from a base class. That base class sets up event handlers for the world switching. All inherited objects then either change materials or change parameters in a shader in those event handlers. When the player shifts dimensions the player controller triggers the world-change event and all objects change accordingly.
The player has the ability to activate slow motion. When in slow motion the player is more agile, faster and weapons reload quicker. Activating slow motion also drains energy and if the energy is drained completely the slow motion deactivates. Slow motion gives the player a tactical ability to more easily react to enemies and obstacles.
To get the smooth transition in and out of slow motion I used a timeline that plays and reverses when the ability is activated and deactivated. The timeline lerps all values that is affected by the slow motion, such as speed, reload time and the color of the player.
In every tick the energy is drained. If completely drained the slow motion is deactivated.
Level design tools
To make the job for the level designer and environment artist more efficient I created a number of tools to make the creation and propping of the levels easier and faster. I created for example a system to more easily show, hide or change props on the walls in the game.
The script runs in the construction script of the object. It hides or shows prop-meshes aligned to the object and replaces the meshes if replacement meshes are specified.