Author Topic: Updates for Outpost 2 1.3.8  (Read 2325 times)

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 767
Re: Updates for Outpost 2 1.3.8
« Reply #25 on: November 27, 2018, 06:39:29 PM »
Agreed the multiplayer issue is a big and clear problem.

For the next update we have completed:

* Updated NetHelper to version 1.5.3
   - Updated to newer versions of libnatpmp and miniupnp.
   - Cut down cleanup/destruction on application closing from 3 mins to 8 secs.
   - Removed dependencies on msvcr100.dll and msvcp100.dll by statically compiling.
   - Removed deprecated POSIX networking functions.

* Updated op2ext to version 2.0.1
   - Fix bug in Console Mod Loader that separated the executable's path into multiple arguments if the path included a space.

I'm working on 3 projects right now:

 - Adding a logger to op2ext that can be called by modules like NetHelper. Using the std library chrono header for pushing a time and date stamp into the log.
 - Creating a new coop multiplayer scenario. It is about 2/3rds coded but not yet tested. Working with a new C++ programmer on it, so it goes really slowly as I'm teaching as I go. Scary that someone is listening to my programming advice. :|
 - Trying to get OP2MapImager released with bug fixes. Getting the unit tests to work has turned into a slog. This effort is separate from the next Outpost 2 release.

I'm putting a record low amount of time into Outpost 2 right now, so besides that and working on 3 projects progress is really slow.

The other thing I'd like to work on is fixing the old bug in blackbox's Plymouth Cold War scenario. Annoying that it has been broken for something like 10 years? Otherwise we should probably pull it.

Actually, with the 2 bugfixes, we could release a new version any day. I suspect the new NetHelper build will solve a decent number of multiplayer issues, but don't have much data yet. If the new NetHelper compilation works, it might be worth pushing out immediately to fix the multiplayer issue instead of waiting for other development.

If you pick the Novella back up, I'll certainly read.

-Brett

Offline Arklon

  • Administrator
  • Hero Member
  • *****
  • Posts: 1213
Re: Updates for Outpost 2 1.3.8
« Reply #26 on: December 01, 2018, 12:50:08 PM »
The NetHelper update alone is enough to warrant a minor update. The console mod loader bug in 1.3.7 was really annoying, so that bugfix alone would also warrant a minor update. I have some minor updates to NetHelper that I could merge in, but it was mostly just switching all the multithreading to use STL <threads>, and code cleanup which you've duplicated some of yourself anyway, so meh.
« Last Edit: December 01, 2018, 12:52:11 PM by Arklon »

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4605
Re: Updates for Outpost 2 1.3.8
« Reply #27 on: December 01, 2018, 10:24:27 PM »
I agree, both seem worthy of a patch update.

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 767
Re: Updates for Outpost 2 1.3.8
« Reply #28 on: December 02, 2018, 05:06:24 AM »
Ok, Give me a day or two to make final updates to the restored subversion repository and do some final tests. Does anyone want to volunteer to test/try to break the release before it goes live?

Hooman, do you want to upload to the website again?

Thanks,
Brett

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4605
Re: Updates for Outpost 2 1.3.8
« Reply #29 on: December 02, 2018, 01:26:16 PM »
Let me knows when the new package is ready and tested.

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 767
Re: Updates for Outpost 2 1.3.8
« Reply #30 on: December 11, 2018, 08:21:36 PM »
Hooman,

Just finished uploading to the SVN repository and testing.

To test, I put Outpost 2 in the directory: C://Users/.../Outpost 2 Test. This way the directory had spaces in it. I then loaded cm1 using the console mod loader and saw that the colors had been updated. This proved the console mod loader was working with spaces in the directory. No annoying popups occured either.

Then I sent the package to someone else and attempted multiplayer. Without touching router configurations or Hamachi or anything else, we were both able to create and see each others' game using TCP/IP. For NetFix, he could see and join my game but I could not see his created game. This was consistent with earlier tests. Not sure why the discrepancy exists. I can send the routers involved if anyone wants the data. Considering I had never been able to play Outpost 2 without Hamachi before this, it seems to be in a much better place.

If you don't mind, it would be good to proof-read the change log and the publishing instructions I just wrote. Also, please test on Linux using Wine to make sure I didn't break any of the compatibility there I cannot test. Besides that unless someone else wants to test, I would like to see it published.

Thanks,
Brett

Offline Arklon

  • Administrator
  • Hero Member
  • *****
  • Posts: 1213
Re: Updates for Outpost 2 1.3.8
« Reply #31 on: December 11, 2018, 08:51:00 PM »
Then I sent the package to someone else and attempted multiplayer. Without touching router configurations or Hamachi or anything else, we were both able to create and see each others' game using TCP/IP. For NetFix, he could see and join my game but I could not see his created game. This was consistent with earlier tests. Not sure why the discrepancy exists. I can send the routers involved if anyone wants the data. Considering I had never been able to play Outpost 2 without Hamachi before this, it seems to be in a much better place.
Issues like that are fairly common with OP2. In fact, I've seen a pattern of behavior like that among lots of older games in particular with the same people, and what they all seem to have in common is they use DirectPlay, which makes me really suspicious. I wonder if there's any good way to look into that.

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4605
Re: Updates for Outpost 2 1.3.8
« Reply #32 on: December 16, 2018, 06:05:24 AM »
Quote
For NetFix, he could see and join my game but I could not see his created game.
Hmm, is it possible there is a terminology gap on the part of users reporting this problem? As described, it would be quite surprising. For that to happen there would be (multiple?) packets dropped between the clients and the game server when he was hosting. Either the server never saw his game, which means packet drops between him and the server (most likely), or you didn't see the game because of packet drops between you and the server for each subsequent periodic game list update (less likely if you stayed watching the game list for a while). As both connections from client to server are initially outgoing, we're dealing with the easy NAT case here. Even timeout of the mappings doesn't seem likely, since both informing the server of a new game, and searching for new games, is started by outgoing requests from the clients, which would reestablish any mappings.

On the other hand, if that is an accurate description of the problem, that may provide some clues as to what to look at.



I tested the updates on Linux. No strange popups. Game seemed to run normally.

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 767
Re: Updates for Outpost 2 1.3.8
« Reply #33 on: December 17, 2018, 06:56:23 PM »
Thanks for testing on Linux.

Maybe I can schedule a time when a third party can attempt to join a game with the 2 of us. This could rule out if it is his sending packets or my receiving packets from NetFix's server. Typically around 9PM Eastern time is when we test if that time generally works for someone else we can pick a date.

We can still both create and play games using the TCP/IP option with the newly compiled NetHelper, so maybe the fallback is people just use NetHelper only instead of NetFix?

I really like the idea of having a sort of paired down SIGS like server so you can see who is creating games. NetFix would fill this nicely if we can get it working well.

Still recommend we push forward with the release. If we keep slow-rolling the release, there might be another small update to the op2ext API to allow properly destroying allocated memory when calling GetCurrentModDir. While incorrect, I don't think it is a big deal and existing mods would have to be recompiled to take advantage of the change anyways. https://github.com/OutpostUniverse/op2ext/pull/9

-Brett