年末年始なのでGodotでゲームでも作ってみる 1日目

特に深い理由はないものの、今年の年末年始は久しぶりにゲームでも作ってみようかという気分になった。Godot Engineというフリーのゲームエンジンが気になっていたので、今回は休みの間気力が続く限りGodot Engineを試してみようと思う。

Godot Engineとは

Godot EngineはiOS / Android / Windows / macOS / HTML5…など様々な環境に対応したゲームを作ることができるゲーム開発環境で、無料で利用することができる。2D/3Dの両方に対応している。登場する概念や設計・思想はUnityやCocos2d、SpriteKitなどといった近年のゲームエンジン/フレームワークのそれに近しく、ドキュメントも充実しているので学習の材料として良さそうだったので、今回これを勉強していくことにした。

今日の目標

  • Godotをインストールする
  • Godotでサンプルプロジェクトを開いて実行してみる

新しいことを始めるときに、全容が見えないうちに高すぎる目標を掲げることは避けたい。初日は環境を構築してサンプルが無事に動いたら上出来ぐらいのテンションで行きたい。

Godotのインストール

公式サイトからGodotの最新版をインストールする。2021年12月29日現在の最新版は3.4.2。

DownloadページからGodotをダウンロードする。独自言語であるGDScriptが使えるStandard版とC#が使えるMono版がある。せっかくなので独自言語であるGDScriptを使うStandard版をインストールした。なおbrew caskを使ってもインストールできるようだ。Zipファイルを解凍して出てきたGodot.appをApplicationsディレクトリに移動するだけでインストールは完了。

起動してみたところ。「プロジェクトが一つもないけど、Asset Libraryにある公式のサンプルでもみてみる?」とのことなので「Open Asset Library」を開いて公式サンプルを見てみようと思う。

Asset LibraryのDemoのリストを見ていると、Skeleton2D DemoというシンプルそうなDemoがあったので、こちらを試してみよう。

詳細画面で「Download」を押すと、Asset Libraryからローカルにプロジェクトがダウンロードされる。

ダウンロードしたデモをインストールする場所を指定する。Project Pathには実在する空のフォルダのパスを指定する。

「Install & Edit」を選ぶと、指定した場所にプロジェクトがインストールされエディタが起動する。

エディタの右上にある「Play」を押すと、プロジェクトを実行して動作を試すことができる。

ゲームが起動した。矢印キーでキャラクターを操作できる。

ゲームを終了してエディタに戻ったら、「Quit to Project List」でプロジェクトを閉じてプロジェクト一覧画面に戻ろう。

プロジェクト一覧画面(Project Manager)に行くと、今開いていたSkeleton2D Demoプロジェクトがリストアップされている。別のデモを試したいときは画面上部のタブを「Asset Library Projects」に切り替えると、そこから先ほどのようにデモを検索してインストールすることができる。

まとめ

インストールはバイナリをzipからコピーするだけ、パスの設定なども不要で躓く点はなかった。サンプルプロジェクトも動いたことだし、今日はここまでにしておいてあとは体調を整えることにでも時間を使いたい。プログラマーはやはり体が資本。少し寒いがランニングにでも行こうと思う。アスファルトの上を走ると膝が痛くなるのが悩みだ。ずっと昔スポーツで膝の半月板を痛めたことの後遺症だと思っていたが、少し前にCTをとってみたらそれが原因ではなく姿勢の悪さ(骨盤の歪み)が原因だと言われた。実際、その後足を組むのをやめて、ストレッチの時間を増やしてから膝の痛みはかなり軽減した。そんなことを思い出した。明日は公式ドキュメントを読みながらプロジェクトを作ってみよう。

PythonとGolangのCSVの処理速度の違いを調べる

大量のデータをバッチ処理するようなプログラムを用意するときに、PythonとGolangのどちらを使うべきかいつも悩む。処理速度は悩むポイントの一つだ。近々大量のCSVを扱うプログラムを書く予定があったので、PythonとGolangでどの程度CSVの処理速度に違いがあるのか実験してみた。

実験は手元のiMac (Intel Core i5 3.4GHz / 40GB 2400MHz DDR4 RAM / Fusion Drive) で行った。

“PythonとGolangのCSVの処理速度の違いを調べる” の続きを読む

キャッチフレーズを自動生成するプログラムを考える

「弱みを握る寿司屋」みたいなやついっぱい教えて
こちらのスレッドを眺めていて、ここに登場するいくつかのフレーズに関しては、プログラム的に自動生成できるのではないかと思い、作り始めてみた。 “キャッチフレーズを自動生成するプログラムを考える” の続きを読む

Mac(Yosemite)上でWordPressのテーマを開発するための環境を作る

gulp + BrowserSync + rsyncで、快適にWordPressのテーマを開発 + デプロイする仕組みを作った。便宜上、Mac上での設定手順を書いたが、Mac固有のものはあまり使っていないのでUnix系のシステムなら同じ仕組みが使えると思う。 “Mac(Yosemite)上でWordPressのテーマを開発するための環境を作る” の続きを読む

MacBook Pro (Early 2011)のSSDをCrucial MX100に換装した

震災直前に買ったMacBook Pro (Early 2011)が、まだまだパフォーマンス的には現役で使えそうだったので、もう少し長く使うべく、新しいSSDに換装してみたらだいぶ快適になった。 “MacBook Pro (Early 2011)のSSDをCrucial MX100に換装した” の続きを読む

NSX-39(ポケットミク)で遊んでみる2(Objective-C準備編)

せっかくのリアルタイム歌唱合成ということなので、インタラクティブなシステムで使いたい。となると、レイテンシーの問題がでてくるのでJavaではなくObjective-Cで使いたい。Javaでプログラム上から操作する実験は成功したので、いよいよObjective-CからCoreMIDIを使って操作してみます。ちなみに、Objective-Cとはいえ今回はiOS系ではなくMacで実験してます。 “NSX-39(ポケットミク)で遊んでみる2(Objective-C準備編)” の続きを読む

NSX-39(ポケットミク)で遊んでみる1(まずはJava編)

nsx-39本屋にいったら「ポケットミク」という面白そうなものを売っていたので、買ってみた。USB経由でMIDI信号を送って、リアルタイム歌唱合成できるらしい。早速コードを書いていじってみる。 “NSX-39(ポケットミク)で遊んでみる1(まずはJava編)” の続きを読む