Difference between revisions of "AI War 2:Finalizing Multiplayer"

From Arcen Wiki
Jump to navigation Jump to search
Line 54: Line 54:
  
 
=== Multiplayer Updates ===
 
=== Multiplayer Updates ===
 
* New network setting: Steam P2P: Allow Network Relay
 
** The Steam P2P networking framework allows for all networking packets to be relayed through Valve's server infrastructure rather than over the wider Internet.  This is off by default, as there have been some reliability and performance problems with this method.     
 
** With this option off, the network framework will try to forge a direct connection (which is usually much faster, but may not always work).
 
** Please note that this defaults to off now, but previously it was essentially always forced on.
 
  
 
* Put in some code with Steam P2P networking that should make it more likely to connect in general for more people.
 
* Put in some code with Steam P2P networking that should make it more likely to connect in general for more people.
  
* Steam Connection-Oriented (Steam C-O) has been renamed to Steam Sockets, since that's what it is actually called.
+
* Steam networking has been split into four separate frameworks that you can choose from, rather than (recently) two or (previous to a few weeks ago) one.
 
+
** This lets you choose between Steam P2P direct or relayed, or Steam Sockets (formerly Steam Connection-Oriented or C-O) Direct or Relayed.
* We will provide a way for direct connections to happen via Steam Sockets without relay servers in the near future, but it will require clients to enter the IP address of the host, which is suboptimal.
+
** The Steam P2P Direct method is new and doesn't require any special configuration.  You just select a steam friend and hit connect like always.  It may or may not work well, though.
** We may also have found a way to implement the equivalent of multiple channels on Steam Sockets, which should dramatically improve performance on them if that does turn out to be the case.  That will take some experimentation, though.
+
** The Steam Sockets Direct method is also new, and requires you to connect via IP address, which the host must provide to you. This works with both local and public IP addresses, and should be able to avoid NAT punchthrough -- but if that fails, you will still need to use Steam Sockets Relay to work around it.
** Right now the reports are that LiteNetLib is really beating the pants off of the Steam options in terms of connection reliability and speed, which is very surprising to us.
+
*** This method is noticeably faster than any of the other Steam methods, but slightly less convenient because of the whole IP-sharing thing.
  
 
* On the networking tab, there is now enough room in the textboxes for you to read IPV6 addresses.
 
* On the networking tab, there is now enough room in the textboxes for you to read IPV6 addresses.

Revision as of 17:12, 15 April 2021

Known Issues

  • Any bugs or requests should go to our mantis bugtracker
    • If you need to submit log files, those can generally be found under your PlayerData folder in the folder your game is installed in. The most relevant one is called ArcenDebugLog.txt. You can send us the whole thing, or just strip out relevant parts.
    • In rare cases, mainly if your entire game crashes (that almost never happens), we will need your unity player log. That gets overwritten the next time you run the game after a crash, unlike the other log. These can be found here:
      • Windows: C:\Users\username\AppData\LocalLow\Arcen Games, LLC\AIWar2\Player.log
      • macOS: ~/Library/Logs/Arcen Games, LLC/AIWar2/Player.log
      • Linux: ~/.config/unity3d/Arcen Games, LLC/AIWar2/Player.log

What Does Multiplayer Beta Mean?

Please see this link for details on multiplayer. This wound up taking up too much space in this document, so all of the multiplayer-relevant bits have been moved to the other page.

What's this phase all about?

Multiplayer is fully playable at this point, but still has a variety of glitches and doesn't have all of the features that we intend to have in the long term. So hence it still being in alpha status. But we greatly welcome folks to play, and hopefully give us reports on what is going wrong if something does go wrong.

We expect to be to a fully-polished non-beta status for multiplayer in May, if things continue as they have.

Our second expansion for the game, Zenith Onslaught, has a whole heck of a lot of it completed, but still needs more doing. Badger has done all of his parts for it, and has retired like Puffin before him, so at this point we are down to basically a one-person show again (me, Chris) on bugfixing, finishing multiplayer, finishing my parts of DLC2, and finishing the last of the kickstarter obligations. So if the schedule slips some, it's likely because I had trouble juggling that, or wanted extra time to make things truly shine, whichever. But at the start of this phase, things are feeling very positive.

2.802

(Not yet released -- we're still working on it!)

  • Adjusted several parts of the game to use EnumerateFiles() rather than GetFiles(), and the same for directories, because these things cause less of a delay when you have a huge number of savegames or campaigns.
  • Updated several aspects of the quick start window and load savegame window to make them load much faster when you have hundreds of savegames on your machine.

Bugfixes

  • Fixed a bug where electrotoxic effects were not working because we had intentionally disabled them when looking for a certain crash, and it accidentally got left off.
    • Thanks to CRCGamer for reporting.
  • Fixed icon not working in Powerful Command Stations Mod by ArnaudB.
  • Updated the game to allow parsing "false" as 0 when doing xml processing.
    • This solves the problem of potential exceptions when someone has AutoBuildAssaultFrigates in the old format rather than the newer style.
    • Thanks to KingSyphilis for reporting.
  • Fixed a random cross-threading exception that could happen in FindProtectingForcefieldToHitInsteadOfTarget() if the stars aligned just wrong. This could affect multiplayer or singleplayer, and is not a new bug, but is just THAT rare.
  • Fixed a fairly rare bug that was causing units to not serialize properly sometimes. It seemed to be related to the incomingshots list on units, which is something that really should only be sent in fully network syncs but should not be sent to disk or as part of smaller network syncs.
    • Essentially, because of the many improvements made to multiplayer efficiency, this unfortunately had created a miniature version of Russian Roulette (some sort of fantasy chain gun with 2000 slots but only one with a bullet in it), where if you got tagged with it, it would corrupt your save.
    • Thankfully, autosaves are a thing, and in the example save that had this issue, there was an autosave from literally 20 seconds earlier that did not have the problem. And with extensive testing on the same save, we couldn't get it to replicate.
    • That said, some of the persistent intermittent errors that folks were seeing in multiplayer were a lot less rare (because multiplayer takes a lot more tries at Russian Roulette, not because the actual odds changed), and this is probably an accidental discovery of what those were.
    • Thanks to deR Zaubererer and their MP partner for discovering this.
  • Fixed an oversight where the "Intra Galactic Coordinators Permadeath" option was still in the advanced settings, even though IGCs themselves have been removed.
    • Thanks to Democracy for reporting.

Multiplayer Updates

  • Put in some code with Steam P2P networking that should make it more likely to connect in general for more people.
  • Steam networking has been split into four separate frameworks that you can choose from, rather than (recently) two or (previous to a few weeks ago) one.
    • This lets you choose between Steam P2P direct or relayed, or Steam Sockets (formerly Steam Connection-Oriented or C-O) Direct or Relayed.
    • The Steam P2P Direct method is new and doesn't require any special configuration. You just select a steam friend and hit connect like always. It may or may not work well, though.
    • The Steam Sockets Direct method is also new, and requires you to connect via IP address, which the host must provide to you. This works with both local and public IP addresses, and should be able to avoid NAT punchthrough -- but if that fails, you will still need to use Steam Sockets Relay to work around it.
      • This method is noticeably faster than any of the other Steam methods, but slightly less convenient because of the whole IP-sharing thing.
  • On the networking tab, there is now enough room in the textboxes for you to read IPV6 addresses.
  • The call to find your public IP address is now run asynchronously, so when you first click into the networking tab it no longer has a moment of lag while it contacts a server to find out what your IP is for you.
  • When you are in the lobby as a multiplayer host, or in the escape menu as a multiplayer host once a game has started, it now specifies what your public and local IPs are if you are on the sort of networking framework that needs that.
    • In those places, it also specifies what networking framework you are using, in general.
  • In the escape menu, if you are in single-player mode, it now will also show that. It looks like there were some ways for people to wind up no longer being a host without realizing it, and this will let people actually check. This is possibly what was leading to some (but definitely not all) connection issues for some folks.
  • Fixed a bug where if you tried to load a savegame to host in multiplayer, but encountered an error, then it would switch you to single-player mode. That was going to be a problem if you were then expecting clients to be able to connect!

Prior Release Notes

AI War 2:The Paradigm Shift