Are People already drifting away from Civ VI?

Discussion in 'Civ6 - General Discussions' started by Zegangani, Sep 20, 2021.

?

Are People already drifting away from Civ VI?

  1. Yes, I think most of the Players have lost interest in Civ VI.

    60.6%
  2. Nah, it's just because of the end of the Summer Vacations & the Stress of going back to Work/School.

    16.9%
  3. What are you talking about? I didn't notice anything.

    22.5%
  1. Leucarum

    Leucarum Emperor

    Joined:
    Dec 21, 2018
    Messages:
    1,269
    Gender:
    Male
    I've done a few quick games lately, but often restarting until I get a map which looks like it has unusual geography and will be fun to play. I've played "normal" maps enough that I'd rather be a reroll scum to get a game I'll enjoy.
     
  2. Zaarin

    Zaarin Diplomatic Attaché to Londo Mollari

    Joined:
    May 14, 2016
    Messages:
    10,187
    Location:
    Babylon 5
    That's another issue I have with the game. The last few times I've tried to play, I feel like I'm playing a reroll simulator. Last spring I tried playing as Canada--it took me a ridiculous number of rolls just to get some Tundra. The last game I abandoned was as Norway, and I kept spawning inland. Have the start biases just gone out the window? :crazyeye:
     
    Zegangani and Thormodr like this.
  3. Leucarum

    Leucarum Emperor

    Joined:
    Dec 21, 2018
    Messages:
    1,269
    Gender:
    Male
    I wonder if this is becoming an issue now that there are a lot more civs with the same terrain preferences dotted through the expansions? One way to deal would be using the civ picker - e.g. if you're playing Canada you could turn off Russia, if you're playing Mali you could turn off Nubia? Just in case it's a case of competing start biases - especially on smaller maps?
     
    Zegangani likes this.
  4. Zegangani

    Zegangani King

    Joined:
    Oct 9, 2020
    Messages:
    695
    Gender:
    Male
    I'm currently working on reworking the script for starting plots, and I can tell you: it's more flawed than a Xerox Scanners back in the day, when they simply replaced numbers and letters with others as they scan (The Bug persisted for over 8 Years! but at least they got rid of it now).
    Even on smaller Maps you can find valid plots for the 2 Players. The Issue actually lies in the script for the starting Plots for Players.

    This is how the script works and assigns starting Plots for Players (I'll ignore the methode for Ocean Civs/Maori here):

    1) Get a global pool of plots from the engine (We have no Idea how the engine picks the plots).

    2) For each Player, Go for all the global Plots and check if they are valid Plots: Sort Plots based on fertility (it's a function that gets the infos directly from the engine, so again, no idea on how it actually works), Check if it's not a Mountain/Water Tile, if it's a Fresh Water tile, check for good Yields/Resources/Natural Wonder nearby...etc and pick the 1 best Plot. Also, excluding the 1st plot chosen for a player, all fllowing plots will now also consider distance between other taken Plots. At the end there will be a Number of Plots taken equal to the Number of Players in the Game (excluding Players that start in the Ocean). - and Save a Copy of all the Plots (more on that later), and let's call that table "MajorCopy".

    - I will use this example from now on, so that it's more understandable: Let's assume in (2), the script picked 10 Plots for 10 Players. each at least 10-12 tiles away from each other.

    3) All the 10 Plots picked, will get assigned to all the Players (so that all players will now have all the same 10 Plots), then the start bias script in (4) (assumingly) picks the best plot for each player and removes that plot from the other Player's pool of plots (so there is no player with a plot that another player has).

    4) Now it's Time for the actual Start Bias function: Go through each Start Bias Tier (1 at a Time), starting from 1 to 5, and check if any Player has a start bias from that Tier (Anything: Terrain, River, Feature or Resource). For all the Players that have a SB in that Tier, get shuffled (so that they don't get examined based on their PlayerId, starting from Player 0), check for each Start Bias (I think all Players have a different Tier for each SB) and remove all plots from that Player's pool of Plots that don't apply to that SB. Any Plots left as valid in that Player's pool of Plots will get removed from the other Players' pool of Plots (remember they have atually the same set of 10 same plots). repeat all that again for all the other SB Tiers.

    Note: all the Start Biases functions (Feature, Resource, Terrain and River) don't actually check if there are enough of them in a specific Radius, but only check if there is 1 of in a certain Radius, which results in, like in my test yesterday with Mali, Mali getting a plains coastal start Plot with only 1 desert tile in a 3 tiles radius, that is 3 tiles away (!!). It's not even the Tile that Mali spawned on!
    Note: if the SB Check doesn't find any plot as valid, then all the plots from a Player's pool are left un-removed.

    - At the end of the SB check, For each Player, any plots left in its pool will get removed from other Players' pools. Ex: Player 1 has 3 Plots left: all the 3 Plots will get removed from other Player's pools (eventhough Player 1 actually needs only 1 Plot). Even if those Players have those same 3 Plots and get left with no starting plot. (One of the main Flaws of the script)

    5) Remember the Copy of the 10 Original valid Plots in "MajorCopy"?: After the Srat Bias Check, go through every Player that has at least 1 plot in its pool, take a random plot and remove its copy in "MajorCopy". Now the Major Copy should have no Plot that other Players may have (Except that isn't actually the case for players that have more than 1 plot left in their pools).

    6) Check if any Player is left without any Plot that passed the StartBias check (or got their Plots stolen by Players that were lucky being examined before them): Each of these poor Players, will get a random plot from "MajorCopy".
    Note: This Time there won't be any check for Start Biases.

    7) Now the script will force the Game to pick a starting plot for each Player from it's pool.
    Note: Players may still have mltiple Plots in their pools of valid Plots, the script will just pick a random one.

    ----------------------------------------------------------------------------------------------------------------------------------------------

    You may already have guessed what all is wrong with this script, but let me count some few:

    1) There is no way that the 10 randomly chosen Plots at the beginning will all be valid for the Start Bias of all the 10 Players. What if all of those 10 plots are on plains adjacent to a coast, and all the Players we have chosen are Mansa Musa Duplicates?

    2) The Start Bias function the way it is coded:
    - it doesn't check if there is enough of a bias in a certain radius, but if there is at least One (My Mansa Musa Test above).
    - it doesn't get to the point to consider the other start biases of the Player after the first tier. which may result in Noway having a coastal start but no forest in sight.
    - Players who are unlucky to not get examined at first, will most likely don't get a plot valid with their Start Biases. Ex: no coastal start for Norway.
    - The Start Bias function removes plots from other Players' pools, eventhough it's still not clear what's the starting Plot for the Player that is getting examined. Which results in possible valid plots for other Players, that get instead removed from their pools.

    3) Players that get left with no plot left in their pool, will get assigned a random plot from the original 10, except this Time there won't be any Start Bias Check. And this is especially a Problem, since the Issues in (2) will result in many Players without a Plot left for them.

    4) I'm not sure about this, because I still have to test this more to be sure: I think the Issue that causes Players spawning next to other Players/City-States is due to a function that compares the Index of the starting plots of those Payers. the Index of them should be different, but I think sometime for some reason they have the same X;Y coordinates, eventhough they should be different. So the 2 Plots must instead be compared based on their X,Y Coordinates.

    --------------------------

    I'm working on its rework since Months now (with on and offs of course), and I encountered (ans still do) multiple Issues that cause any kind of malfunction, and I was abandoning it for weeks sometimes due to rage quitting or the frustration of getting lost in the labyrith of code and hence losing motivation to keep working on it. So I don't blame whoever made that script at all for making it just functional, it's a really Time consuming thing to get done well. Though, FXS should have at least kept working on it with Time, like with every DLC, they could have improved some aspect of it, like this Time fixing Players spawning next to each other, next Time fixing Players not getting a Start Bias Check.

    The only reason I kept working on it myself, is that someone commissioned a mod that spawns Players in the same Group near each other, and I have promised to make that for them (But I didn't take any Money yet, not that I took it and didn't give them any Mod in Months lol). Though, I haven't have thought that it would that difficult and Time consuming to make that Mod.

    It's nearly done now, and the Test yesterday with Mali was the 1st successful one, so I just need to take some other things/variables under consideration (like checking for number of a certain terrain type instead of being happy with One), fix some small things, some more tests to be sure everything works fine, clean the code, release the Multiplayer version, and remove the more restricting multiplayer stuff for the Singleplayer Mod.
     
    Scrum Lord, racha, Leucarum and 2 others like this.
  5. Zaarin

    Zaarin Diplomatic Attaché to Londo Mollari

    Joined:
    May 14, 2016
    Messages:
    10,187
    Location:
    Babylon 5
    I was using the civ picker. There were no other civs with Tundra or Coastal start biases in either game.
     
    Leucarum likes this.
  6. Leucarum

    Leucarum Emperor

    Joined:
    Dec 21, 2018
    Messages:
    1,269
    Gender:
    Male
    Nice explanation of the map scripts. Thanks. Definitely explains how conflicts between civs for start terrain can happen...
     
    Zegangani likes this.
  7. Gedemon

    Gedemon Modder Super Moderator

    Joined:
    Oct 4, 2004
    Messages:
    10,339
    Location:
    France
    You should have asked @LeeS, he would have told you the legends of AssignStartingPlots.lua and why it causes even the ancient gods to shiver with fear when hearing its name since the times of Civ5.

    Grouping players while keeping biases, I think I'd answer "and why not picking your uniques traits and abilities based on your starting position instead ?", knowing it would be easier to code.
     
    Scrum Lord and Zegangani like this.
  8. Zegangani

    Zegangani King

    Joined:
    Oct 9, 2020
    Messages:
    695
    Gender:
    Male
    Yea, I didn't, and now I had the chance to witness the Legends first hand :scared:.
    That would indeed be the better Solution and easiest to code, though, I don't think they would have wanted/liked that.
    At first, I was using the Methode in AOM's Team Start Mod, which should have actually worked if the way the FXS script was coded wasn't negating most of what AOM's methode was trying to accomplish. Anyway, Thanks to the Functions from Your YNAMP and AOM's Team Start Mod, and a rework of many FXS functions, the rework of the Script is nearly complete now, and the tests show good results.
     
  9. Scrum Lord

    Scrum Lord Warlord

    Joined:
    Jul 2, 2017
    Messages:
    176
    Yup, essentially the base game does a sort-of tiered round-robin, where the player with the lowest-tier (strongest level of bias) chooses first while the last player effectively gets a random unbiased plot.

    Agree with with the first three points. Not sure about the fourth one, though--I think that problem might be coming from the black box that chooses start locations.

    The main problem with the base game's starting plot system is that start biases are applied after choosing a set of locations, one for each player. This severly limits the amount of terrain that the start bias system can consider, so there could be plenty of tundra but the start bias system wouldn't know because all of the chosen starting locations are in fertile temperate terrain. The black pox that chooses those plots probably sorts by a bias-agnostic fertility score as in food & production, which might explain the difficulty of getting good starts for civs that prefer tundra or desert. To really fix start biases, you need to consider biases while assigning players/teams to regions, not just "one-size-fits-all" pre-selected plots.

    I ran into similar problems with my Got Lakes map script, and I ended up not only porting the start positioner from Civ 5 to bypass the black box but also writing my own Start Bias algorithm so that Nubia could actually start in desert on maps that had like 50% desert--fun times! :crazyeye: Not sure how much my code could help you since you're nearly done, but it might be interesting to compare solutions.

    So, what happens if you try to form a team of Russia + Nubia on an islands map? :mischief:
     
    Zegangani and pokiehl like this.
  10. Zegangani

    Zegangani King

    Joined:
    Oct 9, 2020
    Messages:
    695
    Gender:
    Male
    Apparently, with more tests in the past few days, when calculating the distance between 2 Plots that should be different (because they already got their Index compared, and they are not the same), the distance sometimes returns a normal valid distance (like 10, 23...etc), but the 2 Plots aren't actually that far from each other, sometimes they are even on the same Tile. and both (comparing the distance based or Index or X;Y Coordinates):
    Map.GetPlotDistance(plot1:GetIndex(), plot2:GetIndex());
    Map.GetPlotDistance(X1, Y1, X2, Y2);
    *Plot1 Coordinates: X1;Y1
    *Plot2 Coordinates: X2;Y2​
    returns the same Value.
    I noticed that often, these 2 Plots are either on the same Tile (X1==X2 and Y1==Y2) or the sum of (X2+Y2) subtracted from the sum of (X1+Y1) is 1-3 (number can be negative). When comparing the Plots that way (alongside, comparing the index of the Plots), I never encountered a case where Players spawn on the same Tile or on adjacent Tiles. So, it seems to work fine so far.
    But I'm wondering why plots that have different indexes sometimes are on the same/adjacent tile, and Map.GetPlotDistance sometimes isn't even reliable when comparing coordinates that are the same or very close in distance. I'm wondering what else is broken in FXS' code.
    Exactly. That makes the whole start biases function only useful for the few lucky Players that get examined first, and useless for most of the others.
    In function "self:__SetStartMajor()" ==> "iFertility = StartPositioner.GetPlotFertility(pPlot:GetIndex(), iMajorIndex, bCheckOthers);" the Plots get sorted by Fertility with the Player Index as an argument. the Function is hardcoded, so perhaps, in the Engine, the Plots do get checked based on the start biases of the Player(?) (otherwise I don't get why there is even iMajorIndex as an argument). If that's the case, then maybe the Devs thought that that would make sure every Player would get a valid plot based on its start biases, except it doesn't.
    I searched almost the whole workshop for a Mod that alters/improves the start location Script, and I only found YNAMP and Team Start Location Mods that could help me, even BBS uses functions from those 2 Mods IIRC. I never thought I could have found it in your Map Script Mod (although it does make sense tbh). It would have saved me a Ton of Time if I knew that before lol. It comes as it comes, and at least I got to learn a lot from the process. But I will certainly take a closer look at your Code, Thanks!
    Teams on Islands or Archipelago Maps should be forbidden :lol:
    That's what I'm currently struggling a little bit with. Teams of 2 Players work mostly fine, 3 Player Teams tend to also work fine on Pangaea or Continens Map, and I got even lucky with a Seven Seas Map when a Group of 3 Players spawned close to each other, with 3rd Player being Maori who spawned near an island that was close enough to its Team Mates (I haven't yet coded Ocean Civs to consider distance to team mates, so it was just pure luck). Though 3 Player Teams sometimes don't find valid Plot for 1-2 Players because of Player 1 spawned on a far island or far from any valid plot for the others (due to start biases or other Players in the region). So I'm now trying to only spawn a Player if its Team Mates can also spawn there (WIP).
     
  11. Scrum Lord

    Scrum Lord Warlord

    Joined:
    Jul 2, 2017
    Messages:
    176
    That sounds like a mixup of 0-based and 1-based indexing, either by you or by FXS.

    I suspect that the player index for weighted fertility might be just a roundabout way to distinguish major versus minor civs, because it makes no sense to add a specific civ's weight to a plot's fertility score when there is a separate step later on for assigning players to plots. But yeah, without access to the source code of that function, your guess is as good as mine :)
     
    Zegangani and pokiehl like this.
  12. Scrum Lord

    Scrum Lord Warlord

    Joined:
    Jul 2, 2017
    Messages:
    176
    Anyway, back to the thread's original topic: I've been drifting between Civ and various other games the whole time, as well as drifting between actually playing civ and improving Got Lakes. Currently playing a relaxing game of King-level Russia with Sukritact's Oceans, Shuffled Civ/Tech Trees, and Secret Societies on what looks like an oval landmass with connected seas, extra islands, hollowed-out mountain ranges, and an azimuthal tilted axis jungle-heavy arborea ice age climate.
     
    Zegangani likes this.
  13. Keyalha

    Keyalha Warlord

    Joined:
    Oct 8, 2014
    Messages:
    125
    Location:
    Germany
    In short, no. Forum activity is lets be blunt utterly irrelevant. While some people might think that a handful of very active users uphold the community that is simply not the case. The game is still played moreso then ever.

    For a game this old the active player count is incredible. It had a recent peak at over 60.000 players in January! (source https://steamcharts.com/app/289070). This is not even taking the multitude of other storefronts and platforms the game is available on into account.
    So no the game is not dead, the franchise is not in the gutter. All that it quite bluntly put is that there is not much news to discuss no real speculation to do, the meta has long since been solved. So what else is there to talk about?

    I get that some of the old guard is frustrated but this doom and gloom is uncalled for if you look at the facts. Yes I know that some people do not care about the "casuals" that do not even play on diety but those are the people who by and large buy the game and keep the lights on. The few thousand hardcore fans who sink thousands of hours into it do not account for a lot in terms of sales, so lets be realistic about it.

    Edit: What this thread also does not take into account that forums and their culture are slowly but steadily dying. People prefer more immediate communication these days. Discord and other chat software is more and more taking over the gaming space.
     
    Last edited: Jan 17, 2022

Share This Page