Files
alttpr-python/roadmap.md
aerinon bf92fe91c2 doc: new documentation helps
fix: issue with blank shop items
2026-01-30 10:05:29 -07:00

235 lines
6.3 KiB
Markdown

---
layout: default
title: Roadmap
nav_order: 5
---
# Development Roadmap
{: .no_toc }
Future plans and upcoming features for ALttP Door Randomizer.
{: .fs-6 .fw-300 }
## Table of contents
{: .no_toc .text-delta }
1. TOC
{:toc}
---
## Project Vision
Door Randomizer aims to provide the most comprehensive and flexible dungeon randomization experience for A Link to the Past while maintaining playability and logical consistency. Our focus is on:
1. **Robust Generation** - Ensuring seeds are always completable and logical
2. **Feature Richness** - Providing extensive customization options
3. **Community Engagement** - Responding to player feedback and needs
4. **Performance** - Improving generation speed and reliability
---
## Bug Fixes
Critical and important bugs that need to be addressed:
### Critical Bugs
- Dungeon Key HUD indicator issue (total is incorrect)
- Links House on DM pathing issues (See OWR solution)
### Minor Bugs
- Resolve Swamp Trench 2 draining issue (pot obtained but still drains)
- Fix OHKO logic issues - Crystal Path backwards in GT
- Fix MapCompass forbidden boss items mode (currently bugged)
- Killing Certain Red Guards Kills Music
---
## Logic & Generation Improvements
Improving dungeon generation algorithms and logic:
- Enhanced key logic algorithms (experimental mode in New Generation)
- Rework Uncle weapon/Escape small key
- Make Sanctuary heart the logical one (simplify sanctuary heart logic)
- Investigate rupee balancing issues causing failed generations
---
## New Features
New functionality and game modes, mostly planned for the NewGeneration branch:
- Portal placement flexibility (customizability and mixed dungeon pools)
- Smarter trap door placement (reduce forced mirroring)
- DR Keysanity menu improvements
- PitWarp feature
- Door Type pooling customizations
- OWR ER standardization (District ER, Links on Death Mountain issue)
- NewSwappedAlgorithm integration
- Bonk Item Pool from Overworld Randomizer (downstream integration)
- A better hint system
- Prize Shuffle from Overworld Randomizer (downstream integration)
- Map Screen from GK Randomizer (need to investigate)
- Other downstream integrations? (custom goals, follower shuffle, flute shuffle?)
---
## Quality of Life Enhancements
Improving user experience and usability:
- Preferred location groups (control item placement with warnings/failures/retries)
- Preset support
- Control output ROM name (customize generated ROM filename)
- Progress indicators for generations
- Better entrance tracking for trackers (investigate race legality)
- Super-tile split palettes (reduce hinting from palette colors)
- Turn off Bob by default for enemizer (fewer graphical glitches)
---
## Performance Improvements
Making generation faster and more efficient:
- Reduce memory footprint
---
## Customization & Content Creation
Tools and features for creating custom content:
- Re-design customizer file format (improved YAML structure)
- Presets for customizer (start from predefined base)
- Easier enemy customization (simpler interface for customizing specific enemies - better integration with customization system)
---
## Multiworld
Enhancements for multiplayer seeds:
- Multiworld documentation
- Ability to have similar randomizations across multiworlds (makes parts of it co-op)
---
## External Tools & Integration
Integration with external tools and platforms:
- Tracker integration features
- Web-based API
---
## Technical Debt & Refactoring
Behind-the-scenes code improvements:
- Modernize Rules.py (improve readability and maintainability)
- Python upgrade (3.10 deprecated in 2026)
---
## Research & Exploration
Experimental ideas that may or may not be implemented:
### Dungeon Randomization Ideas
- **Subroom randomization** - Randomize smaller rooms within a larger room (subtile vs. supertile doors)
- **Euclidean dungeon layouts** - Dungeon randomization that makes spatial sense (rooms connected geographically)
- **Swapped dungeon generation** - Create dungeons by swapping door destinations (requires new algorithms)
---
## Branch Strategy
### Current Branches
- **NewGeneration** - Active development branch for new generation system
- **NewSwappedAlgorithm** - Experimental branch for swapped item algorithm
- **DoorDevUnstable** - Main branch, maintenance mode - only bug fixes and patches (ready to be moved to official stable)
- **DoorDev** - Stale development branch (needs update)
- **Dev/Master** - Do NOT use for PRs. Used by upstream only.
### Planned Branch Changes
- Transition from DoorDevUnstable to DoorDev as main maintenance branch
- Transition NewGeneration to main development branch
---
## Completed Features
Recent accomplishments:
- ✅ Dynamic colored pots
- ✅ Free lamp cone
- ✅ Experimental key logic improvements
---
## How to Contribute
Want to help shape the future of Door Randomizer?
### For Players
- **Test seeds** - Play with different settings and report issues
- **Provide feedback** - Share what you like and what could be better
- **Suggest features** - Tell us what you want to see
### For Developers
- **Submit PRs to DoorDevUnstable**
- **Join Discord** - Discuss development in `#door-rando`
- **Write tests** - Improve test coverage
- **Improve documentation** - Help others understand the code
### For Creators
- **Custom rooms** - Design interesting custom rooms
- **Presets** - Create balanced preset configurations
- **Tutorials** - Teach others how to use Door Rando
- **Tools** - Build complementary tools (trackers, analyzers)
---
## Release Schedule
### Regular Releases
- **Unstable builds** - Automated on every push to DoorDevUnstable
- **Hotfixes** - As needed for critical bugs
### Upcoming Releases (Tentative)
- **v1.5.x** (Q2 2026) - DoorDevUnstable becomes DoorDev
- **v1.6** (Q3 2026) - Python upgrade
- **v2.0** (Q4 2026) - New Generation branch release
---
## Success Metrics
How we measure progress:
### Technical Metrics
- Generation success rate (target: >95%)
- Average generation time (target: <10s for crossed seeds)
- Memory usage (start measuring)
- Test coverage (start measuring)
---
## Feedback & Discussion
Have thoughts on the roadmap?
- **Discord**: Join `#door-rando` to discuss
---
*This roadmap is a living document and will be updated regularly as priorities shift and progress is made.*
Last updated: 2026-01-30