Coin Bubble is a tile-matching game, where players have to find and remove tiles that are the same.
In each season, there are 160 levels in total that user can play, each of which contains 5 rounds of games. Within one season, later levels are more difficult than those earlier ones. Within each level, later rounds are also more difficult than earlier ones.
After players finish one level, they will get points. The amount of points they get in this level depends on their game strategy. For example, removing 3 tiles at a time earns you more points than removing only 2. Usually later levels will give players more points as the number of tiles increases. Our leaderboard will show players with the highest points earned in ANY level.
Players will have to pay an entrance fee in order to participate in a season. At the end of the season, those players on our leaderboard will be rewarded using the entrance fee we collected.
How it's Made
Here is an overview of our technology stack and how we combine them together.
We use the Cairo 1.0 programming language. Cairo is a high-level language with strong code readability and ease of understanding. Many features of Cairo are inspired by Rust, giving it excellent security and performance in contract development.
We utilize LayaAir3 as our front-end display rendering engine. Combined with the convenient API provided by the Starknet.js framework, we can build fast, responsive, modular, and visually appealing interfaces. This engine runs on the Node.js runtime environment and seamlessly interacts with smart contracts and back-end services, perfectly adapting to the web3 development environment.
We employ third-party libraries such as the DOJO framework to construct the server framework, enabling us to rapidly develop game content. This allows us to focus more on the creation and ideation of the core game content.
To expedite our development process, we occasionally consult OpenAI's advanced language model for suggestions. Through interactions with OpenAI, we gain inspiration and improve our product.
Our team doesn't include graphic designers, so we utilize Midjourney's intelligent AI to generate the artistic materials required for the game's front-end. As you can see, its performance is exceptional.
We have utilized the cross-chain query service provided by Herodotus, which gives us a significant advantage in implementing user migration or score integration statistics - efficient and convenient. It greatly simplifies our workflow, enabling us to complete complex tasks in a short time, an advantage we cannot find elsewhere. PS: Thanks to @beeinger for the patient answers, we have learned a lot from them. (https://github.com/liushuheng163/CoinBubble-PragmaCairoHackathon/tree/main/pacakages/herodotus)
We use the checkpoint to index starknet data to help us quickly and easily view user score records and total score distribution. This aids us in adjusting the game difficulty and incentive rewards in the later stages. (https://github.com/liushuheng163/checkpoint-coin-bubble)
Dojo uses ECS (Entity Component System) as an architectural pattern to effectively manage and organize the state and behavior of Autonomous Worlds (AW). In this pattern, computations are defined as a list of systems running on a set of entities, each entity consisting of a dynamic set of pure data components. Systems select entities to process through persistent, efficient queries of entity components.
This framework is not only powerful but also flexible. It greatly simplifies our development process, allowing us to focus more on game design and innovation. The advantages of this framework lie not only in its efficiency and ease of use, but more importantly, it gives us unparalleled creative freedom. We can easily implement various complex game mechanics through it, creating a rich and diverse game world. Its strong expressiveness makes our game more attractive and engaging.
We use ArgentX's abstract account wallet for game contract testing.