GDscriptを無料で学ぶ!Learn GDScript From Zeroを使ってみた正直な感想。

GDScript
この記事は約6分で読めます。

こんにちは。しゅみぶろぐです。

Godotの独自言語であるGDScriptの学習を始める最初のステップにふさわしい神サイトを見つけました。

『Learn GDScript From Zero app』

Learn to Code From Zero with Godot
Make your family and friends proud. Learn skills in high demand by creating fun toys and games. Finally become a game de…

というサイトです。無料で初心者向けに日本語でわかりやすく、GDscriptの基礎を学ぶことができます。

今回は実際に使って感じたことを共有していきたいと思います。

GDScriptって?

GDScriptはGodotというゲーム開発エンジンで使われる独自のプログラミング言語です。

Godot Engine – 無料でオープンソースの2D・3Dゲームエンジン
Godot provides a huge set of common tools, so you can just focus on making your game without reinventing the wheel.

独自言語と聞くと「ゲーム開発のためだけに新しい言語は…」という方も多くいると思います。

しかしこの言語にはその不安を払しょくしてくれる大きな特徴があります。

GDScript ≒ Python !!!!!

関数の定義の方法が def ではなく func になるなど一部違う場所はありますが、構造や考え方はPython(こっちも基礎しか知らないが)とおおかた同じように感じます。

「ゲーム開発のためだけ」の言語ではなく、Pythonなどほかの言語にも生かせるため学んで損はないはずです。

Learn GDScript From Zeroとは??どんなサイト?

Godotに特化した教育コミュニティ「GDquest」が初心者に向けて公開しているアプリ(ブラウザ)です。

Learn to Code From Zero with Godot
Make your family and friends proud. Learn skills in high demand by creating fun toys and games. Finally become a game de…

誰もが無料で利用することができ、僕自身もGDScriptの基礎を学ぶのに活用しました。

学習→演習の繰り返しで、視覚的にも論理的にもわかりやすく理解することができました。

Learn GDScript From Zeroの実際の画面

プログラミングとかコードとかがよくわからないけれど、コードを実際に書いてゲームを作ってみたい。という方にはとてもおすすめできるアプリです。

また、Pythonなどを触っている方は少し簡単に感じてしまうかもしれませんが、GDScriptならではの機能や特色もあるため時間に余裕のある場合はやっておくとよいと思います。

所要時間

僕が一通りこのサイトを利用してかかった時間は約3~4時間でした。

Pythonの基礎に触れたことがあったため、少し早く終わったかもしれません。

プログラミング言語というものに初めて触れるという方も5~6時間もあれば終わると思います。

基礎を一瞬でマスターできます。

良い点

初心者に優しい

とにかく初心者に優しいつくりになっています。プログラミングがどんなものなのか、コードを書く時の考え方なども細かく書いてあり、初心者の僕の頭にもわかりやすく入ってきました。

GDScriptだけでなく、幅広くプログラミングの学習に役立つと思います。

実際にコードを書きながら学習できる

全部で27個もの単元に分かれていて、各単元ごと1,2個の演習問題(実際にコードを書く問題)があります。

学んだことをすぐにアウトプットできるため、理解を深めるだけでなく記憶への定着も期待できます。

無料

正直これひとつだけとっても優勝です。

無料は正義。これに尽きます。

ゲーム感覚で楽しめる

上の画像のように、プログラムがゲームにどのようにかかわっているのかを学習できる単元もあります。

ゲーム開発にかかわっている気分になって楽しく取り組むことができました。

悪い点

日本語訳が不完全

このアプリの唯一の欠点はここだと思います。

全体の約93%が翻訳されていますが、その7%も厄介です。
ときどきコードまでも翻訳されてしまっています笑

例えば、上のような文字列のコードが

のように思いっきり日本語になっていたりします。読みづらいです。

たまにこんなこともあったり…。わかるか。

つまずいたところ

僕が紹介したサイトを使っている最中につまずいたことを共有しておきます。

まだ学習に取り組んでいない、GDScriptに挑戦するか悩んでいる、という方は読み飛ばしていただいて構いません。

ERROR Function “関数名” not found in base self. というエラー

このエラーは、このサイトの仕組みを少し知っておかないとつまずきやすいと思います。

実際、こんなミスをしました。

threeだから複数形は当然だろっていうのは言わないでください…。

「自分で定義する関数名は、ルールにのっとれば何でもよいはずなのに…。」

実際そうなんですが、このサイトの特性上、

「出力」を押すと自動的に裏で draw_three_squares()関数を呼び出している

状態にあります。

よってdraw_three_square()として定義してしまうと、サイト側がその関数を呼び出せずにエラーを吐いてしまうわけです。

lerp()関数とは

線形補間?補間係数?難しい言葉ばかりで理解が難しかった部分をかみ砕いて共有します。

ざっくりいうと、lerp()関数は一点から一点へとどんなスピードで動かすかを指定する関数です。

3つの引数からなります。それぞれ、

を示します。はい、思いましたね。

「なめらかさってなに??」

と。僕もです。

おそらくここを理解してしまえば、lerp()関数の山場は乗り切ったといえると思います。

言葉にすると、「A:出発地点からB:到着地点まで1フレームあたりCの割合で進む」処理です。

例えば…

leap(0, 100, 0.1)

と数値を代入すると、内部では1フレームごとに

前のフレームでの位置 + (到着地点 − 前のフレームでの位置) × C(進む割合)前のフレームでの位置 + ( 到着地点 - 前のフレームでの位置 ) × C(進む割合)

のような計算をしていて、これをまとめると以下の表のようになります。

フレーム位置計算式
00
1100 + ( 100 – 0 ) * 0.1 = 10
21910 + ( 100 – 10 ) * 0.1 = 19
327.119 + ( 100 – 19 ) * 0.1 = 27.1
・・・・・・
∞(理論上)100100

実際にこの計算をフレームごとに∞回繰り返すことは不可能ですので、「おそらく現在地が99.99になったら100とする」のような便宜的な処理が行われていると考えられます。

よって C = 0.1 であれば、到着地点100に近づくにつれて減速する動きを表現することができます。

今回のこのコードは、FPS60とすると delta = 1.0(s) / 60(fps) ≒ 0.0167 であるので、Cにあたる値は C = 2 * delta = 2 * 0.0167 ≒ 0.0334 進む割合 3.3%で先ほど C = 0.1 で考えた表と同じような動きをしていることがわかります。

3 / 2 = 1 になる?

pythonに軽く触れていたためか、この出力結果に違和感を持ちました。

調べてみるとそこまで難しいことではなく、GDScriptでは

整数(int)同士の計算だと、整数型(int)で返されてしまうみたいです。

逆に言うと、一つでも浮動小数点数(float)が計算中にあれば結果は浮動小数点数(float)として帰ってきます。

print( 3.0 / 2 ) #出力:1.5
print( 3.0 / 2.0 ) #出力:1.5

まとめ

『Learn GDScript From Zero app』はGDScriptを学びたい人だけでなく、プログラミング全般を学びたいという人にもおすすめできるサイト。

●良い点
・初心者に優しい
・実際にコードを書きながら学習できる
・無料
・ゲーム感覚で楽しめる

●悪い点
・日本語訳が不完全(翻訳率93%)

ほかの言語と構造が似ているのは本当にありがたいです(将来の役にも立ちそう…)。

みなさんもこのサイトを通してGDScriptを学んでみてください!!

ここまで読んでいただきありがとうございました。

コメント

タイトルとURLをコピーしました