BEATBALL
ABOUT BEATBALL
Beatball (working title) is a music-based puzzle-platform game that I have been developing in UE4 intermittently since late 2016. The core concept is to have a game world filled with challenges and puzzles that are directly controlled by the game's music. The music is, however, split into five layers that the player must reconnect in order to "rebuild" it. Therefore, the music directly affects the gameplay, and the gameplay in turn directly affects the music.
The images below show the project in its current state.
The images below show the project in its current state.
FEATURES
Beatball contains a number of systems that I have developed, from core elements like the procedural music engine, to the control system and the various methods employed to improve the game's performance. Some of these features / systems are outlined below:
Above: a simplified diagram of the forces that are applied to the player character.
|
PHYSICS-BASED PLAYER LOCOMOTIONThe player's movement is entirely controlled by physics simulations and various applied forces:
|
MUSIC ENGINE AND SOUND EFFECTSThe music engine controls not just the music, but is the primary controller of all of the game's mechanics and sound effects. The system operates on the principles outlined below:
|
Above: an example of a sound effect with twelve variants - one for each note in the chromatic scale.
|
Above: a simplified diagram showing how the short segments of music overlap. The coloured areas represent the volume of the audio within each segment. In this example, a segment on track A plays, then just before it begins to fade out, a segment on track B begins to play. This process is then repeated when the segment on track B ends, and track A plays its next segment.
Above: a demonstration of how musical information is "carried" by lasers, assigning colours to game elements, and controlling their behaviour.
|
MUSIC-CONTROLLED GAME MECHANICSAll game mechanics are directly controlled by the music engine: a data table containing various bools, integers and enumerators is continuously read through, and the information is broadcasted to the various game mechanics in a level using an event dispatcher. This allows the game to maintain precise synchronisation with the music, and is used in various ways, as described below:
|
PROCEDURAL GEOMETRY / ANIMATIONMost of the world geometry is built with Instanced Static Meshes, there are a number of advantages to this approach as described below:
|
Above: an example of how a single instanced static mesh can procedurally generate a variety of layouts.
Above: an example of procedurally-animated instanced static meshes.
|
DEVELOPMENT
This project represents several years of learning, and was started with virtually no prior experience in UE4 game development. Consequently, the project has evolved significantly over its development, becoming more refined and focussed. A few screenshots showing older versions of this project are shown below: