Site Maintenance & Dev Notes

All Manner Of Distractions

No development stream this week, though perhaps on Friday. Turns out our hosting agreement was due for renewal, and we took this time to make the switch to much more flexible cloud-based hosting.

So yes, we’ve been working on the website the past two days! We’re not entirely done, but nearly there. Right now the downloads for all existing versions of Volo and Aurora are going back online, and all the old blog content will be restored.

Oh, we’ve added a caching system which improved page load times a gazillion times.

Next up:

  • A torrent super seeder for all current game downloads (saves us bandwidth!)
  • Forum software (hey let’s chat, finally!)

News From The Frontlines, or: Volo Spring Cleaning

Two weeks ago we started working wit the mantra: “Out with the old, in with the new!”.

The Unity project still contained a lot of old, unmaintainable code written in 2010. For a long time I’ve also been afraid to bring in my newer aerodynamics code because it would mean re-balancing the flight model all over again. It’s been needed for a long time, because having outdated-but-important parts in your project that you’re afraid to touch really slows you down!

Take the magic wingman-rolls-to-the-right issue for example. Or wait, take keyboard controls. With just the keyboard you have a lot less control over the character, which would be fine if the character didn’t have the natural tendency to pitch down ridiculously whenever you let the controls be. Without touching the core of the handling model it is really hard to fix those problems!

With lots of additional design and programming experience under my belt I’ve bitten the bullet, and am now revamping these parts.

Meanwhile, Frank is getting up and running with CoherentUI, a user interface toolkit for Unity that is based on web browser technology. We’ve been looking for a flexible user interface system for years, and we’ve finally hit upon something that impresses and surprises us. We’re nearly done throwing the old test systems out (NGUI, Noesis), and V3 will have its extremely simple interface powered by it.

We’ve done a lot of work making the input binding system flexible. Mapping any form of keyboard, mouse and joystick input to any game action will now work! One of the last things left to do on this end is to make our basic CoherentUI system work with the binding system, but that should be done this week.

You might have seen on the Twitch.tv that I’ve been testing online multiplayer networking code. Those experiments have brought an important limitation in Unity to light! While not insurmountable, we’ll have to think carefully about how we tackle this one.

It boils down to the following techno-mumbo: A peer-to-peer setup is quite feasible, but is susceptible to disagreement on collisions, and cheating. Preferably we would do an authoritative client-server setup, but that means we need to be able to resimulate multiple physics steps in non-realtime for a previous point in history, which with Unity’s current PhysX implementation is not possible.

We either go with peer-to-peer and live with the facts that cheating is easier and that we can’t run logic on the server; or we go with another physics engine. Bullet Physics is an obvious choice, but from what we can tell using it in Unity is not trivial. Not with our limited experience in low-level interoperability, anyway. (If you’ve ever wrapped multiplatform low-level libraries in C# and want to help, let us know!)

 

So that’s what we’ve been up to! I still don’t want to commit to a date for V3, because I just know I’ll embarrass myself. But it feels like it’s pretty damn close!