はじめまして。
ひっそりとゲーム開発・運営しながら飯食ってます。「がんたん」といいます。
今日から、少しずつ、ゲーム開発にまつわるエトセトラ(ゲームエンジン(主にGodot)のTIPSや備忘録、もしくはただの愚痴(笑)など)をこのブログにしたためていこうと思います。
以下、駄文です。
なぜ、このブログをはじめたか?
理由はいくつかあるんですが、まー大きなものは以下の3点ですね。
1.Godotを学び始めるにあたって、成果を目に見える形で残していきたい
この点に関しては、なにか物事を学び始める際には、しごく一般的なモチベーションかと思いますので、とくに説明不要ですよね。
2. 自分のゲーム開発に対するスタンスを客観視できるようにしておきたい
これは、最近とくに強く思っていることでして。
ゲームを開発していると、「やりたいことの実現方法が複数あって、どれでやろうか迷う」ことが多々あるのですが。
例えばチームでゲームを作るとなった時に、誰かに「今回、この実現方法をとる理由」を説明しなければならなくなった時、自分の中の考えが確固たるモノになっていないとあやふやな言葉でしか伝えられないんですよね。
で、「以前別のプロジェクトでこんな理由で、この実現方法以外ではダメだった」などのことを具体的に伝えられるようになると、そういう時ってけっこう楽で。
個人開発においても「過去に自分が考えたことや、試行錯誤した経験」をすぐ思い出せるようになっておくと、色んな場面で便利だよな〜、と思ったりしてまして。
単にメモ書きで残しておけばいいんですが、せっかくなら検索性の高いデータベースにしたくて、それならもう「ブログにしちゃえばいいじゃん」となったわけですね。
3. 最近アウトプットが減っているのでなんでもいいから発信していきたい
実は最近、子持ちエンジニアの仲間入りを果たしまして。
ここ1年近く、日々の仕事の時間を半分以下に減らした状態で生活をしておりました。
(というか、まだまだその状況続くかも……)
……で、お仕事関係などで人と会話することも減ってしまって。
元来、こういう駄文を書き連ねることが好きな人間なので、アウトプットが思うようにできていない現状に少しずつフラストレーションがたまってきておりました。
このフラストレーションの解消、というのもブログ開設の大きな目的の一つです。
なので、たまにゲーム開発となんの関係もないただの「日常」を記事にすることもあるかと思います。
私、ただキーボードを叩いて長文を打っているとそれだけでストレス解消になるような変人なんです。
なので、そういう記事が多いときには、お察しいただけると幸いです。
Godotを学び始める理由 – あるいは新たな「Hello world!」
Hello world!
……いい響きですよね〜。
プログラマなら誰もが馴染み深い文章かなと思います。
というのも、さまざまなプログラム言語の入門者向けテキストにおいて、最初に作るのが「”Hello world!”という文字列を画面に出力するプログラム」だったりするからです。
私もこれまで、様々な言語で「Hello world!」をしてきました。
Basic、C++、Java、JavaScript、Python、Ruby、PHP……
どの言語に初めて触れた時も、すごくワクワクしたことを覚えています。
これからどんなことが自分にできるようになるんだろう、とか。
いつかこの言語を使いこなせるようになったら、それでスーパーなアプリを作って億万長者か有名人になれるんじゃないか、とか。
私にとって、新しいプログラミング言語を学び始めるときというのは、いつも「ときめき」や「夢」を感じる瞬間であり、コンピュータに触れることの喜びを思い出させてくれる素敵な時間です。
しかしながら、幸か不幸か、直近の数年間は新しい言語を学ぶ必要性がなくなりまして。
というか単に、目の前にある仕事に追われていただけともいいますが。
もっぱらUnity上でC#をいじるか、サーバー(Firebase.Functions)上でTypeScriptをいじるかしか、してこない日々が続いていました。
……で、ですね。
やっぱり、ちょっと飽きがきちゃったんですよね。
ここらでガツンと、大きく、たくさん「お勉強」したいな〜と。
久しぶりに「”Hello world!”をログ出力するだけでテンションアゲアゲしたい!」となったわけです。
で、じゃあ何を勉強しようかと思ったときに、まっさきに思いついたのが「Godot」および「GDScript」なわけです。
なんでGodot?
主に以下3点の理由です!
- 完全無料!(寄付制)
- コミュニティが活発になってきてる!
- コンパイル時間が短い!
重要なのは「2」ですね。
何か困ったときにググったら大抵答えが見つかる、という理由で、これまで実質的に「Unity」か「UnrealEngine」しか選択肢がなかったゲームエンジンにおいて、近年は少しずつ「Godot」の普及率が高まり、ノウハウの蓄積もされてきているみたいです。
Itch.IOやSteamなどでも、Godotを採用したゲームがどんどんリリースされ始めていますからね。
3Dソフトで言うところの「Blender」に近い勢いを感じます。
そして「3. コンパイル時間が短い!」も個人的には超重要でして。
GDScriptがインタプリタであることが理由なのかなと思いますが、Unityに比べて、Godotのコンパイル時間(Editor上でPlayボタンを押してから実際にゲームが起動するまで)はとてつもなく短いです。
Unityでは、ちょっと規模の大きなプロジェクトになるとこの間、5〜10秒程度待つこともありますが、その時間がほぼ0になります。
これは超デカいです。
ほんの数秒とは言え、その虚無の時間を過ごすことは、プログラマにとってはめちゃくちゃストレスなんですよね。
頭の中ではぐるんぐるんに物事を考えていて、コードも次々にわいてきているのに、Unity上でコンパイルが始まるとそれが終わるまで出来ることは何もなく、ただぼーっと画面上のプログレスバーを観ていることしかできないんです。
はっきり言って、苦行です。
インタプリタ言語であることにはそれなりのデメリットもありますが(主に実行速度において)、もし本当にパフォーマンス的に重要な処理があるのなら、C#やC++とも共存できる、というあたりがGodotのさらなるよいところかなとも思います。
まー、このへん、まだ試したことないんで、ひょっとしたら共存させるのは茨の道なのかも知れませんが。
コミュニティが活発化しはじめているとはいえ、Unityほど情報が出回っていないという状況からして、自分が試行錯誤する過程をブログとして残しておくことには一定の価値が生ずるのかなという、目算もあります。
なんでnoteやQiitaでやらないの?
noteやQiitaは、ターゲットとなる読者層が明確で、かつ、記事のテーマも読者の期待に添ったもの(技術的なものなど)であることが求められます。
つまり、基本的に「読んだ人にとって役に立つ情報」を発信する場所なんだと思います。
noteやQiitaでは、テックブログ、と銘打っておいて、その中身は日々の出来事の憂さ晴らし、なんてことは許されないわけです。(多分)
でも、私がやりたいのは「思うがままに書いたテキストを発信していきたい」なんですよね。
テックブログと銘打っておきつつ、めちゃくちゃ日常のこととか、観た映画の感想とか、おもしろかったゲームの紹介とかも、バンバン書いていきたいわけです。
そう思ったときに、何を書いても誰にも迷惑がかからないところでひっそりとやっていこう、と思うようになりまして。
何かのキーワードでたまたま記事が検索に引っかかった人が、たまたま目を通してくれるような奇跡があるかも知れない……ぐらいの感じで、ゆるっと続けていきたいわけなんですよね。
……で、けっきょく、若干のランニングコストがかかることを織り込み済みで、ConoHa WING に契約して今に至るわけです。
いやはや、たくさん書き連ねてきましたが、けっきょくのところ、文章を書くのが好きな私にとって、このブログは「単なる趣味」という結論になりそうです。
というわけで、今後ともよろしく。
Godotについて書いていく、といいつつ、実はまだ私、公式サイトのチュートリアルすら着手してないぼんくらなので、実際に中身のある記事は今後書きためていくことになると思います。
マイペースで続けていきますので、もしまたこのブログのことを思い出すことがあったら、のぞきに来て頂けるとうれしく思います。
コメント