Discussion thread for Ingo Schwarze's patch

For what's not in 'Top Priority Game Design'. Post your ideas, visions, suggestions for the game, rules, modifications, etc.

Moderators: Oberlus, Oberlus

Message
Author
User avatar
Oberlus
Cosmic Dragon
Posts: 2157
Joined: Mon Apr 10, 2017 4:25 pm

Discussion thread for Ingo Schwarze's patch

#1 Post by Oberlus » Thu Nov 08, 2018 9:41 am

I'm taking the liberty of opening a discussion thread for Ingo Schwarze's patch on github.

Copied from the PR:
User-visible additions:

Make eight existing technologies researchable: Remote Colonization,
Self Defense, Predictive Stockpiling, Galactic Exploration,
Armor Plating, Aggression, Optical Scanner, and Deception.
Provide eight new researchable technologies: Outpost Automation,
Ship Construction, Small Ship Hulls, Medium Ship Hulls, Large Ship Hulls,
Small Organic Hull, Flak, and Invasion.
Let three existing technologies that used to be Theoretical Prerequisites
provide an actual benefit: Asymptotic Materials, Genetic Engineering,
and Domesticated Mega-Fauna.
Two new capital city buildings, Imperial Gardens and Imperial Workshops,
to allow meaningful early use of production points, to facilitate
alternative strategies relying less on early colonization, and to
partially compensate the slowing down effect of the present changes.
One new ship hull, the Small Organic Hull,
to allow meaningful early choice in ship research.

User-visible removals:

Provide neither a Basic Shipyard nor an Orbital Drydock on the home world.
Reduce the starting fleet to a single Scout,
providing neither a Colony Ship nor a warship.
Do not unlock the Basic Shipyard nor the Orbital Drydock at game start.
Do not unlock the three Basic Hulls at game start.
Do not unlock the Outpost Module, Colony Pod, Extra Fuel Tank,
Optical Scanner, Mass Driver, Flak, and Ground Troop Pod at game start.

User-visible balancing changes:

Reduce the research cost and time of the Spatial Flux Bubble
and do not require an Orbital Drydock to build it,
to allow meaningful early choice in ship research.
Besides, it's a dead end anyway, so making it cheap seems logical.
Require Large Ship Hulls as a dependency of Military Robotic Control:
it was excessively strong and cheap.
Ignore fleet movement orders during the first turn,
such that players following the tutorial aren't at a disadvantage.

Text additions:

New Pedia category Tutorial below Guides.
Eight new Pedia articles below Tutorial Guides.
One new Pedia guide: Researching Technologies,
Add a short in-game text to GREETINGS_GUIDE_TEXT.
New SitRep category TUTORIAL_HINTS.
Four new sitreps SITREP_TUTORIAL_PRODUCTION_* generated in C++ code:
INTRO, YARD, SHIP, and COLONY.
Four new SITREP_TUTORIAL_* sitreps generated with scripted effects:
FLEET_INTRO, FOCUS, COLONY_POD, and OUTPOST_POD.

Text improvements:

More information and clarity in GENERAL_PEDIA_REFERENCE
and DETAILED_PEDIA_REFERENCE.
Friendlier and more concise SITREP_WELCOME.

Related technical changes:

New GenerateSitrepMessage parameter "maxshow" to limit the number
of times the sitrep is shown to each player; typically used
as "maxshow = 1" to show the setrep only once to each player.
Since the factory needs to store the information whom it has already
shown itself to but ::Execute() is const, somewhat uglily store
that information in an allocated sub-object on the heap.
Move some setup scripts that were misplaced in SHP_GAL_EXPLO
to their own files.
Provide a new non-researchable base technology DETECT_0.
Teach the new technologies to the classical ResearchAI.
Minimally teach the new buildings to the ProductionAI.
Thoughts?

User avatar
EricF
Space Dragon
Posts: 354
Joined: Fri Jul 29, 2016 10:12 am

Re: Discussion thread for Ingo Schwarze's patch

#2 Post by EricF » Thu Nov 08, 2018 4:21 pm

I don't see any need to complicate the early game, but that's just my opinion.
I can see how others might like it so I would suggest that if you make the
changes that you make them optional. Master of Orion II had options to start
a game as Pre-warp, Average or Advanced. Something like that would be good.

User avatar
Oberlus
Cosmic Dragon
Posts: 2157
Joined: Mon Apr 10, 2017 4:25 pm

Re: Discussion thread for Ingo Schwarze's patch

#3 Post by Oberlus » Thu Nov 08, 2018 4:41 pm

EricF wrote:
Thu Nov 08, 2018 4:21 pm
[...] make them optional. Master of Orion II had options to start
a game as Pre-warp, Average or Advanced. Something like that would be good.
Agree.
In MOO2 I usually used Pre-Warp, that would correspond with this proposed patch, I think.
Using game rules for this (i.e. having more or less techs, buildings and ships at start) seems straightforward.

User avatar
EricF
Space Dragon
Posts: 354
Joined: Fri Jul 29, 2016 10:12 am

Re: Discussion thread for Ingo Schwarze's patch

#4 Post by EricF » Thu Nov 08, 2018 5:05 pm

Yes, I always went Pre-Warp too, but that was only because the game
would make stupid decisions for you about what techs you would choose.
Hopefully that can be avoided here. :)

ischwarze
Space Krill
Posts: 6
Joined: Thu Nov 08, 2018 5:25 pm

Re: Discussion thread for Ingo Schwarze's patch

#5 Post by ischwarze » Thu Nov 08, 2018 5:46 pm

EricF: I don't see any need to complicate the early game
:

The PR only contained the technical summary from the commit message, lacking the actual rationale that was in the original submission, so i'm reposting the high-level rationale here for easy reference:

The idea of the following patch is to:

1. Allow more choice for the player during the earliest phase of the game,
more efficiently using the existing technologies, buildings, and ship
components for actually playing with them in FreeOrion style, rather than
just getting them revealed up front, with no choice to be made.

2. Provide an integrated tutorial. This is intricately linked to goal 1
above. When game concepts are revealed one by one, an integrated tutorial
arises very naturally. When everything is available from the start,
the player needs to use all of the interface in turn 1, and integrating a
tutorial becomes very hard.

Even though the size of the patch is not small, it closely sticks to the
existing FreeOrion concepts, technologies, and objects, merely better
exploiting them in the starting phase - and a substatial part of it is
tutorial text. I already enjoyed playing a couple of test games with
these enhancements, and my experience is that strategies become more
varied and in particular more markedly different for research-focussed
versus industry-focussed species and for starting surroundings with
different properties. All the same, with the minimal adjustments
included in the patch, the AI deals with it pretty well, following
the classic strategy, which is still completely viable though maybe
not totally optimal in some situations - but the AI is hardly playing
an optimal strategy anyway, but rather a very solid and robust one.

To give just one example of how differently games can evolve, depending on the situation: in one test game, i played a "colonization rush" strategy and had the complete tutorial (all seven parts) finished before turn 20. In another test game, i played a military strategy, capturing three nearby native planets and one nearby planet belonging to an AI player first and only reached tutorial step 06 in turn 60 and tutorial step 07 in turn 70 - yet by turn 75, i had four inhabited colonies and three additional outposts in the process of constructing colony buildings. In a third test game, i was too careless with defense and got myself rushed and killed by an AI player who arrived very early with exactly the right amount of warships and troops. So this really helps to improve the variety of strategies and game developments in the beginning of the game.
EricF: I would suggest that if you make the changes that you make them optional.
I don't object to that proposal at all, actually, i half expected it. And indeed, that allows even more choice and variety for players. I just need to figure out how to implement such a starting option, but I'm sure that can be done. I'll look into Geoff's comments first, though, then consider the option.

ovarwa
Space Kraken
Posts: 122
Joined: Thu Dec 11, 2014 3:22 am

Re: Discussion thread for Ingo Schwarze's patch

#6 Post by ovarwa » Fri Nov 09, 2018 8:16 pm

Hi,

As is so often the case, there's a tradeoff between choices for players and problems for the AI.

Just saying.

Anyway,

Ken

ischwarze
Space Krill
Posts: 6
Joined: Thu Nov 08, 2018 5:25 pm

Re: Discussion thread for Ingo Schwarze's patch

#7 Post by ischwarze » Sun Nov 11, 2018 1:14 am

ovarwa wrote:
Fri Nov 09, 2018 8:16 pm
As is so often the case, there's a tradeoff between choices for players and problems for the AI.
Just saying.
That is certainly true in general. However, as mentioned, and as both test playing and inspecting the AI_*.log files demonstrates, in this particular case, the amount of additional work caused for the AI is minimal, and the AI already copes well with the very trivial patches included, and it is easy to see how it can be further improved without too much work. Unlike in the case of travelling off starlanes, in this case, the search tree that the AI has to cover becomes only slightly larger, in a linear, i.e. easily manageable way.

Ophiuchus
Programmer
Posts: 1270
Joined: Tue Sep 30, 2014 10:01 am
Location: Wall IV

Re: Discussion thread for Ingo Schwarze's patch

#8 Post by Ophiuchus » Mon Nov 12, 2018 12:00 pm

With a choice between different starting points micromanagers could be "forced" to choose the earlier (maybe more repetative?) start in order to make more headway compared to AI.

Probably that is a framing problem only..

If the old setting is just one of multiple scenarios one can choose at the beginning, one would hopefully think of the different scenarios in terms of unrelated games, so choosing one over the other would not be an "optimization". So we probably should take care that we word/present such a choice like that.
Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

Furthermore, I propse... we should default to four combat rounds instead of three ...for the good of playerkind.

User avatar
Oberlus
Cosmic Dragon
Posts: 2157
Joined: Mon Apr 10, 2017 4:25 pm

Re: Discussion thread for Ingo Schwarze's patch

#9 Post by Oberlus » Mon Nov 12, 2018 12:36 pm

Ophiuchus wrote:
Mon Nov 12, 2018 12:00 pm
With a choice between different starting points micromanagers could be "forced" to choose the earlier (maybe more repetative?) start in order to make more headway compared to AI.
I don't think that is the case. Playing against AI you already have the advantage. Getting more advantage is just more boring.
In MOO2 higher difficulties AIs could beat you easily if you don't do the best choices. In FO AI does not have the cheats that MOO2 provided for them.

The benefits of this patch is for multiplayer settings, for which this caveat does not apply.

And, as already said, this would be optional.

Ophiuchus
Programmer
Posts: 1270
Joined: Tue Sep 30, 2014 10:01 am
Location: Wall IV

Re: Discussion thread for Ingo Schwarze's patch

#10 Post by Ophiuchus » Tue Nov 13, 2018 8:54 am

Oberlus wrote:
Mon Nov 12, 2018 12:36 pm
The benefits of this patch is for multiplayer settings, for which this caveat does not apply.
ischwarze stated that the aim is "1).. during the earliest phase of the game,
more efficiently using the existing technologies," and "2) provide a tutorial".

I hope one day AI will be less feeble, that my reasoning applies to single player as well not only multiplayer.

So i think we should aim to make different "scenarios" incomparable in some way; e.g. showing a glorious victory screen (or "high score") only including the scenario name (and probably its setting in a condensed form).

For the moment maybe we could put this info in the title bar of the game screen, so it becomes part of the screen shots. I would love to have that information :)
Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

Furthermore, I propse... we should default to four combat rounds instead of three ...for the good of playerkind.

User avatar
Oberlus
Cosmic Dragon
Posts: 2157
Joined: Mon Apr 10, 2017 4:25 pm

Re: Discussion thread for Ingo Schwarze's patch

#11 Post by Oberlus » Tue Nov 13, 2018 11:16 am

Ophiuchus wrote:
Tue Nov 13, 2018 8:54 am
I hope one day AI will be less feeble, that my reasoning applies to single player as well not only multiplayer.
You are right!

ischwarze
Space Krill
Posts: 6
Joined: Thu Nov 08, 2018 5:25 pm

Re: Discussion thread for Ingo Schwarze's patch

#12 Post by ischwarze » Mon Nov 19, 2018 9:19 pm

Oberlus wrote:
Thu Nov 08, 2018 4:41 pm
In MOO2 I usually used Pre-Warp, that would correspond with this proposed patch, I think.
Using game rules for this (i.e. having more or less techs, buildings and ships at start) seems straightforward.
I just implemented this and pushed it to the PR (#2318). On the Galaxy Setup screen, you can now choose a Starting Era as either "Pre-Warp" or "Classical" from a dropdown. If you choose "Pre-Warp", you also get the tutorial, if you choose "Classical", there is of course no tutorial. According to the test games i played so far, both modes work as expected.

Unless i missed something, i think i processed all feedback that you provided here and in the PR, so i think the HEAD of the branch in the PR is ready for more testing (and additional feedback if needed).

Since some of your feedback required conceptual changes, the sequence of commits in the PR is quite messy now, considerable back-and-forth even in some files that remain mostly unchanged in the end. Should i squash the commits and force-push for easier review? I should certainly do that before you pull because that back-and-forth would not provide any value for the history of your repo, i'm merely wondering if i should do it already right now...

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

Re: Discussion thread for Ingo Schwarze's patch

#13 Post by Dilvish » Tue Nov 20, 2018 3:25 am

ischwarze wrote:
Mon Nov 19, 2018 9:19 pm
Should i squash the commits and force-push for easier review? I should certainly do that before you pull because that back-and-forth would not provide any value for the history of your repo, i'm merely wondering if i should do it already right now...
squashing doesn't really simplify the review, since the main PR presentation of the changes is essentially the squashed version, unless a person explicitly chooses to review one commit at a time.

As for whether to squash anyways just to clear up the history-- ideally folks go through their branch and clean up the history a little better than simply squashing it all together, but the time for that is not always readily available. We don't have a project rule about needing to clean up, or to squash or not squash, so if you are wanting to squash this does seem like a fine time for it.
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: 12573
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Discussion thread for Ingo Schwarze's patch

#14 Post by Geoff the Medio » Tue Nov 20, 2018 7:53 am

If the only options are squash into a single commit or keep redundant commits, I'd do the latter. Cleaned up and concise commits are best, bust some record of the history and separation of (more or less) inependent changes are useful to keep.

ischwarze
Space Krill
Posts: 6
Joined: Thu Nov 08, 2018 5:25 pm

Re: Discussion thread for Ingo Schwarze's patch

#15 Post by ischwarze » Wed Nov 21, 2018 12:57 am

Geoff the Medio wrote:
Tue Nov 20, 2018 7:53 am
Cleaned up and concise commits are best
That's a clear instruction, so i cleaned up the pull request by rebasing it into 26 logically organized commits, each doing one thing. The intention is that each intermediate step *should* compile and run cleanly - but given how long FreeOrion takes to build, i did not have the time to actually test each step, i only tested after the final commit.

The old commit series is still available in the branch tutorial-old, just in case. I will no longer push to that branch.

I have started work on the additional, newer feedback from Dilvish and Morlic. One commit regarding the issues with the Imperial Gardens noticed by Dilvish is already pushed.

Post Reply