Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding in Tutorial for [CONTENT] Using NFTs in games #26 #150

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

michaeljohnbennett
Copy link

Adds to #26.

This PR contains the tutorial for the beginnings of a NFT Card Game Tutorial.

This PR is evolving and not ready to merge until commented as so.

Please give feedback just now on style and structure where appropriate and I can amend over the coming weeks.

Where is the best place to store the code/files for the project? Shall I host a public GitHub repo for this?

Part 1 with the basic start on the construction of the game contracts.

Design spec started as well.
Copy link
Collaborator

@jochasinga jochasinga left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks so much for your contribution! I think your writing style is fun and easy to read. Here are some initial (and very broad) suggestions going forward.

  • Brief titles
    • Brief catchy titles can set them apart from the paragraphs. Try eliminating articles like "the", passive sentences with commas, and extra words.
    • Example 1: "How we actually battle" to "How we battle" or even "Let the battle begins!"
    • Example 2: "Requirements for you, the developer" to "Getting ready" or even "Gearing up"!
  • Layout hierachies
    • Consider wrapping sub-contents under subheadings or even create a TOC for the outline for easier read (i.e. Outline can be a parent heading with the components as children)
  • Consistent pronouns
    • It's helpful and easier for the readers if you could think about how to address them, i.e. "you" or "we", "I" or "we". It's up to you if you want to set a more casual 1-on-1 tone ("I" and "you") or somewhat persuasive ("we").
  • Insert links
    • I generally think too many links are irritating, but 1-3 a paragraph where helpful are great, like VSCode (this can be for later of course)

I think thinking about the overall theme that resonates throughout the writing can really be engaging. If this is a Battle Royale fighting theme, sprinkling it in the content ("Holster your Weapon, Dev!") can be really fun and keep readers hooked. This tutorial or this less adventurous one can give you some ideas.

Looking forward to reading this tutorial!

I know that doesn't sound super fun, you want to be creating all sorts of ape images and making millions on OpenSea but we have to crawl before we can bound like an Ape.

## Requirements for you, the developer
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Gearin' up" or just less colorful "Requirements"

In this tutorial we will be working creating an NFT game from the start to finish. The initial parts will focus on solidity and hardhat for developing our smart contracts and writing tests, yes, lots of tests.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe add another sentence to support why writing tests for Solidity is easy, fun, and important.

On your computer your gonna need a good shell (ZSH), node installed and hardhat etc and a copy of the repo for this project (TBA). You can use VSCode or Jetbrains IDE's with javascript support (Intellij/WebStorm) if your that way inclined. I use both, I like Intellij's debugging and TS intellisense but the testing and plugins for solidity are better in VSCode, so thems the breaks. I use a mac to develop on, you should be fine with WSL2 on windows but your own your own if you have problems, sorry. Linux will be fine too.

## The outline
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider the subcomponents being h3 under The outline?

So something like this on the card side. We need to then think about how we capture this in the Store. Because really the pack doesn't care about the card types, probabilities etc, it's just the promise of some cool stuff, the actual creation of the cool stuff isn't happening in the `BattleRoyaleCardPackNFT`. Its happening in the `BattleRoyaleStore` contract.

### `BattleRoyaleStore` contract
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is awesome 👍

@michaeljohnbennett
Copy link
Author

Thank you for this advice @jochasinga! I'll make some revisions over the next few days.

The start was a bit of a stream of consciousness around the initial setup, definitely see some ways to restructure and retitle things.

I might give it a bit of squid game homage then in the titles.

@jochasinga
Copy link
Collaborator

Thank you for this advice @jochasinga! I'll make some revisions over the next few days.

The start was a bit of a stream of consciousness around the initial setup, definitely see some ways to restructure and retitle things.

I might give it a bit of squid game homage then in the titles.

Squid Game homage might just be the thing!

This component is the final component we will work on in this initial phase of the tutorial. This smart contract contains the logic for buying packs and opening them. It's got a few moving parts so we will go through this one in some detail but by the end you will have a way for people to buy your packs, be given a pack NFT or if they decide to open them it will mint you some Battle Card NFTs based on some probabilities we are going to code into the system.

## The Overall Requirements/Design Specification
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would move this before the specific components! Doesn't have to be for now, but I think connecting the spec decisions to what's feasible in the NFT world would be good too. I think tons of folks will have great game ideas, but should understand how to fit those somewhat practically into an MVP using NFTs.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might consider making the flow go: overall description of the game, mechanisms, and intro'ing the different components at a really high level, then having a section on each component: Battle Cards (intro, requirements, design, some code), then packs (intro, requirements, design, some code), etc., then having a full on code section. But think the content feels good, and we can always shift things around later (and can get a copy-editor to help out).

@dchoi27
Copy link

dchoi27 commented Oct 12, 2021

Thanks @michaeljohnbennett! And great thoughts @jochasinga.

My feedback is mostly around flow of the content, which we can always adjust later (and get a copy-editor to help with). Looking forward to watching the tutorial's progress!

And Squid Game theme sounds great :)

This should guide the overall structure.

Thoughts please!
@michaeljohnbennett
Copy link
Author

ok I added a table of contents thinking about our conversations so far.

Does this look ok?

@jochasinga
Copy link
Collaborator

ok I added a table of contents thinking about our conversations so far.

Does this look ok?

Sorry to have dropped the ball on this! I'm taking a look.

Copy link
Collaborator

@jochasinga jochasinga left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually if you build the branch locally you'll see that the headings already render as TOC on the sidebar. Therefore I don't think there's a need for another in-content TOC (at least that's what I did with my tutorial).

@jochasinga
Copy link
Collaborator

Hi @michaeljohnbennett if you have a few minutes to skim through the guideline here https://nftschool.dev/contribute/ you will find lots of useful formatting guidelines that had helped me in my writing and cut down the amount of proofreading work.

@jochasinga
Copy link
Collaborator

@michaeljohnbennett wonder how things are going and if you need any help on this?

@jochasinga
Copy link
Collaborator

@michaeljohnbennett bumping this for your attention. I really think your content is really slick here and would love to see it published!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants