[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: 15622
Joined: Mon, 5. Mar 07, 23: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: 1082
Joined: Mon, 29. Dec 08, 20: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: 140
Joined: Mon, 24. Nov 08, 20: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: 15622
Joined: Mon, 5. Mar 07, 23: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: 587
Joined: Wed, 25. Feb 09, 06:54
x3tc

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: 6106
Joined: Wed, 19. Nov 08, 21: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
Image
Image
Image

User avatar
Carlo the Curious
Posts: 15622
Joined: Mon, 5. Mar 07, 23: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: 28720
Joined: Wed, 6. Nov 02, 21:31
x3tc

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: 587
Joined: Wed, 25. Feb 09, 06:54
x3tc

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: 15622
Joined: Mon, 5. Mar 07, 23: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: 15622
Joined: Mon, 5. Mar 07, 23: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: 11233
Joined: Sat, 9. Nov 02, 12: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.

User avatar
Carlo the Curious
Posts: 15622
Joined: Mon, 5. Mar 07, 23: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: 3973
Joined: Thu, 20. Oct 05, 20:43
xr

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: 15622
Joined: Mon, 5. Mar 07, 23: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.

Post Reply

Return to “X Trilogy Universe”