Infinite ages

General debates and discussion about the Guild of Writers and Age creation

Infinite ages

Postby Justintime9 » Mon Aug 25, 2014 3:16 pm

Just a random question: with the use of vis-regions, is it possible to create ages that basically go on forever? Like, let's say Cyan kept expanding Ae'gura. Could they have done that indefinitely if they'd used lots of vis-regions? Because the main hindrance to that is just lag right? Too much to render at a time.
User avatar
Justintime9
 
Posts: 1188
Joined: Sat Sep 29, 2007 5:37 am

Re: Infinite ages

Postby Mystler » Tue Aug 26, 2014 2:42 am

The problem with infinity is that it is infinite. Unfortunately, I didn't get my hands on a PC with infinite RAM and HDD yet... ;)
User avatar
Mystler
 
Posts: 116
Joined: Sun Mar 22, 2009 4:55 am
Location: Germany

Re: Infinite ages

Postby Sirius » Tue Aug 26, 2014 2:50 am

I guess, yeah, it's possible. Well, not sure the size of variables would allow you to work at 1*10^8053 units, but you still have at least a few hundred (thousands ? tenths of thousands ?) kilometers of virtual space available.

As far as I know, the limit of whether an Age is possible, is not its volume, it's how much data you put in it. You can block rendering of objects with VisRegions, however the more objects you have in your Age, the more that will be put in your RAM and VRAM (VRAM also includes textures). Also, there is the problem of how much collisions the engine must compute. That's why Cyan made simple colliders instead of making everything trianglemesh'd. Plus, longer loading times, etc.

However, computers can handle the task quite easily (obviously modern ones do that even better), as long as you put enough visregions. AFAIK, vertices are the main problem, memory rarely is.

Modern game engines handle the task quite easily by loading and unloading stuff as you move in the world, but Plasma doesn't do that very good (mostly because it cannot both render the scene AND load resources in the background).
User avatar
Sirius
 
Posts: 1506
Joined: Mon Jul 26, 2010 4:46 am
Location: France

Re: Infinite ages

Postby Justintime9 » Tue Aug 26, 2014 5:30 am

Interesting. So it would really be more difficult to actually build than to load. Because in Blender everything is loaded, and thus causing quite a bit of lag. So are you saying that modern game engines generate vis-regions automatically?
User avatar
Justintime9
 
Posts: 1188
Joined: Sat Sep 29, 2007 5:37 am

Re: Infinite ages

Postby Sirius » Tue Aug 26, 2014 6:43 am

Well, Ae'Gura is a big Age and has a ton of vertices, and yet, it still loads relatively fast and could be played on average computer at the time the game was out. I doubt with the current tools someone can make an Age more complex than Ae'Gura, so unless you plan on making a forest Age with high-detailed trees, you won't have to worry about memory.


I don't know about modern game engines building visregions (it depends of how the engine works, I think engines using something called BSP can do it). Generally, it's the work of the designer, making closed rooms, or putting objects to prevent all the scenery to be visible at once (mostly done in interiors).
What the engine generally does is compute the distance of the player or the camera to an object, and if it's far enough the object is either hidden or replaced by a low-poly version. It also fades real-time lighting and shadows in the same way. If the object is really far, then the engine deletes it from memory. If you happen to come back close enough to see the object, the game re-reads the model from the disk as you continue to play, and re-displays it once it's loaded. It's mostly used in exterior scenes that span across kilometers.

Minecraft is a good example of almost-infinite worlds. In it, rendering is limited to a close distance, even though the world spans across kilometers (IIRC, I read about the maximum world size being something like 1/3 of the surface of Earth). Obviously the whole world isn't loaded at once.

Plasma is unable to free and reload objects on the fly, which means hidden objects are still in memory when they aren't rendered. The only exception is in Minkata when switching to daytime/nighttime scene, but Plasma still freezes the game for the duration of the loading time.
User avatar
Sirius
 
Posts: 1506
Joined: Mon Jul 26, 2010 4:46 am
Location: France

Re: Infinite ages

Postby KathAveara » Wed Aug 27, 2014 4:59 am

Sirius wrote:IIRC, I read about the maximum world size being something like 1/3 of the surface of Earth

It's actually slightly over 7 times.
Moula KI: 17967159
DI KI: 00205116
deviantART: kathaveara
tumblr: kaththedragon

Grand Master of the Guild of Linguists
KathAveara
 
Posts: 79
Joined: Mon Jun 10, 2013 2:29 am

Re: Infinite ages

Postby GPNMilano » Wed Aug 27, 2014 6:56 am

Sirius wrote:Well, Ae'Gura is a big Age and has a ton of vertices, and yet, it still loads relatively fast and could be played on average computer at the time the game was out. I doubt with the current tools someone can make an Age more complex than Ae'Gura, so unless you plan on making a forest Age with high-detailed trees, you won't have to worry about memory.


I really wouldn't say that Ae'Gura is a complex age. It's just big. As far as complexity goes its fairly simple which is why the loading time for it is so slow compared to its size. There's very few particle systems in the age, just the one waveset, and no other advanced shading tech. Compared to an age like Kemo that was Cyan's testbed for Plasma, so it has everything from bumpmapping to particle systems, to forces on the particle systems, to wavesets, etc. And then there's ages like Tsogal that have things like shading mods etc.

Yeah, Ae'gura, not that big of a deal. Just, fairly large in terms of sheer size. Though Gahreesen, and Descent from Myst V seem bigger to me.
You can't stop the truth. IC Blog
User avatar
GPNMilano
 
Posts: 1155
Joined: Mon Apr 21, 2008 5:50 am

Re: Infinite ages

Postby Sirius » Wed Aug 27, 2014 10:34 am

Hmmm, I'm not entirely sure. Ae'Gura may really crude in some places, but it remains an Age with an awful lot of vertices. But yeah, otherwise lightmapping is kept to a minimum and there isn't any particle system (except the portal to the Tiwah). Not many objects with alpha either.
In terms of loading time, the two main factors seem to be textures and vertices.

Either way, I think as long as you avoid specularity, dynamic lights and shadows, and put visregions when you can, anything you build will be fine, because it's hard to build something really complex anyway.

Oh, and it's true Gahreesen is actually much bigger than it seems. Because the exterior area is an insane 10,000 units above the interior area. Doesn't have any impact on performances, though, and it still works perfectly.


What I like with Cyan, is that when they make a big Age, they don't overdo light and particles, while when they make a small Age or one with not much detail, they find a way to make it interesting visually (Minkata is just a huge plane, but sandstorms and fog make it interesting, Tsogal has waving grass, Direbo has a lot of projection lights and some particle effects, Gira has dynamic lighting and dynamic, smoothed shadows, and of course there's Kemo !)
User avatar
Sirius
 
Posts: 1506
Joined: Mon Jul 26, 2010 4:46 am
Location: France

Re: Infinite ages

Postby Paradox » Mon Sep 01, 2014 5:30 pm

VisRegions only save on the runtime rendering performance by hiding things that are out of sight. All of those object still exist though, they're still loaded, they're just not visible.

Dynamic loading (or paging as Plasma calls it) is definitely a weak point of the engine. As Sirius mentioned, trying to page something in at runtime results in the game freezing until the data is loaded. We tried this in Ahra Pahts and it was painful. :(
In theory that's something that could be fixed at an engine level in open-source, but it would introduce a new layer for bugs (which would be particularly hard to track down in this case).

There're other issues with dynamic loading too: the trickiest part is knowing when something needs to be loaded. If dynamic loading were to be applied to Ae'gura, you'd need to know that from the Ferry Terminal, you need to load the Great Stair, and from the Great Stair you need to load the Kahlo Pub, but you don't need to load the Kahlo Pub from the Ferry Terminal, etc.
Paradox
 
Posts: 1290
Joined: Fri Sep 28, 2007 6:48 pm
Location: Canada


Return to General Discussion

Who is online

Users browsing this forum: No registered users and 0 guests

cron