CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.27k stars 4.12k forks source link

Defense Mode Overhaul, discussion and design phase #55629

Closed KorGgenT closed 1 year ago

KorGgenT commented 2 years ago

Is your feature request related to a problem? Please describe.

Defense mode has been sub-par for a long time. I have had some thoughts about what defense mode can look like in the future!

Solution you would like.

THE GAME LOOP: RESOURCE MANAGEMENT MODE You start out in "resource management mode." This mode allows you to assign tasks to each of the characters in your base. you can adjust their loadout and their position when an attack starts as well, and you can assign characters to missions if applicable. There is a button to pass the time, with several options to trigger interrupts, such as finishing an activity. A zombie attack always interrupts the passage of time!

Notes: Characters can craft items. they'll pick the best crafting spot in the place, and have to put down their craft and walk to their defensive position during an attack. Same for other actions such as building a wall. They will then return to the activity they were doing before the attack.

There should be the ability to generate your own resources on the base, such as farming for food or chopping wood (perhaps also done as missions). This is perhaps even the reason the location of the base was chosen? Traders will need to come pretty often as you will likely be living hand to mouth early on with just whatever the zombies drop. Perhaps have the option of scavenging missions into nearby town(s)?

Characters need sleep too! Night attacks are dangerous ;)

Inventory physically exists in the base - the player should make sure there is plenty of storage, and there will be notifications if there is stuff on the ground that can't fit in storage. A zone on the ground works just fine for storage.

The base is a rectangle - no infinite world in defense mode!

DEFENSE! When a wave attacks, you switch to free-roam mode on your primary character in order to defend your camp from the zombies (or monsters, or raiders) During this mode, you play the game as in the normal mode, moving around and hitting things and having full control of your character. The npcs will have standing orders based on what you entered in during resource management mode. When all hostiles are no longer on the map, switch back to resource management mode.

Notes: npcs should definitely be able to be assigned static locations like a guard tower. perhaps this is a good opportunity to make them smart enough to retreat to another location if they get overrun, but this will likely be covered over partially by the ability to swap the active character.

Most zombies would just be fine acting like regular zombies, but there is an opportunity in here to build ai that give some specific goals like tearing down a wall in an area with fewer defenders or focusing on one side. Anything that has to do with npcs doing raiding needs special attention to make sense that a human group of raiders would actually do such a thing, like overwhelming odds or a particularly well-timed assault.

this is a good chance to implement boss mobs in a controlled environment, and they'll spawn in fairly regular intervals depending on how far into defense mode you are.

Whatever is dropped from the wave is added to the inventory. corpses that aren't edible are destroyed.

TRADER and other random events Traders arrive periodically (they won't arrive during an attack). They don't appear on the map as such, but they immediately open up a dialogue - this will generally interrupt any long-form activities (they're still going on in the background, but the dialogue is a popup) and when the trade is done the trader leaves. (Make sure to add additional warnings for players that this is the only chance they get to buy/sell from this trader until they visit again!) Then the resource management screen pops up again. This is a similar dialogue for when a wandering npc wants to join the base. Possibility for adding additional random events as well?

Notes: we need to examine how the player and the player's base get income. If it's just zombie drops, it might be pretty slim pickings or way overboard. This should be an easy json change, and can be fine tuned from that end.

Group morale (more or less an average of everyone's morale) affects how often npcs try to join, and/or how likely they are to join, in addition to assets which will be shown in the resource management screen. Traders never join.

See also: #51784

MylieDaniels commented 2 years ago

Big hopes for this project! Here are my thoughts:

EFFICIENT UTILIZATION OF RESOURCES A vast portion of the current "Normal Mode" assets, content, and mechanics could be used in even a fully revamped Defense Mode. This would save an immense amount of time and effort, allowing a great product to come together sooner. In addition, I very much believe that some mechanics/content created for or enhanced for Defense Mode could serve to improve Normal Mode, especially improvements in NPC and monster behavior, resource management in faction camps, and perhaps improvements to construction and bosses. I don't think that everything should be ported over, of course, and think there are different priorities for how in-depth some systems should be in each of the two modes.

DISPARITIES IN MECHANICAL DEPTH If every mechanic was the same between the two modes, there would be no point in having two modes. If every mechanic was unique between the two modes, there would be little point in packaging them as one game aside from setting. I believe the optimal way to differentiate the two modes is to have one or two unique mechanics/progression loops per mode, along with disparities in the depth of specific mechanics in each mode. Mechanics should remain functionally similar, to prevent confusion, but distinct in how prioritized and in-focus they are.

Mechanic Normal Mode Significance Defense Mode Significance
Allies (Generic) Low High
Allies (Unique) High Moderate
Construction Moderate Very High
Crafting Very High High
Enemies (Generic) Very High Moderate
Enemies (Unique) Low High
Exploration Very High Low
Factions Moderate Very High
Monster Loot Moderate Very High
Supplies (Generic) Low Very High
Supplies (Unique) Very High Moderate
Trading Moderate High
Vehicles High Moderate

NORMAL MODE PROGRESSION LOOPS The progression methods of Normal Mode are diverse and varied, but can be boiled down to four entangled cycles in my eyes, sorted from most to least pertinent to the player:

DEFENSE MODE PROGRESSION LOOPS As Defense Mode lacks a distinct identity at the moment, I'll be basing this on my ideals for it, once more sorted from most to least pertinent to the player:

ONE WAY CROSS-COMPATIBILITY Copying and porting a Normal Mode world to Defense Mode should hopefully be a possibility. This could be done by selecting a faction camp, then doing a one-time scan for how far away specific threats, resources, and allies are. A warning could be given that the ported world will not be perfectly accurate, and the boundaries of the newly created Defense Mode world would be only around the faction camp, but the initial state of resources, allies, enemy forces, and similar concepts would be based as closely as possible on the broader world.

oosyrag commented 2 years ago

Regarding income: I would enjoy a scavinging/strategy/missions layer. Provision and send characters out on mission to scout/clear/recover from a variety of discovered locations. Characters on missions will naturally not be available for defense for the duration of their mission. Excess/unecessary loot can be sold to traders, or an outside trading location could be discovered to actively trade as a mission. Locations can have a variety of difficulties, and amount of proper provisions would affect success rate. Different missions would have different provision requirements. Characters can return with varying amounts of wounds, or not return at all if woefully underprepared. Or they might come back with a hidden nasty surprise to be discovered at a later time...

Generally speaking, sounds like "rimworld mode"? I think this could be quite fun, albeit an ambitious endeavor.

kevingranade commented 2 years ago

Scenario wise, there are two broad categories, solo and sattelite.

In a solo scenario, your camp is self sufficient and needs to create, scavenge, or trade for all the resources it needs.

In a sattelite scenario, your camp is a member of a larger organization, possibly with some specific job like a logging camp. In that case, you might have regular supply drops, but you also need to spend time working to harvest resources.

oosyrag commented 2 years ago

As far as gameplay analogies go, I'm imagining defense mode like RimWorld/dwarf fortress fortress mode, main game is like DF adventure mode.

Digressing a little bit and dreaming farther into the future, there could be a quick action arcade style mode where you play a short mission/excursion with a particular goal, perhaps roughly analogous to the satellite scenario described above. This could appeal to people less interested in the survival aspects of the main game and more interested in running and gunning with a pre kitted character. There would be less attachment/investment to a particular character and it could introduce players to the more exotic locales, situations, and enemies without as much commitment. Could also be a good introduction to controls and mechanics as well, where in the main game a player might less be inclined to experiment and take risks.

John-Candlebury commented 2 years ago

Yeah I was going to suggest the concept making "faction outposts" as possible scenario options, where you choose one of our main game factions as a sponsor and this affects the available maps, what the merchant stocks and your reinforcements and possibly what you fight against.

It might be a good way to expand the factions, even those that wouldnt normally be playable in the main game (ex the Mi-go or XEDRAS dimensional incursion teams)

I-am-Erk commented 2 years ago

oh no I have so many ideas about this. Posting here to flag and I'll try to get time to collect them.

a-chancey commented 2 years ago

Playing a Mi-go slaver trying to kill zombies and hurt humans to the point they can be captured and dragged to the tower sounds like a blast. It could also give some opportunity for background lore into the Mi-go daily workings and portal shenanigans can provide resources and occasional reinforcements.

stale[bot] commented 2 years ago

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.

I-am-Erk commented 2 years ago

I think that for planning it is fine to differentiate, but I want to make sure on the game end that "under attack" and "normal" modes aren't too different, because we do want certain enemies to have sneak attacks and things. You may not know you're under attack until it's too late.

A decent thought exercise IMO is what an early alpha implementation might look like.

In this model then we need to work on Npc task queueing and automatic job selection stuff. Aside from basic UI I am pretty sure that's the no. 1 part that will need development immediately. How do you tell your NPC to do a thing, and if they see an enemy or fail the thing, how do they decide to pick it back up.

A first pass like this will have tons of issues, mostly related to npc ai, which is somewhat the point. With those touched up though, it's a decent minimal game state to begin working on

kevingranade commented 1 year ago

This issue has been mentioned on Cataclysm: Dark Days Ahead. There might be relevant details there:

https://discourse.cataclysmdda.org/t/id-like-to-be-attacked-more/28334/10

github-actions[bot] commented 1 year ago

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.

GuardianDll commented 1 year ago

Thinking about it, it seems the vast of work may be done using current EoC, with some additions and modifications here and there