{"id":25311878,"url":"https://github.com/xapier14/gengine-r","last_synced_at":"2026-04-25T22:31:26.439Z","repository":{"id":52122853,"uuid":"353657042","full_name":"Xapier14/GEngine-R","owner":"Xapier14","description":"2D Game Engine built on SDL2","archived":false,"fork":false,"pushed_at":"2022-02-07T06:30:36.000Z","size":1433,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-11T22:12:05.826Z","etag":null,"topics":["2d-game-engine","dotnet","gengine","sdl2","sdl2-cs","velcrophysics"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Xapier14.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-04-01T10:10:42.000Z","updated_at":"2024-02-26T18:33:40.000Z","dependencies_parsed_at":"2022-09-08T10:25:05.717Z","dependency_job_id":null,"html_url":"https://github.com/Xapier14/GEngine-R","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Xapier14/GEngine-R","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xapier14%2FGEngine-R","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xapier14%2FGEngine-R/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xapier14%2FGEngine-R/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xapier14%2FGEngine-R/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Xapier14","download_url":"https://codeload.github.com/Xapier14/GEngine-R/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xapier14%2FGEngine-R/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32279652,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"ssl_error","status_checked_at":"2026-04-25T18:29:32.149Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["2d-game-engine","dotnet","gengine","sdl2","sdl2-cs","velcrophysics"],"created_at":"2025-02-13T14:55:07.972Z","updated_at":"2026-04-25T22:31:26.424Z","avatar_url":"https://github.com/Xapier14.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GEngine | Re\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FXapier14%2FGEngine-R.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FXapier14%2FGEngine-R?ref=badge_shield)\n\nA 2D Game Engine built on SDL2.\nA Rewrite of an old project of mine.\n\n*This is a __work-in-progress__ project, expect no support.*\n\n## Important Notes:\n\n- Use Direct3D or Software mode only as OpenGL will crash the engine when loading textures.\n- Using Metal is still untested.\n- Behavior is sometimes inconsistent depending on what GPU is being used.\n\n## Getting Started\n1. Clone the project and initialize the submodules\n    ```\n    git clone --recurse-submodules https://github.com/Xapier14/GEngine-R.git\n    ```\n1. Run the script `build.bat` to build the project.\n1. Create a new **.NET 5+** console project.\n1. Add the GEngine-R project to your solution file.\n1. Create a project reference with your game project to the GEngine-R project.\n1. Copy and paste the program boilerplate to your `program.cs`.\n    ```c#\n    using System;\n    using System.Threading;\n\n    using GEngine;\n    using GEngine.Engine;\n\n    namespace \u003cyour_namespace\u003e\n    {\n        public class Program\n        {\n            private static GameEngine _game;\n            public static void Main(string[] args)\n            {\n                // create the engine\n                _game = new();\n                \n                // change engine properties here\n                _game.Properties.Title = \"GAME_TITLE\";\n                _game.Properties.EnableFramelimiter = true;\n                _game.Properties.TargetFPS = 60;\n                _game.Properties.TargetTPS = 128;\n                _game.Properties.WindowResolution = new(800, 600);\n                _game.Properties.InternalResolution = new(800, 600);\n                _game.Properties.HideConsoleWindow = false;\n                _game.Properties.EnableDebug = true;\n                _game.Properties.RenderScaleQuality = RenderScaleQuality.Linear;\n                _game.Properties.AllowResize = false;\n                _game.Properties.AutoOffset = true;\n\n                /*  Handle Window Close\n                 *  Set AllowClose to true to enable interaction with the close window button.\n                 *  Set HandleClose to true to use the default behavior for the close button.\n                 *  The default behavior will be to call GameEngine.ForceStop(). */\n                _game.AllowClose = true;\n                _game.HandleClose = true;\n\n                /*  Handle Window Resize\n                 *  Setting this to true results in the internal resolution\n                 *  being set to what the new window size is.\n                 *  Recommended to be set to false if your game is using a fixed resolution (retro remakes).\n                 *  \n                 *  NOTE:\n                 *  If you are using Gerui, set this to false; if not, ignore this.\n                 *  Hook the GameEngine.OnResize event to WindowController.WindowResizeEventHook.\n                 *  Gerui handles resize events differently for some components. */\n                _game.HandleResize = false;\n\n                // start game\n                _game.Start();\n\n                // load resources\n                _game.ResourcesLoaded = true;\n                \n                // keep alive\n                while (_game.Running)\n                    Thread.Sleep(500);\n            }\n        }\n    }\n    ```\n1. Create \u0026 set your configuration to either x86 or x64 and use the appropriate native libraries.\n## To-Do:\n- [x] Base Engine Loop\n- [x] Frame/Logic Timing\n- [x] Input Handler\n- [x] Object/Scene based rendering\n- [x] Object/Instances\n- [x] Audio Module\n- [x] Resources/Texture loading\n- [x] Resources/Audio loading\n- [x] Resource Manager\n- [x] GameObject Event System\n- [x] Scene Instancing\n- [x] Physics System (Incomplete)\n- [x] Animations\n- [x] Object Texture Offsets\n- [x] TCP Server/Client\n- [x] Dynamic FPS \u0026 TPS Offset adjustment\n- [ ] CLI Dev Kit\n- [ ] Visual Studio Item Templates (GameObject \u0026 Scene)\n- [ ] Visual Studio Project Template\n\n## Known Issues\n- OpenGL \u0026 Textures with transparency.\n- Memory leak on Scene reinstancing.\n- Missing checks on adding GameObjects to scenes.\n- Initial RenderClearColor not being set on OpenGL backend.\n- Only WAV files are supported for audio.\n- Missing dependency check on launch\n\n## Dependencies\n* SDL2\n* SDL_Mixer\n* SDL_Image\n* SDL_TTF\n* SDL2-CS.Core\n* Genbox.VelcroPhysics\n* .Net 5.0 ([x86](https://dotnet.microsoft.com/download/dotnet/thank-you/runtime-5.0.6-windows-x86-installer))\n\n## License\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FXapier14%2FGEngine-R.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2FXapier14%2FGEngine-R?ref=badge_large)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxapier14%2Fgengine-r","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxapier14%2Fgengine-r","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxapier14%2Fgengine-r/lists"}