Monthly Archives: October 2011

Level Design for Wingsuit BASE

After a bunch of play-testing I’ve gathered some notes on what works in the current level and what doesn’t. Eventually these notes should turn into a sophisticated set of guidelines for Volo levels, but right now they are just little scribbles.

Here’s a shot of the island geometry used in the latest playtests:

Perspective view of the island. All atmospheric effects are turned off for clarity.

Graphing flight paths over a top-down map of the island and rating them based on enjoyment helps. Nothing fancy, I just take a rough note of the path taken and whether it was a fun flight or not. This is all manually done in a photoshop file for now, but it’s already clear that an automated tool would be of great use here.

'Fun' map. Green lines represent interesting flight paths, red ones represent boring ones.

Some early conclusions:

  • Long slopes that roughly match your glide ratio provide an engaging flight.
  • Ridged terrain that presents you with all manner of creases and canyons to traverse are by far the most engaging.
  • Short sections of really steep terrain, really flat terrain, or valleys can provide interesting contrast. When these sections get too long they quickly become boring. The give you a relatively calm flight, and because of the limitations of the terrain system they contain very little interesting detail to look at or fly through.
  • There’s a huge steep cliff face and a prominent valley right in the middle of the island. While the valley is interesting enough in a visual sense, the cliff isn’t, and neither are particularly fun to actually fly near.
  • There are additional cliffs that lack visual appeal, and are cast in way too much shadow to boot.
  • Player’s usually to fly in parts of the island that are well-lit, avoiding the side of the island cast in shadow.
  • The ocean sucks, but I knew this already. It’s not interactive in the way you would expect, and it reveals itself to be quite ugly when you get close.

Most of this common sense, but if I can formulate these rules clearly I might be able to bring them straight into World Machine. 🙂

 

P.S. The earlier title, “Level Design for Proximity Flight”, might’ve made it seem like this post discussed level design for Skydive: Proximity Flight. Sorry about that.

Progress, and a Thank You

(Shame on me, and egg on my face; this blog needs a new post so very badly.)

First, it’s video time!

This is a new level I created for the Think Design Play conference, where I was showcasing my game last month. It’s an 8km square island with a large peak and some valleys. I made sure there are plenty of interesting creases and paths to explore no matter where you look. It uses some assets from the Unity Asset Store: The Nature Pack and Cloud System to be precise, both of which I haven’t explored to their full extent yet.

A user on the Unity forums asked me for some details on how I achieved this look, and if you’re interested you can find my answer here: Unity Forums: What do you guys use for realistic terrains?

Anyway, the game was very well received and I got lots of great feedback*. A crazy amount of kind comments on the video, too! Thanks everyone.

I’ve been looking into the physics and aerodynamics again. The main problem I have with it is that the current components make it almost impossible to make the wingsuit aerodynamically stable to a satisfying degree. They lack some properties that make it hard to achieve this effect. When you play for the first time this is not too much of an issue, but after a while you can notice that the amount of oscillation and illogical stalls really get in the way. I’ll stress that I don’t want to get rid of the struggle for control, as that’s one of the most interesting things about the game, but right now some of the difficulty in control is unfair and unfun.

The last couple of days I’ve been experimenting with techniques that analyze a mesh for its aerodynamic properties. For example, using a matrix of raycasts to determine profile drag in high resolution:

Using raycasts to sample a mesh for its profile area in the relative wind.

This goes some way towards the techniques X-Plane uses for its simulation. It uses an offline phase in which it analyzes aircraft geometry in painstaking detail, storing coefficients of motion that can be looked-up while the simulation is running.

I can tell that this is not the way to go for Volo. For one, a typical aircraft has a mostly static shape, whereas a wingsuit flyer’s shape continuously changes in profound ways. The aerodynamic properties of someone curled up in a ball are completely different from someone flying in normal position. Doing this kind of analysis in real-time, say on a deforming cloth mesh and animated character would be very costly in terms of performance.

My current flight model might not be the most physically accurate, but one of its major qualities in terms of play is that every microscopic limb movement has a definitely noticeable effect on play. This nuance is exactly what I want to preserve, since it is what makes playing the game so much fun. So instead I will focus on patching the largest holes in the current system.

The other issue is that my brain is too small for the fancy tricks X-Plane does, or at least lacks the necessary training in aviation to pull them off within the foreseeable future . 🙂

 

Other than Volo development I’ve been freelancing a lot, and its finally started to resemble an actual job. I also have some things underway for the Unity Asset Store! Landmass is almost ready for release, for example.

 

Thanks for sticking around, everyone! Your kind words have motivated me to get back at it, I owe you one.

 

* I have this video of a kid playing and having the most exuberant reaction when he crashed into the completely faked ocean, he felt so cheated there wasn’t any actual water! He liked the game a lot though, came back a couple of times. I must remember to upload it.