Auto Traffic Control – A gRPC Programming Air Traffic Control Game
auto-traffic-control.com
auto-traffic-control.com
Europe does it differently and keeps traffic on instrument procedures and radar vectors even in good weather. But in the US it's super common in nice weather to have jets into all major airports fly visual approaches, where separation between traffic is very much "look out the window at the plane ahead, don't hit them."
If you're VFR, you can probably pack a little tighter, meaning more planes landing per minute. But of course, we could just add a runway.
Anyway, the point being, if you learn to fly in LA, you might as well be a professional pilot IMHO.
The limitation on hourly capacity for both systems is how quickly planes can get off the runway after landing.
Things like rectangular holding patterns aren't feasible when you are playing only in 2 dimensions
but, seriously, I wondered if one needed to deal with waypoints, but it seems that no, they are liberally available: https://auto-traffic-control.com/docs/coordinates#routing-gr...
I like Zachtronics games as much as the next crazy person, but the thought of having to implement this for a game gives me anxiety
Since players interact with the game through a gRPC API, I didn't want to put a specific programming language in the title. In fact, my assumption is that more players want use JavaScript, TypeScript or Python than Rust. Which is why the tutorial on the website has examples in TypeScript and not Rust. I want players to consider the implementation of the game a black box, and instead focus their attention on the sandbox that it provides.
The routing grid is an attempt to reduce the initial difficulty for players by essentially converting the map to a set of discrete tiles. I hope that this will make it easier for players to get started. Eventually, I want to add obstacles such as impassable mountains or towns that have restricted airspace to the map. With the routing grid, I can simply mark a tile as blocked. Without it, players would need to compare the shape of the obstacle with the route of the plan and search for intersections. This simplified data model also seems to work well with pre-existing path finding libraries on NPM or crates.io, further reducing the barrier to entry.
https://en.wikipedia.org/wiki/Flight_Control_(video_game)
The other game that influenced the design of ATC is "Sector 33". In this game, players had to do a little bit of math using the speeds and distances of planes to coordinate their approach to an airport.
https://www.nasa.gov/centers/ames/Sector33/iOS/index.html
Ideally, I'd like to combine the colorful art style and casual randomness of Flight Control with the simple arithmetic of Sector 33. I want to make it interesting for players to watch their creation play the game, and give them a sense of accomplishment when multiple aircraft land in perfect intervals one after the other.
Here is a little bit more background about the inspiration for the game in case you want to know more: https://www.jdno.dev/auto-traffic-control/
There was quite a bit of SEO spam to work through as it seems they let the domain lapse and it was bought up, but this seems to be the general ballpark of when it was live: https://web.archive.org/web/20081223024015/http://www.kenned...
For some reason Wayback didn't hyperlink the actual download, but updating the URL will return it: https://web.archive.org/web/20081224105001/http://www.kenned...
It seems you are not exposing server reflection https://github.com/grpc/grpc/blob/master/doc/server-reflecti...
It would be very useful especially for ppl discovering your api and playing with it with gRPC UI client like https://github.com/rogchap/wombat.
A Universal build (with arm64 build) on OSX would help.
I honestly didn't know gRPC had server reflection, will check it out tomorrow. A quick search makes me optimistic that it'll be easy to add. Same for the universal build. Might as well start signing the package while I'm at it.
There is a render bug when the application is not focused, it's taking a tons of cpu resources.