[過去ログ] 【軽量】godot engine【無料】 part3 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
766: 名前は開発中のものです。 [sage] 2024/07/01(月) 01:49:10.55 ID:bpyOLnVe(1/6) AAS
モルダー、あなた疲れているのよ。
ほあー、makeじゃないんだ、お疲れさん、ゆっくり寝てくれ
767: 名前は開発中のものです。 [sage] 2024/07/01(月) 07:50:16.29 ID:3HKv0EDG(4/9) AAS
乙あり
画像リンク
適当なベンチを移植してみた結果GDScriptはdoubleがないので比較ができないと言う事態に。うーん
(勝手にfloatにされてしまうので負荷にすらなってないらしい?)
単純にforループで5億回くらい加算するだけだとC++は早すぎて0ms(測定不能?)でベンチにならないし
かといって複雑だと読めないしなぁ 困った・・・
768: 名前は開発中のものです。 [sage] 2024/07/01(月) 13:30:03.28 ID:bpyOLnVe(2/6) AAS
バブルソートでいいんじゃね、N=10000とかでやれば
あとはGDExtentionと.NET側をfloatにしちゃうとか
物理演算ライブラリとか作ってないんだし精度いらないでしょ
769: 名前は開発中のものです。 [sage] 2024/07/01(月) 14:10:50.39 ID:3HKv0EDG(5/9) AAS
画像リンク
floatだと負荷にならないみたい 出来れば5〜10秒くらい掛かって欲しい
ソースコードはコピペなんでこれに何の意味があるのかはよく分からない
770: 名前は開発中のものです。 [sage] 2024/07/01(月) 15:09:53.43 ID:bpyOLnVe(3/6) AAS
円周率の近似式(グレゴリー・ライプニッツ級数)じゃね
コンパイラが最適化しちゃうからこの手の単純計算のループはほぼ意味ない計測になっちゃうと思う
実際のデバッグ画面でFPSの計測ができるレベルのベンチ作った方がいいと思うぞ
例えば、1億個のCharacterBody2Dインスタンスを重力で落下させるとかそういうの
それをGDExtension/.NET/GDScriptで比較してみればいい
771: 名前は開発中のものです。 [sage] 2024/07/01(月) 15:20:12.05 ID:VOEpRWLF(1) AAS
物理は物理で専用のエンジン使ってるとかだから比較する意味ないんじゃない?
772: 名前は開発中のものです。 [sage] 2024/07/01(月) 15:40:49.90 ID:bpyOLnVe(4/6) AAS
うん、だから物理サーバー使わなければいいんじゃないかな
773: 名前は開発中のものです。 [sage] 2024/07/01(月) 15:49:11.98 ID:3HKv0EDG(6/9) AAS
すげーな、ライプニッツの公式って書いてあった
コンパイラが賢くて空ループとか消しちゃうとかは風の噂に聞いた事があるような気がする
C#→GDScriptは出来るが流石にC++は忘れすぎててC++⇔C#が無理で困る
FPSを計るのは何か引っかかるんで手詰まりで諦めたらそれでいくようにしてみるよ
あとは出来る範囲で色々試してみる
そしてGDでbyteコードが使えないのでまた1つ没になった
774: 名前は開発中のものです。 [sage] 2024/07/01(月) 15:53:19.58 ID:bpyOLnVe(5/6) AAS
がんばーれー、よかったら結果もコミュニティで共有してぇー(懇願)
775: 名前は開発中のものです。 [sage] 2024/07/01(月) 18:14:31.27 ID:Mr+4kRr6(1/3) AAS
最適化が効かないやつなら2chからの伝統のトリップキー探索がよいのでは
単なるハッシュ総当りですが
776(1): 名前は開発中のものです。 [sage] 2024/07/01(月) 18:27:09.99 ID:3HKv0EDG(7/9) AAS
何か探してたらコンパイラの最適化を邪魔するらしい謎の変態C++があったのでやってみた
外部リンク:verifiedby.me
結果はご覧の有様だよ
画像リンク
1分くらい固まるから何かと思ったよorz どうしてこうなった
777: 名前は開発中のものです。 [sage] 2024/07/01(月) 18:39:53.63 ID:3HKv0EDG(8/9) AAS
GDExtention C++はなんでか知らんけど_readyに入れてもいきなりエディタ起動と同時に動き出すので
Runボタン押さなくても勝手に始まってしまう
なのでエディタ起動の負荷が乗っかってるのでちゃんと測れない点は考慮してね
キー入力で呼び出せるように出来ればいいんだけど全然やり方分かりません
778(1): 名前は開発中のものです。 [sage] 2024/07/01(月) 18:56:09.47 ID:Mr+4kRr6(2/3) AAS
>>776
かなり差がつきますね
やはりガチ勢はスクリプトだけだと限界が来るのか
779: 名前は開発中のものです。 [sage] 2024/07/01(月) 19:59:29.83 ID:3HKv0EDG(9/9) AAS
>>778
逆にいざという時は最速クラスの切り札があると考えればよいのではないかと
前にどなたかが話してたけどね
Unityも以前はUnityScriptというJavaScriptもどきだったものが後からC#が登場して入れ替わったけど
処理が遅い所はC++でプラグイン作ったりするのは一緒みたいだし必要に応じて織り交ぜていったらいいと思うだよ
780: 名前は開発中のものです。 [sage] 2024/07/01(月) 20:20:18.64 ID:Eif3//6J(1) AAS
処理速度が必要な部分のみC++を使うで良いが
最初から必要であると判っているならC++ネイティブなエンジンも良いと思う
自分のやってる事ではそんな状況にはならないがその時は国産のSiv3Dを試したい
781: 名前は開発中のものです。 [sage] 2024/07/01(月) 20:36:52.91 ID:bpyOLnVe(6/6) AAS
いいね! 25億回くらいループ回すときはGDExtensionでやろうっと
782: 名前は開発中のものです。 [sage] 2024/07/01(月) 20:57:06.09 ID:Mr+4kRr6(3/3) AAS
そこそこ簡単な処理だけど膨大な数をこなすのはゲームでは割とありがちなので、ピンポイント最適化すると気分良さそうですね
783: 名前は開発中のものです。 [sage] 2024/07/01(月) 21:36:11.36 ID:Dj6YjZN7(1) AAS
こういう人たちのおかげで自分でもエンジン快適に使えてるんだなあって
いつもありがとね
784: 名前は開発中のものです。 [sage] 2024/07/02(火) 07:51:54.63 ID:KWyZHQ68(1/4) AAS
GDscriptのfloatってgodot4.xでは64bit精度(C++での倍精度double相当)ではなかったですか?
オンラインマニュアル読むと内部的には64bit精度みたいに読めるのですけれど(解釈間違い?)
precisionオプション指定でgodot engineをリビルドする必要があるとか
32ビットARMやWebAssemblyやGPU関係で32ビット精度がデフォルトとか検索するほど新旧情報が錯綜してしまいます
785(1): 名前は開発中のものです。 [sage] 2024/07/02(火) 09:05:04.55 ID:b/scUpaU(1/4) AAS
外部リンク:godot-jp.github.io
それはintだよ つまりintはlong相当(64bit)、でもfloatは32bitでdoubleじゃない
floatは有効桁数が約7桁、doubleは有効桁数が約15〜16桁 桁違うからすぐわかるよ
786(2): 名前は開発中のものです。 [sage] 2024/07/02(火) 09:18:30.05 ID:b/scUpaU(2/4) AAS
いや間違いだった。doubleって書いてあった
外部リンク[html]:docs.godotengine.org
ただしデフォでは32bitでprecision=doubleオプションを有効にしたときdoubleになると書いてある
787: 名前は開発中のものです。 [sage] 2024/07/02(火) 09:30:57.57 ID:KWyZHQ68(2/4) AAS
>>785
ありがとうございます
そうなんですよね
あちらこちらで書かれている内容が交錯していて
外部リンク[html]:docs.godotengine.org
>float
>Stores real numbers, including decimals, using floating-point values. It is stored as a 64-bit value, equivalent to double in C++.
>Note: Currently, data structures such as Vector2, Vector3, and PackedFloat32Array store 32-bit single-precision float values.
godot engine docs のほうでは "stored as a 64-bit value, equivalent to double in C++" と書かれていたりしますので…😥
Vector2/3の各要素の方はリビルドしないと32bit精度なのは分かるのですが…
788: 名前は開発中のものです。 [sage] 2024/07/02(火) 09:44:30.59 ID:KWyZHQ68(3/4) AAS
>>786
はい
GDscript(4.x)のfloat自体は内部64bit精度でも
ただVector2/3構造体をはじめ各種内部関数がC++のfloatがデフォルトになっていると
GDscriptのfloatが64bit精度でもgodot engineの各所で暗黙の型変換によって32bit精度に落とされてしまうので
precision=doubleあたりでリビルドしないとまともに使えないかもしれない感じでしょうか
789: 名前は開発中のものです。 [sage] 2024/07/02(火) 10:09:08.37 ID:SYGJ/B8W(1) AAS
型は誤解なく明確に指定するサフィックスを大原則にしてもらえたらな
文字数増やす奴は絶対コロ助は当然いるし、省略時オプションさえあればいいだろとか異論噴出するのは分かってるけど
うっかり間違えた時のバグによる損失を無視できるほど省略記法にメリットあると思えなくてさ
みんなよく管理できてるよね設計上手兄貴しかいないのかな
790(1): 名前は開発中のものです。 [sage] 2024/07/02(火) 10:25:43.85 ID:b/scUpaU(3/4) AAS
>>786
外部リンク:godotengine.org
Note: This change has already been merged into the engine, however it is only available in the “doubles” version of the engine, so to take advantage of it, you will still have to build the engine yourself using the compile flag precision=double (formerly float=64).
ってなってるから自分でオプションを付けてビルドしてくれって事みたいだよ
shaderもdoubleにしないと効果ないみたいなので最初からdoubleがデフォだと無駄が多い気がする
上下前次1-新書関写板覧索設栞歴
あと 212 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.027s