iPS 220: John Sundell

    0
    535

    Panel:

    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.

    LINKS:

    Picks:

    John

    Gui’s