In today's episode, the iPhreak’s Gui Rambo speaks with John Sundell. John is an iOS Freelancer and currently works with a Norwegian company called Hyper. Hyper builds customer projects and in-house apps.
John builds apps, games & developer tools. He also makes Swift by Sundell, which is a weekly blog & podcast about Swift development. He has worked for companies like Volvo & Spotify. He’s the creator of several open source projects including Unbox, SwiftPlate, Marathon & Imagine Engine.
In particular, we dive pretty deep on:
03:00 – What's Imagine Engine?
It's a game engine that runs on Core Animation.
05:00 – API
John explains what Imagine Engine provides in terms of API and functionality.
07:30 – Why not use SpriteKit?
It's hard to predict how SpriteKit is going to work under pressure, being closed source makes it hard to study.
13:20 – What's Core Animation?
It's an underlying framework that drives the drawing for the UI on Apple's platforms.
15:30 – How does Imagine Engine use Core Animation?
Just like UIKit uses it, objects are backed by layers.
19:40 – Coding for performance
You have to really think about the complexity of everything you do.
25:30 – Supporting different OSes
John started with Metal, but noticed that Core Animation was fast enough. Both are available on all of Apple's platforms.
29:00 – The display link API
Provides a callback so you can sync your code with the display refresh.
30:20 – Unit testing a game engine
Doesn't use strict TDD, but prefers to test automatically so he doesn't have to create a game to test each feature of the engine.
33:05 – Are there games we can try made with Imagine Engine?
Revazendo is in beta.
35:00 – How do you handle input and events?
Imagine Engine provides an unified event API.
38:00 – Game development architecture
There are two popular patterns: component-driven and driving from a central update method (loop). Imagine Engine uses a mix of both.