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

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4561
Updates for Outpost 2 1.3.8
« 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:
  • increased feedback to let people know about server connectivity. Are there no games hosted, or is the server not running or responding?
  • Perhaps show some server stats, like the time of the last hosted game, how long the server has been up, and the total number of games hosted/started since then
  • Additional display for the local and external address and ports, the later of which can be reported by the game server
  • Additional logging and output to help diagnose connectivity issues, and pinpoint problem routers. Currently people seem to be guessing who has the problem router when connectivity fails, which I suspect is leading some people to needlessly configure their settings.
  • Perhaps collect some statistics about router issues, so we know how widespread it is
  • Internal detail: Simplifications for the NetFix code so it only ever uses 1 port

And as always, new content would be desirable. I'm personally fond of colony games.

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 743
Re: Updates for Outpost 2 1.3.8
« Reply #1 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

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4561
Re: Updates for Outpost 2 1.3.8
« Reply #2 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.

Offline Nova86

  • Newbie
  • *
  • Posts: 6
Re: Updates for Outpost 2 1.3.8
« Reply #3 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!
Extinction is always an option...it's just not a very pleasant one.

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4561
Re: Updates for Outpost 2 1.3.8
« Reply #4 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.

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 743
Re: Updates for Outpost 2 1.3.8
« Reply #5 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

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4561
Re: Updates for Outpost 2 1.3.8
« Reply #6 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.

Offline leeor_net

  • Administrator
  • Hero Member
  • *****
  • Posts: 2039
    • LairWorks Entertainment
Re: Updates for Outpost 2 1.3.8
« Reply #7 on: October 05, 2018, 10:21:23 PM »
Giving this a poke to see where we're at with this version.
- Leeor
LairWorks Entertainment

Titanum UFO's

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4561
Re: Updates for Outpost 2 1.3.8
« Reply #8 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.

Offline leeor_net

  • Administrator
  • Hero Member
  • *****
  • Posts: 2039
    • LairWorks Entertainment
Re: Updates for Outpost 2 1.3.8
« Reply #9 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?

If that's the case then I'd like to get the op2-landlord project 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.
- Leeor
LairWorks Entertainment

Titanum UFO's

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 743
Re: Updates for Outpost 2 1.3.8
« Reply #10 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

Offline Arklon

  • Administrator
  • Hero Member
  • *****
  • Posts: 1202
Re: Updates for Outpost 2 1.3.8
« Reply #11 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.

Offline leeor_net

  • Administrator
  • Hero Member
  • *****
  • Posts: 2039
    • LairWorks Entertainment
Re: Updates for Outpost 2 1.3.8
« Reply #12 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.
- Leeor
LairWorks Entertainment

Titanum UFO's

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 743
Re: Updates for Outpost 2 1.3.8
« Reply #13 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
« Last Edit: November 05, 2018, 04:16:00 PM by Vagabond »

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4561
Re: Updates for Outpost 2 1.3.8
« Reply #14 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.

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 743
Re: Updates for Outpost 2 1.3.8
« Reply #15 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

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4561
Re: Updates for Outpost 2 1.3.8
« Reply #16 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.

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 743
Re: Updates for Outpost 2 1.3.8
« Reply #17 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

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 743
Re: Updates for Outpost 2 1.3.8
« Reply #18 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