{"id":21049888,"url":"https://github.com/mrpicklepinosaur/a9e","last_synced_at":"2025-03-13T23:11:52.918Z","repository":{"id":181619593,"uuid":"430217240","full_name":"MrPicklePinosaur/A9E","owner":"MrPicklePinosaur","description":"ncurses game engine with physics and ecs","archived":false,"fork":false,"pushed_at":"2021-12-15T22:22:20.000Z","size":113,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-20T18:25:15.664Z","etag":null,"topics":["cpp","ecs","game-engine","ncurses"],"latest_commit_sha":null,"homepage":"","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/MrPicklePinosaur.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}},"created_at":"2021-11-20T21:54:39.000Z","updated_at":"2023-07-16T12:27:23.000Z","dependencies_parsed_at":"2023-07-16T14:50:53.993Z","dependency_job_id":null,"html_url":"https://github.com/MrPicklePinosaur/A9E","commit_stats":null,"previous_names":["mrpicklepinosaur/a9e"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrPicklePinosaur%2FA9E","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrPicklePinosaur%2FA9E/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrPicklePinosaur%2FA9E/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrPicklePinosaur%2FA9E/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MrPicklePinosaur","download_url":"https://codeload.github.com/MrPicklePinosaur/A9E/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243495497,"owners_count":20299923,"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","ecs","game-engine","ncurses"],"created_at":"2024-11-19T15:16:22.671Z","updated_at":"2025-03-13T23:11:52.894Z","avatar_url":"https://github.com/MrPicklePinosaur.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# A9E - pinosaur's ascii game engine\n\n**A9E** is a simple ascii game engine that comes bundled with an entity\ncomponent system and a simple physics engine that is capable of rigid body\ncollision detection and response.\n\nthree demo programs (**invaders**, **flappy birb** and a **physics demo**) are\nalso included in this repository to show off how the **A9E** engine can be used\nto create games.\n\n## INSTALLING A9E LIBRARY\n\ninstall the shared library and headers by running:\n```\n$ make liba9e.so \u0026\u0026 sudo make install\n```\n\nuninstall with\n```\n$ sudo make uninstall\n```\n\n## BUILDING FROM SOURCE\n\nthe ncurses library is required. install it depending on your system. then\nto build the engine along with the demos, simply run:\n```\n$ make\n```\n\n## DOCUMENTATION\n\na wiki for **A9E** may or may not be coming in the future.\n\n## TODO\n- [x] entity component system\n- [x] color\n- [ ] terminal beep\n- [ ] utf8 support\n- [x] better way of assigning entity ids\n- [x] user input\n- [x] simple physics\n- [x] collision system\n- [x] collision mask\n- [x] error/exception handling\n- [x] ability to create and destroy entities in update loop\n- [x] renderer + input should really be decoupled from scene\n- [x] build shared library\n- [ ] package for linux distros\n\n## RESOURCES\n\nsome resources that were used when writing this project\n- [ECS design](https://austinmorlan.com/posts/entity_component_system/)\n- [another ECS design](https://www.david-colson.com/2020/02/09/making-a-simple-ecs.html)\n- [physics engine in 5 min](https://www.youtube.com/watch?v=-_IspRG548E)\n- [impulse resolution and collision detection](https://gamedevelopment.tutsplus.com/tutorials/how-to-create-a-custom-2d-physics-engine-the-basics-and-impulse-resolution--gamedev-6331)\n- [paper on impulse resolution](https://research.ncl.ac.uk/game/mastersdegree/gametechnologies/physicstutorials/5collisionresponse/Physics%20-%20Collision%20Response.pdf)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrpicklepinosaur%2Fa9e","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrpicklepinosaur%2Fa9e","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrpicklepinosaur%2Fa9e/lists"}