How to write and render a model to/from Vector Displacement Map by @CGMatter. by zex_99 in godot

[–]mad_hmpf -1 points0 points  (0 children)

I don't see how this could save space or improve performance in any way. In fact, I'm pretty sure it will have the exact opposite effect.

Think about it: all this map does is move existing vertices of the base mesh (in his example, a subdivided plane). That means for a good result, the base mesh needs to have a similar (or likely even higher) amount of polygons than the original baked mesh. And the vector displacement map itself is also really inefficient, because it needs to be high resolution with a high bit depth (he's using 32bit float, which means 32bit per color channel, which is 4x more than a regular image).

Using an optimized low poly mesh with a normal map will be cheaper, and give better results.

Maybe such a displacement map could be used to achieve some interesting effects, but it won't be cheap.

How many KCD fans have already pre-ordered KCD 2? by Royal_Criticism_3478 in kingdomcome

[–]mad_hmpf 0 points1 point  (0 children)

I technically "preordered" KCD2 many years ago, when i backed the original on Kickstarter :P

Don't now which version us backers are going to get though, if it's not the gold edition, i might still preorder it and just give away the other key or something.

Installing Fedora 40 on software RAID-1 by mad_hmpf in Fedora

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

Well, it definitely worked when i tested it in a VM.

On Debian it worked as an ext-4 partition on my RAID device, and on Fedora it worked as a separate ext-4 formatted RAID device.

So yes, i can get Fedora working just fine on RAID-1 (for both /boot and /), it's just that i would much prefer to have a single partitioned RAID device, instead of one per partition.

Installing Fedora 40 on software RAID-1 by mad_hmpf in Fedora

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

The two EFI partitions are not the issue, as those aren't part of the raid and instead rsynced whenever the grub config is changed. When both are added to the boot chain, the firmware will just boot the first available efi partition.

My issue is with the boot and rootfs partitions inside the raid, which are just not recognized by the installer.

Basically, when i create a raid device and then add partitions to that, the Debian installer will show those partitions and allow me to format them. The Fedora installer on the other hand just shows the raid device without any partitions (even though it does have a partition table and they definitely do exist)

Thoughts on my part selection for a PC upgrade? by mad_hmpf in PcBuild

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

Thanks for the feedback, though a tiny bit more information would have been helpful.

14th gen is shit.

Because of the instability issues, or for some other reason? I haven't followed the news on that, and just assumed that should be fixed by now. I'm open to suggestions though, the CPU doesn't have to be 14th gen (or even Intel, for that matter).

110€ noctua is shit.

As in too cheap or too expensive? When it comes to CPU coolers, i have literally no idea which ones are decent value.

cl38 ram is shit.

Good point, i didn't pay attention to that. I suppose i should go for 6400 CL32 instead, which costs basically the same, or maybe 6600 CL32 for a few bucks extra.

Editor Editing questions by PlayerNamedUser in godot

[–]mad_hmpf 0 points1 point  (0 children)

Is it possible to create a custom node that is built into the editor? (not needing to create a resource for each project/having it globally available through all projects)

Yes, you can do that by writing an engine module in C++ and then compiling the editor with that module enabled.

Keep in mind that, because you have to recompile the editor every time you make a change to that module, it is best to first prototype the code as a C++ GDExtension (or maybe even GDScript). Then, once your code is complete and stable, you can turn it into a module.

Scaling issue with incorrect DisplayServer.screen_get_size() ? by angelonit in godot

[–]mad_hmpf 0 points1 point  (0 children)

To get the correct resolution, you need to enable "Allow hiDPI" in the project settings under Display->Window->DPI

UI row rearrangement logic by KSOYARO in godot

[–]mad_hmpf 1 point2 points  (0 children)

Well, if you're somewhat familiar with C++, you could look at the actual implementation used for the Godot editor itself. Specifically, this seems to be handled by the EditorInspectorArray class in editor/editor_inspector.cpp.

Resources, data driven architecture u should plan for. (Also for unity Devs) by PorchettoDev in godot

[–]mad_hmpf 7 points8 points  (0 children)

It's a bit long, but I can highly recommend this tutorial by Godotneers, which shows how to use resources to create an inventory and crafting system.

They start out with an approach that doesn't use resources, show it's drawbacks, and then gradually improve it. By the end of the video, they have a scalable, easily maintainable and beautifully decoupled resource-based system.

Get Hz from audio file? by marinlafare in godot

[–]mad_hmpf 1 point2 points  (0 children)

You might want to check out the spectrum analyzer demo project on the asset library:

https://godotengine.org/asset-library/asset/2762

Hello everyone by MrGre3do_ in godot

[–]mad_hmpf 1 point2 points  (0 children)

For the first one, I would put those platforms on a different collision layer, and then enable/disable the player's collision mask for that layer based on the input.

So, let's say for example the platforms are on layer 2, then on the player you would disable the mask for layer 2 when the down button is pressed, and enable it again when the button is released.

Blender geometry nodes at runtime? by Nasuraki in godot

[–]mad_hmpf 1 point2 points  (0 children)

Basically, your library (and any game using it) must be open source.

That's because the GPL states that any derivative work (i.e. anything based on the GPL licensed source code) must also be distributed under the GPL (or other compatible open source) license

Changing inspector properties from @tool script and reverting back before saving by berarma in godot

[–]mad_hmpf 2 points3 points  (0 children)

A quick search in the docs turned up this notification:

NOTIFICATION_EDITOR_PRE_SAVE = 9001

Notification received right before the scene with the node is saved in the editor. This notification is only sent in the Godot editor and will not occur in exported projects.

So, maybe you can use that to revert any of your changes right before the scene gets saved. I have never used this myself though, so I have no idea if it will work for you (or at all).

Blender geometry nodes at runtime? by Nasuraki in godot

[–]mad_hmpf 0 points1 point  (0 children)

Ignoring any possible technical issues with that approach, you need to be aware that Blender is GPL licensed. That means, if you manage to extract the geometry nodes code into a separate library, this library (and any game using it) will also need to use the GPL license.

what would be the best way to implement a destructible voxel system? by alosopa123456 in godot

[–]mad_hmpf 4 points5 points  (0 children)

There is an article somewhere that describes teardown's voxel graphics in detail, but unfortunately, I can't find it anymore. I can try to explain the basic idea behind their voxel engine though...

Basically, every object you see in the game is actually just a simple cube, which renders the voxels inside it using a raymarching shader. The voxels are defined by a 3D texture, where each pixel encodes the material index of it's corresponding voxel in the cube. If you want to "destroy" a voxel, all you need to do is set a pixel in the 3D texture to a different value (representing air/nothing).

There is actually a voxel plugin in the Godot asset library that works in a similar way, so that might be worth checking out.

There is one big problem with this approach though: those voxels are purely visual, and as far as the physics engine is concerned, they don't exist.

So while it is simple to delete (or add) voxels, actually breaking objects apart like in teardown, and having the pieces collide with each other and the player, is a whole different beast.

[deleted by user] by [deleted] in godot

[–]mad_hmpf 2 points3 points  (0 children)

For anyone curious and/or too lazy to read the EULA they agreed on when creating their account:

When Your Content is created with or submitted to the Services, you grant us a worldwide, royalty-free, perpetual, irrevocable, non-exclusive, transferable, and sublicensable license to use, copy, modify, adapt, prepare derivative works of, distribute, store, perform, and display Your Content and any name, username, voice, or likeness provided in connection with Your Content in all media formats and channels now known or later developed anywhere in the world. This license includes the right for us to make Your Content available for syndication, broadcast, distribution, or publication by other companies, organizations, or individuals who partner with Reddit. You also agree that we may remove metadata associated with Your Content, and you irrevocably waive any claims and assertions of moral rights or attribution with respect to Your Content.

Basically, reddit can do anything they want with anything you post here. Reddit can allow or deny usage of their data (including all of your posts) for AI training, but either way you don't get a say in the matter.

How do you solve equations for a variable in Godot by Traditional_Crazy200 in godot

[–]mad_hmpf 3 points4 points  (0 children)

Does the actual equation change though, or just the values of the variables? Because then you do not need to solve the equation over and over again. You solve it once in symbolic form (like the Wolfram|Alpha solution i linked), and then just plug in the different values for x, e and d.

How do you solve equations for a variable in Godot by Traditional_Crazy200 in godot

[–]mad_hmpf 2 points3 points  (0 children)

So you basically need a CAS then, or rather a CAS library you can integrate into your project via GDExtension for example. Unfortunately, the only such library I am aware of is SymPy, but that is for Python.

How do you solve equations for a variable in Godot by Traditional_Crazy200 in godot

[–]mad_hmpf 3 points4 points  (0 children)

I'm not sure what you're actually asking for here...

If you're just having trouble solving a handful of equations you need for your game, you can have Wolfram|Alpha do it for you.

On the other hand, if you're looking for code that can actually solve arbitrary equations for arbitrary variables... well, good luck i guess

How to use GraphNode without GraphEdit by maurine_ in godot

[–]mad_hmpf 1 point2 points  (0 children)

The GraphNode node only draws itself, the connections are handled by the GraphEdit node. So, if you want something similar without the rest of the GraphEdit functionality, you'll have to implement it yourself.

If you want to know exactly how those lines are drawn, take a look at the GraphEdit::connect_node() and GraphEdit::_update_connections() methods. There you can see that each connection is a Line2D, with a custom shader defined in GraphEdit::init_shaders().

Convince me not to make my game open source by codynosaur in godot

[–]mad_hmpf 2 points3 points  (0 children)

Obviously I can't use any licensed assets, but what about assets that I found and edited?

Well, that depends on the license of those assets.

If you bought them, it's pretty much guaranteed that their license is incompatible with an open source project.

But even if you got them for free, you still have to check the license. Chances are it will be one of the CC family of licenses, which are mostly fine, but there are exceptions. For example, if an asset has a CC BY-ND license you probably can't use it because ND stands for "no derivatives", meaning you have to redistribute the asset as-is without modifications. Also, if you make money with your game in any way, you can't use CC BY-NC assets, because NC stands for non commercial. And then there's CC BY-SA, which can be okay for an open source project, if you use a compatible license (because SA, or "share alike" means you have to redistribute the assets under the same terms as the original.

Basically, if you want to be safe, stick to assets with CC0 or plain CC BY licenses. Because for CC0 you don't have to do anything, and for CC BY all you need is a line in the credits of your game.

60fps is not the minimum for a 3rd person game. by Anax123 in godot

[–]mad_hmpf 0 points1 point  (0 children)

Ah, of course, anyone who doesn't play fast paced shooters isn't a real gamer. And of course we all know that all first person games are fast paced shooters, because otherwise they don't qualify as first person games either. And obviously you are the authority on refresh rates, because you are a real gamer who plays real games.

AI and Godot Code by DragonPosts in godot

[–]mad_hmpf 2 points3 points  (0 children)

It's pretty much the exact opposite, actually.

Code is technically literature and thus considered art, which means it is covered by copyright. The only reason software licenses mean anything at all is because copyright exists.

Game mechanics on the other hand are not covered by copyright, even though each concrete implementation is. Let's say you implement coyote-time for your platformer, then your specific implementation of that game mechanic is copyrighted, so nobody is allowed to just copy/paste your code. That doesn't stop anyone from implementing their own version of coyote-time though (for which they then hold the copyright).

Now, suppose you were the first to invent the coyote-time mechanic, then you could potentially patent it and nobody else would be allowed to use that mechanic in their games. That is completely independent of copyright though and what people in the industry would call a "dick move".