A programmer’s perspective on Civ VI

"Criticising their understanding of software is not a personal attack."

Yes it is when you can't prove to anyone else that you know better than OP on these issues.

This is because it is equally unsubstantiated as simply calling them dumb when you cannot prove you know any better.
 
Moderator Action: Enough! All you are doing is changing the topic of the thread. Cease discussing each other and discuss the issue of the thread. You are just repeating yourselves, no one wants to hear it really.
Please read the forum rules: http://forums.civfanatics.com/showthread.php?t=422889
 
It's perfectly fair to be upset at Firaxis/2K, to not like the design decisions, or to not like the game. Nobody is saying that everybody must like the game - there was certainly backlash when civ5 came out as a more "dumbed-down" version, and then the flaws that were BE (when most of us would have been ecstatic if they literally just remade Alpha Centauri but brought in some new features to it), I'm not going to get upset at anyone who is turned off, or who doesn't enjoy every version.

The complaints come when people try to project onto things they can't know, as in, knowing the state of development. Everyone agrees that the game is not 100% perfect, but it's simply the reality of modern systems that stuff is too complex to make perfect. And because it's so simply to patch, yeah, it means developers/studios get "lazy" and can certainly live with more bugs. When your old NES games came out, it was virtually impossible to apply a fix to them, so you gotta be damn sure that everything works. When civ can basically have one guy push a button and suddenly everyone gets a new version of the game, it's a lot easier to live with missing UI panels and broken features. But on just knowing the state of the initial release, and even knowing the bugs that exist, it's impossible for anyone who doesn't work in their office to know the exact state that the code/development team behind the game is in.

And this pseudo-beta model sucks - if not for the simple fact that when I play a game, I have to think, "hmm, should I play as XXX now, or do I think that I need to wait for the next patch to see if they get rebalanced to something I will like better." And in that respect, yeah, we're basically all beta testers for now. And really, if anyone is not comfortable with that, then definitely do not buy a game on day 1 of release - wait until after it's gotten a patch or two. It is really annoying - I mean, I definitely don't want to go out to watch Doctor Strange this weekend only for them to re-cut it and release it again in a few weeks. And ideally we should demand more of the gaming industry overall. But it also means we have to wait a much longer time for each version, and overall, I think it's better to get the early version, live through the bugs and issues for 6 months, and then after that point you can feel reasonably safe that the version is complete. If you don't want to live through this, then go ahead, wait to play/buy until the first few patches are out. Heck, you're even more likely to be able to grab it on a Steam sale in the meantime.
 
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.

Your alternative to defending them?

I mean a tenable alternative, not some bizarre fantasy scenario where every game is $30, totally bug free, awesome, comes out on time and needs no DLC.
 
You know, guys, I don' have any backgroung in programming, but I do have a degree in Communications. And my experience tells me you guys are not being very efficient at communicating. :lol:
Now, I think the main issue with Civ VI shouldnt be looked at from a programmers point of view. I think it should be examined with an industry lens, as some people in this thread have been doing. OP has said that the devs appeared to be too worried about putting every system we'e seen in Civ V in the game instead of making a bare-bones version that actually works. And I completely agree with that statement! I understand, however, why this choice was made. Playing Civ VI, I can see its potential. It feels like an unfinished game, but underneath the bugs and the stupid AI and the terrible, terribl UI, I can see something that might become the best game in the franchise. I wouldnt necessairly see that if they released a version that lacks so many layers previous civs had.
Were I a reviewer, I would, like many are actually doing, give Civ VI a positive review, noting all the huge problems it has, but being swayed by how much it can accomplish once it addresses this mistakes. If Civ VI had been a bare-bones version, theres a huge chance I, and other reviewers, would feel it is lacking in many ways and give it a lower score, even though it actually works better. And you guys know how it goes: positive reviews help the game sell more and yadda yadda yadda.

tl;dr: an unfinished game with potential gets better reviews than a polished game that feels lacking, so thats what they did.
 
If anyone is capable enough to be really bothered by the state of the industry then you knew going in what buying a game near release time is like.

The game is plenty playable. At some point you made the choice to buy knowing how finished gamers are or aren't and it's your responsibility for buying it.

The rest seems some weird fantasy world that's not really gonna happen anytime soon and a lot of energy wasted rather than having fun playing video games.
 
Your alternative to defending them?

I mean a tenable alternative, not some bizarre fantasy scenario where every game is $30, totally bug free, awesome, comes out on time and needs no DLC.
Not accepting beta version at release?

But I agree that games are pretty cheap these days compared to what they used to be in the past (I'm talking about 15+ years ago). And I am ready to pay more if they guarantee to release games in better state.
 
I don't like the concept that I cannot keep my borders closed to hostile ideologies because the obvious globalist agenda behind the philosophy of this game presuming that it is inevitable even though history shows globalism happens in cycles, not a linear progression towards it given the highly global trade in the bronze age followed by over a millennium of isolationist policies when it was shown to be unsustainable the first time.

whose bronze age, what dates, and where did global trade stop? if one region or another declined, please substantiate that it was due to hostile ideologies, and not actually militaries or paramilitaries who may or may not have been acting behind the facade of ideology, or other such possibilities contributing to the decline of civilization (like lead poisoning) and/or global trade. memories of bad events that lead to isolationist policies die out quickly with the new generations, the impetus to global trade is instinctual and generally means more wealth for the elite of any given society, "isolationism" cannot maintain for long in societies with the capacity to reach beyond their borders. the history i am familiar with is a long arc leading to globalization from the time of antiquity, reductive comments on civfanatics notwithstanding.
 
I wanted to add a few things.
I think form the OP's list, (d) is unacceptable for most players and in terms of algorithmics, I can't understand how one can still write code that does that, nor how this gets past QA.
Otherwise, I understand the bugs listed aren't showstoppers.
I met just one showstopper in 91h of play: Rivers not showing on the map. I guess this one slipped through QA because it doesn't always happen, is not totally obvious, and seems related to one particular map script.

Overall, the product plays well and can proivde a lot of fun to anyone playing it less than 100 hours, which is good enough for most people I believe.

But as a programmer and modder, I looked at the code that IS available. Mostly the map scripts.
I find it not beautiful, to say the least.
It shows in some places lack of familiarity with the language used (some file has semicolons all over the place, in lua!)
It shows some bad design/coding techniques, in code that seems old, making it very brittle and hard to reuse.
The lack of familiarity with the language also shows in some constructs used (iterating on ipairs is slower than iterating on i = 1,#table for instance, which is also used, sometimes, but it's inconsistent)

The API exposed for map generation is rather poor. It's worse than Civ IV and V on release, less well documented.
It has some basic errors (like using global variables when it seems obvious they want local ones) which may cause the whole program to go down if they change a line somewhere else in the program.

For instance look at ResourceGenerator.lua line 398. score is a global variable. Yuck. Let's hope it'snot used anywhere else.
Loops: Compare lines 594 and 614. Why ipairs sometimes and1,N other times?
Or look at line 637 and despair about what "row" is. It's used as an index a few lines above, and then it's a global to which a table is assigned.

The code works. But it's ugly as hell, not half as efficient as it could be, and clearly in demand of some kind of code review and cleaning.
Just the fact they use a global instead of a local means the access to the variable is about 10 times slower than it should be.
Map generation does not seem to be that slow, but a good code review and/or someone who knew lua would probably speed the process by an order of magnitude, for the end-user.

Regarding the code we can't see (yet?):
From my point of view, the engine works mostly well. I do wonder if there was any point not using Unity. Endless Legend works fine with it, it's the same kind of game, was a new engine really needed?
Wouldn't have the money spent on making the engine be better spent polishing the game? I know Unity, as other engines, has bugs, so using their own engine gave control over these, but I think it's a strange decision.

Finally, I think most of the issues with the game are design issues. The UI is just plain bad in many places. It's not that bad when you are discovering the game, but it is really really bad if you want to use a lot of the features, due to bad design. It wouldn't have been harder to code a table instead of a list to compare scores for instance, but the player would have seen everything at a glance without having to scroll...
The AI is a bit of a separate problem. It's a design issue in the sense 1UPT + city protection make it difficult to efficiently attack a city after classical era, but it was also possible to fix. Suiciding 8 units against a city is better than letting the city snipe them one after the other. They might even take the city, whatever the cost. So this one looks like a lack of interest for the AI itself. I have problems placing why they tolerate that. It's really immersion breaking, but you have to "lose" to see it, and keep fighting against bad odds. I guess most people don't do that, hence why it wasn't fixed?
 
whose bronze age, what dates, and where did global trade stop? if one region or another declined, please substantiate that it was due to hostile ideologies, and not actually militaries or paramilitaries who may or may not have been acting behind the facade of ideology, or other such possibilities contributing to the decline of civilization (like lead poisoning) and/or global trade. memories of bad events that lead to isolationist policies die out quickly with the new generations, the impetus to global trade is instinctual and generally means more wealth for the elite of any given society, "isolationism" cannot maintain for long in societies with the capacity to reach beyond their borders. the history i am familiar with is a long arc leading to globalization from the time of antiquity, reductive comments on civfanatics notwithstanding.

I am not going to sit here and give you the Bronze age collapse 101. Also on the line "and not actually militaries or paramilitaries who may or may not have been acting behind the facade of ideology" tells you you are going to OTD nitpick anything I say to death anyway when you have that way of rejecting generalizations and want to act like exceptions are the norm.
 
The code works. But it's ugly as hell, not half as efficient as it could be, and clearly in demand of some kind of code review and cleaning.

How similar is Lua to Perl?

Edit: Maybe that's a joke other people won't get :(

Suffice to say, undocumented, poorly written at stupid-thrity ductape code... is very common on the internet. I feel your pain, but at the same time; I also feel we shouldn't judge Firaxis so harshly.

Take a moment to remember Toyota's bug: http://www.edn.com/design/automotiv...ler-firmware--Bad-design-and-its-consequences
 
Last edited:
I am not going to sit here and give you the Bronze age collapse 101. Also on the line "and not actually militaries or paramilitaries who may or may not have been acting behind the facade of ideology" tells you you are going to OTD nitpick anything I say to death anyway when you have that way of rejecting generalizations and want to act like exceptions are the norm.

no, you made an indefensible statement, and now you are backing away.
 
I am not programmer, I have no idea of software development.

There are here very strong statements on quality of programming, and just by the logical thinking (not by knowledge of programming) I can believe they are true. Just logically - I can see that something's broken (being just a player) - thus it's broken. And only if you manage to convince me that it is not broken (try to convience that AI is somewhat effective in any apect), then I can believe those that code is good. The reasons behind the poor state of the game are different story (and on that I have not knowlegdge to comment), but the fact is a fact. The game fails in many areas, especially AI. And again giving the arguments like "ci5" was even worse", "there are dedlines by publishers", or "you have no idea of programming" are not the really valid arguments.

And I can see that many people react aggressivelly, or at least give absurd arguments to defend the game. This is so called cognitive dissonance. This is a mental stress or discomfort by an individual who holds different values (in that case belief that CIV is a best series ever, an VI will be the best of all) when he is confronted with new fact (AI is terrible, the game is not finished). Some will accept the fact (that the game is broken), but others will use all the arguments, logical or not, to defend the game. But the arguments like - there are deadlines or civ5 was worse, are not those which can really defend the game.

Another point - we should not give the marks for potential. Beyond Earth had potential, but it was never made to be a good game. Civ5 was never really good game, without mods (thanks modders!!!).

And what bothers me more - even if there is a will and knowledge in firaxis to fix the game - I believe that it will take months or more. Obviously Scythia horseman exploit or trade exploit are (I believe) easy to fix, but rewriting (or writing form beginning) the AI to be decent will take very much time. The last paragraph is just my, not proffesionally backed, opinion. You are welcome to dissagree, and I will accept all logical arguments:).
 
Last edited:
Moderator Action: Please stick to the topic of the thread. Discussions of history don't have anything to do with the topic of this thread.
 
Top Bottom