Just a notification of intent and opportunity to get some feedback before I got too far.
Per my commitment in #23740, I have begun working on an overhaul to replace the generic "wall" with actual wall types. I wrote a python script that will look at a building's json file and makes interior and exterior walls different. My initial plan was to simply add a few new wall types and replace the use of t_wall with them however, I thought of a way to add a lot more variety with relatively little additional work.
Since prefabricated siding comes in all sorts of colors and types, changing the type of walls used is an easy and realistic way of adding more variety to the game. If in the building's json file a "construction style" field is added, the walls could be id'd as simply "interior" or "exterior." This way mapgen could pick wall types from the construction style and apply them to the entire building when it gets generated resulting in lots of variety from the same set of json files.
I'm planning to split the overhaul up as follows:
Part 1: Addition of new wall types based around wood and steel framing construction techniques.
Part 2: Defining construction styles. (eg. housing_cheap = interiors: drywall exteriors: pink_plastic_siding, dark_gray_plastic_siding, green_aluminum_siding, etc, )
Part 3: Addition of new construction/disassembly recipes and components for walls added in part 1. (not actually interested in doing this but they will need to get added)
Part 4: Modification of mapgen to do realtime wall type selection. (might need help here as I have never so much as looked at the mapgen code before)
Part 5+: Conversion of json building files to new format.
As a map maker, I think this is a lot of unnecessary work. both for you coding it, for future people creating maps. and for tile set makers.
If it comes to manually adding the wall variants, I probably wont care enough to add extra entries to the pallete I work with, its quite starved for symbols as it is, and searching for wall Id's in "terrain.json" is just to much work for slightly different wall names and colors, especially id Im doing big structures or a big batch of maps. And I'm not the only one to think like this. Proof is the general lack of buildings that use painted walls and rugs, we have had those for almost three years and barely any maps use them.
I also doubt most players will notice or care , never seen someone paint their base's walls or install rugs in all the time I've been in the forums.
It's changing t_wall to either wall_in or wall_ex and picking a construction style like "house_poor","house_rich" or, "commercial"
t_wall will still work so future map makers won't need to bother unless they want to. As for tileset makers... idk what to say. Personally I can't stand using tiles and was just planning on changing color in curses...
I like the general initiative, not only because I really hope to be able to build equivalent of current default walls to expand buildings while allowing them to maintain uniform look.
A very important part regarding building but which should be a part of the overhaul if it's meant to be a proper overhaul: currently walls cannot be really deconstructed well without becoming a considerable risk of toppling whole section of the building down. You basically can just bash them and hope for the best. Ability to disassemble parts of the wall and roof without causing such damage (maybe requiring point higher in fabrication?) would solve those issues people are bothered with and which make it harder to build serious stationary bases since a long, long time.
Now, two things that are part of the overhaul I'd argue would actually be issues and make some things potentially worse:
I am very suspicious about styles of building. No such thing really happens. You may do a shoddy work at finishing it up, but no matter if you're building a luxury mansion or a shed, if you want to build it, for example, using bricks then you'll build those walls in exactly the same way using comparable, commercially available materials - it's just the former will also be spiffied up afterwards or the bricks you'll use will be a bit more aesthetic ones, while the latter may be left ugly as you didn't bother to scrub excess of mortar pushed out from between the bricks and the bricks you got are uglier themselves. Possibly in the latter you fouled the mortar a bit as well, adding slightly more sand so it'll be cheapier.
But, to underline again, the way you build the wall will still be the same. You will still need to gather materials, be they fired clay or fancy space-material bricks, get something to bind them together (unless you build a dry stone wall which is very possible and even surprisingly sturdy - but takes a much longer time) and start stacking the things. If you build some other type of wall altogether, it also will take as long for walls of similar type - no matter if you nail the panels together when those panels are some obviously cheap woodboard or fancy, genuine-wood-looking ones, the work is the same almost all the way (the latter may require slight finish and perhaps you'll have to pay slightly more attention, but that's about it).
Really, rather than styles there should be simply additional step of construction - so if you'll build that brick wall, you can either plaster it or leave it raw. The same how it is currently with windows which may be left bare or have some curtains added. That way you'll have considerably longer time building (some of, it shouldn't be the same for pre-fabricated panels and whatnot) 'pretty' walls naturally, without a need to add any special mechanics.
Lastly, I am against mechanical distinction between interior and exterior wall. Sure, some types of them befit certain role better but in reality, if you want to make your exterior wall a polished wood panels and interior a dry stone wall - you certainly can. Some people did. Given that the walls will already have different qualities and what type of them one should choose will follow naturally, I find both unrealistic and simply unnecesarily restrictive, and even simply unfun, to force upon player which can be built under what circumstances.
I've done a weee bit of construction in game and real life, I'll be the first to admit I wouldn't use custom walls but if the script designated interior from exterior that would be a nice boon. Less interested in color and more the ability to rearrange interiors. Generally modern house construction in NE usually only RELIES on exterior wall to be load bearing. The bigger the house, the less likely this is true. It would be nice to take a sledge and crowbar to deconstruct all of the interior walls in a house and rearrange them. Smashing three walls to get material to build one hasty dry wall barricade to seal a hallway is something you could do in an hour in real life if you didn't care what it looked like and had all the walls in the world to smash for material. 5 2x4 and double the dry wall need for a real wall for a quick wall (literally overlap dry wall, you only have to do one side to make it opaque). I could see me doing that in game.
Major uses for exterior walls would follow deconstruction methods:
Aluminum Siding (tons in PA) strip that shit off for valuable aluminum leaving plain walls
Asbestos siding (often under modern siding) asbestos is great for forages/metalworking, its fiber/cloth that doesn't burn
Vinyl siding for plastic chunks
Metal frame buildings are obvious but they also often times use blue foam board insulation that is easy to recover and can be implemented if someone get around to expanding temperate mechanics.
I'd say it wouldn't be a bad project to make construction a bit more interesting.
@acidia
I am fine with the being exterior/interior walls in a way of game deciding which are load-bearing but the thing is that the suggestion seems to be dividing what walls can be constructed as which, with different styles. If game's internal mechanics check the building and define certain walls as load-bearing for itself it's okay, but forcing people to redesign all building 'prefabs' and then make it so only arbitrary choices of walls are allowed under certain circumstances is not a good way to go about it.
So yeah, I agree with you in that it could work if it'd be simply a script dividing which are interior and which exterior, but having simply two different construction types with divided recipes - interior walls and exterior walls that have to be flagged as such in every construction and currently existing building json by hand - is a slightly different thing.
have to be flagged as such in every construction and currently existing building json by hand
I wrote a script to convert the json files from using "t_wall" to "interior_wall," "exterior_wall" and, add a construction style. It will still take a while since right now you have to run it only converts 1 file at a time but even then we are talking like ~30 sec a file tops.
Why all the complexity? One can simply add necessary t_wall_interior_exterior_whatever
terrains when creating new overmap terrains and use it in mapgen definition.
when creating new overmap terrains
So it can be applied to the ones that already exist?
So it can be applied to the ones that already exist?
I don't know... Too much effort with little gain. Even without mods and palettes:
Search "t_wall" (2651 hits in 161 files)
Search "om_terrain" (863 hits in 183 files)
Search "t_wall" (2651 hits in 161 files)
the script took me less than 15 min to write, takes <1 sec to run and, converts an entire file in one go. Calling python wallscript [style] [path]
156 times (i've done 5 houses) while slightly mind numbing isn't exactly a a huge undertaking.
It is not about script - it will be neccessary to test all updated mapgens.
I hope that the tile sets for the tiles CDDA will be properly made though. Mostly to keep the two versions from diverging in any way.
This is stalled... I need terrain to support JSON inheritance before it can be added in a sane manor.
I "reopened it" as one of my projects when I got back from school + summer job (camp = not code friendly) and have made three attempts to fix up the mapdata
file for this. However, each time I have gotten sidetracked or ended up going in circles and I currently lack the motivation for a fourth attempt. If someone is willing to get copy-from
working for terrain, I only need to do some finishing touches/ update docs before testing can begin.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Please do not \'bump\' or comment on this issue unless you are actively working on it. Stale issues, and stale issues that are closed are still considered.
This issue has been automatically closed due to lack of activity. This does not mean that we do not value the issue. Feel free to request that it be re-opened if you are going to actively work on it
Most helpful comment
I've done a weee bit of construction in game and real life, I'll be the first to admit I wouldn't use custom walls but if the script designated interior from exterior that would be a nice boon. Less interested in color and more the ability to rearrange interiors. Generally modern house construction in NE usually only RELIES on exterior wall to be load bearing. The bigger the house, the less likely this is true. It would be nice to take a sledge and crowbar to deconstruct all of the interior walls in a house and rearrange them. Smashing three walls to get material to build one hasty dry wall barricade to seal a hallway is something you could do in an hour in real life if you didn't care what it looked like and had all the walls in the world to smash for material. 5 2x4 and double the dry wall need for a real wall for a quick wall (literally overlap dry wall, you only have to do one side to make it opaque). I could see me doing that in game.
Major uses for exterior walls would follow deconstruction methods:
Aluminum Siding (tons in PA) strip that shit off for valuable aluminum leaving plain walls
Asbestos siding (often under modern siding) asbestos is great for forages/metalworking, its fiber/cloth that doesn't burn
Vinyl siding for plastic chunks
Metal frame buildings are obvious but they also often times use blue foam board insulation that is easy to recover and can be implemented if someone get around to expanding temperate mechanics.
I'd say it wouldn't be a bad project to make construction a bit more interesting.