Hacker News new | past | comments | ask | show | jobs | submit login
Auto Traffic Control – A gRPC Programming Air Traffic Control Game (auto-traffic-control.com)
117 points by _vbnz on Aug 14, 2022 | hide | past | favorite | 25 comments



As someone who got into real flying from videogames, far and away the thing that has surprised me the most is how much actual "ok look out so you don't hit anyone" there actually exists around decently busy airports in a metropolitan area. More than once I've been flying around my local Class D airport and it was abundantly clear to me just how stressful a job it is to work traffic somewhere like that with all sort of VFR traffic. This looks fun!


Absolutely, even around JFK and LAX this is very much a thing.

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."


LAX is literally the worst for this. There's a lot of people that learn to fly out over LA, and sometimes they will accidentally stay into the landing pattern east from LAX over the city. This is one of the most dangerous and congested sections of air in the world. And the class B cuts right through the city. So sometimes you can get yourself into trouble and end up copying down a number from the tower if you catch my meaning. The same problem with drones and other aircraft interrupting that airspace. I think there was a drone or something flying around LAX (or maybe it was Heathrow) that was causing some trouble like this, and they couldn't figure out for a while who was doing it.

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.


Everyone remains IFR, but visual approaches are indeed the way to get a few more flights per hour in the US. Europe decided to instead keep the separation by radar, but allows lower radar separation (less distance) compared to the US once aircraft are establish on the localiser (meaning they're on a straight line to landing).

The limitation on hourly capacity for both systems is how quickly planes can get off the runway after landing.


To explain the "copying down a number" reference for those who don't know: When ATC tells you to write down a number they'll give you a phone number you're supposed to call after touch down to explain what the heck you thought you were doing. Being asked down to write down a number means you messed up pretty good.


Sounds pretty scary, I was sure everyone uses instruments.


Less scary than relying on ATC in the US. If you start reading accident reports from the US for GA then it’s its surprisingly frequent that the conclusion is pilot should not have listened to ATC. I think it’s to do with the privatised ATC towers just being lower quality than government run towers in other countries.


With how seriously NTSB five-whys recommendations are taken at all other levels in the industry, you'd think repeated mentions that privatized ATC is problematic would be taken by the FAA as a strong recommendation to... stop allowing that.


It would be cool to have an ATC game that uses real life historical traffic to see how you would do. Pick an airport and draw a bounding box around it, record when and where a plane enters the box and replay it in the game. Difficulty can be based on which airport you pick from small regionals to the big multi airport Class-Bs



Since planes go where your code tells them to go, is there a way to combine old trajectories with the possibly different ATC game's directions ?


I'm not sure how realistic the airplanes' responsiveness and agility are in this game. At maximum traffic, it will be one plane per a grid point. Think of it like a game of snake but the tail is static and you are directing the food to join in at the end of the tail.

Things like rectangular holding patterns aren't feasible when you are playing only in 2 dimensions


heh, I'm surprised it didn't include the automatic HN front-page keyword "... in Rust" https://github.com/jdno/auto-traffic-control/blob/main/Cargo...

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


Ha! Seems like I could've thought more about the branding of the game. :D

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.


Ooh seems cool. Reminds me of the ATC game on iOS way back in the early days of iPhone.


"Flight Control" was one of the first games I ever played on iOS, and one of the inspirations for Auto Traffic Control. I like how engaging the game was, considering it had only a single input and a very simple set of rules.

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/


Or Kennedy Approach on the C64: "United three two six, say heading and altitude" "This is United three two six on one eight zero at four thousand feet"...even though I knew damn well what his heading an altitude was.


Some years ago a guy called Weps made a free remake for Windows of Kennedy Approach (identical to the original, with some optional improvements). It’s still fun.


> Weps made a free remake for Windows of Kennedy Approach

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...


For Oculus owners, there's a really fun VR take on this concept called Control Tower VR. It's not super polished, but the core gameplay loop is fun enough that I don't care. Having a third dimension to route aircraft is really fun, as well as just walking around and watching them.


I will be surprised if AR/VR is not used in real life Traffic Control operations in a few years as spatial computing matures because the problem space is so clearly 3D to begin with.


That game is probably Flight Control: https://en.wikipedia.org/wiki/Flight_Control_(video_game)


Love the idea!

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.


Thanks, that's great feedback!

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.


I've realized it's open source, the arm64 OSX build is taking way less cpu!

There is a render bug when the application is not focused, it's taking a tons of cpu resources.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: