Good day and thank you for checking out my project! I’m Kaizo Trillhelm, an artist of many practices- music, acting (I just starred in an action movie- The Bond), and as of the last 3 years game and blockchain development.
This project addresses 2 problems- 1 is creating decentralized virtual worlds and NFTs being prohibitively time consuming and therefore expensive to the average business owner, artist, or layperson without specific programming skills.
The second problem that this project addresses is game assets not working between virtual worlds.
What it does
I’ve addressed these problems by creating Meaven- a game that allows users to create their own Metaverses or “Meavens,” alongside the Kaizo Protocol, which allows NFT game assets to work between Meavens. If someone is wearing NFT clothing it will load as it should on another device with protocol compatibility. In this project Meaven is represented by the game levels and the Kaizo Protocol is represented by the NFT Upload dapp.
Worlds created with Meaven would all have asset compatibility, but other projects would be able to create NFTs for their game assets with the Kaizo Protocol and pull their metadata for use in game.
How we built it
This project uses Moralis, Polygon, IPFS, and Unity.
Moralis handles blockchain agnostic crypto wallet logins with its convenient blockchain infrastructure (I spent hours understanding smart contracts and dozens of hours learning to understand Solana, so a service like Moralis that lets you write one set of code to interact with all blockchains is a blessing to someone like me). Polygon is blazing fast, and transactions on its EVM blockchain are very affordable which make it ideal for DeFi gaming projects like this.
Challenges we ran into
At the start I didn't realize the project parameters and was designing a Solana AR racing game, but once I knew the categories to aim for I shifted to a Polygon project using Moralis that allowed people to use game assets to create the experiences that they want. From here I had to do hours of research into how that would be possible, so I'd listen to different tutorials and Hackathon seminars while I delivered food.
I had issues trying to compile the Unity NFT Minter from the Moralis Angry Birds project. They said that it was not made to compile, but a few days of experimentation cleared those problems up! I ran out of time before I could get the Dynamic NFT project ready... I was happy to see that the Angry Birds project's minting function was open since I wanted someone to be able to use the app to just generate nfts from items with them being assigned as the item's owner if they didn't care about making a new contract.
Accomplishments that we're proud of
Actually getting the NFT Minter working, also getting a project submitted while delivering food for 40-50 hours a week. It was a blast to figure all of this out. I'm proud that instead of freaking out after my submission wouldn't go through at 12 am I poured myself into adding the improvements described below, as I said the process was satisfying enough for me to be happy with everything and I believe that I have come up with something that will make the world a happier place.
What we learned
I learned how to create a file browser, handle file data in Unity, and render images from disc, along with how to assign gameobjects by script. I learned how to use Moralis to build a blockchain agnostic world generator, and to create also a ton about networking and (incidentally) Unity DOTs. Learning to think of data as data and not as file types was huge for me, I spent many hours trying to get the images in the file upload to work as textures before I figured out that I just needed to send the path data.
I ran into an issue where the code just stopped after performing the IPFS upload and didn't move to minting and figured out how to use Debug.Log to verify where code wasn't running and why. I also learned that script order is important, I knew that on a logical level but I had not experienced a project being stalled because of it. Figuring out where the file explorer code needed to sit to be in the right order took many hours, and I eventually settled on learning how to access file data from different scripts and keeping the browser function in a different file.
I didn't understand how to use Unity GUI or buttons before this, so I was happy to learn that. Next I want to put the three .exe files into one program, I've seen how to do it but I didn't have the time for this Hackathon.
I didn't know that unlike when you drag and drop an image in the Unity inspector when you assign an image or texture to a rawimage or image component via code that the path data is not accessible via code after having done so, spent a few hours figuring out that one but it helped me understand that the path data was what I wanted and I was wasting time creating functions to modify or create those components via code.
I tried modifying the Moralis Unity NFT Shop repo to meet my needs but it's in Unity 2021 which handles .dll files differently from Unity 2020. The .dll file that made my existing file browser work would no longer allow itself to be used so I had to learn to use Easy File Manager to do it, but then the Moralis interfaces are different for Unity 2021 and I had to flip a coin between trying to modify the Moralis code or modifying how I would get the script to work in 2020.
I eventually opted to get the script working by bolting it onto the FPS shooter tutorial, which then provided an excellent base to create the gameplay portion of the project.
I also leveled up in my ability to obsessively attack a problem until I understand it, I understood how to do none of the above before the Hackathon and a week ago I was researching how to get it done.
What's next for Meaven
Some things I didn’t have time to finish for the hackathon but have done the research on the tools to add are- online multiplayer, saving game assets to one’s device to upload as NFTs, menu options within game to save NFTs, DOTs support so that worlds can fit tens of thousands of concurrent users instead of hundreds, recording gameplay elements so that stories can be created, MIDI music creation within game, image and model creation within game, mod support so people can add their own models created outside of the game. I'm going to apply to YCombinator as well, as after a month of breathing this project in and out I really believe in it and want to see it improve the lives of artists, entrepreneurs, businesses of all size, and regular people interested in supporting them in the new economies.
The Kaizo Protocol could do for gaming what the MIDI standard did for both gaming and music. MIDI revolutionized music in video games, with people seeking out the best synthesizer modules to compliment their experience. Today wireless MIDI adapters exist to simply emulate cable functionality for a 39 year old standard nobody wants to replace. An uncountable number of devices and pieces of software have been made with that standard knowing that they will have instant functionality with forty years of technology.
From a keyboard costing $50 to one that costs $5000, people still want chunky 5 pin MIDI connectors to connect their synthesizers, mixers, phones, tablets, lighting systems, effects units, and more. For example, even if USB can do more there are a minimum of 5 different cable connector types to deal with, which do not have the combined build stability and plug and play device compatibility of a MIDI cable which is exactly the same on both sides. This protocol could also do for Web3 what the iPhone App Store did for smart phones by allowing creators to focus on creating a tailored experience knowing that it will function as intended on all devices.
Animal Crossing has shown that people love designing their own worlds and showing them off to their friends, and now getting into buidling on the blockchain can be just as easy for anyone interested in doing so. Millions of people, including myself, have put hundreds of hours into games like Animal Crossing New Horizons, Terraria, and Minecraft because of their creative elements.
Since I was bummed about the upload process giving me issues last night I finished a version that has more of the features that one can access to create what they want like weapons, powers, transforming into animals, assigning npcs to tasks, and dialogue, I also made the boss into a pretty terrifying giant cat and made the Moralis mug into a furry car (if you can kill the cat), fixes the target reticle issue, here is a link to that version (it contains a level editor but that one is missing a scene, please ignore that and use the level editor link below the first link if you want to experience the level editor)-
Expanded Meaven demo- https://drive.google.com/file/d/1JqYQdKm-D4G6OZoX02OBEeG0_kiDRctZ/view?usp=sharing
Working level editor- https://drive.google.com/file/d/17aSNg4-rV4VjB_BwQCDaBNtCYdebc0cx/view?usp=sharing
I won't add it below as it's not representative of the project at the end of the Hackathon but it is a much better version.
Log in or sign up for Devpost to join the conversation.