Panda Engine Overview
Description
A game engine made from scratch using OpenGL and C++. This game engine was made over a period of 8 months as part of the Game Development Advanced Programming course.
Dependencies:
- glfw
- glad
- Assimp
- FMOD
- Nvidia
- entt
- rapidjson
- stb_img
Basic structure
The game engine is built on the concepts of entity component system and is applied using the entt library.
Initializing
Firstly, the engine needs to be initialized. This sets up all the required managers, shaders, windows, inputs etc.
1
2
3
4
5
Engine engine;
if (!engine.Initialize())
{
return 1;
}
Scene
Scene is the over-arching class that contains all the entities. The scene handles updating all the components in an entity and updates them every frame. Creating a scene-
1
2
Scene* scene = new Scene("sceneName");
engine.AddScene(scene);
GameObjects
Gameobjects are the entities that contain components. Simply click on the New Game Object button in the scene UI. Code:
1
GameObject* newGameObject = scene->CreateGameObject("GameObjectName:);
All gameobjects are initialized with the transform component.
Components
Components are the indiviual logics of different features enlisted in the features post. Add a component by right clicking a gameobject and click add component. Code:
1
Component* component = &newGameObject->AddComponent<Component>();
