Off-chain games have been a standard in the gaming industry for many years. However, new opportunities and technologies emerge as time passes, and on-chain games provide a slightly different approach for developers and players. In creating my own game, I discovered many of these nuances.

Nowadays, it is challenging to make an in-demand game based purely on blockchain because the speed and responsiveness of the game are often crucial for a pleasant gaming experience, and the speed of blockchain networks is not enough to provide such an experience. Therefore, my game can be called a hybrid game: for things where speed is required, the classical approach is used, and for things related to economics and statistics (player parameters, their level, and so on), the on-chain component is used.

Author's Note: In this article, I want to compare the difference in the production of off-chain games and hybrid games with an on-chain component. Often in publications, hybrid games are called Web3 games for simplicity. My project can also be called a Web3 game in this sense, but I will still call it a hybrid game for accuracy.

So, let's look at some of the critical differences between off-chain and on-chain game development. The difference in their production lies in both platforms' technological features and working principles.

Architecture and Technology

Off-chain games are traditionally based on closed code and data stored on the developers' servers and, as a rule, are not available to players in full. In developing off-chain games, the classic client-server architecture is used, where the game client is installed on the player's computer or mobile device (the client can be a browser if we are talking about web games). All data is stored and processed on the game servers, and the game process is controlled. The game process is mainly implemented on the client side (which is not always valid for browser games: the server often plays a more significant role). Developers usually have complete control over the game and are responsible for the servers' operability.

On-chain: Besides the classic (off-chain) component, on-chain is usually open code and data stored on a public network, the blockchain. Thus, an on-chain game does not have a game server in the usual sense. The entire blockchain network acts as the server, and the smart contracts stored in it act as the server code. Smart contracts are program code (in Solidity, Cadence, Rust, and so on) that processes data stored in the blockchain and is also stored in the blockchain. In a sense, blockchain is a distributed database, and smart contracts are stored procedures analogous to traditional databases (with the significant difference that blockchain does not have a single control center and its data is public).

For such a decentralized network to exist in the market economy, writing data into it is not free. Each transaction is paid for with so-called gas (tokens of this network), and the transaction price is balanced depending on the network load. On August 15, 2023, the transaction fee on the Bitcoin network was approximately 0,000027 BTC or $0,798. This is an average, and the actual amount may vary. The higher the transaction fee, the more likely it will be included in the next block. Thus, interaction with the network is not free for the client and requires him to have tokens in the network on his wallet, which raises the threshold of entry both technically (you need to get a wallet and put the necessary tokens in it) and economically. Typically, a client connects to the blockchain network through its wallet and interacts with it through a standardized API, also called ABI (B stands for "binary").

ABI files are generated during the compilation of smart contracts and then used by the client as an interface to access these smart contracts on the blockchain network. This approach is similar to classical interface generation using Swagger or gRPC tools. In the case of blockchain development, we get ABI files immediately when compilation simplifies the process. However, the specifics of the blockchain network add complexity. Requests (so-called transactions) in the network are processed in blocks, which, on the one hand, significantly increases the speed of response from the network (a request is processed from 1 sec to 12 sec, it all depends on a particular blockchain). However, it is crushingly inferior to off-chain games, not allowing you to create dynamic and responsive games on-chain.

On the other hand, in most networks, due to their openness, the request data is visible in the newly formed transaction block to all participants even before it is stored in the network - this forces additional security issues to be addressed (classic example: sandwich bots and, as a tool to combat this, the slippage parameter). Another essential detail is the following: due to the decentralized and distributed nature of the blockchain network, there is no guarantee that a newly formed block will be preserved in the blockchain (newly formed blocks may roll back if the participating servers do not reach a consensus).

Usually, we can say that a block is "anchored" in the network after generating 6–12 blocks after it. This last detail is essential to consider in hybrid games, where part of the information is stored and processed by the off-chain, and care must be taken to handle data mis-synchronization. If a block in the chain is rolled back, you should back the corresponding changes on your off-chain server. These were difficulties. On the plus side, we can mention the already mentioned automatic generation of interfaces (ABI), no need to maintain your servers (in the case of a pure on-chain project). In addition, there is no need to worry about hacking or DDoS of servers - these issues are delegated to the blockchain network.

Asset Ownership and Community Participation

Off-chain: Asset ownership in off-chain games is through centralized systems and databases that the developers and publishers of the game control. Asset ownership is limited to the rights granted to players as part of the game platform or license agreement.

What do off-chain players own?

However, the cost of developing an on-chain game can easily be higher than an off-chain game because on-chain games require additional integration with blockchain technologies, creating and managing smart contracts, the presence of a proprietary cryptocurrency or token, etc. All this requires extra time and resources on the part of developers.

Also, on-chain games often require a development team with experience with blockchain and cryptocurrencies, which can affect the project's cost, as experts in this field are usually in demand, and their services are expensive.

As mentioned above, the cost of creating a game can vary significantly in each specific case, and exact figures can only be provided after a detailed discussion of the requirements and the project with the development team.

What's The Bottom Line?

The main difference between off-chain and on-chain games is data openness, ownership, and control. While off-chain games are centrally controlled, on-chain products are fundamentally owned and operated by players, opening up new gaming experiences and monetization opportunities. On-chain games tend towards a more decentralized and participatory model where players have more control and influence over the gaming ecosystem. They offer new opportunities for asset ownership, community participation, and economic interaction.

Will they become more popular with the masses? This technology is still evolving and unfamiliar to most people. The high entry threshold, distrust, and fear of being cheated are severe barriers to the widespread adoption of on-chain games and limit the availability of gaming content to a mass audience. As on-chain products gain popularity, the traditional gaming industry will likely be affected, but there is still a long and challenging road ahead.