Quick Start¶
This page describes the absolute minimum to get your project up and running
Setup¶
To install the engine, please refer to Installation
Coming from a different engine¶
You may have used a game engine before. This engine works differently compared to most engines. Therefore this engine has its own Migration Guide. It is the place to go when you’ve used other engines before.
This guide will help you get familiar with the Zel Game Engine. It explains the differences between popular game engines you might have used before. Helping you change your way of thinking while using this engine.
I can not emphasize enough how much this guide can help you, so please check it out.
User Code¶
There are two projects, the ZelGameEngine
which is the engine itself and Application
which is your game.
The engine will run certain functions from zel_entry.cpp
included in the Application
project.
This is where you can plug your own code in.
Tip
In the Solution Explorer in Visual Studio you can click on “Show All Files” to see the folders with the files. Do this for all the projects in the solution. It keeps things more organized.
Initialization¶
The zel_initialization
function is the place to create your level.
Create entities and add components to those entities. Then register a system to process those components.
Logic¶
The function zel_logic
is the place where systems get executed.
The systems process components and may change their data.
It takes delta_time
as a parameter.
This is the passed time between the previous and current frame.
The for-loop inside zel_logic
iterates over all registered systems and executes them.
Note
The engine expect you to write code in systems. This means you don’t write code directly in zel_logic
.
Warning
zel_logic
may not be registered as a system through the zel_level_register_system
function. This would create an infinite loop.
Render¶
Of course zel_render
is the place where everything gets rendered.
This function should process all render data.
If you are unsure how the function does this, you may want to leave the code as is.
Logic and Rendering is seperated here because of the plans to multithread those functions in the future. It also forces you to think modulair and can help in certain situations to maintain a pleasant gaming experience.
Termination¶
When the user wants to close the game zel_termination
gets called.
If you need to free any memory, you would be able to do so here.
Including¶
All functions and data containers that can be used in your application are exposed through zel_api.h
which is always included in zel_entry.cpp
.
When you want to use engine specific functions inside your own files you only need to include zel_api.h
.
To see what exactly is available in the Zel API, please look at the zel_api.h
file itself in the ZelGameEngine
project.
What’s Next?¶
Now that you have a working project and a basic understanding of the engine’s structure, you can check out the Examples.
If you’ve used a game engine before, you may want to check out the Migration Guide. It will help you better understand what this engine does differently from the engines you are used to.