Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 11/09/22 in all areas

  1. Yes, I too have the problems you describe. Yes, they were present before v1.0 Yes, they are still present in 2.0.9 While client performance certainly drops when many objects are on screen, the problems you're complaining about aren't related to the number of objects, the speed of processors, or the latency of networks. I'm running a server on localhost, giving it 8 (out of 12) threads on a 5600X with 16GB of RAM. The server isn't using those cores much - and there's no way to strain the network on localhost. As for RAM, the client stays under 3GB and the server stays around 2GB. Resource-wise there are zero problems. The problem is clearly a multi-threaded deadlock. If the game had a 'single-threaded' mode that removed all mutexes and semaphores and TCP messaging, I'm sure it would run fine. I'm a C / python / etc programmer. I've written real-time systems with sub millisecond timing requirements. I've also done plenty of batch processing, API request processing... etc. Game programming is harder than all that. I think I've met two programmers in my entire life who had the chops to code a multithreaded game engine. Both of them make more money than any game company could pay. Multithreaded code is rare because deadlocks are very very hard to figure out. I've known quite a few decent programmers, and many very good ones. Almost none have the chops for games. In fact I'd say that if we confined the set of game-programmers to people capable of writing multiplayer engines, we would never see a real-time 4x space game. We'd be stuck with single threaded space games, because the top tier multithreaded multiplayer engines aren't simulating any part of the world where players aren't present. Lets take a tour. Elite Dangerous - Had roughly $1.8 million in funding. IMO the best space game available - also multiplayer. Last I checked it still has connection problems where you just get booted and can't log back in until the servers get rebooted. Is that a multithreading problem, a networking problem or a database problem? Don't know but it wouldn't surprise me. Star Citizen - $300 million (according to wikipedia). Unreleased even after 7 years. X - ALL SINGLEPLAYER. First 3 games were single threaded. First multithreaded game ("Rebirth") took years of development and released missing tons of expected features from previous games AND was super buggy for years. Egosoft even skipped numbering for it and launched their 5th game as "X4 Foundations" to convince their fans that they've re-implemented lost features that defined the first 3 games. Stellaris - Largely single threaded. Can't handle a heavily populated medium to large universe because they've coded an NP algorithm to update populations and they can't multithread it (and apparently can't optimize it although one would expect memoization would work well enough). World of Warcraft - Single threaded, Used TCP - lost packets would freeze the game. I had a Linksys router with a firmware bug that occasionally, but reliably miscalculated a tiny fraction of TCP checksums. WoW was unplayable because one lost packet and you lost control. Skyrim - primarily single threaded, zero networking, shipped without optimizations, a user noticed this and made a mod that restored like 20% performance by inlining just a few of the most important tiny function calls. I don't recall how many months (but multiple patches) later it they turned on optimization in a patch. The volume of fixes in 3rd party patches dwarf Bethesda's officially released patches. But enough of that - lets find out how much harder it is to write a multi-threaded program that actually uses concurrency without introducing deadlocks: If you have the problem and the chops, then whip out wireshark and a debugger and identify the source of the deadlock. I've seen entire codebases scrapped and rewritten from scratch because these problems are very tough to identify. Good luck, a lot of people will be very happy if you succeed.
    1 point
  2. This has been an error since color palette translation was implemented. About a few months. The reference where the translation is specified is 'data/rgb.txt:' However, 'data/rgb.txt:' does not have a translation tag ' " " t _ x '.
    1 point
×
×
  • Create New...