https://github.com/hpn4/hengine
A small (unoptimized) game engine written in Java (with LWJGL)
https://github.com/hpn4/hengine
gameengine glsl java lwjgl3 opengl
Last synced: 8 months ago
JSON representation
A small (unoptimized) game engine written in Java (with LWJGL)
- Host: GitHub
- URL: https://github.com/hpn4/hengine
- Owner: Hpn4
- Created: 2024-02-19T22:09:12.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-02-19T22:12:13.000Z (about 2 years ago)
- Last Synced: 2025-03-05T22:44:21.447Z (about 1 year ago)
- Topics: gameengine, glsl, java, lwjgl3, opengl
- Language: Java
- Homepage:
- Size: 26 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# HEngine
A simple and terribly inefficient game engine written in Java (using LWJGL) during my school years. It was a fun project to work on and I learned a lot from it. It's not really useful for anything, but I'm keeping it here for sentimental reasons.
## Features
I implemented a lot of features in this engine, but most of them are not very efficient.
I was still learning about 3D rendering at the time, so I didn't really care about performance.
I was more interested in learning how to implement these features than making them efficient.
Here are some of the features I implemented:
Lights:
- Directional lights
- Point lights
- Spot lights
Meshes:
- Support animated models
- Support most common file formats (all supported by Assimp)
- Basic support of transparency
VFX and advanced rendering techniques:
- Particle systems
- Fog
- Skybox
- SSAO
- Bloom
- Shadows
- Decals
Optimization:
- Frustum culling
- Mesh Instancing
- GBuffers (deferred rendering)
## Screenshots

## Technical details
I used LWJGL with the following libraries:
- Assimp for model loading
- STB for image loading
- JOML for math
- NanoVG for UI rendering
- OpenGL for rendering
- GLFW for window management
- OpenAL for audio
I also create a small lib on top of GLFW and NanoVG to create a swing like UI system.