The Vintage Aviator - Gallery by sandy sutherland

As mentioned in the last blog post, earlier this year I got the chance to visit Hood Aerodrome in Masterton, home of  The Vintage Aviator. This is an amazing collection of WW1 aircraft, many of which are still fully functional flying machines. It was a great chance to find out about the history of the planes, the early design ideas of the time, and also just how fast things developed over the period of the war. This was still a time where the rules of flight were still being figured out.

I took a stack of photos during the visit, with the goal of recording a lot of the small details of the planes, what materials they are made of and how the surfaces react to light. I also took a bunch of video which I may post at some stage.

Enjoy!

Follow this link to go to the full page gallery - The Vintage Aviator GALLERY

A long overdue update by sandy sutherland

It's a little embarassing to notice my last blog post was August last year. I've actually been thinking about and working on Flak Jack a whole lot since that time, but my day job at Weta has taken over. For almost a year I've been working on a major sequence for the film, War For The Planet of the Apes. We are days away from finishing which hopefully means more free time to dive back into Unreal Engine.

Scope vs time

At this stage, progress on the game has been very slow in terms of actual on-the-box development time. I'm being very ambitious, and available time to work on the game has certainly been less than I would have liked. Having said that, I'm not overly worried. I don't have a deadline I'm being held to, and I have plenty of experience working on things that just take time, so motivation and persistence are on my side. I've also had time to document a lot of ideas and spend time thinking about systems. I have a solid day job that pays the bills, even if it requires crunch periods that take time away from other things. Basically, this thing is for fun, it's not something I have to do to stay off the streets. Time is just starting to free up again so I'll be able to block in a few core game systems like flying and basic shooting, as well as a solid pass on the environment art.

Design progress

I've done a huge amount of writing and re-designing the structure of the game, really thinking about ways I can make the game a smooth, seamless, immersive experience in VR. On one hand, I'm making "just" another third person shooter game. However, there are a whole lot of really strange idea's I'm planning to try that I hope will set the game apart. It's cinematic but with no cutscenes. It's a small character study, on a massive stage, its silly and fun but with some darker undertones. One positive side effect of work getting in the way is that I've had time to think over ideas and concepts. Many have evolved into much better ideas. Some faded and died. Overall though, the ideas have had time to just sit with me, and I can say that I'm still super excited about what I'm aiming for. Words are cheap of course, so until I start to implement some of these designs, who knows how well they will really click together. It's going to be really hard to strike just the right tone. One thing is for sure, nobody has made what I'm going to try, especially in VR. That is both terrifying and exciting. More details will come down the line once some implementations are further developed.

Vive!

Late last year I applied for a developer grant from Epic Games. I shot them a quick summary of my game, and then kind of forgot about it. A few weeks later, I get an email back saying they were going to send me out a Vive headset. Nice! Thank you Epic! I could say goodbye to the Oculus DK2, and Razer Hydra. 

The Vintage Aviator / RAF Museum Visit / Imperial War Museum

Earlier this year we had a chance to go and visit Hood Aerodrome in Masterton, a couple of hours north of Wellington. This is the home of The Vintage Aviator, one of the best collections of functional, flying WW1 airplanes on Earth. We were there for one of their flying weekends, where you are given incredible access to the planes, there are flying demonstrations and a very informative walking tour of each plane as they sit out on the field. It was an extreamly valuable opportunity to gather photo, video and audio reference. Some of the planes in the collection are the only ones in existence in the whole world, and they are only a few hours drive from my house. Amazing.

In February, we went on a 3 week trip to the UK. I took a day to myself to go and visit the RAF Museum in North London. They have a relatively new exhibition focusing on the aircraft of WW1 and the history of aviation as part of the war effort. It's an amazing display, and I had the whole thing almost to myself for a few hours. I also paid a visit to the Imperial War Museum which itself has an amazing exhibition of WW1 stories and relics. WW1 sure was an insane time period.

I will post a gallery of the reference photos and video I took on these trips very soon!

Terrain / Environment development

One major goal for the game is to give you that vast sense of scale, of what it feels like to be 3km's up in the air, in an open cockpit wood and fabric plane, cold air and engine oil blasting you in the face, high above the vast wasteland of The Western Front. To achieve that I need a space with huge view distances, right now I'm targetting an area of 200kmx200km in size, with an accessable play space maybe 100 - 150km in size. I'm using real world Satellite terrain data, and then detailing that procedurally. I will eventually do a far more detailed blog post about it, but right now I'm going through a second revision of the terrain process as I try and use Houdini 16's new heightfield tools, combined with Quixel Megascan textures and Substance Designer textures. I am still using Truesky for my clouds and lighting solution, which is due to receive a pretty major update in the not to distant future. Some very cool stuff.

Some early progress on terrain. 200km square. Real world scale and real roads.

Some early progress on terrain. 200km square. Real world scale and real roads.

A very quick test of mixing textures in Megascan Studio. No mans land craters + puddles

A very quick test of mixing textures in Megascan Studio. No mans land craters + puddles

 

 

Bonnie snaps - Some visual references for Flak Jack by sandy sutherland

Thought I would post some of the images I've found as inspiration for Flak Jack. Some of these are targets for what I want the game to look like, some are character relationships,  some point to the sense of humour I'm going for. Others are just weird and wonderful things I've discovered looking into WW1 history, early aviation and Scotland.

 *** NONE OF THIS IS MY WORK - It's all pulled from the net and made by people far more talented than I.

"It's nae a skirt!" - the first 5 months developing Flak Jack by sandy sutherland

What? Why?

Back in early April, I got slapped in the face with a ridiculous idea. It was so vivid from the get go, that I knew I had to make it; 

"A comedic VR game where you fly a plane with your head movements, and shoot with motion controllers in air to air dogfights, set in WW1. The pilot is a mad Scotsman. He has a co-pilot dog. It's called Flak Jack."

That all came to me in that very first instant. It was so daft, I had to dive right in. Nobody else was going to dream that one up.

Early reference images - The 3 main elements of Flak Jack

 

I've been tinkering with game development for a couple of years now since the release of Unreal Engine 4. Spurred on by a couple of friends at Weta who are also interested in game dev, I've been stepping it up, working away on various things several nights a week. In that time I've realised that the bit I really enjoy the most is game design itself, dreaming up worlds and gameplay systems. So, after a fair amount of time playing with certain aspects of UE4, learning the engine, I decided I was just going to go all in, and make a complete game. I was also going to try and do it just using UE4's blueprint system for visual scripting. That means I would be typing next to no code.

It's a stupidly ambitious thing to try and do. Even a "simple" game is more complex than most people would imagine. Still, if there is one thing I've learned from 13+ years of film VFX, it's that I've got a pretty solid sense of how to break complex things down into manageable pieces and construct a system. I know how to create spectacle. I've got a fairly good idea of how drama and pacing work. In that way, there is a lot of crossover between VFX and game development. More than that though, after years of making other peoples stories and worlds, I felt it was time to put something out there that was my idea. 

Where the hell did that come from?

At first glance it seems like a pretty random game concept, but ideas do not come from a vacuum. My Dad's side of the family is Scottish and I grew up exposed to Scottish culture (I grew up in Australia). My Mum's father built model air planes and I used to build model kits as a kid. I spent many a school holiday at their house playing flight sims...and Doom. We played lots of Doom. It was my grandfather who first introduced me to 3D graphics, he used to draw plans for his model builds in AutoCAD. I've played plenty of shooter games over the years, and despite the vast numbers of shooters out there, I feel I've found a somewhat fresh take on things - especially for a VR game.  There are dozens of other references and influences that have since fed into the game idea; Tintin and Snowy. Hans and Chewie. Wallace and Gromit. John Woo movies. Tarantino. Slapstick comedy. Indiana Jones. Bagpipes. Sea Shanties. Homing pigeons. The advancement of technology. It's a good ol' mix.

Get on with it.

So I started. Armed with UE4, an Oculus DK2 VR headset, and a Razer Hydra - hand held motion controllers.  Beginning with the flying game template provided by Epic, I took their crude flying saucer demo and wired it up so that the pitch/roll/yaw of the DK2 controlled the pitch/roll/yaw of the spaceship. Then I swapped out the spaceship for a dodgy model of a plane I found online. Already I could fly around a level steering the plane with my head, the plane sitting in front of the view, moving at a constant speed.

VR Camera + Plane + Distance Markers

The absolute basics of flight were now working. There is a huge amount still to do on flight mechanics but I'll save that for another day.

Clouds

One of the main goals I have for Flak Jack is to be able to use 3D volumetric clouds as a play space, not just a backdrop. Clouds and skies in many games are either an image mapped on to a giant sphere that surrounds you, or 2D cards/sprites with a cloudy texture applied. Neither was going to be enough in my case. UE4 does not have a native method for creating volumetric FX like clouds. They are typically heavy to render and require lots of data. So, I had an idea and fired up Houdini. The basic concept was to make cloud volumes in Houdini, render them from a bunch of angles with lighting baked in, and then use UE4's imposter sprites to draw the clouds in the game. Imposters are a trick used to show the impression of a 3D object from a series of images taken at slightly different angles. Here is an early test result.

Houdini volume renders with lighting baked, as imposter sprites in UE4

Houdini volume renders with lighting baked, as imposter sprites in UE4

This was an interesting test, but I knew it was going to be limited and time consuming to generate enough variety. 

Then I discovered Truesky. It's a plugin for UE4 that allows for the creation of very natural looking clouds, with automatic sun light control and atmospherics. It's also fully volumetric and controllable with blueprints. It runs great in VR, and they have an Indie licencing option. Boom! Clouds. Sorted.

Early Truesky test with a terrain ripped from Google maps. Promising!

Blueprints / UI

I realised fairly early on that I still had a huge amount to learn about UE4's Blueprints system. Mainly, how various blueprints should talk to one another. After I hooked up the headset/flight control I saw straight away some kind of sensitivity control should be exposed to the player so that the plane movement wasn't too twitchy.  I got started on a UI, and made a slider to control sensitivity. In VR games you really need to have any kind of UI as a physical thing in the 3D world, you cant just slap it on the screen with no distance from your eyes, otherwise it makes you want to puke and you can't focus on it. The Oculus Store has a nice UI interaction system where the selection cursor is locked to the middle of your view, so you just look at the thing you want to click on. I decided on the same thing for Flak Jack. I made my UI buttons, stuck them on a 3D widget, added the widget to sit a bit in front of my game camera, and then did a line trace from the camera to the widget to work out what button was sitting in line with my gaze. I added a crosshair graphic, and made the buttons change colour when hovered over. I decided to use the sensitivity slider purely as visual feedback on the UI - the user changes it with the left stick on the controller.  It's not a slider that you click on and grab. I did this because it makes it faster and easier to change when mid flight. Originally, the slider was visible whenever you call the game UI, but now it only shows up when you are actually in flight and call the UI.

Oculus style menu selection for VR UI, with slider feedback

Motion controllers / Jack IK

Flak Jack is a third person game. Jack flies standing up in the cockpit so he can shoot out over the top of the planes wing with hand held weapons. I wanted his arm movement to be in sync with how the player was moving the motion controllers. I set up some really basic arm IK, and did some calibrating and offset of the Hydra controllers, so that the player motion was offset from their position, to where Jack was standing in front of them. Eventually I'll need to do something where I get the players maximum reach / arm length and adjust the IK and Jack animation to match. The plan is to incorporate gesture controls for reloading and things like that.

July rebuild

After a couple of months of slapping things together, my blueprints and project were already getting messy even at this early stage. I stopped adding new shit and did some house keeping. I had originally just added lots of things as components on the flying pawn. The plane mesh, Jack, all the motion controller stuff, particle FX, the UI etc etc. I began to bundle things into their own blueprints and then added those blueprints as child components to the flying pawn. I then added all the required functions to each blueprint, moving them off the flying pawn. It's now much cleaner and logical and is more in line with how I should have done things to begin with. I began to get more comfortable with casting, and getting all the blueprints talking to each other. All rookie errors I'm sure, but I'm glad I caught them early.

Mission control

One goal is to make the steps from first opening the game, to flying an actual mission as seamless as possible. It needs to ease you in to things so you can get comfortable being in VR - once you are actually flying and shooting its going to get pretty hectic. The game loads up with you positioned just above the clouds. The idea is you pick a mission type and then various aspects of the mission are randomly generated, one of those being the clouds and time of day. So, before the mission actually starts, the game goes through a little 15 second sequence I'm calling the "pre trip". It gives the player a moment to get settled in. During the pre trip a timelapse happens and the clouds/sky changes, you get transported to the mission area, and Jack swoops in from behind you, does some funny things or starts telling a story, and you are gradually given control of the plane flight as it settles in front of you. It's visually cool, gives a chance for some character dev with Jack, allows time for the mission elements to load and basically takes you from point A - the start menu, to point B - the mission start in one smooth move. Sweet. I'm still sussing out the clouds timelapse and need to smooth out the travel speed, but the basic idea of it I think will work.

I created a blueprint called "Mission Control" that handles all of this pre trip stuff, sets all the parameters for the selected mission, and just generally initiates and keeps track of the current mission setup.

Art - I mean "Art"

Over the years my art skills have got pretty rusty, but I started to flesh out a few stand in art assets to act as place holders. The first of those was the logo, which I wanted to make look like trails in the sky. I also mocked up a super simple model of the plane you will fly with in the game - The mighty Bristol F2b.

OOOOOOOOOO purty

Probably the best 3D model ever made

Where it's at 

So that covers a lot about what's been involved in getting things to this point. Right now it's all still something I'm just bashing out a few evenings a week, I'm happy with the progress however. It's got a long long way to go, but here is a video of it all together.