Skip to content

Pak-Engine_v.0.3

Latest

Choose a tag to compare

@Loproxi Loproxi released this 15 Jan 22:59

Pak-Engine

Pak-Engine is a game engine in C++ currently being developed for the Engine Development subject project for the CITM Bachelor's degree in Video Game Design and Development. In which we have to develop a game engine under 4 months.

Creator

The engine is being developed by:

Install

  • Download the most recent release
  • Extract the .zip
  • Click on the Pak-Engine folder and Execute Pak-Engine.exe

Features

Pak-Engine v.0.3:

  • Particle System Component

  • Particle rendering with shaders

  • Billboard Component

  • Screen Align billboard,World Align billboard & Axis Align billboard

  • Bugs solved

  • Transparency On gameobjects

Particle Sub-System

As previously mentioned, Pak-Engine has a subsystem implemented that allows the user to spawn particles.

This Subsystem works like this: First we have a particle with all the variables necessary, this particle belongs to an Emitter that has vector of particles, and this emitter belongs to the Particle System Component that has a vector of emitters.

The particle is a struct with variables.

The emitter handles where each particle should be on each frame and then, draws it.

Going into further detail, the emitter instantiates all the particles at the same time in order to pre allocate all the particles. That way there’s no need for worrying about memory because all the particles are already allocated and there won’t be more pushbacks. Even if the particles being emitted are superior to the ones pre allocated, then it will overwrite the first one emitted.

The component Particle System is in charge of Updating and Drawing of each emitter as well as adding a billboard component to simulate that the particles are 3D when the particles are a simply 2D plane.

The user can set up the particle as he wishes as well as the type of billboard the particles are going to use.

Controls:

Camera:

  • Right Click on scene window to rotate the camera

  • Right Click on scene window + W/A/S/D to move the camera

  • On scene window press Q/E for going UP/DOWN

  • Hold Shift + W/A/S/D to move faster

Hierarchy:

  • In Hierarchy window, RightClick opens a pop-up that creates primitives

  • In Hierarchy window, LeftClick on a gameObject in order to select it

  • In Hierarchy window, LeftClick + Drag Mouse on a gameobject into another to change a gameobject parent or child

  • In Hierarchy window, LeftClick on a gameobject selected in order to delete it

  • In Hierarchy window, LeftClick on empty hierarchy to create primitives or empty

Drag And Drop:

  • This engine can handle the import of an fbx.

  • This engine handles the import of a PNG/DDS convert it into a texture and apply it on a gameobject, but the gameobject has to be selected first.

License

MIT License

Copyright (c) 2022 Pol Rius Banús

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.