lade...
random avatar

evan - Network

Posts Subscribe

Doing a new iteration of a tile/graph-based worldgen where world tiles are chosen based on what types of exits they have. Four exit types...

https://merveilles.town/@evan/11...

Doing a new iteration of a tile/graph-based worldgen where world tiles are chosen based on what types of exits they have. Four exit types (road, alley, doorway & wall) makes for a daunting number of combinations (70) but I mitigated this by mirroring tiles (down to 55) and then adding a "snip off" mechanism that consolidates doors and walls (which brought it down to 20).

But this was still too much duplication, making it a bit too tedious to iterate on environment design and add variants. So now I'm experimenting with a sub-tile assembly approach that can work from as few as 9 tiles.

28.2.2025 22:15Doing a new iteration of a tile/graph-based worldgen where world tiles are chosen based on what types of exits they have. Four exit types...
https://merveilles.town/@evan/11...

I've been doing graph-based procgen for a while and came across this video that ties into several of the algorithms I've been using....

https://merveilles.town/@evan/11...

I've been doing graph-based procgen for a while and came across this video that ties into several of the algorithms I've been using. It's a good watch if you want to think about innumerable rooms with innumerable doors.
youtube.com/watch?v=a-767WnbaC

27.2.2025 10:23I've been doing graph-based procgen for a while and came across this video that ties into several of the algorithms I've been using....
https://merveilles.town/@evan/11...

Huzzah! I figured out how to preserve the maximum area when smooshing the polygon. The answer is just to make corners that are parallel...

https://merveilles.town/@evan/11...

Huzzah! I figured out how to preserve the maximum area when smooshing the polygon. The answer is just to make corners that are parallel with the incoming plane. I've worked out all the edge cases... Now I just need to figure out if this algorithm is actually useful for its intended purpose.

16.2.2025 04:38Huzzah! I figured out how to preserve the maximum area when smooshing the polygon. The answer is just to make corners that are parallel...
https://merveilles.town/@evan/11...

I don't know if this algorithm is actually going to be a good fit for character collisions but the idea was so novel I had to give it a...

https://merveilles.town/@evan/11...

I don't know if this algorithm is actually going to be a good fit for character collisions but the idea was so novel I had to give it a quick try. Squishing polygons is fun.

I think the key to an optimal area-preserving squash might have to do with the ratio of edge lengths at the pushed corner.

15.2.2025 05:18I don't know if this algorithm is actually going to be a good fit for character collisions but the idea was so novel I had to give it a...
https://merveilles.town/@evan/11...

Wacky geometry experiment: concocting a thing called a "DEAP Constraint" for fast, stable collisions when a game character is...

https://merveilles.town/@evan/11...

Wacky geometry experiment: concocting a thing called a "DEAP Constraint" for fast, stable collisions when a game character is squeezing through tight spaces. It smooshes down an "equi-angular" polygon based on distance from each wall. But the smooshing needs to preserve as much area as possible...

15.2.2025 04:57Wacky geometry experiment: concocting a thing called a "DEAP Constraint" for fast, stable collisions when a game character is...
https://merveilles.town/@evan/11...

@neauoire @rek dat wind huh

https://merveilles.town/@evan/11...

@neauoire @rek dat wind huh

31.1.2025 12:59@neauoire @rek dat wind huh
https://merveilles.town/@evan/11...

The resulting properties behave just like member variables of the target type. It's not limited to primitives,: it can almost perfectly...

https://merveilles.town/@evan/11...

The resulting properties behave just like member variables of the target type. It's not limited to primitives,: it can almost perfectly simulate member objects (by declaring a list of member functions and variables to mimic).

20.1.2025 05:48The resulting properties behave just like member variables of the target type. It's not limited to primitives,: it can almost perfectly...
https://merveilles.town/@evan/11...

Provided with the structure in snippet 1, a manipulator type can be set up with a macro like in snippet 2, or by writing against the...

https://merveilles.town/@evan/11...

Provided with the structure in snippet 1, a manipulator type can be set up with a macro like in snippet 2, or by writing against the templates like in snippet 3.

20.1.2025 05:45Provided with the structure in snippet 1, a manipulator type can be set up with a macro like in snippet 2, or by writing against the...
https://merveilles.town/@evan/11...

Wrote a library this week based on a technique I've been using for years to realize property accessors in C++. I was delighted to find...

https://merveilles.town/@evan/11...

Wrote a library this week based on a technique I've been using for years to realize property accessors in C++. I was delighted to find it's possible to almost perfectly recreate any type from get and set methods, and to bind these with pretty minimal syntax. Still putting together the repository.

github.com/EvanBalster/cpp-pro

20.1.2025 05:38Wrote a library this week based on a technique I've been using for years to realize property accessors in C++. I was delighted to find...
https://merveilles.town/@evan/11...

Unsigned integers are occasionally a handy format for encoding a heading on a 2D plane, owing to their innate mathematical wraparound. This...

https://merveilles.town/@evan/11...

Unsigned integers are occasionally a handy format for encoding a heading on a 2D plane, owing to their innate mathematical wraparound. This is the first time I've used one as a radial bitmask, though.

19.12.2024 06:20Unsigned integers are occasionally a handy format for encoding a heading on a 2D plane, owing to their innate mathematical wraparound. This...
https://merveilles.town/@evan/11...

I needed to keep track of which directions near an object were obstructed by things, so I made a little class that uses an int16/32/64...

https://merveilles.town/@evan/11...

I needed to keep track of which directions near an object were obstructed by things, so I made a little class that uses an int16/32/64 bitmask to represent ranges of degrees around a central point. It's a simple little thing but the test program for a circular obstruction looks neat.

18.12.2024 19:53I needed to keep track of which directions near an object were obstructed by things, so I made a little class that uses an int16/32/64...
https://merveilles.town/@evan/11...

Don't talk to me or my son ever again.

https://merveilles.town/@evan/11...

Don't talk to me or my son ever again.

14.12.2024 20:38Don't talk to me or my son ever again.
https://merveilles.town/@evan/11...

Visualizing step count gives this lava-like appearance. I've gotten the hang of dancing about just right in order to fling little...

https://merveilles.town/@evan/11...

Visualizing step count gives this lava-like appearance. I've gotten the hang of dancing about just right in order to fling little pieces of myself around.

13.12.2024 03:02Visualizing step count gives this lava-like appearance. I've gotten the hang of dancing about just right in order to fling little...
https://merveilles.town/@evan/11...

Fine-tuning the physics and particle pathing with the goal to keep these critters sort of loose without falling apart. They still can't...

https://merveilles.town/@evan/11...

Fine-tuning the physics and particle pathing with the goal to keep these critters sort of loose without falling apart. They still can't pass through non-euclidean space without exploding. :(

TODO: eyeball physics, portal stability, render batching

13.12.2024 00:00Fine-tuning the physics and particle pathing with the goal to keep these critters sort of loose without falling apart. They still can't...
https://merveilles.town/@evan/11...

Hypothesizing about a method for antialiasing a raymarched figure by approximating each pixel with a projected circle (somewhere between...

https://merveilles.town/@evan/11...

Hypothesizing about a method for antialiasing a raymarched figure by approximating each pixel with a projected circle (somewhere between equal-area and circumscribing it). As the ray marches, the pixel's projected radius in 3D space scales with distance from the camera.

We shrink the model by subtracting one pixel-radius from the SDF result. This way a 'direct hit' indicates there's no need to antialias. If any AA is needed, the ray will pass by within a distance of one pixel-diameter... We can approximate the closest distance and model the intersection between the model and our "wide ray" as a circular segment, using its area ratio as an alpha value. Then we just keep marching the ray and compositing alpha values for each near-miss.

Something like this is probably already standard practice.

12.12.2024 22:14Hypothesizing about a method for antialiasing a raymarched figure by approximating each pixel with a projected circle (somewhere between...
https://merveilles.town/@evan/11...

Goo particles are now individual gameobjects, and antialiasing sort of works. Very jiggly! But the eyes get buried and they fall apart too...

https://merveilles.town/@evan/11...

Goo particles are now individual gameobjects, and antialiasing sort of works. Very jiggly! But the eyes get buried and they fall apart too easily.

12.12.2024 02:33Goo particles are now individual gameobjects, and antialiasing sort of works. Very jiggly! But the eyes get buried and they fall apart too...
https://merveilles.town/@evan/11...

Temporarily reduced to just a single particle so I can mess with surface tension, the styling of eyes and an outline.

https://merveilles.town/@evan/11...

Temporarily reduced to just a single particle so I can mess with surface tension, the styling of eyes and an outline.

10.12.2024 02:07Temporarily reduced to just a single particle so I can mess with surface tension, the styling of eyes and an outline.
https://merveilles.town/@evan/11...

Very basic movement of the metamorphic goo with pancaking. Spring force simulation feels wrong.

https://merveilles.town/@evan/11...

Very basic movement of the metamorphic goo with pancaking. Spring force simulation feels wrong.

8.12.2024 04:30Very basic movement of the metamorphic goo with pancaking. Spring force simulation feels wrong.
https://merveilles.town/@evan/11...

Tinkering up some in-engine raymarching.

https://merveilles.town/@evan/11...

Tinkering up some in-engine raymarching.

8.12.2024 01:48Tinkering up some in-engine raymarching.
https://merveilles.town/@evan/11...

Worked out an equation to make them blob up in the air and pancake out on the floor. Animating models inside a shader is kinda crap though;...

https://merveilles.town/@evan/11...

Worked out an equation to make them blob up in the air and pancake out on the floor. Animating models inside a shader is kinda crap though; better move this to my game engine next.

7.12.2024 01:25Worked out an equation to make them blob up in the air and pancake out on the floor. Animating models inside a shader is kinda crap though;...
https://merveilles.town/@evan/11...
Subscribe
To add news/posts to your profile here, you must add a link to a RSS-Feed to your webfinger. One example how you can do this is to join Fediverse City.
         
Webfan Website Badge
Nutzungsbedingungen   Datenschutzerklärung  Impressum
Webfan | @Web pages | Fediverse Members