IronHorseDeveloper, QA Manager, Technical Support & contributorJoin Date: 2010-05-08Member: 71669Members, Super Administrators, Forum Admins, Forum Moderators, NS2 Developer, NS2 Playtester, Squad Five Blue, Subnautica Playtester, Subnautica PT Lead, Pistachionauts
edited December 2013
@steverock
If you guys are using a deferred lighting pipeline ontop of Unity 4, does that mean that it's Spark's deferred lighting?
Also, i know great performance and multiplatform are both goals, but does this mean that texture resolution will suffer? Or will you just scale it for low end PCs or tablets?
I only ask because the majority of Unity games i have seen have been typically low resolution. I have no clue if high resolution textures are even possible to render in Unity. (Yes, i've played around with the Unity Heaven demo, but found the textures to be sub par in comparison to Spark's capabilities still)
@steverock
If you guys are using a deferred lighting pipeline ontop of Unity 4, does that mean that it's Spark's deferred lighting?
Also, i know great performance and multiplatform are both goals, but does this mean that texture resolution will suffer? Or will you just scale it for low end PCs or tablets?
I only ask because the majority of Unity games i have seen have been typically low resolution. I have no clue if high resolution textures are even possible to render in Unity. (Yes, i've played around with the Unity Heaven demo, but found the textures to be sub par in comparison to Spark's capabilities still)
Unity has its own deferred renderer. The issue is that it doesn't do semi-transparent objects so we have to use the forward renderer for those. Unity makes it quite easy to set this up.
I don't know what the current plan is for setting texture resolution requirements, if there even is a firm plan yet, but, from memory, Unity supports importing texture maps up to 4096x4096. I believe it defaults to the max resolution being 1024x1024 and will auto-resize all imported textures accordingly, so it's possible that the projects you saw hadn't changed that setting.
Unity supports setting a variety of visual quality levels on a per-platform basis and to an extent will handle a lot of that automatically (like automatically creating different resolution versions of materials), so we have a lot of options in that regard (see more here). But the focus right now is on making a great PC game.
DC_DarklingJoin Date: 2003-07-10Member: 18068Members, Constellation, Squad Five Blue, Squad Five Silver
@Insane While gameplay is a very very very VERY big aspect I think the texture question was pretty good. Underwater games are rare as is, but underwater is utmost stunning.
Having graphics to mimic that stunning is a big plus in a underwater game id say.
Yes, textures should be able to just scale down for lower end graphics cards. I also implemented a texture streaming solution which seems to work so far, so hopefully that will get us good quality all around the world (with potential pop in artifacts)
IronHorseDeveloper, QA Manager, Technical Support & contributorJoin Date: 2010-05-08Member: 71669Members, Super Administrators, Forum Admins, Forum Moderators, NS2 Developer, NS2 Playtester, Squad Five Blue, Subnautica Playtester, Subnautica PT Lead, Pistachionauts
@insane Awesome thanks for the detailed answers! Had no idea Unity had so many levels for quality, good to hear. Ya the projects i've seen have definitely kept that default setting for texture resolutions.. such a shame for PC games to be limited by such a thing
@steverock Cool! To cut down on the pixel area that gets popped in, have you considered using LOD when the object is outside of the texture streaming range, with just an averaged singular RGB color to represent the simple shape?
Out of all my questions, the one Im mostly curious about is what the goal of the game will be? Or rather, will there even be one. Do the terms "win" or "beat the game" apply to Subnautica and will there be a failure state. Is it a game or an explorable virtual aquarium.
Out of all my questions, the one Im mostly curious about is what the goal of the game will be? Or rather, will there even be one. Do the terms "win" or "beat the game" apply to Subnautica and will there be a failure state. Is it a game or an explorable virtual aquarium.
I don't think we know for sure yet. But it won't be a purely aesthetic experience.
Is it possible to procedurally generate things on the fly?
For example, procedurally generating terrain/creatures/etc. far outside of the players view distance. If that was possible, you would have unlimited exploration. (well maybe not because the game would still have to remember and save all the places you've been to.)
If the map is procedurally generated during load, then you only have a set amount of space you can explore and you would eventually explore it all in short order. Unless UWE is able to generate incredible large maps n(say WoW size continents.)
Or if both those require too much resources or have technical limitation, UWE could make it so that when you reach the edge of a map a load screen comes up to generate a new map. (or re-load a map if you've already been there to that location.)
Say you can then go into a "world view" (think google earth) and see where you are located on the planet and which places you've explored or haven't explored and the world view map can be zoomed in/out or rotated like google earth.
I guess this turned more into a suggestion than just a question.
Is it possible to procedurally generate things on the fly?
For example, procedurally generating terrain/creatures/etc. far outside of the players view distance. If that was possible, you would have unlimited exploration. (well maybe not because the game would still have to remember and save all the places you've been to.)
@Res This is how minecraft works, afaik. It's what I assumed to be the case here, too. Although it wouldn't be too much "outside of the players view distance", rather generating as you go.
Is it possible to procedurally generate things on the fly?
For example, procedurally generating terrain/creatures/etc. far outside of the players view distance. If that was possible, you would have unlimited exploration. (well maybe not because the game would still have to remember and save all the places you've been to.)
@Res This is how minecraft works, afaik. It's what I assumed to be the case here, too. Although it wouldn't be too much "outside of the players view distance", rather generating as you go.
I could have sworn minecraft was generated during map load (or if multiplayer, when the server creates the map.)
edit: after looking it up , it does appear to generate terrain on the fly.. however, the minecraft map size is still limited. More limited than what I think a game , like subnautica, should be.
Is it possible to procedurally generate things on the fly?
For example, procedurally generating terrain/creatures/etc. far outside of the players view distance. If that was possible, you would have unlimited exploration. (well maybe not because the game would still have to remember and save all the places you've been to.)
If the map is procedurally generated during load, then you only have a set amount of space you can explore and you would eventually explore it all in short order. Unless UWE is able to generate incredible large maps n(say WoW size continents.)
Or if both those require too much resources or have technical limitation, UWE could make it so that when you reach the edge of a map a load screen comes up to generate a new map. (or re-load a map if you've already been there to that location.)
Say you can then go into a "world view" (think google earth) and see where you are located on the planet and which places you've explored or haven't explored and the world view map can be zoomed in/out or rotated like google earth.
I guess this turned more into a suggestion than just a question.
These are all issues I'm actively trying to answer right now. Initially I thought we could gen everything once, but it's becoming clear that would take way too long (like 5+ minutes probably, on our target specs, and you'd probably run out of memory!!!). There are some cool things you could do if you did that, but we've decided that's not quite worth it. So, we're taking the Minecraft approach of generating things on the fly now. It's much more smoke and mirrors, but hey, this is a game, not a scientific simulation
We'll only need the "load screen" if we can't do it fast enough, so that will probably depend on your computer. Like, if you are moving really fast and we haven't caught up yet with generation, then we'd force you to wait. But hopefully most of the time that won't happen.
As for infinite world, I guess we'll see! It would take some more engineering work, and definitely some design work (how do you make things scale appropriately, etc.). I'm not personally convinced it's worth it - finite games like Fallout3 and Skyrim have PLENTY to do inside, and I never wished they were infinite. Terraria isn't infinite either, and it's just fine.
These are all issues I'm actively trying to answer right now. Initially I thought we could gen everything once, but it's becoming clear that would take way too long (like 5+ minutes probably, on our target specs, and you'd probably run out of memory!!!). There are some cool things you could do if you did that, but we've decided that's not quite worth it. So, we're taking the Minecraft approach of generating things on the fly now. It's much more smoke and mirrors, but hey, this is a game, not a scientific simulation
We'll only need the "load screen" if we can't do it fast enough, so that will probably depend on your computer. Like, if you are moving really fast and we haven't caught up yet with generation, then we'd force you to wait. But hopefully most of the time that won't happen.
Heh didn't realize it would take that long for map generation on load, but definitely can see why it would take that long. On the fly sounds good.
As for infinite world, I guess we'll see! It would take some more engineering work, and definitely some design work (how do you make things scale appropriately, etc.). I'm not personally convinced it's worth it - finite games like Fallout3 and Skyrim have PLENTY to do inside, and I never wished they were infinite. Terraria isn't infinite either, and it's just fine.
I'm not convinced infinite exploration would be all that great either, as you get no sense of progress in a game like this. However, I do think there should be a sufficiently large enough map size to allow for a month or months of exploration and there should be the map (like the google earth feature I mentioned) to show where you've been and where you havent' been, kind of like a fog-of-war in RTS games.
Pulling a minecraft would be pretty funny where if the player goes out too far the world gets ridiculous (random cliffs jutting straight up out of a completely flat piece of land and trees practically floating in midair etc.) I think it was because memory eventually got all used up and the game had to stop using certain parameters to lessen memory use? I could be completely wrong, but beside the horrid fps I thought it was hilarious.
From what I hear, for minecraft, they tuned all the equations and algorithms to work well only so far out. Beyond that, they probably start breaking down and generating less than ideal landscapes.
Finite worlds always come with the problem of borders: How do you avoid invisible walls?
You make a round world instead of a flat map like I suggested...... problem solved... no borders.
or flat map that loops back in on itself, which would be the same thing. You reach the edge of the map and then you are on the other side of the map. This has been around since the days of Pacman. However, you make it a seamless transition between the edges of the map and if there's a map view that shows where you are at, show it as a round world. This would give you a feeling of actually being on a round planet without actually producing a round world in a map editor.
Finite worlds always come with the problem of borders: How do you avoid invisible walls?
You make a round world instead of a flat map like I suggested...... problem solved... no borders.
or flat map that loops back in on itself, which would be the same thing. You reach the edge of the map and then you are on the other side of the map. This has been around since the days of Pacman. However, you make it a seamless transition between the edges of the map and if there's a map view that shows where you are at, show it as a round world. This would give you a feeling of actually being on a round planet without actually producing a round world in a map editor.
I could see us going either way. I'm not too worried about borders - just have giant cliffs that go way above sea level. Wrap around would be cool, but then you need to make sure the edges match up some how. I suppose we could just make the edges like flat-barren land or something that would match up with anything... Yeah, I dunno. Not really swayed either way.
I could see us going either way. I'm not too worried about borders - just have giant cliffs that go way above sea level. Wrap around would be cool, but then you need to make sure the edges match up some how. I suppose we could just make the edges like flat-barren land or something that would match up with anything... Yeah, I dunno. Not really swayed either way.
Couldn't you say, copy/mirror the map at the edges to each other. So say, the west edge of the map is copied/mirrored to the east edge, so you wouldn't need flat edges. If that's technically feasible in a procedurally generated terrain..... I'm pretty sure in map editors for other games (well at least hammer since that's only one I have experience with,), you can copy/mirror like that and then put an invisible "portal" at the edges. Biggest problem would be when it comes to models/props.
As far as map size, i would be OK with a limit on map size, but the ability to move to other maps.
Say, once a player reaches a giant cliff face, they can enter a tunnel that will take them past the massive cliff face and into another large map. IDK, just a suggestion for limitlessness in a finite space
Comments
If you guys are using a deferred lighting pipeline ontop of Unity 4, does that mean that it's Spark's deferred lighting?
Also, i know great performance and multiplatform are both goals, but does this mean that texture resolution will suffer? Or will you just scale it for low end PCs or tablets?
I only ask because the majority of Unity games i have seen have been typically low resolution. I have no clue if high resolution textures are even possible to render in Unity. (Yes, i've played around with the Unity Heaven demo, but found the textures to be sub par in comparison to Spark's capabilities still)
Unity has its own deferred renderer. The issue is that it doesn't do semi-transparent objects so we have to use the forward renderer for those. Unity makes it quite easy to set this up.
I don't know what the current plan is for setting texture resolution requirements, if there even is a firm plan yet, but, from memory, Unity supports importing texture maps up to 4096x4096. I believe it defaults to the max resolution being 1024x1024 and will auto-resize all imported textures accordingly, so it's possible that the projects you saw hadn't changed that setting.
Unity supports setting a variety of visual quality levels on a per-platform basis and to an extent will handle a lot of that automatically (like automatically creating different resolution versions of materials), so we have a lot of options in that regard (see more here). But the focus right now is on making a great PC game.
Having graphics to mimic that stunning is a big plus in a underwater game id say.
@steverock Cool! To cut down on the pixel area that gets popped in, have you considered using LOD when the object is outside of the texture streaming range, with just an averaged singular RGB color to represent the simple shape?
I don't think we know for sure yet. But it won't be a purely aesthetic experience.
And I definitely hope for Early Alpha.Beta :P
Danger, yes. Have you seen that lava concept? and yes, we'll likely do early access.
For example, procedurally generating terrain/creatures/etc. far outside of the players view distance. If that was possible, you would have unlimited exploration. (well maybe not because the game would still have to remember and save all the places you've been to.)
If the map is procedurally generated during load, then you only have a set amount of space you can explore and you would eventually explore it all in short order. Unless UWE is able to generate incredible large maps n(say WoW size continents.)
Or if both those require too much resources or have technical limitation, UWE could make it so that when you reach the edge of a map a load screen comes up to generate a new map. (or re-load a map if you've already been there to that location.)
Say you can then go into a "world view" (think google earth) and see where you are located on the planet and which places you've explored or haven't explored and the world view map can be zoomed in/out or rotated like google earth.
I guess this turned more into a suggestion than just a question.
@Res This is how minecraft works, afaik. It's what I assumed to be the case here, too. Although it wouldn't be too much "outside of the players view distance", rather generating as you go.
I could have sworn minecraft was generated during map load (or if multiplayer, when the server creates the map.)
edit: after looking it up , it does appear to generate terrain on the fly.. however, the minecraft map size is still limited. More limited than what I think a game , like subnautica, should be.
no, but maybe sharknados:
http://www.imdb.com/title/tt2724064/
http://www.imdb.com/title/tt1350498/
(who doesn't like a good old thread derailment?)
These are all issues I'm actively trying to answer right now. Initially I thought we could gen everything once, but it's becoming clear that would take way too long (like 5+ minutes probably, on our target specs, and you'd probably run out of memory!!!). There are some cool things you could do if you did that, but we've decided that's not quite worth it. So, we're taking the Minecraft approach of generating things on the fly now. It's much more smoke and mirrors, but hey, this is a game, not a scientific simulation
We'll only need the "load screen" if we can't do it fast enough, so that will probably depend on your computer. Like, if you are moving really fast and we haven't caught up yet with generation, then we'd force you to wait. But hopefully most of the time that won't happen.
As for infinite world, I guess we'll see! It would take some more engineering work, and definitely some design work (how do you make things scale appropriately, etc.). I'm not personally convinced it's worth it - finite games like Fallout3 and Skyrim have PLENTY to do inside, and I never wished they were infinite. Terraria isn't infinite either, and it's just fine.
And I'm excited that Terraria 2 will be infinite.
Heh didn't realize it would take that long for map generation on load, but definitely can see why it would take that long. On the fly sounds good.
I'm not convinced infinite exploration would be all that great either, as you get no sense of progress in a game like this. However, I do think there should be a sufficiently large enough map size to allow for a month or months of exploration and there should be the map (like the google earth feature I mentioned) to show where you've been and where you havent' been, kind of like a fog-of-war in RTS games.
You make a round world instead of a flat map like I suggested...... problem solved... no borders.
or flat map that loops back in on itself, which would be the same thing. You reach the edge of the map and then you are on the other side of the map. This has been around since the days of Pacman. However, you make it a seamless transition between the edges of the map and if there's a map view that shows where you are at, show it as a round world. This would give you a feeling of actually being on a round planet without actually producing a round world in a map editor.
I could see us going either way. I'm not too worried about borders - just have giant cliffs that go way above sea level. Wrap around would be cool, but then you need to make sure the edges match up some how. I suppose we could just make the edges like flat-barren land or something that would match up with anything... Yeah, I dunno. Not really swayed either way.
Couldn't you say, copy/mirror the map at the edges to each other. So say, the west edge of the map is copied/mirrored to the east edge, so you wouldn't need flat edges. If that's technically feasible in a procedurally generated terrain..... I'm pretty sure in map editors for other games (well at least hammer since that's only one I have experience with,), you can copy/mirror like that and then put an invisible "portal" at the edges. Biggest problem would be when it comes to models/props.
Say, once a player reaches a giant cliff face, they can enter a tunnel that will take them past the massive cliff face and into another large map. IDK, just a suggestion for limitlessness in a finite space