BBS Engine is a component based 3D game engine made with C++ and exclusively crafted for our third year project Mag&Net.
I worked as a tools and graphics programmer, focusing on the game editor, tools for increasing productivity and graphics effects such as shadows, post processing and a simple cartoony fluid among other things.
Being 10 programmers instead of 6 compared to the second year project meant that tasks could be distributed in a more specific way and hence I could focus on creating a powerful and helpful editor in order for the team to use. Due to my interest in graphics, I decided to join my teammate Juan Pacheco Larrucea to create our rendering pipeline.
Main things I worked on and implemented:
Game Editor
Being the tools programmer I was in charge of creating the game editor and providing all necessary tools for creating our game. The editor kept evolving with time as new features were needed.
- Object creation, deletion and editing.
- Component addition and deletion.
- Component editing.
- Hierarchy and parenting visualization.
- Room editing.
- Material editor.
- Player editor.
- Editor camera.
- Autosave.
Room Editing

The tool I created for editing rooms was key to the development of our game, as it allowed us to modify rooms much faster and comfortably.
Moving things around in 3D space can be a bit challenging at times due to perspective, that is why we decided to design a tool to help us with that issue.
The tool allowed to select a room, once selected it would display all objects inside it. Storing objects inside rooms was very useful, we knew that players could only be in one room at a time and hence only objects in that room had to be active, giving the game a boost in performance. In addition to that it was also useful in terms of organization. Being able to only display objects in a room made it much clearer to know where things were in our hierarchy, we could use them as «folders».
The tool also allowed to compute the room’s bounding volume, which was used to do frustum culling in the rendering pipeline, again increasing performance by discarding rooms (and all objects inside them) that were outside the camera’s frustum.
Material Editor
The material editor was a tool I created to easily create and edit materials for our game objects. The set up was very simple, a sphere with a material applied to it and a light. The specular, diffuse and other parameters could be edited as well as the look of the light. Being able to see how a material would react to different kind of lights (colors, intensities, etc…) would allow us to set up scenes in a specific way, rather than constantly trying to see what fits the most.
Graphics
As a graphics programmer I implemented a simple obj loader, the shader and the model class as well as shadow mapping, post-processing effects such as contrast and HSL modifiers and other shaders to give the game a nice look.
Some of these shaders include a very simple cartoony fluid representing acid which used noise to give the sensation of movement and tiled and scrolling images that we used for vending machines.
Video showcasing the engine and some of the things I worked on: