Author Topic: Op2 Features  (Read 6815 times)

Offline Celledor

  • Moderator
  • Full Member
  • *****
  • Posts: 151
    • http://www.veus.se
Op2 Features
« on: May 24, 2009, 12:05:04 PM »
I would need a list of all features that exsists in outpost 2 so that it will be easier to code them and so that none gets forgoten.

If you miss a feature please add it here. And don't post things that you want to add to the game (like new units etc.) that don't exisits in the original (unless its a bug fix).

Offline Sirbomber

  • Hero Member
  • *****
  • Posts: 3237
Op2 Features
« Reply #1 on: June 02, 2009, 10:37:47 AM »
I'm not sure what you want here, so, I'll do my best...
1) Most structures require tube connections.
2) Rough terrain can be bulldozed to allow for faster travel; ground around buildings is automatically bulldozed upon starting construction; structures built on pre-bulldozed terrain build faster
3) Mines start at a base yield level, then slowly increase in yield, peak, and then decrease in yield to a point slightly below the original base yield.  Mines never run dry.
4) A mine's yield is determined by its type (common/rare), its yield (three-bar/two-bar/one-bar) and its variant type (high/medium/low).  The variant type more or less adds some variation to the game, so not all mines of the same level are identical.  Note that, in the Resources Report, the game does not keep track of each mine's variant type, nor does it use the terms one-bar/two-bar/three-bar.
5) Blight and Lava spread speeds are scaled based on the size of the map.  Lava can spread over Blight, destroying the Blight in the process, but Blight cannot spread over Lava.
6) Other than globe/wrap-around maps, all maps have an invisible 31-tile "padding" on the east and west sides of the map.  All maps have a 1-tile "padding" on the north and south sides of the map.  This padding is created automatically.  I'm not sure if we know why the padding is there, and it's probably not necessary for you to re-create this aspect of the game.  I'm just listing things as I think of them, though.
7) Cargo Trucks can be loaded with various cargoes.  Common and rare ore can be loaded at mines and unloaded at Smelters.  Metals can be loaded and unloaded at Smelters and Metal Storages.  Food can be loaded and unloaded at Agridomes.  Starship parts and satellites can be loaded and unloaded at Spaceports.  Common and Rare rubble can be loaded off the ground and unloaded at GORFs.  Wreckage can loaded off the ground and unloaded at Spaceports; doing so can give the player who successfully salvaged the wreckage a free technology of the mission designer's choosing, usually one that cannot be researched normally.  Cargo Trucks can also carry random odds and ends, such as the Gene Bank, in certain campaign missions.

That's all for now...  I'll get back to you later if you can be more specific in what you'd like.  I mean, I could go on and on about stuff like "Structure kits must first be built at a Structure Factory, then loaded into a ConVec and deployed" if you want, but I thought stuff like that was kinda obvious.
"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

Offline Celledor

  • Moderator
  • Full Member
  • *****
  • Posts: 151
    • http://www.veus.se
Op2 Features
« Reply #2 on: June 02, 2009, 11:16:04 AM »
Thanks, things like that is great, things that are not obvious and can be missed is great to have written down like this. Then I can go through the list when I code a certain thing. It takes longer to add stuff later.

Perhaps add some sort of category or head line to each number so that its easier to look for them like: vehicle, structures, research, construction, logical rule etc.

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4954
Op2 Features
« Reply #3 on: June 02, 2009, 10:58:46 PM »
A few additional details on the above:

For #6, the "fixed" 31 tile padding is only on the left. The right side has a variable amount of padding. Basically, it doubles the size of the map, and shifts it right 31 tiles. All the rest of the doubling is extra padding on the right, so it's usually more than 31 tiles. Also, the 31 tiles I don't believe is fixed. I think that may have something to do with the clip rect in the .map files, or a similar field that can be changed. (Not that it ever is, or that I'd recommend changing it). I believe the reason for doing this, was to provide some padding map area for when the AI units drive off the map. It might also be used to have units drive on the map. I guess it was a way to avoid special casing the movability of those tiles.

For #5, blight and lava spread speed does vary according to the size of the map, but in a slightly odd way. What it does, is it sets a number of tiles to randomly check for expansion. This number of random tiles is scaled according to the map size, but it's done in such a way that a map with 2x as many tiles will check 2x as many tiles for blight expansion. Really, this seems more like a way of evening out some spread speed setting, so that it spreads at roughly the same speed on different sized maps. If this scaling was not done, then a map with 2x as many tiles would have about 1/2 the chance of randomly picking a tile already next to some blight and thus expanding it. Mind you, this probability argument isn't perfect as the probability will vary according to the size and shape of the blight. This random checking results in the tendril like growth of the blight, where of course the probability of a long tendril is pretty small, as is the probability of not having anything tendril like. Of course, you might choose to implement this differently, where the blight has some sort of edge tile list. That would probably allow for faster expansion code, but at the cost of more memory. I imagine the random expansion was done the way it was to conserve memory.

For #4, the variant isn't normally quite so clear cut, and the bar yield need not be either (although it is). Sometimes there are variants that just seem plain better than others. For instance, there is a 1 bar variant with initial, peak, and long term yields of: 100, 250, 150, comparing with another 1 bar variant with: 100, 200, 100. If you check mines.txt from sheets.vol, you'll see that for each bar yield, there is a variant with higher long term yield than the other two. Note that they all happen to start out at the same value for a given bar yield. Also, the transition from initial to peak, to long term yields for each variant takes a different number of truck loads. If you were to graph the yields, some variants would have a higher but narrower peak than others, or would have different rise/falloff rates on either side of the peak. Of course the peak values are somewhat insignificant as the transition period is between 10 to 60 trucks on either side of the peak value, and the difference in peak values is at most 50 ore per truck load. The widest peak is 80 truck loads from base to base, which would give about 80*50/2 = 2000 extra ore above the long term rate. (Divide by 2, since they are sloped, so you basically have the area of two triangles instead of a rectangle). That buys you about 2 lynx. If you have a variant with a higher long run yield, such as the 1 bar mine, that's a difference of 50% over the long run. Much more significant overall.

In fact, if I was ever going to cheat by making a map so that I "randomly" got better mines than other people, that's how I'd do it. I'd force the mines in my vicinity to be of a better variant. There is no way to visually tell in game. You'd need to mem hack to find the variant type, or be watching the peak and long run values to figure it out. Of course, part of the fun of having variants on each bar yield is not knowing ahead of time the exact amount of ore in the mine.

 

Offline Sirbomber

  • Hero Member
  • *****
  • Posts: 3237
Op2 Features
« Reply #4 on: June 02, 2009, 11:52:35 PM »
Yes, Blight and Lava spreading should definitely be done differently.
Is the padding really needed?

More random gameplay stuff:
1) Earthworkers can destroy walls and tubes.  Destroying tubes damages the Earthworker, however.
2) ConVecs can dismantle buildings.  If a GORF is not active, rubble is placed on the ground where the structure once stood; otherwise the building is automatically recycled, reclaiming part of its production cost, and no rubble is placed.
3) ConVecs, Repair Vehicles, and Spiders can all repair damaged buildings to full health.  Repair Vehicles and Spiders can repair damaged vehicles in the field, but only up to half of their maximum health.  Garages can repair damaged vehicles to full health.  Repairing requires a fraction of production costs per (unit of time).  I don't know how this cost is actually determined.
4) Every power plant except for the Solar Power Array (and CC, if you count that) release an EMP shockwave upon destruction.  This EMP shockwave disables things caught in the blast longer than a regular EMP does (I think).

Combat:
1) Lasers and Microwaves do extra (double?) damage to walls.
2) Wall "HP" is used to determine the probability the wall will be destroyed when hit.  I don't know the exact equation, but it's probably something like (damage dealt)/(wall HP)%.  Perhaps this should just be replaced with a system in which walls actually have hit points?
3) Most vehicles automatically kill themselves when self-destructing.  Combat units with the Starflare and Supernova turrets don't; the programmers assumed the resulting explosion would destroy these units.  This means that if you were able to create an invincible Supernova Lynx you could just hold down the self-destruct button and decimate everything in its path.  Part of me wants you to fix this, but another part really wants you to keep it this way.
4) Acid Cloud and ESG do not affect walls.
5) Spiders and Scorpions are immune to EMP.
"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

Offline Spikerocks101

  • Hero Member
  • *****
  • Posts: 711
Op2 Features
« Reply #5 on: June 03, 2009, 07:30:38 PM »
1: Units move slower when damaged

2: The path finder usually findas a path against a wall, even if its really long wall. Corrected using robot command center (The actually path finder, I'm not sure how it works)

3: Storms have a random chance of actually doing damage when the strike the ground (again, I'm not sure exactly)
I AM YOUR PET ROCK!!!!!!

Offline Hidiot

  • Hero Member
  • *****
  • Posts: 1018
Op2 Features
« Reply #6 on: June 04, 2009, 06:39:11 AM »
Your 3rd is completely wrong.
"Nothing from nowhere, I'm no one at all"

Offline Sirbomber

  • Hero Member
  • *****
  • Posts: 3237
Op2 Features
« Reply #7 on: June 04, 2009, 08:33:57 AM »
Actually, he's only mostly wrong.  Lightning strikes deal splash damage over a pretty wide area.  I can sorta see how Spike could think it was "random" damage, but...  
"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

Offline Spikerocks101

  • Hero Member
  • *****
  • Posts: 711
Op2 Features
« Reply #8 on: July 23, 2009, 10:09:09 AM »
Just wondering how you are going to do teh tech tree. Are you going to do it same as the old game, list of available techs? I was thinking (probably several other too) that it should be a full display tech tree. How you ever played civilization 3 or 4? You know how you can select a tech, and then it researchs all the techs required for the one you choosen with out you having to do anything. You should add something like that, and maybe even an option for a amount of scientests. For example, you could select the tech to get Thors, and then set it to 8 scientists, and it will slowly get to that tech, while you do other things. Also, there should be no limit to amount of scientists required for a tech. It should be, for ever lab you build, you can get 5 scientists working on teching up. My ideas...
I AM YOUR PET ROCK!!!!!!

Offline Sirbomber

  • Hero Member
  • *****
  • Posts: 3237
Op2 Features
« Reply #9 on: July 23, 2009, 02:00:38 PM »
Spiken00b, since you obviously didn't read the first post, this is a list of features already in Outpost 2, not a feature request thread.
"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

Offline Arklon

  • Administrator
  • Hero Member
  • *****
  • Posts: 1267
Op2 Features
« Reply #10 on: July 23, 2009, 02:03:05 PM »
Quote
Just wondering how you are going to do teh tech tree. Are you going to do it same as the old game, list of available techs? I was thinking (probably several other too) that it should be a full display tech tree. How you ever played civilization 3 or 4? You know how you can select a tech, and then it researchs all the techs required for the one you choosen with out you having to do anything. You should add something like that, and maybe even an option for a amount of scientests. For example, you could select the tech to get Thors, and then set it to 8 scientists, and it will slowly get to that tech, while you do other things. Also, there should be no limit to amount of scientists required for a tech. It should be, for ever lab you build, you can get 5 scientists working on teching up. My ideas...
So basically you want the game to do the work for you?

Offline Celledor

  • Moderator
  • Full Member
  • *****
  • Posts: 151
    • http://www.veus.se
Op2 Features
« Reply #11 on: August 11, 2009, 01:46:54 AM »
One question, what kind of triggers to fire events are there on a map? Move a unit inside an area/tile, destroy a certain building, retrieve a unit etc. Also if you want any new ones, use the other thread.

Offline Hidiot

  • Hero Member
  • *****
  • Posts: 1018
Op2 Features
« Reply #12 on: August 11, 2009, 02:33:48 AM »
If you have the OP2 mission SDK, you can find the complete list of triggers and may get a good idea on how they work in OP2. They're in Functions.h
"Nothing from nowhere, I'm no one at all"

Offline Sirbomber

  • Hero Member
  • *****
  • Posts: 3237
Op2 Features
« Reply #13 on: August 11, 2009, 12:08:19 PM »
While they're listed in functions.h, let's help him out and explain what each trigger does:

Building Count Trigger: Counts all buildings owned by a player and compares that value to a pre-determined goal value.

Vehicle Count Trigger: See "building count trigger," replace "building(s)" with "vehicle(s)."

Count Trigger: Counts all units of a specified type (Agridomes, Scouts, etc.) for a player and compares that to a pre-determined goal value.

Attacked Trigger: I think this checks if any unit in an AI-controlled unit group is under attack, but I'm not sure.

Damaged Trigger: I think this checks if any unit in an AI-controlled unit group has been damaged, but I'm not sure.

Escape Trigger: I think this is used in the first missions and wreckage missions to check if a (number of) unit type(s) has reached a rendezvous point, but I'm not sure.

Evac Trigger: "Have enough Evacuation Transports for your population." (Note that in functions.h, the "int refValue" argument should actually be "int playerNum").

Kit Trigger: Checks if a player has a structure kit of a specific unit.  Can be in a Structure Factory or a ConVec.

Midas Trigger: Ends the game after X ticks; whoever has the most ore in storage at that point wins the game.

One Player Left Trigger: Fires when all enemy Command Centers are no longer operational.

Operational Trigger: Similar to a Count Trigger, except it only counts operational units.  I'd imagine as such you'd only want to use it for buildings.

Point Trigger: Fires if any unit owned by the specified player enters the specified tile on the map.

Rect Trigger: Similar to a Point Trigger, but can be used to make hot spots larger than one-tile.

Research Trigger: Fires if the specified player has researched the "goal" tech.

Resource Trigger: Compares the specified resource of a specified player to a pre-determined "goal" value.  Resources include food, children, workers, scientists, common metals, rare metals, and total population.

Time Trigger Type 1: Fires after a specified number of ticks (marks * 100) has passed.

Time Trigger Type 2: Similar to a Type 1 Time Trigger, except a "minTime" and a "maxTime" are specified and the trigger fires somewhere in between the two values.

Set Trigger: Used to check if multiple triggers have fired.  Can set how many conditions need to be met for this trigger to fire.  Campaign example: "Launch the Fusion Drive Module OR the Fueling Systems."

Special Target: Used to mark special unit objectives, such as in Eden/Plymouth 4.  Bringing a specific unit type (example: Scout) next to the side of the Special Target unit results in this trigger being fired.

Get Special Target Data: Not a trigger, but goes with the Special Target trigger.  Used to determine which unit caused the Special Target trigger to fire, so you can do something special to that unit if you want (like add cargo to it).
"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