raid-guild / RIPs

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

RIP: CharacterSheets - Phase 1 #146

Closed ECWireless closed 10 months ago

ECWireless commented 1 year ago

Project Idea

As of 8/29/23, this proposal is only for the Phase 1 mentioned below.

The goal of CharacterSheets is to be a gamified and on-chain representation of RaidGuild raiders. For this RIP, the deliverable is a “start new RaidGuild game” experience for the next cohort, allowing prospective cohort members to receive on-chain Character Sheets through the process of joining the cohort. These cohort members would then be able to build off of their Character Sheet (e.g., assigning themselves a role, receiving XP, etc.) by interacting with a Discord DungeonMaster chat bot (or contributing to raids), and view their generated Character Cards on a frontend. A key to this RIP is ensuring that the Character Sheets, while fun, represent cohort members (their skills, value-add, and accomplishments) accurately.

Project Submitted By

@ECWireless , @MrDeadce11, and @dan13ram

Summary

Under the hood, Character Sheets are associated ERC-721s and ERC-6551s, which own ERC-1155s (classes, XP, and items). These Character Sheets would act as a record of character classes/roles, XP, and items (and anything else you would normally find on a D&D character sheet), and be rendered publicly on the RaidGuild site as a Character Card.

The super admin of all of this are a list of EOAs with the DUNGEON_MASTER role (eventually this role would be held by RaidGuild; exactly how is up for discussion). This allows the Character Sheet to be viewed as a legitimate source of professional credentials (and since the DungeonMaster is the only one allowed to transfer a Character Sheet, it can’t be sold off to a less experienced “player”).

In the first phase of development, only a few Character Sheets will be issued to RaidGuild members who specifically want to test the experiment. In the second phase, though, the goal is to be able to issue a Character Sheet to everyone joining the next cohort.

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.

In the short term, it also adds a couple benefits to the cohort: it can be used to stir up interest for people thinking about joining, it hopefully makes the cohort experience more fun throughout, and it has a decent potentially to keep cohort members retained and more active after the cohort ends, since they now have a character to keep playing as.

There are 2 phases of this RIP

Phase 1

For phase 1, we just want to make sure that everything works. It will be as bare-bones as possible, but still usable by any RaidGuild member who wants to test it out (it will also only be deployed on a testnet). The end result of this phase is a web page rendering testers' Character Cards, including their items, XP, and class. The components of this are:

  1. A simple list of EOA addresses who act as super admins (with the DUNGEON_MASTER role) of the contracts
    • This list would initially consist the few people working on the project
    • In the future, this could be a Gnosis Safe, DAO, or automated agent
  2. Smart Contracts
    • Classes will be mapped to existing RaidGuild roles/classes
    • XP is related to real-world value the character has created, although the credibility of the XP is dependant on the track-record of the issuer (i.e., the DUNGEON_MASTER)
    • Items can be purely cosmetic (part of how your character is rendered), but their rarity/exclusivity should depend real-world value added
    • A early draft of these have already been created
    • The specific contracts are:
      • CharacterSheetsFactory.sol
      • CharacterSheetsImplementation.sol
      • ExperienceAndItemsImplementation.sol
    • Note that only the the DUNGEON_MASETER is able to create new Character Sheets, assign classes, and transfer the Character Sheet to a new EOA
  3. Subgraph for easy data fetching
  4. A simple frontend to render Character Cards
    • Character Cards will render a Villager image if no role is assigned to it
      • Depending on the which roles are assigned, the character image dynamically changes
      • Only 1 role image (e.g., an image of a wizard) is allowed to render for now; in the future, we could design looks for characters with multiple roles
      • In the future, we can also layer on a character's "active" item
    • The card would also render the character's name, class, XP, and items
    • A user will also be able to sign in with their EOA, allowing them to create and view both new Games and Character Sheets. The full spec is linked below:

At the end of this phase, after any needed changes have been made, the contracts will be deployed on the Gnosis chain in order to reward the initial testers with the first real Character Sheets.

By the end of this phase, we also plan to have phase 2 fully scoped.

Phase 2

For phase 2, the goal is to issue Character Sheets to the next RaidGuild cohort, and to learn which character attributes and/or leveling/stats/XP mechanisms should be added in the future (as a random example: people may want items/unique weapons, which represent nothing other than the fact that your character is experienced enough to have earned them). The deployments for this phase will be on the Gnosis chain.

The key for this phase is creating a painless "new game" experience. The components of this phase are:

  1. A "new game" stage in the cohort application process
    • "Creating a new game" involves the applicant making a transaction (or signing with their wallet) to queue up the minting of a new Character Sheet
      • This would be part of the application form
    • This queues up the process, but does not actually mint the Character Sheet yet
    • The applicant is prompted to start the game by joining the Discord and verifying their address
  2. A DungeonMaster Discord bot that triggers DUNGEON_MASTER transactions
    • When the cohort applicant verifies on Discord, the DungeonMaster bot should mint them a new Character Sheet, and link them to the Character Card on the site
    • When the cohort applicant picks a role in Discord, the DungeonMaster bot should mint the Character Sheet a new role NFT
  3. A DUNGEON_MASTER automated agent
    • Under the hood, this would be a 3/n Gnosis Safe with signers split between 3 servers, for extra security
  4. An AI chatbot that provides a "new game" feel within the Discord Server
    • This is the AI component of the DungeonMaster bot, with a focus on good NLP UX and lore-craft
    • Would use Govinda's Tavern Keeper idea as inspiration
    • This could build off of Saimano's GuildGenie, with a focus on changing its personality to match a tutorial-providing NPC (like a Tavern Keeper)
    • We could also use LangChain's concept of Agents to allow the AI bot to directly trigger Gnosis Safe transactions
  5. Solid lore-craft and artwork
    • The frontend needs to be enhanced to include a better overall design and character artwork
    • The AI/DungeonMaster chatbot should communicate with a little bit of D&D flare

Up for Discussion

  1. Which functions should be usable on the frontend for Phase 1? What about for phase 2?
  2. Should we restrict cohort Character Sheets to EOAs that are part of the cohort DAO?
  3. Can HATS be used as the operator here rather than a DAO?
    • We could make the roles self-organizing by creating sub-operators that control particular roles (i.e. clerics decide who is added to the clerics circle).
  4. We need to work out the specifics of exactly how and when a prospective cohort member receives a Character Sheet
    • For instance, should they receive one during the application process? Or do we wait until they fully join a cohort DAO

Raid Party Skills Needed

Phase 1

Phase 2

The full scope for phase 2 is TBD.

Specs

Phase 1

Frontend: https://hackmd.io/@ecwireless/H1DsJGVTn Subgraph: https://hackmd.io/@dan13ram/SkLpK5i6n

Phase 2

TBD

Timeline

Cost (in USD)

ECWireless commented 1 year ago

Update

Demo-able version of Phase 1 is here, with the actual demo planned for 9/14/23.

After the demo, if people like the idea of moving forward, then work will begin on spec'ing Phase 2 (the spec being the final deliverable of Phase 1)

derrekcoleman commented 1 year ago

Positive response from previous demo; proposal for phase 1 payout going up soon.

Phase 2 still needs more spec. Enter Phase 1.5 so the demo is usable out of the box in its current form (plus a few features).

Proposal for Phase 1.5 coming next Tuesday (Sep 26), give or take.

derrekcoleman commented 1 year ago

First phase done, payout distributed. Phase 1.5 scope coming in a day or two.

ECWireless commented 1 year ago

Phase 1.5 Proposal

Project Idea

This sub-phase is meant to take the current proof-of-concept and turn it into a fuller MVP that the guild can test for a month on Gnosis chain. During this testing time, the team will determine the best features and scope for phase 2.

Why should we build this?

Deliverables

View the full spec here

Raid Party

Deadline and Cost

derrekcoleman commented 1 year ago

Will ship to play.raidguild.org by the weekend. Equipping items and MC-tipping-bot are the two main new features. Chipping away at adding features and UI improvements.

derrekcoleman commented 12 months ago

Shipped visual item equipping, editing character look, mobile-friendly layout, message for XP tips, and MC tip! Thinking about leveling classes/characters, retroactive XP based on DM data, and a version useful for the cohort process. Will either wrap the project or pursue phase 2 funding by EOM.

derrekcoleman commented 11 months ago

Phase 2 spec 1st draft done. Will probably be finalized in late Dec/early Jan. This (phase of the) RIP will close around then too.

derrekcoleman commented 11 months ago

Dan and EC brainstorming Phase 2. Once Bennisan is back at the end of next week, the spec will be soon to follow.

ECWireless commented 10 months ago

With the finishing of the phase 2 spec, this RIP is now complete: https://github.com/raid-guild/RIPs/issues/157