Skip to content

Instantly share code, notes, and snippets.

@fenhl
Last active March 12, 2022 19:52
Show Gist options
  • Save fenhl/394e09e8ea5ac5e552c8c61d016992a6 to your computer and use it in GitHub Desktop.
Save fenhl/394e09e8ea5ac5e552c8c61d016992a6 to your computer and use it in GitHub Desktop.
OoTR GUI redesign concept

I propose a new design for the GUI of the OoT randomizer intended to reduce apparent complexity for new players and more directly guide them to recommended settings, while allowing room for more detailed settings to be added.

Overview

Based on the principle of progressive disclosure, there are 4 views layered from less to more detailed:

  1. The main view. This is the starting point every time the randomizer is opened and the only view that displays the “Generate” button. It shows the controls for setting input rom and (in the desktop version) output modes, as well as a simple dropdown of settings presets. The “Load”, “Save”, and “Remove” buttons don't exist here; the randomizer will always generate the selected preset. A “Customize” button is added next to the settings dropdown that opens view 2. An equivalent dropdown and “Customize” button exists for cosmetics.
  2. The list of settings presets. Allows copying, editing, renaming, and deleting presets. (The term “preset” is maybe a bit confusing here because it includes user-made sets of settings, but they don't have to be called that on the GUI.) Built-in presets can only be copied. Copying or editing a preset opens view 3. “Select” a preset to go back to view 1. Optionally add a plando file.
  3. An overview of settings grouped into related settings like “tricks & logic” or “entrance randomizer”, each with a few presets and the ability to fully customize, which opens view 4.
  4. The current settings screen, but only for the selected group of settings.

Version number, update check status/button, and community links are displayed below all views.

Tooltips on mouseover are replaced with help buttons that can be clicked, fixing the issue where some tooltips are unreadable.

View 1

  • Dropdown “Generate from” with options “random seed”, “set seed”, and “patch file”
  • When generating from set seed, text field “seed”
  • File select “Base rom”
  • When generating from random or set seed, dropdown “Settings” with presets and “Customize…” button to open view 2
  • Dropdown “Cosmetics” with presets (e.g. “Default”, “Completely Random”, and “Random Glitch-safe”? As well as a “from the patch file” option when generating from patch which is equivalent to disabling “override original cosmetics” in the current GUI) and “Customize…” button to open the cosmetics presets list which works like view 2
  • Dropdown “Output type” with options depending on world count:
    • for 1 world:
      • “Compressed rom & spoiler log (recommended)”
      • “.wad file & spoiler log (for Wii VC players)”
      • “Patch file & spoiler log (for sending to others)” (hidden when generating from patch file)
    • for multiworld, only “Patch file (all worlds) & spoiler log”
    • “Customize…” button which opens a dialog allowing multiple output types, uncompressed roms, race seeds, and/or disabling spoiler logs
  • “Generate!” button, which:
    • when generating multiworld rom/wad, asks for the player number. The text field is initially blank
    • generates the seed
    • displays a “save as” dialog for the output

View 2

  • Checkbox “Enable plandomizer (advanced)”. If enabled:
    • File select “Plandomizer file”
    • Info text “Any setting not specified in the plando file will use the option selected below:”
    • view 1 includes “[Plandomizer]” in settings dropdown
  • List of presets, starting with the built-in ones, with user-defined ones displayed below. Each preset (or a toolbar at the top) has the following buttons:
    • “Select”, taking the user back to view 1
    • “Copy”, which creates a new preset based on that preset and opens view 3 to edit the new one
    • “Edit” (user-defined only), which also opens view 3
    • “Rename” (user-defined only) (a preset starts out as “Copy of [original name]” or “Imported from settings string”)
      • Alternatively, preset name field could be on view 3 (automatically focused when opened)
    • “Delete” (user-defined only)
    • “Share” to display the settings string
  • Button to import a preset from a settings string

View 3

The exact setting groups could obviously be adjusted, but here's an initial draft:

  • World Count
  • “Randomize Main Rule Settings” (new name to account for GUI reshuffling) as its own group?
  • Win Conditions: bridge, bridge_medallions, bridge_stones, bridge_rewards, bridge_tokens, triforce_hunt, triforce_goal_per_world, trials_random, trials, shuffle_ganon_bosskey, ganon_bosskey_medallions, ganon_bosskey_stones, ganon_bosskey_rewards, ganon_bosskey_tokens, lacs_condition, lacs_medallions, lacs_stones, lacs_rewards, lacs_tokens
  • Game Start: start_with_rupees, start_with_consumables, starting_hearts, starting_equipment, starting_items, starting_songs, starting_tod, starting_age
  • Shuffled Items: shuffle_kokiri_sword, shuffle_ocarinas, shuffle_weird_egg, shuffle_gerudo_card, shuffle_song_items, shuffle_cows, shuffle_beans, shuffle_medigoron_carpet_salesman, shuffle_scrubs, shopsanity, shopsanity_prices, tokensanity, shuffle_hideoutkeys
  • Progression Gates: open_forest, open_kakariko, open_door_of_time, zora_fountain, gerudo_fortress
  • Entrance Randomizer: shuffle_interior_entrances, shuffle_grotto_entrances, shuffle_dungeon_entrances, shuffle_overworld_entrances, mix_entrance_pools, decouple_entrances, owl_drops, warp_songs, spawn_positions
  • Dungeons: one_item_per_dungeon, dungeon_shortcuts, shuffle_mapcompass, shuffle_smallkeys, shuffle_bosskeys, mq_dungeons_random, mq_dungeons
  • Timesavers: skip_child_zelda, no_escape_sequence, no_guard_stealth, no_epona_race, skip_some_minigame_phases, complete_mask_quest, fast_chests, free_scarecrow, fast_bunny_hood, chicken_count_random, chicken_count, big_poe_count_random, big_poe_count
  • Item Pool: logic_earliest_adult_trade, logic_latest_adult_trade, ice_trap_appearance, junk_ice_traps, item_pool_value
  • Hints & Information: enhance_map_compass, correct_chest_appearances, clearer_hints, hints, hint_dist, bingosync_url, item_hints, hint_dist_user, text_shuffle, misc_hints
  • Tricks & Logic: logic_rules, reachable_locations, bombchus_in_logic, useful_cutscenes, logic_no_night_tokens_without_suns_song, allowed_tricks, tricks_list_msg
  • Disabled Locations: disabled_locations
  • Misc. Difficulty: ocarina_songs, no_collectible_hearts, damage_multiplier

As an example of what group presets could look like, presets for the “Dungeons” group could be:

  • Vanilla (vanilla keys/maps/compasses, 1 major item per dungeon)
  • Tournament (no shortcuts, no MQ, start with m/c, keys in own dungeon)
  • Boss Rush (shortcuts, start with m/c, keysy)
  • Keysanity (no shurtcuts, no MQ, maps, compasses, and keys anywhere)
  • Master Quest (same as Tournament except 12MQ)
  • MQ Boss Rush
  • MQ Keysanity
  • Hell Mode (random MQ, remove m/c, keys anywhere)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment