Potential Buildings

I’m not sure it would be all that much more work, we already have overmap-scale data influencing submap-scale operations, specifically we have characteristics of a “city” influence monster spawning within individual submaps, if it enabled some cool features we could add a “campus” data structure that binds together sections of a building (like an office tower) or a group of buildings (like a mall) so that we could apply a consistent theme across the group. I think it’d be great to have theming like this.

Hey, I’m all for it :smiley:
[size=6pt]As long as I don’t have to code it, this is my first time working with C[/size]

We might want to get a clearer idea of all the variables that we might want to pass between sub-map tiles so that all of them can be added at once… well some will just be place holders for a while yet but why not?

1)Theme (Corporation)
2)Faction Ownership (They’ll be in eventually)
3)Electricity (Localized power should eventually make its way in)
4)Computer Network
5)Degree of Fortification/Modification (If a faction holds a particular part of town then the buildings will progress from their current state to survivalist shelters. My notes for the cathedral have it as a normal relic building and a modified fortress for the religious zelot factions. Saying an entire block was Level 2 fortified might mean that all of the windows are boarded and barbed wire fences stretch around the perimeter. I really like the idea of these alt-skins for buildings. It would also allow you to eventually tell ally to continue to fortify current building and the fortification level would be based on time spent, material, and construction/trap/mechanics skill. Looted and razed buildings would have a negative value meaning that loot would be far more scarce.)

[quote=“acidia, post:82, topic:913”][/quote]

Please give me those whole maps, together with their legend, I mean this thing:
mapf::basic_bind(". 7 # | - +", t_pavement_y, t_backboard, t_bench, t_chainfence_v, t_chainfence_h, t_chaingate_l)

These are the only two I actually have at the moment, I typically don’t save these before I cut them up.

Basement
 012345678901234567890123012345678901234567890123
0ssssssssssssssssssssssssssssssssssssssssssssssss
1ssssssssssssssssssssssssssssssssssssssssssssssss
0ssssssssssssssssssssssssssssssssssssssssssssssss
1ssssssssssssssssssssssssssssssssssssssssssssssss
4sss|----------------------------------------|sss
5sss|,.....,.....,.....,SS,.....,.....,.....,|sss
6sss|,.....,.....,.....,SS,.....,.....,.....,|sss
7sss|,.....,.....,.....,SS,.....,.....,.....,|sss
8sss|,.....,.....,.....,SS,.....,.....,.....,|sss
5sss|,.....,.....,.....,SS,.....,.....,.....,|sss
6sss|,.....,.....,.....,SS,.....,.....,.....,|sss
7sss|........................................|sss
8sss|........................................|sss
5sss|........................................|sss
6sss|........................................|sss
7sss|...,,...,....,....,SS,....,....,........|sss
8sss|..,,,,..,....,....,SS,....,....,........|sss
5sss|...,,...,....,....,SS,....,....,........|sss
6sss|...,,...,....,....,SS,....,....,........|sss
7sss|........,....,....,SS,....,....,........|sss
8sss|........,....,....,SS,....,....,........|sss
1sss|........|---|---|HHGGHH|---|---|........|sss
2sss|........|<R>|...|______|x..|<R>|........|sss
3sss|........|.R.|...D______D...|.R.|...,,...|sss
0sss|........|...|...D______D...|...|...,,...|sss
1sss|........|...|..x|______|...|...|..,,,,..|sss
2sss|........|---|---|HHGGHH|---|-+-|...,,...|sss
5sss|........................................|sss
6sss|........................................|sss
7sss|........................................|sss
5sss|....,,.......,,.........................|sss
6sss|...,,,,......,,.........................|sss
7sss|....,,......,,,,..xS....................|sss
8sss|....,,.......,,...SS....................|sss
1sss|-|XXXXXX|-|XXXXXX|--|...................|sss
2sss|.|......|.|......|..|...................|sss
3sss|||......|.|......|..|,.....,.....,.....,|sss
4sss||x......|.|......||.|,.....,.....,.....,|sss
5sss|||......|.|......x|.|,.....,.....,.....,|sss
6sss|.|......|.|......||.|,.....,.....,.....,|sss
7sss|.|......|.|......|..|,.....,.....,.....,|sss
8sss|.|------|.|------|..|,.....,.....,.....,|sss
9sss|--------------------|-------------------|sss
0ssssssssssssssssssssssssssssssssssssssssssssssss
1ssssssssssssssssssssssssssssssssssssssssssssssss
2ssssssssssssssssssssssssssssssssssssssssssssssss
3ssssssssssssssssssssssssssssssssssssssssssssssss
 012345678901234567890123012345678901234567890123

 012345678901234567890123012345678901234567890123
0
1
2
3
4   |-HHH-HHH-HHH--|HHHH|HHHHH|--HHH-HHH-HHH-|
5   |^.........^ll^V....|.....Vll........h..^|
6   V...x.hx..x....V..hd|.h.c.V.....h........V
7   V..hd..d.hd....V.ddx|xccc.V....ddx..ddx..V
8   V...d..d..d....G....|.....G..............V
9   |..............V....|..h..V.....h...h....|
0   V..............Vllll|^...^V....ddx..ddx..V
1   V...x..x..x....|----|-----|.....h........V
2   V...d..d.hd....|..........|..........h...V
3   |..hd..d..d....|...ch.c...|....ddx..ddx..|
4   V..............|^..ccxc..^|..............V
5   V....................................h...V
6   V...x...............................ddx..V
7   |..hd....|--|--|-HH-GG-HH-|--|--|........|
8   |l..d....|ST|..|..........|..|TS|.......^|
9   |----|...+..|..+..........+..|..+...|----|
0   |rrCC|...|..|..|..........|..|..|...|..CC|
1   |....+...|--||-|-|......|-|-||--|...+....|
2   |rr..|...|<R>|...|......|x..|<R>|...|rrrr|
3   |----|...|.R.|...D......D...|.R.|...|----|
0   |....+...|...|...D......D...|...|...+....|
1   |T.S.|...+...|..x|......|...|...+...|.S.T|
2   |----|...|---|-|-|......|-|-|---|...|----|
3   |lll.....Vdd..l|..........|c..rrV......ll|
4   V....c...Vdh..r|..........|ch...+...c....V
5   V..h.c...Vx....|^........^|ddd..V...6h...V
6   |ccc6c...|-HGH-|-HHHHHHHH-|-HHH-|...ccccc|
7   V........................................V
8   V........................................V
9   V........................................V
0   |.ddx..ddx..ddx|-HHHGGHHH-|----|GG|--++--|
1   V..h....h....h.|..........|ccSe|..|^....^V
2   V..............|..........|....|..|......V
3   V.ddx..ddx..ddx|.htt..tth.|.......|..ddxdV
4   |........h..h..|.htt..tth.|.......|....hdV
5   V..h...........|.htttttth.|hh...hh|l.....V
6   V.ddx..ddx..ddx|.htttttth.|tt...tt|-+----|
7   V..h....h......|...hhhh...|tt...tt|r..H.l|
8   |............h.|..........|hh...hh|r....l|
9   |-HHH-HHHH-HHH-|-HHHHHHHH-|-HHHHH-|--HHH-|
0
1
2
3
 012345678901234567890123012345678901234567890123

The typical map key is going to roughly be

mapf::basic_bind("E > < R # X G C , _ r V H 6 x % ^ . - | t + = D w T S e o h c d l s", t_elevator, t_stairs_down, t_stairs_up, t_railing_v, t_bench, t_door_metal_locked, t_door_glass_c, t_crate_c, t_pavement_y ,t_pavement, t_rack, t_wall_glass_v, t_wall_glass_h, t_console, t_console_broken, t_shrub, t_indoor_plant, t_floor, t_wall_h, t_wall_v, t_table, t_door_c, t_door_locked, t_door_locked_alarm, t_window, t_toilet, t_sink, t_fridge, t_bookcase, t_chair, t_counter, t_desk, t_locker, t_sidewalk)

Great, thanks. That will do. Please save them when you make some new ones.

Acidia. You are a terrible person.

Those poor zombies. Trapped in the walls. I can hear them moaning and shuffling, but they will never be freed…

More seriously, the office parking garage is awesome fun.

Hooray, this weeks projects will be a hotel and a laundry mat. I’ve sketched both out but I can’t come up with good tiles/colors for:
washer
dryer
generalized exercise equipment (I was thinking an inverse dark gray ‘%’ but that is easy to confuse with a corpse…)

Thanks

washers and dryers are frequently square and white, not sure what character that corresponds to.
For exercise equipment, how about a ‘t’ or ‘T’?

[quote=“Kevin Granade, post:88, topic:913”]washers and dryers are frequently square and white, not sure what character that corresponds to.
For exercise equipment, how about a ‘t’ or ‘T’?[/quote]

Maybe a + would work?

The + character is already used for doors. Every time I see a +, I know it leads into another room or space – barring random map generation failures. I would prefer it remain so.

Consider that sofas, counters, tables, chairs, beds and even shrubs all use the # character. They have variable colours, but a # consistently tells you “you will move slowly here”.

Perhaps { or }? I forgot which character a refrigerator uses. A washing machine has empty space for storage and is a large electric device. Seems rather similar to a refrigerator. It would be better off in some other coiour, perhaps white.

I’m of the oppinion that { and } best describe large blocking appliances so, yeah, go with that for doubles. But if they are short, I think everything you described can be moved over so # should be used in that case.

I’m pretty sure ‘t’ and ‘T’ are already used. And I’d prefer to reserve letters for enemies.

I think we really need to come up with some standards for this. It sucks so much that we are limited to a small subset of ASCII.

However, since we use curses, I believe at LEAST the following are also available:

Ideas: the Pound Sterling for weightlifting gear and the +/- for cardio?

Have Slope terrain be the greater/less with equal-to signs? (Probably unnecessary, but might be handy if someone wants to drive a vehicle through Z-levels.)

A double-stack washer/dryer really ought to have twice the storage capacity. Not sure if that’s feasible.

I looked at the code, and my brain is too stupid to fully understand it, but it looks like you are defining each 24x24 map tile separately and then sticking them together. Is there a way you can swap these tiles out? Like if you had buildings with these parts:
AB EF IJ
CD GH KL
You could then swap A for E or I. That would let you have a hand-made maps, which I think is better, but still increase variety and allow for different room layouts. (Kinda like what you want for multiple floors in an office building, but for chunks of one floor.)

I think tiling might be a good compromise between procedural generation and hand crafting. Especially for “dungeons” like labs, factories, underground bunkers, and other things that are meant more to be explored than to represent a real place.

Just came in mind (small hours over here) :
Is there a Post Office, an area-code big one?
Lotsa interesting trinkets&ghouls&goblins to be seen …

Welp, we’ll see how it goes in the first potential end-game project. The National Center for Botanical Research will hopefully be an extremely rare/unique building (0 to 1 in a given region, I need some kind of boolean for unique buildings) and I’ll get to play a bit more with room/building generation. I want to make the top floor 3x3+ given that above ground green houses would be preferred but persistent road generation issues may scratch that for now.

-Concept-
Ideally, I would like to include some form of bio-luminescent plant that will give off enough light to make underground growing rooms into terrifying jungles. Hydroponics labs will overflow at times, creating water elements to navigate. Enemies won’t include zombies (well not the lower levels) but I’m still uncertain if I want to go with triffids or something else. I kinda want to add an additional enemy that uses the same tile as a tree/young tree that has extremely slow movement and sight range just to surprise you in the dark. I’m going to look into coding a semi-transparency tag for terrain tiles to simulate indoor fog/mist vastly cutting down sight range. May not be possible but being surrounded by “foggy undergrowth” when you have to travel through multiple map tiles of jungle sounds like great fun. The other way may be to generate a “fog” that works like a harmless smoke. Having sound generation in the mist would be cool but I’m not sure how to handle it. One silly workaround would be to place special radios/enemies behind walls that rarely generate a “creak” , “snap”, or “rustle.”

-Reward-
Any-who, the key to future botanical research is gene-splicing so a Jurassic Park-esque genetics lab will potentially hold a genome sequencer that could tell your mutation archetype. A means of altering said archetype if you have no existing mutations. Or a means of inerting your mutation progression.

If you want to write a bunch of lore stuff, Grackle, I’ll try and get a general outline

-Lore-

  1. Zombie Outbreak
  2. Lab does not include dimensional hardware but water is still contaminated
  3. Lab is sealed to prevent the general catastrophe from destroying it.
  4. Connection between lab administrator and Washington is severed/goes unanswered.
  5. The ~40 researchers and security personnel begin to notice changes in botanical life.
  6. Rapid evolution is feared when the genome lab begins to test the emerging species.
  7. Staff begin to go missing (~35/40).
  8. Non-critical parts of the lab are sealed off after initial searches could not find the missing and one search team didn’t return (~27/40)
  9. Hydroponics lines appear to have ruptured in parts of the sealed lab and power is partially lost.
  10. Flooding in the lower lab levels and malfunctioning elevators trap some researchers and cause the survivors to be separated (~3,4,2/40).
  11. The remaining isolated groups of 2-4 seal themselves in different lab rooms and await what may come or try and escape.

When NPC’s are fixed, there should be some survivors with high science skills that can be recruited.

Edit: The mall is on a bit of a hold until we can improve the road code, because it is a sprawling structure that would end up covering a huge swath of land, roads would currently chop it to bits.

[quote=“vultures, post:94, topic:913”]Just came in mind (small hours over here) :
Is there a Post Office, an area-code big one?
Lotsa interesting trinkets&ghouls&goblins to be seen …[/quote]
Good idea, I’ll throw it in the que.

That particular issue SHOULD actually be fixed: roads have stopped overwriting existing structures. Of course, it also doesn’t take into account large-scale detail, so you might have roads that randomly lead up to the side of a mall, but the building itself should still be intact.

For audible sounds you could make a new kind of trap similar to the bubblewrap-trap, which just makes a popping noise and then disappears.

[quote=“acidia, post:95, topic:913”]Edit: The mall is on a bit of a hold until we can improve the road code, because it is a sprawling structure that would end up covering a huge swath of land, roads would currently chop it to bits.

[quote=“vultures, post:94, topic:913”]Just came in mind (small hours over here) :
Is there a Post Office, an area-code big one?
Lotsa interesting trinkets&ghouls&goblins to be seen …[/quote]
Good idea, I’ll throw it in the que.[/quote]

I wanna do it… so do I dust my ASCII notebook and throw you a PM when it’s done or what?
And where’s the repo for these? I just drop it here, on this board?

[quote=“vultures, post:98, topic:913”]I wanna do it… so do I dust my ASCII notebook and throw you a PM when it’s done or what?
And where’s the repo for these? I just drop it here, on this board?[/quote]

Sure, I can walk you through it and show you how its done. First thing you need is a map. So you can either draw it on a single tile (24x24) a double (48x48) or a triple (72x72). For a local post office I’d suggest a 24x24. For the regional office I’d suggest going with a 48x48.
So I usually start with a template

012345678901234567890123 0........................ 1........................ 2........................ 3........................ 4........................ 5........................ 6........................ 7........................ 8........................ 9........................ 0........................ 1........................ 2........................ 3........................ 4........................ 5........................ 6........................ 7........................ 8........................ 9........................ 0........................ 1........................ 2........................ 3........................ 012345678901234567890123
All you need to do to finish this first step is make a key like
h = chair
w = wall
" = window

  • = door
    Some pointers:
    -try to leave a 1 tile boarder so that buildings don’t connect
    -hallways should usually be 2-3 tiles wide
    -if you find yourself with odd space, ask yourself if the building has a bathroom, storage closet, or cleaning closet
    -for consistency, I have all of my entrances on the south side but this is not a requirement

Once you get that done I’ll put up an example map and the code for your map so you can see how it is implemented.

1 Like

Although I would like to see some buildings that DO connect at some point. Especially businesses often press right up against one another and the street, and I think buildings that press right up against their neighbors are going to be needed to get a real downtown feel at some point, where alleyways are actually rather uncommon, rare and beautiful things.

(And the alleys should occassionally be blocked by fences and just be useless dead ends, too!