/nascentorder

supplemental randomizer & tool for final fantasy VI SNES

Primary LanguagePython

Nascent Order for Final Fantasy VI
a supplemental randomizer by emberling
version 0.2.0

The main goal of this project is to build on top of FF6 Beyond Chaos to create
the randomized experience that most appeals to me. I'm fascinated by randomly
generated art pieces and story projects, things like @MagicRealismBot and
botnik.org. I'm not looking to challenge myself (gameplay wise) or to spark
hilarious moments on twitch dot teevee so much as I'm looking to create
fresh experiences that would be believable as alternate-universe versions
of FF6.

NaO is designed specifically for use with a ROM already run through Beyond
Chaos, but it is also designed to be highly flexible and to work with any
hacked ROM you give it! Some may require some reconfiguration, though, and
there are many permutations I haven't yet coded in. But in general, while
it's not the main intent of this program, it CAN be used as a tool to
insert and repack music for your non-random hack, for instance.

My rewrites and mods, and the modules contained herein, are
generally built around the idea of *curated* randomness. Fire can be
red, or yellow, or orange, or even blue, but not green. Grandpa can be
a knight or a ninja or a mime, but not a child.

Or you can turn that off, if you'd rather. I'm not picky about what YOU do.

Many of the Beyond Chaos systems are based around taking existing FF6 systems
-- palettes, spells, items, enemy AI -- in new, surprising, and incongruous
directions. My reimaginings generally flip this around, building those things from
scratch while trying to avoid incongruity as much as possible, relying on the
inevitable ineptitude of machine generation to produce those surprising
moments. BC's methods work great for streaming and community, and for
people always seeking new challenges. But I like different things than that,
personally, so here we are.

So far, NaO does these things:
    - Music randomizer
        - imports external music from MML files (included)
        - shuffles music appropriately (or inappropriately, if desired)
        - adds four additional slots for battle songs
            by default, this creates a different battle theme for WoB
            (outside and inside), WoR (outside and inside), and event battles.
        - Largely preserves music-format SFX used in WoR, train, zozo
        - Final boss music randomizer: shuffles and replaces the three
            individual parts of the first Dancing Mad track (three tiers)
    - Instrument sample expansion
        Adds a variety of new instruments for enhanced imported music.
    - Character palette rework
        Should be both more vivid and more consistent/less glitchy than BC.
        - Includes skintone randomization from a curated list of possibilities
        - Some default sprites require minor adjustments to work well with this
        mode, these are automatically applied.
        - Consistency maintained for some palettes that should logically match
    - Pixel portrait mode
        To solve the problem of custom sprites lacking functional portraits,
        this automatically generates serviceable portraits from the sprite
        itself. By default replaces only portraits that appear to be
        placeholders; configurable to replace all portraits.
    - Field sprite randomizer
        A slightly more advanced version of BC's 'partyparty makeover'.
        All playable characters and all NPCs with walking animations are
        randomized from a pool of custom and original sprites. Constraints
        are used so that the new set of sprites generally matches the story
        and function of the original.
        Character names are also randomized.
        CtrlxZ's v1.5 sprite pack is included, plus a few extra.
    - misc. tweaks
        Optionally change BC's "original character name" field to a class name.
        
On the horizon / work currently in progress:
    - Enemy sprite randomizer
        Including custom sprites. Various enemy properties and effects should
        be inferrable from the chosen graphics, as they are in a non-randomized
        game: e.g., flying.
    - Field sprite randomizer improvements
        Decoupling NPCs that use the same sprite with different palettes

Future plans:
    - Additional song slots for e.g. a true "hurry!" or "dungeon" track
    - Adjust script to reflect randomizations, e.g. pronouns
    - Optional balance tweaks, aimed at eliminating the recurring BC mechanic
        of things that seem cool but have a small but inevitable chance to
        flat out kill you. 
    - Items, and spell effects
    - Formula and ability adjustments to better support above