A programmer’s perspective on Civ VI

(c) Unit costs completely off. Unit A production costs displayed as 90, Unit B as 180. Unit A takes 1 turn to complete, Unit B 8 turns. This problem has been reported on this forum as well.
[snip]
(2) Some of the bugs (for example the bugs described under (c) and (d) above) do not involve rocket science. The mechanics of "Production 90 takes 1 turn, Production 180 should take 2 turns" are not that hard. If easy things like that go wrong and cannot be quickly fixed then the code is likely in messy shape.
This is production overflow. The overflow itself is bugged (hence Pony Economy) but that's a far more complicated thing than the production rates.

That you don't understand this suggests you lack a thorough grounding in Civ.
 
@Gorbles : Please sit back for a second and consider - just for a very brief moment - that actually you might be wrong (in parts).

You do not know how complicated bugs can be to fix.

If this is not arguing on a personal level - then what is? You are not discussing my points or arguments, but you are discussing me. Can't you see that?
(and on an irrelevant (!!) side-note: yes, I have worked on legacy code which is way beyond the complexity of how complex Civ VI code can be)
 
@Gorbles : Please sit back for a second and consider - just for a very brief moment - that actually you might be wrong (in parts).

If this is not arguing on a personal level - then what is? You are not discussing my points or arguments, but you are discussing me. Can't you see that?
(and on an irrelevant (!!) side-note: yes, I have worked on legacy code which is way beyond the complexity of how complex Civ VI code can be)
1. I haven't said anything that could plausibly be incorrect because all I've done is refute your statements. The only way you have of proving me wrong is to prove yourself right. Which you haven't, and arguably you can't (no access or exposure to Firaxis' Civilisation 6 source code).

2. Please google "ad hominem".

Saying "you do not know how complicated bugs can be to fix" is not insulting. It is telling you that you don't know how complicated the bugs in Civilisation 6 might be. Do you know how complicated they are? You have to prove your statements, you can't ask me to prove a negative.
 
Saying "you do not know how complicated bugs can be to fix" is not insulting. It is telling you that you don't know how complicated the bugs in Civilisation 6 might be.

Do you really not see your errors in reasoning here? Just take those 2 statements. You do not see that "you do not know how complicated bugs can be to fix" is a completely different statement than "you don't know how complicated the bugs in Civilisation 6 might be." ??
 
I see no intention to talk about programmer's point of view here anymore, so this is an attempt to fix the issue. This patch probably fails within the heat of argument, but I'll commit it anyway.


They've done wonderful job improving abstraction of things. This is directly visible at least in localization side, which is much more convenient to work with than Civilization V was. This time around I actually can know the context I'm working with instead of encountering messy files put together whichever way to get things working. There are comments in both SQL and XML and files don't have multiple concerns mixed in them.

There are also notable improvements: previously to add a language you essentially had to either translate all at once or include missing strings in English, because the language fallback didn't work correctly and opted for German instead of English. Also you can now actually setup language via SQL instead of forcing user to edit a file to change language. One thing I don't know yet but was nasty with Civ V was that sometimes the game strings that should've been translatable were prehandled to strings before coming to the localization layer, which meant you had to work with the translated string as it was instead of having an option to choose between variants. Also, trying to use a variant resulted in the string disappering entirely in game, making debugging very painful. I really hope internally values are always passed as objects (or whatever the actual structure is) instead of strings this time around.

But clearly there has been much more attention in abstracting things properly instead of throwing things together while coding on, and that alone is likely to make the codebase nicer to work with than previous Civs.
 
Do you really not see your errors in reasoning here? Just take those 2 statements. You do not see that "you do not know how complicated bugs can be to fix" is a completely different statement than "you don't know how complicated the bugs in Civilisation 6 might be." ??
The game in question was Civilisation 6, it was obviously and directly implied. Bearing in mind I already apologised for causing offense. It seems to me, at this point, that you want to act this way in order to avoiding actually engaging with criticism of your theories. A shame :(
 
(a) War weariness increasing after end of all wars in single citys. There is a discussion on steam forums about this bug. The solution is to reload the game and make one turn, then the war weariness is corrected.
(b) Two units (2x Horseman) on one square. When moving the first one unit away from that square the game treated the unit like it was standing on an adjacent square instead.
(c) Unit costs completely off. Unit A production costs displayed as 90, Unit B as 180. Unit A takes 1 turn to complete, Unit B 8 turns. This problem has been reported on this forum as well.
(d) Trading deals sometimes off. Leader A suggests a deal. He wants to give me a certain resource for 30 turns (among other things). I right click on that resource to delete it from the deal ( I don’t need it). Now the (better) deal is not acceptable to Leader A anymore.
(e) Cycling units "forgets" some units. The "end turn" message sometimes appears even though some of my units haven’t moved in that turn. This way I sometimes forgot i.e workers for a move or two. This bug I haven’t seen reported elsewhere so maybe it is not a bug and instead I a am missing something.

Since we're all programmers here, my take on the above:
a) Obviously their logic for clearing up war weariness after a war isn't done at the right time, and there's probably some flag in code that's not getting set properly. On reload of the game, presumably it initializes to a new value that will let the WW clear over time. Sometimes these bugs are easy to track down, sometimes not. This is also a case where the UI on the city's penalty could likely be clearer, in which case it might have been more obvious (hey, this has said I'm going to have a WW penalty for the next 20 turns, but it's been mentioned as 20 turns for a few turns now. Wonder if we have a bug here?)
b) I haven't seen this one. Could be a simple case of they did the 1upt rules up assuming they wouldn't get in a bad situation, then someone added Scythia and didn't notice that things were off in some movement rules. It should be very rare to end up with multiple horsemen on the same square, and it could be something in that first movement that they didn't expect. The number of cases of this might be very small, since it's highly possible they didn't do a ton of debugging playing as Scythia. I mean, you run it enough to check that, yeah, you can get the double horsemen, but especially since there's the +100% production/disbanding unit problem, yeah, it's possible they lacked QA coverage on this
c) Overflow. Again, they should be more clear in stating that you have carry-over from a previous build, but civ has kind of always been bad about this. They also will re-arrange the governor when you queue a building, so sometimes I might see "settler 4 turns", then select it, and suddenly it would move to 3 turns.
d) Honestly, to me this shows that they actually spent time trying to build a trading system. If they just had a simple "1 resource = 100 gold" then you don't see bugs. But because they tried to be a bit more fancy, in weird cases obviously some resources end up getting negative valuation. Again, could and potentially should have been caught in QA, but this is also the sort of bug that might have been noticed too late, and you worry like heck about breaking things at the last minute, so better to leave it in than potentially make it worse.
e) Definitely some weird issues with the cycling. But again, that could be the case of "oh ****, let's not break this more right now".

So from my take, yeah, there are issues. And yeah, a lot of these issues could have been caught in QA. And it very well likely was pressure to get things out on time at release.

However, when I view issues like these, I also take comfort in the fact that THESE are the bugs that we're complaining about. We're not complaining that "the game crashes on me every 5 turns", or that "I captured a city and suddenly I can't move my units" or "I went in to capture a city and suddenly my tank disappeared". So yes, while we might be complaining about issues that could very well only take 5 minutes to fix (and then 4 hours to test), the fact that we're not seeing major, core, structural issues shows that they at least got through the biggest of the problems.

It will only be after the first patch that comes out that we'll truly be able to start making declarations about the state of the code. If it takes them 2 months to come out with a patch and most of these minor issues aren't fixed, then people can complain. But for all we know the next patch will be released in 2 hours from now that fixes all these bugs and more, because the code actually was in great shape but they just barely ran out of time before release and were too scared of screwing something up on release. Especially for a AAA game, it looks a lot worse if they have to come out with a day 0 hotfix because of a major bug, so I'm guessing they're a lot more strict on code freezes as I am working for a small indy game studio.
 
As a programmer, I can add these bits to my perspective on playing Civilization VI.
  • Code rushed to release, usually has technical debt.
  • It's absolutely annoying and insulting when folks without access to the source code try to estimate the difficulty/lack of difficulty.
  • Crunch time is stressful, and I for one tend in a useless zombie state towards the end of crunch time.
From my perspective as a gamer, who has played Civ games since Civ 2
  • These bugs don't detract from gameplay to make the game unplayable.
  • The biggest gameplay detraction is the district cost being tied to technology/civic count. Which is a design flaw, not a bug.
  • The second biggest detraction is the AI, most of which seem to be flawed design.
  • The third is balance which from what I hear... can be fixed by mods.
TL;DR: Let their programmers take a well deserved break :)
 
Do you really not see your errors in reasoning here? Just take those 2 statements. You do not see that "you do not know how complicated bugs can be to fix" is a completely different statement than "you don't know how complicated the bugs in Civilisation 6 might be." ??

If you don't know the bugs in Civ 6 then does it stand that you know how complicated bugs can be? Could it be possible that once the source code is revealed to you that you encounter a bug that is so bizarre and complex that it changes your world view?
 
Since we're all programmers here, my take on the above:
a) Obviously their logic for clearing up war weariness after a war isn't done at the right time, and there's probably some flag in code that's not getting set properly. On reload of the game, presumably it initializes to a new value that will let the WW clear over time. Sometimes these bugs are easy to track down, sometimes not. This is also a case where the UI on the city's penalty could likely be clearer, in which case it might have been more obvious (hey, this has said I'm going to have a WW penalty for the next 20 turns, but it's been mentioned as 20 turns for a few turns now. Wonder if we have a bug here?)
b) I haven't seen this one. Could be a simple case of they did the 1upt rules up assuming they wouldn't get in a bad situation, then someone added Scythia and didn't notice that things were off in some movement rules. It should be very rare to end up with multiple horsemen on the same square, and it could be something in that first movement that they didn't expect. The number of cases of this might be very small, since it's highly possible they didn't do a ton of debugging playing as Scythia. I mean, you run it enough to check that, yeah, you can get the double horsemen, but especially since there's the +100% production/disbanding unit problem, yeah, it's possible they lacked QA coverage on this
c) Overflow. Again, they should be more clear in stating that you have carry-over from a previous build, but civ has kind of always been bad about this. They also will re-arrange the governor when you queue a building, so sometimes I might see "settler 4 turns", then select it, and suddenly it would move to 3 turns.
d) Honestly, to me this shows that they actually spent time trying to build a trading system. If they just had a simple "1 resource = 100 gold" then you don't see bugs. But because they tried to be a bit more fancy, in weird cases obviously some resources end up getting negative valuation. Again, could and potentially should have been caught in QA, but this is also the sort of bug that might have been noticed too late, and you worry like heck about breaking things at the last minute, so better to leave it in than potentially make it worse.
e) Definitely some weird issues with the cycling. But again, that could be the case of "oh ****, let's not break this more right now".

So from my take, yeah, there are issues. And yeah, a lot of these issues could have been caught in QA. And it very well likely was pressure to get things out on time at release.

However, when I view issues like these, I also take comfort in the fact that THESE are the bugs that we're complaining about. We're not complaining that "the game crashes on me every 5 turns", or that "I captured a city and suddenly I can't move my units" or "I went in to capture a city and suddenly my tank disappeared". So yes, while we might be complaining about issues that could very well only take 5 minutes to fix (and then 4 hours to test), the fact that we're not seeing major, core, structural issues shows that they at least got through the biggest of the problems.

It will only be after the first patch that comes out that we'll truly be able to start making declarations about the state of the code. If it takes them 2 months to come out with a patch and most of these minor issues aren't fixed, then people can complain. But for all we know the next patch will be released in 2 hours from now that fixes all these bugs and more, because the code actually was in great shape but they just barely ran out of time before release and were too scared of screwing something up on release. Especially for a AAA game, it looks a lot worse if they have to come out with a day 0 hotfix because of a major bug, so I'm guessing they're a lot more strict on code freezes as I am working for a small indy game studio.
Finally, a logical argument!
 
I am a civ I and civ IV deity player. I guess you are not.
The fact that someone who claims to be a deity player can't understand production overflow is hilarious.

I honestly don't care if you *are* a deity player - your position is blatantly wrong.
 
Again I am amazed by the number of people who tolerate this, saying that those poor gaming companies have to meet a deadline. Wow a deadline! like in every industry right? Surprisingly it seems it's ok to release beta version of products in the gaming industry as long as the deadline is respected.

"It's not gamebreaking" / "It's still better than Civ5 release" / "You have no idea how it works" / "They have a lot of pressure" etc.
Looks like people will defend them no matter how unfinished the released version is.


I amazed at the number of folks who want to dictate to others what they should do with their money. The game is great, the game plays great and if you are not happy,..gee thanks for letting me know.

Now I am going back to playing Civ VI.
 
I am optimistic that Firaxis will deliver a much improved AI once they have dealt with the exploits and collected more usage data on how we play the game.

Maybe not in the first couple of patches because these will likely be bug fixes mostly. Maybe slight adjustment to some modifiers. But strategy-wise I think only after collecting enough of our feedback and game logs that they can truly improve how the AI plays this game.
 
I'm a programmer, too!

Civ VI has some bugs, but far fewer than most game releases these days, and certainly fewer than the past few Civ releases. Firaxis will probably fix most of those bugs in the next patch or two.

Compared to the average game release these days, Civ VI is very stable. Firaxis will probably fix most stability issues in the next patch or two.

I'm not sure why I needed to be a programmer to write those things, but it's a good thing that I am!
 
Rule #1 in releasing a software product on deadline is to make sure it is stable and can run/play/work all the way through to the end.
 
The fact that someone who claims to be a deity player can't understand production overflow is hilarious.
I honestly don't care if you *are* a deity player - your position is blatantly wrong.

You realize you imply I might be a liar?

Let me still try to get back to the technical stuff I wanted to talk about. The bug we are talking about is not about overflow. I do understand production overflow :). I even tested whether it has to do with production overflow. What I did was produce a few units type A and then a few units type B. Unit A took 2 turns, unit B 8 turns. Producing a few units in a row makes sure it is not an overflow problem.
 
TL;DR: Let their programmers take a well deserved break :)

Looks like everyone is a programmer on this forum. And as programmers you tend to defend Firaxis programmers.

There's no point in having a discussion here.
 
Back
Top Bottom