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.

Developing 2nd mini-game with the Untold Engine

One of the reasons I'm developing mini-games is to test the Untold Engine and its user experience. This is the second mini-game I develop with the perspective of a user and have already found several issues with the API documentation, lack of explanation, and confusion. I'm glad these issues are coming out since my goal is to create an easy to use game engine.

This week I decided to develop a some-what platformer game. As the video below shows, the main character jumps from one roof to another, collecting powerups and avoiding the enemy bullets.

 
 

Let me share with you the development progression of the game.

Preparing the Scene

As usual, the first thing I did was to prepare the scene in Blender 3D. Most of the scene consists of houses and city artifacts. The main character and enemies are located on the roof of the houses. Floating on each roof are beer mugs representing powerups. I also added walking animations to the main character. Here is a screenshot of the initial game scene:

 
Screen Shot 2018-10-07 at 11.42.21 AM.png
 

I exported the scene using the Digital Asset Exporter (DAE). The DAE extracts 3D rendering information and provides it to the Untold Engine for rendering, as shown below:

 
 

Adding Collision Behavior

The next step is to make the main character jump on top of each roof. For that to occur, I enabled collision detection between the main character and the roof of each house. This is shown below:

 
 

Enemies shooting

Next, I wanted each enemy to start shooting the main character, whenever the character is nearby them. Thus, when the character jumps from roof to roof, he is presented with bullets approaching him. At this point, the bullets do not affect the main character.

 
 

Adding Powerup effects

Powerups were then added to the game. As mentioned earlier, beer mugs represent the powerups. As the main character collects them, the Untold Engine particle system is employed, thus creating the effects shown below. Moreover, after a fixed amount of bullet hits the main character, an "I'm dead" animation is played.

 
 

Adding Health Bar

Finally, I added sprites which represent the health bar of the main character. To do so, I used an app called Texture Packer which the Untold Engine interfaces to get spritesheet data.

 
texturepacker.png
 

I also added a text object which keeps track of the number of powerups collected by the main character.

 
 

I'm going to keep developing several mini-games until the end of the year. The purpose is to improve the API User-Interface of the Untold Engine.

Thanks for reading.

Developing 1st mini-game with the Untold Engine

I wanted to write a post describing how easy it is to develop a game with the Untold Engine, the 3D game engine I developed. I wanted to create a simple mini-game that encompasses the features available in the Untold Engine.

For the first game, I decided to develop a game with one character, power-ups, and obstacles. The game design is as follows: the main character must collect all the power-ups. If the character collides with the Obstacles, the game is over. The game is shown below:

 
 

Let's go over the steps required to develop such a simple game.

Create the models and scene

I did not create the 3D models myself, (I don't have an artistic eye). Instead, I bought several 3D models from cgtrade. I then assembled the scene in Blender 3D as shown in the image below.

 
forestgamebig.png
 

Once I was happy with the game scene, I proceeded to export the 3D models and scene using the Digital Asset Exporter (DAE). The Digital Asset Exporter extracts rendering information from a 3D object and provides the data to the Untold Engine.

The video below shows the 3D models in Blender 3D and the DAE being executed. Once the information is available to the Untold Engine, it is rendered on your iPhone or Mac.

 
 

Adding Walking Animation and Motion

I also created a walking animation for the character in Blender 3D. The animation is shown below:

 
guardianwalking.gif
 

The DAE, aside from exporting rendering information, can also import animation data. So, once the animation was ready, I used the DAE to export animation keyframes into the Untold Engine.

I also enable a controller, such as a gamepad, game controller, mouse, and keyboard, to control the movement of the main character.

As the video shows, I also added motion to the "tree trunks" that serve as obstacles in the game.

 
 

Enabling Collision Detection and Particle System

I wanted to create a visual effect whenever the main character eats a power-up. By enabling Collision Detection between the character and the powerup, I can determine whenever a collision between the two objects have occurred. Whenever such collision happens, particle systems are created. Thus, serving as visual cues.

 
 

Adding Knock-out Animation

I decided that it would be a good idea to create an additional animation that would execute whenever the Tree-Trunk hits the character. Like with the Walking animation, the Knock-out animation was created in Blender 3D. The animation is shown below.

 
guardiangameover.gif
 

The animation was exported with the DAE, and it runs whenever the character collides with the tree-trunk, as shown in the video below.

 
 

Adding Text

As I was playing around with the game, I realized that it would be a good idea to keep track of the powerups collected by the character.

To add text to the game, I used an app called Glyph Designer. The Untold Engine process the output from the Glyph Designer (.xml and .png files) and renders a text using the font type.

 
 Glyph Designer

Glyph Designer

 

I decided to add a Text Object which displays the current number of powerups eaten.

Aside from that, the game will show a "Game Over" text whenever a tree-trunk hits the game character.

 
 

Adding a Skybox

Finally, I was not happy with the black background, so I decided to add a skybox. As you can see in the video, the skybox improves the visuals of the game.

 
 

I developed this game in parts throughout several days. However, overall it took less than three hours to develop. The hardest part was finding the right 3D models for the game. However, once I had the models, the Untold Engine made the development of the game easy.

If you are interested in developing a game using the Untold Engine, please visit our website: 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