Two Wonders

Primary Role: Engine Programmer

C++ OpenGL Custom Engine University

Two Wonders is a 3D action-adventure game with an isometric view, inspired by games like Tunic or The Legend of Zelda, where exploration is key element. The game combines strategic puzzle-solving with elemental combat, where players must use different elemental abilities to defeat enemies, each possessing unique elemental strengths and weaknesses.

The game was entirely developed from scratch in C++, including both the game itself and the underlying technology.

My Contributions

Custom Graphic Engine

C++ OpenGL GLFW

I developed a graphics engine from scratch in C++ and OpenGL, specifically tailored for Two Wonders, designed to meet the technical and graphical needs of the project. The engine was created with the goal of handling complex scenes and optimizing the game's performance.

The scene was structured as a Tree with corresponding Nodes, supporting transformations and matrix management. The implementation includes a basic structure of virtual entities and components such as cameras, lights, and meshes with support for animations and materials. A Resource Manager was created that, using a hash-map, efficiently handled the loading and unloading of resources such as textures, fonts, shaders, materials, and meshes, with optimized OpenGL calls. Advanced techniques such as Phong shading, a custom cartoon shader, culling (backface and frustum), billboards, and a particle system were also implemented.

Everything was integrated into a facade that connects the engine with the game, using support libraries like Assimp and GLFW.

Level 0 Level 1 Level 2

Entity Component System (ECS)

C++

I worked on the implementation of the Entity Component System (ECS) for the game Two Wonders, which allowed for greater modularity and flexibility in the management of entities and components. I also collaborated on the initial gameplay development, integrating game mechanics with the ECS to ensure smooth and coherent control of the entities, optimizing their interaction within the game world.

ECS is an architecture that separates entities into components (data) and systems (logic). Entities are just containers, components define characteristics, and systems process the logic. This allows for greater flexibility and optimization in managing game objects.

Game and Level Design

Sketch Game Design Level Design

I worked in a team on the game and level design of the video game Two Wonders. We created gameplay mechanics inspired by The Legend of Zelda and Tunic, developing levels that offered a fun experience while teaching players how to engage with our game.

Sketch Level 0 Sketch Level 1 Sketch Level 2

Contact Me

Feel free to reach out, I'll get back to you as soon as possible: juliosalag@gmail.com

You can also find me on my other social platforms:

Copyright © 2024 by Julio Sala | All images, logos and names are used with permission