[1.0][WIP] Real Ruins

Started by mr_teterew, October 27, 2018, 04:25:55 PM

Previous topic - Next topic

mr_teterew

Quote from: Morbo513 on November 02, 2018, 01:07:10 AM
Interesting, I'm 90% certain the one in the OP image is the one I built, but the doors were plasteel autodoors and there was a normal vanilla vent where the collapsed rocks are.
Yeah, that screenshot was taken before steam workshop upload, so there were just a couple of blueprints :)
Doors are downgraded to keep value lower as most blueprints have autodoors everywhere and keeping them is pretty OP.

QuoteWill you experiment with different parameters for ruin generation?[/qoute]
At last there is a proximity dependence of ruins density and remaining stuff. In wilderness you'll have small shacks, but pretty much untouched (or even no shacks at all), and near cities you'll have much more ruins, but pretty empty. What I want to do now is to add special encounters where you can loot an entire base, but with another party raiding it at the same moment, or full of mechanoids (so to get valuable loot you have to fight them)

mr_teterew

#16
Quote from: raydarken on November 07, 2018, 10:30:02 AM
Hi mr_teterew, thank you for your hard work on this mod, I'm one of your patreon supporters! I love this mod that much haha.

Anyway, I was interested in making a local backup of my downloaded ruins files but I couldn't find the storage location of the ruins files. I'm using Windows 10, can you let me know where those files are located? The reason I'm interested is because it never hurts to have backups, and in case something crazy happens to the server or if things get messed up by bad uploads somehow I'd like to have the ability to restore a set of ruins which I'm confident are working well for me now.

Thanks!
Thanks for your support!
Cache files are stored in one of those places depending on mod origin:
If you have got the mod from steam, search at [YOUR_STEAM_LOCATION]\steamapps\common\Snapshots (Yes, it's located on the same level as RimWorld itself)
For manually installed mod all snapshots are stored in Snapshots subfolder of the mod folder.
In both locations you should have a lot of .bp files (which are archived versions)

Besides that I'm planning to make a pretty large subset of blueprints which are now on the server and insert it into mod distribution package (or place as a separate file somewhere on github) to provide some initial variety of ruins.

PhantomFav

#17
I have played various hours during this week, and I am truly amazed at all the different situations I have found myself in. First, some positive feedback:
-I found a ruin, but it was protected by a mechanoid, so because I was in the early game, I had to us a rocket launcher hidden in a room to destroy it (I partially destroyed the ruin too with that shot);
-I found a river spawned in the middle of a ruin, and all its objects scattered on the floor of the river itself. It almost seamed a flooded environment (coincidentally, it was raining when I arrived), abandoned by its colonists;
-In the middle of the desert, I discovered three rooms: one was a bedroom, one was a dining room and the last one was filled with skeletons and sofas. The creepiest part of all, was that the the floor of what seamed the kitchen, was covered by human butchered flesh... coooool! Was that a coincidence?


Negative feedback (things I think should be fixed):
-Sometimes, ruins are lighted by fully burning torches and campfires. Is this a legit thing for an old ruin?
https://i.imgur.com/DgNV6N7.png
-Often doors and furniture, even if claimed, appear as unclaimed object i.e. when drafted, pawns try to destroy them when they try to occupy the same tile. This is particularly annoying when you try to place a man with a melee weapon, in place of a door or a chair, to block enemies;
-Sometimes, easily perishable things (food especially) are found in the middle of a ruins. This destroy a bit the sense of ancientness;
-Sometimes, ruins are built on rivers, and this modify the terrain where walls were built (i.e water tiles became normal earth tile).

Thank you again for this extraordinary mod!

avilmask

Visited "abandoned base" once. It was really huge base with a lot of expensive and rare stuff. But also there was ~30 raiders beating on local defenses that was still in tact (working on all those infinite energy generators). Drooled for a minute and GTFO from the place. Maybe 4-5 ingame years later I'll revisit this event again...
P.S. Maybe generate events scaled to your own wealth, using smaller patterns? Visiting super late game bases as tribal starter is fun, but only to give it a glance and run away. Also description of a mission could give a hint, how big is local threat (I could beat 10-15 raids with just two guys, and was caught completely off guard by local raiding band).

LWM

Quote from: mr_teterew on October 28, 2018, 02:24:02 PM
walls are needed for all room-based mechanics to work, and closed rooms also have one very important thing inside: fog of war. So I'll definitely try to find a way to degrade custom walls to stock ones. In current blueprints there is no way to determine if an item is a wall or not (if corresponding mod is missing)...
Perhaps on upload the mod can replace all impassible non-stone (i.e, manmade) structures with "wall structure A ("concrete")" "wall structure B ("adobe")", "granite wall", "limestone wall", "wall structure C ("grass")", etc.  Then perhaps on download and instantiation, the mod could check if the current user has "concrete" and if it does use that...otherwise, use a random stone.....or a random impassible mod item!

So maybe one user upload NeoTitanium walls, but the only wall mods I have are concrete, so I get concrete walls when I find their ruin.

Just a thought.

This all sounds delightful!

--LWM



NobodyImportant

Another thing that will enhance the gameplay experience waaaay beyond the scpe of what vanilla offered.
Awesome :D

Here's a couple of suggestions:
-10-20 tiles seems *very* small, especially when considering that you essentially obliterate the outer half with progressive decaying of walls first and then even floors. The upper limit should be increased to at least 30 if not 40, because as it is the ruins will end up smaller than some of the vanilla structures, not to mention mod structures.
-Even now, but especially if you do end up increasing the selection circle, the decay should be enhanced. If there's multiple core rooms, detonate a devtools explosion slightly above the size of the room in one or two for example. This way some of the adjacent core rooms might be damaged as well, and the whole thing would look less like a concentric thing that is just pasted into a random environment, but something that looks actually more intricately damaged. Because if the pattern of damage is simple and predictable one automatically continues the cut part of the structure in ones head outside of the limits of the cut, possibly running into problems where the structure seems to lead somewhere only to end in a rock wall right outside the bounds of the copied area. (minecraft worldgen for villages often ran into this)
The more intricate and unpredictable the damage looks the less one can continue the copypasted part in ones head and the less one will run into the problem above
-I don't know exactly how deterioration works, but destroyed walls shouldn't just leave rubble behind, but instead chunks of the appropriate material. That way deterioration would seem even more gradual around the edges.
-As for cutting server load: have you thought about keeping the saves themselves on your server and only sending out the copied parts of the home area? Granted that would increase the processing load for the server, but it would cut down on the data.


Juanvaldez

This is probably the coolest mod I've used, it's great to come across actual ruins of other people's bases, and adds much needed variety to the structures you find in the base game. Amazing work.

Only issue I've come across is that ruins spawn on caravan ambushes, which makes them way more dangerous than usual. I just had a one man caravan get ambushed by one raider, but my pawn spawned about 4 squares away from a mechanoid lancer, i didn't even have time to get into cover or anything before he got shot. Killed the raider and mech but bled out and lost the caravan. This has happened to me a few times.

Is there any way you could disable the added creatures on caravan ambush maps? Or barring that, stop ruins from spawning only on those maps? It makes caravaning much more dangerous, and kind of breaks the obvious intended balance when you can spawn literally next to a mechanoid with no time to react.

Anyway thanks for your work, i really love the mod and haven't had any other real issues.

RicRider

I can't wait till you roll out the work you've done on raider base assaults using player designed bases! This mod is extraordinary.
##Coding Scrub##

mr_teterew

Quote from: avilmask on November 26, 2018, 08:44:40 AM
P.S. Maybe generate events scaled to your own wealth, using smaller patterns? Visiting super late game bases as tribal starter is fun, but only to give it a glance and run away. Also description of a mission could give a hint, how big is local threat (I could beat 10-15 raids with just two guys, and was caught completely off guard by local raiding band).
Honestly, I don't like concept of "well balanced carefully constructed challenges" very much. After all, you're nobody on this planet, and no one will ever care if you can or can not beat another adventure :)
So, since it's not a direct threat to you (like raids) and it won't lead to losing the game in case of failure, a base bluepring is selected absolutely randomly. Decision to visit it or not is always up to you. In any case, the most you can lose is a couple of days of in-game time to travel to the base and retreat back. Also visiting a base which is too tough for you right now makes a new end-game goal for you which is also well on my opinion.

Quote from: LWM on December 03, 2018, 01:04:41 AM
Perhaps on upload the mod can replace all impassible non-stone (i.e, manmade) structures with "wall structure A ...
Yep, there is still no way to detect if thing is a wall or not, but the game checks for impassability and occupied space and I do the same. So every impassable block which occupies the whole cell is counted as a wall if it can't be restored as is. I tried to use collapsed rocks, but it looked pretty bad so I switched to random walls. Maybe one day I manage to draw a special "crushed wall" tile :)

mr_teterew

Quote from: NobodyImportant on December 18, 2018, 08:52:48 PM
Here's a couple of suggestions:
-10-20 tiles seems *very* small...
Now two separate settings for lower and upper bound, up to 64. And it's radius, not diameter, so you can actually get 128x128 pieces

Quote from: NobodyImportant on December 18, 2018, 08:52:48 PM
-Even now, but especially if you do end up increasing the selection circle, the decay should be enhanced. If there's multiple core rooms, detonate a devtools explosion slightly above the size of the room in one or two for example. This way some of the adjacent core rooms might be damaged as well, and the whole thing would look less like a concentric thing that is just pasted into a random environment, but something that looks actually more intricately damaged. Because if the pattern of damage is simple and predictable one automatically continues the cut part of the structure in ones head outside of the limits of the cut, possibly running into problems where the structure seems to lead somewhere only to end in a rock wall right outside the bounds of the copied area. (minecraft worldgen for villages often ran into this)
The more intricate and unpredictable the damage looks the less one can continue the copypasted part in ones head and the less one will run into the problem above
Explosion damage will mostly reduce hit points and make random holes in walls. It's pretty much the same as the current deterioration mechanism do: damaging everything and destroying random blocks (making random holes in walls)
What I want to do is to make major changes to ruins shape, but it will require another approach, probably some kind of masking via perlin noise or so, similar to landscape generation.

Quote from: NobodyImportant on December 18, 2018, 08:52:48 PM
-I don't know exactly how deterioration works, but destroyed walls shouldn't just leave rubble behind, but instead chunks of the appropriate material. That way deterioration would seem even more gradual around the edges.
That's difficult, because can't be solved in a generic form. Each wall has material, but the material for granite wall is not a granite chunk, it's granite blocks. So, stone walls should leave stone chunk, steel wall should leave steel slug (which is also not a wall material, and is named not "chunk" like for stones), wooden wall should leave.. don't even know what. And it becomes completely unpredictable for mods. So for now just rubble, sorry.

Quote from: NobodyImportant on December 18, 2018, 08:52:48 PM
-As for cutting server load: have you thought about keeping the saves themselves on your server and only sending out the copied parts of the home area? Granted that would increase the processing load for the server, but it would cut down on the data.
That's exchange of bandwith to processing power, because preprocessing will require the server to unpack, analyze and repack data, which will probably require even more money to support. Luckily, right now I manage to keep costs pretty low, patreon donations almost cover expenses.

mr_teterew

Quote from: Juanvaldez on January 09, 2019, 01:05:10 AM
Only issue I've come across is that ruins spawn on caravan ambushes, which makes them way more dangerous than usual. I just had a one man caravan get ambushed by one raider, but my pawn spawned about 4 squares away from a mechanoid lancer, i didn't even have time to get into cover or anything before he got shot. Killed the raider and mech but bled out and lost the caravan. This has happened to me a few times.
Ok! Added 10 cells safety border around map edge. Even if mechanoid spawns 10-15 cells away from you, it won't attack you, because enemies are set up to protect nearby buildings.

TheSurvivor64

I'd love to get a large caravan of people, exploring ruined cities filled with zombies, insects and occasional survivors  8)

Anomaly

Thank  you mr_teterew for bringing us this mod. There are a few things to work out but it already feels like something that should be a part of the vanillia game.

As others have said, I hope to see this used to replace the bland faction settlements we have now. It will need some balancing to figure out how much wealth and defense a settlement contains but that looks like something you will have to deal with in the course of finishing the mod as planned.

One issue Ive come across is when intact ruins are found and I send a team to explore. I wipe out the existing defenders and find that I'm unable to reform the caravan due to there being an enemy on the map even though there are only corpses. Is this intentional or the vanilla code throwing a fit over me suddenly having a whole new base?  As is, I begin to get seemingly endless raiders attacks shortly after.

Vehicular_Zombicide

Is it possible to settle in the ruins generated by the "Pristine Ruins" even, using either vanilla or the Set Up Camp mod? It would be awesome to be able to take over an untouched base to expand your colony's influence without having to build from scratch.

litesung

I'm running into this issue when loading the mod.

[Misc. MapGenerator] Patch operation Verse.PatchOperationReplace(*/MapGeneratorDef[@Name = "MapCommonBase"]/genSteps/li[text() = "ScatterRuinsSimple"]/text()) failed
file: C:\Games\Rimworld\Mods\Miscellaneous_MapGenerator\Patches\MapGenerator_Patch.xml
Verse.Log:Error(String, Boolean)
Verse.PatchOperation:Complete(String)
Verse.LoadedModManager:ClearCachedPatches()
Verse.LoadedModManager:LoadAllActiveMods()
Verse.PlayDataLoader:DoPlayLoad()
Verse.PlayDataLoader:LoadAllPlayData(Boolean)
Verse.Root:<Start>m__1()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__1()