WWDCScholars

Niklas Bülow26

Karlsruhe, Germany

I am a Swift, C++ and ObjC enthusiast and a WWDC17/18/19 Scholarship recipient. Additionally I was able to win at the WWDC20 Swift Student Challenge. I started programming in 2015 and switched to Swift in January 2017. Currently I am an iOS Developer (working student) @jamitlabs (jamitlabs.com) in Karlsruhe and a Computer Science Student enrolled at Karlsruher Institute for Technology. Feel free to contact me :-)

Scholarships

Niklas has been awarded a WWDC scholarship four times. Here are the submissions that got him there.

In 2020, applicants were tasked with building an interactive playground to showcase their creativity and technical abilities. Here’s how Niklas describes his winning submission.

My Swift Playground for this years WWDC20 Swift Student Challenge is called "Isometric Dimension". "Isometric Dimension" is an immersive and challenging teleport-based puzzle game. In this game, you control a little droid. The goal of the game is, to find your way through the teleportation portals, to the exit block. Meanwhile the faster you accomplish the level, the better your rating will be. But you have to keep in mind if you drive to the edge of the platforms you may lose ground! One of the major goals of this playground is to deliver mesmerizing and immersive gameplay. I achieved this by using isometric projection, which also gives the playground its name. This enables me to present two-dimensional objects so they appear as if they were three-dimensional. It is a simple but truly effective technique. Additionally, I tried to achieve a game which can be personalized by its user and is furthermore simple to use. The control of a droid is as easy as a few button taps on the keypad. You can even summon a thunderbolt by touching anywhere on the screen. Furthermore, you can choose between two droids. D42, your red companion droid, and T33, your lovely golden droid. I built this playground mainly upon SpriteKit. SpriteKit leverages the powers of Swift Playgrounds and offers a vast variety of features to build your own 2D game. I was amazed by SpriteKit's performance and therefore used SpriteKit throughout the whole playground. Another framework I used is Apple's SIMD framework. You may are not familiar with this framework. However, it is a great tool to do matrix and vector calculations right on the silicon of your device. I utilised it to transform any coordinates from the standard coordinate space to the isometric coordinate space. This enables me to render the level more efficiently. However, I also faced some challenges on my way to accomplishing this project. Keeping all my code structured and readable was one of these. Therefore I tried to separate each core functionality in their enclosed class. Decoding and loading a level map was another challenge I encountered while developing the playground. I came up with a solution which I believe works exceptional. Using this approach allows to safe a map file for each level. This file contains a simple representation of the map, which is used by the level presenter to render the level. Each character in this file refers to a specific block in the game. This made it extremely easy to develop and design the levels for this game. To put it, in a nutshell, I am quite proud of my achievements this year. I believe the playground does deliver the goals I set myself at the beginning of the project. Therefore I am confident, that I will continue work on this game. There are many features I would like to see in the playground, such as an in-game level builder.