HelheimEngine is a custom-built game engine developed in C++ and OpenGL for Chrysalis. Built specifically for the needs of Chrysalis, HelheimEngine showcases a balance between technical innovation and efficiency, delivering a powerful solution to meet the project's demanding requirements.
Download Zip file in the latest release, unzip it and execute the Helheim_Engine.exe for the engine or Chrysalis.exe for the game.
Programmers
- Jordi Joan Alonso Llovet LinkedIn
- Jordi Bach Balcells LinkedIn
- Marc Belmonte Juliachs LinkedIn
- Jaime Coronado LinkedIn
- Ariadna Cortés i Puig LinkedIn
- Marc Gabernet Rodríguez LinkedIn
- Oriol Gallego Vazquez LinkedIn
- Moises Garcia Jimenez LinkedIn
- Carlos García Segura LinkedIn
- Xinyu Jiang LinkedIn
- David Longarón Lorente LinkedIn
- Giovanni Matera LinkedIn
- Oscar Mellado Arbelo LinkedIn
- Adrián Mirabel Martínez LinkedIn
- Jordi Nieto Maldonado LinkedIn
- Oscar Pellicé Mas LinkedIn
- Josep Adrià Vilaplana Miret LinkedIn
Artists
- Robin Aitken LinkedIn
- Natalia Cabrera LinkedIn
- Phillip Cherukara LinkedIn
- Roc Feijoo Massot LinkedIn
- Kristina Lyudmilova Stoyanova LinkedIn
- Joan March Martos LinkedIn
- Carlos Núñez Galindo LinkedIn
- Laia Ruiz Royo LinkedIn
- Alex Alonso Torrell Corrales LinkedIn
- 3D scene viewer with multiple debug options
- Loading and Saving of scenes
- Import of GLTF models and DirectXTex textures
- Resource management of imported files
- Model animation with state machines
- VFX system
- Fmod audio support
- Rendering
- Geometry draw with batching
- Deffered rendering
- GPU Culling
- G-buffer materials
- Image Based Lightning for ambient lights
- Post-processing (Bloom, Volumetric lights, Height fog)
- Screen Space Ambient Occlusion
- C++ Scripting system for gameplay
- AI pathfinding and navigation support.
- UI Canvas creation
-
Camera
- Hold Right-Click and use “WASD” for a fps-like movement and free look around must be enabled.
- Use “Q” and Use “E” for moving the camera Up and Down.
- While Right clicking, move the mouse in any direction for free look.
- Use the mouse Wheel for zooming in and out.
- Left ALT + Left Click to Rotate de center of the scene.
- Holding SHIFT duplicates de movement speed.
-
Project Panel
- Dragging a .gltf file inside the engine should import the file into project panel. (Click Refresh if the new asset is not appearing). All model files (.gltf, .bin, textures...) should always be in the same folder.
- Dragging an asset inside the scene should create a GameObject in the Hierarchy panel with an meshRenderer component.
-
Hierarchy Panel
- Right click in hierarchy panel will open a popup where you can create, duplicate and delete a gameobject.
- Dragging a GameObject into another GameObjet will set it as the child of the second object.
-
Inspector Panel
- Click Button "Add Component" in the inspector panel when a gameObject is selected to add a new component.
- Every gameObject has a transform tha can be modified using the transform section in the inspector panel.
- The name of a gameObject can be modified in the inspector panel.
-
Guizmo
- W to move object.
- E to Rotate object.
- R to scale object.
-
Main Menu bar
- File
- Save Scene
- Load Scene
- Quit
- View
- QuadTree
- CheckBox to enable or disable Frustum Culling (Disabled by default).
- CheckBox to show QuadTree in the Scene.
- Shows QuadTree structure (can be updated using Refresh button).
- Debug
- Activate or Deactivate Grid and world Guizmo.
- QuadTree
- Tools
- View frame data and timer values.
- Navemesh controller where you can edit parameters.
- Scene debug options (Draw colliders and bounding boxes, change render type).
- View Fmod audio memory usage and active events.
- Window
- Panels
- From here every panel of the engine can be opened or closed.
- Help
- About
- Show License and some information about the Engine.
- About
- Panels
- Scripting
- .h files have to be CREATED from VS in the path Engine\Game\Assets\Scripts.
- Use the TestScript.h and .cpp files as an example to use and create scripts. It is mandatori to create the extern function CreateTestScript.
- When the .h file is created u have to drag&drop it into the engine to add it as a resource.
- If it does not compile because linking problems try to rebuild the Scripting project.
- File