Coder Social home page Coder Social logo

cocoatoucher / glide Goto Github PK

View Code? Open in Web Editor NEW
486.0 20.0 42.0 68.12 MB

Game engine for making 2d games on iOS, macOS and tvOS, with practical examples and tutorials

License: MIT License

Objective-C 0.13% Swift 99.87%
game-engine 2d-game-engine games spritekit gameplaykit apple tvos macos ios platformer-engine platformer side-scroller tiled-map-editor tilemap game-development gamedev

glide's Introduction

glide

Glide Engine

Glide 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.

glide devices

  • Download the macOS demo app here to give it a try.
  • or watch a video of the features here.
  • Documentation

A glimpse of the Glide's features

Package Build status

iOS 14.0 / macOS 11.0 / tvOS 14.0

  • Make a simple 2d platformer in half an hour, tutorial on YouTube:

Starter Tutorial

  • Tutorial 2: Touch buttons and introduction to input management, watch on YouTube:

Tutorial 2

  • More tutorials are on the way! Stay tuned for updates in a couple of weeks. (Updated 3rd June 2019) Follow on YouTube

What is in Glide?

1. Entity component system

Glide is developed with Entity-Component-System architecture. 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.

See all the components here. ๐Ÿ‘พ

2. Tight collisions and contacts

Glide has its own collision and contact algorithms which is more suitable for precise platformer mechanics compared to using SpriteKit's physicsBody.

3. Input ๐ŸŽฎโŒจ๏ธ๐Ÿ–ฑ๐Ÿ”ฒ

Support 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.

4. Native game menus

You 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 ๐ŸŽฎ๐Ÿ’ƒ

Inspiration

Glide 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.

Get your hands on Glide

Demo scenes

Glide 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.

Quick start guide

Create your first scene with your first entity here.

Update loops

Here are the update loop charts of Glide that you might need as a handy reference.

Scene update loop Entity update loop Component update loop
alt text alt text alt text

Game genres

Supporting 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.

๐Ÿž๐Ÿœ

Bugs 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 ๐Ÿ™

Credits:

glide's People

Contributors

cocoatoucher avatar erjanmx avatar gomfucius avatar v-gordienko avatar vikgor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

glide's Issues

There are scenes with particularly low FPS

Hi, why is it that inside the test demo, there are scenes with particularly low FPS,
such as the multiplayer scene, with only 20-25 fps, and my test machine is an iphone 12.
Is it because of a problem with spritekit, or is it something else?
Is it even worth developing with spritekit if the performance drain is so severe
Thank you for the open source and help!

Using Glide with Xcode 11?

In Xcode 11 project structure differs greatly from Xcode 10. Could you explain how to prepare a project in it with SwiftUI and/or Storyboard?

Adding collision to bottom of platform

Hello, I followed both your tutorials to create a iOS app. Great work! However, I am not able to make the character collide with the bottom of the platform. How do I enable this?

Sound volume depends on characters position in demo project

Tried demo project on MacOS.
Move the character to the scene's left side and try to do something with sound (for example jumping). Then move the character to the scene's right side and repeat actions. Compare sound volume - it differs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.