Unreal engine 5

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. :thinking:

1 Like

Thank you for the ELI5, honestly. This has been way over my head.

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.

1 Like

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.

I heard UE5 has the better version of how it reads game data, so while now servers starts to hang up on 20 players, then it maybe will be on 50 + :smiley:

conan basically is more a ‘‘singleplayer’’ on UE4 than multiplayer thanks to mega lags when more than 20 players are online :smiley:

No, it won’t. The reason Conan Exiles performs badly with 20 players online is not about “reading the game data” :slight_smile:

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.

1 Like

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.

6 Likes

Yup. That’s it.

1 Like

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. :upside_down_face:

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. :upside_down_face:

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.

To be clear, they aren’t my terms at all. I didn’t come up with those names or concepts.

Are you referring to x86 instructions? Or something else?

Can you elaborate how that relates to the discussion?

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.

3 Likes


 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
 :thinking: You understand “flow”, right? I can link wikipedia if wikis add more weight on the definition and history of flow. :laughing: 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.

2 Likes

Eh, what the heck are you talking about “win64 is p2w” ???

Surely, you’re not suggesting we regress to 32bit architecture.

1 Like

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.