Cover photo

Web3 Coding Adventure: First 3 Months as a Beginner Programmer

Hello world!

I've always been interested in technology and its potential to shape the future. That's why, after a decade working in digital marketing and project management, I decided it was time to dive into the world of programming. Two months ago, I enrolled in the Software Engineering Immersive course at General Assembly and have been loving every minute of it.

But learning to code is just one piece of the puzzle. That's why I was excited to participate in Buildspace's Nights & Weekends Season 2, a six-week program where 1,000 builders and entrepreneurs come together to ship something every day and build something amazing by the end.

Reflecting on my progress over the past three months has me feeling so excited for what the future holds in 2023!

My GitHub commits over the last 3 months
My GitHub commits over the last 3 months

For our first project at GA, we were tasked with building a JavaScript game. I had always been interested in Web3 technology, so I decided to create an NFT game.

After dedicating countless hours to game development and web3 programming tutorials on YouTube, I landed on the idea of a turn-based game where a hero battles a randomly-spawned opponent.

I was inspired by one of the GA assignments and wanted to take the concept further.

// GA assignment

// battle logic
// calculate damange attack, received, and bonuses for damage and rewards
// determine winner

// - how would you model your `adventurer`? Your adventurer will want a **name** and **hitpoints**. What else would your adventurer need?
let adventurer = {
    name: "Brian",
    hitpoints: 10,
}
// - how would you model an `ogre`? Your ogre will want **hitpoints**.
let ogre = {
    hitpoints: 15,
}

// - Write a very small program that will simulate a battle between your adventurer and an ogre.
function ogreAttacks() {
    adventurer.hitpoints -= 1;
}

function adventurerAttacks() {
    ogre.hitpoints -= 2;
}

function battle(adv, ogr) {

    console.log(`Battle starting with ADV @ ${adv.hitpoints} HP, and OGR @ ${ogr.hitpoints} HP`);

    while (adv.hitpoints > 0 && ogr.hitpoints > 0) { // both alive, continue game
        ogreAttacks(); // ogre attacks adv
        adventurerAttacks(); // adv attacks ogre
        console.log(`ADV has ${adv.hitpoints} HP, and OGR has ${ogr.hitpoints} HP`);
    }

    console.log(`Battle ended with ADV @ ${adv.hitpoints} HP, and OGR @ ${ogr.hitpoints} HP`);
}

battle(adventurer, ogre);
One-liner explanation of Adv3nture.xyz
One-liner explanation of Adv3nture.xyz

To bring my game to life, I completed tutorials on Vanilla JavaScript top-down games and web3.js to display NFTs on a website.

Taking inspiration from the @lootproject, I edited the original Loot.sol contract and used the randomizer to generate character attributes like Strength, Agility, and Wisdom.

https://opensea.io/assets/ethereum/0x4b8f5913f1dd81ae68ac8d332635cbb4c7436f2a/99

In my game, players could mint a free Adv3nturer (ADV) NFT and use it to generate an in-game character with the corresponding attribute stats stored in the NFT's metadata.

I called the game Adv3nture Island -- a top-down Pokemon-style RPG game.

Adv3nture Island game demo
Adv3nture Island game demo

After 3 weeks of building and testing, I finally released the first collection of 1,000 Adv3nturers on Ethereum Mainnet and was amazed when they minted out within 12 hours. 🀯 I also introduced the $GOLD token, allowing players to claim 1,000 $GOLD for every NFT they owned.

The entire process of bringing my game idea to life and getting it off localhost was a truly magical experience. πŸ’«

https://twitter.com/sov3333/status/1599667440577056768

And things really started to take off when GOLD/ETH was listed on Uniswap and people began buying the $GOLD token. Within 48 hours, over 500 people had flooded into the @adv3nturers telegram group.

Chart of first 24h of $GOLD price (USD)
Chart of first 24h of $GOLD price (USD)

And that's how Adv3nture.xyz was born.

Adv3nture.xyz
Adv3nture.xyz

As for where this journey will take me, I'm not quite sure. But that's the most exciting part of any adventure, isn't it? The unknown.

Over the next four weeks, I'll be focusing on Adv3nture.xyz and seeing where it leads me. Thank you for following along on my coding adventure so far.

Who knows what the future holds? Let's find out together!

"The biggest adventures often start with a single step into the unknown, into unexpected places" - Christopher Paolini

A magical adventure awaits.
A magical adventure awaits.