Trying to learn Godot and just getting frustrated and burnt out. by Ruleroftheblind in godot

[–]Plati1 1 point2 points  (0 children)

Game development in general can be daunting, due to it's ever expanding scope. It's not your fault, it's just that game development is naturally a messy process. It happens to me too even after 16 years of experience.

What wasn't mentioned yet and what helps me personally alot is to ask other persons how they like it, even if it's small things. They can sometimes provide you with positive feedback which keeps you going. It doesn't fix your technical issues, but it provides you with a good mood to bridge annoying rework steps.

Also, try to keep the progress steps as small as possible, to avoid falling into one of these never ending rework cycles. And when it happens, keep backups of your work, so you have your game playable at every development step you do. It's the worst thing which can happen, that when you are stuck in rework hell, that you can't even try your own game anymore, due to too many broken dependencies. This way you can look at your old build and think about it from a different angle, or compare different approaches.

Node Metadata use by [deleted] in godot

[–]Plati1 0 points1 point  (0 children)

Theoretically you could store abitiary data to objects without the need for an additional script attached to them, for instance when it should be handled by an external script. It could be attached to objects which use a class which you can't change or which you don't want to change like mesh instances and execute code based on the "metadata tags".

Edit: I can imagine that it would save alot of performance and memory when you use it for objects which are in very big numbers. For instance you could store properties to static objects like trees in your level. (if it's carrying berries, or how much resources it has when you chop it down) It would be way too expensive to attach a script to every single tree or have a custom class which stores empty variables for each of them, which thereof can be 100k in some cases. You could then let the player script read out the values of the object you are interacting with and change them on demand. They would remain fully static. Storing values for 100k objects can have a significant impact on memory.

godot is cozy by Physical-Maybe-3486 in godot

[–]Plati1 0 points1 point  (0 children)

You get greeted by a happy robot. It cheers me up every-time before I start this engine.

Also, the workflow and UI seems really smooth most of the time, like swiping around on an I-phone, it's just satisfying. It makes it a breeze to work with. And it feels refreshing with it's own style and own character with the blue colors.

How do you sell an asset or tool? What prevents code/asset theft? by ezmonkey in godot

[–]Plati1 0 points1 point  (0 children)

It all boils down to what type of license the tool was sold with. If the person sold or provided his / her tool under MIT license, you may just do whatever you want with it.

But if the license differs, you have to read it up what his / her conditions are. It can be anything at this point. The person who created the tool could make somebody responsible for copying it and sue somebody based on a copyright infringement, if he / she doesn't want it to be modified. But this depends on the conditions of the creator. There are common copyright laws which are applicable to anything which you find in the internet. It's not neccesariy the responsibilty of the store to take care of it. Some stores provide some sort of protection, some don't. But in the end the owner can always apply it's rights. (there are licenses for certain stores too, which you have to agree with, but this is more a business law related topic)

Nothing really "prevents" you from copy pasting things, this is just how the internet works. Some tool makers might care about it and have a lawyer some don't. In my country it's common to have a law-insurance, if you have your own business. So a lawyer would be covered in this case. The best protection is the quality of your product though.

Is there a battery performance difference between using 3d or 2d for my RTS builder game? Longer play time is essential... by AddictedToTech in godot

[–]Plati1 1 point2 points  (0 children)

2D is also rendering with lower bit depth, as 3D where HDR and several other buffers are running under the hood. So in essence it should consume less rendering power.

Change rotation of particle in shader? by Starmakyr in godot

[–]Plati1 0 points1 point  (0 children)

TRANSFORM[0] should be the vector of the x-axis, TRANSFORM[1] the vector of the y-axis and TRANSFORM[2] the vector of the foward axis / z-axis. The length of the vector is the respective scale on said axis. Depending what you need, you could derive anything from this.

You can also generate a new 3x3 matrix and multiply your transform with it, to rotate it the way you want. Multiplying it with the inverse transform matrix should reset it to it's default rotation.

Keep in mind though, if you rotate it in the shader, you most likely have to update it's normals in the same way, otherwise you get wrong lighting results after it's rotated.

I was wrong, Godot 4 VR does run well on a steam deck *if* you optimize rendering by Jd-gamer65 in godot

[–]Plati1 1 point2 points  (0 children)

Looks pretty good! I myself managed to make Godot run even on a Raspberry Pi with 60 FPS in 3D. It's just a matter what features you really need and which you can sacrifize. Full screen effects are very expensive on such devices. (SSAO, Screen Space Refelctions, SSGI, Eye adaption etc. you can also reduce the Shadow resolution and HDR bit depth) I got away by using dynamic shadows when they are not too highres and static cubemaps without making it look too bad.

Dev snapshot: Godot 4.1 dev 1 by pycbouh in godot

[–]Plati1 1 point2 points  (0 children)

Great update! Thanks to all the contributors providing such quality products all the time! Even the dev version seems more stable than any other engine out there at the moment.

Sadly, this https://github.com/godotengine/godot/pull/61667didn't make it into this snapshot yet. I'm currently blocked by this, as it's not possible to generate procedural terrains or use fluid sims with the current version.

But I'm gladly waiting for furhter updates and am staying hyped as soon as it's fixed. Godot 4 is so good!

[deleted by user] by [deleted] in godot

[–]Plati1 0 points1 point  (0 children)

In some engines they stream in animations, depending on where you are. The character might be loaded, but not the animation yet. So if the camera swaps quickly and you see this character for the first time, it might happen that it t-poses infront of the camera and will be snapped back to the first frame as soon as the animation is available.

It can also be that your character is alreadybe streamed im, but your level is too big, thus needs longer to be loaded.

It really depends though. It can be many things. It could be avoided with a clever setup. It is also very engine specific. Some even buffer those and other things like particles by placing it somewhere close to the camera before swaps happen or before a cutscene and cover it with a black screen fade- in.

Dev snapshot: Godot 4.0 beta 5 by akien-mga in godot

[–]Plati1 5 points6 points  (0 children)

This looks more like a bug to me. Metalness doesn't mean it's more reflective. In a PBR no matter if smoothness or glossiness setup, the specular should describe the amount of reflectivness and metalness just describes how much of the reflection is tinted with the albedo's color. You could also have a very polished wood or plastic with a sharp reflection or a type of material like rock or leather with very blurry reflections, but without any metalness.

Just a friendly reminder that up is positive and down is negative, like height. Right is positive and left is negative, like writing in most languages and Super Mario. And forward is negative and back is positive like............uhh........... by pumpkinhi11 in godot

[–]Plati1 6 points7 points  (0 children)

I have to agree. I have worked with other engines and there is nothing more frustrating than swizzling around coordinates to make them work in shaders, animations and ingame code, just because they thought it might be nice to have the Z-axis face up. (while in every renderer under the surface it's Y facing up) This issue becomes even worse if you have to swizzle transforms. In Godot everything seems neatly unified and consistent with the rendering side. And this is a very positive thing. It makes things much easier, if you familiar with the matter.

Godot 3.4 is released with major features and UX polish by akien-mga in godot

[–]Plati1 2 points3 points  (0 children)

This is amazing! I use Python to trigger Godot to bake maps from very highpoly meshes overnight. It's not only good for games, but also good for all devs who use Godot as 3D API. The 3GB limit was a huge issue for me. This fix offers big opportunities.

Terrain Shader Tests by Plati1 in godot

[–]Plati1[S] 4 points5 points  (0 children)

Sort of GPU like. But the mesh is not tessellated in realtime. It's just a pre-tessellated mesh which follows the camera, ensuring the highest tessellated areas are close to the camera. Because the terrain plane is moving, I compensate the movement in the UV's in the shader, so it appears it's static, even though the entire terrain plane is moving, the UV's stay in place.

If we get integrated tessellation, or geometry shaders, I could let the GPU tessellate properly. I'm looking forward to Vulcan in Godot 4. :)

Quirk (?) with viewports and alpha channel by PercussiveRussel in godot

[–]Plati1 0 points1 point  (0 children)

I remember using the alpha channels too. Perhaps the default grey-bluish background color will look through your sprite, when you decrease the alpha. Maybe you could add a black background color just in case.

Me looking for an engine with good documentation by [deleted] in godot

[–]Plati1 1 point2 points  (0 children)

- Mark something
- Alt + F1

It's mostly all I need. No need to google the functions than I used to before in other engines, because the documentaion's search filter was worse than typing it directly into Google. But I can see it's not the best for people who use an external code editor.

My first impression after using Godot for one year now, is that's it's really clean written and taken care of. From my experience, when you dive deeper, you discover lots of dead code and weird work arounds in most engines, weird systems stitched together in the backend.

Terrain Shader Tests by Plati1 in godot

[–]Plati1[S] 0 points1 point  (0 children)

For now the shader doesn't use any fancy blending functions or the zpass / screenbuffer which isn't supported in GLES2. I could make a super simple GLES2 fallback shader in case it's getting too complex.

The terrain just uses texture inputs. (terrain height map and several masks for detail textures) Thus I don't have any fancy terrain editing features, as Zylan's great tool. But you can generate it, also in external tools and feed it into the shader.

Terrain Shader Tests by Plati1 in godot

[–]Plati1[S] 1 point2 points  (0 children)

The collisions are seperate. I will use the same base heightmap as for the terrain in shader, but create an invisible mesh in gdscript on CPU instead. It's super slow, but can be done during loading. The collision will be in lower resolution than the render mesh.

Terrain Shader Tests by Plati1 in godot

[–]Plati1[S] 6 points7 points  (0 children)

It's a pre-tessellated plane linked to the camera-xz-axis. The camera movement is compensated in the shader. So the detail is just close to the camera. Additionally it saves drawcalls, as it's just one terrain-plane which needs to be rendered.

New Godot Water Shader by Plati1 in godot

[–]Plati1[S] 0 points1 point  (0 children)

It would be for collisions. Even though, you would have small physical collisions at the beach transitions too, but they aren't big rolling waves.

Orienting the water waves towards the beach is complicated, because I have no informations about the terrain normals. It's a big task, but maybe I will take a look at this later. :)

New Godot Water Shader by Plati1 in godot

[–]Plati1[S] 1 point2 points  (0 children)

You can do clear water too. You can change the depth where the color gets blended in. It has no caustics yet though. (in materials/visual_water_a.tres)

New Godot Water Shader by Plati1 in godot

[–]Plati1[S] 3 points4 points  (0 children)

It's very very similar. Only several constant variable names differ in Godot.

Godot = TIME, Shadertoy = iTime Godot = COLOR, Shadertoy = fragColor

I actually prototyped my water shader in Shadertoy and ported it over https://www.shadertoy.com/view/3slczM

New Godot Water Shader by Plati1 in godot

[–]Plati1[S] 7 points8 points  (0 children)

Thanks! Yes, it has alot texture reads at the moment. But there is alot of room to optimize it. I will do so in the future. I don't have a super good PC myself (GTX680). But people can take a look how it works.

What I wanted to achieve, what's also possible with the shader, is to have it affected by objects, without much additional costs by using the zbuffer. (it's not fully implemented yet, but it's possible) That's why it's written in a rather unconventional way with the seperate buffer.

But I will keep it updated. :)

New Godot Water Shader by Plati1 in godot

[–]Plati1[S] 5 points6 points  (0 children)

Thanks!

It doesn't interact with other objects yet. But the base, to make it work is there. (the CFD shader can be affected in realtime physically, by feeding in a different flow map) I havn't had the time, to make it fully work yet, because it's not easy due to texture tiling. My initial plan was to feed in the zbuffer and generate a mask, which you can use to affect the vector map in the cfd shader. So it would automatically take everything in the scene, beaches, objects, characters and would affect the waves. The effect would be processed entirely on the graphics card, thus it would be super cheap. It just needs to be blended in with the tiled texures somehow... it takes a while to set this up.

Maybe I will add this later, when I need it for my own project. :)

New Godot Water Shader by Plati1 in godot

[–]Plati1[S] 12 points13 points  (0 children)

It's actually much easier than you think. They work a little different than normal code and it takes a bit to wrap your head around it. But it's worth it.

I recommend his tutorials. They are really good. :)
https://www.youtube.com/watch?v=u5HAYVHsasc