abstreet/docs/backlog.md
2020-07-07 10:09:13 -07:00

5.3 KiB

Backlog

These are very old TODOs that aren't captured elsewhere.

Themed rendering

  • halloween, winter, jungle, 8bit, organic (deform buildings), floorplan, machine (make buildings pump along front paths)

Halloween visual demo

  • cars with headlights
  • pumpkins
  • fences / bushes / features in houses or triangulation on a block with buildings
  • buildings as rooms in a hotel
  • silent hill soundtrack
  • deformed buildings pulsing on front path springs
  • lighting?
  • fog effects
  • in 3D, what if roads are sunken rivers and buildings giant skyscrapers?
  • eyes on the houses, that blink
  • trick-or-treaters wandering around

Conga line idea

  • try constructive approach for snake idea
    • with interactive mode?
  • try destructive approach for snake idea
    • with interactive mode?

Charm

  • music / sound effects
    • as you zoom in, overhear conversations and such
  • some buildings could have extra detail
  • zoom in too much, what might you see? ;)
  • loading screen: snakey cars
  • game intro/backstory: history of seattle urban planning
  • player context: a drone. people will look up eventually.

More things to simulate

  • seed parked cars in neighborhood with no owner or a far-away owner, to model reasonable starting state
  • outgoing border nodes can throttle to simulate traffic downstream

Tooling

Boundary clipping

  • some border intersections have weird OOBish geometry, or the arrows look weird
  • simplify border node detection, only do it in convert_osm?

More data

Map edits

  • lane type can affect border intersections

Sim bugs/tests needed

  • do bikes use bike lanes?
  • test that peds will use buses organically
    • make sure that we can jump to a ped on a bus and see the bus
  • park/unpark needs to jump two lanes in the case of crossing a bike lane or something
    • should only be able to park from the closest lane, though!
  • explicit tests making cars park at 0 and max_dist, peds walk to 0 and max_dist
  • lanechange rebalancing
  • parking/unparking on offside of oneway

Laundry list of intersection geometry ideas

  • make sure road widths are reasonable first
    • SDOT dataset
    • channelization
  • extend all the thick roads until they poke out of stuff (except for roads continuing straight)
  • play with https://github.com/w8r/polygon-offset
  • https://github.com/migurski/Skeletron
  • stitch together orig center line of adj roads. then do polyline shifting, which already handles angle eating?
  • manually draw intersections
    • montlake/520 4 traffic signal case. existing road geometry in OSM doesn't even cover everything.

Map layer

  • fixed precision math
    • more careful geom types, with negative/positive cases
    • also bounds?
    • cant get rid of the ccw intersection check... different answer in some cases that looks bad

Sim layer

  • rename Car->Vehicle?
  • spawning is convoluted
    • popdat trip -> Scenario SpawnTrip -> pick ped speed and make spawner's TripSpec -> create trip and schedule a Command -> last minute rewriting when executing the command
  • more precise car FSM by putting scheduler pointer into carstate

ezgui layer

  • probably use f32, not f64 everywhere... but after Pt2D becomes fixed size
  • undo the y inversion hacks at last!
  • ezgui passes EventCtx and DrawCtx with appropriate things exposed.
    • hide stuff inside the ctx's? canvas and prerender shouldnt even be known outside of crate
  • loading screen
    • FileWithProgress should go directly into Timer
      • need to understand lifetimes

Fix existing stuff

  • if a lane could feasibly have multiple turn options but doesnt, print "ONLY"
  • text box entry: highlight char looks like replace mode; draw it btwn chars

New features

  • collapse smaller roads/neighborhoods and just show aggregate stats about them (in/out flow, moving/blocked within)

Better rendering