{"id":20704393,"url":"https://github.com/cocoatoucher/glide","last_synced_at":"2025-04-05T00:10:28.141Z","repository":{"id":52961281,"uuid":"185016938","full_name":"cocoatoucher/Glide","owner":"cocoatoucher","description":"Game engine for making 2d games on iOS, macOS and tvOS, with practical examples and tutorials","archived":false,"fork":false,"pushed_at":"2023-07-15T14:35:03.000Z","size":69753,"stargazers_count":485,"open_issues_count":2,"forks_count":42,"subscribers_count":20,"default_branch":"master","last_synced_at":"2024-04-28T20:38:42.287Z","etag":null,"topics":["2d-game-engine","apple","game-development","game-engine","gamedev","gameplaykit","games","ios","macos","platformer","platformer-engine","side-scroller","spritekit","tiled-map-editor","tilemap","tvos"],"latest_commit_sha":null,"homepage":"","language":"Swift","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/cocoatoucher.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}},"created_at":"2019-05-05T10:34:20.000Z","updated_at":"2024-04-23T07:58:46.000Z","dependencies_parsed_at":"2022-08-21T03:20:28.540Z","dependency_job_id":"f05e0ff1-162d-4ce1-9de0-3ecef0b311de","html_url":"https://github.com/cocoatoucher/Glide","commit_stats":{"total_commits":87,"total_committers":3,"mean_commits":29.0,"dds":0.02298850574712641,"last_synced_commit":"bc1ecd985383acb1826d9996d902368b8f9d13be"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cocoatoucher%2FGlide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cocoatoucher%2FGlide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cocoatoucher%2FGlide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cocoatoucher%2FGlide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cocoatoucher","download_url":"https://codeload.github.com/cocoatoucher/Glide/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247266565,"owners_count":20910836,"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":["2d-game-engine","apple","game-development","game-engine","gamedev","gameplaykit","games","ios","macos","platformer","platformer-engine","side-scroller","spritekit","tiled-map-editor","tilemap","tvos"],"created_at":"2024-11-17T01:12:07.072Z","updated_at":"2025-04-05T00:10:28.123Z","avatar_url":"https://github.com/cocoatoucher.png","language":"Swift","readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/cocoatoucher/Glide/raw/master/Docs/glide_logo_transparent.png\" width=\"128\" max-width=\"80%\" alt=\"glide\"/\u003e\n\u003c/p\u003e\n\n# Glide Engine\n\nGlide is a SpriteKit and GameplayKit based engine for building 2d games easily, with a focus on side scrollers. Glide is developed with Swift and works on iOS, macOS and tvOS.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/cocoatoucher/Glide/raw/master/Docs/devices.png\" max-width=\"80%\" alt=\"glide devices\"/\u003e\n\u003c/p\u003e\n\n- Download the macOS demo app [here](https://github.com/cocoatoucher/Glide/raw/master/Docs/GlideDemo.zip) to give it a try. \n- or watch a video of the features [here](https://vimeo.com/334243593). \n- [Documentation](https://cocoatoucher.github.io/Glide/index.html)\n\n\u003cp align=\"center\"\u003e\n\u003ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://vimeo.com/334243593\"\u003e\n\u003cimg src=\"https://github.com/cocoatoucher/Glide/raw/master/Docs/jump.gif\" width=\"400\" max-width=\"80%\" alt=\"A glimpse of the Glide's features\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://app.bitrise.io/app/b14b754f747dc2fa\"\u003e\n\u003cimg src=\"https://app.bitrise.io/app/b14b754f747dc2fa/status.svg?token=2DJHooo6_IVnbLRAFbfxzQ\" alt=\"Package Build status\"/\u003e\n\u003c/a\u003e\n\u003cp align=\"center\"\u003e\niOS 14.0 / macOS 11.0 / tvOS 14.0\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\n\u003cimg src=\"https://img.shields.io/discord/846858340243865610?style=flat\"/\u003e\n\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\n\u003cimg src=\"https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat\"/\u003e\n\u003c/p\u003e\n\n- Make a simple 2d platformer in half an hour, tutorial on YouTube:\n\n\u003cp align=\"center\"\u003e\n\u003ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://www.youtube.com/watch?v=Fx7Cv6-WjMQ\"\u003e\n\u003cimg src=\"https://github.com/cocoatoucher/Glide/raw/master/Docs/tutorialthumb.png\" width=\"400\" max-width=\"80%\" alt=\"Starter Tutorial\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n- Tutorial 2: Touch buttons and introduction to input management, watch on YouTube:\n\n\u003cp align=\"center\"\u003e\n\u003ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://www.youtube.com/watch?v=Ru87AxgsLKQ\"\u003e\n\u003cimg src=\"https://github.com/cocoatoucher/Glide/raw/master/Docs/tutorial2thumb.png\" width=\"400\" max-width=\"80%\" alt=\"Tutorial 2\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n- More tutorials are on the way! Stay tuned for updates in a couple of weeks. (Updated 3rd June 2019) [Follow on YouTube](https://www.youtube.com/channel/UCKB7inlaMD2CvyaQKQ2snZw)\n\n## What is in Glide?\n\n### 1. Entity component system\nGlide is developed with [Entity-Component-System architecture](https://en.wikipedia.org/wiki/Entity_component_system). In short, this makes it easy to manage the code of your game, which might quickly get messy as you add more stuff. In addition to that, loads of building components common to 2d platformers that will get you quickly started is also included in the engine. \n\n#### See all the components [here](https://github.com/cocoatoucher/Glide/blob/master/Docs/Components.md). 👾\n\n### 2. Tight collisions and contacts\nGlide has its own collision and contact algorithms which is more suitable for precise platformer mechanics compared to using SpriteKit's physicsBody.\n\n### 3. Input 🎮⌨️🖱🔲\nSupport for Bluetooth and USB game controllers, keyboard, mouse, and touch controls comes out of the box with Glide and it is pretty intuitive to use them. Learn more about supported input methods [here.](https://github.com/cocoatoucher/Glide/blob/master/Docs/InputMethods.md)\n\n### 4. Native game menus\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/cocoatoucher/Glide/raw/master/Docs/navigatable.gif\" width=\"444\" max-width=\"80%\"/\u003e\n\u003c/p\u003e\n\nYou can't imagine a game without menus in most cases. A UIKit / AppKit based user interface library for making game menus is included in Glide, so you don't have to give up from native Apple components in your games. Of course, those menus are controllable via game controllers on iOS, macOS and tvOS 🎮💃\n\n## Inspiration\nGlide naturally draws inspiration from the approaches of other popular and smaller game engines on different platforms. Those inspirations are also rooted in the usage of certain architectural patterns like entity-component-system. On top of that, Glide has a bunch of tailored solutions towards making it easier to create more professional platformers and 2d games in general on Apple platforms.\n\n## Get your hands on Glide\n\n### Demo scenes\nGlide comes with a fully fledged demo project. Download this repository and run it in your favorite platform. Running on release configuration with a real device is recommended for experiencing the actual performance.\n\n### Quick start guide\nCreate your first scene with your first entity [here.](https://github.com/cocoatoucher/Glide/blob/master/Docs/QuickStartGuide.md)\n\n### Update loops\nHere are the update loop charts of Glide that you might need as a handy reference.\n\nScene update loop       |  Entity update loop     |  Component update loop\n:-------------------------:|:-------------------------:|:-------------------------:\n![alt text](https://github.com/cocoatoucher/Glide/raw/master/Docs/glide-update-cycle-scene.png \"Update cycle of a scene\")  |  ![alt text](https://github.com/cocoatoucher/Glide/raw/master/Docs/glide-update-cycle-entity.png \"Update cycle of an entity\")  |  ![alt text](https://github.com/cocoatoucher/Glide/raw/master/Docs/glide-update-cycle-component.png \"Update cycle of a component\")\n\n### Game genres\nSupporting other types of 2d games(e.g. top down) with Glide is totally possible. However, that is not tested with enough demos yet, and side scrollers are the initial focus for the engine. Please feel free to contribute with your own demos and changes to Glide for supporting other genres.\n\n### 🐞🐜\nBugs are expected since Glide is in its early days and this is currently a solo developer project. Please report the bugs you find and give some patience 🙏\n\n### Credits:\n\n- Animated Pixel Adventurer: [https://rvros.itch.io/animated-pixel-hero](https://rvros.itch.io/animated-pixel-hero)\n- Classical ruin tiles: [https://opengameart.org/content/classical-ruin-tiles](https://opengameart.org/content/classical-ruin-tiles)\n- Original trailer video music by John Walden: [https://soundcloud.com/jwaldenmusic](https://soundcloud.com/jwaldenmusic)\n- [All credits](https://github.com/cocoatoucher/Glide/blob/master/Docs/AssetCredits.md)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcocoatoucher%2Fglide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcocoatoucher%2Fglide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcocoatoucher%2Fglide/lists"}