Post

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>();

Roadmap:

This post is licensed under CC BY 4.0 by the author.
-->