イーサリアムは、将来、ビットコインを(時価総額)で超えると一部で言われています。
それはイーサリアムのスマートコイントラクト、つまり「スマートな契約」と言われている技術が大きな要因となっています。
しかし「スマートな契約」と言われても「そのままやんかーい」という感じで、どんなことができるのか具体的な事例がないとわかり辛いですよね。そこで、本日はスマートコントラクトでゲームを開発し、出来ることのほんの一例を学んでみましょう!
スマートコントラクトが学べるクリプトゾンビ
↑サイトはこちら。日本語変換もできます。
今回はクリプトゾンビ(CryptoZombies)というスマートコントラクトを使い、どんなことができるのか?ゲームを開発して学んでみましょう!
無料のオンラインレッスンです。
レッスンは3までありますが、レッスン1を終えるだけでもイーサリアムの開発者を名乗れるレベルになるそうです。
Solidityって何だろう?と思いましたが、イーサリアムで使われている高水準言語ということです。Solidityが一般的でないため、仮想通貨のLISKやNEOなどがJavaなどの一般的に使用されている言語でスマートコントラクトを動かせるように設計されているんですね。
コントラクト指向言語Solidity詳解 · Ethereum入門さんでSolodityについて詳しく書かれていましたので、興味があればご覧下さい。
そのレッスン1ですが、ゾンビ軍団をつくる事から始めるとのことですw
DAPPとは「分散型アプリケーション」のことです。つまり、管理者がいない自動で動くプログラムというような意味になります。
スマートコントラクトが凄い凄いと言われていても、まだ現実世界に浸透していないのであまりピンとこないのも事実です。というわけでスマートコントラクトについて学んでみようと試してみました。
かにたま「とりあえずやってみますよおおおおおおおっ!」
なお、僕はプログラミングの経験がないので、レッスン1だけでも、かなりの時間がかかりました。経験がない方は、理解もありますのでレッスン3までだとかなりの時間がかかると思います。ただ、途中で保存はできます。
最初にスマートコントラクトでゲームを作ってみて感想を書いてみたいと思います。
ゲーム作成で感じたスマートコントラクト
上のキャラクターは僕が作成したのですが、スマートコントラクトでプログラムを作成した結果、名前を入力するだけでキャラクターが作成できるようになりました。
これは名前を取得し、それを使ってランダムなゾンビを作り出し、それをブロックチェーン上のゾンビデータベースに追加するというものです。
ここからもっとゲームのようなものに変えていきマルチプレーヤー対応にして、ゾンビの作り方もランダムではなくて、もっとも面白い方法に変えていくことができます。
難しいことをごちゃごちゃいっていますが、スマートコントラクトのお陰で高度なゲームがつくれるということです。
応用例。例えば、上のゾンビと下の人間を配合することで新たなゾンビが作成できます。左下の金髪の人間と上のゾンビを配合すると・・・
DNAが配合したかのように新しいゾンビが勝手に生まれますw
+
↓
スマートコントラクト上では、スライムナイトが勝手に生まれる!?
これを応用して、例えば、ドラクエで例えると、スライムと騎士を配合してスライムナイトみたいなものを一瞬で生むことが可能になるようです。
ゲームのキャラクターは開発の方が考えプログラミングされたものがゲーム上で登場するのが一般的ですが、スマートコントラクトを使うとDNA配合させて勝手に新しいキャラを作成することが可能になり、遺伝子を継承させて次々と新たなキャラを生み出していくことも可能になるわけです。
そして応用してできたものがこれ!ゾンビとネコを融合してゾンビネコをつくると・・・
ゾンビとネコのDNAを配合し、ゾンビネコが作成されました。「尻尾がついただけやんかーい!」というツッコミがあるかもしれませんが、より高度な継承も可能なようです。
凄いのは、スマートコントラクトにより、キャラクターだけでも無限にオリジナルのものがつくれるという点です。
クリプトゾンビでは、自分でプログラムすることでスマートコントラクトの技術を学ぶことができます。正直、プログラムが思った以上に時間がかかりましたので、スマートコントラクトでこんなことができるんだなとご理解ください。
こんな感じで学びながらプログラミングをしていきます。
状態定数と整数??理解を試みましたが、殆ど理解できませんでした。(‘、3_ヽ)_バタッッ
ただ、ヒントや答え合わせもあるので、理解できなくても進めることができました。
プログラミング経験がない僕がクリプトゾンビに挑戦してみた結果・・・
とりあえず最後までやりました。僕にとっては難しかったのです。1発で理解するのはムリゲーでしたので、少しずつ進めて3日以上かかりました。(‘、3_ヽ)_バタッッ
STARTボタンを押してゲームを作成する前に
Solidityの初心者でもわかるように教えていくつもりだが、別の言語(例:Javascript)である程度経験があることを前提に進めるから、その辺りはよろしく頼むぞ。
と記載されていました。
僕はJavascriptどころかプログラミング言語を使った経験がありません。開始前は少し不安に感じました。
以下、手順です。
手順
CryptoZombies – Learn to code games on Ethereum. Powered by Loom Network
↑上サイトに進みます。
トップ画面の右上で言語変換ができますので「日本」を選択します。これで日本語変換されます。
日本語に変換されると上画面のように表示されます。
「始めましょう。無料です。」をクリックします。
レッスン1をクリックします。後は画面に従って進んでいきます。プログラム経験がない方がまともにやると僕のように1日以上潰れると思います。
全て答えを見ながらなら1時間くらいでしょうか。
レッスン1
レッスン1だけプログラムの答えを書いていきます。各チャプターでわからない所があればご確認ください。
チャプター1
ゲームのキャラを作成するようです。数値は何でもOKです。
とりあえずゾンビを作成する所まではできました。
次に進んでみると・・・
チャプター2
プログラムぽいのが出てきました!/(^o^)\
コントラクト作成ですか。
ヒントに直行しました!(‘、3_ヽ)_バタッッ
プログラムを学ぶわけではないので「答え合せ」ボタンがありますので、そこを見ても良いとおもいます。
答えが正解でないとエラーがでますが、次に「答えを表示」という画面がでますのでクリックすると右側に答えがでます。
ちなみに答えはこれです。
pragma solidity ^0.4.19;
空白
contract ZombieFactory {
空白
}
これを
画面右のContract.solに書きこみます。
これが答えです。これがスマートコントラクトの骨組みになるそうです。
再び、答えあわせをしてみましょう。
すると正解だったようです。( ー`дー´)キリッ
(答えをそのまま映したしただけですw)
次のチャプターに進みます。
チャプター3
チャプター3は状態変数と整数!?
どんどん難しくなっていきます!(‘、3_ヽ)_バタッッ
答えはこれです。
記載したら答えあわせで次に進みます。
チャプター4
「//ここから開始するのだ」を変更していきます。
答えはこれです。
チャプター5
// start hereを変更していきます。
これが答えです。
チャプター6
// start hereを変更していきます。
これが答えです。
チャプター7
「// ここから始めるのだ」を変更していきます。
これが答えです。
チャプター8
「// ここから始めるのだ」を変更していきます。
これが答えです。
チャプター9
今回は上の赤枠の行を変更します。
これが答えです。
「_」と「private」が付け足されています。
チャプター10
// start hereを変更していきます。
これが答えです。
チャプター11
「// ここから始めるのだ」を変更していきます。
これが答えです。
チャプター12
「// ここから始めるのだ」を変更していきます。
これが答えです。
チャプター13
2箇所を変更していきます。
これが答えです。
チャプター14
名前を入力してみましょう。
すると名前によって自動的にゾンビが作成されることがわかります。
コメント