{"id":16208872,"url":"https://github.com/ta-david-yu/dyengine","last_synced_at":"2025-03-19T08:30:58.614Z","repository":{"id":53309745,"uuid":"312132427","full_name":"ta-david-yu/DYEngine","owner":"ta-david-yu","description":"Just a 2D hobby game engine written in C++. The project is still in an early stage and the development has been halted. I wish to continue it someday. See the trello board for more upcoming features \u0026 progress.","archived":false,"fork":false,"pushed_at":"2024-12-16T16:46:05.000Z","size":30536,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-17T05:11:21.810Z","etag":null,"topics":["entity-component-system","game","game-development","game-engine","gamedev","opengl","sdl","sdl2"],"latest_commit_sha":null,"homepage":"https://trello.com/b/CN6KKHuI/dyengine-reboot","language":"C++","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/ta-david-yu.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":"2020-11-12T01:14:13.000Z","updated_at":"2024-12-16T16:46:09.000Z","dependencies_parsed_at":"2024-12-06T23:28:39.613Z","dependency_job_id":null,"html_url":"https://github.com/ta-david-yu/DYEngine","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ta-david-yu%2FDYEngine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ta-david-yu%2FDYEngine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ta-david-yu%2FDYEngine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ta-david-yu%2FDYEngine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ta-david-yu","download_url":"https://codeload.github.com/ta-david-yu/DYEngine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244389732,"owners_count":20444993,"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":["entity-component-system","game","game-development","game-engine","gamedev","opengl","sdl","sdl2"],"created_at":"2024-10-10T10:26:14.677Z","updated_at":"2025-03-19T08:30:53.597Z","avatar_url":"https://github.com/ta-david-yu.png","language":"C++","readme":"![DYE_logo_outlined](https://user-images.githubusercontent.com/8101387/219255174-fdb29aa7-6c08-42ca-9365-a86e0d774d94.png)\n# DYEngine\nDYEngine is a WIP 2D game engine (with the possibility of 3D rendering).\n\n## Modules\nDYEngine is divided into 2 sub-project modules:\n* **DYEngine**: The core of the game engine. It includes everything you need to make a code-only game.\n* **DYEditor**: It provides the ECS object model using entt \u0026 an editor on top of that for editting scenes \u0026 entities. It comes with a code generation tool for generating type information of user-defined components \u0026 systems for editor type registry. The module is still in an very early stage.\n\n## Environment Setup\n### Not really a guide, just how I normally use this engine. Most of the following tools come with CLion as bundles\n- **IDE**: CLion (CMake 3.17+)\n- **Tested Compilers**: \n  - GNU 11.2.0 (MinGW)\n  - MSVC 19.34.31937.0\n  - Clang 15.0.1 (MSVC compatible)\n\nRight now I am using CLion to configure \u0026 build the project.\nIn order to support multiple compilers, I had to include two versions of SDL2: MinGW \u0026 MSVC versions, which I downloaded from [SDL2 repository](https://github.com/libsdl-org/SDL/releases).  \nI did some reorganizations to the SDL2 folders so whether you use MinGW or MSVC (both cl.exe and clang-cl.exe) to compile, the build system will still be able to find the correct version of library to link.\n\n## Library Dependencies (included in the project)\n### DYEngine\n- **SDL2** (2.26.5)\n- **glad**\n- **glm**\n- **stb_image**\n- **Dear ImGui**\n- **ImGuizmo**\n- **raudio**\n### DYEditor\n- **EnTT**: use as the main object model in DYEngine. I might implement my own ECS framework if time allows it.\n- **tomlplusplus**: most of the custom text-based files in DYEditor will be stored as toml (i.e. scene/level files, asset meta files).\n### DYEditor Code Generator\n- **fmt**: for easier and more efficient source code generation process. Will replace it with c++ std::format library once it's widely supported by different compilers. \n### Pending (to include/included but not used)\n- **OpenAL-Soft**: Alternative for 3D audio. Need more research.\n\n## Showcase\nThe project is still in a very early stage, but I am constantly working on it.  \nHere are some videos that might help you get the \"feel\" of DYEngine:\n  \n**DYEngine \u0026 Editor Feature Highlights 2023**  \nThis video includes some of the features of DYEngine \u0026 DYEditor.  \n[![Watch the video](https://img.youtube.com/vi/ZrwCcynemSA/maxresdefault.jpg)](https://youtu.be/ZrwCcynemSA)  \n\n**Main Battle Turtle**  \nI made the game with two of my friends (Anton Sagel \u0026 Trey Ramm) during 2023 CGL Turtle Game Jam.\nIt's a really good opportunity to test out the game engine.  \n[![Watch the video](https://img.youtube.com/vi/CldpJoQgW-Q/maxresdefault.jpg)](https://youtu.be/CldpJoQgW-Q)  \n\n**DYE Tech Demo**  \nI've also made a small tech demo game collection with DYEngine, which you could check it out here - [DYE-Tech-Demo](https://github.com/ta-david-yu/DYE-Tech-Demo).  \n**Warning**: the code was made within 1 week (I was crunching on it for the goal of showcasing it at our end-of-semester showcase party), so it is very dirty/unorganized.  \n[![Watch the video](https://img.youtube.com/vi/0tD2ZouCuN4/maxresdefault.jpg)](https://youtu.be/0tD2ZouCuN4)  \n\n## Resources\nIt wouldn't have been possible to implement this project without the help of the internet!  \nHere are some resources that I use to make it happen! The list is non-exhaustive of course:  \n* **Hazel engine**: https://github.com/TheCherno/Hazel\n* **Halley engine**: https://github.com/amzeratul/halley\n* ...and a lot more to be added.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fta-david-yu%2Fdyengine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fta-david-yu%2Fdyengine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fta-david-yu%2Fdyengine/lists"}