User stories

Account

User wants to create an account to play on the site

  1. User visits the site.
  2. User is provided with an option to create an account by entering username and email address or logging in to an existing account.
  3. The user enters their desired username and email address and is forwarded to a form
  4. User enters their desired password and optionally a custom display name, country, preferred language and phone number.
  5. User creates an account and is able to log in.
  6. The user is prompted to verify their email address. The user clicks on the link to send them a verification code.
  7. The user verifies their email address and now has access to the full functionality of the site.

User wants to secure their account with two-factor authentication

  1. User visits the site
  2. User logs in to their account.
  3. User goes to their account settings to activate 2FA.
  4. The user will be presented with a QR code, which they will scan using a third-party app.
  5. The user enters the code displayed on the app and the process is complete.

User wants to change their password / email address

  1. User visits the site
  2. User logs in to their account.
  3. User goes to their account settings to change password / email address.
  4. The user has to enter their current password to proceed.
  5. If the user changed their email address, a verification email will be sent to the new address.

User wants to delete their account

As per GDPR requirements, the user must be able to delete their account and all data related to it. They must also be able to download their data from the site.

  1. User visits the site
  2. User logs in to their account.
  3. The user goes to their account settings to deactivate their account.
  4. If 2FA is configured, the user is prompted to enter the code.
  5. The user must enter their current password to proceed.
  6. The user is given the choice to download all or some of their data before deletion. This data can include:
    1. General user information.
    2. User session information.
    3. Character customization options for every character created.
    4. All published assets including character items, creator items and games.
    5. Friends list.
  7. If the user proceeds, their account will be deactivated and all of their data will be deleted in 30 days from the date.
  8. The user can stop the deletion process at any time by logging in again.
  9. After the 30 day period is over, the user will no longer be able to log in and their account will be deleted from the platform.
    1. As per the terms and conditions of the platform, any published assets with public availability will remain available and are usable by other developers/players. The user has the right to request these assets to be taken down, but Freeblox reserves the right to keep these assets on their platform if they are in use by other players until an explicit take-down request.

Character

User wants to customize their character

  1. User visits the site.
  2. User logs in to their account.
  3. On the navigation menu there is an option to edit the character, "Character". User clicks on it.
  4. The user is greeted with a 3D view of their current character with options for accessories, clothing, a menu for changing colors and character height.
  5. The user has the ability to create up to three characters for every character model available on the platform. The user can choose which character they want to edit from a drop-down menu.
  6. The user can create "outfits" composed of the current settings and worn items. These settings can be then reapplied at any time from the outfits menu.

User wants to buy character items

  1. User visits the site.
  2. User logs in to their account.
  3. On the navigation menu there is an option to view the catalog, "Catalog". User clicks on it.
  4. The user is greeted with a list of categories of character items and a grid list of available items, their name and price.
  5. The user can select a category and apply filters to their search.
  6. The user can click on an item and go to it's detail view.
    1. The detail view contains:
      1. Either a static picture or 3D view of the item on a placeholder character. If the item supports multiple character models, there is a menu to select another character model to preview the item on.
      2. The items details: name, price, creator, purchase count, ratings
      3. Buy button
        1. The user presses the buy button.
          1. If the user has enough funds, the item will be added to the inventory. The user has an option to return to the catalog or to go to their character editor.
          2. If the user does not have enough funds, there will be an error message.
      4. View on character button
        1. The user presses the button.
          1. If the user has multiple characters, a drop-down menu will open to choose the desired character.
          2. If the user has no supported characters, the button will not be displayed.
        2. The preview will be replaced with the user's character, equipped with the item in question.
      5. Comments

Game

User wants to play a game

  1. User visits the site.
  2. User logs in to their account.
  3. User is greeted with a grid list of games available to play, sorted on default by player count.
  4. User can search for a game they would like to play by title, description keywords, player count or category.
  5. User clicks on a game thumbnail or title.
  6. The detail view of the game opens up, user can press "Play" to proceed.
    1. Possible outcomes of hitting "Play":
      1. If the game server is hosted on an external server, a confirmation dialog will open warning the player of potential risks of joining a hosted server. This message can be hidden permanently, but an icon on the detail view will always show this information if applicable. Malicious servers must be reported without hesitation - the host and the user associated will be permanently banned if found in violation of our policies.
        1. IP addresses could be logged and associated with player names/IDs by third parties. This can be circumvented by the official proxy or a VPN.
        2. Malicious assets could be distributed to players.
      2. If a game server is available, a session will be created and the game player will open.
      3. If the user does not have a character supported by this game, the player will be prompted to create a new character.
      4. If the game is unpublished or is self hosted and the server is unavailable, the user cannot play the game.
      5. If there is an issue with the session service, an error message will be displayed.
    2. If the game supports multiple character models and/or the user has multiple characters, the user can also press "Play with options" button to choose the avatar they wish to use.

User wants to create a game

  1. On the navigation bar, there is a "Create" button. User presses the button.
  2. A drop-down menu opens, showing the user options regarding what they can create.
  3. Depending on the user's privileges, the possible options may be:
    1. Game (create:game)
    2. Clothing (create:clothing)
    3. Accessory (create:accessory)
    4. Character (create:character)
  4. The user presses on "Game"
  5. The editor will open and the user can start developing a game.
  6. The user can save the game onto the platform.
  7. When the user's game is ready to be played by others, it can be published onto the platform.

User wants to host their game on their own hardware

  1. User goes to their game's settings and clicks on "Hosting"
  2. The user is prompted with a list of their servers, showing the server active checkbox, connection status, display name, host (address:port), proxy availability and player count.
  3. The user can add a new server to the list, for which they must enter the following details:
    1. Display name (example: Game Server)
    2. Address and port of game socket, may be a DNS name.
    3. Address and port of game status API, may be a DNS name, port defaults to 443.
    4. Checkbox for multi-game support. When this is checked, this server can be used to provision other games by the same developer. Defaults to false, requires additional server configuration.
    5. Checkbox for multi-instance support. When this is checked, this server can be used to run multiple instances of the same game. Defaults to false, requires additional server configuration.
  4. When the server is added, a token will be provided to the user. This token must be entered into the game server settings.

Platform is configured, up next, the server itself.

  1. User can download the latest version of the game server software. TBA
  2. The user must configure the server.
    1. The ports must match the configured values on the platform and must be open to the internet.
    2. The token must be configured.
    3. The world asset ID or file path or file URL must be configured if the server is not configured to automatically provision itself.
    4. Hosting terms of service must be read and agreed to.
    5. The user can optionally configure provisioning and multi-instance support.
      1. Provisioning gives the control of the server over to the game server provisioning service on the web platform. When a player attempts to join your game, the provisioning system will either start or join to an existing instance on your game server. The provisioning system can also be configured to unload the world after a set time period of inactivity. Note: Giving access of your server to our platform could be a potential security risk. We of course strive to be as secure and locked-down as possible, but this is never a 100% given. The service can access the provisioning endpoints only when this explicit permission is given, which you can verify by checking the source code yourself.
    6. The user can optionally configure the physics speed and scripting support parameters.
  3. The user starts the server software, which will then announce itself to the web platform using the configured token.

Note: Some users may have access to our proxying system, which will effectively hide the player's IP address from your services. This means you are only able to ban user IDs and not IP addresses from accessing your server, however, we suggest reporting malicious players to our staff to deal with them ourselves.

User wants to export their game to a standalone version

TBD

User wants to report a game for malice or inappropriate content

  1. The game detail view includes a report button, which contains the "Report inappropriate server" option if the server is hosted outside of our premises.