inosyanのブログ

プログラム、家庭菜園、僕が興味を持ったことを書いていきます

MakeCode で Minecraft のプログラミングをしてみました

f:id:inosyan:20180920003351j:plain

こんにちは。久々にブロクを更新します。
最近またMinecraftをはじめました。というのも、MakeCodeというMinecraft用のプログラムを書ける仕組みを知ったからです。
まず、Minecraftを知らない人のために簡単に説明しますと、ブロックをならべたり、穴を掘ったりして家とか道具を作りながら、 モンスターと戦ったり探検したりするゲームです。
昔、娘といっしょにやっていたのですが、娘がハマりすぎてゲームをやめる時間が過ぎてもやめようとしなかったので禁止にしてしまい、それ以来やってませんでした。

f:id:inosyan:20180920003429j:plain

その当時、Raspberry Pi版のMinecraftがあって、それはScratchとつないでプログラムできました。でも、モンスターが出なかったりいろいろ製品版のMinecraftとは違うもので、製品版とは住み分けてる感じでした。

それから、MinecraftMicrosoftに買収されたり、モバイル版が出たりXbox版が出たりといろいろありましたが、動向は気にしつつもあまりプレイする意欲がわきませんでした。 Minecraftが好きなら娘といっしょじゃなくても一人でやればよかったのですが、やる気がでませんでした。 ゲームは好きですが、膨大な時間をゲームに取られるのがいやだからです。それはMinecraftに限ったことではないですが、Minecraftって積み木のようにブロックを積み上げる作業があって、それがとてつもなく時間がかかるのです。城なんてとても作れないから小さい小屋を作って我慢することになっちゃうし。。。 要するに、時間がかかる単調な作業がやる気のでなかった原因です。

ある日、MakeCodeの存在を知りました。それを使えばMinecraftとつないでプログラムでブロックを並べることができるらしい! しかも MinecraftWindows 10版なので、モンスターも出る制約の無いMinecraft! そして、うれしいことにJavaScript(TypeScript)でもコーディングできます。

Windows 10版のMinecraftJava版のライセンスを持っていれば無料で手に入れることができるようです。 僕はmacを使ってますが、Parallelsに入ってるWindows 10に無事インストールできました。

f:id:inosyan:20180920003449j:plain

MakeCodeのページを見るとチュートリアルがたくさんあるので、一通りみてだいたいできることがわかったところで、プログラムを書いてみました。 Scratchそっくりな画面からはじまりますが、JavaScriptに表示を切り替えて書きました。

MakeCodeは、子供向けのプログラム学習用として開発されたアプリで、ブロックをならべてプログラムできる点はスクラッチをやっている子どもたちには親しみやすいと思います。 ブロックとコードを表示切り替えできるので、これからプログラムを始める人にとっては理解を深めるのに良いと思います。

f:id:inosyan:20180920003503j:plain

しばらく触ってみると、カスタムブロックという、プログラムの部品を自分で作る仕組みがあり、それをTypeScriptで書けることに気づきました。 MakeCodeの画面左下のボタンを押すと、Exploler というボタンがでてくるので、それを押すとプロジェクトの中身が見れます。

はじめに開いているプログラムが書かれているファイルは、main.ts だということがわかります。 拡張子は ts つまり、TypeScriptなんです。本当はJavaScriptではなかったんですね。 厳密には Static TypeScript という言語で、Web開発などで使われている TypeScript とは少し違うのですが、ほぼ同じ文法です。

f:id:inosyan:20180920003523j:plain

新規にプロジェクトを書き始めたとき、ユーザが編集できるのは main.ts だけですが、Explorerボタンのところにある + ボタンを押すとこで、custom.ts ができます。これは、ユーザ定義のカスタムブロックを作るためのファイルで、プログラム本体はこの中に書き、main.tsからそれを呼び出すというのが基本スタイルになります。 custom.ts の中では、クラス、enum, interface などをつかって思う存分プログラムができます。 高度なプログラムを書くことも、もちろん可能です。

家を建てるプログラムと、その紹介ムービーを作ってみました。 プログラムはMakeCodeにインポートして使用できます。
家を建てるプログラム【HouseBuilder】

紹介ムービー:


【マイクラMakeCode】MakeCodeでマイクラ魔法使いになろう!(小屋づくり編)

いろいろノウハウがたまったので、次回はそれについてご紹介できればと思います。