raid-guild / RIPs

Registry of internal raidguild improvment projects
24 stars 17 forks source link

RIP: CharacterSheets - Phase 2 #157

Closed ECWireless closed 5 months ago

ECWireless commented 8 months ago

Project Idea

You can view the Phase 1 proposal here.

The goal of CharacterSheets is to be a gamified and on-chain representation of RaidGuild. For this RIP, the deliverable is a dashboard that allows RaidGuild and cohort games to be played on a continuous and asynchronous basis. By the end of this RIP, all RaidGuild and cohort members should be able to:

  1. Generate an ERC-6551 character
  2. Assign themselves lvl 1 classes
  3. Earn class-specific XP for tasks and raids completed
  4. Be leveled up when class XP thresholds are met
  5. Claim and equip items based on XP and/or class levels
  6. Migrate their cohort character to the main RaidGuild game

A key to this RIP is ensuring that the CharacterSheets, while fun, represents RaidGuild and cohort members--their skills, value-add, and accomplishments--accurately.

Summary

This phase is meant to be the last, with the goal being to make CharacterSheets both useful and playable by any group. There are currently no future plans beyond Phase 2, at least not until a time when CharacterSheets is deemed (by the guild or others) useful enough to want to extend it further. Future phases should probably be funded through means beyond RaidGuild, such as public goods grants.

One way the goal of this phase could be described is as taking CharacterSheets from an MVP to an "alpha" state. Meaning: at the end of this phase, future versions will be based on actual user feedback, and not based on the initial project ideas. At the alpha release, all necessary components of being able to play an async and continuous game based on professional work will be complete. Future features will primarily be considered enhancements.

Before stating the feature-groupings for this phase, it's important to stress what the 3 focuses should be:

  1. Ensuring games are as fun and useful for RaidGuild and cohorts as possible
  2. Ensuring class leveling is fair, easily understandable, and automated
  3. Ensuring that anyone outside of the RaidGuild can create their own game with little or no support from us

These focuses should be thought about at all times when the following feature-groupings are being built out:

  1. More items
    • We need to make sure that every single RaidGuild class has at least 1 claimable item
    • We should create at least 1 XP-restricted item
    • We should create at least 2 "purely cosmetic" items
    • The items proxy contract needs to be upgraded to allow and/or class restrictions for items
      • For instance, you should be able to claim a certain sword if you are a Warrior or a Paladin
  2. Class leveling
    • We should start integrating with DungeonMaster
      • Render characters as raid party members
      • Disburse class-specific XP based on raids shipped
        • 1-to-1 with how much stablecoin you've earned to XP
        • We can check this using splits and smart escrow contracts
        • Gets more complicated the farther back you go
        • Only worry about future distribution of XP for now
    • XP burning should be removed everywhere except for as an emergency function
      • We should also allow burning of class XP
    • XP should be associated with a class even before it is leveled
      • For instance, I would want to know how close I am to leveling up as a Warrior
      • We can do this be adding an address => classId => balance mapping in the class contract
    • We should render the general character level to the class card
      • This level is based on all class XP, plus general XP
      • Need a design for this
    • Bot could announce when a character has leveled up (make it a bit of a celebration)
  3. Migrating characters from cohort games to main game
    • At some point during this phase, we should create a game for cohort 6
    • In order to "import" a character into another game, the character must pass the eligibility module check, and receive a player/character hat
      • Cohort items won't be able to be transferred to the main RaidGuild game
      • We will need to create a server that looks at the Cohort game classes and XP, then mints corresponding amounts in the main game when the character is "imported"
      • The character will be visible on both the Cohort and Main game page, possibly even with different items and stats
      • They could also receive cohort specific items if we want
  4. Deploy contracts and subgraph for more chains
    • New chains:
      • Optimism
      • Polygon
      • Sepolia

Why should we build this?

CharacterSheets is an experiment that extends what RaidGuild already is: a slightly gamified way to work professionally. The hope of this RIP is to nudge RaidGuild further towards a fully gamified way to work professionally. But why would this be beneficial? Right now, RaidGuild "plays" together in a very socially-tracked way. The dynamic works well in the moment, but it becomes almost impossible to figure out what occurred in the past, especially if you are a new member, or haven't been involved in a while. DungeonMaster improves this experience by tracking a history of consultations and raids, but we still don't have a good way of tracking the accumulated experience or activity level of individual raiders. CharacterSheets hopes to resolve this by offering insight via the issuance of general and class-based XP. This XP (as well as corresponding character levels) will be easily readable and filterable on a character/raider's card, thus making it easy to identify who is doing what, and at what skill level.

Additionally, in the short term, it also adds a couple benefits to the cohort experience and to RaidGuild's online presence:

SPEC

View the detailed spec here.

Raid Party Skills Needed

Timeline

See detailed timeline here.

Start date: 1/29/24

End date: 2/29/24

Cost (in USD)

derrekcoleman commented 8 months ago

Project kickoff today in full force. Low vote quantity has team feeling tentative and desiring feedback, if folks have any.

Looking to ship before ETHDenver and demo right after.

ECWireless commented 7 months ago

Working on smart contract updates, plus the nice-to-haves from phase 1.5. Next week will be focused on fitting the smart contract changes into the frontend.

Seroxdesign commented 6 months ago

Was paused for a few weeks, starting again soon. At the midway point right now.

boucherbox commented 5 months ago

Sepolia version Demo'ed on RR Thursday April 4th

ECWireless commented 5 months ago

Mission complete: https://admin.daohaus.club/#/molochV3/0x64/0xf02fd4286917270cb94fbc13a0f4e1ed76f7e986/proposal/64