That is where fibers make sense. I could easily divide one thread into two fibers that handle all input and output (I/O with tweakers).
That is basic compared to dividing threads among potential cores. Microsoft is blurring the line in-between cores, like ignorantly. Microsoft wants programmers for easier multi-core apps. It sounds neat.
That sounds like wanting to carry over the idea of database sharding into this domain, but it wonât work.
Letâs make it simple and say you have 4 map quadrants and you want to assign each quadrant to one thread and hopefully one core. Whatâs the problem with this?
The problem is what to do when you have two actors â players or NPCs â in very close proximity, but in two different quadrants. In other words, theyâre interacting across the quadrant boundaries. What do you do?
Suddenly you have a shŃtload of synchronization to do and a bunch of new bottlenecks for the whole system.
Iâm not saying multithreading or async canât help at all. Iâm saying that the idea of sharding the level across threads or cores is not viable.
Even if you didnât do simple spatial sharding, like dividing into quadrants, but tried to get clever by detecting localized regions of player activity that can be executed in parallel because theyâre isolated from each other, you would run into the same problem: what happens when something joins those regions? Maybe the players moved close enough, maybe another player logged in between them, whatever. Now what? How do you migrate the work from one of the threads into the other? Itâs doable, but itâs a headache and can result in a noticeable stall no matter how well you do it.
As @biglouis pointed out, going from UE4 to UE5 wouldnât be very helpful regardless of that paradigm. Those concerns are mostly orthogonal.
But all this discussion ignores the elephant in the room: upgrading from a heavily-customized UE4.15 to UE5 would be comparable to making this whole game anew. No, they wonât do it just because a handful of players think that a higher version number automatically means the game will be better.
No, they donât. The reason why threads were even discussed is because the (vague) idea was to make the game run better by taking advantage of parallelism on a multicore CPU. Fibers can help you with concurrency, but thereâs a subtle difference between concurrency and parallelism, and that difference matters a lot in this context.
In the boat of hoping Dune does well enough to just fund the next Conan.
Generally am talking out my arse here, but:
What could be wrong currently is some of the code is held third party. (Like how we had invisible animals forever.) I donât think theyâd have all the elements to just upgrade. Kinda like how High Rez is taking Smite and just making Smite 2.
I think thatâs what Iâve been talking about with the current setup being crippled.
As you and others have pointed out, the game would have to be rebuilt from the ground up. I also see that, but we all know thatâs not going to happen.
Iâve just been skimming this so I donât know if anyone has mentioned what is probably the main problem making a UE 5 âupdateâ quite impossible. When they started making CE no one on the team had any experience or real knowledge of UE 4. They figured they could just learn it as they went along. I mean, what could go wrong? No, really, thatâs what happened. And they broke things along the way thereâs no fixing and it is, I believe, a large part of why the game performs so poorly and always has.
So a UE 5 update would actually have to be an entirely new game built from the ground up. And I actually would have gladly bought such a game if they ever made it⊠but that was before FC was acquired by its evil overlords. So the CE that exists is my last rodeo with any FC products. I just kind of hope that before I die another, worthier, studio acquires a license to my favorite Cimmerian and his world.
Thatâs an old argument from Microsoft. It never handled streaming data beyond an image. Parallelism by logic conditions, yes. It was still very slow.
Context switches need to be quick while working with the matrix hardware and streaming hardware. This should be easier, now: Shadertoy BETA. It works fine with Edge.
None of us here were really talking about anything Microsoft-specific. We were talking about parallel execution on different CPU cores.
Regardless of whether youâre using threads or fibers or futures, your program doesnât get faster magically. You have to understand what youâre doing, and part of that is knowing whether youâre trying to take advantage of parallel execution for CPU-bound logic, or of concurrency for I/O-bound logic.
Threads can help you with both parallelism and concurrency. Fibers and futures and similar stuff will help you only with concurrency. If you want those to take advantage of parallelism, you have to be careful with scheduling them on appropriate worker threads and you have to try to ensure those threads have affinity with different cores. And even then, thereâs all sorts of buggery going on with caches and memory.
You do realize weâre all talking about the game server, not the client, right?
Game server or game client, yes I have made that distinction in code here.
Umm⊠okay. Those are your terms⊠okay. I suggest using ENTER and LEAVE. Otherwise, setjmp/longjmp is too slow and gets in the way on the stack, but it works.
The idea of the game running well till 20 players is not a universal constant. There are servers that struggle with half of that. There are servers that run well with double that.
If I am a developer and a player says, âI want to play on a server that can run well with 50+ playersâ
I can put in the 12-24 months of development time to switch the game from UE4 to UE5, cause thousands of mod authors to have to start from near scratch, have to pause all revenue generating content creation for that time (taking a financial loss for the duration out of the goodness of my heart).
Or I can tell the player to play on a dedicated box that doesnât instance the server with the appropriate hardware. And can continue to make content the generates revenue, and is the least disruptive to a large portion of the already established playerbase and community.
One of those options doesnât result in a better than even chance of putting an entire team out of a job in a very short amount of time.
And we have the perfect example for it. Ark made this move and recreated and recharge of course on Ue5.
What didnât change however is the team or the mentality of the team who created it the first place. So again ark even in Ue5 is facing similar game breaking issues.
In my country we use the sentenceâŠ
âÎλλαΟΔ Îż ÎαΜÏλÎčÎżÏ, ÎÎČαλΔ Ïα ÏÎżÏÏα αλλÎčÏÏâ
⊠for these situations.
Same goes to our beloved team here, the game may perform better on Ue5, may, but it will still have game breaking bugs.
⊠in terms of win32 exe or win64 exe, yes, but win64 is p2w.
In terms of âcapabilitiesâ yes. That discussion continues with login issues. Negotiate them.
Now Iâm talking about flow while listening to this thread. Hmm⊠You understand âflowâ, right? I can link wikipedia if wikis add more weight on the definition and history of flow. Okay⊠Iâm sure there is something better to work on here.
When I asked you how setjmp and longjmp relate to the discussion, I meant the discussion the rest of us have been having in this thread. You know, the discussion about whether switching to UE5 would make Conan Exiles better, whether the current problems with Conan Exiles server performance have anything to do with its threading model, and whether fibers could help with that at all.
What discussion are you talking about and in what way does it involve login issues?
Will that help me understand what youâre talking about? Because Iâm trying to understand what youâre saying, and every time I ask you to clarify, you reply with something that makes it harder to understand you.
At this point, I feel like I should ask you whether youâre doing that on purpose, as some kind of a joke or for some other reason.
At any rate, this time Iâm not going to stop trying until you either start making sense or explain that you donât want to make sense. Itâs up to you.
Welcome to my world. Can you understand any of the rest? Iâm not being a dŃck here, I literally donât understand what heâs trying to say, and Iâm starting to think that either somethingâs wrong with me, or heâs having fun at my expense.