Skip to main

Drone Delivery

Process

“I think there are two types of writers, the architects and the gardeners. The architects plan everything ahead of time, like an architect building a house. [...] The gardeners dig a hole, drop in a seed and water it.”
— George R.R. Martin

Prototyping a game for is very much like watering a seed. In this game I started by thinking about an interaction that worked both with “standard” VR controllers and hand tracking, but also was fun and engaging. After playing around with my hand in the air for a while, I realized the act of grabbing something that is attached to your hand with a virtual spring, felt like a really fun fiddling toy.

After making the first prototype with a simple sphere as a hand, connected to a small drone with a physics spring in Unity, I tried to connect that Drone to a cube with another spring. That felt really natural and fun, and created a feeling of weight depending on the mass of the cube. This cube was now a package, thus delivering with drones as a concept was born.

Now I just needed a game. How hard can that be? Well. Very hard. This project went back and forth. Starting out with a simple puzzle game where you should deliver the package with your drone from Point A to Point B without colliding with anything. This gave me the idea of training an AI drone system to find the best path around the world. That gave birth to the recording system.

Silence, recording in progress!

To create something that works against you in the game, I added the worst enemy; yourself. By recording the position of the drone during a set time, and then saving it to a timeline, I could then replay one drone path after the other, until I had a cluster of drones in the air flying all over the place. So you had to be careful so you didn't collide with a past recoding. If that happened, or you collided with another structure (and that happened all the time), your drone would die, disconnect from your hand and start falling down.

The key to keep all these drones synchronized, is both to have a central timeline that you store the recordings start positions in, and to make sure a single recoding is shorter then the length of the timeline. To visualize this I gave the Drone a battery. So when the length of the maximum recording was soon done, the drone would indicate that is was out of battery and you better find a landing/charging spot fast!

This recoding system made me thing of factories and other automated systems. So to spice it up a bit, I started to build a small city building game. You know, nothing big. Only like Sim City, but in XR.

3 months later

To be honest, this all project started out as a summer project. I had carved out 3 weeks of vacation time where I was suppose to make this game. Designing, modelling, texturing, programming, scoring and releasing it within 3 weeks. Well that didn't happened. Instead the scope grew, as it does when you're having fun and just building stuff.

Now it has turned into some kind of city building/management game. But we will see where it ends in a year or so.