{"id":13571769,"url":"https://github.com/SergiusIW/gate","last_synced_at":"2025-04-04T08:32:26.080Z","repository":{"id":62439331,"uuid":"111363541","full_name":"SergiusIW/gate","owner":"SergiusIW","description":"A specialized 2D game library","archived":false,"fork":false,"pushed_at":"2023-03-19T14:02:34.000Z","size":277,"stargazers_count":313,"open_issues_count":5,"forks_count":23,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-04-26T20:07:11.928Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SergiusIW.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}},"created_at":"2017-11-20T04:57:55.000Z","updated_at":"2024-03-20T01:47:24.000Z","dependencies_parsed_at":"2024-01-07T21:12:44.646Z","dependency_job_id":"666fbc0a-c777-4e3d-adcd-d98e390c58da","html_url":"https://github.com/SergiusIW/gate","commit_stats":{"total_commits":122,"total_committers":3,"mean_commits":"40.666666666666664","dds":"0.016393442622950838","last_synced_commit":"82eac020b9903820630aeec788452ea7a2c73461"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SergiusIW%2Fgate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SergiusIW%2Fgate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SergiusIW%2Fgate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SergiusIW%2Fgate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SergiusIW","download_url":"https://codeload.github.com/SergiusIW/gate/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247147804,"owners_count":20891765,"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":[],"created_at":"2024-08-01T14:01:05.962Z","updated_at":"2025-04-04T08:32:25.612Z","avatar_url":"https://github.com/SergiusIW.png","language":"Rust","readme":"# Gate\nGate is a game development library tailored to 2D pixel-art games, written in Rust.\n\n### Games\n\nI've made a couple of games using Gate, which are playable through a web-browser\nthanks to Gate's WebAssembly support.\n\n* [Adventures of Pascal Penguin](http://www.luduminis.com/pascal/)\n* [Chirperjax](http://www.luduminis.com/chirperjax/) ([source](https://github.com/SergiusIW/chirperjax))\n\n### Crate\n\nThe Rust crate for Gate can be found [here](https://crates.io/crates/gate),\nand the crate for Gate Build can be found [here](https://crates.io/crates/gate_build)\n\n### Documentation\n\nDocumentation for Gate can be found [here](https://docs.rs/gate/),\nand for Gate Build [here](https://docs.rs/gate_build/)\n\n### Description\n\nWhen creating a game, it is good practice to make a layer,\nspecific to one's needs, that separates the\ngame logic from the resource management, rendering, audio, and other interfacing\nthat is needed for a game.\n\"Gate\" is the layer that I created for this purpose with my personal game development endeavors,\nand I decided to make it public.\nIt should be noted that this library was developed for my own personal needs,\nand is not meant to be a general purpose game development library.\nThis manifests itself mostly with the renderer, which is made specifically for 2D pixel art.\nIf your game has similar needs or you just want to get something going quickly,\nthen this library is for you.\nIf you have slightly different needs, then you can still use this code as a reference point.\n\nUsers of this crate should create a build script in their project,\ninvoking functionality from the sibling crate \"gate_build\".\nThis will generate texture atlases and enums to reference assets.\nSee the \"gate_build\" crate for more details.\n\n### Example\n\nFor a full example, see \u003chttps://github.com/SergiusIW/gate/tree/master/example\u003e.\n\n### License\n\nCollider is licensed under the [Apache 2.0\nLicense](http://www.apache.org/licenses/LICENSE-2.0.html).\n\n### Future changes\n\nThere are a number of new features I am planning to add to Gate in the future.\nSome of these will involve breaking changes.\n\n* Loading assets on the fly\n* Adding XBox controller input\n* Generating enums/handles for user-specific assets, and loading those assets\n* Handling game save data (currently only cookies in WebAssembly mode, nothing on desktop)\n* Playing looping music that has a one-time intro, without any hiccups in the music\n  (not sure how I'm going to do this, but it's important to me;\n  game libraries often seem to overlook this fundamental feature)\n* New renderer modes with new shaders\n","funding_links":[],"categories":["Rust","Libraries"],"sub_categories":["Games"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSergiusIW%2Fgate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSergiusIW%2Fgate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSergiusIW%2Fgate/lists"}