News for hackers. Stuff that matters.
Re:Documentation related to the implementation of SimCity 2000 by hypertele-Xii on Wednesday February 15, 2023 @03:23AM (#34801358)
RollerCoaster Tycoon does the same, guests wander aimlessly around park and interact with whatever they come across while considering their needs.

The Sims displays the other end of this spectrum, where agents path deliberately (while still considering their needs), and the difference in simulation scale is immense.

Simple fact is, pathfinding is a performance bottleneck that hasn't been solved yet. We are still using algorithms from the 1960s, and no hardware acceleration exists.

SimCity has always been more of a spreadsheet with houses on top.

Re:Documentation related to the implementation of SimCity 2000 by eru on Wednesday February 15, 2023 @04:48AM (#34801808)
You can do a lot of shortcuts with the pathing, because you are doing a lot of pathing on a graph that doesn't change much from frame-to-frame.
Re:Documentation related to the implementation of SimCity 2000 by chongli on Wednesday February 15, 2023 @06:48AM (#34802580)
Exactly. The only time you should be calculating paths is after the player places new roads. Repeatedly calculating paths on a fixed graph is a huge waste of time!
Re:Documentation related to the implementation of SimCity 2000 by db48x on Friday February 17, 2023 @10:43PM (#34843645)
It’s even easier than that since each agent only needs to plans a path once, when they start their trip. After that they are simply following a cached path, removing road segments from it as they go. Most games will simply not recalculate those paths when you change the network, because it causes a lag spike every time the player makes a change, and because most routes wouldn’t end up changing. Better to just have cars ignore roads that didn’t exist when they departed, and have them vanish if they need to take a road that has since been deleted.
Re:Documentation related to the implementation of SimCity 2000 by hypertele-Xii on Wednesday February 15, 2023 @03:22PM (#34810019)
My graph is changing a lot, my whole environment from walls to objects is destructable and contains complex logic like access controlled doors.

Maybe your game doesn't change much. Lack of good pathfinding is what's constricting that the most. If good pathfinding existed, games in general could become more dynamic.

Re:Documentation related to the implementation of SimCity 2000 by eru on Monday February 20, 2023 @04:35AM (#34866579)
You could look into whether good-enough approximations exist?

Especially if the moving entities in your game aren't supposed to be omniscient. They could gradually learn about what good enough paths are.

Re:Documentation related to the implementation of SimCity 2000 by mjburgess on Wednesday February 15, 2023 @05:07AM (#34801916)
I suspect pre-generation caching, game design, multi-core, SIMD versions of algs, etc. have evolved a lot.

Real-world performance isn't that determined by the form of the time-complexity.

Re:Documentation related to the implementation of SimCity 2000 by adql on Wednesday February 15, 2023 @05:14AM (#34801957)
>Simple fact is, pathfinding is a performance bottleneck that hasn't been solved yet.

But we got thousand times faster CPUs than at Sim City 2000 times.

And they have multiple cores. And if that is not enough there are GPUs with even more compute.

Re:Documentation related to the implementation of SimCity 2000 by VMG on Wednesday February 15, 2023 @05:34AM (#34802097)
and better algorithms
Re:Documentation related to the implementation of SimCity 2000 by db48x on Friday February 17, 2023 @09:40PM (#34843294)
But that still doesn't change the fact that path finding must necessarily occupy a larger and larger fraction of the cpu time as the player builds a larger and larger city. Each path becomes longer, there are more paths to plan, etc. In order to maintain an acceptable frame rate in a large city on the minimum spec computer at the time of release, Cities: Skylines has a fixed limit of 16k moving vehicles. This caps the time spent path finding as well as maximum frame time because once the vehicle limit is hit, agents start teleporting rather than being forced to traverse the map.
Re:Documentation related to the implementation of SimCity 2000 by smcl on Wednesday February 15, 2023 @07:50AM (#34803128)
> no hardware acceleration exists

I'm picturing an alternate history where in addition to dedicated graphics cards, we also start building dedicated common algorithm cards - NVidia and AMD duking it out over whose hardware-accelerated sorting implementation performs best, Phoronix benchmarking how each companies' Linux drivers handle A* etc :)

Re:Documentation related to the implementation of SimCity 2000 by fragmede on Thursday February 16, 2023 @01:01PM (#34822605)
GPUs are that card given the GPGPU craze in days past.
Re:Documentation related to the implementation of SimCity 2000 by smcl on Friday February 17, 2023 @03:33PM (#34840148)
You're not wrong, but the idea of a sort of alt-history of various acceleration cards really tickled me :)
Re:Documentation related to the implementation of SimCity 2000 by fragmede on Thursday February 16, 2023 @01:02PM (#34822636)
Between Dwarf Fortress and Factorio's ability to simulate huge numbers of agents, I'm not convinced.