Neon Beats – The Game
|Genre||Rhythm / Platformer|
|Platforms||PC / Mac / Android|
|Controls||Mouse & keyboard / Controller|
|Target audience||Semi-casual players|
|Released on||Itch.io / Steam / Google Play Store|
|Award||IGF 2020, Best Student Game Finalist|
Neon beats is a side view 2D Platformer Game in which the level react to the game music.
In this game you will play a little square in a abstract world to complete levels and try to get the best score possible !
Neon Beats – The Project
|Team||5 game design students|
|Context||2nd year school project|
|My main roles||Game Designer / Programmer / Technical Artist|
My work as Game Designer
Create a “Feel good” experience
“Feel good” was the theme of this school project. There are a lot of ways of feeling good, but what we opted for was a satisfying musical experience. For example, having several elements reacting together on the rhythm and following the flow of the music. In that idea, we wanted something simple and minimalist focused around sound and music, without unnecessary visual elements.
We wanted the player to follow the level along the music and enjoy a simple experience. The biggest challenge was to provide the best interest curve as possible, in order to not interrupt the player flow with too much challenges, and having a smooth and logical progression. One of our main inspiration being Geometry Dash, we didn’t wanted the same hardcore die and retry experience, but something more fluent and casual.
The player will spend most of his time controlling the character, which means that 3Cs are really important. It shouldn’t interrupt the experience and should be simple, accessible, feel good to play with.
Rhythm vs Freedom, a cursed problem ?
Most rhythm games have levels with a fixed duration, the player has to play in rhythm with the music, otherwise it’s game over. Neon Beats being a platformer, we wanted to give movement freedom to the player, allowing him to get back in the level, and progress with the speed he wants to.
We had to divide the music in several loops that we can trigger depending on checkpoints within the level. Moreover, we created some specific level design ingredients like the “wagon” which will change its travel time in order to always finish the trajectory in rhythm.
We still created some situations in which the player is forced to go forward in order to fit the musical tension. We had this cursed problem, we can’t give situations with a total movement freedom, and having the character movement perfectly fiting with the rhythm. We had to make sacrifices, by letting more freedom and less rhythm accurate situations in musical loops, when in opposition low freedom but rhythm accurate movements fits better in situations with high musical tension like drops.
Easy to learn, hard to master
A main constraint imposed to the game was that it should be playable with one hand. The objective was to make something so simple and accessible that we could give the controller to a new player without explaining anything. Neon Beats character controller only contains few actions (Move, Jump, Wall Slide, Wall Jump) and require only 2 inputs to play.
The level design introduce the base mechanics, without adding any new character’s actions later in the game. Instead we used a lot of level design ingredients and teach these progressively, always starting with a really simple challenge and then follow with a development in more elaborated situtations.
The game contains a lot of checkpoints, death isn’t that punishing and simply make the player respawn instantaneously at the previous checkpoint, always near to a challenge so he can retry right away.
However, mastering the game isn’t easy, there are a lot of little tricks to know with the character movement in specific level parts, and a lot of speedrunners already made crazy times in the game. We added a restart button and more precision to the timer so they can play the game in a more comfortable way.
Moreover, for achievers, we’ve hidden collectible notes in the levels and Steam achievements which add sub-objectives within the levels.
My work as Technical Artist
I was having fun moving line renderers in rhythm with the music, when i thought that line renderers with a bit of bloom on Post-Processing could totally fit our minimalist intentions.
Almost all the game assets are rendered using line renderers, which make these really easy to produce, but also cheap in terms of performance and storage.
VFXs in Neon Beats are mainly focused around player interactions. They are also minimalist, and mainly made of simple shapes.
I also created some script linking visuals to the music with some scales or movements.
My work as Programmer
Being the only programmer in this project, i had to create all required features in a short amount of time and was responsible of the overall workflow of the project.
I started by creating the character movement and jump physics. When grounded, the cube will move depending on the ground normal in order to have smooth movement in slopes. The jump had to felt responsive, so i spent some time on tweaking the jump force a gravity parameters in order to have a proper result.
A ground and wall detection was made using raycasts, which allow me to create the walls slide when the character is near to a wall by tweaking the linear drag.
For the wall jump, we didn’t wanted any complexe behaviours. It consist in a simple force applied in the wall opposite direction and on the y axis. The input are locked during this action, a trail is used as a sign to represent the wall jump. When in the air, the player just have to press the jump input near to a wall in order to wall jump.
It was important to have some latency forgiveness like coyote time or input buffering, so it is not required to press the jump button at the perfect frame.
Neon Beats contains two different camera behaviours, a static camera with a big orthographics size to show large level parts, and a camera which follow the player, with a bit of smooth time and look ahead.
In order to switch easily between these, i created a camera manager script and used Cinemachine in Unity.
For the input system, i decided to use the InControl asset, it helped a lot in order to create a clean input system for the game, allowing rebinds and touch control for the Android version.
At start i didn’t know much about how audio work technically, i made some research and found really good ressources like the Peer Play YouTube channel and other articles talking about FFT windowing.
We needed to have different behaviours reacting to the music, in order to do that, i started by creating an audio spectrum analyzer system. It divide the spectrum in 8 frequency bands. I created a RhythmObject base class, its role is to trigger a certain behaviour once a the amplitude of the wanted audio frequency bands reached a certain value. I just had to inherit from this class and override the behaviour to create the different rhythm elements.
Level related features
A huge part of Neon Beats reside in its Level Design.
Our level designers had to be able to design and prototype levels quickly. As programmer, i felt responsible of the overall workflow of the project, and that’s why i created some tools in order to create the level base ground structure. I also created all the ingedients prefabs they needed with some presets, and different exposed events and parameters, so they can also create more complex behaviours.
To save players’ progression, i made a simple save system linking Binary Files to some ScriptableObjects.
I spent some time working on UI and menus, and add to make sure to make something either PC and Phone friendly.
In order to release it, we linked the game to Steam and made the achievements.
Most of the design was made at 5 in design meetings, and our management method was close to Scrum agile methods with a lot of iterations.
Neon Beats was our first game released on Steam, and has student we didn’t expected such good feedbacks from players, and a lot of content like YouTube videos, was created by the community.
We exposed the game at the Japan Touch convention in Lyon in May 2019, a lot of people tested the game, and almost everyone managed to understand and play the game easily.
We also organized a score tournament, and it was great to talk and meet peoples.
After that, we created a Company named OKYO Games with my teammates.
We got selected at IGF 2020, as finalist in the best student game category, and were supposed to go to San Francisco if the GDC wasn’t postponed due to COVID-19.
Nowadays, we released Neon Beats – A Beat Further, the first DLC of the game, and Neon Beats is one of the best rated Steam games.
It was an amazing and enriching experience, and i really spent some of the best moments of my life working on this project with the team. A huge thanks to my friends and collegues.
In the case you want to know more about the game technical aspect, here is the technical design document
Other team members’ portfolio :