The Art of Game Engine Development

I've written several articles explaining how a game engine works. However, I feel that I left out an important concept.

Over the years, my view on Game Engine development has evolved. It has changed from "This is how you develop a game engine" to "There is no one way to develop a game engine."

When I started, I spent hundreds and hundreds of hours pouring over technical books; learning, deciphering code snippets and trying to implement the same ideas I learned on my game engine.

There is nothing wrong with the approach mentioned above. But over the years, I realized that Game Engine development is not only science, but it is also an ART.

There was a point in the development of the engine when I stopped treating the implementations provided in technical books as "Gospel." Instead, I would make an effort to truly understand the "concept" and then go on and implement it my way.

When I did this, I started to fall in love with Game Engine Development. That was the moment that I felt that I was genuinely doing Engineering.

To develop a game engine, focus on understanding the primary role of each component, but implement the internals of each component, not as mentioned in a book, but as YOU think is the best way.

In other words, let your creativity flow through your game engine. Game Engine Development is science mixed with "technical" art.

Documenting the Untold Engine

Here is a tip I would like to share:

Approach documenting your project, as a project itself.

I started documenting the engine months before I released it. I was hoping to have the documentation ready by the Release Date. However, that never happened. Documenting a project is a lot, a lot of work and you should treat it as a project itself. Overall, it has taken me over eight months to document the Untold Engine.

 
In version beta v0.0.11, I implemented several camera behaviors such as First Person Camera and Third Person Camera. The particle system was also improved. Moreover, the camera culling was also improved.
 

Trust me; I've been working on the documentation daily.

So what type of documentation is currently available in the engine. Well here is what I have done.

The Documentation is divided into the following sections:

  • Labs & Tutorials
  • API Usage
  • Digital Asset Exporter
  • Architecture
  • Modules

The Labs & Tutorials section provides several labs that will help you get started with the engine. You will have a chance to learn how to render a game character, how to add collision detection, etc. It is an excellent way to get started using the engine.

The API Usage section helps you understand how to use the Untold Engine's API. This section is geared to users who have gone through the Labs & Tutorials section and are ready to start playing around developing their games. You will learn how to render 3D objects, skyboxes, text, etc. using the engine's API. You will also learn how to use the Physics Engine, Callbacks, etc.

The Digitial Asset Exported section is a critical section to read. This section will explain how to import a 3D object/animation from Blender and use it in the Untold Engine.

The Architecture section is not complete yet. This is the section that requires a lot more work. My goal is to provide dozens of articles explaining the entire architecture of the Untold Engine. This will be massive work, and I hope to complete it in about six months or so.

When I released the engine, I was fully aware that the Documentation was lacking and I have put a lot of work on writing these articles. I hope you find them useful.

Thanks for reading.

Progress Update: Game Engine Beta v0.0.11

It feels like a long time since I updated the engine. The last version was released on Feb 2017. However, throughout this whole, I released the engine as an open source. I also spent a considerable amount of my free time writing documentation for the engine and fixed several issues that I encountered along the way.

Today I'm happy to say that I have released Beta version 0.0.11 of the Untold Engine.

The main updates to the engine are the following:

  • Implemented a Camera System that can handle a First Person Camera, Third Person Camera, and a Basic Follow Camera.
  • Improved the camera culling computation. If you recall, the previous version had problems with the Camera Culling. In this version, the engine allows the developer to set the desired time interval to compute the culling. However, there is a bug that I found out a bit too late. Shadow rendering is slowing down the culling computation. I will fix this in the next version.
  • Implemented an actual 3D particle system. The previous version was able to produce 2D particle systems. This is no longer the case.

Here is a video showcasing v0.0.11. As you can see in the video, the engine allows you to switch between Basic Follow Camera to First Person and the Third Person Camera. The video also shows a 3D particle system.

 
 

You can download the engine from Untold Engine

Thanks for reading.

Initial documentation for the Untold Engine

Hi guys,

Since releasing the Untold Engine, I've been swamped writing its documentation. Honestly, writing documentation takes a long time, but is those things, that even though we hate to do it, it must be done.

I've broken down the documentation into three sections:

  • Fundamentals
  • Tutorials
  • User's Guide

Fundamentals

In this section, I provide an overview of how the Untold Engine works. I explain every component and provide a lot of illustrations. I also provide labs which should reinforce your understanding of the Untold Engine.

collisiondetection.jpg

Tutorials

In the Tutorial section, I plan to teach you HOW to use the engine so you can create your games. As of today (8/12/18), I have written only one tutorial. It teaches you how to create a character and control it using a joystick.

tut101.gif

User's Guide

The user's guide provides a quick reference to the functionality of the Untold Engine. For example, it gives examples of how to render and translate a character. It also shows how to link an animation, apply external forces and enable collisions.

collisionlab6a.gif

It has only been two weeks since I released the Untold Engine. I'm aware that the amount of documentation currently available is not enough. But trust me, I'm working hard on adding documentation daily.

Click here to review the documentation of the engine.

Don't forget to follow the engine @untoldengine and me @haroldmserrano

Releasing the Untold Engine

After five years and thousands of development hours, I’m finally releasing the Untold Engine.

What is the Untold Engine?

The Untold Engine is a 3D game engine written in C++ and Metal Graphics (API). Its small API makes it ideal for new developers to focus on learning the fundamentals of game development.

I’ve been working on this game engine for the past five years, and the beta version is finally ready.

untoldenginesquarespace.png

Untold Engine Features

The Untold Engine is still in its infancy, and it lacks many features you would find in other mature, commercial game engines.

However, my goal is not to develop the engine with the most features, but the most robust, easy-to-use game engine ideal for you to learn how video games work.

Therefore, the Untold Engine provides the following features:

  • Detailed documentation ideal for novice developers.
  • Labs to put into practice what you have learned.
  • Easy to use API.
  • 3D models ready to use (no need to look elsewhere).
  • A game template to get you developing right away.
  • Develop games for iOS devices and Macs.
  • It's free.

I hope the materials provided, gives you the opportunity to explore, learn and create your games.

What types of games can you develop with the engine?

Here are some small games created with the Untold Engine:

Game Demo 1
 
 
Game Demo 2
 
 
Game Demo 3
 
 

Check out the Untold Engine

Thanks for reading