SpacetimeDB is an interesting new type of relational database that I haven't quite wrapped my head around yet.
It is designed for real time massive multiplayer games and uses some sort event sourcing (CRDTs?) but has many more potential use cases than just games.
It works particularly well with .NET and C#. So I have cleaned up and simplified the C# quickstart sample.
Day 6 of learning Rust as a C# dev:
No classes. No objects. Just tuples, arrays, and a compiler that keeps you honest.
Rust’s types feel simple until they don’t.
Here’s what I learned:
https://woodruff.dev/rust-scalar-and-compound-types-where-are-my-c-classes/
#GameDev #FreeCode #Godot #CSharp If anyone wants to play with this, the code is here:
https://github.com/IanBadcoe/SubD_Test
(to be precise, that is the test project which has the real repo as a sub-module)
Semi-polished and moderately tested, there are some awkward corners...
The features are:
- build-control-mesh from cubes (lame)
- build-control-mesh from "cylinders" (prisms)
-- radius, roll, pitch, yaw for each section
-- set edges/verts sharp, or tag them for later retrieval
-- add holes, set their edges sharp or tag them
- normals for all polys/edges/faces
Omissions:
- no UVs yet
- there is a ton of Linq used, it works for me in editor, but may give GC stalls if used a lot in game...
Further work:
- I want to add a feature beyond "holes" where I can turn a hole into a "socket" into which another surface could be plugged, producing side-branches...
- if performance is a problem, rewrite in C++...
Talk to me if you need anything. I do bite, but I am (on average) a long, long way away from you
#Gotod #CSharp #GamDev #Subdivisionsurface #Holes
OK, going to draw a line under the subdivision surface work for a while now and move on to some actual gameplay experimentation...
Calling MCP Servers in C# with Microsoft.Extensions dot AI.
https://markheath.net/post/2025/4/14/calling-mcp-server-microsoft-extensions-ai
Day 5 of learning Rust as a C# dev:
Functions look familiar... until they don’t.
No return keyword, types after names, and the last line does the returning?
It’s weird. It’s clean. I kind of love it.
https://woodruff.dev/functions-in-rust-familiar-yet-different/
3 Reasons .NET Developers Still Struggle with Unit Testing (And How to Fix It).
https://www.typemock.com/why-dotnet-unit-testing-feels-hard/
Why Rust? A C# Developer's Journey Begins | by Chris Woodruff.
https://woodruff.dev/why-rust-a-c-developers-journey-begins/
Just discovered #JetBrainsRider feature of making code diagrams!
Got inspired to use it to document my game's asset loading pipeline.
I think this reflection method for loading content could be used for modding as well. (I wrote this system probably over a year ago >_<)
Switch Statement in PowerShell Tip #40 #softwaredeveloper #LearnPowerShell #softwareengineering #csharp #coding #PowerShellScripting #Scripting #CodingForBeginners#PowerShellTutorial
#GameDev #CSharp #Godot #TransformError Hmm, not quite what The Doctor ordered, but if anyone can handle dimensional collapse...
.NET 10 Preview 3 — extension members, null-conditional assinment, and more
https://github.com/dotnet/core/discussions/9846
Discussions: https://discu.eu/q/https://github.com/dotnet/core/discussions/9846
#Godot #CSharp #Subdivision #Manifold #ScreenshotLastThursdayAfternoon
Building the SDS (SubDivisionSurface) from optionally hollow cylindrical sections is working out really well
Could you imagine playing a "not-really-tower-defence" on the inner/outer surface of this?
Need-to-add: pretty much everything, sharp edges, branching...
Please-excuse: lighting, grid positioned by hand in only approximately the right place...
#GameDev #Godot #CSharp #SubdivisionSurface
I've not even implemented sharp edges yet, and this "cylindrical" approach already feels much much more configurable than the cubes were...
Understand IF Conditional statements in PowerShell Tip #39 #softwaredeveloper #LearnPowerShell #softwareengineering #coding #csharp #PowerShellScripting #Scripting #CodingForBeginners #bash #linux