In the new Hive game, Rise of the Pixels (RotP), you take the helm of a game design studio. Located in the parallel dimension of the Pixelverse, it’s a strategic idle management game with a slick interface and loads of interesting choices.
The backbone of your studio are the workers, NFTs that you draw from packs like many other games here in our lovely ecosystem. They have important stats, like their Cost and Speed. They have special traits and levels that you’ll need to navigate too.
But this post isn’t about that. We’re here to talk about the biographies of the Rise of the Pixels Workers. Helping create these bios was a major part of my initial work with the project.
In a nutshell, it worked like this:
- We used AI prompts (GPT-4) to produce a large variety of sentences, clauses, and phrases. These were curated and edited into nearly 30 categories and 1,000 elements total for Beta v1
- We experimented with many ways to combine the elements into sensible bios
- The game devs created a script that uses RNG, combination rules, and logic checks to generate a bio for every minted worker NFT
So not 100% AI, more like AI-assisted. This hybrid approach of AI, humans, and old fashion code working together is what I assume the ways of the future will most closely resemble, especially in content generation.
The details
First: Why go through all the trouble?
In a word: immersion.
We’re not making a Triple-A 4K open world sandbox epic here—this is an indie idle browser game with some blockchain mojo. In order to make collecting, trading, and using the Worker NFTs more interesting, it helps to give them a little personality.
But we have 30,000 of these, and the game could not be delayed on account of producing a novel’s worth of custom bios. At the same time, giving the task over entirely to AI would result in all the bios sounding quite same-ish.
Hence, the hybrid approach. AI helps make a repository of “bio elements” and us humans fine tune it and create a bio generation system in the game.
Prompt engineering process
If you ask a fancy AI like GPT-4 to:
Write a short bio about a game developer who likes to create arcade games
You’ll get stuff for sure… but it won’t be anything you can use for 30,000 different bios. Here’s the output when I ask it to write just 3 bios using that prompt (and this is after it's been trained on RotP style writing):
GPT outputs |
---|
[NAME] is a game designer fueled by a love for arcade magic, weaving pixelated wonders and exhilarating challenges into modern gaming experiences. |
Meet [NAME], a game designer with a passion for crafting contemporary arcade gems, blending retro vibes with cutting-edge gameplay to deliver joyous and nostalgic adventures. |
With a dedication to the art of arcade gaming, [NAME] is a game designer who intricately stitches together pixelated thrills and timeless joy for a new generation of players. |
Can you sense the same-yness? Imagine this over and over across the 30,000 bios. No one would want to read them after collecting a dozen or so.
To build a good mix of variety in the bios, I first started with thinking of how in-game elements might affect the bios. For example, Common NFTs should have “less fancy” bios than Epic NFTs, right? Another in-game element is Traits. The Workers can have specialties, and it would be nice if the bio could have the opportunity (but not the obligation!) to reflect that.
Workers are also gendered (pronoun handling in English is a whole thing), and we currently have two types: Developers and Designers.
There are also non-game elements to bios. For the RotP Beta, I included things like:
- basic hobbies
- hobbies reflective of the Game Era / NFT collection (1980s vibe)
- fictional place of birth
- office quirks
- career aspirations
- and more
With a categorization approach like this in mind, my GPT prompts could be made much more useful. Instead of getting AI to create 30,000 good bios, I could have it focus on specific tasks within these categories. Here's an example of chain of prompts I used and the end results (that were further edited if needed):
- Can you give me a list of all the traits we've explored?
[GPT outputs list]
- For each trait, write a sentence about how a game developer or designer wants to improve studio output, based on the trait
[GPT outputs sentences]
- For each sentence you just wrote, add a sentence that includes a proof point about how they've already started what they intend to do in the first sentence. These proof points can be interesting, experimental, quirky, or silly. Do not label the sentence as "proof point"—just add it to the first sentence. Structure the language of the proof point so that it starts of with language similar to "in fact,"
[GPT thinks hard, and starts cranking]
- This is good, but use alternative phrases for the "in fact" clause please
[see below:]
Output after prompt four looked like: |
---|
Lone Wolf in Game Development: [NAME] believes that by embracing their independent work style, they can bring more focused and innovative ideas to the studio's output, and they've already demonstrated this by developing an entire game prototype while secluded in a forest cabin. |
Working Well in Small Teams: [NAME] aims to leverage their strength in small team dynamics to enhance collaboration and efficiency in the studio, as shown when they led a remote 48-hour 'game jam' that produced an innovative mini-game. |
Fast Typing in Game Development: [NAME] intends to use their rapid typing skills to speed up coding and scripting, already proving this by implementing a new scripting language in record time during a recent internal hackathon. |
...And so on, for dozens of traits |
Prompt engineering doesn’t stop there. Refining the wording of prompts to get a “good batch” is key, and so is the formatting. I had to get the elements into a spreadsheet so the game devs could load them into our database.
I also had a lot of repetitive tasks. For example:
For each major Trait, write 5 short sentences, 5 medium, and 5 long—where “short, medium, and long” represents totally different prompt approaches.
With ChatGPT’s current interface, you can work with it to define the “short, medium, and long” styles independently, then start asking it to do them all at once. “For each Trait” is important too, since we have dozens upon dozens of Traits. It helps to share a list with the AI first, so that it can reference your iterative request (you must do all this stuff in the same “conversation” for it to work).
After much tinkering, eventually I had the prompt engineering down to a point where I could just ask it something like “Do this again, but this time _____” and it would spit out properly table-formatted options for all my desired categories.
From there I’d pick my favourites, copy them into the spreadsheet, and make small edits if needed. If I had to guess, I’d say I manually edited maybe a third of the more complex outputs.
Sentence construction scripting
So now we have hundreds of elements across dozens of categories. AI’s job is done, and it’s onto some simple-ish scripting. Before the code gets written, we had to decide how and when to combine our elements.
For the beta release of RotP, each rarity level below legendary has three different bio structures. Which one you get when minting is randomized. The pre-code structure looks something like this, where the numbers are the odds of getting that bio type:
The in-game script works something like this:
- NFT is minted
- NFT parameters (rarity, stats, types, trait, gender) are rolled
- Bio structure rolled based on rarity + RNG
- Bio elements picked randomly from specified categories
- Name filled in, pronouns adjusted based on gender
Based on all the randomness that happens in step 2, the permutation possibilities for bios are gigantic… probably well over the 30,000 we need for the 8-Bit Era.
There are still a lot of other little details involved, but this is getting long enough without getting into those. If you want to geek out about this kind of stuff, come chat with us in the Rise of the Pixel Discord server. I also expect there to be bugs and grammar mistakes within bios, so if you see those or any typos, please let us know.
The Rise Of The Pixels Team
Check out the official website: https://riseofthepixels.com
Read more in the game Rulebook: https://rulebook.riseofthepixels.com
Follow us on Hive: https://peakd.com/@riseofthepixels/
Join us on Discord: https://discord.gg/e7cKB3KmsS
...or if you want to experience an authentic legacy Web2 vibe you can check out our X/Twitter profile: https://x.com/riseofthepixels