Updating the Experimentor Outpost

Creation, discussion, and balancing of game content such as techs, buildings, ship parts.

Moderators: Oberlus, Committer

Message
Author
User avatar
Sloth
Content Scripter
Posts: 685
Joined: Sat Mar 17, 2007 12:28 am

Updating the Experimentor Outpost

#1 Post by Sloth »

Next thing on my TODO list is updating the experimentors. They were added by BigJoe when the AI was more or less non-existend to give the player something to fight against. Now that the AI went from zero to hero the experimentor outpost is just one (of 3) win conditions.

In order to better fit its new role, i want to make some changes with the following goals:

1. Less roaming monsters. At least weaken the worst case (like spitting out 5 Black Krakens and 5 Bloated Juggernaughts each turn!).

2. Add more defense (immobile monsters and planetary upgrades).

3. Maybe add something cool/unique (ideas welcome)?

What do you think?
All released under the GNU GPL 2.0 and Creative Commons Attribution-ShareAlike 3.0 licences.

User avatar
MatGB
Creative Contributor
Posts: 3310
Joined: Fri Jun 28, 2013 11:45 pm

Re: Updating the Experimentor Outpost

#2 Post by MatGB »

In my next push I've added a bit to give them shields equal to their start turn, and defences equal to that divided by 5, the former partially so that I know what the start turn is now it's random but both because they ought to have something, "winning" by sneaking some troop ships in when they send some krakens out always feels cheap.

Definitely up for improving their gameplay experience, and it'd be nice to have a 'difficulty setting' for them so I can make them really difficult to defeat but a new player can turn them off completely, etc.

Your ideas look fine, definite use for the Warden I'd say, that's not currently in use and should be.
Mat Bowles

Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

Morlic
AI Contributor
Posts: 296
Joined: Tue Feb 17, 2015 11:54 am

Re: Updating the Experimentor Outpost

#3 Post by Morlic »

If you are at that, I think it would make sense to give the planet quite some high values to ensure a good fight.

The values you suggest seem not to make much of a difference. Let's say it is about 400 shields and 80 defense.
A standard shattered asteroid hull at lategame has about 200 attack (7 DR4 = 210) and 300 structure (9 rock armour plates) and 20 shield (MSS+5 base).
So a single one of these ships would be able to beat the experimentors in one turn. It is not different to just sneaking troop ships in at all. Just send in troop ships + 1 flagship...


So in order to make the victory non-trivial I suggest values in the order of 100k shields and 500 defense. This way you have to send an actual decent fleet and also siege the planet for some turns. This seems perfectly reasonable to me assuming it is meant to finish the game.
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13603
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Updating the Experimentor Outpost

#4 Post by Geoff the Medio »

Special effects should be considered, such as effects that reduce empires' ships' shields, structure, and weapon damage meters.

Eg. add to the Experiment Outpost building:

Code: Select all

        EffectsGroup
            scope = And [
                Ship
                OwnedBy affiliation = AnyEmpire
                Armed
                InSystem id = Source.SystemID
            ]
            effects = [
                SetShield value = Value - 40
                SetDamage partname = "SR_WEAPON_1_1" value = Value - 10
                SetDamage partname = "SR_WEAPON_1_2" value = Value - 10
                SetDamage partname = "SR_WEAPON_1_3" value = Value - 10
                SetDamage partname = "SR_WEAPON_1_4" value = Value - 10
                SetDamage partname = "SR_WEAPON_2_1" value = Value - 10
                SetDamage partname = "SR_WEAPON_2_2" value = Value - 10
                SetDamage partname = "SR_WEAPON_2_3" value = Value - 10
                SetDamage partname = "SR_WEAPON_2_4" value = Value - 10
                SetDamage partname = "SR_WEAPON_3_1" value = Value - 15
                SetDamage partname = "SR_WEAPON_3_2" value = Value - 15
                SetDamage partname = "SR_WEAPON_3_3" value = Value - 15
                SetDamage partname = "SR_WEAPON_3_4" value = Value - 15
                SetDamage partname = "SR_WEAPON_4_1" value = Value - 20
                SetDamage partname = "SR_WEAPON_4_2" value = Value - 20
                SetDamage partname = "SR_WEAPON_4_3" value = Value - 20
                SetDamage partname = "SR_WEAPON_4_4" value = Value - 20
            ]

User avatar
Vezzra
Release Manager, Design
Posts: 6102
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Updating the Experimentor Outpost

#5 Post by Vezzra »

While you are at it, please consider that since the introduction of the experimentors scripted universe generation and scripted turn events have been implemented. There are probably several things that now could be done better/more flexibly via these Python scripts (e.g. placement of the experimentors during universe generation instead of during turn 1, better handling of switching starlanes and so on).

If you miss any interface functions, just ask, if possible I'll try to add them.

User avatar
Sloth
Content Scripter
Posts: 685
Joined: Sat Mar 17, 2007 12:28 am

Re: Updating the Experimentor Outpost

#6 Post by Sloth »

MatGB wrote:Your ideas look fine, definite use for the Warden I'd say, that's not currently in use and should be.
That's true. I will try to find a good spawning rate and time for them.
Morlic wrote:If you are at that, I think it would make sense to give the planet quite some high values to ensure a good fight.

The values you suggest seem not to make much of a difference. Let's say it is about 400 shields and 80 defense.
A standard shattered asteroid hull at lategame has about 200 attack (7 DR4 = 210) and 300 structure (9 rock armour plates) and 20 shield (MSS+5 base).
So a single one of these ships would be able to beat the experimentors in one turn. It is not different to just sneaking troop ships in at all. Just send in troop ships + 1 flagship...

So in order to make the victory non-trivial I suggest values in the order of 100k shields and 500 defense. This way you have to send an actual decent fleet and also siege the planet for some turns. This seems perfectly reasonable to me assuming it is meant to finish the game.
I totally agree with you Morlic. A Cosmic Dragon has a structure of 50k. The experimentor outpost should have at least as much as that. In my testings i found out that planetary shields are capped at 65.5k (16 bit integer) though, but that should be enough.

I also plan to give them a good regeneration rate (i'm testing 10 per turn for shields and defense).

Troops and Detection will also get a big bonus.
Geoff the Medio wrote:Special effects should be considered, such as effects that reduce empires' ships' shields, structure, and weapon damage meters.
Your script will render most of the weapons useless (all but 5 of them). Was that intended?
I see a problem in warning the players about these scripts (the species description is not a good place). But maybe we can add a special monster that has the scripts attached. This way the monster can become something like the first barrier that has to be destroyed.
Vezzra wrote:While you are at it, please consider that since the introduction of the experimentors scripted universe generation and scripted turn events have been implemented. There are probably several things that now could be done better/more flexibly via these Python scripts (e.g. placement of the experimentors during universe generation instead of during turn 1, better handling of switching starlanes and so on).

If you miss any interface functions, just ask, if possible I'll try to add them.
I haven't used python before. I'll save starting to toy with it for later. But i do have some ideas for turn events (i hope someone creates an event as an example).
All released under the GNU GPL 2.0 and Creative Commons Attribution-ShareAlike 3.0 licences.

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13603
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Updating the Experimentor Outpost

#7 Post by Geoff the Medio »

Sloth wrote:Your script will render most of the weapons useless (all but 5 of them). Was that intended?
Yes, as a suggestion to consider.

Edit:
Sloth wrote:...planetary shields are capped at 65.5k (16 bit integer)...
Actually:

Code: Select all

const float Meter::LARGE_VALUE = static_cast<float>(2 << 15);

User avatar
Vezzra
Release Manager, Design
Posts: 6102
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Updating the Experimentor Outpost

#8 Post by Vezzra »

Sloth wrote:(i hope someone creates an event as an example)
I originally intended to do that after revising the server-side Python interface - by rewriting the experimentors and implementing some of their functionality with turn events ;)

As that's going to take quite a while (current ETA maybe during summer, probably later) and you intend to take on that task anyway, I'll suggest you go ahead, and when I've finished the other stuff I'm working on now I'll join your efforts and migrate some of the exerimentor implementation to the Python scripts where appropriate.

User avatar
Dilvish
AI Lead and Programmer Emeritus
Posts: 4768
Joined: Sat Sep 22, 2012 6:25 pm

Re: Updating the Experimentor Outpost

#9 Post by Dilvish »

Sloth wrote:I also plan to give them a good regeneration rate (i'm testing 10 per turn for shields and defense).
In this context, 10 per turn sounds pretty tiny to me.
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
Sloth
Content Scripter
Posts: 685
Joined: Sat Mar 17, 2007 12:28 am

Re: Updating the Experimentor Outpost

#10 Post by Sloth »

Here is my current state:

Changes:
- Reduced the size of monster fleet spawns by about 40% (i.e. 5 black krakens -> 3 black krakens).

Additions:
- The following effect was added to the experimentor outpost building:

Code: Select all

        EffectsGroup
            scope = And [
                    Object id = Source.PlanetID
                    Planet
            ]
            effects = [
                SetMaxShield value = Value + 60000
                SetMaxDefense value = Value + 200
                SetMaxTroops value = Value + 300
                SetDetection value = Value + 100
                // Regeneration
                SetDefense value = Value + 10
                SetShield value = Value + 50
            ]
- The experimentor outpost ship (that builds the oupost and then destroyed itself) was changed to stay, has a structure of 1700 and got the following effect:

Code: Select all

            EffectsGroup // Render most shields and most of the weapons useless
            scope = And [
                Ship
                OwnedBy affiliation = AnyEmpire
                InSystem id = Source.SystemID
            ]   
            effects = [
                SetShield value = Value - 18
                SetDamage partname = "SR_WEAPON_1_1" value = Value - 10
                SetDamage partname = "SR_WEAPON_1_2" value = Value - 10
                SetDamage partname = "SR_WEAPON_1_3" value = Value - 10
                SetDamage partname = "SR_WEAPON_1_4" value = Value - 10
                SetDamage partname = "SR_WEAPON_2_1" value = Value - 10
                SetDamage partname = "SR_WEAPON_2_2" value = Value - 10
                SetDamage partname = "SR_WEAPON_2_3" value = Value - 10
                SetDamage partname = "SR_WEAPON_2_4" value = Value - 10
                SetDamage partname = "SR_WEAPON_3_1" value = Value - 15
                SetDamage partname = "SR_WEAPON_3_2" value = Value - 15
                SetDamage partname = "SR_WEAPON_3_3" value = Value - 15
                SetDamage partname = "SR_WEAPON_3_4" value = Value - 15
                SetDamage partname = "SR_WEAPON_4_1" value = Value - 20
                SetDamage partname = "SR_WEAPON_4_2" value = Value - 20
                SetDamage partname = "SR_WEAPON_4_3" value = Value - 20
                SetDamage partname = "SR_WEAPON_4_4" value = Value - 20
            ]
The outpost ship was also renamed to Experiment Zero (but i wasn't able to force the name on the monster, only the monster type) and i used the icon of the "sea anemone ship" by adrian here: viewtopic.php?f=10&t=7806.
It has the new description:

Code: Select all

An ancient creation of the Experimentors that reduces shields and damage. 

Experiment Zero was sent to this galaxy to guard the outpost of the Experimentors with its unique abilities. While it does not attack directly it consists of quadrillions of diminutive units that fill the whole space of the system and hamper enemy shields and weapons to the point that all but the very best equipment will be ineffective.
The creation and removal of star lanes is not affected by Experiment Zero.
All released under the GNU GPL 2.0 and Creative Commons Attribution-ShareAlike 3.0 licences.

User avatar
Sloth
Content Scripter
Posts: 685
Joined: Sat Mar 17, 2007 12:28 am

Re: Updating the Experimentor Outpost

#11 Post by Sloth »

I've created a pull request for this update.
All released under the GNU GPL 2.0 and Creative Commons Attribution-ShareAlike 3.0 licences.

User avatar
Sloth
Content Scripter
Posts: 685
Joined: Sat Mar 17, 2007 12:28 am

Re: Updating the Experimentor Outpost

#12 Post by Sloth »

Bump!

One week without comments. Pull?
All released under the GNU GPL 2.0 and Creative Commons Attribution-ShareAlike 3.0 licences.

User avatar
MatGB
Creative Contributor
Posts: 3310
Joined: Fri Jun 28, 2013 11:45 pm

Re: Updating the Experimentor Outpost

#13 Post by MatGB »

I'm unsure on some of it, I've just finished a game I wanted to test something else with, so I'm going to pull it onto my machine and play through a quick "smite the monsters" setup to see how it works in practice.

My main concern is the numbers in the ship killing effects and the way they may suck you back into wanting to ensure you've monsters of your own in orbit in a way we basically got rid of when we fixed a bunch of starlane issues.

I am tempted to pull it in even if the problems are there, we can always fix it by tweaking stuff, but I really want to test if first (I had meant to do it with the game I just finished but completely forgot to run the pull request until it was too late and just, well, got into the game).
Mat Bowles

Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

User avatar
MatGB
Creative Contributor
Posts: 3310
Joined: Fri Jun 28, 2013 11:45 pm

Re: Updating the Experimentor Outpost

#14 Post by MatGB »

Question: is it intended/is it ideal that Experiment Zero is visible very early? It definitely needs to have stealth set to either 45 or 55 not 50 though, need to write that into something to make sure it doesn't keep happening with new stuff (detection ratings are multiples of 10, stealth ratings should therefore never be multiples of 10).

Still, found them on the map now, all I have to do is setup to take them down.
Mat Bowles

Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

User avatar
Sloth
Content Scripter
Posts: 685
Joined: Sat Mar 17, 2007 12:28 am

Re: Updating the Experimentor Outpost

#15 Post by Sloth »

MatGB wrote:Question: is it intended/is it ideal that Experiment Zero is visible very early? It definitely needs to have stealth set to either 45 or 55 not 50 though, need to write that into something to make sure it doesn't keep happening with new stuff (detection ratings are multiples of 10, stealth ratings should therefore never be multiples of 10).

Still, found them on the map now, all I have to do is setup to take them down.
I must admit that i haven't thought about or changed the stealth of the experimentor outpost hull. 55 sounds better than 45 though.
All released under the GNU GPL 2.0 and Creative Commons Attribution-ShareAlike 3.0 licences.

Post Reply