{"id":20562487,"url":"https://github.com/martonban/BagEngine","last_synced_at":"2025-09-25T21:31:38.249Z","repository":{"id":151838189,"uuid":"622598747","full_name":"martonban/BagEnginePOC","owner":"martonban","description":"This is my fist 2D game engine in Java and OpenGL based on a tutorial series","archived":false,"fork":false,"pushed_at":"2025-01-15T23:32:34.000Z","size":13347,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-16T00:11:40.131Z","etag":null,"topics":["game-engine","glfw","glsl","graphics","imgui","java","joml","lwjgl","openal","opengl"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/martonban.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-02T15:31:09.000Z","updated_at":"2025-01-15T23:32:35.000Z","dependencies_parsed_at":"2023-10-12T07:01:19.254Z","dependency_job_id":"82bcd6df-ea9f-4f0a-8d78-0429903cd18d","html_url":"https://github.com/martonban/BagEnginePOC","commit_stats":null,"previous_names":["martonban/gameenginelwjgltutorial"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/martonban%2FBagEnginePOC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/martonban%2FBagEnginePOC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/martonban%2FBagEnginePOC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/martonban%2FBagEnginePOC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/martonban","download_url":"https://codeload.github.com/martonban/BagEnginePOC/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234258320,"owners_count":18804068,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["game-engine","glfw","glsl","graphics","imgui","java","joml","lwjgl","openal","opengl"],"created_at":"2024-11-16T04:11:14.208Z","updated_at":"2025-09-25T21:31:38.245Z","avatar_url":"https://github.com/martonban.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bag Engine\nBag Engine is a 2D game engine built with Java and OpenGL, utilizing industry-standard libraries such as ImGui, Box2D, and GSON.\n\n# Credits\nThis project was developed based on this [course](https://www.youtube.com/watch?v=VyKE7vz65rY\u0026list=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.\n\n\n# Libraries/Technologies:\n- Maven: Build System\n- LWJGL: For window handling, graphics and math libraries.\n- Box2D: For Physics\n- GSON: For serialization/deserialization\n- ImGUI: For UI elements\n\n# Functionalities:\n## Editor and Runtime \nBag 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. \u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n![editor2](https://github.com/user-attachments/assets/36513b81-04e7-4583-8ea5-05d21b99fbb3)\n\n\n## ECS System\nThe 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. \u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n![ecs2](https://github.com/user-attachments/assets/f59f5f8a-82f2-431c-8e27-0a6d4fa45080)\n\n## Physics System\nThe 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. \u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n![physics2](https://github.com/user-attachments/assets/3b892c6d-d840-4e36-99af-9a1f3a54272c)\n\n## Docking \nWith 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. \u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n![docking](https://github.com/user-attachments/assets/ecffaa47-ccd3-4412-bb4a-a0e23f72fd1f)\n\n## Asset Browser\nThe engine features an Asset Browser, which allows users to browse through tiles, prefabs, and audio files. \u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n![assets](https://github.com/user-attachments/assets/ed6c4e4b-da8e-4213-b71a-2a2b83eddb10)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmartonban%2FBagEngine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmartonban%2FBagEngine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmartonban%2FBagEngine/lists"}