Jump to content

Improved Flight Research Page And Future Improvements


sviridovt

Recommended Posts

Over the past few months I have been largely focused on stability improvements and generally making the game that already exists better rather than adding new features, I took a bit of a break from active development for a bit and wanted to fix some of the long term issues before starting to do feature work again. The vast majority of the things I worked on are things that probably few would have noticed, fixing common errors that people are seeing, stability improvements etc. However one improvement that I think people will notice that was deployed earlier today, is the redone Flight Research page, as while it has not changed in substance, it did see a significant speed improvement. 

The Flight Research page is perhaps the oldest part of the game, having been present as part of the earliest tech demos that I created when I first started working on the idea before there really was a game to speak of. I wanted to get a screenshot but unfortunately I couldn't get it to run to take a screenshot; maybe another day. And while it has certainly seen it's fair share of changes the overall structure has largely stayed the same with new things added on. Combined with that fact the fact that this was my first major long term project and code maintainability was not something high on my list of priorities (although I had been programming for a number of years at this point, my experience was limited to shorter term smaller projects) meant that as I was trying to add things to the page for the initial release it created a mess that was difficult to untangle. As such, it was time to restart and rebuild the page from scratch, although it may not look like it (and frankly I didn't touch the front end code too much on this one), the back end of the page is completely different. 

What's next? 

While I am looking to get back to feature work soon (and I will be making a separate post on that later, there are some exciting things I'm looking to work on), I did want to focus on some structural improvements that I'm taking time to work on. Not all of these are going to take priority over feature work but I do want to get these done

Deprecating Event Manager 

The Event Manager is the beating heart of the sim, almost any event from new days to new flights to regular maintenance is managed by it. While it has served us honorably (and I am still proud of my college self for coming up with such an elegant and versatile solution to make the game event based), it has caused me a fair bit of headaches since we migrated to the new server. Further with some of the other things that I want to pursue the event manager as it works right now would cause some issues and require major changes. Thankfully there are plenty open source solutions to this problem and I have been working to migrating the event manager to a RabbitMQ based system which is going to serve us much better long term. 

Severing front end and back end

Currently the game is written using the Django framework and uses it's template system for the front end with most of the front end done using server-side rendering. This fits what I like. I don't generally like writing a lot of front end code, and there is no love lost between me and JavaScript, I have always been a back-end developer and the more I can offload to the back-end the happier I am. That said, there is a lot of merit to severing the two and doing more work on the front end to improve the user experience. While I usually cringe at the thought of doing anything dynamic in the front end (there is a reason I haven't made significant changes to the scheduler or the seating configuration planner, despite not liking how either looks), I don't hate React. That's progress. I am looking to eventually move everything to a NextJS based front end with APIs being the primary ways of communicating with the back-end, and I have been offloading more and more work to APIs rather than server side loading using the template system. 

Adding multi-server support 

Currently there is no way for me to link multiple game servers together, while I could spin up a different server (as I do for lower environments like the beta and alpha servers I use for testing) these servers do not have any means to share data between them (like aircraft/airport data), or have a unified airline selection page. This puts some limitations on the work that I can do, for example if I wanted to introduce a feature that is not backwards compatible, it is currently impossible without doing a clean break (full server reset) which is also a very difficult process as it requires manually moving quite a bit of data between the two servers. Further if we ever do introduce a new game server (say in a different region) we cannot currently have them have a unified experience. To address this challenge I'm working on creating a separate service that can facilitate communication between services, as well as manage common databases like that for planes and airports. 

Admin Console 

As of right now doing any maintenance task is a pain! Creating a new world involves manually creating the world in the database and then running a script to set everything up; changing game data involves going into the Django admin panel which is basically just a database interface and manually setting everything up there. If there is any need to take a moderator action that also involves a database change (or at least logging in as the airline in question and doing it that way, which is the one thing that is currently supported). For my sake I want to create an admin panel to make these operations simpler. 

 

I hope y'all don't mind the more nitty gritty technical post, but I wanted to share with you some of the things that I've been up to/am planning. There will be another post talking about some of the features I want to work on in the near future but for now, these stability and other quality of life improvements have been my priority. 

 

Thanks!

- sviridovt


 

 

  • Like 1
Link to comment
Share on other sites

Hello!   Logged on this morning and have never seen the game move this quickly!  Whatever you did, great job.   Unfortunately, as I attempt to add planes to existing routes, It is only allowing me to see one aircraft type to use while I have other aircraft that are able to fly those routes which do not appear when I attempt to add flight.   Hopefully, that can be fixed soon.   Have a great day.  

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...