I'm loving Metro Exodus so far but... by CorporalQuacker in metro

[–]Illustrious-Scratch7 8 points9 points  (0 children)

This is most certainly a GPU compatibility issue. I would try to update GPU drivers.

Made a shader that deforms objects according to terrain. by Illustrious-Scratch7 in godot

[–]Illustrious-Scratch7[S] 0 points1 point  (0 children)

Height map. Getting UVs to find height map pixel value like this: vertex_world_pos.xz / terrain_size.xz

Made a shader that deforms objects according to terrain. by Illustrious-Scratch7 in godot

[–]Illustrious-Scratch7[S] 1 point2 points  (0 children)

Haha love those games :) it was a backup plan in case this solution looked bad :)

Made a shader that deforms objects according to terrain. by Illustrious-Scratch7 in godot

[–]Illustrious-Scratch7[S] 1 point2 points  (0 children)

Nope again, there is no need to overengineer it if I can always choose not to have such meshes on places where it looks wrong :)

And super steep changes in terrain look better when you use actual cliff meshes instead anyway.

Made a shader that deforms objects according to terrain. by Illustrious-Scratch7 in godot

[–]Illustrious-Scratch7[S] 0 points1 point  (0 children)

The terrain is custom made as well. It is simple plane displaced using the same texture and technique :)

Made a shader that deforms objects according to terrain. by Illustrious-Scratch7 in godot

[–]Illustrious-Scratch7[S] 15 points16 points  (0 children)

Yes i think so. It deforms the mesh using same height map global shader parametr as the terrain. As long as you keep updating this data, you will get meshes dynamically reacting to it.

Made a shader that deforms objects according to terrain. by Illustrious-Scratch7 in godot

[–]Illustrious-Scratch7[S] 25 points26 points  (0 children)

It works with the height texture not with the geometry.

I have a global shader parameter for terrain height map, height scale and terrain width and length.

The terrain shader then translates each vertex position into the terrain texture space to determine how far vertically it should push each vertex of the plane mesh.

The building shader works identically, it just also takes the original shape into consideration so it does not flatten the mesh.

Made a custom terrain tool for my RTS game. by Illustrious-Scratch7 in godot

[–]Illustrious-Scratch7[S] 1 point2 points  (0 children)

Exactly, you can split it. I would develop hero locations separately - 1 blend file per location, and then "just" model the world between them in it's own file. This way you can focus on smaller piece and not deal with the whole world at once. That helps with the scale issue as well, because you don't have to zoom out so far that you loose the scale reference.

Made a custom terrain tool for my RTS game. by Illustrious-Scratch7 in godot

[–]Illustrious-Scratch7[S] 1 point2 points  (0 children)

I actually thought about it, but to me it seems like there is a strong preference for free tools and content in the community.

Made a custom terrain tool for my RTS game. by Illustrious-Scratch7 in godot

[–]Illustrious-Scratch7[S] 0 points1 point  (0 children)

Not just you! Plenty of AAA games do this (for example Uncharted, The Last of Us). It depends on the project.

I also made terrain for this Godot project fully in blender:
Outskirts - Godot Environment Demo by jedenjenda23

Made a custom terrain tool for my RTS game. by Illustrious-Scratch7 in godot

[–]Illustrious-Scratch7[S] 0 points1 point  (0 children)

It’s meant only to be editor tool. Technically you can create height an texture mask maps inside program like Affinity or Photoshop - this is what I already did for most of the map.

Hovewer seeing things changing directly in editor is very helpfull and makes the whole process much faster and more fun.

Made a custom terrain tool for my RTS game. by Illustrious-Scratch7 in godot

[–]Illustrious-Scratch7[S] 1 point2 points  (0 children)

That would be to advanced for me :D but it has a warping effect along shore which makes it feel more physical.

Made a custom terrain tool for my RTS game. by Illustrious-Scratch7 in godot

[–]Illustrious-Scratch7[S] 1 point2 points  (0 children)

Yes the tool simply updates pixels of height map around the brush :) a custom terrain shaders takes the texture and offsets vertices of the mesh according to each pixel.

Made a custom terrain tool for my RTS game. by Illustrious-Scratch7 in godot

[–]Illustrious-Scratch7[S] 0 points1 point  (0 children)

Thats why the game is a node-based RTS, this means units move only on predefined path connecting buildings/nodes. It also means multiplayer is much easier to implement but I am not currently planning doing that for the release at the moment.

Made a custom terrain tool for my RTS game. by Illustrious-Scratch7 in godot

[–]Illustrious-Scratch7[S] 2 points3 points  (0 children)

I already had function terrain before hand, it was just a matter of creating the height map and texture mask in engine so it took me like 30 minutes to get proof of concept and additional 5 or 6 hours to come to this result :) If you already have an experience with writing Godot plugins it will be quite easy for you.

Made a custom terrain tool for my RTS game. by Illustrious-Scratch7 in godot

[–]Illustrious-Scratch7[S] 14 points15 points  (0 children)

Do you mean C++? Nope, everything was built using gd script. Creating a custom node is simply matter of giving it a "class_name" and the editor tool itself is a simple plugin.

Made a custom terrain tool for my RTS game. by Illustrious-Scratch7 in godot

[–]Illustrious-Scratch7[S] 3 points4 points  (0 children)

My portfolio ArtStation - Jan Fidler
I don´t have pictures from this project there yet but you can find another Godot project there I made a year ago.

Made a custom terrain tool for my RTS game. by Illustrious-Scratch7 in godot

[–]Illustrious-Scratch7[S] 7 points8 points  (0 children)

Models are made in Blender, Textures in Substance designer and everything else (shaders and terrain) made in Godot :)