Development

The idea

Drone Alone is about discovery: exploring the randomized missions, the back story or how game elements interact. To me the development was also about discovery: it helped me learn Unreal Engine 4.

I started working on the game with the still beta engine after finally deciding what the project should be about. I considered many things from a short matinee to remastering one of my old UDK projects but nothing felt right. Then I stumbled upon a gameplay video for a game called Yager. I liked the transforming fighter but the environment felt somewhat empty so I started looking for alternative settings. After some googling I found a modern architecture magazine and realized that I’d love to work with a clean and modern visual style. Mixing that setting with a dog-fighting jet gave me the home security drone idea.

Of course a lot of the details changed along the way: on-the-fly transformation was removed, retro 80’s design replaced the “generic, clean, modern” look and an alternate history narrative was added. I also moved away from the dogfight focused gameplay in favor of more varied, randomized missions. Although it’s not very apparent at this stage, the gameplay systems were designed with emergent gameplay in mind to encourage player creativity and improvisation.

My best-laid plan

Originally the plan was to develop game design, programming and art parallel to each other, progressively with quick sprints so the different aspects can evolve together and affect each other. For a few months I worked like that but then TTP# 345370 happened. It is probably the nastiest bug I’ve ever encountered: it quietly broke certain blueprint classes while editing them. Everything worked fine while the editor was open but the next time the project was loaded the engine crashed instantly. I spent about a month trying to find the cause and possible workarounds. I couldn’t so I was left with a half refactored (thus dysfunctional) pawn class which I couldn’t modify anymore without breaking the entire project. I had to wait until the bug was fixed by Epic and that took 9 months. During that period I was working only on the art side of things hoping that I won’t be off the mark that badly. Since the progressive, highly iterative work plan went out the window I ran into a few problems later on.

Unreal Engine 4 crash window development Development UE4Crash 300x273

The best example perhaps is the design of the jet engine: it’s slanted wings have embedded fans and side flaps which let out compressed air when strafing. However in game those elements are rarely visible as the camera system works differently than anticipated.
This is how the process should have looked like:

 

  • Modeling boxed out jet engine with whatever fancy wings I imagined.
  • Importing mesh used in-game while tweaking engine properties.
  • Getting a simple camera system working which complements the engine’s behavior.
  • Refining engine mesh based on what the camera can see.
  • Refining controls.
  • Refining camera behavior.
  • Refining engine mesh.

 

….and so on, a small step here then a small step there. That would have helped me to avoid working on stuff which need to be discarded and redone in the future.

Jet engine wing flap development Development JetWingFlap 300x300

For the first part of the development I used a boxed out test map to see what works and what doesn’t level design-wise. It had no resemblance to the apartment but was still useful. I couldn’t test the final house during the modeling stage but what I’ve learned from the test map was enough to get most things right. There were smaller tweaks later on like adding a door and cutting down the size of the kitchen but nothing drastic.

The test level development Development DroneAlone04c 300x242

When the building was blocked out I decided to start the detailing phase with the most difficult room, the garage: it required the greatest amount of props to make the place look like a stuffed, untidy, actively used space. This “vertical slice” room also stress tested my art workflow since I needed lots of objects with very different requirements. It became the starting room because the clutter in the room provided many opportunities to place important gameplay information right inside the level: the game’s UI is almost exclusively diegetic, part of the game’s world. “Tutorial texts” are somewhat disguised to blend in with the narrative (no “Snake press X to crouch” silliness here) , so it might take some thinking to decipher what stuff like “‘iKey’ pitch inversion system” or “RMB-RB standard activation interface” means.

The garage development Development sshot01 300x169
Art direction

The building’s most fundamental design element is the cylinder, which has both curves and straight lines. (The main inspiration for this comes from an awesome apartment in Sydney.) The level looks like a big hockey puck with a whole in the middle. All the windows and most of the furniture are curved too to match the curvy walls of the rooms. The cylinder shape also defined the garden’s “gazebo” and the bed.

The top-down view of the house development Development TopDownHouse 300x231

While laying out the rooms I factored in the position of the sun at different times during the day: I made sure that it shines into the bedroom around 7 am (waking up), into the dining room around 8 am (having breakfast) and lights up the garage around 6 pm (arriving from work). As a reference I used Modo’s physical sun which I also used to render the skydomes.

Right from the beginning I wanted to add a garden to serve as a somewhat enclosed yet outdoor area with grass, plants and water. For a long while there was a waterfall coming from the cliff above and crashing into a small pond. While they made the place more interesting somehow they also felt tacked on. Eventually the pond was replaced with a circular chess board (great opportunity for some puzzles there) and the natural waterfall became 8 smaller, artificial ones which turn on and off randomly on each time-of-day change.

The garden development Development Garden 300x200

All the doors in the house are sliding doors. The early test level had swinging doors but they looked weird in a curved wall and needed too much clearance. Operating a sliding door is not that intuitive at first but they don’t have the aforementioned issues. Plus they feel something unusual, a bit sci-fi, which helps the overall mood.

The overall style is Formica Punk, Bouletcorp’s brilliant comic was a huge inspiration for the 80’s retro future look and feel. It also pushed me to start thinking about the back story: who lives in the apartment, where it is, when it is, how this alternate universe differs from ours, etc. (There are bits and pieces scattered around but there is no coherent narrative yet.)

As for the drones, there are two main design directions: clean, detailed and white for friendly units and rugged, military green for enemies. The former was inspired by classic scifi movie set designs like in 2001: A Space Odyssey. Other machines like the communication computer and the drone utility station are based on 70’s and 80’s electronics.

Music

The mood of the game was heavily inspired by synthwave artists Mitch Murder, Miami Nights 1984, Futurecop! and the track “Isometric” from Madeon’s great album “Adventure”. The TV series Halt & Catch Fire also has a very fitting original soundtrack by Paul Haslinger.
I searched a lot for appropriate licensable music and at the end I found _Pengus’ work. I’ve also turned several tracks from Freesound.org into ambient tunes to work as fillers between the more upbeat numbers.


Notice: ob_end_flush(): failed to send buffer of zlib output compression (1) in /home/zoltanec/public_html/pages/wp-includes/functions.php on line 4552

Notice: ob_end_flush(): failed to send buffer of zlib output compression (1) in /home/zoltanec/public_html/pages/wp-includes/functions.php on line 4552