Bull-Engine

Our web


Project maintained by Sersius Hosted on GitHub Pages — Theme by mattgraham

Bull-Engine

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.

Team Members

"Víctor"

Víctor Tirado

"Sergio"

Sergio Gómez

Main core sub-systems

3D Renderer

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.

Geometry loader

Our engine can read and extract all the data from models with Assimp in order ti render the mesh on screen.

GameObject structure

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.

Serialization

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.

Mouse picking

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.

Time management and Game mode

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.

Audio sub-system

For the audio sub-system we use Wwise to use audio banks in the engine. We have implemented 3 audio components:

Audio Source

With this component we reproduce audio, depending on the side you can hear the audio from the right or left part of the headphones

"Gif"

Audio Listener

This component allows you to hear in the engine.

Reverb Zone

This component changes the reverberation of an audio if the audio source is inside the reverb zone.

Demo video of Bull-Engine

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

Tools Used


Bull Engine Repository

Latest Release

License

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.