Create Your Shogun Customization – Shogun Exodus Devlog #31

The latest update for the indie game *Shogun Exodus* introduces Update #154, featuring a brand-new character customization screen. When starting a new game, players are now routed to the “Create your Shogun” menu, which offers options for adjusting gender, body type, skull, face, hair, and hair color. This interface is powered by a modular, data-driven system that fully supports community mods, allowing for easy integration of custom parts and color palettes. The screen also features a dynamic preview window with a face-to-body camera toggle, fine zoom controls, and a random name generator to help players define their protagonist.

Behind the scenes, the update optimizes performance by utilizing a dedicated native-resolution rendering pipeline for character previews while keeping gameplay rendering untouched. Additionally, a new player setup system integrates the custom appearance and identity data directly into the game’s core architecture. This brings improvements to the save game system, including character-specific quick saves, rotating autosaves organized by the Shogun’s name, and automated prevention of duplicate NPC names in the game world.


Raw Patch Notes

UPDATE 2026-07-18 #154 - Character Customization ("Create your Shogun")
- New Game now routes to `Scenes/CharacterCustomization.tscn` before gameplay. The screen shows a full-resolution character preview (left) over the new parchment background, with a "Create your Shogun" title, an ink options panel (right), and First/Family name fields with a Random Name roll under the character. Accept starts Base.tscn through the loading screen; Back returns to the start menu.
- Option rows are data-driven from new mod-merged `Data/Characters/character_customization.json`: Gender, Body Type, Skull, Face, Hair, and Hair Colour as arrow cyclers. Row types are `gender`, `body_type`, `slot` (any appearance slot), and `tint` (any tint channel), so mods adding parts, palettes, or whole slots surface automatically. A Randomize button rerolls everything except the name.
- Preview renders through the normal appearance pipeline with a new optional world-scale override on `CharacterAppearanceService.build_render_plan` (and `CharacterVisual.set_world_scale_override`), so this screen uses native-resolution art while gameplay rendering is untouched. Only the current full-res plan stays cached (new `clear_render_cache()` before each preview rebuild); all appearance caches are released when leaving the screen. A soft radial shadow sits behind the character; a Face/Body toggle tweens the camera between full-body and skull-framed close-up, with mouse-wheel fine zoom between the two.
- Gender flips keep body type, skull, hair, and colour, and swap the face to the same-numbered face of the other gender. New `CharacterAppearanceService` listing APIs (`list_parts_for_slot`, `list_body_type_ids`, `list_tint_channel_presets`) expose the same validity filters used by random generation.
- New `PlayerSetup` autoload holds the pending character payload (name, gender, appearance recipe, plus reserved traits/skills/stats/scenario sections for future customization). The Player consumes it on first spawn, persists first/family name in its save state (schema v4), and `get_display_name()` now returns the chosen name ("Shogun" fallback for old saves). The chosen full name is claimed in `CharacterGenerator` (new non-claiming `generate_name_parts` powers the name roll), so Servants never duplicate it.
- Save naming: quick saves use the character name ("Kenji_Sato_001", "Shogun_001" fallback); autosaves rotate per character ("Auto_Save_Kenji_Sato_1..4"). New-game session resets moved out of the start menu: the customization screen resets CharacterGenerator on entry and TimeSystem/save-dirty on Accept.
- Files: `Scenes/CharacterCustomization.tscn`, `Scripts/UI/CharacterCustomization.gd`, `Autoload/PlayerSetup.gd`, `Data/Characters/character_customization.json`, `Autoload/CharacterAppearanceService.gd`, `Scripts/Characters/CharacterVisual.gd`, `Autoload/CharacterGenerator.gd`, `Autoload/GameDB.gd`, `Autoload/SaveGame.gd`, `Scripts/Player.gd`, `Scripts/UI/StartScreenMenu.gd`, `Scripts/PlayButton.gd`, `project.godot`, `Data/LoadingScreenText.json`, `current-game-setup.txt`, `mod-guide.txt`, `update-log.txt`.

*This is an automated post, using Python and LLMs to summarize game updates. Mistakes, while rare, may happen.


Leave a Reply

Your email address will not be published. Required fields are marked *