-
Notifications
You must be signed in to change notification settings - Fork 152
Basic Achievement System #1130
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Basic Achievement System #1130
Conversation
More achievments
pulled upstream
Yet More achievments
|
Changelog for commit 2c3a8da Refactors the achievement system to use an enum ( Key Changes:
|
|
This has come a long way from the initial draft. The achievement system is now in a state where I'm comfortable getting feedback on the system design and implementation approach. The system is built to be extensible - adding new achievements just requires defining events and mapping them to game conditions. |
Achievement System
The design has evolved substantially from the initial draft and is now at a point where core architectural feedback is both welcome and needed.
Current Implementation Status
Achievements are defined via required game events.
Hooks into existing game systems (flags, scene flags, vanilla behaviors) to minimize intrusive code changes.
Achievement state is persisted using JSON serialization, fully compatible with the current save file structure.
Dedicated achievements window and real-time notification system are implemented.
Includes a comprehensive editor for testing, validation, and diagnostics.
Key Features Implemented
Hooks only activate when achievements are enabled; system is low-overhead when disabled.
Prevents notification spam by enforcing timing between achievement popups.
Supports multi-event achievements and partial progress.
(General, Vanilla, Randomizer) for organization and future extensibility.
Developer tooling enables rapid iteration and validation.
Achievements are seamlessly integrated with existing save data.
Build Artifacts