SpaceXcalibur is the quest for the last energy saber. The legend has it, that space-king Arthur once pulled it out of the asteroid. But where is it now? ;)
Imagine the potential of optimistic rollups, non-fungible tokens, and an epic story to recover the lost Space Excalibur. By utilizing an Ethereum layer-2 scaling solution, we wanted to prove that NFT-gaming can be fast, fun, and cheap to execute.
Our team was inspired by online-game classics such as O-Game, Factorio, and Dark Forest.
What it does
SpaceXCalibur is an on-chain, open-world, multi-player simulation game, where players compete to create complex and rare items from common raw materials and not-so-common, hidden gems. You navigate the vast space to gather resources, manufacture complex items, and eventually, find the one and only energy saber.
How we built it
SpaceXcalibur is a fully decentralized application:
- the frontend code is entirely written in TypeScript (PhaserJS, Web3 Modal, Wallet Connect)
- the app is automatically deployed to IPFS and pinned with Pinata
- the contracts are written in Solidity; targeting the new Optimistic EVM (2.0)
- all contracts are deployed to the Optimistic Kovan testnet
- all in-game items are ERC-1155 tokens and allow for a community-run game economy
- all graphics and assets were hand-crafted during the hackathon
Challenges we ran into
- figuring out support for Optimistic Ethereum across various libraries and APIs
- many interesting errors, e.g., deploying to Optimism with Hardhat ("nonce too low," "call exception")
- handling the web3 APIs and chain state in a browser game engine
Accomplishments that we're proud of
- all in-game graphics and assets are hand made
- all smart contracts were written during the hackathon (using the ERC-1155 backbone)
- seamless WalletConnect integration using Web3Modal
- automatic deployment to IPFS (from Github Actions) and pinning to IPFS Pinata Cloud
What we learned
We learned how different Ethereum layer-2 networks work, especially Optimism. Some of us were writing our first solidity smart contracts. In two days we learned how to implement a browser game with a typescript gaming engine and inject it with web3 to interact with layer 2. We gained deep insight into how graphics for games are prepared and how maps are built.
What's next for SpaceXcalibur
We hope to add a bunch of different resources still missing and release them to the public hoping it goes viral and push the limits of Optimism as L2-solution.