[Progress - 19th January] Flight Physics

  • 2 Replies
  • 309 Views
*

Mark

  • Wired Games
  • Administrator
  • Commander
  • *****
  • 255
    • View Profile
[Progress - 19th January] Flight Physics
« on: January 19, 2017, 11:15:45 PM »
Hey all,

This is my first progress post in a while! Not because I haven't been working away on UoN, I have, but simply because I had so little free time to do so.

Thankfully early is the year, from January to March, is a quiet time at work and I intend to make the best of it for Universe or Nothing.

To kick that off, I've been doing some necessary work on the game engine. At the moment that means integrating a new physics engine. Why integrate a new engine? Well the one I was using before was not designed to load physics collision meshes dynamically, and I need dynamic collision meshes for the mod system.

The integration work is almost done, the mod system now uses OBJ model files for collision meshes. I chose OBJ files because they are quite simple and the vast majority of 3D modelling software can export them.

This work on physics has me thinking about the flight model again. Initially, for network performance reasons, I was going to have some amount of "drag" in the flight model. Drag slows all movement over time, and this prevents too many objects moving at once (which could cause lag). It also makes flying a bit easier, since the spaceship acts more like a plane than a

However, having been able to test the network code in UoN for over a year now I have realised that we can support quite a number of moving objects. I would still use a very small amount of drag, so that everything would slow down and stop eventually, but it wouldn't be noticeable while flying around. Plus, just because drag makes flying easy, doesn't mean it make flying interesting or fun. :)

So I am going to experiment with a non-drag based flight system, where you keep going in a direction until you apply force in the opposite direction. This means that you can thrust in a direction and then spin around (attacking enemies) without slowing down or changing direction.

A flight system like that can be really difficult to fly, so (like a number of other games) there will be an automated flight assist system to keep you going where you want to go. It will use the thrusters and engines to stop drift and match your desired speeds. It won't be perfect though, the thrusters and engines have limited power so if you're pushing the ship hard (like trying to make a tight turn at high speed) they may not be able to keep up and so you will still drift. This flight assist system can be enabled and disabled at will.

You can of course go to Engineering and give more power to engines, giving you more control in those high speed turns, but that will increase the potential of your engines becoming unstable.

Due to data limits in multiplayer there will have to be an artificial maximum speed limit for entities (ships, objects etc.) within the game, but it will be "plenty fast". :)

Of course this is still all experimental, and there will be plenty of gameplay testing to do before it is finalised.

Before that, I'd love to get some input on it from you guys.


Thanks for reading!

Mark




*

Blaze

  • Lt. Commander
  • ***
  • 124
    • View Profile
Re: [Progress - 19th January] Flight Physics
« Reply #1 on: January 19, 2017, 11:29:39 PM »
I think you will need to aproximate the flight as close as possible, so with the lowest amount of drag, if any.

Do you interpret other ships not visible with naked eye (anything farther than a few km) as a simple short vector with it's orientation and speed? How many objects does it take for it to become a performance issue?

*

Mark

  • Wired Games
  • Administrator
  • Commander
  • *****
  • 255
    • View Profile
Re: [Progress - 19th January] Flight Physics
« Reply #2 on: January 19, 2017, 11:53:49 PM »
I think you will need to aproximate the flight as close as possible, so with the lowest amount of drag, if any.
I am not sure what you mean by that, sorry.

Thinking about it now, I could have no drag on ships at all. The game can handle thousands of dynamic (moving) objects at a time, though probably closer to 100 within 1km of each player ship (as these need to be actively synced with the player(s)).

I would have a miniscule amount of drag on non-ship entities like asteroids and debris, such that it will probably take an object about 30 mins to go from max speed to stationary. That way if you are playing for hours you won't have a buildup of active physics entities taking up CPU cycles.

Do you interpret other ships not visible with naked eye (anything farther than a few km) as a simple short vector with it's orientation and speed?
Yes indeed, the "radars" will display this info, and the Helm HUD will display it as well.