Last week I ended my devlog on an optimistic note, saying that productive feature development is on the horizon again. I guess this still stands, but maybe not in the way I intended ![]()
As written in said devlog, the biggest challenge after loading the migrated version onto the test server were data access issues. This isn’t all that surprising, as that’s where the vast majority of changes took place. But I more or less got stuck there, so I posted a question to the respective library’s forum. As this library is an open source project and we don’t have a commercial support contract, I (rightly) expected the answer to arrive late (if at all). So while waiting, I switched to a different migration: An upgrade to the application framework we use and which was and is the actual motivation behind this whole “Spring migration” to begin with, namely to use a framework that brings a few features out of the box that I deem necessary for adding a proper API to AirlineSim. This API will be great for users and 3rd party tools, but it’s also the foundation for the “third generation UI” for AirlineSim which I want to get started on as soon as possible.
Long story short: This switch is quite a technological leap for good ol’ AirlineSim. And like a blind frog, I basically leaped against a wall
. Remember, the current version of AirlineSim is based on a technical foundation from the early 2000s. We introduced a component-based web framework pretty much immediately after the first public release, but quite a few parts of the game still use an antiquated action-based one that, believe it or not, renders its pages using a technology called “JSP”. And for good reasons, this tech simply isn’t supported in modern frameworks anymore. So I have to make a hard call: Employ some ugly hacks or a half-assed migration to keep supporting JSPs for the time being. Or finally do away with all that dead weight and remove and/or rewrite the affected pages. Just to give you an idea, these are the parts of the game that would be affected:
- the start page of the game (where you can see the current fuel price, latest in-game and meta news, etc.)
- almost everything to do with stock exchanges
- a lot of pages around aircraft types, like aircraft comparison, performance tool, the aircraft family listing, order books, ordering aircraft etc.
- aircraft maintenance
- service profiles
- some parts of pax/cargo terminal management
- enterprise cash flow schedule
- interlining contract management
- operations control
- staff management and pilot training
- flight detail page (including costing)
- a bunch of info pages, like country and subdivision pages, fleet lists etc
- global statistic pages
- some parts of in-game messaging
- several internal admin tools
Anything that has a path starting with /action/... in the game an overall quite a bit of stuff. But as you can probably tell, all of these things are really old. Many of them have entries on the roadmap for replacement or, as in the case of the stock market, for removal. But it’s nothing one does over night. For country listings and statistics I wouldn’t mind “just” replacing the pages with newer versions, but I’d hate to rewrite the current version of - say - aircraft maintenance just to replace the UI, when the underlying feature suffers from a lot of game design issues.
I will almost certainly go with the “hacky approach”, just because I can neither afford to maintain two versions in parallel until all work is done, nor just remove stuff and have players play an “incomplete” game. But something has to be done.
Fortunately, I’ll have some time to ponder these things this week…today’s my birthday, and starting Thursday I’ll have a 4 day weekend. Let’s see whether things will have cleared up next Monday ![]()