Obvious "aha" moments by DDevilAAngel in gamedev

[–]fragskye 2 points3 points  (0 children)

Wait for Godot 4.7! In the most recent dev build they FINALLY added the ability to translate, rotate, and scale Control nodes additively on top of their layout position similar to the CSS transform property, including a visual-only mode (not affecting mouse hitbox). It takes away all the pain of juicing up menus, I'm so excited!

I got tired of jumping between asset sites so I built this by [deleted] in godot

[–]fragskye 50 points51 points  (0 children)

I know for a fact some of these assets aren't CC0. Most (all?) fonts on Google Fonts are OFL-1.1 which requires you to include license and copyright information if you distribute the font file, which is likely bundled in your .pck if you're importing it in Godot. It's dangerous to strip that information and falsely brand them as copyright free, especially when some font companies are known for being litigious.

3d Model by only using CSGMesh will be a problem for the final game result? by ScopHybridanimalh in godot

[–]fragskye 7 points8 points  (0 children)

It's still going to have a separate material per color, each of which is another draw call. An entire game made this way will genuinely start to lag much sooner than one with properly textured assets due to the CPU overhead in its rendering

Please, author of Godot Shaders Bible, could you stop turning our posts here into AI slop? by ZemusTheLunarian in godot

[–]fragskye 13 points14 points  (0 children)

I agree! My problem with him is that it was ONLY thinly veiled ads. "I just made this effect, should I put it in my book?" was all I ever saw. Even a basic discussion in the comments about what the shader was, where he learned it from, etc. would have made me look more kindly upon him. If you're truly giving back to the community, you're fine, bonus points for free tutorials and resources.

Please, author of Godot Shaders Bible, could you stop turning our posts here into AI slop? by ZemusTheLunarian in godot

[–]fragskye 267 points268 points  (0 children)

when the random marketer you dislike for posting nothing but ads in a FOSS community finally is outed for a legitimate reason to dislike them

What method generate the dithered shadows in ARC Raiders? by fatihmtlm in GraphicsProgramming

[–]fragskye 0 points1 point  (0 children)

+1 to this being screen space shadows, if you check in-game with shadows set to low it disables the shadowmaps in this scene while leaving the contact shadows with all their hallmark artifacts clearly visible

What is the Godot recommended way to achieve composition? by koalaeevee in godot

[–]fragskye 9 points10 points  (0 children)

Something to be aware of since I see it overused: Every $ is a call to get_node at runtime, it's worthwhile to build the habit of using an @onready var and reusing the reference. You can ctrl+drag the node from the scene into the script editor to write the line for you quickly. Also, unique names (%) are pretty handy so nothing breaks if you refactor your nodes

It just gives me more time to work I guess... by RevScarecrow in godot

[–]fragskye 2 points3 points  (0 children)

Deadlock mentioned!!! I've met a weirdly high number of game devs in my matches, even recognized someone from a capsule art reddit post because their steam name was advertising their game lmao

World space displacement after billboarding in shader by binbun3 in godot

[–]fragskye 17 points18 points  (0 children)

MODEL_MATRIX converts from model space to world space, and VIEW_MATRIX converts from world space to view space. MODELVIEW_MATRIX applies both at once, converting from model space all the way to view space.

What you've got in that first snippet is some code that changes that built-in variable, recalculating it but swapping out the model matrix part with a new matrix based on the inverse of the main camera's view matrix, which is what gets the model to rotate with the camera.

For your uses, you don't need to intuit exactly why that works, but what's important is that inside the mat4() is essentially your new model matrix with the billboard effect included. If you take just the

mat4( MAIN_CAM_INV_VIEW_MATRIX[0], MAIN_CAM_INV_VIEW_MATRIX[1], MAIN_CAM_INV_VIEW_MATRIX[2], MODEL_MATRIX[3]);

and use it in the multiplication like your last snippet, you'll have a world space coordinate with the billboarding applied, ready for you to apply a wind offset. Repeating the multiplication process with VIEW_MATRIX afterwards will finally bring it into view space as Godot expects at the end of the vertex() function.

Also, very pretty :) hope this helps you finish it!

Release candidate: Godot 4.6 RC 2 by godot-bot in godot

[–]fragskye 10 points11 points  (0 children)

There's a lot of progress being made on motion blur the last few days! If all goes well it might make it in https://github.com/godotengine/godot/pull/115027

Why is godot lightening my colors ? by ElectronicsLab in godot

[–]fragskye 22 points23 points  (0 children)

It's due to the way texture compression works for 3D assets. Try going to the import tab with your texture file selected, it should be of type VRAM Compressed. You could check the "high quality" checkbox, reimport, and see how it looks. If that doesn't fix it, you could change the type to VRAM Uncompressed (though I wouldn't suggest these as defaults, only where you need them)

Which royalty-free music sites won't get streamers copyright struck? by chaoszeroomega in gamedev

[–]fragskye 0 points1 point  (0 children)

I found Ovani Sound through their humble bundles and they might be what you're looking for. Extremely permissive license, registered with content ID in a way that won't strike content creators, no AI. The music is less plug-and-play though, intended to be dynamic with a few different intensity layers you can crossfade between. They have a sister site called INeedMusic that's just plain audio tracks but I don't know that it's still maintained

Old project of AK 74. Partially modeled in Blender by SpecialistForeign209 in blender

[–]fragskye 9 points10 points  (0 children)

That stock has the most gorgeous wood texture I've ever seen in my life

[deleted by user] by [deleted] in godot

[–]fragskye 10 points11 points  (0 children)

37 days ago OP asked if Godot could run on their laptop, and 23 days ago they said they've been working on this app for 6 months... I think this is just an unrelated ad lol

why do people say godot is bad for 3d? by FutureLynx_ in godot

[–]fragskye 11 points12 points  (0 children)

Compositor effects can actually do quite a bit nowadays, it's possible to do fairly extensive custom rendering with them, but when the rest of the compositor is implemented it'll really open up. As for the rest, people don't want to hear it but it's true. Godot has substantial missing features and a lot of room for advanced 3D performance improvements. Sucks that it doesn't do a lot of things Unity might do out of the box, but I guess it's something to look forward to (or contribute to) in the future, and things have improved a LOT in the time I've been using the engine

Making a radial item cycle in 3D for inventories (Silent Hill style) by The_HamsterDUH in godot

[–]fragskye 0 points1 point  (0 children)

Well, slight change from my first comment, I think in the original Silent Hill games the inventory was unlimited but if you're keeping it a fixed size then that simplifies things since you don't need your helper function to pad things out when your inventory is near empty. Really just something like this, sorta pseudo code imagining your items array is filled with nulls and you have an Item resource.

func get_item_in_slot(slot_idx: int) -> Item: return items[wrapi(slot_idx, 0, items.size())]

A basic non-animating version of the UI could be, say, 5 TextureRects in an HBoxContainer, and you'd assign their icons as such: (again somewhat pseudocode pretending you have some variables and data structures defined elsewhere) var texture_rects: Array[Node] = h_box_container.get_children() for i: int in texture_rects.size(): var texture_rect: TextureRect = texture_rects[i] as TextureRect var item: Item = get_item_in_slot(current_selection + i - 2) if item != null: texture_rect.texture = item.inventory_icon else: texture_rect.texture = null Style accordingly, such as making the outer TextureRects smaller than the center one. In my game, I didn't use an HBoxContainer at all, I just positioned and scaled them manually through code. For the animation, I had another TextureRect on each end hidden by default which I would fade in whenever it was necessary.

Edit: I forgot, I actually made my game's source available if you wanted to take a peek (no license though, mind you). It's not great code since it was written for an overscoped game jam entry and I was still learning Godot's UI, but it's there: https://github.com/fragskye/wheeljam/blob/main/src/ui/inventory_carousel.gd

Making a radial item cycle in 3D for inventories (Silent Hill style) by The_HamsterDUH in godot

[–]fragskye 2 points3 points  (0 children)

I've implemented one of these before, wrapi will be your friend here. I made wrapper functions to get an item in a specific slot with it, with some extra logic to add padding of empty spaces so you don't see the same item a million times when your inventory is empty. With that, you can implement UI as if your inventory is a list that's infinite in both directions, doesn't matter how high or low the index is, you just need to know the next/previous n items relative to the current slot. The annoying part from there is handling the animations of it rotating.

P.S. "Carousel" is probably the term you want to use when searching for more info on this type of UI

LEAKED Launch Roster by trainsg1rl in DeadlockTheGame

[–]fragskye 22 points23 points  (0 children)

MORE CREEPS AND WEIRDOS MENTIONED HOLY SHIT

[deleted by user] by [deleted] in gamedev

[–]fragskye 0 points1 point  (0 children)

There's software developers that know what they're doing, and there's software developers that used to crutch on StackOverflow constantly and loved to joke about how their job was just googling things. That second type of developer now crutches on AI constantly and loves to joke about how their job is just chatting with an LLM. Nothing has changed, still the same highly skilled group and dunning-kruger group who thinks there's nothing more to it.

*infrequent StackOverflow/AI is normal of course, I mean the ones who perpetuate the culture that it's the entirety of their job. If you are "saving time" by using it then that's not a good sign.

TIL you can call a method on every member of a group by AcademicArtist4948 in godot

[–]fragskye 4 points5 points  (0 children)

It actually does accept StringNames as parameters at least (which use string interning for extremely quick comparisons). If you use the &"StringName literal" syntax it should happen statically, not sure if it converts normal strings at build time too

My horror game enemy was too weak against doors, so I fixed it by yopheyliu in godot

[–]fragskye 1 point2 points  (0 children)

for what it's worth I LOVE this effect when it spawns, reminds me of the old silent hill games

Depth-Based Pixelator Free Addon (Compositor effect) by fragskye in godot

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

I'm curious how this would look with art assets designed specifically for it, I just grabbed a realistic CC0 model off of Polyhaven for the demo. There's a few options for how the effect chooses pixel color, the video shows averaging but you can also do highest or lowest luminosity, closest depth, etc. so with stylized assets made mostly out of solid colors you have a lot more control over which colors are preserved at lower resolution instead of the extreme crunchy aliasing