TUXDB - LINUX GAMING AGGREGATE
by NuSuey
NEWSFEED
▪️ GAMES
▪️ STEAM DECK ▪️ DEALS ▪️ CROWDFUNDING ▪️ COMMUNITY
tuxdb.com logo
Support tuxDB on Patreon
Currently supported by 8 awesome people!

🌟 Special thanks to our amazing supporters:


✨ $10 Tier: [Geeks Love Detail]
🌈 $5 Tier: [Arch Toasty][Benedikt][David Martínez Martí]


The Case of the Spontaneously Falling Airship

In dev 8, game data is now loaded in from external files. As I expected, this is causing the occasional bug. In particular, some airship designs would consistently fall out of the sky. This needed to be fixed. The first step in fixing any bug is to find a consistent way to reproduce the problem. If you can't reliably observe the problem, how can you be sure it's fixed? How can you study it? So I found a ship which reliably fell out of the sky, the "large bomber" AI ship design:
Half a minute into any combat, without fail, there would be a cry from the Suspendium chamber: "We need more coal, quick!" Coal would fail to arrive, and the ship would plummet to the ground and explode messily. The question now was why the coal wasn't getting delivered. Job dispatch in the game works like this: Each module has jobs associated with it. Jobs can be operating the module or delivering resources like coal or water, or simply guarding the module. Jobs have different requirements for who can perform them - e.g guard jobs need to be done by armed crew members - and different priorities. So as a Suspendium chamber starts to run out of coal, the priority of its "deliver coal" job starts rising. Jobs are allocated by priority, and crew members can abandon one job if a significantly more important one comes along. So why wasn't the coal job for the Suspendium chamber being fulfilled? I couldn't quite figure it out by just looking at the ship. But certainly, I could see no crew member picking up any coal. So perhaps there was a bug in job allocation? I created a quick new debug overlay that showed the jobs for the currently selected ship, their priorities, and whether they had someone assigned. After filtering out the low-importance ones like "stand in this module in case you're needed", I could observe what everyone was up to while the game was running.
And yes, the coal job appeared, and was assigned, but somehow never completed. I added more detail to the overlay to show the state of the crew member who had been given the job, where they were heading, if they were carrying anything. This showed me that the assigned crew member had walked to the coal store, but was just standing there, not picking up or delivering the coal. Now that I had an idea which part of the process was going wrong, I stepped through the code for picking up resources, and found that the crew member had a little difficulty picking up the coal: the time required to complete the action was 2147483647 milliseconds. What an interesting number. 2147483647 is the largest number that fits into an integer. Somewhere in the code, I was dividing a floating point number by zero, getting out infinity, and then converting it to an integer. Since infinity can't be represented in an integer field, the code went with the largest possible value. And indeed: the crew member who was taking 2147483647 milliseconds - about 25 days - to pick up the coal was a guard. Guards aren't meant to do ship work, and have their work efficiency set to zero. The mistake was that the coal job accepted that guard as an assignee. Before the change to loading in data, the code could refer to explicit crew type. After the change, it had to check properties of the crew type it was presented with, and it wasn't checking work efficiency.
Once I fixed that, the bomber stopped falling out of the sky.


[ 2016-01-12 18:15:58 CET ] [ Original post ]



Airships: Conquer the Skies
David Stark
  • Developer

  • David Stark
  • Publisher

  • 2018-08-16
  • Release

  • Action Indie Strategy Singleplayer Multiplayer
  • Tags

  • Game News Posts 306  
    🎹🖱️Keyboard + Mouse
  • Controls

  • Overwhelmingly Positive

    (5250 reviews)


  • Review Score

  • http://www.zarkonnen.com/airships/
  • Website

  • https://store.steampowered.com/app/342560 
  • Steam Store

  • The Game includes VR Support



    Airships Linux 53 [139.2 M]Airships Linux 64 [545.79 M]

  • Public Linux depots

  • Airships: Conquer the Skies - Soundtrack
    Airships: Heroes and Villains
  • Available DLCs

  • Design steampunk pixel airships out of functional modules and conquer the skies!

    In the game, ships are viewed side-on, and their modules are operated by individual crew members. During combat, players give high-level commands to a small fleet, positioning their ships, ramming and boarding others. Ships and terrain are fully destructible: they can catch fire, explode, break apart, and fall. Players can also compete against one another in Internet and LAN matches.

    The ships are highly detailed, teeming with sailors moving around at their individual tasks, like an ant farm or a cut-away drawing. The player's choices in ship layout are crucial, and an important part of the game is exploring the design space of different airships and their matching tactics.
    MINIMAL SETUP
    • OS: Ubuntu/Debian/Mint
    • Processor: 1.8 Ghz+Memory: 256 MB RAM
    • Memory: 256 MB RAM
    • Graphics: 1 GB VRAM+
    • Storage: 1 GB available spaceAdditional Notes: Not currently compatible with Intel HD graphics controllers. May run on other Linux distros. but no guarantees.
    RECOMMENDED SETUP
    • OS: Ubuntu/Debian/Mint
    • Processor: 2.2Ghz+ Dual-coreMemory: 2 GB RAM
    • Memory: 2 GB RAM
    • Graphics: 2 GB VRAM+Network: Broadband Internet connection
    • Storage: 1 GB available spaceAdditional Notes: Not currently compatible with Intel HD graphics controllers. May run on other Linux distros. but no guarantees.
    GAMEBILLET

    [ 5166 ]

    12.74$ (15%)
    8.00$ (68%)
    17.17$ (14%)
    24.89$ (17%)
    8.39$ (16%)
    12.42$ (17%)
    4.12$ (17%)
    19.79$ (34%)
    5.78$ (17%)
    5.00$ (75%)
    16.99$ (15%)
    6.25$ (75%)
    0.80$ (90%)
    14.00$ (60%)
    15.99$ (60%)
    33.81$ (15%)
    61.39$ (12%)
    1.50$ (75%)
    7.35$ (8%)
    16.99$ (15%)
    4.22$ (15%)
    8.59$ (14%)
    4.59$ (8%)
    2.00$ (75%)
    16.39$ (18%)
    16.79$ (16%)
    17.98$ (28%)
    12.00$ (45%)
    3.06$ (83%)
    11.04$ (15%)
    GAMERSGATE

    [ 1903 ]

    0.53$ (92%)
    3.38$ (77%)
    1.58$ (77%)
    7.49$ (63%)
    0.68$ (83%)
    1.13$ (92%)
    1.84$ (74%)
    0.9$ (77%)
    5.4$ (64%)
    1.0$ (80%)
    7.3$ (51%)
    7.5$ (70%)
    4.49$ (10%)
    5.63$ (62%)
    2.4$ (85%)
    0.64$ (87%)
    2.25$ (85%)
    12.18$ (51%)
    6.0$ (70%)
    5.06$ (66%)
    9.37$ (63%)
    0.53$ (92%)
    4.69$ (81%)
    0.85$ (83%)
    1.05$ (92%)
    0.68$ (83%)
    0.89$ (87%)
    8.24$ (59%)
    2.5$ (50%)
    8.93$ (74%)

    FANATICAL BUNDLES

    Time left:

    3 days, 14 hours, 6 minutes


    Time left:

    26 days, 14 hours, 6 minutes


    Time left:

    8 days, 14 hours, 6 minutes


    Time left:

    39 days, 14 hours, 6 minutes


    Time left:

    45 days, 14 hours, 6 minutes


    HUMBLE BUNDLES

    Time left:

    6 days, 8 hours, 6 minutes


    Time left:

    6 days, 8 hours, 6 minutes


    Time left:

    15 days, 8 hours, 6 minutes

    by buying games/dlcs from affiliate links you are supporting tuxDB
    🔴 LIVE