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í]


Strategic Multiplayer Dev Log 1

I'm embarking on an attempt to make multiplayer strategic conquest work in Airships. First off, to be clear, this may well not work. I wrote the strategic conquest code without thought to making it multiplayer, which means I now need to try and refit it for this purpose. It's entirely possible that I can't get it to work consistently, or that performance or UX problems make the experience a terrible one. Still, lots and lots of people insisted they really wanted this feature, especially cooperative strategic multiplayer, so I'm giving it a try. If, after a few weeks of work, things are still a complete mess, I will shelve the attempt.
I started working on this about three days ago, having formulated an approximate plan: Airships uses a lockstep multiplayer system. You make sure that each player has the same starting state, and the same seed for the random generator. Then you make sure to apply player commands at the same time and in the same order for all players. This way, the game state on each player's machine progresses in the same way, in "lockstep". Lockstep has the advantage that it's fairly simple and that it requires little bandwidth. The disadvantages are high latency (which for a strategy game we don't really care about) and a kind of "butterfly effect" thing. If there's ever the slightest discrepancy between the states on different players' machines, the states will diverge more and more over time, and cannot be easily reconciliated. So it's quite nice and simple if you get it perfectly right. The combat mode got multiplayer early on and so has grown up along with it. There have still been plenty of problems, but it generally works now and doesn't diverge. The strategic conquest mode, on the other hand, is almost as old, and written on the assumption that it's singleplayer only. Still, technically, all it has to do to be lockstep multiplayer is two things:

  • Be predictable. Use the right random source across the board, and don't do stuff that relies on details of the player's computer, like the frame rate or details of memory allocation.
  • Instead of directly manipulating the world, send command objects to the server, receive them back, and execute them at the right time.
Technically. The bigger problem is that I baked a whole bunch of assumptions into the code, such as:
  • There is exactly one human player.
  • That player is always the first empire on the map.
  • Fights between all other empires can be quick-resolved.
  • The game can be paused whenever it needs user input.
  • Battles where commands are received through the multiplayer connection have exactly two human participants.
  • Battles where commands are received through the multiplayer connection are not part of a bigger process. When they end, the "game" ends.
Well, you might say that making these assumptions was a bad thing for me to do, but it actually wasn't. Making the assumptions meant I could write simpler code and be more productive. Writing everything in the most abstract, generic, flexible way is a bad idea. You almost never need the abstractions, and when you do, you tend to find out that they are the wrong ones. In these three days so far, I have set things up to use the right random sources, rewritten a bunch of code in strategic mode that assumed there was one human player, set up some code to go into multiplayer battles and back into strategic mode, moved all instances of the player directly manipulating the game state into command objects, set up code for sending and receiving commands, and created a basic lobby screen for MP conquest.
Two views of the world map, in sync. And it... actually kinda works! You can set up a game between two players, and the generated world is the same. You can send a fleet to another city and it moves in sync. The fights appear to stay in sync. Still, there probably are divergence issues, and there's a lot of things incidental to multiplayer that need to be made to work. Saving and loading, desync detection, dealing with disconnects. And the user experience is pretty rough right now: when a fight starts, players are simply yanked out of the map screen, straight into the fight.
The player on the right is fighting giant spiders while the one on the left is spectating. So this is an encouraging stage to be at, but I always knew that the hard part was going to be getting all the details right. Onwards!


[ 2017-12-09 16:37:31 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 ]

    3.00$ (80%)
    8.29$ (17%)
    12.00$ (60%)
    4.95$ (67%)
    6.39$ (-7%)
    50.39$ (16%)
    4.12$ (17%)
    49.79$ (17%)
    8.00$ (60%)
    13.79$ (8%)
    2.47$ (17%)
    8.29$ (17%)
    13.57$ (15%)
    5.00$ (75%)
    33.17$ (17%)
    22.99$ (8%)
    0.80$ (90%)
    12.74$ (15%)
    16.97$ (15%)
    6.01$ (14%)
    10.78$ (17%)
    12.99$ (35%)
    16.49$ (18%)
    21.99$ (12%)
    12.59$ (16%)
    9.33$ (38%)
    29.74$ (15%)
    12.00$ (80%)
    16.59$ (17%)
    0.50$ (90%)
    GAMERSGATE

    [ 1903 ]

    2.5$ (50%)
    2.63$ (62%)
    2.63$ (74%)
    2.03$ (77%)
    1.13$ (89%)
    6.75$ (66%)
    2.1$ (70%)
    1.31$ (81%)
    2.25$ (89%)
    1.32$ (91%)
    1.13$ (92%)
    8.8$ (65%)
    0.53$ (92%)
    3.67$ (47%)
    0.79$ (89%)
    2.25$ (85%)
    8.49$ (58%)
    0.75$ (92%)
    0.94$ (81%)
    0.75$ (92%)
    28.68$ (36%)
    2.25$ (91%)
    0.9$ (92%)
    11.99$ (40%)
    5.4$ (64%)
    0.38$ (92%)
    1.69$ (89%)
    0.94$ (81%)
    5.25$ (85%)
    3.0$ (85%)

    FANATICAL BUNDLES

    Time left:

    3 days, 14 hours, 22 minutes


    Time left:

    26 days, 14 hours, 22 minutes


    Time left:

    8 days, 14 hours, 22 minutes


    Time left:

    39 days, 14 hours, 22 minutes


    Time left:

    45 days, 14 hours, 22 minutes


    HUMBLE BUNDLES

    Time left:

    6 days, 8 hours, 22 minutes


    Time left:

    6 days, 8 hours, 22 minutes


    Time left:

    15 days, 8 hours, 22 minutes

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