https://github.com/martonban/BagEngine
This is my fist 2D game engine in Java and OpenGL based on a tutorial series
https://github.com/martonban/BagEngine
game-engine glfw glsl graphics imgui java joml lwjgl openal opengl
Last synced: 6 months ago
JSON representation
This is my fist 2D game engine in Java and OpenGL based on a tutorial series
- Host: GitHub
- URL: https://github.com/martonban/BagEngine
- Owner: martonban
- Created: 2023-04-02T15:31:09.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-01-15T23:32:34.000Z (about 1 year ago)
- Last Synced: 2025-01-16T00:11:40.131Z (about 1 year ago)
- Topics: game-engine, glfw, glsl, graphics, imgui, java, joml, lwjgl, openal, opengl
- Language: Java
- Homepage:
- Size: 12.7 MB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Bag Engine
Bag Engine is a 2D game engine built with Java and OpenGL, utilizing industry-standard libraries such as ImGui, Box2D, and GSON.
# Credits
This project was developed based on this [course](https://www.youtube.com/watch?v=VyKE7vz65rY&list=PLtrSb4XxIVbp8AKuEAlwNXDxr99e3woGE). Thus, the source code is not mine but belongs to [GamesWithGabe](https://www.youtube.com/@GamesWithGabe). This project serves as a learning platform for me, through which I have gained an understanding of how game engines work.
# Libraries/Technologies:
- Maven: Build System
- LWJGL: For window handling, graphics and math libraries.
- Box2D: For Physics
- GSON: For serialization/deserialization
- ImGUI: For UI elements
# Functionalities:
## Editor and Runtime
Bag Engine includes an integrated editor that allows users to create and modify their own levels, with a built-in serializer handling the saving process. By pressing the 'Play' button, users can launch a debug mode, which effectively serves as the engine's runtime.

## ECS System
The engine features a classic Entity-Component-System (ECS) architecture. This allows each scene to contain multiple game objects, each composed of various components. These components define and modify the behavior of their respective game objects.

## Physics System
The engine includes a physics system powered by the Box2D library. This enables the creation of dynamic game objects that move based on real-world physics simulations.

## Docking
With the help of the industry-recognized and widely used ImGui library, I am able to provide a highly dynamic user interface. As a result, all GUI elements are fully customizable and can be tailored to the user's specific needs.

## Asset Browser
The engine features an Asset Browser, which allows users to browse through tiles, prefabs, and audio files.
