Outpost Universe Forums

Projects & Development => Projects => Outpost 2 Update => Topic started by: Hooman on May 01, 2018, 01:10:15 PM

Title: Updates for Outpost 2 1.3.8
Post by: Hooman on May 01, 2018, 01:10:15 PM
Alright, now that Outpost 2 1.3.7 has been released, I'm opening a new thread to collect updates for the next future release. Time now to turn attention towards Outpost 2 1.3.8 updates.


What I think should be a priority: Network connectivity issues have been a hurdle for a number of people for quite some time now. As such, I believe some long overdue updates to NetFix should be included. In particular:

And as always, new content would be desirable. I'm personally fond of colony games.
Title: Re: Updates for Outpost 2 1.3.8
Post by: Vagabond on May 03, 2018, 04:09:51 AM
Hooman,

Sounds good.

Perhaps we should add some sort of ping function? That would allow telling the user their computer is successfully communicating with the server even if no other matches are displayed?

-Brett
Title: Re: Updates for Outpost 2 1.3.8
Post by: Hooman on May 04, 2018, 04:49:38 AM
Ping statistics could be useful, especially if we could correlate it with expected or maximum game speed.
Title: Re: Updates for Outpost 2 1.3.8
Post by: Nova86 on June 20, 2018, 09:57:00 AM
At the risk of asking one of the dumbest questions ever...I like how The Mission randomly assigns a different colony color (sometimes just seeing Red and Blue gets a little old).  Is there any way to control that and allow the player to choose their colony color in either current or future colony games?    [/end dumb question]

Love the 1.3.7 update; I'm glad there are still people taking care of this game all these years later.  Thanks!
Title: Re: Updates for Outpost 2 1.3.8
Post by: Hooman on June 21, 2018, 07:56:11 AM
Hmm, there's currently no interface support for selecting colony colors. The level DLLs could select colony colors, and could randomize them if desired, though it's more typical to just leave them as default colors.

I suppose we could possibly modify the interface, though I'm somewhat biased against doing this. I don't see a great need or desire for this, so I'm inclined to spend development effort elsewhere. Would be curious if other people value being able to select colors though.

Failing that, maybe level designers will be inspired to experiment with colors after reading that.
Title: Re: Updates for Outpost 2 1.3.8
Post by: Vagabond on June 21, 2018, 11:43:56 PM
I would like to see a .ini module that hooked a scrollable rich text box and single image to the multiplayer game room screen. These 2 items would switch as the scenarios are switched through and provide details about the scenario.

We are starting to bundle scenarios that have unexpected behavior with the game. Such as Fractured alliance where clicking the day/night and disaster check boxes actually change the number of enemy bases. Several scenarios also have written backstories that are only readable by coming back to the forum.

I thought one way to implement this would be to allow adding 2 resources to a scenario dll. One would be a .rtf file containing the text for the text box. The other would be an image of X pixel size that would typically be a picture of the scenario's map.

There would be some implementation details to the map since some are tall and some are wide, but maybe just set a max width and height and center in either direction if it is smaller. The image could be anything really, but probably standard being a map render. It might also be possible to leverage the existing code in Outpost 2 to show a picture of a saved game on the saved game screen. Although I think providing an image is probably easier to implement.

I'd be willing to handle the gruntwork of adding resources to existing dlls and help with the coding and testing of the required .ini file. Someone else would really need to step in and locate/define the actual hooks into Outpost 2.

Thoughts?

-Brett
Title: Re: Updates for Outpost 2 1.3.8
Post by: Hooman on June 22, 2018, 11:17:48 AM
I kind of like that idea. I've thought previously the pre-game setup screens could use more details, or the ability for customization based on the level.

There's a lot to think about for such a modification though. We'd probably need input from a number of level designers to come up with a good plan for something like that.

This might also tie in with previous ideas about alternate map file formats, or the Python mission project.
Title: Re: Updates for Outpost 2 1.3.8
Post by: leeor_net on October 05, 2018, 10:21:23 PM
Giving this a poke to see where we're at with this version.
Title: Re: Updates for Outpost 2 1.3.8
Post by: Hooman on October 05, 2018, 10:54:11 PM
Collecting vague ideas. No work as yet.

Though I should mention the dialog box that can popup due to missing dependencies for the new UPnP module, which we should do something about. Sounds like there were some complications concerning recompiling it, and it seemed tied to an unusual version of the platform development tools.

I would like to work on some NetFix updates. I'd like to increase the logging ability so we can get more useful logs out of it for trouble shooting. I'd also like to see if it can be improved a little, either in terms of protocol updates, or in terms of user interface tweaks. It could provide a little more feedback to the user about what is happening in some situations.

I'm giving some extra thought to that player color selection idea, and the pre-game setup screens. Perhaps we could work on something to ease user interface updates. What makes me hesitant to tweak the user interface, is the amount of effort generally involved. However, if we developed better generic user interface support, it may lower the effort required.

We also need to find ways to ease developing new maps and missions. We really need to lower the effort required for that.

Hmm, would people be interested in anything like player game statistics, such as games played, games won/lost, or ranking systems? I think I generally prefer not having stats about me tracked, though for other people, they may find that fun, and it may bring out a desire to compete and play.
Title: Re: Updates for Outpost 2 1.3.8
Post by: leeor_net on October 05, 2018, 11:13:32 PM
Sounds good --

I've been doing some preliminary work on a new map editor. The biggest thing I want to offer is 'auto-tiling' of terrain brushes. I know, we've been over this a thousand times and there's supposedly no pattern. I say whatever -- it doesn't have to be perfect, does it? Can't we get it 'close enough'? Plus I think Vagabond was looking at adding a handful of tiles that would make terrain auto-tiling brushes much more feasible. This post I think (https://forum.outpost2.net/index.php/topic,6087.msg86303.html#msg86303)?

If that's the case then I'd like to get the op2-landlord project (https://github.com/OutpostUniverse/op2-landlord) updated and fixed to use the updated OP2 backend utility code, updated to the latest versions of NAS2D, get some drawing optimizations in place and get tile picking/painting going. Basically, I haven't touched it since last year so the code is going to need some work ... plus most of the map loading code is experimental and a proof-of-concept for using the NAS2D filesystem (which really can be dropped in favor of C++14 fs code). Actually, tbh, I wouldn't be opposed to rebuilding the op2-landlord project from scratch without the NAS2D dependency -- instead we could just use SDL2 (cross-platform input and window management) and OpenGL -- a map editor hardly needs the sort of utilities that NAS2D offers.

Anyway I think I'm heading off topic so I'll leave it at "Hey we should revisit the prototype map editor code I started on". I have a feeling if the three of us worked on the editor together we could bang something out pretty quick.
Title: Re: Updates for Outpost 2 1.3.8
Post by: Vagabond on October 06, 2018, 11:48:29 AM
I could probably work on solving the NetHelper DLL dependencies. Arklon, do you mind if I do some serious mucking around in NetHelper?

I'd like to see error/warning logging format standardized across the different add-ons. Mostly NetHelper and NetFix for now. I'm not sure if that means somehow feeding the data to op2ext for logging or just creating a standard log message format that each addon complies with. I'd be willing to work with Hooman on this effort.

Leeor, I never actually finished reviewing the tiles to determine exactly how many new tiles are needed to allow a reasonably standard autotiling script to work. I remember identifying at least 6 tiles and suspect the total is around a dozen. I still think this would be a fine use of the remaining tile indices the Outpost 2 has available. It would be helpful to chose a different name here as well. OP2-landlord doesn't easily translate into meaning a mapper without some background. I think the Landlord part is the game that the mapper code was forked from?

We already have a fix queued up that allows the console modder to work when spaces are encountered in the Outpost 2 executable absolute directory. (A bug I introduced in the last release). Some very minor improvements to exception handling in op2ext are also ready.

If we want to get serious about another release, I'd have to wrap up my work in OP2Utility and then switch development over. I wouldn't be able to handle working on both fronts at the same time (not enough time or brainspace). If we want to work this release, I'd want to re-release OP2Archive and OP2MapImager first since there have been a lot of changes to both programs that are not in the executable. I think this would probably take me about 2 weeks to wrap up?

The multiplayer lobby user interface tweaks are very important to me, but I wouldn't be helpful outside of pair programming as I don't know enough about OllyDbg, code hooks, or the underlying Windows code that Outpost 2 uses for showing GUI windows.

I'd like to see the Outpost 2 website improved. It would be great to show the current release number, release date, and a link to a changelog when downloading the newest version. Maybe even a list of previous releases and changelogs to reference. Maybe something that could correspond to this release?

If others are serious about putting time into another Outpost 2 release, I'll start wrapping up my work in OP2Utility for now.

-Brett
Title: Re: Updates for Outpost 2 1.3.8
Post by: Arklon on October 06, 2018, 02:05:43 PM
I could probably work on solving the NetHelper DLL dependencies. Arklon, do you mind if I do some serious mucking around in NetHelper?
The issue is you'll have to rebuild miniupnp and libnatpmp with a newer MSVC, and the author doesn't provide an up-to-date MSVC solution or anything for libnatpmp so you have to figure it out yourself. I was working on my own update a while back with some other minor improvements, but rebuilding those libs broke them.
Title: Re: Updates for Outpost 2 1.3.8
Post by: leeor_net on October 06, 2018, 03:23:51 PM
House of cards... love that development model.

Well, I'm open to assist wherever I can with rebuilding the libraries in MSVC.
Title: Re: Updates for Outpost 2 1.3.8
Post by: Vagabond on November 05, 2018, 04:12:30 PM
I've finished my planned updates on NetHelper.

NetHelper 1.5.3
- Updated to newer versions of libnatpmp and miniupnp.
  - Cuts down cleanup/destruction on application closing from 3 mins to 8 secs.
- Changed dependency references from precompiled library files to Git submodules.
- Removed dependencies on msvcr100.dll and msvcp100.dll by statically compiling.
- Set release compilation optimization properties closer to MSVC default settings.
- Removed deprecated POSIX networking functions.
- Update code to remove benign variable type conversion warning in Patcher.

We need to decide what area gets attention next. I could work towards creating a unified logging function through op2ext next. Or I could compile the final release version of NetHelper and integrate it into SVN. If we want to work on a unified logger, it might make sense to wait for finalizing the NetHelper release if we want it to start emitting logged messages.

If anyone wants to test NetHelper in its current form, message me and I'll compile it. Didn't get the impression in the other forum page people were interested in testing right now.

---
Edit

Nova86's suggestion on colony game color selection is interesting and I wouldn't mind it being implemented. Like Hooman said, I don't know that it would be a priority to work on though.

-Brett
Title: Re: Updates for Outpost 2 1.3.8
Post by: Hooman on November 06, 2018, 06:11:18 AM
I'm looking forward to these NetHelper updates.

Does the NetHelper still depend on forked copies of the dependencies, or have the updates allowed it to use the original source repositories?

It sounds like NetHelper is in a good stable release state, so I'd recommend packaging the updates for the next release. At the very least, it would be ready for anyone testing the next release. If there are logging updates, we could always repackage a newer version at a later time.



As for the color thing, there is something to be said about working on silly little side projects just to keep your skills sharp, or perhaps develop new skills. In particular, the ForcedExports project (which needs to be renamed still), could use some updates. That project was useful for developing new user interface components. Perhaps a player color selection mod would be a good excuse to work on it.
Title: Re: Updates for Outpost 2 1.3.8
Post by: Vagabond on November 07, 2018, 08:58:23 PM
NetHelper will still require the forked versions of dependencies. The forked versions no longer define the static lib within the source code though.

-Brett
Title: Re: Updates for Outpost 2 1.3.8
Post by: Hooman on November 08, 2018, 01:03:23 AM
Ok. I just took a peek at the difference. Looks to be mostly project setting changes, with an upgrade to a project file being a big one in particular. The defined macro changes looked like temporary edits. The one significant code change not incorporated into upstream seems to be for ssize_t.

I may have missed details though, as I didn't check too closely.
Title: Re: Updates for Outpost 2 1.3.8
Post by: Vagabond on November 12, 2018, 07:37:16 PM
The working copy of Outpost 2 has been updated with the newest version of NethHelper. You can find it and the associated PDB file for debugging at: https://github.com/OutpostUniverse/NetHelper/releases/tag/1.5.3.

A release tag was generated in Git to find this version again if ever needed.

Hooman, you are correct about the differences. Would be nice to incorporate the macro into the authors repo. I'm not so sure about all the project changes being pushed though. There is active development occurring on miniupnp, so we may want to pull a newer version from time to time.

Bogging down in the release of OP2MapImager. Learning some interesting things in the process though so that is nice. Otherwise, I was going to start working on adding the new known bugs and edit version info for the working copy of Outpost 2.

-Brett
Title: Re: Updates for Outpost 2 1.3.8
Post by: Vagabond on November 15, 2018, 08:23:29 PM
Just added the following commit to the SVN repository.

Update Outpost 2 version number and ChangeLog

 - Update internal version number used in multiplayer game checks to 1.3.0.8
 - Update About screen version number to 1.3.8
 - Swap new icon out with old icon
 - Add bug reports to ChangeLog
   - Game crashes sometimes when garage storage opened
   - Structure build overlay sometimes persists on map until shadows update

It occured to me we can just leave the old icon in the repository for ease of use with OllyDbg and just insert the newer icon right before release. This leaves the repository in a proper state for OllyDbg all the time. Unless there is any issue with this, I'll try to update the publishing notes to relfect this change.

Thanks,
Brett
Title: Re: Updates for Outpost 2 1.3.8
Post by: Hooman on November 16, 2018, 05:29:11 AM
Sounds good concerning the icon.

As for the bugs, I don't think those bugs are new in the recent version, just discovered/reported for the recent version. I would be hesitant to tag the bugs as relating specifically to any particular version without verification.
Title: Re: Updates for Outpost 2 1.3.8
Post by: Vagabond on November 16, 2018, 10:31:01 AM
Agreed the bugs are not related to a particular version. The bugs are at the top of the change log and not under a specific version. Happy to change format though if we want something else.

Brett
Title: Re: Updates for Outpost 2 1.3.8
Post by: dave_erald on November 17, 2018, 03:59:07 PM
I'll be blunt, version numbers and icons don't thrill me, how's the multiplayer connectivity coming? Does anyone have anything positive yet? Is the nethelper update testable? (Maybe I didn't ask that correctly, but you get my meaning) I'd like to get it and hope to test it with anyone that shows up on IRC (which is far few lately but every once and awhile they show up and just as quickly are never heard from again because game playing is a pain). 9ball seems to have relatively good success but I know there are hesitant people to port forward or worst case demilitarize zone there routers (terrible idea) but anywho.

There's my monthly rant. Thank you for your time
Title: Re: Updates for Outpost 2 1.3.8
Post by: Vagabond on November 18, 2018, 12:54:32 PM
Dave,

Go here: https://github.com/OutpostUniverse/NetHelper/releases

Just replace the NetHelper dll bundled with Outpost 2 with the one at that location. Make sure everyone who wants to play replaces it on their Outpost 2 copy as well.

I'm very interested to hear how it works or does not work for you.

The version information is very important. It keeps things like multiplayer matches from de-syncing halfway through due to mismatching versions of the game when someone doesn't download the newest version.

I'll give you the icon is purely aesthetic.

How is the novella progressing? I would enjoy reading another chapter.

-Brett
Title: Re: Updates for Outpost 2 1.3.8
Post by: Hooman on November 21, 2018, 12:23:40 AM
I actually rather enjoyed that little rant. It's very easy to get caught up in the details, so it's good to have someone remind you of the big picture once in a while.

There have been some improvements to the network modules. In particular, the NetHelper module had some updates concerning dependencies, which could cause it to fail to load. I believe it may silently fail to load in some cases, so people might not have been aware of a failure. The new version should fix that.

In terms of further improvement, I think we're actually in a bit of a bad position to improve connectivity at present. We probably need to start with better logging and diagnostics before we can improve connectivity further.

Actually, if we want something that works, and don't mind a bit of extra latency or bandwidth waste on the server, we could potentially route traffic through the game server for people who are not able to connect directly. It wouldn't necessarily scale well, though I don't think that matters with the current level of games played.

As for the compatibility concerns, @Brett (or @Arklon), are you sure it matters if everyone has an up-to-date copy of NetHelper? As far as I know, the NetHelper module isn't involved in communication between clients, only between the client and their own router. I don't believe it matters if people mix versions.


We should start switching more focus to network connectivity issues as we close out work on other things.
Title: Re: Updates for Outpost 2 1.3.8
Post by: dave_erald on November 26, 2018, 06:34:08 PM
Afternoon peeps, what's shakin?

Little if you ask me, thanks.

I guess not as much of a rant as i had thought it was, i think it was more me venting about what i felt is the clear problem at the moment with this game.

I had seen icon and version number changes and read or thought very little else, that aside, what is planned for future updates?

Sorry, as a canadian i probably say that too much.  Anyways, to answer your question vagabond, i haven't forgotten about my novella, i just haven't been able to devote the time to it that it deserves, i've been neglectful of alot of things and people lately
Title: Re: Updates for Outpost 2 1.3.8
Post by: Vagabond 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
Title: Re: Updates for Outpost 2 1.3.8
Post by: Arklon 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.
Title: Re: Updates for Outpost 2 1.3.8
Post by: Hooman on December 01, 2018, 10:24:27 PM
I agree, both seem worthy of a patch update.
Title: Re: Updates for Outpost 2 1.3.8
Post by: Vagabond 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
Title: Re: Updates for Outpost 2 1.3.8
Post by: Hooman on December 02, 2018, 01:26:16 PM
Let me knows when the new package is ready and tested.
Title: Re: Updates for Outpost 2 1.3.8
Post by: Vagabond 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
Title: Re: Updates for Outpost 2 1.3.8
Post by: Arklon 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.