結論
とても良かったです(小並感)
実際のプレイ動画
完成したリポジトリ
Godotチュートリアル2Dとは?
感想
率直な感想としては、Web開発に近いところがたくさんあるな〜と思いました。
というのも例えばフロントエンド開発において、画面上にアニメーションを表示させるIssueに取り組んだことがあったのですが、その際はD3.jsを使って描画をコントロールしました。timer.teamでは<canvas>
: グラフィックキャンバス要素を用いた場面もありました。つまり、ブラウザの画面の動きを制御するというというのがWebフロントエンドの基本的な開発です。
今回のGodotを使った開発も、結局のところ「どうやってゲーム画面を動かすか」というのが大事で、それらが連関して一つの作品が生まれます。画面をクリックしたり、キーボード操作したり、プレイヤー(ユーザー)のアクションに併せて挙動を変えるのが本質です。
大事なポイントとして、(もしアクションゲームを作るならば)物理をしっかり思い出す必要があります。重力、加速度、角速度、ベクトル、ラジアン、当たり判定……とはいえこれらは高校物理の範囲なのでたぶん簡単です。複雑なことをしようとしたら難しくなりそうですが……。
また、チュートリアルを進めるうえで面白かったのが、「シグナル」という概念をGodotでは扱っていることです。特定のイベントが発生したとき、ノードが他のノードにメッセージを発信できる仕組みがシグナルです。この機能によってノード同士の連携(関数呼び出し)が容易になっています。
この概念は、現在進行系で読んでいる『なるほどUnixプロセス』の「第16章 プロセスはシグナルを受信できる」にかなり近似していました。Unixにおけるプロセスが別のプロセスのシグナルを受信できるように、Godotにおいてはノードが別のノードのシグナルを受信できます。
そう考えるとGodotによるゲーム開発は、Unix的な考え方を持っていると言えるかもしれません。
まとめ
Godotを用いたゲーム開発はとても楽しいです。何が一番嬉しいかというと、ゲームエンジンがサクサク動いてストレスが無いのが嬉しい!*2 あとmacOSやLinuxでも完全に動くのが嬉しい!*3
Gitとの連携が簡単なのも良いです。また、実はGDScript*4とC#を同時に使うこともできちゃいます。すごいですね。
また別の機会に3Dのチュートリアルもやってみようと思います。