Readit News logoReadit News
Farer commented on Pathfinding   juhrjuhr.itch.io/deep-spa... · Posted by u/sebg
Farer · 10 months ago
So interesting !

I made custom pathfinding solution before. How about considering my project too ?

https://github.com/Farer/bw_path_finding

Farer commented on Apple's AI isn't a letdown. AI is the letdown   cnn.com/2025/03/27/tech/a... · Posted by u/ndr42
Farer · a year ago
I really dislike extreme views. 0 or 1. This is a concept that only fits the Digital world. The world we live in is analog. Although we call the world we live in a 'Digital World,' in reality, the 'Digit' itself is simply recorded on a certain analog machine.

Just because the 'AI' services we use today cause certain levels of error doesn't mean we can disregard their value as zero. Are Apple’s services flawless? (Vision Pro... I won’t say more.) Since humans are not perfect, everything created by humans can never be perfect. Between 0 and 1, there are countless values like 0.1, 0.0002, etc. Ignoring this concept is something I personally find truly repulsive.

When the so-called 'AI' industry was booming, Apple was completely fumbling. Why? Because Apple is not perfect either. After all, Apple is run by people.

Farer commented on Ask HN: Have you ever seen a pathfinding algorithm of this type?   blog.breathingworld.com/r... · Posted by u/Farer
zbs1970 · a year ago
Yes. I worked on Ultima 7, 8 and Online (but only on UO in early stages as a manager to help get it started). Glad you enjoyed them. I think I still have box copies around here somewhere.

The pathfinding was a pretty expensive part of the game. I don't remember the profiling details of course (it was 25 years ago) but I do remember us being concerned about it. If I remember correctly we ended-up spreading out the computational load over multiple frames since the P.F. cost is obviously very bursty. I vaguely recall refactoring it to make it stateful so that we could spread the computational cost over X frames. Because pathfinding and follow code were the very first things I worked on for those games I had to write a sandbox because there was no game environment to work in yet.

I also remember that we added more and more "optimization" hacks to the pathfinder because of the cost. The discussion was like: "Its taking too long when the NPCs go upstairs and they end up lost in the bedrooms by the timeout" and so we'd add hacks like "Exclude staircases". There were a number of these hacks. Each of those hacks would then create non-obvious complications and I strongly remember a lot of frustrating time chasing bug reports of the "bad pathfind in case X" variety only to discover that it was working exactly as designed and that the real problem was one of these hacks had unexpected consequences like: "We excluded to staircase but the staircase tiles extend in front of the door so now they can't find their way out."

This is a tangent to your question about pathfinding, but while I'm thinking about it ... a lesson from U7 pathfinding (and animation in general) was that the stateful requirements were common enough that by U8 I built a Domain Specific Language to model/handle it. The language I built (called Unk) and its compiler had closure concepts very similar to what I later discovered was called "async/await" semantics. This DSL made the game designers life a lot easier -- remember other than those Unk scripts everything was in C and assembly, ie no garbage collectors. Again, I was too young and naive (pre-internet!) to know that async-like language concepts already existed so I just naively "invented" it all from scratch.

Farer · a year ago
Yes, I was a huge fan of Ultima 7, 9 and Online. I remember that incredible sense of freedom gave me a kind of liberation(?). It’s an honor to be able to have this conversation with you. Thinking about how you were already grappling with pathfinding issues and addressing them in real-time back then makes me feel a bit envious. I’m sure there weren’t many people who could have had such experiences at that time. It’s thanks to people like you with those experiences that today’s programming languages and skills have developed as they have. My technical level is far below yours, but I want to complete a lightweight pathfinding algorithm for my project, no matter what. Thank you for sharing such an inspiring story.
Farer commented on Ask HN: Have you ever seen a pathfinding algorithm of this type?   blog.breathingworld.com/r... · Posted by u/Farer
Animats · a year ago
I've done that something like that.[1] It's appropriate where there's a significant cost to detecting obstacles, because it tests few unnecessary cells.

It heads to the goal until an obstacle is reached, then follows the wall. Unusually, it forks and follows both the left and right wall simultaneously. It's not always optimal, but the optimal algorithms such as A* have to test more cells.

This algorithm runs my NPCs in Second Life.

[1] https://github.com/John-Nagle/lslutils/blob/master/npc/obsol...

Farer · a year ago
Oh, thank you. I'll have to take a look at the source code as well.

u/Farer

KarmaCake day25September 30, 2024
About
breathingworld.com
View Original