ELEMENTAL BATTLES – EOSブロックチェーン上に構築されたカードゲームの紹介

2018.11.13

BCHNews編集部

こんにちは、BCHNews編集部です。

先日、EOSIOの開発を手がけるBlock.one社より下記のアナウンスがありました。

エレメントをコマンドし、ElementalBattlesでEOSIOアプリケーションを開発する方法を学びます。 試してみてください:http://battles.eos.io

EOSIOについて

EOSIOは、高性能のブロックチェーンアプリケーションを構築、展開、実行するためのプラットフォームを提供する、フリーでオープンソースのブロックチェーンソフトウェアプロトコルです。
EOSIOの詳細については、以下をご覧ください。
eos.io:https://eos.io/
developers.eos.io:https://developers.eos.io/

ElementalBattlesについて

ElementalBattlesのページには、”Build a blockchain game.Learn EOSIO. – ブロックチェーンゲームを構築して、EOSIOを学ぼう。”と記載されています。
このサイトでは、8つの無料レッスンからなるオンラインチュートリアルが用意されています。チュートリアルでは、ElementalBattlesというファンタジーワールドのカードゲームをデモとして使っています。スマートコントラクトにはC++、フロントエンドではJavaScriptを使うため、チュートリアルを進めるには、C ++とJavaScriptの基礎知識が必要となります。

チュートリアル

8つのレッスンを通して、スマートコントラクトの構築やフロントエンドとの統合など、完全に機能するEOSIOアプリケーションを作成するために必要なスキルと、ブロックチェーン開発の基礎について学ぶことができます。

各レッスンでは新しい概念を紹介し、既存のコードにそれらを含める方法を紹介します。 さらに、チュートリアルを簡単に行うために、説明とソースコードを並べて表示し、すべてのレッスンは、ユーザーがアプリケーションを実行したり変更したりできるように、参考文献とプロジェクトダウンロードのリンクで終了します。
アカウントの作成からゲームの作成、AIの開発まで、このチュートリアルでは、分散型ブロックチェーンベースのゲームを構築するために必要なすべての要素について説明しています。

ゲーム

ElementalBattlesは、プレイヤーが木、火、水の力を利用して相手を支配する、ファンタジーワールドに設定されたカードゲームであり、CPUと一対一で対戦します。 プレイヤーとCPUには、それぞれ5ヒットポイント(HP)が与えられます。 目的はラウンドでカードをプレイすることで勝利し、対戦相手のHPを0に減らすことです。
ゲームの流れは次のとおりです:

  • 各プレイヤーは4枚のランダムカードを引きます。カードは両方のプレイヤーに見えます。
  • 各ラウンドでは、両方のプレイヤーが自分のカードからカードを1枚選びます。勝敗とHPの減少量は、両方のカードの強さと属性の相性に基づいて計算されます。
  • 属性の相性は、「火→木→水→火…」というように、ジャンケンのような関係性なっています。
  • ラウンド後、各プレイヤーは新しいランダムカードを1枚引きます。
  • 相手のHPが0になったときにプレイヤーが勝利します。カードがなくなった場合、残りのHPが最も高いプレイヤーが勝利します。

チュートリアルおよびゲーム画面詳細について

トップページの”GET STARTED”をクリックし、メールアドレス、Password設定し、規約とロボットではありませんにチェックを入れいてSignupします。

チュートリアルおよびゲームそれぞれの説明とスタート画面に遷移します。

チュートリアルは下記の章立てで構成されています

LESSON 0:Before You Start

  • 0.1 Introduction to the Tutorial
  • 0.2 Blockchain / EOSIO Intro
  • 0.3 Smart Contract Basics

LESSON 1:Smart Contract and Frontend Setup

  • 1.1 Lesson Objective
  • 1.2 Smart Contract Setup
  • 1.3 Frontend Setup
  • 1.4 Customize React App
  • 1.5 Lesson Summary

LESSON 2:Storing State and Login

  • 2.1 Lesson Objective
  • 2.2 Contract State
  • 2.3 Writing State to the Multi Index Table
  • 2.4 The Smart Contract Application Binary Interface (ABI)
  • 2.5 Frontend Setup – Creating the Login Form
  • 2.6 Frontend Setup – ApiService for Communication to the Blockchain
  • 2.7 Frontend Setup – Redux Integration
  • 2.8 Frontend Setup – Putting It All Together
  • 2.9 Frontend User Session
  • 2.10 Lesson Summary

LESSON 3:Reading State from the Blockchain

  • 3.1 Lesson Objective
  • 3.2 Fetching Data from the Blockchain
  • 3.3 Display the Player Profile
  • 3.4 Screen Refresh
  • 3.5 Lesson Summary

LESSON 4:Elemental Battles Core

  • 4.1 Lesson Objective
  • 4.2 Setting Up the Game
  • 4.3 Randomization
  • 4.4 “Start Game” Action
  • 4.5 “Play Card” Action
  • 4.6 Game Display Components
  • 4.7 Displaying the Frontend
  • 4.8 Lesson Summary

LESSON 5:Elemental Battles AI

  • 5.1 Lesson Objective
  • 5.2 AI Strategies
  • 5.3 AI Choose Card Function
  • 5.4 Lesson Summary

LESSON 6:Playing a Round and Elemental Compatibility

  • 6.1 Lesson Objective
  • 6.2 Elemental Compatibility
  • 6.3 Battle Resolution Smart Contract Function
  • 6.4 Adding Battles to the Frontend
  • 6.5 Lesson Summary

LESSON 7:Building the Game Flow

  • 7.1 Lesson Objective
  • 7.2 Adding “Update Game Status” to the Smart Contract
  • 7.3 Adding “Next Round” to the Smart Contract
  • 7.4 Adding “End Game” to the Smart Contract
  • 7.5 Adding “Next Round” and “End Game” to the Frontend
  • 7.6 Lesson Summary

LESSON 8:Wrapping Up the Game

  • 8.1 Lesson Objective
  • 8.2 Adding Rules Screen
  • 8.3 Adding Progress Indication
  • 8.4 Logging in
  • 8.5 Tutorial Summary

チュートリアルは、左側に説明、右側にコードが表示されています。

説明を読みながら、左側に時折表示される”CODE”ボタンを押すと右側にコードが表示されます。

この様に、各テーマに沿った8つのレッスンを完了することで、ゲームを構築する手順について学ぶ事ができます。
すべてのチュートリアルを終えると、YOUR STATAS:COMPLETEDと表示されます。

そして、ゲームもプレイするとことができます。こちらのページに移動して、ログインしたら、実際にゲームを試してみましょう。

自分(下部)と対戦相手(上部)のカードが表示されます。

自分のカードを一枚選択すると、対戦相手もカードも表示され、勝敗および負けた方のHP減少量が表示されます。

これを繰り返し、HPが0になったプレイヤーが敗者となります。

さいごに

ElementalBattles開発者責任者のSerg Metelin氏は次のように述べています。

「ElementalBattlesは、ブロックチェーンの基礎を学ぶ、魅力的で信頼できる楽しい方法です。ブロックチェーンが普及するにつれて、開発者の関心が高まっています。世界の既存のデジタルインフラストラクチャの多くは、C ++とJavaScriptをベースにしており、チュートリアルはこのコミュニティの開発者コミュニティのブロックチェーンとEOSIOのエントリーポイントです。ElementalBattlesの目的は、これらの個人がこの分野での知識とスキルをユーザーフレンドリーなインターフェースで得ることができるようにすることです。
アクセスを簡単にすることは、巨大な潜在的なユーザーベースへの扉を開きます。特に教育機関がプログラミングを真剣に受け入れ初めています。EOSIOで開発できることは、新世代のデベロッパーの画期的なスキルであり、ElementalBattlesはそれを可能にするゲートウェイです。」

参照URL:https://medium.com/eosio/announcing-elemental-battles-block-ones-3215a8e2cdee

さいごに

今回はElementalBattlesのチュートリアル、ゲームについて簡単に紹介しましたが、興味を持たれた方は是非一度試してみてはいかがでしょうか。

最新情報はこちら

BCHNewsでは公式のTwitterアカウント(@bchnews_jp)を開設しました。
更新情報を配信しておりますので、よろしければフォローしていただけると嬉しいです。

BCHNews編集部

BCHNews編集部です。
日々更新される暗号通貨関連のニュースを読者の皆様にお届けします。

関連記事

8/17 アルトコイン – アップデート情報まとめ

2018.08.17

by BCHNews編集部

10/19 アルトコイン – アップデート情報まとめ

2018.10.19

by BCHNews編集部

Nano、ウィークリーを公開

2018.09.05

by BCHNews編集部

0x、V2開発ツールを公開

2018.08.07

by BCHNews編集部