Teotl: Rise of a God

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.

Couses: GAM300 / GAM350

Instructor: Iker Silvano

Type: Team project

Language: C++

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.

Download: http://games.digipen.edu/games/teotl-rise-of-a-god


gamelab_smallFinalist – Best Student Game at Gamelab Barcelona 2017

az_play_small Finalist – Best Basque Game at AzPlay 2017

fun_and_serious_smallFinalist – Best University Game at Fun&Serious 2017

As we were nomitated on the AzPlay we gave a talk about the development process of Teotl. We also gave a pitch about Teotl: Rise of a God on the Fun&Serious.

My roles: Lead Programmer & Engine Programmer

This is the first 3D game project and 3D engine I worked on. I took into account everything I learned while developing the 2D engine for StoneHeart and thought on how to improve some of the features for this new 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.

The Team




First Playable


Pre Beta


Note: Beta could be considered as Gold. We prefer to call it Beta because is an student project.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Create a website or blog at WordPress.com

Up ↑