Quest Profiles #2018
SaltyAimbOtter
started this conversation in
Concepts
Quest Profiles
#2018
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Profiles
Profiles can hold a state of everything related to BQ.
This means that Events, Conditions, Objectives, Tags and everything else can be saved to a profile for each player.
It is possible to create, copy, delete and switch between profiles for each player.
For server admins and quest writers, this brings the possibility to have a better workflow when creating big story lines.
With maybe multiple decisions to effect the end of the story line or a set of pre requirements,
it is now possible to copy and save them in a profile and restore them again.
For an admin it will also be possible to copy profiles between player, that gives the possibility to debug the state of a user.
For a player it will be possible to switch between these profiles, and so he can play for example multiple endings of a story,
or test something like different e.g. server side classes.
Commands
Here are the admin commands:
Events Objectives Conditions and Variables
profile
eventprofile [create|delete|set|rename|copy] ...
profile
where you can specify the profile where the event should runprofile
variable - to get the current profileIt is also possible to get a profile by its ID (player_profile_id) or by its name Syntax
profile.id.1
orprofile.name.Adventurer
profile
condition - checks if the name or ID matches a given profileactiveProfile
condition - checks if the current(context sensitice) profile is activeKeep in mind
Things that could cause conflicts when switching profiles
Quest Items
to the backpackExplicit use-cases
Some use-cases require an ordered list of profiles and some cont care about the order.
And for some concepts it is a requirement to have the ability to make something like a loop over all profiles.
Debug/Develop your quests
Instead of purging your self all the time and recreate a setup of requirements for your quest, you can copy the profile once.
If you now want to reset everything to the start point, you can simply copy again from you first profile.
This also helps debugging your quests.
Multiple classes
The player can choose between a fixed amount of classes like
Warrioir
Archer
andMage
Have a Prestige Profile
The player has the possibility to play the quest line a second time only for prestige, he will not receive any rewords
Infinite Characters
The player is able to create profiles with names and so on as characters for an RPG server
Decisions in Profiles
The player has a major decision in the story line, and that decision is saved in a copy of the original profile.
In that way the player can may reset or switch the decision he made.
Implementation Details
Database:
Profiles:
new column in player table:
Migration:
To keep existing data every pre-existing player will receive a new profile with the exact same UUID as their own UUID:
The profile name will be taken from the configuration, it will contain a default profile name anyways for new players.
We can then rename all player UUID columns in the quest data tables to be called profile UUID and adjust their foreign key to point to the profile table.
Keep in mind
Things that we may need to implement to solve profile related conflicts when they are switched:
We need an event, if a profile is switched, to react in e.g. objectivesBeta Was this translation helpful? Give feedback.
All reactions