iPS 220: John Sundell
Published November 23, 2017
51 min
    Add to queue
    Copy URL
    Show notes


    Gui Rambo

    Special Guest: 

    John Sundell

    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.






        0:00:00 / 0:00:00