Complementary Video Demo
https://www.youtube.com/watch?v=XuiS8KUxnpQ
Inspiration
We try to move in a different direction about games on blockchain, and how to take advantage of the blockchain to have a single game instance and encourage players to earn NFTs as rewards by their achievements making progress in the game. Some features of the game like collaboration, cooperation were inspired by: escape rooms, arcade, and old point & click games.
What it does
Tales of unsolved mysteries intends to be a unique game experience by emulating an attraction in an amusement park. Players do a virtual line (handle by the blockchain) to play the game one at a time, and each player has the opportunity to earn rewards (exclusive NFT) by solving mysteries (puzzles) in the game. Rewards are limited and unique, and they can only be redeemed once. The game ends when the last reward is obtained.
In this first chapter players should discover what happened with the residents of an abandoned building, Who were they? Did they die? What secret did they hide?
The game uses NEAR to allow players to collaborate each other to complete the puzzles in the game, which gives to the player who solves a puzzle or makes the story to unfold an NFT that represents that achievement.
Is a point and click game with the particular feature of being a unique instance of the game. (like and old arcade machine). Players must request a turn that allows them to play the game, then they can customize a bug character that will represent them in the game.

Players will have 5 minutes to progress as much as possible in the game, solving puzzles, unlocking rooms and getting rewards. All that progress will be saved on the blockchain and following players can continue where the last player left off.

NFTs
We want people who win these NFTs to perceive them as trophies for their achievements in the game, generating intrinsic value for them. Rewards and achievements obtained during the game session are unique and exclusive NFTs that will be transferred to the player who unlocked them. These special NFTs (14) are part of the game collection for this first season.

Each participant will receive an exclusive memory NFT with the information of their character including a couple of images and a video. ie: memoryNFT example

Players can also earn coins during the game session by solving small challenges. These coins are redeemable for exclusive character pieces than allow them to create even more special characters for new game sessions.

The nature of this game encourages people cooperation in order to progress. Some of the puzzles we designed for this game require people looking at the previous gameplay sessions, using specific kinds of character ADN, and paying attention to what other players did before.
How we built it
To support this game we designed the following architecture:

Blockchain
- Near platform: smart contract - (handle turn management, NFTs, coins, player stats, game state, accessories)
- nft.storage - ipfs: store NFT metadata and images
- smart contract deployed: https://explorer.testnet.near.org/accounts/tbas.neuromancer.testnet
- smart contract code: https://github.com/TalesOfUnsolvedMysteries/near_contracts/blob/main/contract/assembly/index.ts
Game server
- Orchestrator: a nodejs server in charge of manage and coordinate: blockchain, player sessions, game server, and streaming video.
- GameServer: a godot game that is the main instance of the game. it only allows one player to connect to it.
- OBS: to capture and stream the game
Clients
- executable: godot game client version that allow players to request a turn and play the game
FLOW
- the client connects to the GameServer to request access to the game, the game server delivers a unique userID and a turn in line for that player after save that info into the blockchain.
- the server checks every time there is a change in line to validate if the next player in line is available to play, if not it is removed from the line and check for the next one.
- once a player is ready it coordinates with the gameServer to allow the player control it remotely.
- once a player finish her session the memory NFT is generated. player lost control of the game and the server will check for the next player in line.
Challenges we ran into
Design of a blockchain game without the popular features used now (ie: classic play to earn), we try a different approach by thinking about how use the concept of immutable state could be applicable to the whole game. Handling the scope, we designed several puzzles and mysteries around the characters that lived on the building but that implicates a lot of things to build and test. We decided to limit this release to the tesnet and a basic demo that shows the potential of the game.
Accomplishments that we're proud of
- Using the NEAR Godot addon to make the project to connect to the blockchain.
- Designing a graphic adventure game where puzzles have to be solved by several players.
What's next for Tales of unsolved mysteries
- if game succeeds we want to continue delivering new adventures for the players by releasing new seasons
- Complete the implementation for the remaining the puzzles and rooms we designed.
- Give players the NFTs that work as an achievement in the game.
- Create the Marketplace so players can buy accessories and tools that will help them all to finish the game.
Built With
- aseprite
- godot
- javascript
- near
- node.js


Log in or sign up for Devpost to join the conversation.