Today we’ve finally launched EthernalGo, our first DAPP (decentralized app) running on Ethereum. This DAPP allows people from around the world to play the simple yet so deep game of Go on the blockchain.

Finally launched!

Since creating the game the way we wanted proved to be quite challenging, I wanted to share a bit of our experience developing this smart contract.

Challenge #1 — Getting Started with Ethereum:

There are many learning resources out there, but there are a few that I think really stand out. I’ve curated a quick list of the important ones.

Learning solidity: https://cryptozombies.io/ is by far the best 1st stop. Just go there and go through all available lessons.

https://cryptozombies.io/ is by far the best 1st stop. Just go there and go through all available lessons. Actual development environment: Don’t miss out on truffle to help with most of the day-to-day tasks (starting a development node, migrating your code to different networks). It’s pretty solid and nicely maintained.

For us, the most helpful tool was the test framework that comes bundled in with truffle and allows for quick automated testing without any UI development.

For writing code we used VS code, we love it for its flexibility and being so light-weighted.

Don’t miss out on truffle to help with most of the day-to-day tasks (starting a development node, migrating your code to different networks). It’s pretty solid and nicely maintained. For us, the most helpful tool was the test framework that comes bundled in with truffle and allows for quick automated testing without any UI development. For writing code we used VS code, we love it for its flexibility and being so light-weighted. Geth Reference: Eventually you will want to deploy your contracts to a testnet and then the mainnet. geth is the official command line interface that can help you do that. While there are others with nice UI such as parity or ethereum wallet (which uses geth), I believe you must start with basics.

Challenge #2 — Building a solid web client:

We chose to go with react but that’s just based on previous experience with it. Any web stack can work, the main challenge will be to interact with the web3 (the component that communicates directly with the blockchain) successfully.

Installing MetaMask is not only helpful for end-users buying kitties, it’s also very helpful for development as you can see your balance, transactions and work with multiple accounts.

I’d recommend focusing on a single web3 implementation and ironing out the experience of using it.

Keep in mind that transactions on the testnet and mainnet take much longer than running on a local environment. Make sure you make the effort to notify your users what’s going on and what are they waiting for exactly. For EthernalGo, we used toast notifications which did the trick.

Challenge #3 — Getting noticed:

The days of creating an app and immediately getting noticed were pretty short. After crypto-kitties there were tons of look-alike dapps and it’s getting harder and harder to stand out. Getting noticed will probably cost time, effort and money.

At the time of this writing, leading crypto-currency sites ask for anywhere between 200 USD to 5000 USD for promotional pieces so take this into account when creating your budget pie.

So what’s next?

I would love to hear your thoughts and comments on this post and our game. If it’s interesting, please let me know and I’ll be happy to share more in future posts.