Game Engine Progress

In 2013, I decided to do something beyond my intellectual abilities. Something that would require determination and commitment, something that would shake me from within. Thus, I decided to develop a Game Engine from scratch.

On July 21, 2016, after three years of hard work, I was able to complete the basic framework of the engine.

Developing a game engine from scratch has been an amazing experience. Not only did it improve my coding skills, but it taught me the meaning of perseverance and consistency. I'm very proud of what I accomplished and for not giving up.

Here is a timeline of the game engine history.

Update:

On Jan 2017, I decided to develop a mobile soccer game using my game engine. The purpose is to test the limitations and make improvements to the engine.


Game Engine Demo

Developing a soccer game with my game engine-Part II (3/21/17)

This month I focused on developing a messaging system for the AI. As the video shows, the players can now communicate among themselves and be alerted whenever a player is passing the ball. Read More

Developing a soccer game with my game engine-Part I (2/26/17)

To test the features of the game engine, I decided to develop a 3D mobile soccer game. Such type of game requires the use of a physics engine, an animation system, collision detection system and the development of an AI (Artificial Intelligence) system. There is no better type of game in my opinion that can be used to fully test the features of my game engine. On top of that, I enjoy playing soccer and is a game that I do understand. Read more.

Game Engine second demo (12/11/16)

This video shows the second demo of the game engine in action. The demo is a simple shooting game between the enemies (tank and airplane) and the good guy (anti-aircraft gun). As the anti-aircraft gun aims to the enemies, the camera follows the light of sight of the anti-aircraft gun. The demo makes use of the collision detection system. As the enemies are hit, the game characters are broken up into its respective children, making the illusion of an explosion. Read more

Game Engine first demo (8/22/16)

The demo is very simple. It starts off with the rocket bouncing up and down colliding with the ground. The camera is set to follow this bouncing movement. As I press the button, the rocket starts flying upwards until it collides with several asteroids. After each collision, the models respond by moving in opposite directions. After several collisions, gravity takes over the rocket and forces it to come down to the ground. The rocket bounces several times with the ground as it collides. Read more


Game Engine Capabilities

The engine is capable of rendering 3D models with textures/normal maps, Shadows, 3D model animations, Skyboxes. It contains a Digital Asset Importer used to import 3D models from Blender. Is capable of detecting collision between any convex models. It emulates physical forces such as gravity, drag, torque. It makes use of quaternions and dual quaternions for all rotations and translations. It supports fonts and sprites.

Beta Version v0.0.4

In this beta version v0.0.4, I implemented a primitive particle system, thus allowing explosion effects to occur once a missile hits the asteroid. I also enabled multi-touch, this allows the spaceship to turn as it speeds up. I also set up collision filters among object types. For example, object A and object B can collide; object A and object C can collide, but any collision among object B and Object C is ignored. Read More

In this beta version v0.0.4, I implemented a primitive particle system, thus allowing explosion effects to occur once a missile hits the asteroid. I also enabled multi-touch, this allows the spaceship to turn as it speeds up. I also set up collision filters among object types. For example, object A and object B can collide; object A and object C can collide, but any collision among object B and Object C is ignored.

Beta Version v0.0.3

In this beta version v0.0.3 of the engine, animations and collision detection can work simultaneously. The BHV algorithm was improved helping the engine make better decisions when pairing up 3D models for collision detection. The MVC (Model-View-Controller) flow of information was also improved. Read More

In this beta version v0.0.3 of the engine, animations and collision detection can work simultaneously. The BHV algorithm was improved helping the engine make better decisions when pairing up 3D models for collision detection. The MVC (Model-View-Controller) flow of information was also improved.

Beta Version v0.0.2

In Beta version v0.0.2, the game engine is capable of detecting collision between any convex models. Emulates physical forces such as gravity, drag, etc. Renders shadows.

Beta Version v0.0.1

In Beta version v0.0.1, the game engine is capable of rendering 3D models with textures/normal maps, animation, skyboxes, fonts, sprites and contains a digital asset importer.


Game Engine Workflow

I read a book a while ago that encourages artists, writers, and developers to showcase their work-in-progress. If you haven't had a chance to read it, I recommend it. It is called Show Your Work by Austin Kleon. The author says that people are equally interested in your final product as in your struggles to make it a reality.

I took Austin Kleon's advice and started showcasing my half-baked engine in Vimeo. This video is different than the other videos I've shared. This video shows the game engine's workflow.


Game Engine Timeline

Below is the history of the game engine. It started with a blank file and a burning desire to prove myself.