Git Product home page Git Product logo

Comments (7)

PatrikLundell avatar PatrikLundell commented on July 18, 2024 1

I think we'd need one or more elaborate systems where snippets are tied to each other in chains to preserve a logical order, and have possible connections to other chains' progression states. The snippets should only appear of they haven't been received previously and should appear at the appropriate time (so you can miss a lot of snippets from a source but still get one appropriate for the time of the game). I would suggest a snippet to be "valid" for some length of time (snippet times in a chain should probably not overlap, but it shouldn't be required that the next snippet becomes available immediately, as the broadcasters can reasonably be off the air for periods of time for various reasons.
If you allow for interdependencies I think it should be possible to only provide a snippet if the condition is met (e.g. something about an interaction with the Free Merchants only being available if they're still around in a reasonably healthy state).
In addition to this, I think it would be interesting if radio broadcasts would be a way to find some really far away factions. I would suggest the reception of such a broadcast would allow the PC to try to contact them via radio and build up sufficient trust for them to provide you with their coordinates (lets just hand wave away the issue of providing coordinates over unsecured channels, although consequences of doing so with the PC not arriving there within some time limit might be interesting. In that case, the radio comms ought to allow you to put the exact coordinates on hold and only give you a rough area to provide you with enough info to know whether you're ready to try to reach them before requesting the coordinates).
Another complication is that the snippets ought to have some means to tie time to the seasons settings (it doesn't really make sense to get one about freezing cold in the middle of your summer (especially if seasons are disabled).

from cataclysm-dda.

PatrikLundell avatar PatrikLundell commented on July 18, 2024 1

I agree with you. A first stage of a duration of validity go a fair way to provide a sense of time progression (not sure if "duration", "min", "max" is the best set of words here, as it suggests it's a variable length of validity. I think "duration", "start", "end" might be better, but it can still be improved).

from cataclysm-dda.

zachary-kaelan avatar zachary-kaelan commented on July 18, 2024 1

Yeah the current radio storytelling system is unacceptable. If anything, I think you're underestimating the full potential.

EOCs and NPC dialogue syntax are very versatile and well-equipped for this. The time_since math function can do things like { "math": [ "time_since(u_timer_caravan_RandEnc)", ">", "time('1 h')" ] } and { "math": [ "time_since('cataclysm', 'unit':'years') > 1" ] }. Other potentially relevant functions include:

  • weather: can get temperature, humidity, pressure, windpower, and precipitation.
  • characters_nearby/monsters_nearby: the radio could comment on groups of characters or monsters visible from the station.
  • faction_like/faction_respect/faction_trust: everyone likes some good gossip.
  • moon_phase: if you have nothing better to talk about.
  • skill: if someone is a master at something, word might get around, and it might also be useful information to the player.
  • has_visible_trait: if someone heavily mutated is running around, it'll draw attention.

Event EOCs could also be used to trigger broadcasts:

  • activates_mininuke
  • camp_taken_over
  • character_kills_character/character_dies
  • destroys_triffid_grove
  • vehicle_moves: if there is a functioning helicopter, boat, or train going around.
  • player_fails_conduct/player_gets_achievement: if you want to get silly.

Various new events could be added to assist with this kind of thing, like an evolution_progress event, as well as a player_hears_broadcast event for assigning missions or adding map details.

from cataclysm-dda.

ADekema avatar ADekema commented on July 18, 2024

I didn´t know that radio broadcasts where a thing in game. It would be interesting if the player could interact with some broadcasts. Think finding and potentially communicating with military or police leftovers, Maybe finding a survivor broudcast only to track down the signal and realize that the braudcaster is long dead or find a supposed official government sanctuary that is in reality a raider trap.

from cataclysm-dda.

DoctorBoomstick avatar DoctorBoomstick commented on July 18, 2024

This would be ideal, yes. I had the idealistic thought that, in a perfect world, depending upon the state of the factions, different packets of snippets could be injected into the broadcasts. So, for example, if the Old Guard’s doing well, one could hear radio snippets about base points being secured and the like, and if they’re not doing so well, that would be reflected in their communications. While everything you suggested here is my personal dream state that would allow so many different forms of story telling to be done, I think we would first need at least a basic delineation between game stages. Perhaps, rather than my original suggestions of three overall game stages or categories from which to pull snippets, a new value could be introduced to snippets that would specify when the snippet would enter the pool of pullable entries and when it would be removed. Something in the vain of:

“id”:

“text”:

“weight”:

“duration”: “min”: “1 d”: “max”: “2 d”

For even more fine manipulation, I would like if such a system could use mixed integers, day and hour. This would very much help out with the current standing of things and would also be of utility in things that aren’t radio broadcasts; survivor notes and video logs come to mind. This would negate one snippet having to be gated behind another, as the writer could simply set the duration as appropriate.

from cataclysm-dda.

LyranRenegade avatar LyranRenegade commented on July 18, 2024

adding conditions to snippets in general would be really useful

from cataclysm-dda.

zachary-kaelan avatar zachary-kaelan commented on July 18, 2024

I think a station/channel type should be added, each of which can be "muted" by the player and has some of the following fields:

  • faction: what faction is running the station, as factions may run multiple stations.
  • available_condition: under what conditions a station is visible to the player.
    • Time since the start of the cataclysm can be used to disable pre-cataclysm stations after Stage 1.
    • Player statistics and achievements could be used to guide change in stages,
    • A certain level of faction trust - or a certain level of hacking - may be required to gain access to specific stations.
  • broadcast_condition: under what general conditions a station makes broadcasts, with context variables containing info on the latest broadcast.
    • A lot of stations will only be making broadcasts at certain times of day.
    • If the latest broadcast is something like "I ate some slime and got food poisoning, whoopsie daisy" then they shouldn't be making more broadcasts for a while.

As far as what fields would be in a broadcast type:

  • category: for organizational purposes.
  • station/channel: where the broadcasts are made from.
  • condition: given context variables for the time since the last broadcast, the number of times broadcasted, and the number of times heard by the player.
  • can_interrupt: whether the broadcast can interrupt ongoing broadcasts, for example if a mininuke got set off.
  • ignores_station_condition: whether the broadcast ignores the station's broadcast_condition.
  • text: either a single string or an array of strings.

from cataclysm-dda.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.