Morrowind didn't actually have loading screens on the world map. If your computer was slow, or you played a console version it would load every now and then though, but on a decent computer you wouldn't be effected by the world loading/unloading around you. Oblivion and Skyrim were the exact same (though technological advances would make it less obvious).
|
I literally played morrowind 2 hours ago. If you crossed a chunk boundary, sometimes the game would pause and you'd get a loading bar down the bottom. For example, this video: http://www.youtube.com/watch?v=Whz-LQlbI-U
Oblivion and Skyrim do a better job of streaming the load in the background - you don't run into a loading bar. |
I don't know if you care to share any more insight on this subject, but I'm trying to find a way to handle a strict map size... but its currently not fast enough
I need 2000x2000x5 but everything I've tried (including 100x100 chunk saving as you move around) is fast enough. Any ideas? |
Forgetting about mobs and objects, because those are very easy to figure out in terms of loading only what you need...
I'm trying to load and save a 2000x2000x5 map. This size map is only supported at run time *you can't make a 2000x2000 map in dmm* The system would need to be able to load a 100x100 cell pretty much within an instant, and then we need to be able to load ~4 cells at once (for corners cases). All I'm saving about the turfs I wish to load is x,y,z and type as text. |
Ok, I get it. But do you really need to load 100x100 chunks at a time? You can go with a smaller size based on your view size, for example using a relatively smaller one 25x25 would be much faster. Even if you use smaller ones you wouldn't actually detect the difference in loading.
|
Thing is, you don't really need to load things you do not see. 10000 tiles versus 625 tiles makes a large difference.
|
The smaller you're making the size though, the less impactful each load will be but the more often you're loading, with more and more clients that could get quite intensive.
|
Here's the implementatoin I whipped up dirty and quick:
#define BLOCK_WIDTH 25 You just call check_load(x,y) with your coordinates and the code does the rest. |
Minecraft is slightly more complicated than that, because you can't describe minecraft maps as a single 2D array of Z-values. There are arches, caves, etc. Caves can stretch across multiple chunks. But I wouldn't be surprised if diamond-square was part of the array.
and yes, it'd be tricky to chunk up a BYOND world properly, particularly a multiplayer one. But it's absolutely doable. And 'seamless' is an analogue scale, not digital - Morrowind puts towns in the world map, Oblivion and Skyrim don't... but Morrowind also has loading screens at chunk edges that Oblivion and Skyrim sometimes don't. Tradeoffs can be made.