[TC] O B S

General discussions about the games by Egosoft including X-BTF, XT, X², X³: Reunion, X³: Terran Conflict and X³: Albion Prelude.

Moderator: Moderators for English X Forum

User avatar
Carlo the Curious
Posts: 16999
Joined: Mon, 5. Mar 07, 22:03
x4

O B S

Post by Carlo the Curious » Tue, 5. May 09, 19:10

Some information I came up with while I was writing something else.

Just in case anyone was interested :).


Some of the info below is no longer valid as of 2.7 (mainly, the player ship & fleet is no longer relevant). Updated info.




For most missions, the enemy fleet is created by something called the Opponent Balancing System (OBS).

OBS uses a 'points pool' to randomly generate the fleet. Each type of ship (or wing) selected to spawn costs a certain number of points, and is deducted from the pool. More ships are randomly allocated until all the points in the pool are used up.

The size of the points pool may be set explictly by the mission, but it's more often determined using the mission difficulty (as shown on the briefing screen) and the mission rank (normally your fight rank).

The initial point pool is based on the mission rank. This is then adjusted according to the mission difficulty. Depending on the difficulty, it may then be further modified to take into account some or all of the player's ships:
  • Trivial or Very Easy - none.
  • Easy - Personal ship.
  • Average - Personal ship and nearby (<15km) ships.
  • Hard, Very Hard and Impossible - All player ships in the sector.

More precisely:

Class points values
  • M5 - 1
  • M4 - 7
  • M3 - 20
  • M8 - 70
  • M6 - 100
  • M7 - 220
  • M2 - 600
  • M1 - 500
  • M1 (support) - 500
  • TS - 4
  • TP - 3
  • TM - 5
  • TM (support) - 20
  • TL - 125
  • TL (support) - 75
Initial points pool
  • 0 - 2
  • 1 - 2
  • 2 - 3
  • 3 - 3
  • 4 - 4
  • 5 - 6
  • 6 - 7
  • 7 - 10
  • 8 - 13
  • 9 - 17
  • 10 - 22
  • 11 - 29
  • 12 - 38
  • 13 - 49
  • 14 - 64
  • 15 - 84
  • 16 - 109
  • 17 - 143
  • 18 - 186
  • 19 - 243
  • 20 - 318
  • 21 - 416
  • 22 - 544
  • 23 - 711
  • 24 - 930
  • 25 - 1216
  • 26 - 1589
  • 27 - 2078
  • 28 - 2718
  • 29 - 3554
  • 30 - 4647
Total points
  • IP - Initial points pool
  • PS - Class value of playership
  • PCS - Total class value for close ships owned by player
  • PTS - Total class value of all In Sector ships owned by player (I think)
  • Sub-total
  • Trivial = (IP+1)*random(9,14)
  • Very Easy = (IP+1)*random(20,28 )
  • Easy = ((IP*random(50,66))+(PS*100))
  • Average = (IP+PS+PCS)*100
  • Hard = ((IP+PS)*100)+(PTS*random(10,16))
  • Very Hard = ((IP+PS)*100)+(PTS*random(25,33))
  • Impossible = ((IP+PS)*100)+(PTS*random(55,67))
Total points = 1+(Sub-total/100)


Figures taken from 2.0.


I'm not sure what the support stuff does.

Also, I'm not certain that hard and above use all the player ships or not. The code appears to be looking for all ships, but the variable is named sector ships:

Code: Select all

<find_ship includedocked="1" multiple="1" race="player" group="this.PlayerCloseShips">
  <distance max="15km"/>
</find_ship>
<do_all exact="{group.object.count@this.PlayerCloseShip}" counter="CloseCount">
  <set_value name="this.PlayerClosePoints" exact="{value@this.PlayerClosePoints}+{value@Constant {group.object.{counter@CloseCount}.class@this.PlayerCloseShips} Points}"/>
</do_all>
<!--Set the players sector fleet points-->
<find_ship includedocked="1" multiple="1" race="player" group="this.PlayerSectorShips"/>
<do_all exact="{group.object.count@this.PlayerSectorShips}" counter="SectorCount">
  <set_value name="this.PlayerTotalPoints" operation="add" exact="{value@Constant {group.object.{counter@SectorCount}.class@this.PlayerSectorShips} Points}"/>
</do_all>

EDIT: The consensus seems to be that PTS is IS ships only.
Last edited by Carlo the Curious on Mon, 16. Aug 10, 01:19, edited 7 times in total.

gandy|UKCS|
Posts: 1174
Joined: Mon, 29. Dec 08, 19:26
x3tc

Post by gandy|UKCS| » Tue, 5. May 09, 19:19

can we have the in english please :)

only joking, its a good way to balance as it makes sure you don't own the universe in a M3 :) ( if i understand it correctly )
Gaming PC
Mobo - Asus P8Z77-V - CPU - i5 3570K @ 4.2ghz
HSF - Corsair H100 - GFX - GTX-470
Memory - 8gig Corsair Vengence Black DDR3 @ 1600mhz
Monitor - BenQ 2400HD 24"
Case - CM Storm Stryker

EphemeralDeception
Posts: 141
Joined: Mon, 24. Nov 08, 19:12

Post by EphemeralDeception » Tue, 5. May 09, 19:55

Interesting post.


Ive neve seen a mission marked impossible?

The code looks like it is scanning all ships in sector based on the possibility that you have a fleet or wings of ships in sector already. I don't see anything that checks all owned ships. However it seems to be adding close ships and all sector ships together so it counts some ships twice ie calc = close total + all sector total.

Conclusions:
So easist fight = only have 1 ship in sector prior to mission
2nd easiest = ensure all other ships are > 15km away from your ship :)
Having wings assigned is even worse than I thought it was!
Minds are like parachutes, they only function when they are open.

User avatar
Carlo the Curious
Posts: 16999
Joined: Mon, 5. Mar 07, 22:03
x4

Post by Carlo the Curious » Tue, 5. May 09, 20:01

EphemeralDeception wrote:The code looks like it is scanning all ships in sector based on the possibility that you have a fleet or wings of ships in sector already. I don't see anything that checks all owned ships.
The comment and the variable name seem to indicate that, but there's nothing in the actual find_ship command to indicate that it is looking at just the sector (unless it's the default - the MD documentation is kind of lacking :)).

I suspect it's actually counting all ships. After all, they can always jump IS the instant you start the mission.

Although counting transports, etc, which are unlikely to involved in your combat fleet seems a little odd.
However it seems to be adding close ships and all sector ships together so it counts some ships twice ie calc = close total + all sector total.
I don't think it ever uses PTS and PCS in the same calc, so it doesn't matter.

shanrak
Posts: 651
Joined: Wed, 25. Feb 09, 05:54
x4

Post by shanrak » Tue, 5. May 09, 20:07

Interesting, is this pool recalculated before every spawn?

I've recently did some ship switching for some patrol missions, I've noticed that the waves change based on which ships I had in the sector. When I started out in my hype, all I had to face was a bunch of Xenon Ps (4-5 of them) with fighter escort.

When I brought in my Tiger, the next wave spawned became a single Xenon K with fighter escort.

I'm pretty certain the all ships calculation is only for ships in the sector (the patrol I took was very hard), otherwise it should've started with a K right off the bat.

And no, my fight rank did not increase (well, value went up but the rank did not, I went from 12% assassin up to 75% or so). Afterwards, I went back to my hype and other patrol missions went back to spawning Xenon Ps.

I'm going to try to do some very hard patrol missions in my LX later on (with no other ships in sector) to see what spawns.

User avatar
Deadbeat_Spinn
Posts: 6483
Joined: Wed, 19. Nov 08, 20:47
x3tc

Post by Deadbeat_Spinn » Tue, 5. May 09, 20:13

Impossible missions do exist, at least for me. The majority of impossible missions I've seen are from abandoned/return ship missions with the odd stolen ship mission. Never seen it for build/passenger, unsure for need ware since I hardly ever do them, and unsure as to any of the combat based since I'm currently trying a different route to wealth.

On the opposite side however the only time I've seen a trivial difficulty was from plot based missions. Very easy based are around but not very often for the sort missions that I currently do. Average based though have an oddity about them during a time based mission (i.e. passenger/build) and seemed harder to complete than a hard/very hard. The timeframe for an average is almost always shorter (i.e. 16min for a build) verses a hard/very hard timeframe (i.e. 20min for a build), these figures are for an older version of the game

User avatar
Carlo the Curious
Posts: 16999
Joined: Mon, 5. Mar 07, 22:03
x4

Post by Carlo the Curious » Tue, 5. May 09, 20:22

shanrak wrote:Interesting, is this pool recalculated before every spawn?
Ah. Yes, that would make more sense and why it would be ships IS.

Some digging around later...

It looks like it sets a number of instances/runs for OBS at the mission start (for Patrols, anyway):

Code: Select all

<set_value name="L2M134.Max OBS Instances" min="1*{value@L2M134.Difficulty}" max="3*{value@L2M134.Difficulty}"/>
<set_value name="L2M134.OBS Instances Per Sector" exact="{value@L2M134.Max OBS Instances}/{value@L2M134.Jumps}"/>
Then OBS is called that many times, once every OBS Delay seconds - but I'm not sure how it sets up the delay (although it seems to be related to the PatrolTime).

pjknibbs
Posts: 41359
Joined: Wed, 6. Nov 02, 20:31
x4

Post by pjknibbs » Tue, 5. May 09, 20:50

It would make a LOT more sense IMHO for it to just be based on the ships the player has got in the sector. Otherwise you would get some stupidly high values for the points total if the player had massive fleets on the other side of the universe.

Of course, it would be easy enough to test...a player who DOES have massive fleets could take a mission and see what opposition he gets, then reload and try the same mission with a few of his big guns jumped in-sector.

shanrak
Posts: 651
Joined: Wed, 25. Feb 09, 05:54
x4

Post by shanrak » Tue, 5. May 09, 21:23

already done that before. In my previous game as a pirate, I've had a big fleet with multiple M2s, M1s, M7s, etc (a lot of damaged onces parked in EQ docks or floating 100KM off of the ecliptical in other sectors :D), and when taking a patrol mission with a HCP, only one J or K spawned (my fight rank was way higher than the current game).

If it took into account of all the ships I owned, I should've had multiple Ks and Js breathing down my neck.

Now for the 1 million buckzoid question: do docked ships count towards the points pool? If I wanted to generate more ships on a patrol mission while doing a XI, do I need to launch my M3s or can I just keep them safely docked.

User avatar
Carlo the Curious
Posts: 16999
Joined: Mon, 5. Mar 07, 22:03
x4

Post by Carlo the Curious » Tue, 5. May 09, 21:29

shanrak wrote:Now for the 1 million buckzoid question: do docked ships count towards the points pool?

Code: Select all

includedocked="1"
I'd say that's a yes.

User avatar
Carlo the Curious
Posts: 16999
Joined: Mon, 5. Mar 07, 22:03
x4

Post by Carlo the Curious » Tue, 5. May 09, 23:50

Some more bits from the ship select cue:
  • Pool > M1 cost + M1 support cost:
    • M1 + support ships: chance 40
    • M2: chance 35
  • > M2 cost
    • M2: chance 66
    • M6: chance 34
  • > M7 cost
    • M6: chance 66
    • M3: chance 34
  • > M6 cost
    • M6: chance 66
    • M3: chance 34
  • > M8 cost
    • M6: chance 66
    • M3: chance 34
  • > M3 cost
    • M3: chance 66
    • M4: chance 34
  • > M4 cost
    • M4: chance 66
    • M5: chance 34
  • otherwise
    • M5

Xenon_Slayer
EGOSOFT
EGOSOFT
Posts: 13092
Joined: Sat, 9. Nov 02, 11:45
x4

Post by Xenon_Slayer » Wed, 6. May 09, 00:28

If you want to find the points per class, look in constants.xml.
Come watch me on Twitch where I occasionally play several of the X games

User avatar
Carlo the Curious
Posts: 16999
Joined: Mon, 5. Mar 07, 22:03
x4

Post by Carlo the Curious » Wed, 6. May 09, 02:49

Xenon_Slayer wrote:If you want to find the points per class, look in constants.xml.
I did - they're in the first post :).

Kapakio
Posts: 4442
Joined: Thu, 20. Oct 05, 20:43
x4

Post by Kapakio » Wed, 6. May 09, 10:50

Excellent thread. I'm bookmarking it now.

Just a question. What is exaclty the number on the left on the list of Initial points pool (going from 1 to 30)? I guess it would be the mission rank, which is the same as your fight rank you said?

User avatar
Carlo the Curious
Posts: 16999
Joined: Mon, 5. Mar 07, 22:03
x4

Post by Carlo the Curious » Wed, 6. May 09, 10:53

Yes. At least, usually - it's just a parameter and I didn't check every call.

zigyzigy
Posts: 143
Joined: Wed, 11. Jun 08, 15:03
x3tc

Post by zigyzigy » Sat, 30. May 09, 01:52

can you find out about trade missions, i always seem to get either a stupidly trivial task or a request that could only be fullfilled if i happened to own a complex producing that resource ...

Dreez
Posts: 1167
Joined: Tue, 10. Mar 09, 12:50
x4

Post by Dreez » Sat, 30. May 09, 05:41

Let me see if i understand this correct.

Lets say i am in scale plate green and a 'hold position/kill Xenon' missions
is available. I jump in 3 more M2's and 2xM1's into the system before accepting
the mission.

This will cause O.B.S to generate more ships then it would if i accepted the
mission with only my own M2 in the sector?.

If this is the case. Then, accepting patrol missions which are located "in sector"
would be much more profitable but also much harder if i were to jump in
a small armada of my own ships previous to accepting the patrol mission?.

If i understood your post correctly, that's how O.B.S works.
Of all the things i've lost, i miss my mind the most.

StormMagi
Posts: 1335
Joined: Sat, 17. Mar 07, 03:53
x4

Post by StormMagi » Sat, 30. May 09, 05:46

So theoretically if I take a kill mission while I am in a Boreas and I have a Phoenix, 2 Brigantine and a Galleon in the sector I could possible see multiple M2 contacts?
MOD XR Show Skills

Flying spaceships since 1993.

User avatar
cswiger
Posts: 748
Joined: Thu, 1. Dec 05, 01:46
x3tc

Post by cswiger » Sat, 30. May 09, 06:50

Certainly, and not just in theory.

Once your rank gets high enough (Battlemaster or Crusader, maybe?), you'll get several M2s spawned every once in a while (10-15% perhaps), and at Legend, it seems to be around 35-40% chance that you get several M2s; otherwise, you'll get a huge hairy heaping of M6s and lesser craft.

Fortunately, most of the ships will jump out once you kill the target, but you can still be left with a significant hostile force remaining to play with, also.

Beware that some of the time, capship escorts (M1s or M2s) will be hostile towards the mark. I've had Xenon or Khaak escorts spawn near the target, which become hostile and took out the target-- robbing me of the reward!
Do you remember Shalebridge Cradle?
Beware! The Cradle *doesn't* forget....

User avatar
Carlo the Curious
Posts: 16999
Joined: Mon, 5. Mar 07, 22:03
x4

Re: O B S

Post by Carlo the Curious » Sun, 21. Jun 09, 05:51

pjknibbs wrote:Of course, it would be easy enough to test...a player who DOES have massive fleets could take a mission and see what opposition he gets, then reload and try the same mission with a few of his big guns jumped in-sector.
It still seemed odd to me, so I ran a couple of tests.

Fight rank: Harmless
Mission: Xenon Invasion (Black Hole Sun)
Mission Difficulty: Hard
Personal ship: M3 (value 20)

XIs fiddle with your combat rank (if it's under 25) to get the mission rank, so in this case the mission rank is actually 5 (IP=6 points).

Total points for hard = 1 + ( ( ( ( IP+PS )*100 ) + ( PTS*random(10,16) ) ) / 100 )

With no other ships anywhere (besides satellites):
  • Total points = 1+(((6+20)*100)+0)/100 = 27
    I got 1xM3, 1xM4 (20+7 = 27 points)
With 10 Boreas (value 6000 total) IS as well:
  • Total points = 1+(((6+20)*100)+(6000*random(10,16)))/100 = 627 to 987
    Run 1: I got 1xM3, 1xM4, 3xM6, 1xM2 (20+7+300+600 = 927 points)
    Run 2: I got 6xM3, 1xM4, 2xM6, 1xM2 (120+7+200+600 = 927 points)
With 10 Boreas OOS:
  • I got 1xM3, 1xM4 (20+7 = 27 points)
So, it definately isn't counting OOS ships, at least in this case (and incidentally isn't counting the player ship twice).

Post Reply

Return to “X Trilogy Universe”