Inspiration
As developers, we understand that distributing our own products (applications, games, services) is a big problem, because this requires special services: app store, steam, play market, etc., which take a percentage of each sale and try to regulate the internal policy of applications . Our service intends to change part of this area - the distribution of games.
Terminology
- DRM system - technical means of copyright protection that intentionally restrict or hinder various actions with data in electronic form or allow tracking such actions
- Copy nft token - a separate nft token that stores the token id of the main game token and the copy number. The owner of this token is the customer.
What it does
Our service is a decentralized game distribution platform. We use blockchain technology not only to complete the purchase transaction, but also to access the game itself.
How we built it
- From the side of the game developer The game developer uploads all the data about his product on the corresponding page: name, platform, description, images, ... , game archive and binds his crypto wallet, we upload the archive to IPFS and get a hash that will be used to access the game, this we encrypt the hash with the AES symmetric encryption algorithm to get the encrypted IPFS address and the decryption key. Then we create the game's NFT, which is owned by its developer. It stores the encrypted IPFS address of the game, and we store the decryption key on our service side. We also store all open data related to the game: images, title, description, etc.
- Buyer side The user enters the catalog with games from which he selects the product he needs, after which he can purchase this product for cryptocurrency in the ERC20 network (Currently, the sepolia testnet is used for testing). He able to do it through connect to metamask wallet using button. Then the price in dollars will be automatically converted from dollars to the corresponding price in eth using the chainlink aggregator V3 interface. After purchasing a game, with the help of our smart contracts, he receives an NFT token of a copy of the game, which gives him the opportunity to download the corresponding game from our installer. The installer is needed to prevent the illegal distribution of game files, as it will have a DRM system. ## Challenges we ran into We are currently facing several difficulties.
- How and where to store the game files so that people who did not purchase the game did not have access to them, and for those who bought the game, access was limited to prevent illegal distribution of files. The solution was as follows: we upload the archive with the game to IPFS and encrypt the resulting address with the AES algorithm and store the encrypted address in the NFT token of the game (although the field is public, you can only get full access to the game files with the decryption key). We will store the decryption key on the side of our service. When purchasing a game, a player receives a copy of the game's nft token to his wallet. And in the future, logging in through your wallet in our installation system of games, nft will be a confirmation of ownership of a copy of the game.
- To increase the decentralization of the application, we stored all data about the game (screenshots, description, price, etc.) in IPFS. But we ran into scalability issues: low speed of downloading data from IPFS, due to which half of the information about the game did not have time to be displayed in the catalog. Then we decided to store public information about the game on our server, and receive pictures as a list of url addresses.
- During development, we faced the main problem of creating decentralized services - Zuko Triangle Therefore, the way of interaction with information, its storage and processing has been constantly changing.
Accomplishments that we're proud of
- We are very proud to be building the first decentralized game distribution service of its kind.
- Our service gives more freedom in distributing their products to all game developers from indie to AAA.
- We don't charge any commission on game sales. The buyer directly pays the developer a set price, which allows developers to reduce the cost of selling the game compared to the centralized counterparts of our service.
What we learned
- First of all is the great progress in understanding decentralized applications, NFTs and other blockchain-based technologies.
- The skills of developing smart contracts in the Solidity language have grown as well as web development skills in Python django.
- During the development, skills were improved in building the architecture of complex services, management and thinking through further stages of development of their own product
What's next for OASIS
- Deploy our service in internet.
- The next step is to add a separate page in which the user would see the NFT tokens of the games he purchased.
- In parallel with the creation of the OASIS web service, we will develop our own system for installing games with DRM.
- Adding a form to fill in the data about the game:
- Additional information for the user, describing all the functionality, features and requirements of the game.
- Additional developer requirements such as licensing, virus checking, etc.
- Adding gamification within the service to increase involvement in the gameplay: rewards in the form of individual NFT tokens for in-game achievements.
- Creating our own token for making transactions within the service and monetization.
Log in or sign up for Devpost to join the conversation.