Author Topic: Outpost 2 - 1.3.5 Update  (Read 11566 times)

Offline BlackBox

  • Administrator
  • Hero Member
  • *****
  • Posts: 3103
    • http://
Outpost 2 - 1.3.5 Update
« Reply #25 on: October 06, 2008, 11:44:58 AM »
Quote
Anyways, good idea.  We should probably include all mods (maybe as optional installations) while we're at it.
This reminds me that we should probably make some changes to op2ext (the mod loader), by making it a little easier to use, or more flexible (allow loading multiple mods).

If we are going to include all mods it might be nice to have a way to select which mods to use (some kind of launcher perhaps, or even a menu from within the game).

This would be easier than having a list of shortcuts when the game is installed to select a mod.

Another thing that I had thought of in the past was an "mp3 unpacker" type of program for the CLM files. Instead of forcing people to download the CLM file if they want the music, let them download the music in a compressed form (mp3/ogg) and a separate program (perhaps even during the installer, if some option is selected) uses this data and decompresses these to raw PCM data and generates a CLM file. (This would also allow people to make CLMs with custom music, if they so desired).

Offline Sirbomber

  • Hero Member
  • *****
  • Posts: 3166
    • http://
Outpost 2 - 1.3.5 Update
« Reply #26 on: October 06, 2008, 04:03:53 PM »
Yeah, I was thinking of having a "Which mods do you want to install?" type question, but didn't say anything because I've already asked a lot out of Hooman.

And the multiple mods would be nice, but could cause problems.  What if you try to load two mods that change the same things?  You'd need to have some sort of compatibility check.

Now if you'll excuse me, I want to go make something that we'll probably all regret.  Mwahahahahahetc.
"As usual, colonist opinion is split between those who think the plague is a good idea, and those who are dying from it." - Outpost Evening Star

Outpost 2 Coding 101 Tutorials

"Outpost 2: The Campaigns Are Okay, But The Novella Just Flames Everyone" progress:
Campaign 1 - 40%
Campaign 2 - 0%
Etc. - (insert arbitrary value here)%

It could only cost you your life, and you got that for free!

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 3760
Outpost 2 - 1.3.5 Update
« Reply #27 on: October 06, 2008, 07:09:44 PM »
I think the game hardcodes the internal filenames that it looks for in the .CLM file, so that limits editing it a little bit. It'd be more like overwriting songs.

Maybe we could write an extension to allowing playing compressed formats from in game? I have code around that can hook the right places and decode and play .aud files from in game. Even the in game volume controls worked. The project was somewhat limited in scope though, as there was no concept of a playlist that got built, nor was there much in the way of a programming interface to the code that would be useful to level writers. It'd also be nice if it could be added in a backwards compatible way, so new levels using such a mod don't need it to run.


I definately agree with upgrading op2ext to handle multiple mods, and not needing a lot of shortcuts to decide what mods to load. I was thinking of maybe just a .ini file type of control. If they wanted to change something, they could just edit the file, or comment out certain lines. Maybe even have module parameters specified in there.

At any rate, I'd like to be able to install the game server support in a way that doesn't require command line parameters to activate. (I'd also like to give it it's own button, rather than stealing "Serial"). I'm sure there are other mods too that would benefit from this. Mainly any type of mod that doesn't overwrite existing stuff, but only adds functionality. Possibly even new campaigns if we can mod the shell so that it allows you to select which campaign you'd like to play.

There is definately a potential for problems with mods that try to change the same things. I usually put some kind of error checking in my code though, so it will at least tell the person what's wrong rather than simply crash. Since mods are so free to do pretty much whatever they want, it's pretty much up to the mod writer to write their mods in a way behaves nicely. Mind you, if they are getting included in a download package, we can pre-screen them for potential conflicts. In practice, this probably wouldn't be so bad, since not many people are actually writing mods.
 

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 3760
Outpost 2 - 1.3.5 Update
« Reply #28 on: October 11, 2008, 04:21:36 AM »
So yeah, still haven't gotten around to working on a better loadmod system. I think I'm stalling out on that one. Anyone else have any ideas on how to do this? Or maybe I just need to do some thinking out loud.

I was thinking add some lines to Outpost2.ini, but then wondered just how well that would work. How would you know what mods to load, especially if you wanted some setup but disabled? Then I was thinking of a custom file that just listed the DLLs. Then it occured to me that some mods have parameters. For instance, the net patch takes a game server address. It'd be nice to specify not just mods, but parameters to them, and maybe even multiple sets of parameters for the same mod.

Perhaps a format like this:

Code: [Select]
# Comment
DllName:Parameters

Possible Example 1:
Code: [Select]
# NetPatch with game server support
NetPatch.dll:127.0.0.1

In the above, everything after the colon could just be handed off to the module for processing. Or perhaps the module should try to pretty things up a bit by accepting parameters in a form such as:

Possible Example 2:
Code: [Select]
# NetPatch with game server support
NetPatch.dll:GameServerAddr=127.0.0.1

In both cases, you could just comment out lines to render a module inactive.


But the parameters lend itself to a .ini style approach, that might look something like this:
Code: [Select]
[NetPatch]
Dll = "NetPatch.dll"
GameServerAddr = "127.0.0.1"

Of course that last example is incomplete, as how will the game know what the module sections are called with the standard Ini processing functions. You'd probably need a known tag in a known section that lists the (active) module names. The Dll tag within the module section could be standard, and then leave the module to load the rest of the tags from it's section. The module would probably need to take the settings tag name as a parameter.

Example:
Code: [Select]
[Addons]
LoadAddons = "NetPatch, SomeOtherMod, YetAnotherMod"

[NetPatch]
Dll = "NetPatch.dll"
GameServerAddr = "127.0.0.1"

[AltNetPatch]
Dll = "NetPatch.dll"
GameServerAddr = "192.168.1.2"

...

Note the inactive parameter set under the "AltNetPatch" heading. It's not listed in the LoadAddons line. Since the Dll name is divorced from the section name, you'd need to tell the dll which section name to load additional settings from (such as the GameServerAddr tag). That way it also doesn't get confused if the same module has different parameter sets specified for it. It would also allow certain well crafted modules to load multiple parameter sets at once.


Questions? Comments? Better ideas?
 

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 3760
Outpost 2 - 1.3.5 Update
« Reply #29 on: October 13, 2008, 12:02:46 AM »
Ok, I went with the later idea, and updated the net fix a little bit. I've put together another package containing this and a few other patches.


Outpost 2 (1.3.0.5 - Beta 2).rar


Recent changes (from ChangeLog.txt):
Quote
1.3.5 Beta 1
   * Minimap scroll fix (no longer gets caught on top and bottom for full sized maps, but can still get caught on sides of undersized maps)
   * Network game speed fix, so it attempts to play at the set speed rather than gradually slowing to half that speed
   * Applied hard unit limit increase patch (1023 -> 2047 max units)
   * Applied soft unit limit table updates: (Changed when the build buttons dissapear)
  - NumPlayers    1     2     3     4     5     6
  - Vehicles  { 400,  320,  230,  180,  154,  130} (per player)
  - Buildings { 950,  350,  200,  150,  100,   96} (per player)
  -           ------------------------------------
  - Units     {1350,  670,  430,  330,  254,  226} (per player) [Vehicles + Buildings]
  - Total     {1350, 1340, 1290, 1320, 1270, 1356} (for all players)  [Units Per Player * Number Of Players]
  - Gaia      { 697,  707,  757,  727,  777,  691} (space left for non-player units) [approx.]  [*Weapons fire* (twice as many combat units now?), Beacons, Fumaroles, Disasters]

1.3.5 Beta 2
   * Fixed option button highlighting bug in odasl.dll
   * Applied Meteor Defense patch, so it will never fail to fire (but can still miss)
   * Fixed wreckage bug, where wreckage sometimes got picked up as rubble (fixed the rubble checking code)
   * Upgraded op2ext.dll to support loading multiple mods through Outpost2.ini
   * Included updated NetFix, and associated Outpost2.ini settings (using new module loading system)
   * Swapped centering behavior of <number> and Shift+<number> (unit group hotkeys)


As there have been changes to the net fix, I would appreciate people testing it out thuroughly. It should have less trouble trying to join games now. It may even give slightly less trouble when searching for games. It may also be a little more usable for people with troublesome routers. There are some additional .ini settings you can set to help deal with router troubles. I would like to know how well these features work.

A word of caution though. If you try to used the ForcedPort parameter without port forwarding setup, it could potentially break communications that might otherwise have worked. This parameter is not used by default, and must be explicity setup. This parameter is intended for people who have trouble being introduced by a third party such as the game host, or the game server. That is, people who have "symmetric NAT" routers. (Yes, I know, this is an old term that doesn't fully describe the real mess of routers out there, but it's what people here have probably already heard). If you need to setup this parameter, then do the following.
  1) Adjust your router to forward a port to your computer for use by Outpost 2. The default port used by this patch is 47800 UDP.
  2) Add the following line to Outpost2.ini (or similar if you adjusted the port) under the [NetFix] section.
Code: [Select]
ForcedPort=47800

That should tell the introducer (game host, or game server) to introduce you using that port instead of the router re-mapped port from the return address of the packet. Since this port is forwarded, it will be valid for anyone, and not just the introducer. (If the port isn't forwarded, then all return packets will be dropped by the router as there will be no return mapping setup for that port, so connections will not succeed).



ToDo List
-----------
High priority:
- Change version number
- Strip relocations from Outpost2.exe
- Swap centering behavior of other unit selection hotkeys? (backspace? tab?)
- Re-enable old SIGS button, and move net fix over to that button

Low Priority:
- Additional MiniMap scroll fixing (for small maps with border)
- Fix DLL name length limit bug

Maybe:
- Fix multiple selection bug (reselect same unit adds to selected unit count)
- Fix RCC crash bug (calling pure virtual function)
« Last Edit: October 13, 2008, 12:03:33 AM by Hooman »

Offline Gagagigo3

  • Jr. Member
  • **
  • Posts: 53
    • http://
Outpost 2 - 1.3.5 Update
« Reply #30 on: October 13, 2008, 02:04:38 AM »
I cant play any colony game...this was after this new beta. Or is it just me  :blink:  
Extinction is just the beginning.

Check this out, it rocks
My site

Offline Sirbomber

  • Hero Member
  • *****
  • Posts: 3166
    • http://
Outpost 2 - 1.3.5 Update
« Reply #31 on: October 13, 2008, 06:33:05 AM »
Do we have to install a clean copy of 1.3.5, or can it upgrade/replace the existing 1.3.4 files?
"As usual, colonist opinion is split between those who think the plague is a good idea, and those who are dying from it." - Outpost Evening Star

Outpost 2 Coding 101 Tutorials

"Outpost 2: The Campaigns Are Okay, But The Novella Just Flames Everyone" progress:
Campaign 1 - 40%
Campaign 2 - 0%
Etc. - (insert arbitrary value here)%

It could only cost you your life, and you got that for free!

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 3760
Outpost 2 - 1.3.5 Update
« Reply #32 on: October 13, 2008, 10:08:20 AM »
Probably best to install it fresh, but I don't see how it really matters that much. Saved games won't be compatible due to the unit limit patch, but otherwise I see no harm in installing over top of another version. Of course if you install over an older version you might end up with a bit of extra junk, such as old and obsolete files and folders (like NetPatch/). I suppose if you tried to use a /loadmod shortcut while the newer copy is loading through Outpost2.ini, they might conflict. If in doubt, just do a fresh install.


I have no trouble with colony games.
 

Offline Hidiot

  • Hero Member
  • *****
  • Posts: 1021
    • http://
Outpost 2 - 1.3.5 Update
« Reply #33 on: October 13, 2008, 10:31:19 AM »
Tried it out, made a fresh copy over which I copied all misc items and everything works fine, including colony games.
"Nothing from nowhere, I'm no one at all"

Offline fallenangel

  • Newbie
  • *
  • Posts: 25
Outpost 2 - 1.3.5 Update
« Reply #34 on: October 14, 2008, 03:01:31 PM »
Hey Cool a new version!  
Pitiful mortals...your hope ends here. ...And your meaningless existence with it!

Offline Sirbomber

  • Hero Member
  • *****
  • Posts: 3166
    • http://
Outpost 2 - 1.3.5 Update
« Reply #35 on: October 29, 2008, 05:52:05 AM »
Err... So, how do I set up mods now?
None of my /loadmod shortcuts work, and I really need to test MT2.
Which is difficult when OP2 fails to "initialize properly."
"As usual, colonist opinion is split between those who think the plague is a good idea, and those who are dying from it." - Outpost Evening Star

Outpost 2 Coding 101 Tutorials

"Outpost 2: The Campaigns Are Okay, But The Novella Just Flames Everyone" progress:
Campaign 1 - 40%
Campaign 2 - 0%
Etc. - (insert arbitrary value here)%

It could only cost you your life, and you got that for free!

Offline Hidiot

  • Hero Member
  • *****
  • Posts: 1021
    • http://
Outpost 2 - 1.3.5 Update
« Reply #36 on: October 29, 2008, 07:23:22 AM »
I think you still have to use the /loadmod feature on the folder where you have the files. the .ini file only seems to suppord .dll linking.

I know I did something like that and it worked.
"Nothing from nowhere, I'm no one at all"

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 3760
Outpost 2 - 1.3.5 Update
« Reply #37 on: October 29, 2008, 02:57:48 PM »
I didn't change the /loadmod feature. It's still there, works the same, and should work independently of loading modules through the .ini file.

The only conflict I can see is if two DLLs have overlapping load addresses. Although, any normal DLL that can't be loaded to it's preferred base address would just get relocated to another one. It should still work, just take slightly longer to load. Mind you, NetFixV3.dll uses some special hacks (the ForcedExports project) that requires a know/fixed load address. But that DLL should be loaded first, so it's preferred load address won't already be taken, and if for some reason it is taken, it should give an error message to that effect.

I suspect your problem is something else entirely. Perhaps post the shortcut? Where does the error occur? At Program startup? Or when you try to start a level?

If you're getting an error when trying to start a level, it may be because of some SDK changes I was talking about that I think you copied into your files. If that's the case, then your DLL probably isn't exporting the level details, such as the name, description, and DescBlock. Try adding "Export" in front of those lines.
 

Offline Sirbomber

  • Hero Member
  • *****
  • Posts: 3166
    • http://
Outpost 2 - 1.3.5 Update
« Reply #38 on: October 29, 2008, 03:45:07 PM »
When I try loading MT2 (or any mod) through a shortcut, I get two error messages both saying that "The application failed to initialize properly (0xc0000005).  Click on OK to terminate the application" and then OP2 doesn't load.  But, for whatever reason, if I try to open OP2 through the shortcut, dismiss the error messages, and then immediately load OP2 through the regular EXE the mod will load?
"As usual, colonist opinion is split between those who think the plague is a good idea, and those who are dying from it." - Outpost Evening Star

Outpost 2 Coding 101 Tutorials

"Outpost 2: The Campaigns Are Okay, But The Novella Just Flames Everyone" progress:
Campaign 1 - 40%
Campaign 2 - 0%
Etc. - (insert arbitrary value here)%

It could only cost you your life, and you got that for free!

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 3760
Outpost 2 - 1.3.5 Update
« Reply #39 on: October 30, 2008, 03:53:17 PM »
Umm, Sirbomber....

Ok, first thing is, why are you even trying to load a module this way? This really isn't needed for extra levels, which made me go investigate what you were doing. Your download package has an OP2mod.dll in it, but when I checked the code, it just appears to be the NetFix mod. This is already being loaded in the newer version through the .ini file, and you don't need a /loadmod parameter for it. In fact, you shouldn't also be using the /loadmod parameter for this DLL, as I've said it will conflict. Both versions require the same load address. Also, since I don't recall ever posting the source to that project, I assume it's unmodified, and doesn't do anything specific to your addon.

I would suggest not trying to include all the newest patches in your download if it's being used on a version that now already has all these patches applied.
 

Offline Sirbomber

  • Hero Member
  • *****
  • Posts: 3166
    • http://
Outpost 2 - 1.3.5 Update
« Reply #40 on: October 30, 2008, 06:34:14 PM »
Yeah, I had to include the old NetFix DLL because someone was whining about not being able to use the netfix with MT2.  Besides, the verison I use to test doesn't have that DLL included.

I load MT2 through a mod because I replace multitek and sheets.vol.
"As usual, colonist opinion is split between those who think the plague is a good idea, and those who are dying from it." - Outpost Evening Star

Outpost 2 Coding 101 Tutorials

"Outpost 2: The Campaigns Are Okay, But The Novella Just Flames Everyone" progress:
Campaign 1 - 40%
Campaign 2 - 0%
Etc. - (insert arbitrary value here)%

It could only cost you your life, and you got that for free!

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 3760
Outpost 2 - 1.3.5 Update
« Reply #41 on: October 31, 2008, 02:50:20 PM »
You can make two packages for the two versions meanwhile. Have a 1.3.4 pack with the DLL, and a 1.3.5 pack without it. You probably also want to drop the exe for the 1.3.5 pack, as it would likely downgrade it.

I still don't really see why you're using a mod loader. The /loadmod parameter could only load one DLL, and if you're loading an unmodified NetFix, then there's no room for another DLL that would mod which files the game uses. How exactly do you replace the tech tree and sheets files?
 

Offline Hidiot

  • Hero Member
  • *****
  • Posts: 1021
    • http://
Outpost 2 - 1.3.5 Update
« Reply #42 on: November 01, 2008, 12:11:40 AM »
It worked for me when I put the MT2 tech files in with the NetFix .dll and made a shortcut with /loadmod NetFix.
"Nothing from nowhere, I'm no one at all"

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 3760
Outpost 2 - 1.3.5 Update
« Reply #43 on: November 01, 2008, 11:49:02 AM »
Duh, wait, the mod loading system tells the game to look in the folder for those extra files, doesn't it? I forgot it plays with the [DEBUG] ART_PATH variable in Outpost2.ini.

Well then, I see a funny situation here. You guys are trying to load a DLL just because that's what loadmod was designed for, but what you really want is the ART_PATH to be changed so that your sheet files get used instead. Well, looking at the code, it seems the /loadmod parameter is a folder name, and having an OP2mod.dll in there is optional. Just throw the files in an empty folder and /loadmod it without using a DLL. If for some reason that doesn't work, just compile an empty DLL to stick in there. Although, I'm pretty sure that's not needed.

Don't go using /loadmod on the NetFix dll just because it's lying around.
 

Offline BlackBox

  • Administrator
  • Hero Member
  • *****
  • Posts: 3103
    • http://
Outpost 2 - 1.3.5 Update
« Reply #44 on: November 02, 2008, 04:52:06 PM »
IIRC, the ART_PATH is only used when it loads op2_art.bmp. I believe loadmod works to change the vol paths by adding FolderName\VolName.vol to the search path for each vol that is loaded by the game.

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 3760
Outpost 2 - 1.3.5 Update
« Reply #45 on: November 02, 2008, 07:09:03 PM »
Hmm, all I see in the source, is it tries to load anything matching "Addon\*.vol", where that "Addon" is hardcoded and doesn't depend on the /loadmod parameter. It also adds these vols after the main core vols. Wouldn't that make the files contained in them lower priority? Or does this somehow let you replace core game files without having to overwrite them?
 

Offline BlackBox

  • Administrator
  • Hero Member
  • *****
  • Posts: 3103
    • http://
Outpost 2 - 1.3.5 Update
« Reply #46 on: November 03, 2008, 10:28:00 AM »
I think the original idea there was to allow for additions like new tilesets and maps that use them (greenworld is a good example of this). It should get added last in the search path (since it's assumed that everything in this directory is "new" content, thus isn't going to be intended to overwrite existing game files -- after all the filenames of the VOL contents should be different, i.e. the well files for greenworld were named grnwld00.bmp - grnwld12.bmp IIRC.

Then, if someone wants to override this "new" content on a mod by mod basis (i.e. what if I want to replace a greenworld file in my mod) then they can do so and it will transparently override the existing files.

I guess I should probably take a look at the code again and double check this.

Offline Conestoga

  • Newbie
  • *
  • Posts: 24
    • http://
Outpost 2 - 1.3.5 Update
« Reply #47 on: November 17, 2008, 12:16:02 AM »
Quote
Ok so it would be great if we can get stuff sorted this year and get a new version of Outpost 2 out!

What would you like to see in the next update?

What I think:
- New tilesets
- New maps
- Renegades single-player campaign included
- Map maker included
- Different language Outpost 2 versions
- IRC client included?

Please also see this post.

Thanks :)
- New Tilesets - We could always use some new scenery, now can't we? I would love to see more then rocky multiple shades of gray and orange rock.

- New Maps - Again, we could always use some new scenery. The old maps in colony games were getting rather dull after a while anyway.  :lol:

- Renegades single-player campaign included - I've never really heard of this before, but the thought of a new campaign is almost too intriguing to pass down.

- Map maker included - I would KILL to have a much more convenient map making program with all the tools necessary to make and play built right into the game. It would be much easier for both new map makers like me and the more elite designers.

- Different language Outpost 2 versions - Not everyone knows English, this would be perfect to expand our horizons for gamers.

- IRC client included? - I don't think this may be possible in my opinion, but its more convenient for others to talk to each other then it'll be nice to have.

My ideas:

- Music & Videos built into download - Nothing like a little reconstruction, plus the music files and videos won't play for me, too. :lol:

- More colony games involving the opposing colony in the same map - I love to not only feel threatened by having a Plymouth colony on my map like Eden Starship, but to also raid it sometimes.

- Reapplying the "Dan's" codes - I know its not right to have these cheats, but being a previous owner of the CD (Before brother stole and broke it :whistle: ), its presence should remain honored. That's my opinion at least. :lol:

- Boost enemy AI in previous games/maps - You'd think the enemy colony would have better things to do then send a convoy to the edge of the map then disappear like on Eden Starship easy.

- Like previously said: Built-in map maker - Adding all the tools and programs into the game to let you make maps to play would be a lot more convenient and less time consuming for everyone.

I'll think up more later. :heh:

The Conestoga :op2:

Robert E. Lee - "Get correct views of life, and learn to see the world in its true light. It will enable you to live pleasantly, to do good, and, when summoned away, to leave without regret."

Offline Sirbomber

  • Hero Member
  • *****
  • Posts: 3166
    • http://
Outpost 2 - 1.3.5 Update
« Reply #48 on: December 10, 2008, 10:22:06 PM »
Here's a request I've made a few times:
Make it so the sexy menu music doesn't stop playing when you go to the Multiplayer menu (preferably make it play right up until the game is about to launch, but whatever works).
"As usual, colonist opinion is split between those who think the plague is a good idea, and those who are dying from it." - Outpost Evening Star

Outpost 2 Coding 101 Tutorials

"Outpost 2: The Campaigns Are Okay, But The Novella Just Flames Everyone" progress:
Campaign 1 - 40%
Campaign 2 - 0%
Etc. - (insert arbitrary value here)%

It could only cost you your life, and you got that for free!

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 3760
Outpost 2 - 1.3.5 Update
« Reply #49 on: December 11, 2008, 03:45:31 PM »
Hmm perhaps. Although, we should probably consider including the menu music with the game first. As I don't have the menu music with the default package, I would never notice something like this.