Thanks for an interesting game with a novelty mechanic. Music is great, wobbling of arrow signs up and down was nice too. Those paths (and sending of "trains" of Travellers along them) seem like they took quite some time to code.
I think the difficulty can be split into two parts – which routes to build when and how to build them.
The first part seemed decently clear – build such routes so that you are drawing one while ideally the other two slots are fulfilling their routes in the meantime while balancing top and bottom parts. I don't think I had much issue there.
What caused issues and some frustration, though, was the drawing itself: the moment you manage to move the cursor diagonally instead of purely orthogonally the drawn path disconnects, waits there and you need to return to it. I think these corrections were the biggest time sink for me. I think I generally managed to mess just 3–5 routes during each try: half of those would be stopping to hold at bad place (not connected to valid destination), most of the rest would be managing to draw over some other active route. Managing to draw a route in such bad way you get into a dead end actually happened only like every other try.
The middle part of gameplay, where I connected mid slot to the big yellow area, was actually the most enjoyable part as then you are for some short time dealing with just two start slots which each have their clear destination area (top / bottom). There I was usually able to finish building a new route just as the other slot has fulfilled the previous one so the flow of work was great there.
In the end, it took me like 15 tries to finally manage to route all 290 Travellers (in 2:51) though for like a half of those tries I seemed to be less than 5 secs too slow. My two biggest speed gains came from
- forgoing mouse and opting for trackpad: that way one hand would do the click-and-hold while the other would concentrate on drawing the routes
- putting the keyboard just at the border of the table so that my hand could slide along the edge, thus make drawing long east-to-west paths much more precise (and without wasteful returning to fix a disconnection)
It would be good to provide quick "reset" ability – if one is finishing regularly just around 3 min mark then making some errors at the start (meaning this try is wasted) would not mean one needs to close the whole application to start again. Making time start ticking only when you start drawing would be helpful, too, so that one has time to orient oneself at the new screen first. Some variability to the source, say a moving one, could add more chaos and make figuring out which route to do when bit more difficult.
P.S.: It should be noted game needs at least Ruby 2.7 (beside needing gosu 1.1+ for current cyberarm_engine gem). At Ruby 2.6 I needed to update one row (map.rb, r155) so that clamp() gets two parameters instead of a range (see blog post about the change). So also thank you for providing the code so that one can overcome these little issues (without need of updating every lib).