-
Notifications
You must be signed in to change notification settings - Fork 10
Subsets
Advanced Developer Topic
When browsing the list of games, you will see that some games have a [Subset]
tag in the title. Each of these contain achievements that for some reason or another, are not available in a game's base set.
Subsets are typically home to specific types of challenge runs. They have also inherited what have been known simply as [Bonus]
and [Multi]
sets.
The methods to create a subset and means to play them will change once they become a more integrated feature. As of now, they require a patch to generate a unique hash and are separate entries from the base set, so achievements must be obtained separately as well. Information on creating these patches can be obtained here.
Achievements typically found in subsets do not necessarily have to be in subsets; they are just an option. There are plenty of challenges or challenge runs that are perfectly suitable for base sets.
A bonus set is a set with a variety of achievements that do not fit into the base set of a game for various reasons. These may be extremely difficult challenges that go beyond what is welcome, painful grinds that serve no particular purpose beyond getting stronger or collecting everything, a showcase of glitches, or many other kinds of things that wouldn't be considered good achievements for the base set.
- Bonus sets do not require Developer Compliance approval if the achievements all fit within existing pre-approved types.
- A good example of the variety pack nature of a bonus set is the Suikoden Bonus Set, which contains various challenge runs, rare drops, and extreme challenges within a single subset.
If it's generally voiced a challenge is too difficult, it's a prime candidate for a Bonus set. How difficult is too difficult? However, just because the achievement(s) are possible to code does not mean they are possible to obtain; therefore, the achievement must still be obtainable. How difficult is too difficult? Something that few players of a set would be able to accomplish. If you expect under a 1% earn rate, it is probably extreme. If it feels unreasonable to require anyone to do an achievement, it is probably brutal.
- A good example of a single achievement that could be considered extreme or brutal is the infamous Mr. Perfect from Mega Man (NES), which requires the player to complete the entire game without taking damage.
- A good example of a full subset is Ninja Gaiden [Subset -Full Game Damageless]
- Does not have to be named Brutal Challenge, but that subset type should be referenced in subset plan/any subset vote. If there are any doubts about whether challenges fall into this category, contact Developer Compliance for a quick judgement.
This one is simple. If an achievement requires input from more than one player in order to unlock it, then it cannot be in the base set. Multi sets must require two or more players to be inputting controls; after all, it's not a multi set if you aren't playing together.
While many base sets include plenty of challenges, developers have the option to add challenges that last the duration of a game's playthrough to a Subset. These are typically self-imposed challenges that go against how a game is normally played. Examples:
-
Chrono Trigger - No Level Up - requires players to complete the game without ever leveling up their characters.
-
EarthBound - Rare Drops - requires players to obtain all the rare drops from enemies.
-
Final Fantasy - Solo Class - requires players to complete the game using only one character class, but they need to do it with every class to master the set.
-
Pokemon - Professor Oak Challenge - There are several of these so far! This challenge requires players to catch and/or evolve every Pokemon possible between major story points in the game.
-
Trails in the Sky FC - NG Nightmare - requires players to obtain 100% completion in a single, NG (New Game) playthrough on the Nightmare difficulty setting, as opposed to doing it on NG+ with carryovers.
Not very common, but will become more common as our console support expands. Achievements in these sets are exclusive to a game's downloadable content or expansion pack(s). Examples:
-
Arc the Lad 2 - Arc Arena: Monster Tournament - released as a bonus disc in the Arc the Lad Collection, this requires save data from Arc the Lad 2 in order to play.
-
F-Zero X - Expansion Kit - achievements are for content exclusive to the 64DD expansion of the game.
-
Return Fire - Maps o' Death - a separate release that provides additional maps to the game. It requires save data from the original game in order to play.
If a regional variant of a game does not have enough differences to warrant a "full" set, but you don't want to include it with the base set due to interference with base challenges, you can make a Subset to showcase the differences.
If a game has a feature that allows players to make their own content such as custom levels, then a subset would be an acceptable place to include said content. Examples:
-
Irritating Stick - IrRAtating Custom Courses - features custom stages made by various RA community members.
- Tony Hawk's Underground - RAdical Custom Goals/Gaps - Custom goals and gaps made by various RA community members.
If achievements involve overly long and frustrating grinds that have no meaningful purpose, they're better suited for Bonus sets. These include leveling characters to the maximum level, maxing out stats, performing a task an absurd amount of times, etc. when none of those things award the player. A good grind session subset will have a strong, cohesive theme.
- Please note that a grind does not automatically mean it's unsuitable for a base set: A good example of something grindy that awards the player, thus making it suitable for a base set, is One of a Kind from Final Fantasy IV (SNES), which requires a highly RNG-reliant grind for an item to trade for said armor.
Glitching can have unpredictable effects in a game's memory, which can result in unwanted behavior for some achievements, thus making them not suitable for a base set. However many glitches can add fun or interesting gameplay, effects, or just silly actions and may be worth highlighting outside of the base set. Some examples of this are Replica from Final Fantasy VII (PlayStation) and Rare Candy Addiction from Pokemon - Red and Blue Versions (Game Boy.
A subset where you have to collect or perform a lengthy grind prior each checkpoints, where checkpoints are clear and distributed throughout the game. Such subsets should not be heavily front-loaded, meaning that if most of the achievements are to be done before the first checkpoint, it is likely a poor subset candidate. A good example is most main game Pokemon Professor Oak Challenge subsets.
Restrictive challenges where player units or equivalent must never be used again if the die, expire, or otherwise lose in some way during play. (Examples: Pokemon Nuzlocke challenges or Strategy RPGs where perma-death isn't already a characteristic of the game). Note: These challenges may need support within the game or hack to be possible with the current toolkit.
To prevent players from getting confused, there is a specific naming scheme required for all Subsets:
-
Bonus Sets: Must have
[Subset - Bonus]
following the base game title. For example:Castlevania [Subset - Bonus]
andDarkwing Duck [Subset - Bonus]
.
-
Multi Sets: Must have
[Subset - Multi]
following the base game title. For example:Contra [Subset - Multi]
andKirby 64: THe Crystal Shards [Subset - Multi]
.
-
Challenge Runs: Must have
[Subset - Challenge Name/Type]
following the base game title. For example:Chrono Trigger [Subset - No Level Up]
andPocket Monsters Midori [Subset - Monotype Challenge]
.
-
DLC and Expansions: Must have
[Subset - DLC/Expansion Name
following the base game title. For example:Return Fire - [Subset - Maps o' Death]
andF-Zero X [Subset - Expansion Kit]
-
User-Generated Content: While not actually required, including
RA
in the subset title has been a fun way to name the content.
The approval process and claiming of a subset will vary depending on if the subset type is pre-approved, your involvement with the base set, and whether or not you're a full developer or a junior developer:
Authorship¹ | Approval and Claiming Process |
---|---|
Sole Author of Core Set | • Subset must be approved by Developer Compliance ²³ • Does not require a plan and revision vote • Considered a free claim ⁴ |
Collaborative Author of Core Set | • Subset must be approved by Developer Compliance ²³ • Requires a plan and revision vote? ◦ No, if all active authors of the set approve ◦ Yes, otherwise • Considered a free claim ⁴ |
No Core Set Authorship | • Subset must be approved by Developer Compliance ²³ • If approved, a set plan must be posted in the base set's forum topic and must go through revision voting • Is not considered a free claim • In the event that both a revision and subset plan are made for a set, both claims will count as one |
Junior Developer | • In addition to the above cases, must first be approved by Code Reviewers |
¹ In the case of multiple revision authors, use the most restrictive ruleset in the table. Example: If there is a subset collaboration and any subset author is not a core set author, use the No Core Set Authorship
rules.
² To Contact Developer Compliance, send them a site message here and replace the [Game Name]
and [Subset Name]
in the subject line with the game name and desired subset name.
³ The following are pre-approved subset types and therefore do not require contacting Developer Compliance:
- Bonus (only if composed of other pre-approved types)
- Multi
- DLC/Expansions
- Extreme or Brutal Challenges
- Glitch Showcases
- Regional Differences
- User-Generated Content
- Challenge Run: Low Level Game/No Leveling Runs
- Challenge Run: Solo Class/Monotype Runs
- Challenge Run: Professor Oak Challenges for official Pokemon main series releases
- Challenge Run: Perma-Death Challenges, such as Nuzlocke Challenges
⁴ For now, an admin must be contacted via Discord or by messaging RAdmin to mark a claim as free. As a courtesy, please only request this if you actually need the claim slot or if you expect a long development period.
- In the case of multiple revision authors, use the most restrictive ruleset in the table. Example: If there is a subset collaboration and any subset author is not a core set author, use the 'no core set authorship' rules.
- User Guidelines
- Developer Guidelines
- Content Guidelines
- FAQ
- Setup Guide
- Emulator Support and Issues
- Ways to Contribute
- RABot, the RA Discord Robot
- Events
- Overlay Themes
- Useful Links
- Contributing with the docs
- About Us
- Tutorials
- Developer Docs
- How to Become an Achievement Developer
- Getting Started as an Achievement Developer
- Game Identification
- Achievement Design
- Achievement Scoring
- Difficulty Scale and Balance
- Progression and Win Condition Typing
- Badge and Icon Creation
- Achievement Development Overview
- Flags
- BitCount Size
- Alt Groups
- Hit Counts
- Delta Values
- Prior Values
- Value Definition
- Condition Syntax
- Minimum Required Versions for Logic Features
- Memory Inspector
- Real Examples
- Set Development Roadmap
- Achievement Templates
- Tips and Tricks
- Leaderboards
- Rich Presence
- RATools
- Console Specific Tips
- Emulator Hotkeys for Developers
- libretro core support
- Docs To Do List
- WIP User Code of Conduct
- WIP CoC FAQ
- WIP Content Guidelines
- WIP-Jr
- WIP---Dev-Tips---Code-Notes-En-Masse
- WIP-‐-Reauthorship-Policy
- Manifesto RetroAchievements
- Código de Conduta do Usuário
- FAQ - Perguntas Frequentes
- Como contribuir se você não é um desenvolvedor
- Tutorial para Jogos Multi-Discos
- Introdução
- Primeiros Passos como um Desenvolvedor de Conquistas
- Recursos de Lógica para Achievements
- Exemplos Reais
- Dicas e Truques
- Dicas Específicas de Console
- Modelos de Achievement
- Escala de Dificuldade e Equilíbrio
- Roteiro de Desenvolvimento de um Set de Conquistas
- Criação de Ícones e Emblemas
- Leaderboards
- Rich Presence
- Design de Conquistas
- Manifesto RetroAchievements
- Código de Conducta del Usuario
- FAQ - Preguntas Frecuentes
- Tablas Globales y Reglas para la Casería de Logros
- Mi juego no esta cargando los logros
- Como contribuir si no eres un desarrollador
- Por que no deberías utilizar la función de cargar estado
- Contribuyendo con los documentos
- Como funciona la Documentación de RA
- Descargas
- Intro
- Código de Conducta del Desarrollador
- Como convertirme en un Desarrollador de Logros
- Primeros pasos como un Desarrollador de Logros
- Un vistazo al Inspector de Memoria
- Características en la Logica de un Logro
- Ejemplos Reales
- Intro
- Utilizando Hit Counts como un Temporizador
- Utilizando Valores Delta y Hit Counts para Detectar un Incremento
- Un Ejemplo Simple en como evitar el Abuso de Estados de Guardado
- Evitar el Problema de que un Contador se Incremente Dos Veces en el Mismo Frame
- Creando un Temporizador con un ResetIf Hits basándote en la Velocidad de un Juego
- Plantillas para Logros
- Tips y Trucos
- Escala de Dificultad y Balance
- Diseño de Logros
- Mapa de Desarrollo de Set
- Revisiones en Set de Logros
- Creación de Iconos y Badges
- Tablas de Clasificación
- Rich Presence
- Trabajando con el ROM apropiado
- Identificación del Juego
- Guía para Sets Bonus
- Logros para ROM hacks
- Tips Específicos por Consola