- ゲームエンジン製作スレ
328 : ◆GRGSIBERIA [sage]:2011/01/05(水) 00:12:18 ID:wGV4XEc1 - まあ、Luaがいい、AngelScriptがいい、Pythonがいい、OpenGLがいいと、
何もかも考えが別々になっているわけだけれども、 これがいざ自分の考えが採用されないとモチベが落ちることもある。 そうなると多くの人は面白くないだろうから、 出来る限り別々で作ったほうがいいんじゃないかな? 完全にモジュール化する仕組みを作って、 誰の我侭でも差し替えるだけで対応できるフレームワークを組めるなら別だけどね。 そのうちLispやSchemeのJITコンパイラを組み込む人とかいそうで面白そう。
|
- ゲームエンジン製作スレ
332 : ◆GRGSIBERIA [sage]:2011/01/05(水) 00:45:48 ID:wGV4XEc1 - >>330
MMDも1か月だか2か月ぐらいでできたわけだから、 Unrealみたいに超高機能、なんでも作れちゃうすげえエディタなんて 高望みさえしなければそれなりのものを作れるはず。
|
- ゲームエンジン製作スレ
338 : ◆GRGSIBERIA [sage]:2011/01/05(水) 01:49:07 ID:wGV4XEc1 - >>336
まあ、どの言語・スクリプトでも設計はほぼ同じになるだろうね。 スクリプトで記述できるとしたら、キャラクターの設計やAIの設計がメインだろうね。 GUI側でスクリプトの変数を読みだしてVSのプロパティ一覧みたいなのを表示できればいいんだけど。 コメントで操作に深く関わる部分とそうでない部分を判断出来たらかっこいいかも。 (位置プロパティ選択でマニピュレータ出たりとか、ローカル変数やバッファは表示しないとか)
|
- ゲームエンジン製作スレ
341 : ◆GRGSIBERIA [sage]:2011/01/05(水) 03:32:38 ID:wGV4XEc1 - スクリプトはPythonのPyPyがいいかな。
JITコンパイラってのも魅力的だし、BlenderやAutodesk製品で使い回しができそう。 Luaほど早くはないけど、少なくとも過去の資源は使い回せる。 >>339 C#はオブジェクト指向を前提として作られてるのと、 リアルタイム処理の点でGC使ってる時点で向いてない。 さらに値型と参照型の違いや解放のタイミングなんて覚えることがたくさんある。 デザイナの人たちが使う分には物凄く敷居が高すぎる。 (関数の宣言すらないスクリプトがほんとは一番なんだけどね。 デザイナはfor文でつまずくから、構文も簡単な法が望ましい)
|
- ゲームエンジン製作スレ
343 : ◆GRGSIBERIA [sage]:2011/01/05(水) 03:35:50 ID:wGV4XEc1 - >>339
訂正 2行目はいらない 偉い人が言ってたけど、教育は本当にできない人たちを底上げするのが目的。 優秀な人だけを救うのは教育とは言わないそうな。
|
- ゲームエンジン製作スレ
349 : ◆GRGSIBERIA [sage]:2011/01/05(水) 04:58:00 ID:wGV4XEc1 - >>344
せっかく意見をくれるのだから聞いておくけど、なぜそこまでC#を勧めるの? XNAだと箱●で動かせるから? >XNAプログラミングってC#で書くわけだが。お前はXNAでゲームが作れないと思ってんの? あれでゲームは作れるけど、普通に書こうとすればパフォーマンスは落ちるよ。 僕はC#よりC++のほうが経験も長いし、作りやすいし、速いから勧めてる。 特に肝心なところでSSE使えないのは痛い。 >そういう人向けのスクリプトならclassとか使う必要ないじゃん。Main関数の中身だけ書かせりゃいいじゃん。 usingとnamespace, class, 関数宣言を一切なしでできるんなら一考の価値はあると思う。 エンジニアの視点じゃなくて、本当にできない人の視点で立ってみてよ。 return 0;だけのプログラムに何行必要? >>345 エンジンにJITで形態素解析を載せるの? それなら素直に自作日本語スクリプトエンジンだけでもいいんじゃない? あと、スクリプトの組み込みは言語環境が違うんだからある程度の作業は付き物だよ。 そういう作業があっても、LuaやSquirrelがあるわけだから。
|
- ゲームエンジン製作スレ
351 : ◆GRGSIBERIA [sage]:2011/01/05(水) 05:34:54 ID:wGV4XEc1 - >>346
>そんなことは、ゲームエンジン側が勝手に判断すりゃいいじゃん。 スクリプト側で毎フレーム参照型がnewされたらかなりパフォーマンスが落ちるんじゃない? 1MB単位ぐらいでコレクトされるからかなり頻繁に起きるんじゃないの? >テクスチャーとかは解放してもキャラクターのhandle自体は >生きてて、また使うときは勝手にゲームエンジン側が読み込んでくれりゃいいじゃん。 それが突然起きるとフレームレート落ちるけど……。 ボトルネックがストレージの読み書きと、マザボのバス幅と転送速度だからあまりやらないほうがいいよ。 特にHDDはシーケンシャルにアクセスできないと速度がガタ落ちする。 (特に何も考えずに作ってしまうと箱●移植したときゲームにならない) >で、ゲームエンジンの外側(ゲームエンジンを使うプログラマおよびスクリプト側)では、 >一貫してそのhandleを使ってプログラムを書いていき、リソースの解放タイミングは一切意識しないのが >普通なんでないかい。 制約として参照型のnewが禁止になっていれば勝手にGC呼ばれずに済むけど、 もし勝手にガンガンforの2重ループでnewされたらGC呼ばれまくってパフォーマンス落とさない?
|
- ゲームエンジン製作スレ
370 : ◆GRGSIBERIA [sage]:2011/01/05(水) 14:40:13 ID:wGV4XEc1 - >>352
ちょっとずつだけど作ってるよ。DirectXのほうは。 XNAのほうはなぜかまたツール作ってる。 >>361 とりあえず、大部分の設計やGUIの設計などは頭の中に入ってる。 ただ、それをアウトプットするのはちょっと面倒くさいかな……。 >>363 >こう↓書くだけじゃん。 user_script = "my_ai.add(new TurnRight(5.0f, 1.0f)); //以下略"; dot演算子って何? newって何? fって何? なんで5じゃないの? my_aiっていつ出てきたの? addってどういうこと? >SSE使いたいところだけC++で書きなよ。 コンパイラ跨いじゃうじゃん。DLL化して、フォルダに投げて、設定弄るのって、 スクリプトを組み込むぐらい面倒臭くない? >正規表現文字置換でいいじゃん 曖昧表現になると物凄いパターンが増えるけど……。 そうなると形態素解析したほうが速くない?
|
- ゲームエンジン製作スレ
372 : ◆GRGSIBERIA [sage]:2011/01/05(水) 15:20:52 ID:wGV4XEc1 - 一応、阿呆があぼーん対象に入ってなかったから言っとくけど、
荒れる発言は見えないように設定してるから注意してね。 >>364 >そしたら遠くに行った建物のテクスチャーとか解放していかなきゃなんないじゃん。 別に解放しなくたっていいと思うけど。 どうせ他の建物でも使ってるでしょ? >テクスチャーを事前に全部読み込んでるとでも思ってんの? C#になったらそうでもしないとGC頻発で落ちるんじゃない? どの道、Flyweightな設計すればそこまで気にする必要は無いと思うけどね。 背景オブジェクトNormalMap付で250種類以上になったら考える必要があるかもしれない。 >>365 >だからそんな独自仕様のは嫌だって。誰も使いたくない。 日本語使うってことはそうなるんじゃないの? N回まわすで置換したいってことでしょ? >>367 >これってスクリプト言語の設計の問題じゃあないじゃん。ユーザー責任じゃん。 C#のほうがその程度は酷いんじゃない? GCって言う無視できないものがあるわけだから、それがC#の大きな欠点だと思うんだけど。 >そもそも君の話はスクリプトを書くのがグラフィックデザイナーなのか、 1か月前までニコニコ動画が趣味である程度、エンジンを触れるようになって、 もう少しAIやキャラクタの挙動に自由度を持たせたいな、と思った女性(キリッ >プロのプログラマなら、頻繁にnewするならobject poolingするだろ。 だったらC++のほうがいいんじゃない? Boostにクラスがあるわけだし。
|
- ゲームエンジン製作スレ
378 : ◆GRGSIBERIA [sage]:2011/01/05(水) 16:34:33 ID:wGV4XEc1 - >>373
いや、まあ、そうなんだけどね。 このままDirectX+Pythonでやるだろうし。 でも、C#+C#がいいって言う人もいるから、 なぜそう思ってんのかちょっと興味があってね。 とりあえず、仕様はどこから? >>374 透明あぼーんされるし、設定外すの面倒くさいから荒れるような内容書かないでね。 あと、なぜC#をそこまでして勧めるのか教えてほしいんだけど……。 >俺は「usingとnamespace, class, 関数宣言を一切なしでできる」 ということを>>363で示したわけだ。 それは単なる言葉の揚げ足取りなんじゃないかな? 別に反論してるわけじゃない。質問して説明を求めているだけだよ。 > user_script = "my_ai.add(new TurnRight(5.0f, 1.0f)); //以下略"; こういうような書き方になってデザイナーさんは悩まない? ってことを聞きたい。 >あと、あんたは、開発言語としてのC#の言語批判とスクリプト言語としてのC#の批判とがごっちゃになっている。 メインでC#、スクリプトでもC#なんだから、同列に扱わないと駄目じゃない? 両方同じ言語で開発できます、って言う理由で採択は難しいと思うよ。 C#だってC++やJavaと似たようなもんなんだし。
|
- ゲームエンジン製作スレ
379 : ◆GRGSIBERIA [sage]:2011/01/05(水) 16:54:54 ID:wGV4XEc1 - Wikiとかどうする? 僕ともう一人とあと誰かぐらいいると思うんだけど。
>>376 >曖昧表現サポートするだなんて言ってないじゃん。 それ、デザイナの人は理解する? 回すとまわすの違いについていちいち説明する? >てか、プロのグラフィックデザイナーと一緒に仕事すらしたことないんだろ? 一応、ハルヒのSS書いた時に挿絵書いて貰った。 学生対本職(!2D)の人だったから色々と大変だったけど。 >C#になったらって、C++と何がどう違うと思ってんの。 そもそも別の言語でしょ……。 メモリがGCで管理されてるわ、値型と参照型はobject型を継承してるわ、 C#のバージョンが上がるたびに新しい構文がサポートされるわ、もはやかなり別の言語じゃん。 >そもそもテクスチャーの解放でなんでGCが頻発するんだよ。 参照型がnewされたときにGC呼ばれる可能性があるじゃん。 要は、参照型のnewを制御すればいいだけの話だけど、 GCの発生タイミングがわからないんじゃ、deleteし忘れを探すより難しくない?
|
- ゲームエンジン製作スレ
380 : ◆GRGSIBERIA [sage]:2011/01/05(水) 17:10:47 ID:wGV4XEc1 - >>377
>なんでわざわざobject poolingのためだけにBoost使わなきゃならんの。 自作するより速いし使いやすいから。 >object poolingって事前にオブジェクト確保しといてそれ使うだけじゃん。 それ、普通にnewしてるだけじゃね? 配置newやキャストを使ったメモリ空間上のメモリ空間のことじゃないの? >てか、あんた、C#まともに使えてないでしょ。どう見ても初心者レベル以下だよ。 開発経験はC++のほうが長いよ。 何か、XNAで作るって言うから使ってみてるだけ。 最初は楽だと思ったけどメモリ管理はしんどい。
|
- ゲームエンジン製作スレ
386 : ◆GRGSIBERIA [sage]:2011/01/05(水) 20:41:47 ID:wGV4XEc1 - アセット管理じゃね?
|