site banner

Tinker Tuesday for October 15, 2024

This thread is for anyone working on personal projects to share their progress, and hold themselves somewhat accountable to a group of peers.

Post your project, your progress from last week, and what you hope to accomplish this week.

If you want to be pinged with a reminder asking about your project, let me know, and I'll harass you each week until you cancel the service.

1
Jump in the discussion.

No email address required.

@Southkraut, how are you doing?

Also, @ArjinFerman, just for you: https://github.com/Shrugger/F7s

Feel free to make fun of everything in there. Right now it doesn't even compile, and if it did it wouldn't even be so much as a "Hello World".

I don't usually publish repos ever since I had to scrub the entire commit history of one thanks to a prank. Don't make me re-learn that lesson!

Noice!

This works (well, if it compiled) as a standalone project, or do I have to figure out Stride to get it working?

You'll probably need Stride to compile and run it, but don't fret - there's nothing to run yet. With the latest commit the whole thing is ready to compile, but so far all I've done is migrate over whatever was reasonably salvageable from the Godot days and ram it into a Stride project with zero finesse. If you were to compile and run it, you'd get a whole lot of nothing.

Next up is me getting my bearings and putting my code where my mouth was last week, i.e., getting some agents to visibly do things. Until then, there's nothing you could really do with the project. And once there is, I can indeed be assed to build an executable for you so that you needn't bother with Stride or getting your Visual Studio in order.

Migrated most of my backend code from Godot to Stride. It's still WIP; I ended up leaving out a lot of elements that could not be ported cleanly with big old "// TODO: Redo for Stride." comments; a lot of work that would need to be done to get it all back up and running.

Qustion is - do I want to reactivate all that, or reinvent it from the ground up again? Or should I maybe do something simpler for once, rather than try to build yet another overcomplicated, undervisualized and non-interactive simulation?

Other than that, a recurring theme was which data types (Vectors, Quaternions, Matrices etc.) to use for coordinate systems and geometry. Dotnet types, Stride types, or homebrew types? Each has advantages - the dotnet ones migrate cleanly, the Stride types should have the best performance since no casting is necessary, and the homebrew types migrate cleanly and would be best-adapted to my backend use-cases, but of course probably contain more errors than the dotnet types.

Right now I think using the Stride types is the best option; it will hurt migratability (is that even a word?) for future engine switches, but the performance benefits and reduced need to cast will be valuable. OTOH they won't cover all use cases, since much of my physics backend runs on double-precision, and indeed should continue to do so. I am not confident in my decision.

At this point I have almost completed the migration of my Godot backend to Stride. Over 900 compiler errors fixed. There are holes though. anything that did rely on builtin engine classes got a makeshift makeover that didn't always take prisoners. I have a lot of NotImplementedExceptions on my hands now. I did get some refactoring done on the way, but overall the damages exceed the benefits for now. None of this is going to work without many days of additional effort.

I'm thinking of just fixing the last few compiler errors and then putting together a simplified demo that doesn't require the more borked parts of my backend for now, so I have something visual to tinker with while working on the simulation aspects in parallel.