Ride the Campusbussen #28

Closed
opened 2026-10-17 20:40:33 +00:00 by sermuns · 4 comments
Owner

route_master in the extract names a Campusbussen -- "bus line for
students at Linkoping University" -- plus Linje 3, 6, 12, 15, 20, 26, 39, 75,
232 and 250, and public_transport relations for Gamla Linkoping,
Ryd centrum, Universitetet, Vallfarten, Malster Mattias vag and
Rydsvagens andhallplats.

The campus bus is a real service that runs between the halls, and the route is
mapped as a way list with 22 highway=bus_stop nodes along it (already
PROP_BUS_STOP).

A bus is a second VehicleKind in liuverse-world::vehicle -- the fleet spawn,
mount, throttle/steer/drift and the server-authoritative position are all
generic already, so this is a longer body, a roof, and more seats rather than new
mechanics. A stop that picks you up and drops you at the next one is a
natural fit for the existing authoritative-scooter path.

Two issues here and this is the fun one; the route relations themselves are a
separate issue, #29.


Related

  • #29 needs the route relations baked
  • #11 the sibling authoritative mechanic
  • #40 the sibling vehicle
`route_master` in the extract names a **Campusbussen** -- "bus line for students at Linkoping University" -- plus Linje 3, 6, 12, 15, 20, 26, 39, 75, 232 and 250, and `public_transport` relations for `Gamla Linkoping`, `Ryd centrum`, `Universitetet`, `Vallfarten`, `Malster Mattias vag` and `Rydsvagens andhallplats`. The campus bus is a real service that runs between the halls, and the route is mapped as a way list with 22 `highway=bus_stop` nodes along it (already `PROP_BUS_STOP`). A bus is a second `VehicleKind` in `liuverse-world::vehicle` -- the fleet spawn, mount, throttle/steer/drift and the server-authoritative position are all generic already, so this is a longer body, a roof, and more seats rather than new mechanics. A stop that picks you up and drops you at the next one is a natural fit for the existing authoritative-scooter path. Two issues here and this is the fun one; the route relations themselves are a separate issue, #29. --- **Related** - #29 needs the route relations baked - #11 the sibling authoritative mechanic - #40 the sibling vehicle
sermuns added this to the Play milestone 2026-10-19 22:18:52 +00:00
Author
Owner

This is now half done, and the half that is done is the one that was hard to guess at: the campus shuttle is a real, mapped, self-driving service, and its route and stops are in the bake.

PR #105 adds it as a rideable vehicle and bakes the route it follows.

What the data says

The extract carries the service as it is mapped:

relation 10950202  route=bus  name="Ride the future (Vändpunkten)"
    description="Självkörande buss"  network="Ride the future"
    from=Blå Havet  via=Vändpunkten  to=Blå Havet  roundtrip=yes
    opening_hours="Mo-Fr 08:00-17:30; Sa-Su 11:00-15:30"

relation 14572654  route=bus  name="Ride the future (Slingan)"  (via Vallastadens kyrka)
relation 14572655  route_master=bus  name="Ride the future"  website=ridethefuture.se

Four of its stops are on campus, all on the Corson path and in route order: Blå Havet, B-Huset, Studenthuset, Campushallen. The service is two autonomous electric minibuses with a safety driver, so it is a small pod rather than a 12-metre bus — it takes six passengers.

What is in the game now

  • The bake reads OSM relations and keeps the shuttle network's routes: the line it drives and its stops, in route order. The extract is a box, so a route that leaves it comes back as two pieces of line rather than one false jump across the gap.
  • VehicleKind::Bus is a vehicle like any other: E mounts, W/S throttle and brake, A/D steer, and the server is authoritative over it as it is over the scooter and the bicycle. It has a driver at the wheel and six seats behind it, and it is full at seven.
  • It spawns waiting at the route's first stop, facing the way it drives.

What is left, and it is the interesting half

The bus does not drive itself yet. It waits at its stop like any other vehicle, and you drive it.

The autonomy is the rest of this issue, and the data for it is now in the bake:

  • follow the baked line from stop to stop, the way the relation orders the ways;
  • stop at the stops, and let a player on foot board and a passenger get off;
  • loop — the relation is roundtrip=yes, from and to are both Blå Havet.

None of that needs new sources: the route's chunks, the stops and their order are already baked, and the server is already the authoritative side of every vehicle. What it needs is a driver that follows the line instead of the player's throttle, and a rule for who is allowed to be aboard.

Refs #105

This is now half done, and the half that is done is the one that was hard to guess at: **the campus shuttle is a real, mapped, self-driving service, and its route and stops are in the bake.** PR #105 adds it as a rideable vehicle and bakes the route it follows. ### What the data says The extract carries the service as it is mapped: ``` relation 10950202 route=bus name="Ride the future (Vändpunkten)" description="Självkörande buss" network="Ride the future" from=Blå Havet via=Vändpunkten to=Blå Havet roundtrip=yes opening_hours="Mo-Fr 08:00-17:30; Sa-Su 11:00-15:30" relation 14572654 route=bus name="Ride the future (Slingan)" (via Vallastadens kyrka) relation 14572655 route_master=bus name="Ride the future" website=ridethefuture.se ``` Four of its stops are on campus, all on the Corson path and in route order: **Blå Havet**, **B-Huset**, **Studenthuset**, **Campushallen**. The service is two autonomous electric minibuses with a safety driver, so it is a small pod rather than a 12-metre bus — it takes six passengers. ### What is in the game now - The bake reads OSM relations and keeps the shuttle network's routes: the line it drives and its stops, in route order. The extract is a box, so a route that leaves it comes back as two pieces of line rather than one false jump across the gap. - `VehicleKind::Bus` is a vehicle like any other: `E` mounts, `W`/`S` throttle and brake, `A`/`D` steer, and the server is authoritative over it as it is over the scooter and the bicycle. It has a driver at the wheel and six seats behind it, and it is full at seven. - It spawns waiting at the route's first stop, facing the way it drives. ### What is left, and it is the interesting half **The bus does not drive itself yet.** It waits at its stop like any other vehicle, and you drive it. The autonomy is the rest of this issue, and the data for it is now in the bake: - follow the baked line from stop to stop, the way the relation orders the ways; - stop at the stops, and let a player on foot board and a passenger get off; - loop — the relation is `roundtrip=yes`, `from` and `to` are both Blå Havet. None of that needs new sources: the route's chunks, the stops and their order are already baked, and the server is already the authoritative side of every vehicle. What it needs is a driver that follows the line instead of the player's throttle, and a rule for who is allowed to be aboard. Refs #105
Author
Owner

The shuttle can be called now. It still does not drive itself.

  • 1b8ebde landed the call: E at a bus stop calls the nearest shuttle there — online the server validates the stop and moves the authoritative bus, offline the local fleet does the same — carrying every rider still aboard, and it arrives in the same column of light as any other teleport. The shuttle spawns waiting at both ends of its baked route, facing the way it drives (789e48b).
  • The earlier note stands on what is left: the autonomous half. Follow the baked line from stop to stop, let a player on foot board and a passenger off, run the roundtrip=yes loop. The route, the stops and their order are already in the bake; what is missing is a driver that reads the line instead of the player's throttle.
The shuttle can be called now. It still does not drive itself. - `1b8ebde` landed the call: `E` at a bus stop calls the nearest shuttle there — online the server validates the stop and moves the authoritative bus, offline the local fleet does the same — carrying every rider still aboard, and it arrives in the same column of light as any other teleport. The shuttle spawns waiting at both ends of its baked route, facing the way it drives (`789e48b`). - The earlier note stands on what is left: the autonomous half. Follow the baked line from stop to stop, let a player on foot board and a passenger off, run the `roundtrip=yes` loop. The route, the stops and their order are already in the bake; what is missing is a driver that reads the line instead of the player's throttle.
Author
Owner

eh don't care

eh don't care
Author
Owner

Closing as wontfix: the autonomous-driving half is dropped. The shuttle stays as it is — a rideable bus with its baked route and stops, callable with E at a stop.

Closing as wontfix: the autonomous-driving half is dropped. The shuttle stays as it is — a rideable bus with its baked route and stops, callable with `E` at a stop.
Sign in to join this conversation.
No description provided.