By Kevin Z
We're happy to announce completion of Curio’s phase 1, a series of advancements culminating work since June to October 2022 that lay the foundations for our first game.
Since July, the team has been building a fully on-chain game engine with the principles taken from entity component system and other well-established game engineering practices. This was motivated by the overhead of coordinating client work in Typescript with Solidity smart contracts. We see this as a logical step towards building any on-chain game, given that the game mode requires large expansive worlds and complex interactions between agents.
The construction of a game engine allows us to focus on fleshing out the game mechanics as opposed to stressing out how variables are stored and decoded from solidity structs to JS objects.
In addition to the internal benefits of enabling fast game iterations, we believe that the result of a well-built on-chain engine must encompass several key components:
- Ease of use: plug-in creators and 3rd party developers should understand and be able to pull and push on-chain data easily, both for on-chain-actions and off-chain.
- Backwards compatibility: 3rd party content should be backwards compatible when a game is upgraded, avoiding unnecessary rewrites and therefore more incentivization.
- Interoperable assets: Assets created and destroyed by the game engine should be compatible with existing crypto infrastructure i.e. AMMs, lending protocols.
Not many on-chain games have achieved smart-contract composability for in-game content. After interviewing many developer and contributors, it was clear that the existing barrier for contributing content was too high.
As game objects in the entity component system become tokenized, it not only becomes compatible with existing defi infrastructure but also provides a much friendlier interface for data (ERC20, ERC1155, NFTs).
Curio is focused on maximizing the composability of games and their ecosystem projects, and the game engine serves as an entry point for understanding the game world for interface clients and for ecosystem partners in the easiest way possible.
It was obvious from the result of our August demo that we need to radically focus attention to certain components of the game design. Some of our observations included:
- Micromanagement: as time scaled, players needed to control more armies. This makes the game into a clicking competition. It’s also unfriendly for blockchain where confirmation isn’t instantaneous.
- Lack of player protection: games such as Civilization and Starcraft, which we based our demo off, often require opponents to decimate all enemies to win. This category of game mechanisms proves to be unfriendly if we want the game to have longevity over span of few days and weeks.
Since then, we’ve shifted our game design focus to SLG-based game design (ex: Rise of Kingdoms, Clash of Clans). Some characteristics include:
- Longevity: Games in that paradigm take the best of both worlds, where sometimes micromanagement is needed (ex: battle scenarios), but the majority of the strategic decisions lie in much more long-term thinking and resource balancing.
- Multiple player types: While games like Starcraft are focused on attracting majority pvp-focused players, SLG based games naturally accommodate all sorts of games, whether you’re someone that likes to farm, build a village, or constantly raid others for loot.
- Emphasis on economy: A well-balanced production and economy plays a much stronger part in SLG-based games than other strategy games. This aligns well with tokenization and defi, which we know crypto excels at.
We will take a deeper dive into how we think through game design in a subsequent article.
One major focus for Curio has always been developer contributions. Codenamed "Treaty", the team has been designing appropriate ways for 3rd party developers to contribute content.
Treaties are player-written contracts, encoding p2p relationships into code. It can be a multi-sig, where empires team up and contribute spoils of war to a shared treasury. It can be an AMM, accessible only to players roaming the underworld layer. It can be the "UN", where countries team up to prohibit the use of certain weapons, creating a more peaceful virtual world
Players become lawmakers, evolving the game over time. Combined with tokenization, players will launch their own economies backed by real currencies. We believe treaties as a natural next step for on-chain games.
The team will start experimenting with further asset tokenization, optimal game mechanisms for SLG, solving more game-engineering problems (ex: game tick).