What exactly happened on Game Night?
On Thursday, the 27th of Jan 2022, Duo hosted our first live game night. This game night gave Duo community members the opportunity to participate in live hosted game rounds and win their share of over 3000 ADA worth in rewards. This game night also made the idea of Duo far more tangible for the community and it gave players a glimpse at what is being developed.
Side-quest: If you have not heard yet, Duo is the NFT Card Game that combines humor and a play-to-earn model to bring more people into the cryptocurrency space, particularly Cardano. If this interests you, check out our website, social media and Discord.
Besides the opportunity to the community, game-night presented us as founders with an excellent learning experience. Duo is currently in development and we are still pre-alpha, however we decided very early on that we would like the community involved with the creation of the game in some meaningful way. As much as game-night was a community event, it was a test for Duo as well. While we think we passed the test, we do acknowledge that there are a number of areas where we can improve.
Being the engineer behind Duo, in this article I will focus on the more technical aspects of the game-night. If you want a more general look at game night, check out Jason’s article here. It is also worth noting, this article is not a blame-shift. My intention is not to point fingers at others in the ecosystem and blame them for issues encountered. Instead, this article is to provide some transparency as to the technical side of Duo and also share some findings with others as they grow and expand their own systems/services/offerings.
Now look…here’s the deal
Once we decided to work towards a game-night, we almost immediately started working on a way by which we can emulate what the final gameplay for Duo at launch would look like. Even though we are in pre-alpha, we wanted some way to approximate the final gameplay model and our reasoning behind this was two-fold:
1. It gives players a real tangible look at what it is that we are planning. Having a tangible event such as this in the style of what final gameplay could look like gives the community a good idea of what it is that we are building.
2. It gives us the opportunity to test a number of gameplay mechanics, and elicit community feedback to ensure that the final version is truly community driven and has gone through some validation.
Given that our pre-alpha gameplay is hosted on Discord, we thought it most appropriate to host game-night there and to make use of the resources available within Discord to extend our existing bot. The idea is that this bot should make gameplay quicker and easier, especially for hosts, emulate to an extent the final gameplay model and lastly provide us with a standardized mechanism by which we can run the event.
On the back-end of the bot we were also testing to see how viable it would be to deploy a game bot to other servers and incorporate that into our business model. That way, Discord servers could independently host games that are facilitated by our bot but run entirely within an external community for that community.
So what did we actually find out?
We discovered far more than I would care to elaborate on in a single article but here are the two biggest points:
External API Reliance — Our bot is heavily reliant on multiple APIs to function properly.One single bot action could make up to 6 external API calls. This presents a poor outlook for scalability, and (as we discovered on game night), even a momentary lapse in the availability of an external API results in our bot not functioning as intended. The uncertainty factor is also high. Each API requests we make is itself an asynchronous event, so it could take a couple milliseconds or it could take longer. This creates single points of failure which are an engineering no-go
Discord kinda sucks — Discord is an excellent platform for communication given that that is its primary function. To enhance this experience Discord allows developers to create more interactive experiences albeit with some very stringent API limitations. As an example, our Duo View bot displays a dropdown menu by which users can select the cards they would like to play to pre-alpha. This dropdown menu is a Discord feature that is limited to only 25 entries. So for players with more than 25 cards, this means navigating between different menus. This also became relevant for our game-night voting mechanism. Every time somebody reacted to a message, our bot got hit with a notification it had to account for, by retrieving the corresponding Discord event. The result, Discord saw our bot hitting its servers with a rapid fire of requests and subsequently rate-limited us (and rightly so).
So how do we better our current systems?
At Revelar we want to build out infrastructure to provision a set of high quality APIs specifically for game developers to use and we’re building these as we figure out what we need for Duo, our flagship game. Arguably this process is rather complex and there are a number of aspects to consider which is why we are taking our time with the engineering to ensure we do it right, the first time. As more of these Revelar services come on board, we can replace our reliance on external APIs with Revelar provisioning that is designed for gaming. The idea is to help reduce the asynchronicity of dealing with multiple external APIs on the fly.
Post game-night we have also done considerable research into the engineering requirements for us to iterate on the bot and provide a better experience. However the economics of multiple iterations and scaling a bot to play in different Discord servers doesn’t seem to fit well with our vision. By our estimates, the time it would take to improve and iterate on the bot is about 50–75% of the time we would need to build our own web-app. It therefore seems like a better usage of resources and manpower to build the web-app side of Duo and then integrate with Discord.
With the close of the Catalyst Fund 7, we also saw 4 of our proposals receive funding. All of these proposals are towards the creation of Revelar and building the systems that will form the foundation of Duo and many future NFT enabled games.
So then in conclusion, Revelar is building the platform that will make Duo possible and keep #hodling.
- Benjamin (KarooSeun)
Co-Founder | Engineering Lead