Fan Patch 1.50.18

Information, How-to's, and discussion about mod'ing Master of Orion II.
User avatar
Belix
Posts:20
Joined:Fri Apr 29, 2016 3:19 pm
Re: 1.50.1 Fan Patch

Postby Belix » Tue May 03, 2016 3:54 pm

Excellent! One more thing. Is it possible to make Lord Brazen's "Cluster" galaxy size selectable in MP? Currently it can only be used in SP.

I have a little experience with assembly editing, if I find some time I'll see if I can't help locate something relevant to how the AI chooses races.

Edit: I'm uncertain if this information will help, but regarding AI race selection:

After you've generated a galaxy at least once (won't show up otherwise!), a search of the game's memory (in DOSBox) for an array of bytes as follows...

Code: Select all

8D 3C 37 9C 89 0D ** ** ** ** 8B CF 8B C1 C1 E8 0C 8B 04 85 ** ** ** ** 85 C0 74 08 8A 04 08 E9 17 00 00 00 51 E8 ** ** ** ** 83 C4 04 2C 01 0F 84 A7 00 00 00 8A 05
Should only yield one result. These are some instructions inside a function that executes multiple times during galaxy creation, and is run by every AI player at least once for every player slot already filled. It compares the AI's randomly chosen race against races already chosen to avoid duplicate races. In the middle of this code somewhere is:

mov al,[eax+ecx]

Flanked on either side by two jumps. If you modify this particular line to read:

mov al,0F

Then you've told the game that the race being compared against is always race number #16 (which doesn't exist - #12 is Trilarians), so it will always pass. Now the game can randomly generate 3x Psilons etc. The beginning of this function seems to hold the current player slot in register EDX. This is as close as I could get to controlling the races the AI generates. I'm afraid my experience with this (especially with DOSBox) is too limited to be of much more use, but I hope it helps someone here find what they need.

User avatar
Darza
Posts:134
Joined:Tue Oct 02, 2012 10:09 am

Re: 1.50.1 Fan Patch

Postby Darza » Wed May 04, 2016 5:48 pm

Hello and thanks.

1. About switches and similar stuff - im understand what is beneath it, but all of them are truly minor, and while some of them are easy to be done - look at config size now. It will be much more in next update. Much. Id wanted to point on an "anticheat & prevent player from smth" theme though. This game is freakingly easy to cheat in. So easy, so one had to be a true moron to do so. So there is no point to add some stuff to prevent player pick some racepicks, or forbid player to trade with AI. You dont want it - dont do it then. The difference here is about some things player may not want to happen, but have no, or have no easy way to do, say money cheat (you can beat it, but gameplay will become dumb and tiresome) or autodone of ships etc.

2. About cluster. Should come in next release i guess. Im not even realized it didnt work in MP prior you wrote about. Cluster is so silly, so it was about second time i ever seen it at all, but we're trying to prevent legacy stuff, and i heard some people play it indeed.

3. Ok, AI pick their races by using some small cycle about random with already taken races been unavailable to prevent conflicts. Whats the point in changing it? If you want to get the same races as opponents - just set the desired picks to them (you will have much more options about it in next release), without bothering how the game will deal, say with cloned races in terms of their initial tensions to eachother and so on.

User avatar
Belix
Posts:20
Joined:Fri Apr 29, 2016 3:19 pm

Re: 1.50.1 Fan Patch

Postby Belix » Thu May 05, 2016 3:55 pm

Id wanted to point on an "anticheat & prevent player from smth" theme though... So there is no point to add some stuff to prevent player pick some racepicks, or forbid player to trade with AI. You dont want it - dont do it then.
Just to clarify, the purpose of some of the switches I suggested was for multiplayer. Obviously a lone player can decide what they want to use or not.

As I said, cheat prevention is not my concern (which is impossible anyway), but making sure everyone in multiplayer can abide by the same set of rules easier. Of course players can agree not to do something, but the longer people have played a game, the more certain habits become established. And the more special rules there are, the more likely someone is to forget something and do it anyway.

The 'No Report' feature that already exists is a perfect example of this (though admittedly much more significant). It is a feature I use habitually and without the ability to disable it, I would forget if I were playing in a game where it was simply forbidden but still accessible.

I realize more features means more work; I'm simply offering suggestions for those of you working on the project to consider if they're worth the effort or not. In the case of No Tech Exchange, /noreport already modifies the ability to Demand or Exchange tech, so I hoped it might be easy to separate them so that they can be controlled separately. If not, no big deal.
3. Ok, AI ... Whats the point in changing it? If you want to get the same races as opponents - just set the desired picks to them (you will have much more options about it in next release)
I'm not sure I understand what you're saying, but it sounds like the next release will let you specify which AI opponents you can play against? If so, awesome, that's exactly what I was hoping for.

On that note, is there a thread I've overlooked that contains planned features for the next release? That way I don't waste time suggesting (and then other people's time reading) anything that's already being done.

Thanks.

User avatar
Rocco
Posts:242
Joined:Sat Mar 29, 2008 9:16 am
Contact:

Re: 1.50.1 Fan Patch

Postby Rocco » Thu May 05, 2016 6:14 pm

I'm not sure I understand what you're saying, but it sounds like the next release will let you specify which AI opponents you can play against? If so, awesome, that's exactly what I was hoping for.
On that note, is there a thread I've overlooked that contains planned features for the next release? That way I don't waste time suggesting (and then other people's time reading) anything that's already being done.
We haven't published a list of upcoming features, but the main themes of the next release are
- full OCL options build into config, including racepicks,
- plus even more options added to make possible to write big mods like ICE fully in config
- fixing a number of important issues with tactical combat
- more bug fixes ofc .. always more bug fixes

Also there will be the option to use the a.i's ship autodesigner, so you can play with evenly matched ships against a.i.
(shortcut ALT AD will update all designs to latest version, based on your available techs)
The option to specify AI opponents is not planned to be in atm...

User avatar
Darza
Posts:134
Joined:Tue Oct 02, 2012 10:09 am

Re: 1.50.1 Fan Patch

Postby Darza » Fri May 06, 2016 3:44 am

Just to clarify, the purpose of some of the switches I suggested was for multiplayer. Obviously a lone player can decide what they want to use or not.
I was about multiplayer aswell there. The whole multilayer in moo2 is about agreeing on some set of rules. Automatization is needed in case somebody can accidentally and unwantedly break some of them via some misclick to prevent spoiling a whole game then. But not needed to prevent accidentally spying AI or trading with AI etc. Otherwise we will need to automatize all the possible (including the weirdest ones) rule enforcements then.

Yes, you will be able to set AI races the way you want to see them in game in case. Not in terms of "3 psilons sharing the same picture", but as 3 different AI races that are the same in terms of racepicks.

One little clarification: there will be no "full OCL support", as it simply not needed. And yes, there is no such tread you mentioned.

User avatar
Belix
Posts:20
Joined:Fri Apr 29, 2016 3:19 pm

Re: 1.50.1 Fan Patch

Postby Belix » Fri May 06, 2016 10:15 pm

Good stuff! What has already been done and is planned for the next release is great. A few more things maybe worth mentioning..

-Is it possible to make leaders not require two clicks to reject? The initial message could be changed to read something such as,

"Commander Cyr offers to join you for 30 BC now and 1BC per turn, and will wait 30 turns to be hired. Hire now?"

Then when you click 'Reject' once there would be need for the second message to pop up informing you the leader will wait, and the dialog could be closed with a single click. Just a thought after having to click twice for so many years now... :D


And speaking of bugs (the first one might be worth fixing):

-When you use the Colonies screen to assign a colonist as a Farmer on another planet, and the originating planet cannot farm, you incorrectly get an error, "No room for another colonist in this job field"

-If you use another player's Dimensional Portal to attack Antares, next turn the fleet will travel to coordinates 0,0 on the galaxy map and then proceed with the attack as usual (this could take several turns) instead of attacking immediately next turn

User avatar
Rocco
Posts:242
Joined:Sat Mar 29, 2008 9:16 am
Contact:

Re: 1.50.1 Fan Patch

Postby Rocco » Sat May 07, 2016 3:26 am

-Is it possible to make leaders not require two clicks to reject? The initial message could be changed to read something such as,

"Commander Cyr offers to join you for 30 BC now and 1BC per turn, and will wait 30 turns to be hired. Hire now?"

Then when you click 'Reject' once there would be need for the second message to pop up informing you the leader will wait, and the dialog could be closed with a single click. Just a thought after having to click twice for so many years now... :D
But this only happens on Tutor and Easy levels?
Does it mean that you have never played the game on average difficulty?
-When you use the Colonies screen to assign a colonist as a Farmer on another planet, and the originating planet cannot farm, you incorrectly get an error, "No room for another colonist in this job field"
Indeed! thanks for reminding about that one.
-If you use another player's Dimensional Portal to attack Antares, next turn the fleet will travel to coordinates 0,0 on the galaxy map and then proceed with the attack as usual (this could take several turns) instead of attacking immediately next turn
Ok, this one is new for me. Have never seen an a.i. build a portal, or does this happen in a multi-player game perhaps?

User avatar
Belix
Posts:20
Joined:Fri Apr 29, 2016 3:19 pm

Re: 1.50.1 Fan Patch

Postby Belix » Sun May 15, 2016 5:14 pm

But this only happens on Tutor and Easy levels?
EDIT: You are correct, my mistake!
Ok, this one is new for me. Have never seen an a.i. build a portal, or does this happen in a multi-player game perhaps?
I've never seen the AI build a portal either, so that would be another MP-exclusive issue. And probably not even worth fixing. Just wanted to mention it for completeness' sake.
Last edited by Belix on Mon May 16, 2016 2:42 am, edited 1 time in total.

User avatar
Darza
Posts:134
Joined:Tue Oct 02, 2012 10:09 am

Re: 1.50.1 Fan Patch

Postby Darza » Sun May 15, 2016 10:53 pm

I've never seen the AI build a portal either, so that would be another MP-exclusive issue. And probably not even worth fixing. Just wanted to mention it for completeness' sake.
Why, it was a fun stuff to fix that bug. Same goes to another mentioned. Great bugreport, man, we're totally forgot about farmer initially, and was unaware about portal one at all, thank you.

About leaders confirmation - well, im unable to reproduce it. It require additional click only on a Tutor and Easy difficulty for me, no matter the game mode is (didnt tried Modem).

User avatar
Belix
Posts:20
Joined:Fri Apr 29, 2016 3:19 pm

Re: 1.50.1 Fan Patch

Postby Belix » Mon May 16, 2016 2:44 am

You guys are correct; my mistake. I had been running a test game for some time on Easy difficulty to and forgotten what difficulty it was. It's been awhile since I played MoO and for some reason I thought this was default behavior.

Glad to have given back a little in exchange for enjoying your work. If I come across anything else I'll be sure to mention it here. Thanks!

User avatar
Rocco
Posts:242
Joined:Sat Mar 29, 2008 9:16 am
Contact:

Re: 1.50.2 Fan Patch

Postby Rocco » Sun May 29, 2016 2:40 pm

-Is it possible to make leaders not require two clicks to reject? The initial message could be changed to read something such as,

"Commander Cyr offers to join you for 30 BC now and 1BC per turn, and will wait 30 turns to be hired. Hire now?"

Then when you click 'Reject' once there would be need for the second message to pop up informing you the leader will wait, and the dialog could be closed with a single click. Just a thought after having to click twice for so many years now... :D
We have added a new parameter which can change the double leader confirmation to Tutor level only. Feel free to check if it helps in the new 1.50.2 patch.

User avatar
Belix
Posts:20
Joined:Fri Apr 29, 2016 3:19 pm

Re: 1.50.2.1 Fan Patch

Postby Belix » Wed Jun 01, 2016 2:58 pm

Awesome, going to be playing with this on and off for sure.

I couldn't find any place in EXAMPLE.CFG or the documentation that had all the default races ready for copy & paste to be edited, so for anyone else that wants .cfg data for the default races without having to make it themselves, here's what to put in your .cfg file to get started. Double-checked for accuracy, but please let me know if there are any mistakes.

The formatting looks bad here in the code block, but once pasted into your .cfg file looks much neater and includes vertical text labels identifying each property for easier editing (assuming your text editor uses a monospace font).

Code: Select all

#--------------------------------------- |I |P |C |C|T |T #--------------------------------------- |n |S |D |A|S|L|o |h |r|o|T|e |S |W #--------------------------------------- |G |d |c |e |A |G |q|u|a|o |a|U|e|l|r|l |t |a #--------------------------------------- |r |u |i |M |f |t |r |H|u|b|r|r |C|L|R|r|n|a|e|a|e|L |e|T|r #--------------------------------------- |o |F |s |e |o |e |t |o |L|i|a|t|g|R|A|y|i|e|i|c|t|r|d|p|u|O|a|r|l #--------------------------------------- |w |o |t |n |n |n |a |u |S|o|g|t|e|e|i|r|b|t|p|s|r|i|a|e|a|c|m|l|a|o #--------------------------------------- |t |o |r |c |e |s |c |n |p|w|h|i|r|H|c|t|e|h|u|m|e|v|n|r|t|k|n|t|n|r #--------------------------------------- |h |d |y |e |y |e |k |d |y|G|G|c|r|W|h|i|r|o|l|a|a|e|t|s|h|y|i|h|s|d #--------------------------------------- #--------------------------------------- | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | #--------------------------------------- v v v v v v v v v v v v v v v v v v v v v v v v v v v v v v stock_races Alkari = dictatorship g0 f0 i0 s0 m0 sd3 sa0 gnd0 spy0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0; stock_races Bulrathi = dictatorship g0 f0 i0 s0 m0 sd0 sa2 gnd2 spy0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; stock_races Darloks = dictatorship g0 f0 i0 s0 m0 sd0 sa0 gnd0 spy3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0; stock_races Elerians = feudal g0 f0 i0 s0 m0 sd2 sa2 gnd0 spy0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0; stock_races Gnolams = dictatorship g0 f0 i0 s0 m3 sd0 sa0 gnd0 spy0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0; stock_races Humans = democracy g0 f0 i0 s0 m0 sd0 sa0 gnd0 spy0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0; stock_races Klackons = unification g0 f2 i2 s0 m0 sd0 sa0 gnd0 spy0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0; stock_races Meklars = dictatorship g0 f0 i3 s0 m0 sd0 sa0 gnd0 spy0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0; stock_races Mrrshan = dictatorship g0 f0 i0 s0 m0 sd0 sa3 gnd0 spy0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1; stock_races Psilons = dictatorship g0 f0 i0 s3 m0 sd0 sa0 gnd0 spy0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0; stock_races Sakkra = feudal g3 f2 i0 s0 m0 sd0 sa0 gnd0 spy1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; stock_races Silicoids = dictatorship g1 f0 i0 s0 m0 sd0 sa0 gnd0 spy0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0; stock_races Trilarians = dictatorship g0 f0 i0 s0 m0 sd0 sa0 gnd0 spy0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0;
p.s. Perhaps I've overlooked it somewhere in the documentation, but I can't find information to replicate the functionality of the previous version's options AI_races_improved and AI_ships_improved. What would I need to put into the config file to replicate those changes in this version? For that matter, what exactly was all changed? I haven't been able to find a complete list of changes made by either feature in the version's .pdf or example.cfg. I could only find this partial information on one of the switches, AI_ships_improved:
The improved ship design templates have less space allocated for bombs and more
space for special systems.

In addition the Antaran Star Fortress gets Rangemaster Unit instead of the Quantum
Detonator and the Guardian gets the CO mod added to its Pd Particle Beams and an
Inertial Nullifier instead of the Stabilizer.
I'd already played a match with it set up that way. I suppose I could do the same thing myself, but I'm guessing someone spent quite a bit of time tinkering with and testing the previous settings, so I'd rather use them as a base than start with blind guesses. Thanks!

User avatar
Rocco
Posts:242
Joined:Sat Mar 29, 2008 9:16 am
Contact:

Re: 1.50.2.1 Fan Patch

Postby Rocco » Wed Jun 01, 2016 5:29 pm

Thanks for your post! Nice formatting job of help text for the races block.
Am sure i will use it in some form in one of the configs.

About the AI_races_improved and AI_ships_improved parameters that have been removed: they were indeed undocumented.
These two are now part of Vmod and are written in the following sections of VMOD.CFG file:

[ A.I. SHIP DESIGN ] = AI_ships_improved.
This is intended to make ai ships better, with better use of specials & less bombs.
The Guardian and Antaran Fortress changes are there too (marked by # comments).
If you are not playing Vmod, you can copy this section into a new config and run only this part.
You can also edit Vmod to your liking as its a nice little mod that stays very close to the classic game anyway.
Whenever i feel like playing "classic-ish", usually that means Vmod for me...

[ EXTRA ABILITIES HARD, IMPOSSIBLE, EVO. MUTATION ] = (part of) AI_races_improved.
This is intended to remove oddities that we did not define as bugs and are therefore unchanged in classic game.
Variants 1-3 are the same as the original AI_races_improved.
the buffed races for variants 4-5 in AI_races_improved are not there anymore.
Basically I have rejected them, as being too much a random mod.
[ i might write new ones some day though :) ]
I can share the spreadsheet of patch 1.50.1 that had its designs if you dont have that spreadsheet anymore.
(1.50.2 overwrites it in any case)

edit
you can also take a look at PICKS.CFG, that plays a bit with the racepicks, and also fixes races in the same way.
(its meant for Vmod, but you can also run it with classic no problem)
The stock Mrrshan race is Feudal & GC+10 there, due to an expensive 4 picks Rich HW.
Its Hard and Imp race variants have been adjusted accordingly.
Quite fun

User avatar
Belix
Posts:20
Joined:Fri Apr 29, 2016 3:19 pm

Re: 1.50.2.1 Fan Patch

Postby Belix » Tue Jun 07, 2016 4:41 pm

I can't figure out how to assign 'Poor Home World' to stock_races. Am I missing something, or is the parameter missing something?

p.s. Found a new bug. If you play a Cluster Galaxy in Multiplayer, save, exit and load the game, the map reloads fully zoomed out to 'Huge' size, which places the entire Cluster galaxy/all stars in the top left area and leaves a ton of blank space on the bottom and right. One zoom in used in the top left section restores it to what it should look like, for now. However, all other maps (such as Colonies, Leaders, Fleets etc.) now appear at the incorrect size permanently.

Also: Not sure if this is due to the new patch, but since I started playing v1.5 (including the previous version) I have twice now had Battleships randomly disappear after battles. Both times the ships had no Armor left and were low on Structure. The first it was immobilized and captured by the AI, then I recaptured it before winning the fight. I tried to reproduce that with some capturing and recapturing but couldn't. Now a second one vanished after I won a fight defending a planet with a star base, but I retreated my only damaged Battleship from the fight towards the end. It escaped successfully but disappeared from the game completely after the battle. The only other similarities between these two instances I can think of is that an enemy Battleship was also destroyed during each battle. I'll report back with more if I experience this again.

User avatar
Darza
Posts:134
Joined:Tue Oct 02, 2012 10:09 am

Re: 1.50.2.1 Fan Patch

Postby Darza » Tue Jun 07, 2016 8:45 pm

1. Cant comment yet.

2. Cluster loading problems should be fixed on next release (aswell as compatibility of 6-th slot with games saved in previous versions).

3. About disappearing battleships - hard to tell without save, sadly. Personally im recall some oddities very similar to a described one a few times over the course of some years, and probably its some drawing glitch, when an actually dead ship has still shown as retreated. Maybe not, but sadly it require a reproduceable save with it to look up at. But definitely it shouldnt happen more often in 1.50 than before, and if its a case - then better it could be catched on some save finally.

Ah yes - and great thanks for great finds as usual, man.
Last edited by Darza on Tue Jun 07, 2016 8:54 pm, edited 1 time in total.


Return to “Game Modifications”

Who is online

Users browsing this forum: No registered users and 26 guests