Skip to content
lSara-MM edited this page Jan 14, 2024 · 2 revisions

Pinky Engine

C++ Game Engine

PinkyEngine - Download GitHub

About Pinky Engine

Pinky Engine is a Game Engine made by Andreu Nosàs Soler and Sara Qiao Martínez Mauri, as part of a college assignment from CITM (UPC) University, Terrassa, for the 3D engines subject during 3rd year of Game Design and Game Development degree.

Pinky

image

Team Members

Sara Qiao Martínez Mauri Andreu Nosàs Soler
Fallout series Mass Effect 2007
lSara-MM - ✧
- GameObjects
- Custom File Format
- Resource Manager
- Scene Serialization
- Engine Windows
- Component Mesh
- Component Material
- UI Components
AndyCubico - ✻
- Frustum & Frustum Culling
- Mouse Picking
- Camera
- Component Transform
- UI Components
- Viewports
- Gizmos
- Play/Stop mode

Core Sub-Systems

↦ GameObject & Component System

Every entity is a _GameObject _ which can contain different type of components (Transform, Mesh, Material, UI, Camera).

When a model is imported to the scene, GameObjects are created recursively for each mesh with Transform, Mesh and Material in case they have embedded textures. An empy GameObject only has Transform but other components can be added afterwards.

↦ Resource Manager

Once a file is imported to the scene for the first time, save and load it from memory if needed again. Delete the resource once it's not used anymore. This way it's not used more memory than needed and the usage of the game is drastically reduced.

↦ Custom File Format

Save and load in an encrypted files to protect and optimize the process of importing and loading files such as textures and 3D models.

↦ Scene Serialization & Time management

Scene's GameObject's structure is saved and loaded as .json using parson library. This method is used in the time management as well. On Play, it saves a temporary file of the current scene and when Stop it loads it back so the changes made during Play time are not saved like in Unity.

↦ Camera

Scene rendering time was reduced with camera culling, camera frustum, and AABB boxes to discard all the meshes outside the camera view.

5. References