Inspiration
I was inspired by my experience building games on Solana. I previously built a game that won 1st place in the University Track at Solana Hyperdrive. I also worked on a Solana arcade project for a year. While building these games, I encountered two major problems. First, I was rewriting simple code often, greatly increasing my development time. Second, the game assets I was using (nfts and fungible tokens), would only take on value if the game became super popular. This forced players to assume more risk, making it harder for me to scale my community and harder for players to derive real world value from the game. The game assets would only retain their value as long as my game was around. Therefore, my players were betting on the success of the game and on the commitment of me as the developer. I therefore decided to build an arcade framework that would allow game creators to easily implement web3 features in their games. Since any game could include these features, their potential value increased and the adoption risk decreases. In turn, this allows for the creation of a larger arcade ecosystem that can bring real world value to its users, delivering on the promises of web3.
What it does
There are two components - the sdk and the arcade. The arcade provides players the ability to pay near to put games they created in the arcade. The arcade also provides tickets, which game creators can buy from the arcade and then distribute to their players for playing their game. Players can then spend these tickets in the prize store, where people can list prizes such as nfts, coins, or physical prizes for sale. The arcade itself also has gift cards that players can buy for tickets. The arcade also provides the framework for implementing leaderboards and challenges, and for rewarding players for completing challenges or getting to the top of the leaderboard. Game creators can reward their players for staying at the top of the leaderboard and for completing challenges in game. The arcade also provides an in-game shop that creators can optionally enable, allowing them to sell items to their players that directly relate to the game. Additionally, since the game creator has full control over their game, they can add any other features they want. The sdk simplifies the process of interacting with the arcade contract by providing wrapper methods that players can simply include in their code. I also built a few simple games on the arcade using the sdk for demonstration purposes.
How we built it
Used the typescript near sdk for writing smart contracts. Built a frontend in next.js.
Challenges we ran into
Had trouble designing the contracts. Originally wanted to implement separate contracts for the challenges and the tickets. Instead decided to not make the challenges nfts, simplifying the code, and including the ticket code in the arcade contract. I also ran into issues displaying user-created games, as I wanted to use an iframe. However, wallet signin is not possible within an iframe so I decided to simply link to the game page.
Accomplishments that we're proud of
Created all of these features in 2 days on near. However, I did have past experience building games and implementing tickets in an arcade as I worked on a Solana arcade last year that included a ticketing system. The arcade I worked on did not include challenges, per-game leaderboards, a sdk, and user listing of prizes, while the one I built for this hackathon does
What we learned
I learned a lot about developing smart contracts in typescript for near. I already had previous experience developing on Aptos and Solana, so it was fun to try something new.
What's next for Nearcade
First, I will make a player's challenge progress a NFT and allow game creators to give in-game stat bonuses to players with good challenge records. This will bring more value to the users. Next, I want to add more features to the marketplace such as offers and auctions.
SPED UP VIDEO
Built With
- near
- nextjs
- typescript
Log in or sign up for Devpost to join the conversation.