2021.10.25 00:26 livefrmhollywood Theory for multi-threaded MC, or any large voxel/pixel program
Preface I realize multi-threaded Minecraft is a bit of a meme, but I want to discuss some theories around how it could be done if you had lots of money and time and such. I came across this because I was working on an old cellular automata project and realized I had no way to make it multi-threaded. If I could make it work on my project, the same thing would — in theory — work in Minecraft, right? I might try implementing the best proposal in my cellular automata project just for the heck of it, so this is not purely academic.
This is also extremely programming-heavy and doesn't really involve FeedTheBeast in any way, but this is the only place where I know I can find experienced Minecraft programmers. I know programming very well in general, but I don't know anything about Minecraft source code. And finally, I'm sure this problem has been solved somewhere before, but I haven't been able to find it.
- For the sake of argument, write this in any framework/language. For example, write it for Bedrock, Minestorm, or a Rust rewrite. It doesn't even have to be for Minecraft, just any voxel-based environment of sufficient complexity, like Minetest.
- True arbitrary multiprocessing. As threads/cores/memory approach infinity, so should performance. Putting lighting or chunk loading on a different thread doesn't count.
- Two block updates in different chunks which do not affect each other should usually run on separate threads.
- Focus on server only.
- Arbitrary number of players in a world is more important than arbitrary performance in a single area. 5000 players > 5000 cows.
Dynamically shaped regions Vaguely, each player gets their own region. All of the chunks in their region are processed on a separate thread. As they move around, their region moves with them. If two players walk close enough that their regions touch, you get a region sync and merge. This means no matter how many players are at a base, it still only runs one thread. All block updates that exit a region add those chunks to the previous region. When a redstone line runs thousands of blocks into unloaded chunks, the region reshapes to include all of them. If the redstone line activates a chunk loader, then all of those chunks get added to the region as well. Each dimension would always have separate regions, so going to the nether would not cause a region merge, it would just move the player over to the other region. Same with teleporting to an area, it would just check if there's already a region there or create a new one.
The worst case of this system would trend towards one giant region, such as if the players are kept close to spawn by a world border. The best case is players and bases spread very far from each other. You could even combine several less laggy regions into a single thread to more evenly distribute the lag over many cores. But, of course, the average case is somewhere in between, so this would not have perfectly evenly balanced core loading. Some areas would still be laggy, but players would learn to spread out more if they want less lag.
A single thread would run all global processes that are time-critical, such as chat messages, global commands/command blocks, and running the global clock. Two regions sync by checking how many ticks out of sync they are and jumping forward to a point in time where they are both the same. For example, suppose a very large laggy region at spawn and a player walking back to spawn; the player must sync with the laggier region. Then the regions merge by moving all the chunks processed by one thread into the list of chunks processed by the other thread.
I am speaking rather flippantly about some of these technical details mainly because I don't know how they work, and I'm not sure they matter anyway for this high-level overview. I also imagine moving chunks from one thread to another could potentially be incredibly expensive, although a loading screen would not be out of the question in that case.
This system would be perfect for anarchy and technical servers, which already spread out a lot. It's relatively simple to understand and doesn't require enormous changes to core code. Whenever there is any discrepancy between how something would work single vs. multi-threaded, you merge the regions first. But this would do nothing for tighter nit servers where players congregate in a single area, or for farms/bases that require more than a single thread.
I had another idea for something much more complex (each subchunk could be its own subregion), but it's clear that all the issues with multi-threading are why this has not been tried. The first idea only works because it avoids them entirely. Any time an event would cross chunks, the chunks have already been merged. In certain specific workloads, it could be worth it, but it just isn't worth it for any voxel environment that gets content updates and mods. I'm sure sharded databases or web services look similar to this, but those are designed for a much less dynamic set of requirements.
Conclusion What do you think? Could this work, or are there issues I've missed? Does this already exist somewhere? Is there something better? Let me know what you think!
Also, please let me know of specific other communities where I could post this. I suppose this is general enough for just programming, but I'm not sure.
submitted by livefrmhollywood to feedthebeast [link] [comments]
2021.10.25 00:26 baselwaleedaraim I will have around 400 k , what improvements do you guys think i need, i think tchuemeni might need to be changed, let me know
|submitted by baselwaleedaraim to fut [link] [comments]|
2021.10.25 00:26 alonzoramon These absolute idiots spotted in Austin, TX
|submitted by alonzoramon to texas [link] [comments]|
2021.10.25 00:26 ultravioletsaint RAM UPGRADE on ASUS TUF 505DT
I am thinking to upgrade my RAM for Valorant, it is an 8GB default RAM stick.
Please suggest me whether I should buy a 4GB or an 8 GB stick,
It would be really helpful if you share the links and tell me more about it.
submitted by ultravioletsaint to ASUS [link] [comments]
2021.10.25 00:26 LigmaPsycho Quick fix through standard health facility drug screening?
Was wondering if anyone had any personal experience with Quickfix. I might have to take a FedEx delivery job pre-employment test and I know they do pre-employment tests through the urgent care facility near me. I bought a Quick Fix belt preemptively because a detox isn’t really plausible. They said they reply within 13-15 days then responded saying they were interested within the hour. What odds do we think I’m looking at? 😭
submitted by LigmaPsycho to drugtesthelp [link] [comments]
2021.10.25 00:26 Howiebiemeck Debut Single “ARSON” by LoftRiot drops 11/12/21 on all major platforms! Check out our Instagram to pre-save and for a sneak peek at the song! 🤘🏼🤘🏼🤘🏼
2021.10.25 00:26 sparkmat Suicide Branch for Trade
2021.10.25 00:26 Ok-Coconut-6839 。。。。。 who can help me
2021.10.25 00:26 admiralBOT1 After lots of beta the keyboard spacing between asdfghjkl and zxcvbnm are not proportion
|submitted by admiralBOT1 to android_beta [link] [comments]|
2021.10.25 00:26 egk001 I see no difference
2021.10.25 00:26 Corporal_of_crabs Rear legs are backwards, this is in Leominister, Massachusetts, USA
2021.10.25 00:26 sntnn Reaping the wind turbines: the little town in the Great Dividing Range split by green energy plan
2021.10.25 00:26 tvdinner4me Weighting of G3 swatnums
2021.10.25 00:26 RichyCigars I laughed when the tour guide warned us the fruit was venomous.
2021.10.25 00:26 Aware_Library2718 Stephen A. questions whether Zach LaVine & DeMar DeRozan can fit together on the court | First Take
|submitted by Aware_Library2718 to chicagobulls [link] [comments]|
2021.10.25 00:26 False-Fisherman I think some of us are a little too enamored with Ime...
|submitted by False-Fisherman to bostonceltics [link] [comments]|
2021.10.25 00:26 Nyah_Chan All star host not at top of search results?
Hi so I’ve recently become an all star host… I have 5 cars on Turo, all priced accurately and cheaper than most, all have lots of trips and high reviews… desirable vehicles
I was expecting when I became an all star, my cars would be higher up in the results (there isn’t much competition in my area either)… but instead they’re basically at or near the bottom with the cars that are severely overpriced or that never rent
I’ve noticed a lot of other all star hosts are in lower results as well, but others aren’t? Yet the cars at the top are not all star and have barley rented if not at all and are not desirable nor cheap… I don’t understand?
Anyone have any insights?
submitted by Nyah_Chan to turo [link] [comments]
2021.10.25 00:26 ReconRevenge Help US Commander RAN! please have StarLauncher Giveaway for USA Residents!
Hi Ran! Help us enter please! After exhaustively completing the IDO registration process, we are now informed not open to USA. Can you have some type of entry for USA? I know you giveaway a lot of stuff but 90 % of them are out of USA winners. Food for thought, we are a HUGE part of the community but are becoming more more excluded from the wife changing opportunities.
Help US Obi Ran....
You're my only hope!
submitted by ReconRevenge to CryptoBanter [link] [comments]
2021.10.25 00:26 Interesting-Glass-21 How can I file an external complaint about my private school?
2021.10.25 00:26 Muffinkingandcookke If this post reaches over 69 then I’m deleting it and reposting until it stays 69
|submitted by Muffinkingandcookke to memes [link] [comments]|
2021.10.25 00:26 samrf1202 This subreddit needs a Player v. Player (PvP) discussion flair
This thread would be for dropping x player to acquire y player and discuss the move and ask the community why they think it was a good or bad decision.
This could also be applied in trades where OP trades x player for y player and wants to discuss with the community about the move.
I’ll start: Although De’Anthony Melton has been balling out with the absence of Dillon Brooks, I made the decision to drop him and acquire Josh Giddey. I think Giddey will provide long term value to a struggling OKC team where him and Shai are the top 2 options on the team. I think I made the right move but I was wondering what you guys think, will Melton still be valuable when Brooks comes back or does Giddey provide better long term value for a struggling OKC team?
submitted by samrf1202 to fantasybball [link] [comments]
2021.10.25 00:26 darlingplyb Please bring back those items 🥺
2021.10.25 00:26 coleswrrld is Ready Player One voxel or triangle based graphics?
after watching ready player one for the 9th time and seeing the log out animation and the hologram animation in the scene when Parzival talks to Dickweed nolan sorento it seems the "in-game" graphics are made up of small cubes indicating it could be voxel based.
Curious to see what the communities thoughts are on this and if you think the future of gaming will be voxel based or what we already have in the industry.
submitted by coleswrrld to gamedev [link] [comments]
2021.10.25 00:26 V4ULTB0Y101 So... Thoughts on Anti-venom
What if halfway through spiderman 2 venom, like in the comics has a piece of him turned into Anti-venom by Mr negative I would like to know if this is possible according to the story of both previous games
submitted by V4ULTB0Y101 to SpidermanPS4 [link] [comments]
2021.10.25 00:26 adchiasedotcom Rammus Tốc chiến: Cách lên đồ, bảng ngọc và combo chuẩn mạnh nhất
| Rammus - Tê Tê Gai là vị tướng đấu sĩ đỡ đòn sở hữu bộ kỹ năng có độ linh hoạt cao. Rammus có khả năng phản dame rất đáng sợ, khả năng áp sát mục tiêu rất nhanh chóng kèm hiệu ứng khống chế rất khó chịu. Đây là vị tướng mà những vị tướng xạ thủ đều phải e dè khi tấn công hắn.|
Hôm nay mình xin gửi đến các bạn bài viết hướng dẫn cách chơi lên đồ Rammus Tốc Chiến và bảng Ngọc bổ trợ cho Rammus , trang bị full sát thương dame của cao thủ kèm thứ tự tăng bộ kỹ năng và phép bổ trợ, combo Rammus khắc chế mới nhất trong game LMHT Tốc Chiến.
Chi tiết: [Rammus Tốc chiến: Cách lên đồ, bảng ngọc và combo chuẩn mạnh nhất
submitted by adchiasedotcom to adchiasedotcom [link] [comments]