I would like to make a few suggestions, while you are playing around in the code... The first one involves a few things, which may help a little, with housekeeping and reduced initial lag. The center area is "Protected", and there is a semi-safe area beyond that. Though, under the protected area is still the default block data. So, on a few instances, the server has to "restore" any destroyed blocks, while checking a whole lot of useless blocks. My suggestion here is to export the center area, shave the visible top to save, and replace the rest of the unseen blocks with bedrock. Not only does it compress better as data, but those blocks never get destroyed, and thus, do not require replacement on destruction. (Less server thinking and "checking".) Also, if you know the absolute level where bedrock is solid in the chunks, you can shorten the "watch" area, as you would do with the sky, which just removes placed blocks.) Now, for the area beyond this "Protected" zone, I suggest a "Protected Surface". Unlike the immediate replacement that the center has... I suggest an "in time replacement", like a daily server purge. Only the surface would "restore", not harming any built structures that are above the surface or mined areas below. The quick way to determine what should be protected as a surface, would be any block that sees the noon-sun. (Not including water surfaces, but including lands under water.) Extending that to a spread of 10-20 blocks would be sufficient for a reasonable surface protection. That will extend some bits into some caverns and under floating islands a little. Simply adding some manual "Restore" blocks where needed, to taste. (Since it is actually just a custom model/world of chunks, like the center, but limited to just the surface.) That area also possibly doing a kind-of smart "replenish", by expanding from unaltered blocks, a few blocks out, each day or server-reset. (Unfrequented areas will eventually swell back up to the default terrain, which isn't recorded, since only the altered terrain is all that is saved in data. Thus, making it faster to process for both the client and the server. Plus, it removes a lot/all of the junk.) There are plenty of holes and overhangs that we can dig through, to get below, to strip the unseen lands, without harming the overhead walking topology. While building without fear of anything other than griefers, above. (Having an area outside to count as "protected", would be a cool bonus. With the ability to reset it, returning contents to a universal "bank", for later use. Surrendering that small protected bubble back to anyone who wants it. Not a set grid, just an area centered around where someone stakes a claim. Possibly limited to X-rubies, and/or veteran status.) For those looking for unscathed resources, potentially away from all land-raped areas... The addition of a random teleporter would be great. Selecting an area untouched by anyone, and safely dropping someone there. Perhaps as a spectator, so they can find a safe spot to actually "land" or "solidify", before just throwing them onto a single floating block surrounded by a field of lava, 100 blocks up. Setting a respawn to that point, but allowing a "Home" option to work, while the bed exists, which the random teleporter will return them to, if they do end-up back at home, for any other reason. If they destroy the bed, that instantly teleports them home, and resets all blocks they altered while in that random-spot. (Think of it like an instance, but they could actually walk home from there.)
Just a note... This stems from the fact that we are essentially dropped into a land-fill (in reverse), littered with some great looking structures and some random ruins and many oddball "how high can I go" pointless towers of dirt. In addition to the fact that people are obviously using mineral-exposing mods to run directly for every single diamond and other valuable mineral, originating from the center of the spawn (which is oddly pristine among the dump-lands where surface-mining seems to be a goal of glass-makers.) Yet, amazingly, my structures underground from 2012 are still there. I wouldn't expect them to be, after all these years. My plot and all my home items disappeared, but my junk in the world is all there. Safer to build in the world "wild" than in the designated plots called "Home".
This suggestion is far more complex that would be necessary/useful. We have two wilderness worlds that you may visit. You have the frontier and the wastelands. The frontier is designed to be for exploring and outposts, HOWEVER it wasn't always this way. A certain 'project' got in the way of me continuing a manual clean up I was doing of these areas, but to devise a system that would do this isn't going to work. A program cannot tell what has been placed as a legit small little house and doesn't need to be wiped from the surface. Keeping players from building is fine in the protected zone, but you cannot expect for players not to build on the main land surface once they leave that protected zone and we can't force all players to build underground. The wastelands is reset on a semi-regular schedule and is meant to be a mining world. It only ever looks pristine for the few days after a reset. As for your bit about random teleports, Staff already get their fair share of 'i'm lost' messages. This would only add to that. We have outposts that you can go to set coords, North, East, South and so on... They are plenty sufficient at the moment.
Hm, interesting ideas. I think they're not all very efficient, though, and I think the random teleporter is unneeded and takes away from the exploration aspect.
A program can tell what has been placed, or not... It's called a snapshot, or the original world output. The game only saves edited blocks, not unedited blocks in a chunk. All the data in the file is something that has been changed. The default blocks are just a formula. You don't have to force anyone to build underground. You simply alert them that they are mining or building in a surface-protected zone, and all surface blocks will be reset daily. (So we can still rip through them, to get out or under ground.) Anything built in the air, (not removing a ground block), would remain in the area above. In that zone. It is just a "looks" thing. As for protected blocks, that is code that already exists. It is used in the "home" area. This would just extend that, or hopefully replace that. As for the "I am lost" issue... If you enter into a random spot, you are never lost, you just type "home" to go back to the spawn point, the bed. Next to the bed is the return teleport to bring you back to the "town", which is how you get there, or by typing "random" from "home", or in "town"... This is part of the reason I can't find an urge to support or promote these servers. It is more labor to find places to mine, and get there, repeatedly... In addition to having to walk through a post-apocalyptic junk-yard, to get to something that will eventually be griefed without reprimand, though a simple line of code would simply stop that from even being possible. All so that someone can build a half-structure eye-sore in town, where few even go, to spam the "live map", or they get tired of doing that, and just disappear. Like me. I had three completed lots, one was just for casual walkers, which there was never any... and one unfinished lot. I just couldn't tolerate spending hours to get so little done, as most of my time was going to these areas, and collecting my drops on accidental pitfalls trying to survive the raped-lands between here and there. Since all my purposeful bridges were raped for the obsidian, or just griefed for fun. Also, at that time, they still had not fixed the "earthquake" code, which kept destroying my lot. Apparently, one of my lots was at some kind of code intersection that always raised or lowered random chunks, shifting and destroying my creations. Was a chore to repair, since I had lava on my lot and a massive tree next to it... and livestock that kept getting killed. Or they would escape if the fences are what dropped in that quake. That funny sound you hear, but you never see anything happen, that is a world-quake. It raises and lowers land randomly to reshape it. Sounds like a digital eerie twinkle bobble-sound. Didn't make a sound in town, but it still did the land-shift updates. Those are almost impossible to "counter", unless you can detect them and have constant block-placement updates/saves. Too demanding. (Still not sure if they fixed it, but I assume they have.) Now I am running around, trying to collect and remember where all my locked chests were... Since my plots were gutted instead of just moved to an unoccupied land, or kindly saved in a bank. Since I was told to save all my valuables on the plot, and only my valuables saved in the wild now exist. (I am remembering just how far I had to walk, as I trace my footsteps.) 80% of the surface is dirt... The issue is actually part of that 20% remaining, sand, clay, coal. I get that the intention of "wild", was to build, and the other area was for mining... However, that isn't being enforced in any way. This would sort-of kill that need for enforcement, or maintaining a second and third world. Apartments would free-up "plots", for those who just have multiple profiles to rape diamonds/minerals only to sell them. Those are the naked plots with just a single treasure-box in the middle. Give them a "store" online, and an apartment which is just a mini subdivided plot with user-locked chests to the store. Same with disposable noobs, who are just visiting for a day or a week, but lock-out plots for 30 days to 90 days... People who have no intention of building anything or staying, after seeing the destruction or having something decent trashed... Or they just can't navigate these odd-ball commands and portals.
A program has to be told to remember data. Also, data =/= program. The program is what runs the server, the data is what is used to build what is sent to our game clients. While you could compare the original data to the current data, just because the data has changed does not necessarily mean that there is a straightforward change. You assume that there is an efficient way to determine if a block can see the sky based of current data. While the program that runs the server has a method of determining this, we can't just apply that method in comparing data. A whole new method would have to be made. The simplest way to do such a thing would be to add identifiers on to blocks. Thus one could just scan through the data list for various identifiers. But, here comes the problem. The data files are already absolutely massive. Even adding a few integers to each block would make these sizes get far too large. The larger the file, the more resources/time is needed to complete any task on it. This is how server lag is created. I would rather spend two times as much time getting from A to B due to poor land than four times the time due to rubber banding. This would make getting surface materials far too easy (as if it wasn't easy enough already). There is a difference between protected blocks and off limits blocks. Land protection is already being worked on, but it is not using MC spawn zone mechanics. What is the point of taking the challenge out of things? Value is derived based off of use and ease of access. If we all of the sudden erase all challenge related to the wild/wastes, item values will plummet. Also, there is no fun in a challenge-less game. Times have changed. Griefing still occurs but is much easier to deal with. Not sure what you are talking about lol. As far as I know, none of this has ever existed in MC, and for sure wasn't part of EMC. Your plots were deleted because you showed no intention of returning. Your items were safe in town, so long as you played. Data isn't free, there is no point in hanging on to data that's use has expired. You assume that there is an easy way to differentiate between the types of players. If that were the case, then we wouldn't be having this discussion, as it would be common MC practice to do whatever the solution is. Also, I would like to point out that there have been multiple updates that change the way worlds are generated. This could also potentially throw a wrench in regeneration code.
I really like your feedback and the detail you put into it. Makes me wonder what effect the condition of the frontier spawn has on new players. Do they get the impression that the wilderness is a wreck? Does this make them reluctant to explore, settle and build? The frontier is not as mangled as it might seem. Yeah it's trashed in some places outside spawn, but there are also huge never visited areas within 2-3 minutes travel. You just have to mentally block out the carnage that is the protected border to get there . I guess that's a problem, especially to people who aren't looking at the live map.
Since it is very hard to create a program to "fix" the landscape around spawns and further or correct in game maintenance issues where good old elbow grease is the way to go, we could implement a rehabilitation project. Players who break the rules, but are deemed worthy enough to stay can serve time doing community service. Give them an orange jumpsuit skin and put them to work. They must complete so many hours or a certain task based upon what they did or skill level at staffs discretion. This would help complete some of the issues with the coding problems by using our labor pool. Eventually the programming will have to be addressed but in the meantime.... why not?
Meh, I'm officially getting a little annoyed with the forums Anyway... With all due respect but I think that could cause even more problems than letting a program handle it, not to mention the demand which this would place on the staff to keep everything in check. The main problem, as I see it of course, is intent. Would those players really have the intention to help clean up the Frontier or is their main intent merely to serve their time so that they can get back online ASAP? Because that could be a major factor in some decisive moments. Let's say that such a player comes across a damaged wooden build and it's not really clear who made it nor are there any obvious signs of recent activity. Restoring it would require that the player heads out to get wood, actually repairs the damage and he'll probably also need to fix the roof. Would definitely take 30 or so minutes. The alternative is to simply remove the whole build, bonemeal the grass to make it look somewhat pretty, optionally plant a tree and we're done. Estimated time: 10 minutes. Of course not every player is the same, but I think it's much more likely that a player who only fixes things because he has to will more than often resort to removing the build, simply because its easier. Yet restoring it would actually be much more beneficial to the Frontier (and the maybe one day returning player). I really think that if you're going to entrust this to players then there must be a clear intent of actually wanting to make things better. Just my 2 cents obviously.
The earthquake code does exist, in MC and EMC. (Not sure if it STILL exists in EMC... But I still hear the sound and see the land changes in diff-maps, in MC. I am sure everyone hears the sound, but few ever realizes what it is for, or what it is doing. The changes don't usually happen in view. Most would just assume an enderman stole a block... but they only take one random block, and only sometimes, not multiple blocks from the same location. You can find your walls have sunk into the ground, or raised-up stairways, etc...) I will try to capture the event and the "sound"... I forgot what it is called, in the code... It is not called quakes, but that is what it was intended to represent. Areas of land, small ones, shift up or down. Usually by only one block, or two. You don't have to record the surface, you generate it again, using the code that generated it the first time. There is no data to save there. The point of seeds is that they produce the same exact results, every time. There is a code already setup to determine if a block touches the "Sun-Sky". That is a block that has only air/water/lava/leaves above it, and nothing-else. Thus, it is "the ground". Go ten blocks down, and that encompass all that is required to restore. I think it gets that data before water, lava, trees are generated. But you check block by block in each chunk by chunk, when restoring. If a land-block is not the same as what was generated there in code, you replace it. That is the "restoration". (Land-Block, not Air or Water or Lava or Wood, etc. I don't recall if the code looks past trees, but I know it looks past water.) Common resources are already easy to obtain. The issue is that once obtained, they leave behind a mess. That is what this was attempting to address. The whole surface isn't being mined, so the overhead to find the things needed to be replaced would be low. You could even have it progressively yield-out in layers, as more distant lands are less of an issue, and will be even less with this happening. I don't know why anyone mines dirt in the wild, intentionally. They have a whole plot full of dirt. Mine it, put it in a locked chest in the WILD, reset the plot, and mine again... infinite dirt. All minerals are infinite anyways. If the "wilderness/Frontier" is not for "mining", then why not replace all minerals with dirt/stone/gravel... Then people wouldn't be mining there for minerals. It would be a "building" world. For those who don't get the point, and keep strip-mining land, it would no longer be a comedic issue. Give them a warning, direct them to the wastelands, and all is good. The reason people are hesitant to mine in the wastelands, is the resetting. (Thus the reason random teleporting would be good, as less resetting is needed, and done when "we are done". The removal of the bed/spawn.) They don't want to build a whole mine-system and setup locked/protected chests, knowing that it will all be reset, making them have to start it all over again and lose valuables in the process. (Which could be avoided if valuables are not simply destroyed, but simply returned to a bank/vault for retrieval. {Mailboxes/Website/Center-of-town} Done prior to resetting, and only doing it for residents that actually still exist. Promoting the "claiming" process. Either in the /HOME or /WILD (frontier) in the protected land-spaces we claim. I say, it would be one or the other... Leave /HOME for shops and towns. Leaving the /WILD for "living", "mobbing", "exploring", etc... anything but mining for minerals and surface resources. (Trees being an exception, possibly.)