Getting Started

0. Understand the Limitations

GTGameEngine is very early in development and currently being developed by just one guy. Expect many bugs and lots of missing features and functionality.

Of particular importance is that I am not currently concerned with backwards compatibility, so don't do anything serious for the time being. If you just can't wait and want to jump right in, you have the following options:

  • Stay on the old version (definately not recommended)
  • Wait until I decide to worry about it
  • Pitch your case and try to convince me (probably wouldn't take much)

Currently, you will need a GPU that supports OpenGL 2.1 and the following extensions at a minimum:

  • EXT_framebuffer_object or ARB_framebuffer_object
  • ARB_texture_rg
  • ARB_texture_float

The engine has been tested on Windows Vista and Windows 7 64-Bit. The 32-bit build should work, but you will need to build it yourself from source.

The engine runs on my Linux Mint 13 64-Bit machine, but this is not my main platform. There may therefore be some annoyances with it that I just haven't noticed yet. If you have any problems at all, let me know.

1. Download

If you're new to GTGameEngine it'll be best to start off with the sandbox. If you're feeling adventurous feel free to download the source and build your own application for maximum flexibility. You're on your own if you take that option. Here, we are going to focus on the sandbox.

Download Sandbox

After you've downloaded, extract the package into an empty folder with an appropriate name.

2. Game Structure

First of all, know that the sandbox is your game. The editing tools are built into and part of your game.

All assets are stored in "data" directories. These directories are configured in the "config.lua" file which is located in the same directory as the executable.

The image above is all that's contained in the sandbox download package.

The sandbox will execute a script ("data/sandbox-config.lua") on startup. From this script you can configure the startup scene (among other things). You will usually want to set the startup scene to your game's main menu.

The assets located in "data/engine" are used by the engine and will be needed by every game. The sandbox has it's own set of assets in "data/sandbox", but you are free to remove anything from here that's not needed.

3. Development

Scenes (or levels, maps, etc) are built using the engine's built-in editing tools. Every GTGameEngine game has the editor built into the executable. You can toggle the editor using Shift+Tab.

Every asset has it's own sub-editor. Think of the editor as a container for the sub-editors of each type of asset. When an asset is opened in the editor, it will be associated with it's own tab.

In the image above, we have two assets open: a model called "default.dae" and the sandbox intro scene called "intro.gtscene". You can switch between assets by just cycling between their tabs. You can have multiple scenes open at a time, too.

The scene editor is the most important editor. In addition to the game world(s), menu's (such as your main menu) are implemented as scenes. The idea is that you add scene nodes to the scene, and then attach components to each scene node. Scripts can be attached to scene nodes via the Script component. Scripts then handle events posted by the engine.

Importing assets is done by simply placing them into the data directory. The editor will automatically pick them up. Any conversion to native formats or whatnot are done in the background.

Models are converted to the engine's native format (.gtmodel) which will be placed in the same directory as the source model. They will be automatically synchronized when the source model is changed. Come distribution time, you can simply remove the oringal source models.

4. Deployment

When you've finished developing your game, you can set the startup scene by editing "data/sandbox-config.lua" and changing the Game.StartupScene property. You'll probably want to set this to your main menu.

The engine uses it's own model format in the background with the .gtmodel extension. You may want to consider removing your source models (leaving only .gtmodel files) manually before deploying. This is not strictly required, however.

The editor includes a very bare bones packaging tool (Game -> Package for Distribution). You can use this for packaging, but be aware that this tool is very basic and might have some issues. Of particular note, there may be some subtle differences when packaging for different platforms. Be sure to test properly if you use this tool.