People: Gavin Zimmerman
Timeline: May 2021 - Aug 2021
Media: Indie Game
Tech: ROBLOX, Rojo
Link: Game

Table of Contents


Controls & Movement

The character verbs I've designed for Noir allow her to fly, hover (walk) on walls, jump and slide, step back in time, sprint, and various chimera states of those. So it wasn't ideal to use Roblox's default camera or character controller.

What is shown in the video above is the implementation of a custom character controller which is non-physics based. Each nearby surface is surveyed and compared to the last selected surface and camera and directional input. A spring allows the player to hover at a certain height (lowered when sprinting).

Currently in implementation, the flying mode will be active when that distance is greater than (~20 units). While any distance from the best surface under that gives a blended mode of hovering and flying (using a sigmoid).

Inputs are fed into a flying controller and hovering controller which then add velocities to work with Roblox's existing physics engine.

This results in a smooth change of movement style- where jumping acts as a kickstart to flying.



  1. Character Poses signalling various movement modes