Harold Serrano

View Original

What tools do I need to develop a game engine?

In a previous post, I gave you a comprehensive list of books required to develop a game engine. I figure that you may also be interested in the tools I use to build a game engine. So I wrote this post to share with you the tools I use.

Xcode

From the start, I decided to develop a game engine compatible with Apple devices. Thus, the IDE (Integrated Development Environment) I use is Xcode.

I love Xcode. I've never had any complaints about it. I've heard several people who hate this tool, but I can't relate.

Git (Terminal and GUI)

A project as complex as a game engine requires a Version Control system. My tool of choice is Git. It is simple to use, yet powerful.

I'm embarrassed to share this story, but it is true. When I started development of the game engine, back in 2013, I used Dropbox as my Version Control System. Yep, you read that right. Moreover, when I started using Git, I made the mistake of committing all changes directly into the Master branch. I never made use of Git's branching feature.

But that is the past. I learned from my mistakes. I evolved as a developer :).

You can interact with Git through the terminal or the GUI. I tend to use both methods. Although using the Git GUI is a lot easier, I do recommend to learn to use Git through the terminal; It will force you to understand Git better.

Should you use the Git terminal or GUI?

BeeApp

I enjoy a minimalist lifestyle. And the BeeApp suits me perfectly. BeeApp keeps track of your Git issues. It allows you to add an Issue to Git, change its tags and add comments right from the GUI. The app sorts your Issues and assigns them to a particular list depending on their labels.

Here is a screenshot of my issues sorted in Bee.

I don't have to log into my Github account every time I want to update the progress of an issue or lose track of which item to work on next. I love this app. It combines the beauty of Todoist and Git Issues.

Sublime Text

Oh, Sublime Text, what a beauty you are.

To export 3D models into a game engine requires the development of a Digital Asset Loader (DAL). The DAL's primary duty is to read the attributes of the 3D model (vertices, Normal vectors, UVs, etc.) and export it into a file. The game engine then reads this file and renders the 3D model.

A Blender-Python script is used to read and export the model's attribute. And Sublime Text's beautiful aesthetics makes writing the DAL a pleasure.

Before Sublime Text, I used Eclipse, PyCharm and Blender's script editor, but none compare to Sublime Text.

Blender

Believe it or not, game engine development does not mean you spend 100% of your time coding; there is some artwork involved. 75% of my time is spent coding in C++. The other 25% is spent modeling 3D characters and writing Blender-Python scripts in Blender. If you are curious about this fact, read the following article.

The tool I use to model 3D characters is Blender 3D. Blender 3D is a modeling software used by game artists.

There are other modeling 3D tools on the market. However, Blender is free, open-sourced, and there is a massive community around it. Moreover, there are plenty of youtube tutorials; which is very helpful when you are starting out.

Hope this helps