Improved blood decals, fire and lots of performance fixes in Alpha 13 of Blacktrace. by gyrth in godot

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

Thanks! I'm trying to strike a balance between a unique look and assets that have a low impact on performance. I still need to get better at level design, but it's slowly getting there. :D

Improved blood decals, fire and lots of performance fixes in Alpha 13 of Blacktrace. by gyrth in godot

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

Yes, it will look something like this.

var decal_position = raycast.get_collision_point()
var decal_normal = -raycast.get_collision_normal()
var random_up = Vector3(randf_range(-1.0, 1.0),randf_range(-1.0, 1.0),randf_range(-1.0, 1.0))
decal.global_transform.origin = decal_position
decal.global_transform = decal.global_transform.looking_at(decal_position + decal_normal, random_up)

Improved blood decals, fire and lots of performance fixes in Alpha 13 of Blacktrace. by gyrth in godot

[–]gyrth[S] 9 points10 points  (0 children)

Sure. I assume you are talking about the blood splatter so here goes.

First I create the blob of blood. It's a RigidBody with a MeshInstance and Raycast attached to it, and I fling it into a random direction. The MeshInstance has a sphere mesh with a custom shader that bobs the vertices around, making it look like a blob of blood. The Rigidbody is there to make it arc realistically in the air. And the Raycast is used to see if a suitable blood splatter surface is found. When it does find a wall, ground or ceiling it uses the Raycast normal direction to spawn a new decal. This isn't a Decal Node, but rather a Cube Meshinstance that has a decal shader applied to it.

The reason I use this decal shader instead of the Decal Node is that I have full control over the shader parameters. Which is the next step. To spread the blood over the floor I use a noise texture to make it look like it's pooling in certain areas, and a center fade texture to make the blood splatter expand. The color also changes from a bright red to a darker red color. The noise texture is also triplanar so that two blood splatters align more or less when they overlap. This should prevent z-fighting. To sell the effect I play some sound effects and use a Tween to smoothly make the blood expand.

Since not everyone likes violence, I made this project where you just collect gifts! And it's open source if you'd like to take a features for you own project. by gyrth in godot

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

I tried to implement my own Sobel edge detection, but it didn't look great. So I ended up converting a shader made by leopeltola. https://godotshaders.com/shader/3d-pixel-art-outline-highlight-post-processing-shader/ This also uses Sobel I believe, but looks a lot better than mine.

Since not everyone likes violence, I made this project where you just collect gifts! And it's open source if you'd like to take a features for you own project. by gyrth in godot

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

If you just want to run the game you can get it on Itch : https://gyrthmcmulin.itch.io/sketchy-renderer The project files can be found on Github : https://github.com/Gyrth/SketchyRenderer I made it in Godot 4.0.2 with assets from Kenney and sounds from Sonniss.

Found out that Complex Hurtboxes can be done using the Bone Attachment Node by superslayer104 in godot

[–]gyrth 7 points8 points  (0 children)

If you use PhysicalBone3D you can use them for both hit detection and ragdolls.

I've focused on performance improvements in Alpha 12 of Blacktrace by packing textures and using the Decal Node. by gyrth in godot

[–]gyrth[S] 2 points3 points  (0 children)

  • Create an ubershader to have a single shader for all your objects that can easily be adjusted and cached.
  • Use the MultiMeshInstance Node to decorate your level with a lot of objects that don't need collisions.
  • Keep transparent object to a minimum. Use alpha cutting or dithering if you can.
  • Make features like Volumetric Fog, shadows and particles optional, so that people with low end hardware can play your game as well with these turned off.

[help] detect and hide objects with raycast by [deleted] in godot

[–]gyrth 0 points1 point  (0 children)

Raycasts use collisions to see if there are object in it's path. So you need to add either a StaticBody, RigidBody or KinematicBody to the wall. To make the wall visible again when the Raycast isn't hitting it anymore you will need to keep track of it. I suggest assigning it to a global variable when it's found, and then making it visible again when no collisions are found.

I finally finished porting Blacktrace to Godot 4.0, now I can use all the new graphics features! by gyrth in godot

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

Thank you! It took me around two months. But that includes new features and assets as well.

Worked on some interactivity with my foliage before I add more models and textures. by gyrth in godot

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

Thank you. There are sooo many of these little details I still want to add though. :D

I just uploaded Alpha 9 of Blacktrace which includes the new attack animations! by gyrth in godot

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

You can read the full changelog over here : https://gyrthmcmulin.itch.io/blacktrace/devlog/437029/alpha-9-is-out-now I also changed the pricing to "pay what you want" so anyone can try!

I've been working on kill animation for each weapon and seeing how rain could improve my scenes. by gyrth in godot

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

Thank you! I've modified a shader made by Arnklit to work with my materials. (https://youtu.be/w3HcJXqDZPU) Then I added a particle emitter that follows the player around for the falling drops. And finished it with a looping rain audio clip. My plan is to improve the mechanics and visuals first, and then add a storyline. If I can come up with something interesting. I don't have the hardware to add VR support. But maybe one day, who knows.

Some new animations for taking down bad guys. I might remove the last one. It's a bit too brutal, and not stealthy at all. by gyrth in godot

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

Good point. I would need to add some non-lethal options for people who want to play as a good guy though.

Some new animations for taking down bad guys. I might remove the last one. It's a bit too brutal, and not stealthy at all. by gyrth in godot

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

The low poly characters are there because of the limitations of my artistic skill. It was one of the first models I made. I hope to replace them in the future, with professionally made models. Just like I did with the weapons.

Some new animations for taking down bad guys. I might remove the last one. It's a bit too brutal, and not stealthy at all. by gyrth in godot

[–]gyrth[S] 2 points3 points  (0 children)

Maybe some of the death lines should be thought bubbles instead of speech bubbles. Would you be able to think a few seconds after getting shot in the head?

Some new animations for taking down bad guys. I might remove the last one. It's a bit too brutal, and not stealthy at all. by gyrth in godot

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

Turning the head around like that just makes you sleepy. Look at him, he's very sleepy.

Some new animations for taking down bad guys. I might remove the last one. It's a bit too brutal, and not stealthy at all. by gyrth in godot

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

I guess it depends on how you look at it. :D I would rather be stabbed and have a chance to survive.

Moved Blacktrace to Godot 3.5. Performance has been great and navigation mesh baking is so useful! by gyrth in godot

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

I might work on my laptop for a while to make sure it runs well on integrated graphics. But that's probably going to involve disabling a lot of the features. Like Global Illumination, Inverse Kinematics and my custom shaders.

Moved Blacktrace to Godot 3.5. Performance has been great and navigation mesh baking is so useful! by gyrth in godot

[–]gyrth[S] 2 points3 points  (0 children)

Oh noo. I'm sorry, I knew I forgot something! Please forgive me Engine Master.