8.4 Update + New Features
As part of a roundup for my older tools to ensure they're working on 8.4, I've been adding some features and fixes that didn't make it into the latest release. So, let's dig in!
Do I have to update?
No, this is purely a feature update with some quality of life additions. If your game is already released or partially released with achievements, I don't recommend updating at this time - just stick with the achievement code you have. If you've got an in-progress or new project, by all means, use the new code!
New Features
- Achievements can now make use of an internal set to track progress. A new method, add_set_progress, will let you add a unique value to the internal set to track progress. In more concrete terms, it turns something like this:
default persistent.endings_seen = set() define endings_achievement = Achievement(...) label good_end: $ persistent.endings_seen.add("good_end") $ endings_achievement.progress(len(persistent.endings_seen))
into
define endings_achievement = Achievement(...) label good_end: $ endings_achievement.add_set_progress("good_end")
and it will automatically count up the unique values in the set to determine the progress made towards the achievement. This protects against rollback and double-counting achievements, since the set can't have duplicates.
Quality of Life Updates
- The hidden property has been removed in favour of the more readable hide_name property, so you can use both hide_name and hide_description to determine what is hidden when an achievement is locked. Both will also take a string value that's used as the name/description when the achievement is locked, so you can provide hints or other information
- myconfig.HIDDEN_ACHIEVEMENT_NAME and myconfig.HIDDEN_ACHIEVEMENT_DESCRIPTION are provided as explicit config values so you can set the default name/description of hidden locked achievements
- Achievements take general keyword arguments and store them in a kwargs property that can be accessed however you like. Use this to store unique backgrounds, styling, whatever you like alongside the achievement so you can retrieve it in the popup or achievement gallery screens
- Some additional example achievement declarations are provided, and a new achievement_examples label can be jumped to which demonstrates how to use the new achievement sets feature and how to grant achievements, track progress, etc.
- A new show_progress_bar property lets you set whether achievements with progress stats show the progress as a bar in the default achievement gallery or not
- The backend achievement code has been placed into its own namespace, to avoid conflicts with other backends
I hope you find the new additions helpful! Thanks very much for using my tools. If you've used the achievement system in one of your projects, why not drop a comment with a link? I love to see the tools in use!
Follow me here to be updated of any other tool releases or updates, and take a look at my website https://feniksdev.com/navigation/ for tutorial releases as well. You might also be interested in another one of my big tool releases, the Controller Support Expansion for Ren'Py:
Files
Get Achievements for Ren'Py
Achievements for Ren'Py
In-depth ingame achievement support for Ren'Py that plugs into the Steam backend.
Status | Released |
Category | Assets |
Author | Feniks |
Genre | Visual Novel |
Tags | Graphical User Interface (GUI), Kinetic Novel, Modular, Ren'Py, User Interface (UI) |
Languages | English |
More posts
- SFX Update + Steam bug fix!Nov 06, 2023
- Progress Timestamp Bug FixOct 31, 2023
- Platinum AchievementsSep 19, 2023
- GitHub link + small fixSep 18, 2023
Leave a comment
Log in with itch.io to leave a comment.