スマートコイントラクトの仕組みの一部を学べるゲーム「クリプトゾンビ」

ETHロゴ知識・用語集
スポンサーリンク

イーサリアムは、将来、ビットコインを(時価総額)で超えると一部で言われています。

それはイーサリアムのスマートコイントラクト、つまり「スマートな契約」と言われている技術が大きな要因となっています。

しかし「スマートな契約」と言われても「そのままやんかーい」という感じで、どんなことができるのか具体的な事例がないとわかり辛いですよね。そこで、本日はスマートコントラクトでゲームを開発し、出来ることのほんの一例を学んでみましょう!

 

スポンサーリンク

スマートコントラクトが学べるクリプトゾンビ

cryptozombies.io

↑サイトはこちら。日本語変換もできます。

 

f:id:moneygamex:20180205151003j:plain

今回はクリプトゾンビ(CryptoZombies)というスマートコントラクトを使い、どんなことができるのか?ゲームを開発して学んでみましょう!

無料のオンラインレッスンです。

 

f:id:moneygamex:20180205151157j:plain

レッスンは3までありますが、レッスン1を終えるだけでもイーサリアムの開発者を名乗れるレベルになるそうです。

 

f:id:moneygamex:20180205152300j:plain

Solidityって何だろう?と思いましたが、イーサリアムで使われている高水準言語ということです。Solidityが一般的でないため、仮想通貨のLISKやNEOなどがJavaなどの一般的に使用されている言語でスマートコントラクトを動かせるように設計されているんですね。

コントラクト指向言語Solidity詳解 · Ethereum入門さんでSolodityについて詳しく書かれていましたので、興味があればご覧下さい。

 

f:id:moneygamex:20180205151415j:plain

そのレッスン1ですが、ゾンビ軍団をつくる事から始めるとのことですw

 

f:id:moneygamex:20180205151839j:plain

DAPPとは「分散型アプリケーション」のことです。つまり、管理者がいない自動で動くプログラムというような意味になります。

 

スマートコントラクトが凄い凄いと言われていても、まだ現実世界に浸透していないのであまりピンとこないのも事実です。というわけでスマートコントラクトについて学んでみようと試してみました。

 

f:id:moneygamex:20180205151426p:plain

かにたま「とりあえずやってみますよおおおおおおおっ!」

なお、僕はプログラミングの経験がないので、レッスン1だけでも、かなりの時間がかかりました。経験がない方は、理解もありますのでレッスン3までだとかなりの時間がかかると思います。ただ、途中で保存はできます。

最初にスマートコントラクトでゲームを作ってみて感想を書いてみたいと思います。

 

ゲーム作成で感じたスマートコントラクト

クリプトゾンビ

クリプトゾンビ

クリプトゾンビ

上のキャラクターは僕が作成したのですが、スマートコントラクトでプログラムを作成した結果、名前を入力するだけでキャラクターが作成できるようになりました。

これは名前を取得し、それを使ってランダムなゾンビを作り出し、それをブロックチェーン上のゾンビデータベースに追加するというものです。

 

ここからもっとゲームのようなものに変えていきマルチプレーヤー対応にして、ゾンビの作り方もランダムではなくて、もっとも面白い方法に変えていくことができます。

難しいことをごちゃごちゃいっていますが、スマートコントラクトのお陰で高度なゲームがつくれるということです。

 

クリプトゾンビ

応用例。例えば、上のゾンビと下の人間を配合することで新たなゾンビが作成できます。左下の金髪の人間と上のゾンビを配合すると・・・

 

クリプトゾンビ

DNAが配合したかのように新しいゾンビが勝手に生まれますw

 

スライム

白騎士

スライムナイト

スマートコントラクト上では、スライムナイトが勝手に生まれる!?

これを応用して、例えば、ドラクエで例えると、スライムと騎士を配合してスライムナイトみたいなものを一瞬で生むことが可能になるようです。

ゲームのキャラクターは開発の方が考えプログラミングされたものがゲーム上で登場するのが一般的ですが、スマートコントラクトを使うとDNA配合させて勝手に新しいキャラを作成することが可能になり、遺伝子を継承させて次々と新たなキャラを生み出していくことも可能になるわけです。

 

クリプトゾンビ

そして応用してできたものがこれ!ゾンビとネコを融合してゾンビネコをつくると・・・

 

クリプトゾンビ

ゾンビとネコのDNAを配合し、ゾンビネコが作成されました。「尻尾がついただけやんかーい!」というツッコミがあるかもしれませんが、より高度な継承も可能なようです。

凄いのは、スマートコントラクトにより、キャラクターだけでも無限にオリジナルのものがつくれるという点です。

クリプトゾンビでは、自分でプログラムすることでスマートコントラクトの技術を学ぶことができます。正直、プログラムが思った以上に時間がかかりましたので、スマートコントラクトでこんなことができるんだなとご理解ください。

 

f:id:moneygamex:20180205193851p:plain

こんな感じで学びながらプログラミングをしていきます。

状態定数と整数??理解を試みましたが、殆ど理解できませんでした。(‘、3_ヽ)_バタッッ

ただ、ヒントや答え合わせもあるので、理解できなくても進めることができました。

 

プログラミング経験がない僕がクリプトゾンビに挑戦してみた結果・・・

f:id:moneygamex:20180205182314j:plain

とりあえず最後までやりました。僕にとっては難しかったのです。1発で理解するのはムリゲーでしたので、少しずつ進めて3日以上かかりました。(‘、3_ヽ)_バタッッ

 

f:id:moneygamex:20180205153325j:plain

STARTボタンを押してゲームを作成する前に

Solidityの初心者でもわかるように教えていくつもりだが、別の言語(例:Javascript)である程度経験があることを前提に進めるから、その辺りはよろしく頼むぞ。

と記載されていました。

 

僕はJavascriptどころかプログラミング言語を使った経験がありません。開始前は少し不安に感じました。

 

以下、手順です。

手順

cryptozombies.io

CryptoZombies – Learn to code games on Ethereum. Powered by Loom Network

↑上サイトに進みます。

 

f:id:moneygamex:20180205150415j:plain

f:id:moneygamex:20180205150245j:plain

トップ画面の右上で言語変換ができますので「日本」を選択します。これで日本語変換されます。

 

f:id:moneygamex:20180205150613j:plain

日本語に変換されると上画面のように表示されます。

「始めましょう。無料です。」をクリックします。

 

f:id:moneygamex:20180205152750j:plain

レッスン1をクリックします。後は画面に従って進んでいきます。プログラム経験がない方がまともにやると僕のように1日以上潰れると思います。

全て答えを見ながらなら1時間くらいでしょうか。

 

レッスン1

レッスン1だけプログラムの答えを書いていきます。各チャプターでわからない所があればご確認ください。

チャプター1

f:id:moneygamex:20180205154426j:plain

ゲームのキャラを作成するようです。数値は何でもOKです。

とりあえずゾンビを作成する所まではできました。

次に進んでみると・・・

 

チャプター2

f:id:moneygamex:20180205154532j:plain

プログラムぽいのが出てきました!/(^o^)\

f:id:moneygamex:20180205154807j:plain

コントラクト作成ですか。

ヒントに直行しました!(‘、3_ヽ)_バタッッ

f:id:moneygamex:20180205155036j:plain

プログラムを学ぶわけではないので「答え合せ」ボタンがありますので、そこを見ても良いとおもいます。

f:id:moneygamex:20180205155401j:plain

答えが正解でないとエラーがでますが、次に「答えを表示」という画面がでますのでクリックすると右側に答えがでます。

ちなみに答えはこれです。

pragma solidity ^0.4.19;

空白
contract ZombieFactory {

空白
}

 

これを

f:id:moneygamex:20180205155924j:plain

画面右のContract.solに書きこみます。

 

f:id:moneygamex:20180205160238j:plain

これが答えです。これがスマートコントラクトの骨組みになるそうです。

 

f:id:moneygamex:20180205160517j:plain

再び、答えあわせをしてみましょう。

 

f:id:moneygamex:20180205155633j:plain

すると正解だったようです。( ー`дー´)キリッ

(答えをそのまま映したしただけですw)

 

f:id:moneygamex:20180205160710j:plain

次のチャプターに進みます。

 

チャプター3

f:id:moneygamex:20180205160923j:plain

チャプター3は状態変数と整数!?

どんどん難しくなっていきます!(‘、3_ヽ)_バタッッ

答えはこれです。

f:id:moneygamex:20180205161321j:plain

記載したら答えあわせで次に進みます。

 

チャプター4

f:id:moneygamex:20180205161656j:plain

「//ここから開始するのだ」を変更していきます。

f:id:moneygamex:20180205162646j:plain

答えはこれです。

チャプター5

f:id:moneygamex:20180205162919p:plain

// start hereを変更していきます。

f:id:moneygamex:20180205163455j:plain

これが答えです。

チャプター6

f:id:moneygamex:20180205163747j:plain

// start hereを変更していきます。

f:id:moneygamex:20180205164003j:plain

これが答えです。

チャプター7

f:id:moneygamex:20180205164105j:plain

「// ここから始めるのだ」を変更していきます。

f:id:moneygamex:20180205164523j:plain

これが答えです。

チャプター8

f:id:moneygamex:20180205164737j:plain

「// ここから始めるのだ」を変更していきます。

f:id:moneygamex:20180205164925j:plain

これが答えです。

チャプター9

f:id:moneygamex:20180205165329j:plain

今回は上の赤枠の行を変更します。

f:id:moneygamex:20180205170128j:plain

これが答えです。

f:id:moneygamex:20180205170257j:plain

「_」と「private」が付け足されています。

チャプター10

f:id:moneygamex:20180205170450j:plain

// start hereを変更していきます。

f:id:moneygamex:20180205170623j:plain

これが答えです。

チャプター11

f:id:moneygamex:20180205170728j:plain

「// ここから始めるのだ」を変更していきます。

f:id:moneygamex:20180205170900j:plain

これが答えです。

チャプター12

f:id:moneygamex:20180205171054j:plain

「// ここから始めるのだ」を変更していきます。

f:id:moneygamex:20180205171218j:plain

これが答えです。

チャプター13

f:id:moneygamex:20180205171435j:plain

2箇所を変更していきます。

f:id:moneygamex:20180205172144j:plain

これが答えです。

チャプター14

f:id:moneygamex:20180205172445j:plain

名前を入力してみましょう。

すると名前によって自動的にゾンビが作成されることがわかります。

 

 

コメント