ユーザ用ツール

サイト用ツール


2023:09:14

文書の過去の版を表示しています。


9/14日記

ゲーム開発

  • GodotEngineを少し弄る
  • 今日はGDExtensionを使ってみることにした。
  • GDExtensionは下記ページに追加方法のサンプルが存在
    https://docs.godotengine.org/en/stable/tutorials/scripting/gdextension/gdextension_cpp_example.html
  • これ見て思ったのは、「Miniscriptの変数バインドを書く場合、GDExtensionに管理するデータを含まないとコントロールできなくね?」という事。
  • 実装のサンプルになるソースコードはこれ。
    https://github.com/JoeStrout/miniscript/blob/master/MiniScript-cpp/src/ShellIntrinsics.cpp
  • static関数の関数ポインタ紐づけてスクリプトから関数がコールされたらデータを更新するんだけど、これを汎用的にするのは割とハードルが高い(専用設計にしないとコントロールが困難だから。少なくともプレイヤー・エネミー・ボスは仕組みが違うため設計を分割する必要がある)
  • あと、オブジェクトをコントロールするためには座標や角度、利用する画像番号等の情報を書き込む必要があるんだけど、そのためには動作しているオブジェクトごとに情報を管理していく必要があるため、その情報をどこに置くのかという話になる。
  • で、今の所の結論は「データ管理の仕組みもC++で書く必要がある(そこにスクリプトを紐付ける)」ということ。
  • 正直なところそこまでして強引に接続する(しかもバージョンごとのメンテが必要)よりかは、GDScriptで書くのが早いのでは?と思う。
  • あくまで開発効率化(Unityのバージョンをまたいでも利用可能、ロジックを触らずに更新可能)を目的としているので、逆に手間がかかるようであれば別の方法がいいのかなと考える。
2023/09/14.1694712682.txt.gz · 最終更新: 2023/09/15 02:31 by machiaworx