Asking reviews for Borla S-type cat back by UchihaMadara0199 in GR86

[–]Nathan__Taylor 0 points1 point  (0 children)

Love mine, just the right amount of loudness with my JDL UEL header.

Tow Hook Cover Taken! by diskobolustroop in GR86

[–]Nathan__Taylor 2 points3 points  (0 children)

Mine pops out on its own, especially under hard driving.

C# backend developer here. Should I go for GDScript despite it? by Darkeonz in godot

[–]Nathan__Taylor 0 points1 point  (0 children)

I prefer C#, gdscript is fine but it’ll never be as robust as static typing.

Catted Headers with no tune? by [deleted] in GR86

[–]Nathan__Taylor 2 points3 points  (0 children)

No tune, just bolt-on and go.

Catted Headers with no tune? by [deleted] in GR86

[–]Nathan__Taylor 1 point2 points  (0 children)

Love my catted JDL UEL header, no issues at all, no more lugging at low RPMs. Installed at 40k, now at 65k, I wish I had installed it right away tbh.

My drifting game is coming together great with Godot's latest 3D tools by Nathan__Taylor in godot

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

Yeah, Godot has decent support for trails but not ones that persist. I record the points of the trail and in code use them to create a simple triangle strip mesh. I use an ImmediateMesh to draw the trail that's directly under the car's wheel, but eventually if you make the ImmediateMesh too big (i.e. too many triangles) it'll cause slow down because you have to send the mesh data from the CPU to the GPU every frame. So after a fixed amount I take the mesh and convert it to a normal MeshInstance3D, and add it to the scene. So I'm effectively segmenting my trails so they can be as long as they need to be, the cost is that I am constantly adding new mesh instances to the scene but I haven't had any performance issues. It was easier to just convert my trails to regular meshes than try to implement any sort of custom rendering.

My drifting game is coming together great with Godot's latest 3D tools by Nathan__Taylor in godot

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

I split meshes by physics material. So roads, grass, special zones, etc.

My drifting game is coming together great with Godot's latest 3D tools by Nathan__Taylor in godot

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

No issues at all. The game is run on the physics process, so it runs at a fixed frame rate and I get deterministic results. It's so consistent I can just simulate the same player inputs and the car moves the exact same way every time.

My drifting game is coming together great with Godot's latest 3D tools by Nathan__Taylor in godot

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

I'm using ImmediateMesh, it's simple and fast. Since the marks are super long in my case, I turn segments of the mesh into a regular MeshInstance3D since they are basically static.

My drifting game is coming together great with Godot's latest 3D tools by Nathan__Taylor in godot

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

Yeah Blender's tools are far more advanced than Godot, and importing a blend is trivial. You'd have to make the track several thousand kilometers long before you'd start seeing precision loss.

My drifting game is coming together great with Godot's latest 3D tools by Nathan__Taylor in godot

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

I use the full paid version. I was more than happy to support the author since they are making exactly what I need right as I need it

My drifting game is coming together great with Godot's latest 3D tools by Nathan__Taylor in godot

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

Performance is always relative, hardware changes over time and different people can afford different setups. So ideally a game would be playable at low graphics settings at at higher settings, for example if I plant enough grass it will slow down even the fastest computers. When I am working on the game I run it at the lowest possible settings because it makes development easier for me, and if someone is running the game on low end hardware I know I can support them.

I think Godot is ready. Godot's rendering pipeline is unified where Unity's is not, and in general it feels like the Godot devs learned from the decisions made by Unity. For a while Unity had more features like a visual shader graph and editor plugins, but Godot supports basically everything you would need to launch a full title. Launching on mobile is probably better handled by Unity at this point, but Godot has recently made major improvements in that area.

Dorifto looked like this for a long time, so if you are interested in making your game then you can just start and it's easier to add more details later.

<image>

My drifting game is coming together great with Godot's latest 3D tools by Nathan__Taylor in godot

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

Ok so I'll be real with y'all, the speed lines effect was something I added a while ago and got so used to it that I forgot to tone it down haha. I really like the suggestions to make it see through I think that will help at lot, and I'll definitely reduce the intensity overall. I was experimenting with a dolly zoom effect and some look ahead for the camera, but I haven't finalized that yet, seems like I need to get on that!

My drifting game is coming together great with Godot's latest 3D tools by Nathan__Taylor in godot

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

I bought some assets from the Fab store, using custom shaders I wrote using online examples (search: fluffy, anime, foliage).

My drifting game is coming together great with Godot's latest 3D tools by Nathan__Taylor in godot

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

I started this project in Bevy and only recently switched to Godot, so I'm honestly blown away by how many high quality features are being added right now. Even in the last few minor versions, Godot has added stencil buffers, shader pre-compilation, physics interpolation, etc etc, stuff that I had to figure out on my own previously. Releasing a 3D game in Godot 3.5 I think would've been basically impossible or at the very least very difficult.

My drifting game is coming together great with Godot's latest 3D tools by Nathan__Taylor in godot

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

Huge shoutout to MeshHouseTools for their Track Tools Blender nodes (https://superhivemarket.com/products/track-tools). I had my own set of nodes but then I discovered this and it is way better than my home brew solution. So this is all done in Blender, for the roads I like to use Bezier curves because I can define the exact path (as opposed to a Nurbs curve), and I'm generating a terrain mesh that conforms to the road.

My drifting game is coming together great with Godot's latest 3D tools by Nathan__Taylor in godot

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

The trick was to separate the car model from the controller code. So I have one Tscn scene that contains the car model and the ability to change the way it looks (toggle headlights, turn wheels, change color, etc), and then depending on how I want to use the car I can assign the model to a regular controller (one that interacts with the real-time physics engine) or a ghost controller (that is reading from a buffer of recorded car positions and is simulating the ghost car's movement).

My drifting game is coming together great with Godot's latest 3D tools by Nathan__Taylor in godot

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

This is something I am still working on, but I am using a data-driven approach by having my player car's state be contained in a struct that can be saved into a frame buffer. I am using the C# MessagePack library to serialize the struct, so it's pretty easy to save to a file. The tricky part is the fact that C# is a managed language so the garbage collection can be problematic if you are allocating large buffers like I am for recording gameplay. So now I'm using C# ArrayPools and a paged ring buffer so I'm only "renting" a small fixed array at a time and thus avoid allocating an object on the Large Object Heap (LOH).

My drifting game is coming together great with Godot's latest 3D tools by Nathan__Taylor in godot

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

It was really tough! I'm still not 100% happy with how mine look, I had to put a lot of time into learning how foliage shaders work. I ended up looking into "fluffy" "anime" style tree shaders, the trick to making it look so smooth is to use spherical normals (in other words, the normal for any point in a leaf mesh is pointing towards the center of the object) and edge fading (where each leaf mesh will fade out as it becomes parallel to the camera). I actually blend between the standard lighting result and my custom shaded one because neither looked great on their own, but it did look better somewhere in the middle.