Arne Claassen
banner
sdether.bsky.social
Arne Claassen
@sdether.bsky.social
Infrastructure and functional programming geek. Gamedev hack. SimRacing enthusiast. Senior Developer at a Fruit Company.

I spent most of my time at https://mas.to/@sdether and have this account primarily to interact with people who are not on mastodon.
June 8, 2025 at 5:38 AM
Today I ran the #iracing Nürburging 24h with Team Parabola in a 992 Cup Car. Did 5 stints including bringing home to finish in class 2nd place. Absolutely psyched about how we did. Running the Porsche Cup was an total blast.
June 8, 2025 at 5:38 AM
After collision problems with my camera, I went on a spike with a CharacterBody camera. After about 2 weeks of trying to do orbits, I can't get rid of the divergence in calculated and velocity `Move()` positions (see the white and blue balls diverging.) #gamedev #godotengine
April 13, 2025 at 9:28 PM
Since my grid does not consist of squares, my tiles need to be distorted to be placed. I'm using a lattice with 8 control points to twist the tiles into place. Attached that code to a [tool] script and some static bodies for the control points to test it out in the editor

#godotengine #gamedev
March 18, 2025 at 6:57 AM
Heading into the WFC tile work, I needed repeatability to verify the logic and troubleshoot bugs. So I knocked out some QoL features with save and restore as well as unlimited undo/redo.
#godotengine #gamedev
March 15, 2025 at 5:30 AM
Changed the hover/selection to be vertex instead of grid cell based. This is primarily prep for tile based building a la Townscaper. For that constraint solving it's better for the selection to be collection of quad corners rather than a quad.

#godotengine #gamedev
March 9, 2025 at 11:16 PM
So I tore it out and replaced it with terrace "painting". On click the selected cell is leveled and any other cell gets set to the same level while the mouse is down. Still retain the ability to abort the whole operation and I even added a right-click "reset terrain" paint mode.
March 4, 2025 at 5:58 AM
The more I worked on my path terracing the less I liked it. It was unintuitive and unpredictable.

#gamedev #godotengine
March 4, 2025 at 5:58 AM
Not quite what I hoped to have for #screenshotsaturday . While I have terracing, and the pathfinding does try to follow contours, the path is unstable. It relies on 3D mouse position, which changes when the terrain under the mouse is modified.

#gamedev
#godotengine
March 2, 2025 at 1:05 AM
I've either spent the last couple of nights on a needed QoL feature or I was procrastinating on the refactor required to tile the terrain into chunks small enough to edit and regen in real time.

Either way, I now have hover with contextual grid and contour highlighting :)

#gamedev #godotengine
February 24, 2025 at 7:53 AM
Compare that to the more minecraft-y block render.
February 21, 2025 at 7:23 AM
The underlying contours become especially evident when rendering the grid with each cell top vertices at the same height. This gives a nice preview of how terracing for planting and building will smoothly follow the cliff.
February 21, 2025 at 7:23 AM
Same terrain rendered using square grid.
February 21, 2025 at 7:23 AM
Using the contour based grid to render the cliff looks a lot more organic.

#gamedev #godotengine
February 21, 2025 at 7:23 AM
The 256x256m grid is looking good though. Need to hook it up to my voxel column terrain to see it with elevation before I distract myself with chunked and on-demand generation.

#gamedev #godotengine
February 16, 2025 at 9:00 PM
Finally have my grid generation working the way I want--creating an organic, quadrilateral grid respecting terrain contour lines. Create quads based on 2x grid, then subdivide and relax. Dark vertices are fixed (to edge or contour), light ones get relaxed.
#screenshotsaturday #gamedev #godotengine
February 16, 2025 at 7:41 AM
Got my quadify logic based on contours working, but I do end up with a bunch of leftover triangles. Considered a quad re-write phase, where I break up quads between triangles, and retry. Other option was to just allow some triangles, like @bottosson.bsky.social is doing.

#gamedev
February 11, 2025 at 7:51 PM
Up until now, terrain generation and grid generation have been divorced from each other. What if instead, I generate the terrain, generate a contour map and then quadify that contour map. Back to having relaxed quads, but also naturally guide the building towards following the contours
February 6, 2025 at 6:38 PM
The problem with hex is that while you represent curves with less jags than quads, horizontal lines, not so much
February 6, 2025 at 6:38 PM
Briefly thought going back to a voronoi grid. Adjacent to voronoi is hex, which has the benefit of allowing for quadrilateral grid superpositioning for structures.
February 6, 2025 at 6:38 PM
Was thinking about the actual building mechanics which got me wondering whether I'm too rigidly stuck on quadilateral grids, even if relaxed.

Building on the Cinque Terre coast is basically terracing along contour lines, which is will end up jagged with a quad grid.
#gamedev
February 6, 2025 at 6:38 PM
A bit late to #screenshotsaturday but quadify and relax took a bit longer than I had hoped.

Quadify should try to avoid any vertices that are shared by less than 3 and more than 5 quads.

For relaxation, I have some constraints, but need to determine convergence conditions. #gamedev #godotengine
February 3, 2025 at 10:20 PM
But I don't think this really suits my goals after all. If you watch the relaxation using the underlying triangles, you can see that the delaunay triangulation may create different triangles on each voronoi iteration and I want to keep the triangulation stable during relaxation.
January 31, 2025 at 6:48 PM
Finished my Lloyd's Algorithm demo last night. There's something so soothing about that relaxation. I could regenerate and watch it for hours. #gamedev #godotengine
January 31, 2025 at 6:47 PM