GarageGames / Torque3D

MIT Licensed Open Source version of Torque 3D from GarageGames
http://torque3d.org
MIT License
3.35k stars 1.2k forks source link

[Feature Request] Large world support #1917

Open HeadClot opened 7 years ago

HeadClot commented 7 years ago

Would it be possible to get large world support in the main branch of T3D?

Here is what I mean by that -

  1. Terrain paging via Terrain Master
  2. Origin Shifting Via PhysX - http://docs.nvidia.com/gameworks/content/gameworkslibrary/physx/guide/Manual/OriginShift.html
  3. Expose Origin shifting as a component

Since we already use PhysX This is part of the issue solved. However It would be dependent on getting physx 3.4.0 into the engine. I know that @rextimmy has a PR for that though. https://github.com/GarageGames/Torque3D/pull/2186

Areloch commented 7 years ago

This is actually something that's come up a good bit, and already had some eyeballing done. It's not a perfect solution, but it'd be a good first step, in that I started looking at a level cell loading system. Think in games like Skyrim or the like, where the world is separated into a grid of level cells. As you move through, it progressively loads and unloads cells in the area around the player.

I already started some early investigative R&D along those lines, and it's looking promising. It wouldn't fix ALL issues, such as really extreme distances like your #2 touches on, but it'd definitely let you support moderately sized open worlds a la the elder scroll games. Correcting #2 is trickier, as it requires client-side tricks, and that touches a lot more systems, but it's certainly not impossible!

HeadClot commented 7 years ago

@Areloch - This is really good to hear. Let me know if you need any further help. I am not programmer but I am an artist... so I could provide some test height maps if needed. Let me know if you need anything. :)

I am really excited for this. :)

ghost commented 7 years ago

Even modern RPG MMO games that come out now often do not have larger worlds than the usual 4x4 km or similar.

John3 commented 7 years ago

@HeadClot is not the same, may this can help? https://github.com/GarageGames/Torque3D/pull/954

HeadClot commented 7 years ago

@John3 - That PR looks like it just handles the seams between terrains. I could be wrong though.

John3 commented 7 years ago

Yep.. just that. Maybe is useful for you, is not a terrain paging.

HeadClot commented 7 years ago

Hey this is just an update on this issue. I found a cell based level system however it is part of a bigger project called Open Simulator and is written in C#. It is under the BSD license and is fully open source.

That said - It could be a very good reference for large scale multi-region worlds in Torque 3D.

HeadClot commented 7 years ago

A few presentations on how to enable massive worlds :)

https://cesiumjs.org/massiveworlds/

Bloodknight commented 7 years ago

At the risk of sounding like the master party pooper (all be it one who would like to use such a feature) There was once a discussion about which components should be part of a game engine vs which should be addons/plugins. I cannot help but feel that this in particular is one of those areas where the discussion should be considered, particularly since the terrain systems is a needy part of the engine (at least imo)

HeadClot commented 7 years ago

@Bloodknight Ah good point.

HeadClot commented 6 years ago

Hey I updated the original post for those not aware. Maybe we could expose this as a component? Mainly for modular reuse in the engine :)