Ethereum development

We have developed around 50+ blockchain projects and helped companies to raise funds.
You can connect directly to our Blockchain developers using any of the above links.

Talk  to Blockchain Developer

How to do Game Development Using Solidity

If you have ever played a game that pays you directly for your in-game activities, chances are you have played a blockchain game. If you already understand bitcoin and cryptocurrencies, you just need to know a little more to understand the idea of blockchain games. Blockchain games are like the typical game on Xbox One or other video games but they contain some elements of blockchains like bitcoin such as scarcity, immutability, and decentralization. Blockchain games have the same start points such as purchasing access to get started with the game but the assets in these games such as swords are permanent and transferable. Let’s consider traditional games such as Diablo, World of Warcraft, Counter-Strike, or Heart Stone. Items in these games are only relevant in the respective games. You cannot take a sword on Diablo into Counter-Strike or take an item from Counter-Strike into Diablo.

With blockchain technology, however, you can create in-game items and store their information. You could create an item with a name, define the image, and the amount of that item in the game. The games usually have some competitive activities that lead to the achievement or realization of the in-game items. Winners of these activities get assigned the appropriate in-game items and the data is stored on the blockchain forever. The blockchain often contains these data, and a game developer can simply check an address to see the items that a player owns which they can use to participate in a game.

When a player logs into the game using a compatible Web 3.0 wallet, they can use their items to interact in multiple games and acquire more in the process. The items can also have multiple characteristics that make them effective at the delivery of attacks in fighting games or bringing good fortune in a quest. In this article, we shall be coding a simple blockchain game that allows a player rolls a dice, and if they are fortunate, these players could win some tokens or other rewards according to our code. The exact structure of our blockchain game in the image below shows that when a user places a bet by interacting with the frontend react application, their order is sent to the smart contract while the Chainlink oracle implements the randomness in the betting game. The smart contract talks to the blockchain, and the outcome goes back to the front end as a success or a try again message.

Chainlink is an external data provider for the blockchain. It is an oracle service which means it provides real-world data to smart contracts. Chainlink provides prices to smart contracts on decentralized exchanges and other DApps. In our case, we will be using Chainlink to generate random numbers which are crucial for generating randomness. Solidity has some issues with generating random numbers but with the help of an oracle service like Chainlink, we can get past those hurdles, and achieve excellent results.

To get started, we need to install Node.js. To check if you have Node installed on your computer, you can simply go to your terminal and type in node -v. If you do not have it installed, you can download it from the Node.js website, or use a package manager to install it from the terminal. Next, turn your web browser into a decentralized browser by installing a wallet extension that supports interactions with blockchains. MetaMask and Wallet Connect are some of the best options out there.

Next, you install the dependencies and go back to your terminal. On your terminal such as the command prompt type git clone, and paste the repository URL. Enter the newly created directory and install the dependencies by entering cd_chainlink_betting_game, then install using the npm install command. You should see the code below when you click on the smart contracts folder.

Deploy the smart contract on a test network using the Remix IDE. To use the Rinikebey testnet, request faucet funds to pay transaction fees for running your smart contracts. Request ETH and LINK tokens. Then select the injected Web 3.0 provider ensuring that you are connected to the Rinkebey testnet. Click on deploy, and you will get a result of the initialized smart contract. After testing that there is no error in your code, go on to deploy the smart contract using your test ETH and LINK tokens to pay the transaction fees.

After confirming your transactions, you should be able to see the smart contracts as displayed in the next image. You can check how the smart contract works on Remix before connecting the smart contract to the front-end application. Just a bit on how it all works, our smart contract includes a get random number generating function from Chainlink which defines the generation of random numbers that is impossible to do efficiently using Solidity alone.

The game function performs the doubling of funds when a player calls the smart contract but to get this working, we must send funds to the smart contract from our test LINK and ETH. After sending the funds you can visit Rinkebey.etherscan.io to check that your smart contract has been funded.

Now go back to the deployed contract on Remix, and in the seed bar, input a random number, then in the value bar, input 1 and leave the unit in wei so that it is as small as possible. Trace the transaction back again to Rinkebey.etherscan.io to see that it works perfectly.

Each game has a unique ID and all the data for each game is stored in the game strut. Whenever the game function is called, we increment the ID, and whenever the getRandom number function is called, it triggers the Chainlink smart contracts. The verdict function helps us transfer the amount won by an address to the winner by checking with the data and sending the amount multiplied by two automatically.

Next, we will go to our code editor, and select App.js. Then we need to highlight the smart contract address and paste the specific address from Betting game.sol by selecting the deployed contracts tab and then clicking on the copy button beside. Go to your terminal, and run the app by typing npm run start. Your command will initialize the web server and the betting game app will be live on your browser. You will notice the current balance on your account displayed below the animated gameplay character. You can try betting 0.5 ETH.

On the fronted side of the application, we have an import function that turns our browser into a Web 3.0 browser. The first constructor function contains an ABI which defines how the smart contract works, then the constructor function helps us load the specific smart contract we want to use in our application.

To load the smart contract, we create a Javascript version of the smart contract in React and then get the account balance on the front end as well. The state of the React application comes with the database, and it is also a part of our front-end side of the code.

We also represent the game function call in the frontend of the application, and the random seed calls the function and does the betting, while we write a code to listen to the smart contract and display results so that whenever we win, a result will be triggered, and whenever we lose, we will also receive a corresponding result. We also have a render function and a navigation bar on the front-end which are also defined in the React code.

Scale your solidity projects with us

A Walkthrough on Coding a Puzzle Game in Solidity

There are no limits to the sort of game we can build or recreate using Solidity and other frontend frameworks like React.js. A popular example you must have seen on the internet, is the cryptokitties-inspired puzzle game created using Ethereum, Solidity, Web 3.js, and Truffle. What you do in this game is to try to solve a puzzle onscreen, and when you get it right, you keep the asset forever in your blockchain wallet. You also need Ganache and a local host to create this project. Ganache is a local blockchain on your computer that allows you test applications you create before deploying them to the mainnet.

We can then go into Truffle, create a smart contract file, and create a define the memory token. It is a state variable that is stored immutably on the blockchain. Next, you create a migration file and tell Truffle how to move the contract on the blockchain, then deploy the memory token and migrate the contract by deploying it on your terminal.

Use reset in case there is another smart contract in the build directory. The smart contract should also be ordered in the way they would be initialized. After this, we will open the Truffle console to allow the Javascript to interact directly with the smart contract. By doing this, we can fetch the smart contract with Javascript inside the console.

Next, we need to write the functions, attributes, and values of the token. Then we can use the terminal to check our test. The result should tell us that the token was deployed successfully, has a name, and has a symbol. When creating a token, you need the value to start from zero. To achieve this, you need to write the logic to mint the token.

The function would have two arguments, the first being the name of the owner of the token, while the next argument is the for the token symbol. We also create a function for the recipient address for the token and a place to reference the image for each token such as a URI. In the end, we should have a smart contract with a couple of mint values, and we should be ready to go on from there.

After fully creating the 3 files: Memory, ERC721, and Memory Token, and creating all the smart contracts and component codes, you need to test your smart contract to see if it passes so that you don’t do something wrong on the mainnet after paying unbelievable fees. The next step will be building out the client-sidee portion of the application. Go back to the web browser and start the server in your terminal using the npm start command. Reset to put out the smart contracts on the blockchain.

Create a custom RPC in your MetaMask, and connect to your application so that your web browser talks to the test blockchain you have created. Import accounts and select private keys then click done on Ganache. The next step will be connecting our app to the blockchain by visiting the source directory, and the component.

In react, we can again code all the interesting front-end of our application including the visuals and navigation bar. React is great because it allows you to write HTML and Javascript like they were one language in one place. We also need bootstrap to make the styling look nice without doing much.

To make out app talk to the blockchain, we connect our app using a library called Web 3.0.js. We can simplify MetaMask’s recommendation and simplify it for our React.js application and connect it to the browser. We can use a React life cycle method to execute the piece of code needed for our app to run in the React life cycle. We then write a function to ensure that our app is connected to Web 3.0. After that, we can refresh the page on our local host to see that we are connected.

Next, we need to determine the network we are connected to using Ganache. Then fetch the address from the file if it is deployed to the network. We then add the token to our state object then fetch the total supply of our tokens. Next, we need to paste in some values to fill out the state object. We then implement the logic for showing different images on the page by going back to the choose image function and defining the card

ID such that when a card ID is chosen the appropriate image will be displayed. At this point, you will be able to see the game in your browser, and interact with it fully. We also need to enable the popup from MetaMask, Web 3.0 wallet whenever we find a match. The last step is to implement the code that displays the collected tokens at the bottom of the page.

Let's build together on Solidity

We Can Help You Develop A Game in Solidity

Our Solidity development team has several years of experience transforming writing codes that transform simple ideas into elaborate blockchain games. Irrespective of the genre or idea, we can build the next-generation game that would hold players spellbound and create a new community around the experience on the internet.

Irrespective of how simple the gaming idea may seem, keep in mind that games like Angry Birds that turned into billion-dollar empires do not offer the benefits of the blockchain. If you could do something like that on the blockchain, chances are you could record huge success. Some simple blockchain games have already seen millions of users coming as a result of the rewards than the fun. If you make something fun, you would be winning on both sides.

Do not hesitate to reach out to us today to discuss your idea for your blockchain game no matter how impossible you think it seems. The only person to tell you it is impossible is us, and we are pretty sure anything is possible because we have made the hardest stuff happen with code in the past couple of years.

Conclusion

Blockchain games are different from traditional games due to decentralization, data immutability, lack of a single point of failure, and other benefits made possible by the blockchain. They are unique because they allow players to use assets in one game on other games and sometimes across blockchains, and the assets in the game remain with the owner forever. Players of these games are also rewarded directly for their progress in the game which makes gaming more like a skill, with players earning a lot of money by simply participating in these activities. Lately, blockchain gaming has led to the creation of platforms that lend in-game assets allowing talented players to play without barrier while paying rewards to investors, and creating a new use case for gaming NFTs.

Next Article

Top Blockchain Platforms (1)

Top 20 Best Blockchain Development Companies

Other Related Services From Rejolut

Hire NFT
Developer

Solana Is A Webscale Blockchain That Provides Fast, Secure, Scalable Decentralized Apps And Marketplaces

Hire Solana
Developer

olana is growing fast as SOL becoming the blockchain of choice for smart contract

Hire Blockchain
Developer

There are several reasons why people develop blockchain projects, at least if these projects are not shitcoins

Why Rejolut?

1 Reduce Cost
RCW™ is the number one way to reduce superficial and bloated development costs.

We’ll work with you to develop a true ‘MVP’ (Minimum Viable Product). We will “cut the fat” and design a lean product that has only the critical features.
2 Define Product Strategy
Designing a successful product is a science and we help implement the same Product Design frameworks used by the most successful products in the world (Facebook, Instagram, Uber etc.)
3 Speed
In an industry where being first to market is critical, speed is essential. RCW™ is the fastest, most effective way to take an idea to development. RCW™ is choreographed to ensure we gather an in-depth understanding of your idea in the shortest time possible.
4 Limit Your Risk
Appsters RCW™ helps you identify problem areas in your concept and business model. We will identify your weaknesses so you can make an informed business decision about the best path for your product.

Our Clients

We as a blockchain development company take your success personally as we strongly believe in a philosophy that "Your success is our success and as you grow, we grow." We go the extra mile to deliver you the best product.

BlockApps

CoinDCX

Tata Communications

Malaysian airline

Hedera HashGraph

Houm

Xeniapp

Jazeera airline

EarthId

Hbar Price

EarthTile

MentorBox

TaskBar

Siki

The Purpose Company

Hashing Systems

TraxSmart

DispalyRide

Infilect

Verified Network

What Our Clients Say

Don't just take our words for it

I have worked with developers from many countries for over 20 years on some of the most high traffic websites and apps in the world. The team at rejolut.com are some of most professional, hard working and intelligent developers I have ever worked with rejolut.com have worked tirelessly and gone beyond the call of duty in order to have our dapps ready for Hedera Hashgraph open access. They are truly exceptional and I can’t recommend them enough.
Joel Bruce
Co-founder, hbarprice.com and earthtile.io
Rejolut is staying at the forefront of technology. From participating in, and winning, hackathons to showcase their ability to implement almost any piece of code. To contributing in open source software for anyone in the world to benefit from the increased functionality. They’ve shown they can do it all.
Pablo Peillard
Founder, Hashing Systems
Enjoyed working with the Rejolut team. Professional and with a sound understanding of smart contracts and blockchain. Easy to work with and I highly recommend the team for future projects. Kudos!
Zhang
Founder, 200eth
They have great problem-solving skills. The best part is they very well understand the business fundamentals and at the same time are apt with domain knowledge.
Suyash Katyayani
CTO, Purplle

Think Big, Act Now & Scale Fast

Speed up your blockchain adoption with our proven framework.

We are located at