はじめに
お久しぶりです。長い間投稿してなかったですね。
なぜ投稿しないかというと、ここ一年会社で携わっている仕事はほとんどバックエンド開発なんで、ネタになれるものは基本会社内ノウハウなので、投稿としては適切な気がしないのです。決して私がサボったのではなかった…です。
さて、今回の投稿はフロントエンドでもバックエンドでもなく、そもそも WEB 開発と関係ないゲーム開発の話です。ではなぜゲームを開発したいなのか?と聞かれたら、「創作」がしたいんですよ、私。もちろん WEB 開発とやらも好きなんだけど、それは「モノづくり」なんで、「創作」とは違います。
どんなゲーム
とにかく 2D ゲームを作りたいですね。3D ゲームは開発規模が大きいので、初心者かつ少人数では無理です。
そして今回は練習として、スーパーマリオみたいなプラットフォームゲームを作ってみたいです。障害物、トラップ、敵、そしてシューティング、スキル。うむ、練習として完璧ではないか。
なぜ Godot
下記のゲームエンジンを調べたり実際に使ってみたりしました。
- Unreal:大規模な 3 Dゲーム(いわゆる AAA ゲーム)向けなので、2D のインディーゲームには向いてないだろう
- Unity:パワフルそして(制限付き)無料。が、動きが重い。そして複雑。あとC#は苦手
- love2d:軽いけど機能が少ない。プログラム以外の部分(スプライトとか)は別のツールが必要
- pygame:love2d と似てる。そして古い。公式サイトで掲載されているオープンソースゲームは何年前のもので参考にはなれない
- Godot:Unity みたいにパワフル、動きも早い。やや複雑だがゲームのすべてをこれ一個でできる
調べ結果、Godotを使うことにしました。今回は Godot4.3(2025/2 当時最新の安定バージョン)を使います。
プロジェクト立ち上げ
自分のプロジェクトを作成する前に、参考用のデモをダウンロードしましょう。下記のデモがよさそうです。キャラクター、レベル、トラップがそろっています。シューティングはないけど…それはあとで何とかなる。
次は自分のプロジェクトを新規作成し、デモのアセットを一部コピペします(主にレベル部分)。
キャラクターは自分で適当に描きます。我々の主人公かこれー
モンハンのリオレウスです!
(上手に描けました♪)
必要な画像をアセットフォルダーに入れて、ゲーム開発の準備が整いました。
レベルレイアウト
シーンの中に新しい子供ノードを追加し、その下で TileMapLayer ノードを作ります。
TileMapLayer を選んで、右側の Inspector で新しい TileSet を作ります。
適切な Tile Shape と Tile Size を設定します。
そしたら下の TileSet タブが現れ、画像を入れるのは可能になります。
画像をドラッグ・ドロップで入れたら、設定だれた Tile Size で画像が切り分けられます。
TileMap タブに行って、ツールバーで Paint を選んだらタイルをシーンに描けます。
適当にレベルレイアウトを行って、プラットフォームっぽいものができました。
おわりに
あれ?キャラクターはまだできてないのにいきなりおわりに?
いやー本当はできていたけれど、ここまで書くのに疲れたので、今回はレベルレイアウトぐらい。キャラクターとやらはまだ今度書こう。お疲れ様ですー