Depicting the 3D Environment

I’m not going to worry about that right now as we can just make a surface ocean environment first and start with that.

Even now the GLES2 rendering mode has graphical glitches and there’s been that issue forever for auto disabling the chromatic aberration shader which causes errors in that mode. So it doesn’t seem like anyone is really prioritizing making sure the game renders correctly on old hardware.

ok good so you agree we don’t need DoF (at first), there is nothing big enough to use it on.

We may not bother fixing what is there sometimes but, that isn’t an excuse to give people more problems

As I said, someone can just blur the background panorama image used initially.

Obviously if we introduce some really expensive graphical effects, there needs to be an option to turn them off without the game becoming unplayable. I’m 99% that adding a DoF effect will be fine if it can be disabled, then people who need to disable it can play the game with it looking worse.

I’m open to suggestions of how to make the scale really be felt visually without such an effect, but I think it’s such a common effect that we’d be pretty crazy to not have it.

yes so we don’t need Depth of Field. DoF is a shader function you do based on the camera’s Depth Texture, not just a general concept of Gaussian Blur.

I’m not against the latter of it being optional but it can’t be integral to the game’s look I don’t think

Please suggest an alternative then what we can use when the player is playing as an ant and is wondering around blades of grass and seeing massive creatures in the distance.

Atmosphere and the distortion of speed (that effect of how big things look slow)

It’s cheaper to apply tint by depth rather than to convolve an image with a special blurring function

Why do I get the impression that that also is a shader effect…

it is but it’s linear algebra vs Convolution (yes that convolution)

to explain this a bit more, you probably seen old as belgium games that color stuff far away (Silent Hill on the original PlayStation), but DoF is less common unless you’re talking about like, Crysis.

Literally Runescape has depth of field these days (which is a game many might remember as being one of the first big 3D games you could play in your browser). I don’t buy the argument that depth of field wouldn’t be a common thing all self respecting 3D games should have releasing after 2022 (unless they are going for an art style that would conflict with that).

they have it but, the game doesn’t look stupid without it either, it’s not a core part of the visuals

Most games don’t really let their post-processing carry their art. It’s more about the art design as a whole. Like Dark Souls isn’t technically impressive but it has some serious style that carries it. Same with Nintendo games.

Oh boy, a lot of posting has been going on in here during the last three hours. I’ll try to clear up what I meant and carry the conversation further.

What I’m essentially talking about is creating a system which parametrically creates underwater environments based on things like depth, sun position, distance to ocean floor and so on. At a microscopic scale things like the distance to the surface and the ocean floor would be so huge (relatively to the player) that these things wouldn’t have to be simulated constantly and dynamically during gameplay. It can be assumed that no matter how much the player moves, he will never move enough to substantially change this setup. Rather this scene could be generated once upon entering gameplay. Things like blur wouldn’t have to be computed constantly.

I agree that for most games, style is infinitely more important than technical fidelity. But while this applies to Thrive in some regards, in other parts Thrive operates unlike most games. In Dark Souls the soul of the game lies in the discreetness and particularity of how places and things are carefully placed in relation to one another. Every playthrough looks the same. In Thrive we have to generate environments which look different from playthrough to playthrough.

I will present you with some schemes of how exactly I envision this underwater stage setup when I’ve further developed it. But for now here are some random unordered thoughts:

  1. The plane below which simulates the ocean floor should be very big and probably somewhat roundish (but with few polygons, it doesn’t need to be smooth at it will be blurred anyways)
  2. To determine the color of the light which hits the objects in the players immediate environment the color of the star should be run through the atmosphere and water simulation once before generating the scene. Once we have a stationary light setup we can start thinking about dynamically changing the times of day and the light with it, but this probably shouldn’t be a priority.
  3. When we reach a scale at which the environment never changing despite the player swimming up and down would become unrealistic we could also generate a few additional environments which would show the world from a higher or lower point in space. These could then be dynamically faded in and out when the player moves up and down.

I know that a system which generates parametric environments is hard to program. For that reason and for the sake of performance I’m asking myself what the simplest possible parametric depiction of an ocean environment would be. This whole thread is basically a thought experiment about that.

2 Likes

generating blurred skybox elements and essentially LODs but for blur all at once is certainly doable. Will increase the load times, by how much will depend heavily on hardware.

Doesn’t solve the problem for where you’re completely against the surface, and you have made DoF effectively required if they use these blurred skyboxes, and we’d have to change our minimum requirements by quite a bit (The user will AT LEAST need a discrete and sufficiently strong GPU)

I’m still against screwing people too poor to buy a GPU when our game is free and giving them a messed up / ugly looking game

so

I looked more into this and:

Unreal Engine 4/5 solved this problem by implementing some really fast DoF algorithm allowing high end tablets and things like that to use DoF.

I have no idea if this exact effect could be implemented in Godot since it’s an engine feature with Unreal suggesting it is fairly well integrated.

Godot has Near / Far Blur for DoF in the Environment Resource (where you put skyboxes). My computer is absurdly strong, so I am useless in determining the effectiveness of their algorithm.

Yeah, how and if the player will be able to disable DoF and how that will look is still an issue we’ll have to discuss.
But I agree with hhyyrylainen that we probably won’t be able to wholly evade using DoF in one form or another.

In the game Pikmin you are the size of a juvenile ant or something and the game still manages to give a decent sense of small scale on the GameCube, along with other games from that time period that involve small things. There was no DoF on GameCube games and many of the games are still decently good looking. (mostly because they’re not realistic)

I think there’s better ways than making expensive operations necessary.

Alright, I’m sure we can consider using other effects. It’s not like we’re making any final decisions here. I just think DoF is an option we shouldn’t rule out from the get-go.
Two other games which adequately portray a tiny scale from what I can tell from looking at footage are Drunk on Nectar and Insect Worlds.

Links to the Steam Pages of Drunk on Nectar and Insect World

Nature And Life - Drunk On Nectar on Steam
Insect Worlds on Steam

Drunk on Nectar doesn’t seem to have DoF while Insect World does. From what I can tell the system requirements are similar, but that might be because Drunk on Nectar arguably looks overall prettier than Insect Worlds.

Note that all three of these games don’t really portray a microcopic scale, but rather the scale of bugs which are about 1-3cm big.

2 Likes

It’s something we can work through, we’ll figure this stuff out.

1 Like

Why are we not planning to use the 3d environment in the microbe stage? It honestly should be 3D, just on a smaller scale?

Difficulty in reimplementing everything. Unless someone can port over the compound clouds, editor, and AI to 3D, we’d be essentially starting a new game from almost scratch.

Edit: also forgot that we don’t have 3D membranes yet. I think if anyone wants us to make the cell stage 3D, making 3D membranes would be a first step to show how serious they are, and even if we didn’t take the leap the 3D membranes is a feature we need anyway.

1 Like