What is a Game Engine?

The reader who prefers to jump right into the process documentation can skim the “Tools of the Trade” but game engines and adaptive audio middle-wares go hand in hand to create an immersive user experience. The Aquatic Museum App is created with both the Unity game engine and Fmod. Even though you can use fmod for other software projects (i.e. as it is used here on this website) it’s main purpose lies in the flexibility it offers when working with game engines.

Game Engine

Today most games (from indie to AAA) are created not rely on software called “game engines”. They provide many essential features found in most games out-of-the-box and they often require less coding:

  • Graphics
  • Physics
  • Input
  • Sound
  • Networking
  • Artificial Intelligence

Good game engines and most non trivial games still require and rely on complex coding options and offer a maximum of flexibility.

Creating a sphere in a game engine:

vs. creating a sphere from code:

Drawing a sphere with C++ code while still cheating a little and using the WebGL Graphics Library:

#include "MyOpenGLWindow.h"

class Vec3 {
public:
	union {
		struct{
			float x, y, z;
		};
		float data[3];
	};

	Vec3() {}

	Vec3(float x_, float y_, float z_) {
		x = x_;
		y = y_;
		z = z_;
	}

	void set(float x_, float y_, float z_) {
		x = x_;
		y = y_;
		z = z_;
	}

	Vec3 operator*(const Vec3& r) const { return Vec3(x * r.x, y * r.y, z * r.z); }

	Vec3 operator+(float s) const { return Vec3(x + s, y + s, z + s); }
	Vec3 operator-(float s) const { return Vec3(x - s, y - s, z - s); }
	Vec3 operator*(float s) const { return Vec3(x * s, y * s, z * s); }
	Vec3 operator/(float s) const { return Vec3(x / s, y / s, z / s); }
};

// etc. + 300 LINES

Supported Platform

All developments made in Unity can potentially run on all the following platforms ranging from PC, MAC, Linux over game consoles (PlayStation, Xbox, etc.) to mobile devices. I’m using potentially because most of the time platform specific developments are required which can amount to substantial investments in development efforts.

alt

Types of Game Engines

There are many only the 3 most famous are linked here. The are also use extensively for VR projects and installations or for animation films.

Unity

Unity case studies:

alt

Unreal

Games using the Unreal engine:

alos

Godot

Godot is completely free and open-source under MIT license. “No strings attached, no royalties, nothing. Your game is yours, down to the last line of engine code.

alt

Godot hasn’t any AAA games to show for (yet) but becomes more and more popular:

alt

Game jams are the best way to learn

One of the most famous game jams is the globalgamejam.org which takes place every year at different locations around the world. One main subject e.g. “Waves” or “Repair me!” is given and multidisciplinary teams have 48 hours to build a complete game and upload it. In January 2020, there were 934 locations in 118 countries and the teams created 9601 games in one weekend.

Musicians are always high in demand and those with minimal coding skills and knowledge about game audio engines even more so.

Global game jam take place in January and the registration for the Netherlands can be found on this website: globalgamejam.nl.

48 hours to finish a game

Here is one of the session I did the audio for.

Use a microphone-enabled device to sing the same note that the enemies are producing to destroy them with a beam of sound. Uses FFT to calculate the pitch of the singer’s voice. We integrated the Google Cardboard API to allow the player to play the game without using any buttons. It uses pitch detection to destroy specific enemies. Works on windows and mac. We tested it on iOS and it works pretty well but the enemy sound are not working. The music works fine though. (Global Game Jam Luxembourg 2017)

soundWraiths.png