All Blog Posts

Scenekit 101: A Quick & Dirty Scenekit Tutorial

Time for the latest and greatest to come out of Freeish Time! We got to sit down with Ben, our INSANELY talented IOS developer to get a fun & fascinating scenekit tutorial.

3 SIDED CUBE
3 Min Read

Time for the latest and greatest to come out of Freeish Time!

Just to refresh your memory, “Freeish Time” is the opportunity for our Cubes to focus on their passion projects outside of their work commitments. They have an entire week to identify a problem, build and create a solution, then present it to the rest of the team during our Friday Happy Half Hour meeting.

This has become an integral part of 3 Sided Cube. The encouragement and time to work purely on whatever their heart desires, all while getting a little reprieve from the normal hustle and bustle from the normal workload is a welcomed treat. Whether they opt to go the “innovation” or “education” route, that invaluable time to focus purely on whatever it is that intrigues them is pretty rad.

The sky’s the limit when it comes to innovation.

We got to sit down with Ben, our INSANELY talented IOS developer to chat about his latest foray into Freeish Time.

What inspired you to write this scenekit tutorial?

For my Freeish Time, I embarked upon the unfamiliar world of game development! Definitely, something I’m interested in and have always wanted to try as a side project. It’s awesome to have the time and freedom to dive into the in’s and out’s of something that inspires me.

I have quite a few ideas for things I could build. There is just so much you could do with it. Dare I say: it’s our imagination that is the limiting factor now, rather than our technology.

Talk us through what you did

1. First, start with the foundations. I started by just building simple objects within a virtual world; creating a game world if you will. I found an Apple scenekit tutorial online demonstrating how to build these objects. It was incredibly helpful, particularly in learning the core skills I needed to make the game world I had envisioned.

2. Copy what you see. Anything you create will always be new, even if it’s inspired by some one else work you love. Credit them if you feel like you are getting to close to their product, of course, but I learned a lot by following what I found was beautiful.

3. Apply it to your projects. Scenekit was something I had never tried before, so the whole process was all very new to me. Which makes for an all the more exciting… and frustrating week of freeish time! It made me excited to try to use it in my work moving forward!

What were the key learnings?

Although I had the core skills using the iOS SDK and Swift, it was just innately different in terms of how you do things. It was definitely a steep learning curve. I had all of these ideas but couldn’t immediately program them into this game.

In the real world, if I knocked my hand on a wall then my hand, obviously, wouldn’t go through it. There would be some sort of collision behaviour, some physics that stopped it from going through. Whereas, you can’t just put two blocks in a fancy game world you’ve made and expect it to just behave like this. You have to program in the physics of how and when things collide.

For example, I needed to ensure when building this game the elasticity describing how “hard” things bounce off walls feels natural or fun. For driving games when the vehicle collides with an object, you’d expect them to follow a natural trajectory you’d see in a real-world collision.

All the physics that you have to account for make it quite complex to program.

Were there any challenges?

One of the nuances I found while building this world was the steering of the car! It’s something that is quite obvious in the real world but, when building it, there’s definitely more to it than you’d initially expect. Just the act of turning the car, getting the wheels to interact with the road with the appropriate friction, velocity, etc was quite the feat to get right. Fortunately for me, Scenekit handled a lot of it out the box.

Another challenge I came across was just knowing where to begin! That is where the Apple tutorial came in so handy. Once you understand the foundations, you can build up from there.

How can you use this within your role at 3 Sided Cube?

While in the grand scheme of things the 3D app world is still fairly new to me, I definitely have a much more foundational understanding of how to build 3D games. It’s a big part of many new app ideas and there’s definitely a demand for it. Before I wouldn’t have known where to start but now I can jump on any future projects with confidence on how I might tackle it!

I personally think there’s so much more we can do in this field at 3 Sided Cube. If my Freeish Time allows for us to go ahead and build projects like this in the future then that would be sick! I don’t normally get to play around with gaming apps in my normal day-to-day job. But just being pushed outside of my comfort zone will help with various tasks required of my work.

As always, it’s so great to sit down with a fellow Cube and pick their brilliant mind. See you the next time one of us is innovatin’!

Published on 28 October 2020, last updated on 22 May 2023