|Platform(s)||PC, Xbox One, & PlayStation 4|
|Development time||22 Months|
|Development period||August 2015 – May 2017|
|Main role(s)||Lead Programmer & Game Designer|
|Game Engine||Unreal Engine 4|
“Two very important aspects in making a successful 3D platformer are controls and camera angles, and these two were as perfect as they could get.” – Examiner.com 2016
Skylar & Plux: Adventure on Clover Island is a single-player action-platformer game for PlayStation 4, Xbox One and PC. The game embraces a vibrant colorful world of 3D platforming, following the best traditions of the third-person platformer genre. It sets two unlikely heroes on an adventure to prevent the villainous CRT from conquering their home and turning it into a wasteland. Together they will explore lush beaches, an active volcano, a freezing mountain and a merciless desert while collecting powerful upgrades in order to fight CRT and his henchmen.
This a project I made at the studio Right Nice Games that we founded in November 2015. This project initially started as a school project but after it won Swedish Game Awards in the categories Best Execution in Art and Game of the year the group decided to take the game to the next level and release it commercially. That’s when they asked me to join the team and I became lead programmer, scripter & designer for the project. The game was awarded the Unreal Development Grant by Epic Games in May 2016.
Key features I’ve designed and implemented
- A 3D platformer character (more info below)
- Dynamic third person camera (more info below)
- Actors used by the level designers. For example:
- Meshes that are instantiated along a spline
- Jump pads
- Conveyor belts (more info below)
- Modular real time time manipulation system where the player can go back and forth between ancient and modern time (more info below)
- Slowing down the world to slow motion while the player is still real time
- Magnetic glove to pick up and throw around objects and enemies
- Enemy AI
- UI system
What I learned
- Working with external developers
- Working with a distributor
- How to set up and run a company
- Basic AI
The whole game was created using Unreal Engine Blueprints. Since I was the only full time programmer on the project I have written a most of the game code.
During the project I’ve taken a lot of responsibility, both in managing my own tasks and other’s. I’ve gone through the process of starting a company, which included many discussions, hard choices and compromises. I’ve even managed a group of students from FutureGames that wanted to work on the game in order to make portfolio pieces for themselves.
3D-platformer character, gadgets and dynamic camera
In this example video the camera moves automatically, the manual camera controls aren’t used.
- Automatically follow player
- Adjust the height for when the player is moving on a slope
- Raise camera upwards if there’s something under it that breaks line of sight
- Increase camera FOV when looking upwards to let the player see more and give a bigger sense of scale
- Player always have priority if they want to control the camera manually
- Move the camera so that line of sight is never broken. Except for tagged objects for example trees, poles and enemies
Making the camera I took inspiration from many 3D games including Zelda, Super Mario 64 and Jak and Daxer. This video by John Nesky, programmer on Journey helped me as well. The camera system is still improving every week and is one of the things I’m most proud of in the whole game.
- Basic moves
- Double Jump
- Spin jump
- 3 Punch combo
- Ground pound
- Jet pack
- Roll jump
- High jump
- Time orb
- Slow down time - everything in the world is slowed down except the player character
- Magnetic glove - manipulate metallic objects and enemies by:
- Picking them up
- Throwing them
- Spinning them around the player
- Jet pack
- Hidden features
- Hit stun - When hitting objects the character will go into slow motion for a super short while to give a bigger sense of impact.
- Reset jump - If the player makes her double jump close to the ground the game will count it as their first jump. This way the player is never “cheated” out of their double jump.
- Push up from ledge - Pushes the character up ledges if they are close to make the jump so that the player doesn’t feel cheated by the game.
Spline based conveyor belt
Create conveyor belt on spline that moves objects that are put on it, scale width, choose between closed or open loop, rotate in all axes.
Makes the surrounding area “go back in time”. It changes the material on meshes to make them look newer and hides and shows some meshes in the surrounding area.
Code example for turning the time pedestal on and off:
Showcasing the game at DreamHack