{"id":20884950,"url":"https://github.com/atennop1/genesis","last_synced_at":"2025-07-18T01:33:34.621Z","repository":{"id":262513463,"uuid":"813222589","full_name":"Atennop1/Genesis","owner":"Atennop1","description":"Simple 2D game engine written in C++ using SDL2 and OOP","archived":false,"fork":false,"pushed_at":"2024-11-21T18:31:35.000Z","size":7860,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T22:51:24.380Z","etag":null,"topics":["cpp","game-development","game-engine","game-engine-2d","gamedev","oop","sdl2"],"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/Atennop1.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-10T17:51:37.000Z","updated_at":"2025-01-31T19:01:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"ff6a030c-0184-4c6b-807d-4fdc4f724fde","html_url":"https://github.com/Atennop1/Genesis","commit_stats":null,"previous_names":["atennop1/genesis"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atennop1%2FGenesis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atennop1%2FGenesis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atennop1%2FGenesis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atennop1%2FGenesis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Atennop1","download_url":"https://codeload.github.com/Atennop1/Genesis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248327862,"owners_count":21085258,"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":["cpp","game-development","game-engine","game-engine-2d","gamedev","oop","sdl2"],"created_at":"2024-11-18T08:12:01.947Z","updated_at":"2025-04-11T01:45:39.823Z","avatar_url":"https://github.com/Atennop1.png","language":"C++","readme":"# Genesis\n\n![badge](https://img.shields.io/static/v1?label=Language\u0026message=C%2b%2b\u0026color=blue\u0026style=for-the-badge)\n![badge](https://img.shields.io/static/v1?label=Platform\u0026message=Windows/Linux\u0026color=red\u0026style=for-the-badge)\n\nGenesis is a simple game engine based on SDL2 and written in modern C++. The engine is used in my own project [**ArkanoidWithoutAnEngine**](https://github.com/Atennop1/ArkanoidWithoutAnEngine), it appeared when I was doing that project and soon decided to separate the system part into a separate solution, like my first small engine. It's supported on both Windows and Linux, and can be connected as a static library or as a dynamic one. It is also written in a strictly OOP style, with minimal distortions.\n\nYou can find information about the structure and components of the engine in [**documentation**](https://github.com/Atennop1/Genesis/blob/master/DOCUMENTATION.md), see usage examples in [**this file**](https://github.com/Atennop1/Genesis/blob/master/examples/README.md) and check installation guide in [**this file**](https://github.com/Atennop1/Genesis/blob/master/INSTALLATION.md)\n\n### Techniques\n- Clean OOP and DI\n- Custom game loop\n- Custom AABB physics simulation\n- Self-written smart pointer\n\n### Tools\n- SDL2 \n- CMake\n\n## Conclusion \nThe project became a big boost for me in understanding the work of game engines, the CMake build system and C++ in general. Thanks to it, I understood many things, faced many problems in development and overcame a long way from a simple vector ball output using the Windows API, to this, albeit small, but full-fledged engine, with its own physics, game cycle, memory management system, which can be assembled for both platforms and as a static and dynamic library. Also thanks to it, I understood how to develop and grow further, so now I am moving forward in a new direction, towards new challenges.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatennop1%2Fgenesis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatennop1%2Fgenesis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatennop1%2Fgenesis/lists"}