The 'ATC' repository has moved and been rebranded as openScope. The simulator can be accessed at www.openscope.co.
Upward and onward,
the openScope team ^>
Home Page: https://openscope.co/
The 'ATC' repository has moved and been rebranded as openScope. The simulator can be accessed at www.openscope.co.
Upward and onward,
the openScope team ^>
Issue: airplane nametags displaying above runway name. Blocking out one or more runway names.
Possible fix: minimap overlay between compass and buttons.
Possible fix: runway names being displayed above airplane name in contrasting colour.
@xenocide0 had a very good point/idea to add the control zone overlay in issue #42.
I've just implemented this and I would like to get some feedback.
As of right now it is customizable in each airport.json file.
If you set a heading using a direction (e.g., turn right 90), then a fix used right after will also turn in that direction, regardless of whether that is the optimal turn.
The 'fix' should clear the directive. Alternatively, have fix work like turn does, allowing the use of left and right.
When issued consecutively, the commands ("BAW660 TURN 45" then "BAW660 LAND 30L") work as expected. Yet, combining a fix (vector or waypoint) with a runway assignment results in only the runway being assigned. If this is as intended then the reported issue is that a full and correct read back occurs yet the instructions are not carried out. Repro: "[callsign] TURN 45 LAND 30L"
Allow zooming to see more of the airport on smaller screens.
An importer that reads OSM data to create an airport layout.
Game freezes very often. Is a fairly recent problem (last 2 days). Especially when trying to do multiple commands at once or with take offs.
Departing aircraft have a direction they want to depart in; if you're more than 30 degrees off (for example) when they exit the screen, you lose score.
Each runway should have an ILS distance defined per procedure. Instead of using a static one (in aircraft.js:81) we should make this a variable in airport.json
Under Mac Yosemite Safari (Version 8.0 (10600.1.25.1))
I cannot seem to enter keyboard commands.
Following the tutorial says to input "taxi"
But I type t which appears but accepts no other input.
(Of course t conflicts with takeoff so it doesn't understand the command)
Same for wait, w appears but no other input.
Typing Climb results in nothing/no input
I've noticed that the font family defined in the css is monoOne, but is neither included in the sources or imported from anywhere. So it fallbacks to the default monospace unless that font is installed in the user's computer, which is unlikely.
This is perhaps one of the reasons for the complains about the text being difficult to read (in the HN thread, for example). Here is a comparison between the default in my browser (top picture) and with the correct font installed (bottom picture).
In my screen makes quite a difference.
Add aircraft trailling.
Any feedback?
Not sure why.... While working on issue #46 I came across this.
After making an aircraft taxi to a runway, if you type the following command (with the typo in it) the command line wont allow you to press enter...
Repro (after making aircraft taxi) : BAW629 climg 7000 takeoff
There's only a demo airport layout included; it would be nice to include multiple real-life airports. The format is a bit arcane, though.
When a heading is assigned prior to departure (for instance, in the clearance baw963 c 10 turn 80 taxi 16L
, the assignment is read back, but the aircraft flies runway heading after departure.
Instead, the aircraft should make the designated turn at the end of the runway.
When ordering a plane to land and it does not get an ILS lock it will still decelerate. I think the plane should maintain speed until it gets an ILS lock and then slow down.
edit:
I think the heading also gets reset when the aircraft was previously fixed to a navpoint?
Confirmed with Firefox version 34.0.5 on Linux.
Am I missing something, or after a certain period (less than 15 minutes), do no more planes come?
http://i.imgur.com/MUW6K3c.png (just, ignore the score.)
Running chrome, windows 7.
It's not as obvious in this picture but it is glaring during game play.
Repro: Line up two craft on the same heading in close proximity to each other. Put the first craft into a holding pattern, quickly put the second one in to the same holding pattern.
Thanks again for this great code. Super fun game!
At the end of the tutorial, I am told that "the closest two aircraft can get is 3 miles"... but there's no scale on the map, so I can't get a sense of any distance.
It is fairly popular for smaller aircraft to fly "visual".
Maybe we could add this feature which would allow the ATC to clear and aircraft for landing in a visual manner (no using ILS/fixes). Also, Visual aircraft could fly around in an "automated" way.
This is a lot of fun! (I used to play bsdgames atc all the time as well.)
A suggestion for an enhancement: A set of random events that make it a bit less predictable:
Zooming out with '-' works fine, but when hit '+' it resets the zoom to the default instead of zooming in one level.
When I try to insert a fix which does not exists (like "fix aaaaa") the game can't find that and crashes. I tried it on Firefox (34) and with the latest commit
Winds could change direction forcing controllers to route planes to a different runway. High crosswinds could mean (some) planes could not land.
Poor visibility could result in VFR flights being unable to land.
I think that for realism's sake, they should spawn off the screen and fly towards the airport, not spawn randomly on the page. Seeing a plane pop into existence breaks the immersion.
When a aircraft has a fix for destination, speed and altitude changes are not applied. Only the stripe is changed. As soon as you type 'abort' or assign a heading, speed and altitude changes are applied.
The body text of the tutorial won't change when you click next, when there are no planes on the screen
Uncaught TypeError: Cannot read property 'getCallsign' of undefined
Loading http://zlsa.github.io/atc/
Stuck on loading awe.json
Console:
"[ INFO ]" "Version v2.1.7" modules.js:124
"[ INFO ]" "Finished loading 13 modules in 0.079s" modules.js:124
"[ WARN ]" "Failed to get assets/airlines/awe.json: 0"
[Feature] Wouldn't it be more logical to add the possible approach directions (on aircraft spawn) as setting to the airport itself, instead of adding it as a setting to the arrivals themselves?
A list of a couple, either randomised or looked up from the official approach directions, out of which a newly spawning aircraft could be assigned one, with a balanced amount from each direction (possibly a property as well, frequency?)
While playing, assume BAW686 is a plane ready at apron.
BAW686 taxi 36L
BAW686 hold right
I expected the plane to fly in a circle after departure. Instead, the game stops with error:
Uncaught TypeError: Cannot read property 'getPosition' of null
aircraft.js:924
My points almost always drop to -20 before I've even had a chance to do anything.
Could this be caused by planes that spawn on the edge of the map and then fly off before they can be seen?
Excellent, excellent work! I've long wanted a better alternative to ATC games out there.
One thing they all seem to lack is keyboard-only friendly controls. Yes, you can type out the callsign, and the highlighting is very nice, but I feel a nice option would be to allow users to tab through the aircraft on the approach/departure plates. Possibly even highlight the nameplate on the radar to match, if visible.
Multiple fixes in order.
It seems very easy to just assign a runway to an aircraft as soon as it enters radar range. I did a quick lookup for range data of ILS systems and it seems they are restricting to a 25° angle left and right within 25nm of the runway.
As far as I understood the source code the current check for an ILS signal is just a 30° check?
Hello,
Some better in game explanation of collision detection would be great. For instance if I set two plans to take off from two parallel runways (in opposite directions) you get -4. However runways should be able to be used simultaneously
Example 18L and 36L in the debug airport.
I've been playing on my Macbook Air for a few hours, and the fan has been going like crazy since I've opened the game. The battery is taking a big dip either. I'm running Firefox Aurora 36. Is it just me or could this game benefit from a few well-placed perf optimizations?
I have found a nice HTML5 JS text to speech in chrome. I'm interested in jumping in on this project and this is where I may start.
http://updates.html5rocks.com/2014/01/Web-apps-that-talk---Introduction-to-the-Speech-Synthesis-API
It'd be great to have a setting that allows users to vary the rate at which new aircraft are generated.
It seems that approaching aircraft only spawn from the south. The distance varies but the heading does not. There is also a very low volume of them - only about 2 per every 3 departing flights.
Wow, this is nice! Great work so far.
As a suggestion though, can you work on the phraseology a bit? For example, on the one hand you do things that are lifelike (clearing for an altitude after departure before a take-off clearance) and then on the other hand you have an aircraft read back 'climb 5000 after takeoff, roger', which is incorrect and dangerous phraseology. Also, 'roger' is only a term that ATC is supposed to use - not the pilots.
Just small nitpicks, but great work!
I'm not sure why I lose points, or gain them for that matter.
I suggest a list that pops up with the last x things points are added or subtracted for. It would help to know what you were doing wrong.
If a command is given just as the "craft entering airspace" advisory begins the advisory is cut off yet the command is heard without issue. The advisory is not repeated, as would be the case when a transmission gets jammed. If the command is short enough you can still hear the end of the transmission.
This does not adversely affect gameplay (unless a controller places an inordinate amount of importance to such advisories). Worth mentioning only in that it would be cool if, in these cases, the ATC's command were actually jammed (not in an annoying way, just noticeable). Both the ATC and the craft would have to repeat their transmissions.
Repro: Be prepared to issue a short command (e.g. t 1) to any craft. Issue the command when you hear a "craft entering airspace" advisory.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.