Live data from Hacker News

Creating believable crowds in Planet Coaster

gamasutra.com

1–10 of 18 posts

Re: Creating believable crowds in Planet Coaster

#2
If you're interested in this, RVO (reciprocal velocity obstacles) is another multi-agent system for collision avoidance with some good reading[0][1][2]. I've been porting the RVO2 library to Python3 over break and it's incredibly natural the way the particles float around each other.

[0] http://gamma.cs.unc.edu/RVO/ [1] http://gamma.cs.unc.edu/RVO2/ [2] http://gamma.cs.unc.edu/HRVO/

Re: Creating believable crowds in Planet Coaster

#4
We use pretty much the exact same concepts in SimAirport [1] and it generally works quite well. As with many of these types of 'scale' problems, invalidation becomes a bit tricky but on the whole it has allowed us to scale the game much better than anything else that we looked at.

Still a lot of work left to scale the remainder of the game (performance-wise), though.

Edit to add: It's also tricky when there are bitmask scopes of availability (is agent secure? is agent first class passenger? is agent a staff member with a badge? etc) and traversal-abilities; and then when you want to add in better heuristics to achieve neat stuff like moving walkways, etc. =)

1 - Disclaimer: Am one of the two devs of SimAirport. http://store.steampowered.com/app/598330

Re: Creating believable crowds in Planet Coaster

#5
post #3

I love the fact that Undo/Redo is particularly marked as a difficult problem. I ALWAYS find making Undo/Redo robust to be one of the biggest challenges in any software application.

Same. In concept it seems really easy. Immutable data, events, two stacks, push pop. But in practice it's never that easy.

Unless you base entire systems' designs around making undo/redo easy, but then it feels like you're making a lot more work for yourself elsewhere.

Re: Creating believable crowds in Planet Coaster

#6
post #3

I love the fact that Undo/Redo is particularly marked as a difficult problem. I ALWAYS find making Undo/Redo robust to be one of the biggest challenges in any software application.

Same. In concept it seems really easy. Immutable data, events, two stacks, push pop. But in practice it's never that easy. Unless you base entire systems' designs around making undo/redo easy, but then it feels like you're making a lot more work for yourself elsewhere.

I think autodesk did this really well with their Fusion 360 CAD application (probably others as well but this is the one i know).

Because the CAD concept in general is build around parameterisation every modification the user makes needs to be able to be remade with on a different starting (or previous) state. In a way it becomes even more then a first class citizen functionality in the application. The entire history stack (timeline) is available and you can even directly edit, reorder or modify individual steps and their parameters instead of just un/redoing them.

Re: Creating believable crowds in Planet Coaster

#7
post #3

I love the fact that Undo/Redo is particularly marked as a difficult problem. I ALWAYS find making Undo/Redo robust to be one of the biggest challenges in any software application.

I think there is some bug with the undo in Planet Coaster with path creation that as a byproduct allows people to create smooth curved plazas. When you add a branch to a linear path and undo it, it seems to create a smooth curve at times so you can repeatedly shape the path. https://www.youtube.com/watch?v=OEtI8Q4XCek

Re: Creating believable crowds in Planet Coaster

#9
post #6

Earlier quoted context omitted.

Same. In concept it seems really easy. Immutable data, events, two stacks, push pop. But in practice it's never that easy. Unless you base entire systems' designs around making undo/redo easy, but then it feels like you're making a lot more work for yourself elsewhere.

I think autodesk did this really well with their Fusion 360 CAD application (probably others as well but this is the one i know). Because the CAD concept in general is build around parameterisation every modification the user makes needs to be able to be remade with on a different starting (or previous) state. In a way it becomes even more then a first class citizen functionality in the application. The entire histor…

Is there a name for this kind of architecture? Once I was daydreaming and thought something similar would work well for business CRUD applications. You get an audit log for free, and it would enable offline edits relatively easy.

Re: Creating believable crowds in Planet Coaster

#10
post #6

Earlier quoted context omitted.

I think autodesk did this really well with their Fusion 360 CAD application (probably others as well but this is the one i know). Because the CAD concept in general is build around parameterisation every modification the user makes needs to be able to be remade with on a different starting (or previous) state. In a way it becomes even more then a first class citizen functionality in the application. The entire histor…

Is there a name for this kind of architecture? Once I was daydreaming and thought something similar would work well for business CRUD applications. You get an audit log for free, and it would enable offline edits relatively easy.

I'd start looking from "event sourcing".
Post reply on HN