Difference between revisions of "User:Geoff the Medio/Musings"

From FreeOrionWiki
Jump to: navigation, search
(CreateStarlane -> AddStarlane)
(SetStarlaneStealth)
Line 246: Line 246:
 
====SetStarlaneStealth====
 
====SetStarlaneStealth====
  
Sets the Stealth meter of a starlane.
+
Alters the Stealth meter of starlanes connected to the target system and which are connected to another system that matches the parameter <Condition>.
  
Has parameter: <Stealth>
+
Has parameters: <Stealth>, <Condition>
  
I assume that since starlanes are not universeobjects, a separate effect to set their Stealth meter is necessaryUniverseObjects' Stealth meters would presumably be set with the SetMeter effect.
+
Since starlanes are not UniverseObjects, they probably need to be accessed through the systems they are attached to, rather than directly.  If this can be changed, then this effect can be adjusted accordingly.
 +
 
 +
It will be necessary to be able to make a relative adjustment to the starlanes' Stealth meter, which might be complicatedSince the target object is actually a system, not the starlanes itself, Taraget.Stealth would be the system's Stealth meter.  Some way to access the starlane's Stealth meter is needed, so that TheStarlane.Stealth can be used for effects such as adding +10 to Stealth of a starlane.
  
 
====Rename====
 
====Rename====

Revision as of 05:14, 5 June 2005

Page Links

Buildings_Model_Quickpad
Translation_ScratchPad
Testing_Notepad
Techs.xml_in_progress
Eng_stringtable.txt_in_progress

Design

Colonization & Migration

Colonies and Races

  • Populated colonies have a set race. All population in a colony is of that single race.
  • Unpopulated colonies have no set race, or can have their set race changed by players freely.
  • Newly discovered planets may contain natives, which are of a particular race.
    • Players cannot change the race of a colony until depopulating it, so natives have to be accepted or removed for a colony to be populated with another race of a player's choosing
  • Conquered planets will contain population of the race that was on them before they were conqured

Making New Colonies

  • Colony ships can make new colonies
    • in systems where the player doesn't already have a colony
    • in systems where the player already has a colony
  • Colony ships have a set race. Colonies made with colony ships have the race that was loaded onto the ship when it was made.
  • Colony ships may have a size or capacity, depending on how ships work, which determines how many colonists fit onto the ship, and thus how many colonists are initially on new colonies made by those ships.
  • Players can build new, empty colonies on empty planets in systems where they already have a populated colony, without need for a colony ship
    • The "Build Colony" project produces an empty colony (with 0 population)
      • Takes several turns, and costs PP, like a normal build project
    • Saves the time and (higher) cost of building and moving into position a new colony ship.

Migration

  • Colonies, empty or populated, can be made Immigration Targets by their owner.
    • Immigration Targets are a sink to which population of the race of the colony can go to, after emigrating from other colonies.
  • Populated colonies can be made Emigration Sources by their owner.
    • Emigration Sources are a source from which population of the race of the colony leaves, going to other colonies
  • Population can only move from a colony to another colony that has the same population race.
    • Colonies have only a single race, which cannot be changed, unless the colony is destroyed and recolonized, or all population emigrates from the colony or is killed in some way.
    • Players can freely change the set race of colonies they own which have 0 population
  • If more than one Emigration Source or Immigration Target is available, migrants are taken from or sent to the different planets in some ratio. The ratio may depend on political or cultural factors, happiness, the existing populations of the planets or other such factors.
  • Even if playes don't manually mark a planet for emigration, the planet may be marked automatically (and uncontrollably), due to various factors such as emergencies or to-be-determined political or cultural or happiness reasons.
  • Even if players don't manually mark a planet for immigration, population may immigrate to the planet in relatively small amounts on its own, if the planet(s) involved have the appropriate race.
  • Migration may occur between different empires in some situations, to be determined. This includes both automatic and player-ordered migration, whether ordered by neither, one, or both empires' players.
  • If a player marks a planet as both an Emigration Source and an Immigration Target, the planet acts as whichever of these is most needed, given the other marked planets with the same race in the empire. If there are more planets marked as sources, the double-marked planet will be a target, and vice versa.
Migration Sequence Example
  • Planet A starts with race 1, player wants to replace with race 2.
  • Player marks planet A for emigration
  • Player picks immigration destination for race 1:
    • If player already has an unfull planet with population of race 1, player can mark this planet for immigration
    • If player doesn't have an unfull planet with population of race 1, player can use an available empty colony, setting its race to race 1 and marking it for immigration.
    • If player has no availble empty colonies,
      • If player has uncolonized planet in a system that also contains colonized planet(s) controlled by player,
        • Player orders a new empty colony constructed on this planet (no colony ship needed)
      • If player has no available uncolonized planets in systems with controlled planets,
        • Player orders or arranges for colonization of planet, specifying race of new colony in process
          • Details of this to be determined. Player might order the colonization, leaving the game to find an appropriate place to build a ship and do so and automatically move ship to new colony and do colonization, or player might manually find an appropriate place to build the colony ship and manually move it and order colonization.
      • Player sets empty colony race to race 1, and marks it for immigration.
    • On subsequent turns, immigration destination is filled with emigrants from planet A
    • Planet A's population is eventually depeted, leaving an empty colony.
    • Player changes planet A's race to race 2, and marks planet A for immigration
    • Player marks a planet populated with race 2 for emigration

Object Stealth, Visibility and Detection

All objects, specials and starlanes ("items") have a Stealth meter. Most player-owned objects have a Detection meter. A player should be able to know the Detection and Stealth meters, as applicable, of any item or object that is visilble to the player (that the player can "see").

To determine whether a player can see a particular item, a calculation is done. The basic form of the calculation is to compare the item's Stealth meter to the detecting object's Detection meter, after applying various adjustments to these meters, including adjustments for the relative positions of the item and object, situation-specific adjustments, and adjustments from effects. After these adjustments, if the detector object's Detection meter is greater than the item's Stealth meter, the owner of the detector object can see the item.

If the detector object's adjusted Detection meter is less than the item's adjusted Stealth meter, the owner of the detector object may not be able to see the item; the player does not gain the ability to see the item from the particular detector object in question, but if another detector object owned by the same player can see the item, then the player can see the item. Players cannot see items by default; items are only visible to a player if they are made visible by one or more of that player's detection objects in a given turn.

Detection and Stealth meters are capped at 0 and 100. The effective Stealth and Detection of items and detector objects are also capped at 0 and 100 (after all adjustments are made).

Each type of detectable item has a default stealth meter value. Stars might be 5, planets 10, and ships 20. Starlanes would have widely variable stealth meters, so that some lanes are easy to detect, and others are nearly undetectable. Various adjustments to item's Stealth meters would exist for gameplay purposes.

Adjustments to Stealth and Detection are calculated pairwise for each detectable item and detector object; an item might get a bonus or penaltly to Stealth when being detected by one detector object, but not for a different detector object. Detector objects similarly get case-specific bonuses to Detection for a detecting a particular item.

Adjustments to Stealth and Detection are mostly provided by effects and conditions from specials, technologies, ship parts, etc. One adjustment that always applies is the adjustment for distance:

  • +1 to Stealth for each unit of distance separating the detectable item from the detector object

Other adjustments might include things like:

  • A scanner gives its ship +5 to Detection if the detectable object is a ship
  • A stationary cloaking device gives its ship +25 to Stealth when located in a system, but no bonus if the ship is moving tha turn
  • A psychic antenna building gets +1 to Detection against planets per point of populating living on that planet for all planets within 40 distance units
  • A specialized weapons sensor that gives its ship +10 to Detection against ships that have a particular type of ship part

Normal effects may also alter objects' Detection and Stealth meters. These are applied directly to the Stealth and Detection meters, and are not dependent on the particular pair of detector object and detected item. These might include:

  • A multiship cloak generator gives +10 to Stealth for all ships in its fleet
  • A giant noisy engine gives its ship -20 to Stealth
  • A starlane cloaking building that gives +10 to Stealth to all starlanes connected to the system the building is in

If possible, but not absolutely necessary, it might be nice to be able to do "third-person" pairwise adjustments to Detection and Stealth. These would be adjustments by one object to another object's or item's Detection or Stealth meter, depending on what kind of item the second object is trying to detect or what kind of object is atttempt to detect it. This might include:

  • A fleet anti-cloak sensor-booster on a ship gives all ships in the same fleet +5 to Detection against enemy ships that are cloaked

(In this case, the bonus applies only to a ship if it is trying to detect a particular kind item, but the bonus is given by a part on another ship)

Applications

For balance purposes, large and powerful ship parts such as engines or weapons could have significant negative penalties to Stealth of the ship they are on. Specialized stealth-purpose weaponry would be more difficult and more expensive to make and would be less effective for the cost than normal weaponry, but would not have significant Stealth penalties.

Detection equipment could give bonuses to Detection against moving ships / fleets more so than stationary ones, making for some interesting cat-and-mouse dash-and-hide tactics across the galaxy map.

Cloaking technology would obviously give bonuses to Sealth. Active detection equipment would give penalties to Stealth and bonuses to Detection. Passive detection equipment would just give bonuses to Detection without reducing Stealth.

Stars that are far enough away from a player's planets and ships would not be visible. This allows for an interesting and fun revealing of the map as the player explores the galaxy.

Starlanes come with a variety of initial Stealth ratings. With technology, a player's ability to detect starlanes improves, revealing new connections between systems, with the resulting strategic consequences. Players with good lane detection might be able to escape form superior battle fleets which cannot see the lane they used to escape.

Eventually, players would gain the ability to alter starlane visiblity, giving them the ability to hide lanes and systems from other players, or to trap other players who cannot detect hard-to-see lanes. Players might eventually be able to create new starlanes, which would initially always have very low Stealth ratings.

With even more advanced technology, players could create new starlanes that have high Stealth ratings, allowing players to create an unexpected and unseen back door into a system that the system's owner cannot see.

The homeworld special could increase the Stealth rating of starlanes near the homeworld for all empires other than the homeworld's owner. This would make it hard to rush and kill an empire's homeworld right at the start of the game; it would be necessary to first research and build some basic starlane detection equipment for the invasion fleet.

Since item visiblity is determined each turn, a player might be aware of an object or starlane on one turn and then not on the next. If starlanes sometimes randomly or slowly change their visibility over time, or are sometimes destroyed unexpectedly by random events, the player would not know whether a previously visible starlane suddenly disappearing was due to its visilbity changing naturally, the lane being destroyed naturally, the lane being cloaked by an enemy ship in order to prevent the player form using it, or the lane being destroyed by an enemy ship.

Another always-on adjustment could be to give ships a bonus to Detection that increases with time if they stay in a system for several turns without moving. This would give a player a choice while exploring: to stay in a system for a few turns to get a bonus to Detection and possibly see specials or hidden items, including starlanes, or to keep moving and explore more systems less thoroughly.

Players could trade starlane maps with other empires. The trade could specify that information about starlanes only of a certain visiblity level are included in the trade (players are able to know the visibility rating of any item they can see).

Hiding all the lanes surrounding your systems would be a new strategy, which could counter another player's big powerful ships. If the player cannot get big powerful ships to systems to attack them, they are useless.

Starlane Construction / Destruction

  • With appropriate advanced tech, players can create and destroy starlanes
  • Ships travelling on a starlane when it is destroyed are lost
    • Players can set up traps for enemy fleets: Lure them onto a long starlane and destroy it as they travel along it
  • If a starlane was previously known to a player, and it is hidden or destroyed, the player cannot tell which has occured if they did not have ships on the lane at the time
  • Starlanes can be made with varying levels of visiblity
    • Less visible starlanes require higher tech levels to create
    • It is more expensive to create a harder-to-detect starlane
      • Making a cheap obvious starlane has logistical benefits to provide shortcuts for supply or trade or moving troops
      • Making an expensive hidden starlane has much greater tactical benefits, as you can attack without warning from a surprise direction that an enemy did not expect

Partial set of Effects for this purpose here: User:Geoff_the_Medio/Musings#SetStarlaneVisibility

Ship Speed

  • Large powerful ships have much slower movement speeds and cost much more to move around than small ships
    • Creates important roles for small, medium and large ships
      • Small ships scout (like frigates, destroyers)
      • Medium ships project force rapidly (eg. cruisers)
      • Large ships are moved deliberately and carefully (eg. battleships, carriers).
      • Keeping large ships around home for defence is the cheapest, until you can pin down the enemy and know you won't waste too many resources moving your large fleet to destroy them
    • Large fleets that move slow are easier to catch on a starlane when you destroy it, destroying the fleet
      • To be fully safe, secure both ends of the starlane with cruisers / destroyers before risking sending your big ships across

Ship Cloaking

See above #Object Stealth, Visibility and Detection

  • Could make cloaking require ships to travel more slowly than they otherwise would / could in order to stay cloaked
    • Provides a nice tradeoff to using a cloak, in addition to cost and fuel (if applicable)
  • Travelling on a starlane unknown to another player, while cloaked, ensures complete secrecy of fleet movements, though is quite expensive to be able to do, as you must research the necessary cloak and lane detection technology, as well as build ships with cloaks and move more slowly and more expensively than other ships.


Espionage

If some concept of leaders exists, spies could assassinate enemy leaders, as has been done in other games. But later, with improved espionage tech, spies could impersonate and replace leaders, without the other empire knowing, in a manner similar to Face Dancers in the Dune series, or Changelings from ST:DS9. How this would work in practice would depend on how and what leaders do.

UI-Effects Integration

Many effects would be much more useful in-game if there were conditions available to base their scope, activation and <Condition> parameter values on user-input.

A unified interface mechanism is likely desirable.

The fleet-movement destination UI system might be a basis for this system, though there should be stronger feedback to user commands.

Examples

  • A "Starlane Hiding Ship" can activate its effect to make nearby starlanes harder to see.
    • In the fleets window, the ship's box (which the correct fleet is selected) would have an "ACTIVATE" button that would cause the effect to begin firing.
    • When clicked, and in subsequent turns, the button would change to "DEACTIVATE", and would cause the effect to stop if pressed.
    • There would also be some text on the ship's box to indicate the status of the effect (independent of the UI button to change that status). Possible states could include:
      • Inactive - Ship did not use effect in the previous turn and will not use effect in the next turn
      • Activating - Ship did not use effect in the previous turn, but ACTIVATE has been clicked, and the ship will start using the effect in the next turn
      • Active - Ship used effect in the previous turn, and will continue to use effect in the next turn
      • Deactivating - Ship used effect in the previous turn, but DEACTIVATE has been clicked, and the ship will stop using the effect in the next turn
  • A "Planet Killer Ship" can activate its effect to destroy a planet
    • In the fleets window, the ship's box would have "FIRE" (not "ACTIVATE", which is for continuous while on effects) that would case the effect to fire once, in the subsequent turn processing.
    • After clicking "FIRE", the cursor would change to a targetting crosshair, and the user would select a planet in the system to target.
    • There would also be some text on the ship's box to indicate that the effect is firing or not:
      • Inactive - Ship not ordered to fire during next turn
      • Firing: <Target> - Ship ordered to fire during next turn, with target planet name indicated
    • There might also be an icon next to the targetted planet to indiacate that the planet has been targetted by an effect by the player. When clicked, all effects that are expected to fire on the building in the next turn would be listed, with hyperlinks to the effects' respective source objects.
  • A "BIG GUN" building can fire on one enemy fleet within range every 10 turns. ** The user must activate the building, then select the enemy fleet.
      • The system sidepanel might show the buildings in a special Buildings-View, similar to the fleets view.
      • Alternatively, a "Buildings Window" could pop up, just like the fleets window, not attached to the sidepanel, showing all buildings in a system.
        • This could be used for more than just effects targetting
        • The buildings could be grouped by planet, in a manner equivalent to grouping by fleet for ships
        • The buildings could be just listed, not grouped as fleet, to avoid extra clicking. In this case the planet on which the building is located would need to be indicated on the building's box.
    • Whether in a separate fleets window, or on the system sidepanel, the firing UI of a building would work the same as the above description for a targetted ship...
      • Except that the target fleet is selected on the galaxy map, at a distance, rather than by clicking on a planet in the sidepanel
    • The fleet should be marked as targetted, perhaps with an icon in the UI.
      • Clicking the icon should provide a list of all objects owned by the player that are targetting the object in question, as with the fleets targetting example above, except that the icons appear on the galaxy map for targetted fleets, rather than next to individual targetted planets.

Targetted Condition

This condition would match the object that is targetted by the source object.

Future Effects

On Buildings Model Quickpad

Some new effects are listed on the Buildings Model Quickpad.

MoveObject

Moves an object to the location of another object.

Has parameter: <Condition>

The target object is moved to the location of the object(s) matching <Condition>. If more than one object matches <Condition>, the target object may move to the location of any of them (preferably randomly, but may be implemented arbitrarily).

If a ship is moved, a new fleet should be created containing the ship. If several ships are moved, ships should be in fleets at the new with the same ships they were in fleets with before they moved (excluding ships that didn't move).

If a planet is moved, there must be an empty planet slot in the new location. If not, the planet could either not move, or be destroyed, or a planet at the new location could be destroyed and replaced with the new planet.

(Similar issues for buildings will also need to be considered)

AddStarlane

Add starlane(s) to the target system, connecting to systems that match the parameter <Condition>, with specified starlane Stealth meter value.

Has parameters: <Condition>, <Stealth>

This condition is used to select one of the endpoint systems of the starlane(s) to be added. The other endpoint is the target system of the effect.

This effect adds starlane(s) to the target system, connecting to all systems that are matched by <Condition>. (With the suggested Number condition, a single endpoint system can be selected). The added starlane has a Stealth meter with value specified by the <Stealth> parameter.

If a starlane already exists between target object and an object matching <Condition>, that object is ignored (no new starlane or change to existing starlane occurs).

RemoveStarlane

Removes starlanes connected to the target system, and matching the parameter condition.

Has a parameter: <Condition>

All starlanes with one end at the target system, and the other end at a system matching <Condition> are removed.

If a fleet is on a starlane that is destroyed, the fleet should also be destroyed.

SetStarlaneStealth

Alters the Stealth meter of starlanes connected to the target system and which are connected to another system that matches the parameter <Condition>.

Has parameters: <Stealth>, <Condition>

Since starlanes are not UniverseObjects, they probably need to be accessed through the systems they are attached to, rather than directly. If this can be changed, then this effect can be adjusted accordingly.

It will be necessary to be able to make a relative adjustment to the starlanes' Stealth meter, which might be complicated. Since the target object is actually a system, not the starlanes itself, Taraget.Stealth would be the system's Stealth meter. Some way to access the starlane's Stealth meter is needed, so that TheStarlane.Stealth can be used for effects such as adding +10 to Stealth of a starlane.

Rename

Sets the name of an object.

Has a parameter <Name>, which is a string.

Object names, before the effect executes, such as Target.Name or Source.Name, should be accessible and usable in the name, allowing modifications and additions to names, such as prepending "Ruins of " before a planet name. Simple fixed strings should also be valid names.

Future Conditions

On Buildings Model Quickpad

Some new conditions are listed on the Buildings Model Quickpad.

Targetted

The Targetted Condition is mentioned above.

Number / Sorted

It would be useful to be able to pick some number of objects that meet some other condition, or the top or bottom some number of objects sorted by some numerical criteria.

For example, I might want to fire an effect on at most 3 planets per turn. If 3 or fewer are available, all are fired upon. If 4 or more are available, then 3 are randomly selected.

Alternatively, I might want to fire on the top 5 planets by population in the galaxy.

Whether these should be done as one condition with a subcondition or as two or more similar conditions, I'm not sure.

ContainedWithin

Ways to filter objects based on whether other objects meet conditions would be useful. For example, one might want to:

  • Delete all ships in systems that have a planet of type Barren and is owned by a the source empire
  • Add +1 to farming to planets that are in systems that have a particular special
  • Do something to ships contained within the same fleet as a ship

To do these, a condition that checks whether objects are contained within objects that meet some other condition would be useful: Ships and planets are contained within systems, and ships are contained within fleets.