User:Geoff the Medio/Musings

From FreeOrionWiki
< User:Geoff the Medio
Revision as of 16:48, 17 October 2005 by Geoff the Medio (Talk | contribs) (Future Effects: (Stockpiles / SetEmpireStockpile extention))

Jump to: navigation, search

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.
  • Making colony ships costs PP, like any other ship, but may also cost Trade, representing your influence, depending on the race you want to put in the ship, the availability of population of that race to fill the ship, and how far the ship is being built from the source planet(s) of that race
  • 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 any other 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.
  • Getting population to migrate may cost Trade, representing influence you have over your population. The distance of migration, and desire of population to do the migration affect this cost.
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

Moved to: User:Geoff_the_Medio/Ships#Ship_Speed

Ship Cloaking

Moved to: User:Geoff_the_Medio/Ships#Ship_Cloaking

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.

Micromanagement

Often detailed micromanagement is fun and interesting at the start of a game, when there are relatively few planets / cities to deal with and the player has more attention to spend on each, and thus cares more about each individually. Having lots of details and decisions for each city / planet at this time is good. However, the same level of micromanagement at the end of a game when there are dozens or hundreds of planets / cities bogs down the player and is tedious, rather than enjoyable.

As such, it is desirable to vary the amount of micromanagement each city / planet needs from a player during the game, from a lot at the start, to very little or none at the end.

In order to do this, using automation is not an ideal solution. It is better to actually vary the amoutn of micromanagement that is possible.

This could be done by having a number of things for the player to build and decide at the start of the game, which are still relevant later in the game, but which can only be decided a limited number of times or for a limited time at the start of the game.

This could be done by making available various buildings at the start of the game, but limiting the number of each buidling that can be made. At the start, the player would have lots of decisions to make about which buildings to build, and where. Later, the buildings would all be built, and the player wouldn't have any more of these buildings to make.

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 all ships of a fleet move, the net effect should be as if the fleet had been moved with a single effect.

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.

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.

SetEmpireStockpile Extention

Adds a new parameter <max>, which is boolean.

<Effect::SetEmpireStockpile>
   <stockpile>STOCKPILE</stockpile>
   <value>VALUE</value>
   <max>MAX</value>
</Effect::SetEmpireStockpile>

If <max> is 0, then the effect acts as it does not, changing the empire's current stockpile amount of the relevant resource.

If <max> is 1, then the effect sets the maximum stockpile amount of the relevant resource for the empire. If the maximum stockpile is 0 (or any -ve number) then it is considered to be not stockpilable.

Likely most resources would start out not sockpilable, and be made stockpilable by various buildings / techs over the course of the game. All resources (food, minearls, trade, research, industry) should be treated equally as potentially stockpilable by the code, and if the designers decide that, for example, research shouldn't be stockpilable, then there would be no buildings or techs that increase the default max stockpile amount of research above 0 in the game.

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.

Strategic Resources

Ala Civ3, various buildable items (buildings, ship components) should require strategic resources to be available to the empire building the items, and the resource should be available (directly or via unblocked trade routes) to the actual location at which building is occurring.

With later tech advances however, synthetic / replacement sources of various strategic resources chould become available.

Strategic resources could be either on/off like Civ3, or of fixed per turn output which limits how many items can be built using that resource in a given turn. Strategic resources should probably not be stockpilable, as this would effectively make the difficult-to-get regular resources (like industry, minerals, food, trade/influence, and research) which would be too complicated and require too much micromanagement.

If an empire has access to a resource, perhaps they should then has as much of it as they want, unlike the Civ3 system in which each source of the resource can be used by one civ, and additional sources an empire has access to can be traded. This is somewhat odd, as one source is enough for any amount a single empire wants to use, but two empires each building anything requires two separate resources. If resources are infinite capacity, fine, or if they are fixed capacity, fine, but they shouldn't be both inconsistently.

Various items could either require a resource to be available to have any PP put towards the project on a given turn, or could treat the availability of a resource as a bonus of some sort, perhaps increasing the allowed PP / turn that can be spent on a project and thereby allowing it to be built faster than normal, or alternatively by multiplying the actual PP spent, reducing the effective cost / turn but not changing the time taken to build the item.