High concept: Teotl Rise of a God” is a 3D, 3rd person adventure/puzzle game where you will use your powers as the high god’s avatar in order to free the sun and the moon from their imprisonment.
Instructor: Iker Silvano
Type: Team project
Engine: 3D Entity Component System game engine built from scratch, fully in modern C++. We used some external libraries such as OpenGL, FBX SDK for model and animation loading, Fmod, Json, stb image and ImGui.
Finalist – Best Student Game at Gamelab Barcelona 2017
Finalist – Best Basque Game at AzPlay 2017
Finalist – Best University Game at Fun&Serious 2017
Thanks to our nomination at the AzPlay we had the opportunity to make a presentation about the development process of Teotl, the presentation was recorded, you can see the video here.
On the other hand, the nomination of the Fun&Serious gave us the chance to make a pitch about Teotl: Rise of a God.
My roles: Lead Programmer & Engine Programmer
This is the first 3D game project and 3D engine I worked on. I took into account all the things I learned while developing the engine for StoneHeart and thought on how to improve some of the features for this 3D game engine.
I designed and developed all the game engine but physics and graphics, this is a list of the most important features of the engine that I implemented:
- Designed and implemented most of a 3D data driven game engine, from scratch, fully in modern C++.
- Programmed a collision system, using octrees for speeding up the broad phase, able to detect and resolve bounding volume collisions.
- Developed a property system that was able to show the variables of a component in the GUI, load and save them when needed. The interface was simple and easy to use, supporting class hierarchies and arrays.
- Implemented a modular resource manager with generic importers, able to load resources on demand, hot reloading of changed assets on a different thread.
- Programmed a sound system able to wrap any sound API (tested with Fmod and OpenAL).
- Designed and programmed a memory manager that used page allocators for the different components.
- Implemented a parser that could convert FBX scenes into a format the engine could understand, JSON, reducing the dependencies of the engine.
Once the engine tasks where complete I worked on level creation and gameplay programming, implemented puzzles, developed player-environment interactions and programmed beautification elements.
- Oscar Gonzalez – Producer & Generalist Programmer
- Jon Diego Martinez – Designer & Camera Programmer
- Fabrizio Tonietti – Graphics Programmer
- Borja Portugal Martin – Lead Programmer & Engine Programmer
- Laura Barrenengoa Clemente – Gameplay Programmer
- Jon Vivanco – Character Artist
- Julen Puertas Baños – Gameplay Programmer
- Iker Eizagirre Menchaca – Designer & Generalist Programmer
- Mikel Orrantia Robles – AI & Physics Programmer
- Aurora Rodriguez – Environment Artist
- Olatz Arin – Environment Artist
Note: Beta could be considered as Gold. We prefer to call it Beta because is an student project.