Dev Log Week 2026-38: Paradigm Shifts

While Martin was busy changing the way in which a couple of backend frameworks as well as he himself do their work, İpek rethought how we might render maps in AirlineSim going forward.

Martin

The use of AI in development has become somewhat of a recurring theme in my devlogs recently. But things that simply didn’t work in my earliest experiments one or two years ago now “just work”.

Take my current project as a example: I am working on the new search interface for the DS right now and the first thing to get working is the API endpoint that will accept the query parameters and return the search results. In and of itself, this isn’t a big deal. After all, the DS already exists, most of the initial query parameters already work. It’s just a matter of hooking all of this existing code up to a new API endpoint. And from that description alone it already becomes rather obvious: The work is more or less “mechanical”. But it does cover a lot of code (more on that below), which in AI terms means “large context”, and the LLMs from a couple of years ago struggled with that. Despite a tasks being “mechanical” in nature, meaning a human would just follow a set of rules and apply them over and over again, the AI might understand the rules, but couldn’t grasp the greater picture.

This has definitely changed. In my case, week 38 saw two larger projects where AI was of great use:

  1. Before getting started on the actual integration, I wanted to get rid of some baggage and finally decided that the “pathfinder-based DS” that was originally build for return traffic distribution and re-used a lot of the things developed for the AS Technology Demonstrator back in the day was stable enough to become the default for all game worlds using Individual Travel Requests. This was a major architectural change, merging two implementations of a very complex system and maintaining the exact same functionality while also mapping some aspects of location-based demand to the new system to not break an internal test service and improving the reliability of the system in automated tests (we had some issues with flaky tests in our build pipeline, which are really annoying). While I would never let AI do something like this without oversight, actively “steering it” was extremely productive last week and worked incredibly well, given the scope and complexity of the task.
  2. The mentioned integration of the DS into the new API also meant that I needed proper end-2-end integration tests all the way from HTTP request to the database and back. While the DS is one of the best-tested sub-systems of AirlineSim, covered with hundreds of tests, AirlineSim lacks proper e2e test coverage for historic reasons. One of them being that setting up such tests is a bit of a pain, especially when one has to start from scratch. Take the DS search example: A test needs a user and an airline. The airline needs an aircraft ready for scheduling. That aircraft needs a cabin and pilots. Then one needs at least one flight number so a flight plan can be created for the aircraft. Said flight plan has to be activated and then an ops run has to happen so the flights are instantiated. Only after this sequence of steps can the DS return any “real” results. Here, the AI helped me in implementing a “test DSL” that makes it reasonably easy to define such scenarios and create them behind the scenes. I say “implement” here, because I had a pretty clear idea in mind of how I wanted this to look and feel, and the agent provided the actual implementation. Again a lot of boilerplate and mechanical code-writing. But not only…it had some really great suggestions on the design of the test interface.

Long story short…while I have struggled with the idea of letting machines do most of my code-writing - I just enjoy it so much - I have to and likely will come to terms with it. The fact of the matter is there will likely be no way around it. While “I am not just rewriting old stuff for the sake of a newer framework when I have so much more important things to do” used to be a valid excuse for keeping horrible Gen-1 pages around in the game (like staff management), this likely won’t hold any longer soon. I see myself working on “prepping the arena” over the coming weeks and months by providing clearer structures for how to implement features in Gen-3, such that low-priority and purely mechanical changes can be handed off to AI more or less entirely. Exciting and scary at the same time…

İpek

This week, I continued developing AirlineSim’s dynamic map feature and made major progress toward a more interactive, scalable flight-tracking experience. I integrated MapLibre into the map prototype and added interactive airports, routes, and flights, including hover and click support. Flights can now show their progress along partial route paths, with aircraft markers and improved airport labels and route selection.

I also added realistic great-circle flight paths, ATC-style aircraft markers, world wrapping, and improved zoom behavior. To test performance across the map implementations, I created a scenario with 1,000 continuously moving flights. In addition, I introduced Deck.gl as a third map-rendering mode, with interactive layers, flight information labels, route highlighting, and synchronized camera controls. At the moment, the Deck.gl option offers the best balance of rendering performance and visual quality.

Finally, I added enhanced textured and glowing highlight effects for selected countries. I also improved map filters, selection and hover interactions, airport demand indicators, and independent passenger and cargo airport-demand filters with configurable minimum and maximum ranges. See you next week with more progress on the map feature!

7 Likes