Jump to content

sviridovt

Developer
  • Posts

    428
  • Joined

  • Last visited

  • Days Won

    107

Everything posted by sviridovt

  1. Unfortunately due to my real-life commitments I can't give estimates, however right now I'm focusing on getting what exists of the new UI out and then will be focusing on connections. That said, connecting flights will have to be released in new worlds only, since that would be a game breaking update for existing worlds.
  2. Hi folks! As I start working through the early features of AirSimWorld 2, I wanted to kick off a dev-blog series. These posts will serve two purposes: a public sounding board for what’s coming next, and a reference for myself as development progresses. When I built the current ASW, I didn’t have an audience. This time around, I’m hoping to get feedback as I go and use that input to help shape the next iteration. Why a Rewrite? One of the core goals of this redevelopment is a stronger focus on depth and flexibility. AirSimWorld has always aimed to be a highly realistic simulation, but the current architecture makes iteration difficult. Systems are tightly coupled, and even small changes risk breaking something unexpected. While testing and infrastructure improvements have helped, the underlying structure still doesn’t support safe iteration. A few years ago, there’s no chance I could have taken a multi-month break and come back to a functioning sim. The architecture simply doesn’t allow for it. The Most Important Change The feature I’m most excited about isn’t a major gameplay mechanic, but a foundational system: a new rule engine. This engine will power everything from political restrictions to alliances to how flight connections work. More importantly, it provides a modular foundation that allows new features to be added, adjusted, and expanded far more safely and quickly than before. The Current System The only consistency in the current sim is inconsistency. There’s no single pattern for how systems are implemented, and most rely heavily on hard-coded rules. This makes customization difficult and introduces significant technical debt. Many changes—such as the new fuel system—are sim-breaking if deployed mid-world. The result is a messy collection of world-specific feature flags that require constant maintenance and cleanup. A Case Study: Political Restrictions Political restrictions are a good example of these limitations. While the system is relatively customizable—allowing new restrictions, open skies agreements, and airport-level exemptions—it’s still over-abstracted. It can’t fully model the real complexity of international aviation rules. The ultimate stress test for any generic political system? Israel. Now add the requirement of historical accuracy over time, and it becomes clear why this approach doesn’t scale. The New Rule Engine Design Goals The new rule engine is designed to be: Modular – individual rules can be enabled or disabled Expressive – capable of modeling very specific, bespoke behavior Context-aware – rules can vary by world, time, user, or scenario This system will be used wherever custom logic is required, including: Airline connectivity and codeshares Alliance membership rules Aircraft purchasing restrictions Political and regulatory constraints It will also support contractual relationships between airlines. For example, two airlines could have a non-compete agreement enforced directly through the rule engine. Rules will be grouped into rule sets, which act as configurable templates. Instead of managing large collections of feature flags per world, a rule set can be selected and adjusted as needed. Benefits Easier World and Mode Creation In ASW 1, adding new game modes (such as Arcade or Dynasty) required extensive code changes and careful placement of feature flags. With a rules-based approach: Select the modules you want Combine them into a rule set Launch the world This also enables special or event worlds. During COVID, we experimented with short challenge worlds—route restrictions, aircraft limitations, and other constraints—but they were difficult to maintain due to entangled logic. With modular rules, these worlds can be created, modified, and removed cleanly with minimal effort. Safer, Faster Development Right now, every new mechanic has to be evaluated for how it might affect existing worlds. Game-breaking changes must be carefully scoped to new worlds only. The rule engine makes this significantly safer: Changes can be limited to specific rule sets Existing worlds remain unaffected Features can be rolled back cleanly if needed Long-Term Expandability The biggest win is expandability. Alliances are a great example of a system I’ve long wanted to deepen, but doing so under the current architecture would be extremely difficult to sustain. With a rules-based approach, experimentation becomes safer and far less intimidating. This opens the door to more ambitious features, faster iteration, and meaningful depth—without risking existing worlds.
  3. Let me take a look at how the time zone library works here. The timezone is set correctly to `Europe/Rome` on the airport so I don't want to change it from that.
  4. World B XV: Timeframe: 1950-1985 World Speed: 10 Minutes/day Starting Money: $5,000,000 Rules/Difficulty: Normal/10 Instant deliveries for new airlines Also, I realize the logo fix has not rolled out in prod due to a mistake on my part with not rolling out the correct key. This has since been fixed, feel free to let me know if it still doesn't work. Thanks!
  5. Hello, everyone! It’s been a while, and I just wanted to check in. A lot has been happening recently — between buying a new place, moving, work, and just needing a break (after all, this is all a labor of love), I’ve been a bit tied up. But I’m back now and ready to share an update on what’s coming up as well as the long-term vision for the sim. Over the past month or so, I’ve rolled out some bug fixes and general maintenance. But now, let's talk about some exciting updates on the horizon: 1. Connecting Flights Update The connecting flights feature has been a huge undertaking. This isn’t just a tweak to the demand logic — it’s a complete overhaul using a new platform (code-named Atlanta, get it? Connecting flights…) that’s designed for speed and efficiency. The platform uses a graph-based database system that’s much better suited for modeling these relationships, and it’s built with a faster, compiled language that supports multi-threading to speed up both the demand calculations and support for connecting flights. I’ve been testing it with historical world data, and so far, the performance has been solid. The cost to calculate itineraries with a city-based demand model and connecting flights is pretty similar to the current airport-to-airport direct model. The biggest challenge right now is the city clustering model. I’m just not happy with how metro areas are grouped. Currently, the model either groups too many large cities together (like New York and Boston) or spreads out a single metro into multiple cities. I’ve mostly been using U.S. cities as a benchmark (due to familiarity and the fact that U.S. cities are generally more spread out), and finding the right balance for areas like Miami, Ft. Lauderdale, and West Palm has proven difficult. Once I’ve figured out the city clustering, I’ll integrate the sim with the new platform and begin releasing the updated model on newly reset worlds. 2. New Demand Model This is an extension of the connecting flights update. The current demand model is fairly simple: passengers have a maximum price they’re willing to pay (the willingness-to-pay curve) and will choose the highest reputation flight they can afford. We also add some weighting for value — so a "worse" but cheaper flight might get a slight boost. The new model (built on Atlanta as well) will split passengers into different segments, each prioritizing different factors. Rather than aggregating all reputational factors into a single score, some passengers will care more about departure times, others about price, and so on. This should give a lot more flexibility in the types of airlines you can operate, making the simulation even more dynamic. 3. Fleet Management This feature is mostly already implemented as it’s been a work in progress, but it’s worth mentioning. The goal here is to improve fleet management by giving you better insights into how each aircraft type and configuration is performing. You’ll also be able to migrate flights more effectively between aircraft types/configurations. Additionally, aircraft maintenance will now take planes out of service if you don’t have spares ready to take over. Maintenance costs will become a bigger factor in how you manage your airline, making it a more realistic and strategic challenge. 4. Moving to AirSimWorld 2 This is something I’ve been debating for a while. As I’ve mentioned before, one of my main goals has been to create a mobile version of the sim, but doing that requires migrating a lot of existing code to APIs and creating a whole new UI. While AI can help with some of the work, it’s still a massive undertaking. This got me thinking: Is it worth the effort to simply rebuild the whole thing from the ground up? After all, I’ve grown a lot as a developer over the past few years — both from working on this game and from my career in software development. The core architectural decisions I made six years ago aren’t necessarily the best ones today. Some were mistakes, others were just based on what I knew at the time. By starting fresh with AirSimWorld 2, I’ll be able to fix those mistakes and make the game even better. It will be based entirely on the Atlanta platform, and we’ll revisit some of the core mechanics to create a much more in-depth simulation experience that can last for years to come. More info will be coming soon, but I wanted to give you all a sneak peek at what’s on the horizon!
  6. I will enable connecting flights at some point. Expect an update soon on where the sim is going :)
  7. Hi folks! I have been taking a bit of a break. I quite frankly wanted to get the connecting flights update out before resetting any worlds but then life got busy and we have 2 worlds that are expired. So moving forward the plan is that Arcade IV will be reset today, B IX will be extended by 5 years in game (or about 25 days IRL) to 1990 and Dynasty II will be extended to 2300 (about a month after that IRL) which should bring us back in sync. There will also be another update about where the game is going, the connections update is still coming though there are other updates in store as well. With that said, without further ado: World Arcade IV Timeframe: 2020-2200 Starting Money: $10 Million World Speed: 7 Days/30 Minutes Difficulty/Rules: Arcade, no political restrictions or aircraft release dates. Happy Holidays!
  8. I think I fixed the issue. A different container was eating up all the disk space on host.
  9. Try now, apologies for the delay. I'm currently moving to a new place so was busy the last few weeks.
  10. Hi folks! I had wanted to wait to use the new demand model for the new iteration of the demand model, however I'm still not satisfied with the metro city clustering enough to use it in a 'real' world. Instead I will at a later time start an X series of worlds for experimental features/new demand model. For World B I will just reset it with the current model: World B XIV: Timeframe: 1950-1985 World Speed: 10 Minutes/day (45 minutes/day until Wednesday, May 28th to give people time to join and set up their airlines) Starting Money: $5,000,000 Rules/Difficulty: Normal/10 Instant deliveries for new airlines
  11. 1. I am hesitant to add anything that might encourage spamming flights as it goes against the direction in which I would like the sim to go (trying to add more features around non-flight operations to further add depth to the game that way), however I do plan to add a way to 'move' flights allowing you to more easily replace aircraft/upgrade fleet. 2. There is a way to extend lease through the debts screen, I don't necessarily love the way in which the system works (I was trying to be clever when creating it but it ended up not turning out the way I intended) so I do plan to rework it at some point but it is low on my priority list. 3. I'm not in theory opposed to an eternal world though do want to be cautious of not being exclusionary to new players. Statistically people who join the sim when a world is fresh are more likely to stick around, hence I do want to make sure there always is a fresh world to join. This is one of the reasons why typical worlds were shortened to last around 3 months IRL. For a longer term world, Arcade remains to be running for approximately 6 months as a longer term option. 4. The biggest issue with this is the time commitment involved with research and manual data entry, I do plan to crowd-source this which is one of the things I'm working on.
  12. I have put in link restrictions and other measures but unfortunately has not been enough. I try to remove spam when I see it but feel free to flag it to bring to my attention. Thanks!
  13. Merged all the posts please avoid spamming. Thanks!
  14. Dynasty II Time Frame: 1933-2033 Starting Money: $5 Million World Speed: 20 Minutes per 7 Days (45 minutes per 7 days until Saturday, April 26th) Instant Plane Deliveries: 10 Difficulty/Rules: Standard realism restrictions, aircraft release times etc. Regarding World B Apologies to those waiting for World B reset, my plan was/is to reset it to use the new demand system (Atlanta service) but I have not had the time to work on it in recent weeks. I will see where I am in the next few weeks while Dynasty II gets going and then we will see if World B can run with the new demand model or if not will just reset it as is. To be clear this won't be the full demand model per-say, in fact the actual demand calculation will still be the same however the new system will provide some niceties currently not available, such a city based demand system (so flights from different airports in the same metro compete with each other) and (depending on how much free time I have) flight connections. But we will see if I have the time to work on it. In the meanwhile I will allow World BIII to continue. Thanks!
  15. Yes, it can be manually updated, and I even had an effort to create a system to allow folks to do that to avoid manual effort on my end but didn't get around to finishing it. Way too busy with real life rn but will pick that up at some point, but even then we need some sensible defaults.
  16. One thing I've been thinking about is using historical airport usage as a metric to gauge airport popularity and size. In the new demand model airport rating plays a big role in city based demand model (passengers have a preference for what airport to fly out of), since I don't necessarily have that data I'm using historical data of where airlines fly out of as a basis for that metric. Something similar could be used to approximate some default size as well.
  17. I do want to add cargo support eventually, though fuel-types are probably a bit more micro-management esque IMO. As @Eagle Express Holdings LLC said however, I am very busy with work nowadays and don't have nearly as much time to work on the sim as I would like though I do still work on new features, the road map is a bit more slow.
  18. Hi! I am aware of the issues. I am working on migrating logos to save in a different way anyway and so will work on getting that working instead of fixing something that is expected to be deprecated in the near future. Thanks!
  19. It is now fixed, I apologize for the issues. I was away from this sim this week due to work obligations and of course this is when it decides to break.
  20. Hi folks! I would like to introduce a new game mode today, designed to be on a similar speed to Arcade mode but with all the realism restrictions of a standard world to allow for longer term, but fast moving worlds! This will also be a world that starts earlier in the timeline than any previous world, running from 1933 to 2033! To accommodate this earlier world a number of early 20th century aircraft were added including: Boeing 247 Lockheed Model 10 Electra Lockheed Model 14 Electra Lockheed Model 18 Lodestar Boeing 307 Stratoliner Boeing 377 Stratocruiser Lockheed L-188 Electra de Havilland DH.91 Albatross Junkers Ju 90 Douglas DC 2 Junkers Ju 52 Lockheed Constellation Series Note on 1940's, because some guy didn't get into Art school and threw a tantrum which among other worse things also caused a halt in civil aircraft production during the period, I have taken some liberties with aircraft production times at that time. For the most part any aircraft which ended production at the onset of WW 2 had it's production time extended until after that manufacturer released a new model usually in the late 40's. With that, the new world: Dynasty I Time Frame: 1933-2033 Starting Money: $5 Million World Speed: 20 Minutes per 7 Days Instant Plane Deliveries: 10 Difficulty/Rules: Standard realism restrictions, aircraft release times etc.
  21. This is something that I want to add eventually but is low on my priority list. As of now it would be pretty difficult to implement given how scheduling currently is basically just a single week schedule that gets repeated over and over. It is however a design choice that I plan to revisit at some point as I want to further expand the new demand system I'm working to support things like seasonal variability/seasonal flights (to be clear this will not part of the initial launch, or any time in the near future).
  22. I mean, it's all abstractions for the most part, the core is still HTML/CSS/JS just written in a more productionized/sustainable way both to make development as well as long term maintainability easier. Hypothetically speaking, since I'm not using a Node runtime (at least until I get to completely sever the front/backend) you could write the whole thing in a vanilla stack, that's what it gets compiled to and you can even see it's output! (Note that link will likely not work when I make a new release, you'll notice there is a hash on the file name which will change on a new release to ensure you don't use the old cached version after a new version comes out). Front-end code is interesting that way since all code compiles to vanilla Javascript that your browser can understand (with the still relatively rare exception of Web Assembly, though it has not caught on for many reasons). Regardless, as a new dev you're doing the right thing, learning the basics. You could always add layers of abstractions later to make yourself more efficient, but understanding how things work 'under the hood' is one of the most valuable skill sets and IMO what separates the great from the wanna-be.
  23. Thanks and best of luck with your website! It has taken a while especially as I'm doing this on the side. It's mostly flexboxes, the entire new UI is build on top of a React component library I created on top of ShadCN which itself is built on top of Radix with heavy use of TailwindsCSS. There is some custom CSS but I've mostly tried to steer clear with front-end not being my strongest area. The long term plan with this is to completely sever the front and the back end with the front-end utilizing React Native to allow it to be made into an app as well. Though this is def a long term plan with how little time I actually have to work on the sim. Also thanks for pointing out about finances, I merged in the fix and it should be deployed soon (my home server internet is having some issues right now, so it's taking its time deploying).
  24. The New UI is now available for public preview! This is one of the many things I'm currently working on a lot of which rely around improving the experience and making the sim more mobile friendly while (hopefully) making the sim look a little nicer. I am looking to find ways to improve the sim experience and navigation so would be happy to hear feedback about the new UI and any other suggestions! As part of this change I'm also introducing the airline widget/avatar, which at present is just the first 50px of your airline logo but I'm looking into if I want to allow uploading it separately if there is interest. Not currently available but one of the changes I'm working on is a change to simplify navigating the website, namely aggregating all of the aircraft related functions (purchasing, maintenance, fleet management) into a Fleet page, all the flight related functions into a Flights page and all the facilities functions into a Facilities page. That way the the overall navigation will be simplified to 4 categories: Dashboard My Airline Airline page/configuration Fleet page for aircraft operations/maintenance Flights page for flight operations Infrastructure page for facilities operations Finances page World World Rankings Airports Browser Alliances In addition to the new look this interface is designed to be mobile friendly (though fair warning that part is very much still in development and is still very buggy). One of my main priorities with the above redesign is to redesign from scratch the parts of the sim that are the most mobile unfriendly currently (seat configuration and scheduler) as well as make them better. How Do I Opt In? In the sim under your airline navigation menu you should see the "try the new UI button" this will enroll you in the preview. If you sont see the button you might need to expand the navigation menu. If you then wish to opt out you may do so from your profile menu
×
×
  • Create New...