Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Volo Airsport - Wingsuit Skydiving Simulator

Discussion in 'Made With Unity' started by Tinus, May 14, 2010.

  1. Tinus

    Tinus

    Joined:
    Apr 6, 2009
    Posts:
    437
    Hey all,


    Next to talking gibberish about game audio technology I'm also actually developing a game!

    Volo Airsport is all about falling through the air in the most gracious way you can imagine. Visually it is in very early stages, as you can see:



    But for the last eight months I've been prototyping a fully physics-driven flight model, and things are really starting to come together on that end.

    It looks better in motion, so:
    Youtube - Check out the trailer!

    All of that is completely physics driven, nothing is animated. The limbs are all individually simulated using rigidbodies, a custom aerodynamics system, and custom motorized joints.

    If anyone is interested, I've started a development blog. I've already posted a retrospective on the development so far, in which you can view videos from very early prototypes and see how utterly wrong everything started out. :wink:


    Update 30-09-2010:



    Youtube - Volo Concept Trailer

    I took some time to do a first trailer. First some real-world footage from Phoenix Fly to establish the context, and then some of the latest footage. Enjoy!

    Hope you guys like it, cheers!
     
    Last edited: Oct 2, 2010
  2. TwiiK

    TwiiK

    Joined:
    Oct 23, 2007
    Posts:
    1,729
    That looks spectacular.

    Not sure how interested I would be in a game like that, but for what it is it looks amazing. *thumbs up* :)

    The audio is great as well.
     
  3. bigkahuna

    bigkahuna

    Joined:
    Apr 30, 2006
    Posts:
    5,434
    There was a fellow, some months back, who asked if doing something like this was possible... guess it is! Looks very cool. This is something I would never do in real life, but would definitely like to play with on a simulator.
     
  4. Tinus

    Tinus

    Joined:
    Apr 6, 2009
    Posts:
    437
    Thanks! Can I just ask: why don't you think you'd be interested in playing? I'm quite curious to know what factors of the game do or don't grab people's interests. :)

    Heh, I remember asking myself that question many times during the last couple of months, but at each step of the way it is turning out that indeed: yes, you can. Just start, and then keep at it. I knew relatively little about physics, aerodynamics, or Unity programming when I started, but it's all working out now. :)

    That's what I'm going for. A decent depiction of how it works, and why it's just so much fun to do, but without any real-world side-effects. Like death. ;)
     
  5. fallingbrickwork

    fallingbrickwork

    Joined:
    Mar 16, 2009
    Posts:
    1,072
    This sounds amazing. Can't wait to get home to view the video (can't seem to get it on my iPhone at the moment). I'll post some feedback later... That said, it sounds special.

    Regards,
    Matt.
     
  6. Alex Mat

    Alex Mat

    Joined:
    May 14, 2010
    Posts:
    177
    Is there a ground effect when the controller is at 1-2 meters from the ground?
     
  7. Tinus

    Tinus

    Joined:
    Apr 6, 2009
    Posts:
    437
    Not yet, but I plan to build that in. I'm working on some sketches for modelling fluid mechanics and streamlines, and the final model will hopefully allow the air pressure beneath you to increase as you get real close to the ground.
     
  8. Alex Mat

    Alex Mat

    Joined:
    May 14, 2010
    Posts:
    177
    Wouldn't that be alot simplier if you just cast a ray down? :)

    But if you want to be as close as reality, good luck! :D
     
  9. gamesurgeon

    gamesurgeon

    Joined:
    Oct 11, 2009
    Posts:
    427
    This would be awesome on the iPhone with the accelerometer.
     
  10. Tinus

    Tinus

    Joined:
    Apr 6, 2009
    Posts:
    437
    Yes, it would at first, definitely. But here's what I've learned so far: If you put in the extra work and build real deep and solid mechanics, you don't just get ground effect, you get a whole lot more. That would include turbulence, crosswinds, vortices trailing behind you in which your pilot chute can get caught, and much much more. It means a comprehensive model is required, sure, but it allows for so many cool things! A large part of the game right now is just discovering what is possible, and then figuring out why. And that's even for me as the designer! I had no idea I could do a crazy blackflip thing while writing the code, the game just allows me to do it.

    It is emergent properties like those that make the game interesting for me, and for the people I've seen play with it. A playtest session yesterday had hundreds of these moments:

    And that's how we discovered a new trick. Not because it was hidden in a command-list and then triggered to play a specific animation, but because the mechanics allow you to really perform a corkscrew.

    The thing is, I think, if you hardcode specific behaviours like ground effect into the game it might not cause that interaction between the game mechanics that allow all these other cool things to happen. I'd hate that, because the feeling of serendipity is just too good. :)
     
  11. Tinus

    Tinus

    Joined:
    Apr 6, 2009
    Posts:
    437
    Good call, and one that I've heard before. I'll keep it in mind. :)
     
  12. Alex Mat

    Alex Mat

    Joined:
    May 14, 2010
    Posts:
    177
    You're right, this gives some magical touch to the developpment.

    I should take your point of view in my project dev, as I use tricks to my content generation and use, because I'm too lazy to build something more stable and "better".

    You should give a try to another air sports, like base jump (or even try to simulate bird's mechanics)

    I hope that your project will continue as long as it can!
    :wink:
     
  13. Tinus

    Tinus

    Joined:
    Apr 6, 2009
    Posts:
    437
    Ah, we're all lazy from time to time. Lord knows I can be. :wink:

    Anyway, I've got plans to expand the game to include normal freefall and base-jumping. Also: Proper simulation of ram-air parachutes, paragliders, airboards, you name it. All I'll need is some funding. ;)

    Anyway, that is another reason I spend a lot of time figuring out good mechanics: It means I'll be able to use my existing code to model all those other ways of flying too, and let them all work together.
     
  14. CoatlGames

    CoatlGames

    Joined:
    Apr 25, 2008
    Posts:
    773
    excellent idea, those are the kind of games im interested lately
     
  15. ColossalDuck

    ColossalDuck

    Joined:
    Jun 6, 2009
    Posts:
    3,246
    The amount of math that must have required... You are my god.

    Anywho, looks gggrrrrrrrrrrreat.
     
  16. J_P_

    J_P_

    Joined:
    Jan 9, 2010
    Posts:
    1,027
    Looks top notch! I was really close to making a sky-dive racing game -- the feeling of falling in games can be a ton of fun, but is rarely used as a focus in games.
     
  17. legendarylugi

    legendarylugi

    Joined:
    Feb 13, 2010
    Posts:
    61
    Wow, as a novice Unity user with a flight obsession, I would love to see your source code (unless it's something you want to keep private).

    The whole sim looks fantastic so far. I'm totally digging what you're saying about how good mechanics lead to emergent behavior. Elements of gameplay that develop organically.

    My only question is, what direction are you ultimately going to take it in? Sim, or game? Because as a game it could fill quite a unique niche.
     
  18. Tinus

    Tinus

    Joined:
    Apr 6, 2009
    Posts:
    437
    Heya, legendarylugi. Thanks for the feedback!

    I'm still figuring out where to go with the game. There's a whole bunch of people that would love to see the game grow into something big. On the other hand, I certainly cannot do that on my own. I've got some help on the character modelling side, there's a small but dedicated community starting up, and there may be some opportunities to get some funding going...

    For now I'm focussing on getting wingsuits right, while trying to design the code to be reusable for other skydiving-related sports. I'm thinking of normal freefall, BASE, skysurfing, parapente, the whole lot. That's all quite a bit off, as I've still got to lay a whole lot of groundwork to support all that.

    As the game matures a bit I'll definitely go into considerable depths of the code on the project blog, and I'm also considering going open source like the Wolfire guys are doing with Overgrowth. The code is a prototype-ish mess right now though, so you'll have to wait until I fix it up a bit. ;)

    Oh, here's the community forum: http://flokas.de/baseforum/viewforum.php?f=66. There's some brainstorming going on regarding possible features, user mods, etc. If there's anything you'd like to see, hear or do, don't hesitate to let me know. :)
     
  19. legendarylugi

    legendarylugi

    Joined:
    Feb 13, 2010
    Posts:
    61
    Well, see, the reason I found this thread was because I am planning a flight sim of my own (not skydiving, though) and was at a loss for how to get started, being a fairly novice programmer with only a basic working knowledge of physics.

    I'm very curious about how you're simulating airflow, as you said in your blog, because that was one of the first things I noticed when working with the physics engine, that there's not an accurate drag model. Two objects of different sizes but otherwise the same physical properties will fall at the same rate regardless of drag, as if in a vacuum. It seems "drag" in Unity is merely dampening of force, not affected by the surface area.

    Anyway, you've got a new fan.
     
  20. Tinus

    Tinus

    Joined:
    Apr 6, 2009
    Posts:
    437
    Airflow is along one uniform direction along the entire level (although it can change over time), no actual fluid mechanics yet. I do some simple turbulence by adding a Perlin noise component to that uniform direction, which gives it a lot of life cheaply. All lift/drag surfaces can listen to airflow at their own position though, so they're ready for properly simulated streams. My drag algorithm is a bit basic: For each object I put the drag algorithm on it calculates a reference area. I can also set drag coefficients for those angles of attack (in 3d space) that are most characteristic of the object, and which it then interpolates between. From there I just use the well known formula:

    Code (csharp):
    1. dragForce = 0.5 * airPressure * pow(airSpeed, 2) * referenceArea * dragCoefficient
    I do this for a few contact points around the surface and sum up the resulting forces. Then I just apply it using the Rigidbody's ApplyForceAtPosition method.

    It's pretty basic, and for a single object it looks a bit off. The trick is that I've built my character out of many small components, all of which have this algorithm. When they all interact it looks OK. Furthermore, I'd love to try my hand at some more complicated stuff like X-plane does, but I'm not sure X-plane's approach would work with constantly changing shapes like the human body.

    I've got some ideas for increasing the accuracy, but I'm working on things like networking first. :)
     
  21. psychicparrot

    psychicparrot

    Joined:
    Dec 10, 2007
    Posts:
    884
    That looks absolutely amazing! I love it - can't wait to play :)
     
  22. Saeblundr

    Saeblundr

    Joined:
    Mar 31, 2010
    Posts:
    10
    This is hands down the most exciting game, development wise, i have seen.

    GREAT work, keep it up, and you have a new subscriber to the blog!
     
  23. gtjuggler

    gtjuggler

    Joined:
    Nov 13, 2008
    Posts:
    238
    This is absolutely epic. Not using that as a term to describe coolness. . . It's freakin sweet, but it really makes you appreciate the grandeur and wonder of freefall.
     
  24. Vert

    Vert

    Joined:
    Mar 23, 2010
    Posts:
    1,099
    Fantastic! It looks accurate enough for me! Only thing is, shouldn't you lose all your drag when nearing the ground? When the character seemed only meters above the ground in the video it seemed like there was too much resistance as if the player isn't falling fast enough. Maybe its just me, after all its 11:14pm where I live and I have had a long day.

    Great job, I can't wait to see your finished product!
     
  25. Tinus

    Tinus

    Joined:
    Apr 6, 2009
    Posts:
    437
    @psychicparrot, Saeblundr, gtjuggler, MakerOfGames: Thanks guys, I'll try and keep up the good work. :eek:

    @MakerOfGames: The suit in the video gives you speeds of around 150-180km/h for straight flight, but high performance suits (like the Vampire3 from phoenix fly) should let you go much faster than that. Some real-life wingsuiters have also commented that doing crazy aerobatics should result in a much bigger drop in altitude. So yeah, there's a load of things that still need a lot of tweaking as far as drag goes.

    Another problem is that the programmer-art I put in there does a really poor job of conveying a sense of speed. The terrain still doesn't have any features that give you a sense of scale, there's no motion blur, etc. Hopefully flying at ~170km/h will feel fast once those things are in the game too. :)

    Current activities

    Anyway, first things first. I've decided to throw away my prototype code and start building the system from the ground up. Things like networking are features that should be in the architecture as soon as possible, and I've discovered that trying to retrofit them results in a big mess. I'm taking some time to design a small networking framework to encapsulate the different responsibilities for any networked game component (hopefully hiding the network implementation from the game logic), which should make the building process easier. :)

    I'm also trying out a networked event system to go along with that, so that events can optionally be sent off to other machines much like RPCs.
     
  26. Tinus

    Tinus

    Joined:
    Apr 6, 2009
    Posts:
    437
  27. bigkahuna

    bigkahuna

    Joined:
    Apr 30, 2006
    Posts:
    5,434
    I absolutely LOVE this project! The movement in the video looks so realistic, very convincing. You know this project is just -screaming- for the new "soft bodies" features that will be coming with Unity 3.0.

    What are you using for an input device? Is it some sort of VR device or joysticks? Will the final product be a commercial app? Can't wait for a release as I'm dying to give it a try.

    Incidentally, nice job on the terrain also, looks good!
     
  28. Tinus

    Tinus

    Joined:
    Apr 6, 2009
    Posts:
    437
    Thanks, it's really great to hear that the movement looks so convincing; that's been a major design goal for the past year.

    Yep, I could use softbodies for all ram-air surfaces, i.e. the wings, and the parachutes in the future. I think I could even use them in them to actually simulate the wing, not just cosmetically. Heh, this would then actually be the first game to use cloth physics for more than just a gimmick. ;)

    It's going to depend on several factors:
    - System requirements: I'm already using 9 rigidbodies for each character and I have about 4 to 5 more planned, so I have to be careful on what additional components I add. I might offer various underlying physics models so users can choose their level of detail themselves.
    - Network requirements: I'm already wondering whether I can really sync the current setup over network; adding complexity here will also make this a little more difficult. I'll find a way, I'm sure, but added complexity means added development time.

    So I'm thinking about it, and given time it will probably happen. :)

    I'm currenty using a normal X360 gamepad for input. Basic setup is: pitch and roll on left thumbstick, yaw on shoulder triggers, camera on right thumbstick, and the facebuttons allow you to close wings.

    The control system changes the way it interprets your input based on his current situation (angle, speed, etc.) There's a bunch of stuff happening to translate those inputs to motor signals for each joint. I'm trying to set up the control system in such a way that I (or some modders) can add their own input devices and set up the relations to the character's muscles.

    Finally, I'm developing this as a kind of 'Forza' or 'Gran Turismo' for all things related to falling from great heights, so yeah, commercial product! I'm steadily working towards an early alpha release.
     
  29. KarelA

    KarelA

    Joined:
    Dec 30, 2008
    Posts:
    422
    I am letting my imagination fly here. :D Playing with your friends online. This game would rock.
     
  30. adriaanza

    adriaanza

    Joined:
    Jun 24, 2010
    Posts:
    41
    Excellent stuff man. Even though it already looks like fun, it will be interesting to see a game shape around this physics prototype.

    You talked about funding... well, if you ever decide to share some of your code for a price, let us know, I'm sure a lot of people will be interested.
     
  31. Tinus

    Tinus

    Joined:
    Apr 6, 2009
    Posts:
    437
    Woohoo! Just got featured on Rock Paper Shotgun!

    Interesting! I'll give it a think. I certainly want to share some of the code with the community; both for helping other games out, and allowing people to create mods. In what form or shape though, I'm still working that out. :)
     
  32. Alex Mat

    Alex Mat

    Joined:
    May 14, 2010
    Posts:
    177
    Yeah, but if you want the ability to mod your game, allowing the eval() function is a must :)

    I bet ten bucks that there will be a glider as a mod :p
     
  33. tatelax

    tatelax

    Joined:
    Feb 4, 2010
    Posts:
    1,168
    Wow. This game looks so fun. Cant wait to see it!
     
  34. Tinus

    Tinus

    Joined:
    Apr 6, 2009
    Posts:
    437
    I certainly hope so. :wink:
     
  35. vlk2

    vlk2

    Joined:
    Nov 4, 2009
    Posts:
    43
    This is a very good idea and a very good implementation. The coolest stuff i seen in the showcase forum so far.
     
  36. Tinus

    Tinus

    Joined:
    Apr 6, 2009
    Posts:
    437
    Thanks Vlk, appreciated. :)
     
  37. rosenkrantz

    rosenkrantz

    Joined:
    Oct 6, 2009
    Posts:
    40
    Love it. Love the creative nerve that starts kicking when I see top class work. This is, in lack of better words, delicious!

    Show us more, show us much more.
     
  38. kinifioluss

    kinifioluss

    Joined:
    Jan 14, 2010
    Posts:
    32
    i just wanted to tell you it looks great and I know there is another game that just posted like yours but I like your style better
     
  39. Epic

    Epic

    Joined:
    May 30, 2010
    Posts:
    76
    *drewls ovver screen
     
  40. Tinus

    Tinus

    Joined:
    Apr 6, 2009
    Posts:
    437
    Hey guys! I've just been up all night editing a Volo trailer for a contest deadline that kind of slipped my mind (oops!)



    Here it is, in all its caffeinated glory: http://www.youtube.com/watch?v=5NVw7Wk-5v0

    It starts with some epic footage from Phoenix Fly, just to make sure anybody unfamiliar with wingsuits is on the same page. After that, gameplay! Montaged! Edited! Hope you like it. :)
     
    Last edited: Oct 2, 2010
  41. sonicviz

    sonicviz

    Joined:
    May 19, 2009
    Posts:
    1,051
  42. Tinus

    Tinus

    Joined:
    Apr 6, 2009
    Posts:
    437
    Aha! Great video there, I forgot all about that one! Very fitting, too. :)

    Anyway, variation and customization of the characters will happen after the core of the game is working properly. In the mean time, here's a look at some new freeflying physics: http://www.youtube.com/watch?v=YXBFa57ux9w

    Mr. Wingman is now in dire need of a more advanced motion synthesis controller, as currently he flying in a very clumsy fashion. :)
     
  43. sonicviz

    sonicviz

    Joined:
    May 19, 2009
    Posts:
    1,051
    Looks great, except the ground rush is a little slow...it's a lot faster than that, especially below 500m!
     
  44. Tinus

    Tinus

    Joined:
    Apr 6, 2009
    Posts:
    437
    True that. The problem is that it is really hard to get a sense of scale with a single looping texture being the only thing visible; right now everything is perceived to be a lot smaller than it really is. I recon that with some proper environment design things will start to feel a lot faster.
     
  45. Tinus

    Tinus

    Joined:
    Apr 6, 2009
    Posts:
    437
    Moving steadily towards the first alpha release! I went back in time to a simpler body shape, the reduced complexity of which makes it easier to tweak. The drag model for the wings changed as well, so stalling and speed management work much better.

    I've spent ages improving the handling and feel, and I finally feel satisfied with how it works right now. It's stable, but not too stable; it's smooth, but not too smooth. :)




    More soon!
     
    Last edited: Dec 11, 2010
  46. dogzerx2

    dogzerx2

    Joined:
    Dec 27, 2009
    Posts:
    3,964
    this is looking sweet!

    you should get slightly better landscapes that make justice to the awesome physics!
     
  47. Tinus

    Tinus

    Joined:
    Apr 6, 2009
    Posts:
    437
    Thanks!

    The terrain needs work, yeah. I have to do some testing with the terrain system though. It seems to be designed for low viewing angles, so viewing it from up high if very performance hungry. Once I've figured out some tricks in using it wisely the visuals will get a facelift.
     
  48. sh0v0r

    sh0v0r

    Joined:
    Nov 29, 2010
    Posts:
    325
    Very very cool Tinus!

    A question about the doppler sound effect on the rings...are you emitting a sound from the rings to produce that effect?

    Can I make some suggestions relating to your camera, currently it looks like its pinned on the chest area. Add some smoothing to the look at target. This will allow the character to move around a little bit in front of the cameras so it looks like the camera is an observer, instead of being attached. e.g. if you bank left the character will drift to the right of the screen and vice versa.
    In addition allow for some distance damping based on speed so that as you accelerate the character pulls away from the camera a little, avoid FOV shifts though. :)

    You might find my little project interesting, its a semi simulation of a Lunar Module low gravity flight. www.shovsoft.com
     
  49. Tinus

    Tinus

    Joined:
    Apr 6, 2009
    Posts:
    437
    Yeah, the there´s a looping whitenoise sample on all objects that should emit a wooshing sound. Their volumes are controlled by the velocity o the player, so you only hear them when your close and moving fast.

    Those camera changes are on the roadmap. Indeed, they would add a lot to the sensation of momentum. I briefly tried using acceleration values but they were too extreme, so next I'll experiment using the jerk (or jolt, if you're a Brit). FOV modulation was dismissed very early on, most of the time it looked horrible.

    I'm downloading LunarFlight now, the youtube footage looks promising! It's great that more people are exploring flight lately. :)
     
  50. Tinus

    Tinus

    Joined:
    Apr 6, 2009
    Posts:
    437


    Added an extra joint to the back to aid smoothness in motion, and to prepare for the integration of a 3D wingsuit model. As suggested, I implemented a chase-cam that is loosely coupled to the player. The result is much more dynamic!

    Here's a test with (purely aesthetic) cloth physics. I'm not going to use it, unfortunately. It's too slow, and won't look right at high speeds. Instead I'm going for a bone-based animation. :)