I’ve been really enjoying the game so far. But it feels like I’m going to abandon my current playthrough and not start another until things change.
Right now, I’m at this stage where every single mission spawns what feels like dozens of enemies. The problem becomes that a single enemy turn takes 2 minutes. I find myself Alt+Tabbing and doing other things - and just like that, I lost interest in playing. It seems that PP’s idea of increased difficulty toward the end-game is to just throw “MOAR ENEMYS” at the player. Why not take a page from XCom’s book and upgrade the enemies? Add armor, add weapons, improve the AI so that enemies feel like they’re communicating with one another - that sort of thing?
I also have 5 havens being attacked by other factions concurrently. Since nothing indicated to me earlier in the game that I will not have the possibility to recruit later on, it’s just another of those surprise mechanics that will force me to restart the entire campaign. I’ve had to do it a couple times before (like when my base was attacked for the first time and I didn’t see the advance notice, or knew to look for it), but honestly, it’s become tiresome.
I don’t mind the bugs, and I do think this game is superior to XCom - but I just can’t be bothered waiting 120 seconds for every 120 seconds of play.
It’s annoying, it also discourages me from playing.
They remind me of the times when im played classic UFO: Enemy Unknow (1994) on 386 DX40 with 4MB ram. Then enemy turns were long… but not as long as now at Ryzen 5 2600 @ 3.9Ghz.
I have a feeling that in a new production made many steps backwards despite huge increase PC technical capabilities.
This will not solve the problem completely.
AI when enemy turn does not use processor’s capabilities, which means that “thinking” lasts too long. MSI Afterburner shows a processor load of 10-20% (6 cores, 12 threads) on enemy turn. Because of this, AI runs almost as slowly on old i3 as it does on fast multi-core modern processors.
This is due to the fact that Unity does not support async or multithreading logic. Everything that happens is executed on a single thread, sequentially (unless async is manually coded into the game - and it is a nightmare to make work effectively in Unity).
I have noticed that sometimes, when an enemy is far away from LOS, and there seems to be no reason for them to be visible (but they are anyway), that they animate insanely fast, moving to a new position. So I do think they have that to speed things up when enemies are not visible.
It’s 2020, not 2005. Software development under a single thread is sloppy trash. The game was written too fast and cheap, without quality. In this way, they fail to create a successor iconic XCOM/UFO.
This is not the game’s fault or Snapshot’s fault. It is Unity, the game engine’s fault. Granted, they have the power to choose a different game engine if they have the money to license one. But if one uses Unity, your options are limited. Unity was not designed for intense games that would use multiple cores. As more and more people have used Unity for bigger games, like Phoenix Point, Unity has had more and more pressure to support async. They have definitely been testing it, and may be releasing async support in the next year or so.
And “Software development under a single thread is sloppy trash” is a pretty hot take. The vast majority of software does not need multiple threads. It is an incredible waste of time, and opens up incredible potential for some very serious bugs, when you use multi-threading and async when you don’t need it. In software, never do ANYTHING just for the sake of doing it. Always do what you do for a good reason. This single thread thing holds up less for video games, IDE’s, video editing software - but that does not mean that it is inherently the wrong choice.
As far as I can tell, there is nothing stopping a developer from spinning up Threads in Unity. The only issue is that the Unity API itself can only be called from the main thread. AI could be spun up on background threads to work on pure data objects. However, in a turn based game, you don’t have units moving at exactly the same time (one moves, affects the game world, then another does), so it may not be totally suited to multithreading. However, even in a turn based game I think that some aspects really would be suited for multithreading, such as calculating line of sight or fog of war - or possibly the overall strategy that the AI will use before it begins moving anything.
Parallel units AI looks very difficult because of:
The turn based aspect and linear sequence for units, unit1, then unit2. Pre calculate unit2 AI and update it from effects of unit1 actions looks very difficult.
The very flexible aspect of a unit turn.
I think a lot of complexity comes from the very flexible aspect of a unit turn. It was probably a design error that enemies use the same system, but with factions this choice seems mandatory, or could generate many different players complain on AI stupidity.
I think the AI would have to use multithreading to create an overall strategy before it started doing anything with any unit. Then it would start to move the units, sequentially, to complete the strategy. It would also need to be able to make changes to the strategy if the situation was radically different from what was known at the start of the turn (e.g. it’s not up against just the three units it knew about at the start of the turn at all - but actually six or higher get seen as its own units are moved - meaning the strategy has to be recalculated). I’ve no idea if the AI is programmed like this. It could be quite complex to make a system like this.
I’m not sure that would apply. I’d imagine the AI works through all scenarios recursively to determine which would have the desired outcome. If that is the case, it could be offloaded to multiple asynchronous processes relatively easily.
Besides the AI characteristics, I also never finished the game. It feels like there is no progress with a never ending grind of the same enemies on the same few maps with the same mission goals over and over again.
Hopefully the DLCs will resolve this.