**4. Implementation**

Owing to the decentralized implementation of the game, different problems arise within the individual components. This section will give a general overview of the implementation and will address particular problems that occurred during the implementation.

#### **4.1 Web application**

The following section will mainly address the frameworks used for implementing the user interface (see **Figure 2**).

<sup>3</sup> https://docs.waves.tech/en/blockchain/waves-protocol/waves-ng-protocol (13.02.2022)

<sup>4</sup> https://docs.waves.tech/en/ride/limits/ (13.02.2022)

*A Usability Analysis of the DAO Concept Based on the Case Study of a Blockchain Game DOI: http://dx.doi.org/10.5772/intechopen.105347*

**Figure 2.** *User interface.*

### *4.1.1 Next.Js*

Since a game based on modern browser technologies requires a very dynamic display logic, the Next.js framework was used for this specific use case. With the aid of this framework, the implementation of very dynamic and interaction-intensive user interfaces can be greatly simplified. To ensure that each player always has a current state, the current game state is regularly queried via the Waves Node REST API and transferred to the player's local cache. Next.js displays the current game board based on this data.

#### *4.1.2 Waves-transactions*

For the interaction of the individual players with the game, the library "wavestransactions" is used. With the help of this library, transactions to the Waves blockchain can be created and signed in the browser.

#### **4.2 Blockchain**

This section covers the specifics of the Waves blockchain. A special focus lies on the problems of the individual dApps. It is noticeable that there were frequent problems with control structures such as loops during the implementation. Since Ride is not Turing-complete, some steps within the game logic had to be implemented in a completely different way. The following section will give an insight into some of these problems.
