This game engine has been made for the Game Engines subjects of the 3rd year in the Game and Development grade of CITM. It’s a basic game engine with controls like unity with a audio system. This system is the implementation of the audio engine Wwise. In our game engine you can create audio listeners, audio sources and reverv zones.
Our engine has a module that handles all th drawing made in the engine without using shaders, instead we use OpenGL Arrays with indices except for the draw of primitives that are rendered directly.
Our engine can read and extract all the data from models with Assimp in order ti render the mesh on screen.
All gameobjects have a tree structure so the transformation of the parent affects all of his childern. All of this gameobjects and children have their own AABB box that can be filtered by the frustrum culling.
For identify all the different gameobject there are in the scene we use UUIDs (Universally unique identifier). The UUIDs are generated by a random number of 32 bits.
For pick a gameobject in the scene we use mouse picking using the Raycast method. When the ray is cast collect all the gameobject inside the frustrum that intersect with the ray and then loop through all the gameobjects calculating all its triangles to see which gameobject was picked first.
Our engine has a internal game clock that will run when the Game mode is active, so its dt will be passed to all the upadtes instead of the dt from the app. And the Game mode is to see the scene through the game camera.
For the audio sub-system we use Wwise to use audio banks in the engine. We have implemented 3 audio components:
With this component we reproduce audio, depending on the side you can hear the audio from the right or left part of the headphones
Option for mute de audio source.
Change the volume with this slider.
This component allows you to hear in the engine.
This component changes the reverberation of an audio if the audio source is inside the reverb zone.
If you can’t see the video click here
Camera controls
- Mouse right click: Move Camera with static position
- Mouse right click + arrow keys: Navigate arround the scene
- Mouse right click + Q: Move up the camera
- Mouse right click + E: Move down the camera
- Mouse left + Alt-left: Move Camera arround model pivot
- Mouse wheel: Move Camera forward and backward
- Press Mouse wheel: Move camera
- F: Center the Camera on an object
MIT License
Copyright (c) 2019 Sersius & Víctor Tirado
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.