[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/27 05:23 / Filesize : 279 KB / Number-of Response : 1018
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ゲームプログラムなら俺に聞け32



1 名前:デフォルトの名無しさん mailto:sageteoff [2015/09/08(火) 15:26:10.41 ID:x6IFoIJM.net]
前スレ
peace.2ch.net/test/read.cgi/tech/1422445064/

331 名前:324 mailto:sage [2015/10/17(土) 00:32:37.34 ID:XvNYZLvx.net]
当然、纏めるべく所は纏めたりしますし、
多態やコンテナやループと言った武器も使いますよ

しかし、基本は>>324のように処理順が明確で分かりやすいコードが
原点であり終着点と言うことです
手続き型言語は元々そういう風に作られているわけです
その良さをなるべく損なわないように設計すべきで、腕の見せ所ですね

332 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/17(土) 03:07:24.99 ID:pxHuMFMx.net]
つ _beginthread(proc1, 0, (void*)0);
つ _beginthread(proc2, 0, (void*)0);
つ _beginthread(proc3, 0, (void*)0);

333 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 04:20:40.23 ID:PNTEfFZh.net]
結局のところそのレスの通りなんだけど、それを実際のコードで具体的にどうするかって話だ。
議論に参加してる人たちは基本的に皆そこを目指してるだろ。
ただ実際のコードでどうやるのが一番いいかって話をしてて、
今日からすぐに使える設計方針!みたいなテンプレート化された状態まで持っていって
共有したいんだよ。

ところで、キューイングなしで>>324みたいな書き方は辛いんじゃないかと言う話だ。
処理だとややこしいから他のものに例えていうなら、描画順みたいなものだ。
深度バッファがない2D時代のゲームを考えてみれば分かりやすい。
この場合、必ずソートして奥から描画

334 名前:キることになる。
そこで>>324みたいに描画処理の順番を固定して書いてしまうとどうにもならなくなる。
処理も同じ。
[]
[ここ壊れてます]

335 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 19:41:25.70 ID:XvNYZLvx.net]
>>327

>処理だとややこしいから他のものに例えていうなら、描画順みたいなものだ。

Zソートのようなものは面倒で、
そんなもののせいでメインの処理がグチャグチャになったらいやだから
描画エンジンを作るか、出来合いのもを使うかして、とにかく外部に追い出す
こうすれば、Zソートのように順番が頻繁に入れ替わる鬱陶しい部分に
メインの処理が影響されなくなるし、被害を最小限にとどめることが出来る
機能単位にコンパクトにまとまるので、描画処理自体も分かりやすくなる

他の処理も同じで、順番が入れ替わるようなイレギュラーな処理は、
個別に対応して外部に追いやれば良く、イレギュラーな処理に合わせて全体が引っ張られる必要は無い
そういうイレギュラーな処理の理屈を全体に拡張して有りがたがっているのはまるで子供
本来であれば、処理の順番が動的なことは、プログラマにとって、
嬉しいことではないのに、2chに嬉しそうに書き込むバカさ加減

336 名前:uy = ruby^rb ◆e6.oHu1j.o mailto:sage [2015/10/18(日) 11:19:07.96 ID:WvPHJe2x.net]
カスはゲ製作だけやろうとしてOS製作やった事ないから
最も良い見本である「OSで使うのタスクシステム」を知らないし組めないから雑魚
OSで使うタスクシステムをまず実装してゲームで使えば機能的に200%くらい満たしてるから
タスクシステムをどう作ったら良いかわかんないレベルの奴はとりあえずOS作っとけばいいのになんでやんないの?バカなの?
本も買わずに2chでレス乞食して必要最低限の労力しかかけずにプログラミングやろうとしてるから永久初心者なんだよゴミカス

337 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 11:21:11.73 ID:dpFhGQVJ.net]
どんだけ人に嫌われたいんだよ

338 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 12:02:48.95 ID:CiaU0ajC.net]
アプリ作る度にOSのカーネルを編集するわけにはいかないから
そのための仕組みがOSには用意されている
マルチプロセスやらプロセス間通信やらウィンドウシステムやらetc
OSをコンパイルしてリリースした後からもアプリがどんどん追加されるので
そういう仕組みにせざるを得ない

一方で、ゲームの場合はゲームのカーネルに相当する
ゲームの「メインループ」を編集することが可能なので、こういった仕組みは必要ない
ゲームをコンパイルしてリリースした後からも機能がどんどん追加されるようなことは無い(MODなどは除く)
機能を追加するたびに再コンパイルをすれば良い話 リリース前なのだからな

OSがああなってるのは、役目上、しかたなくああなっているのであって
同じ立場に無い、通常アプリを作るのに、OS真似をする必要性はまるで無い
何が何のためにそうなっているのか理解せずに必要も無いのに表面だけ真似するバカさ加減

339 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 12:12:40.32 ID:CiaU0ajC.net]
加えてOSの場合は、各アプリが他のアプリと協調して動作すると言うことはあまり無い
大体は適当に自分自分で動いている

一方でゲームの場合はゲームのオブジェクト同士が協調して動作しなければならない
処理の順番も非常に重要になる
OSのプロセススケジューリングのように、適当に決めてよいわけではないし、
順番その物が重要で意味を持っている

このようにOSとゲームでは持っている性質が全然違う
何が何の目的でそうなっているのか良く考え、技術は適切に使う必要が有る
適当に表面だけパクって、適切でない場面に適用しては、逆効果



340 名前:uy ◆e6.oHu1j.o [2015/10/19(月) 04:02:26.65 ID:3gr1qLW4.net]
このスレの殆どの人は君みたいにタスクシステムすら組めないで躓いてるわけじゃないと思う
これは「話し合い」ではなく、
君が一方的にこのスレから「知識を貰う」だけのなのに
持論振

341 名前:りかざして色んなレスを無視してるから君のスキルは一向に向上しないのだよ []
[ここ壊れてます]

342 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/19(月) 05:51:34.42 ID:t0WBOgSD.net]
つ _beginthread();

343 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/19(月) 12:20:24.67 ID:t0WBOgSD.net]
マルチスレッドが使えると、メインループから余計なものを外に出せて便利w
プログラムの作り方が楽になるw

344 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/20(火) 17:55:23.42 ID:2gGD4Vj3.net]
ごきげんようw

VC++ & DarkGDK & マルチスレッドプログラミング
jbbs.shitaraba.net/bbs/read.cgi/computer/44261/1445330773/l100

345 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 20:07:58.18 ID:UXx1dCB0.net]
uyよく生きてたな

346 名前:デフォルトの名無しさん [2015/10/20(火) 20:09:53.38 ID:j6ekWND7.net]
ゲームによくある最初のローディング画面ってお前らどう実装してる?

347 名前:デフォルトの名無しさん [2015/10/20(火) 21:01:47.42 ID:whPriXxP.net]
>>338
アニメーションは面倒だから固定。
固定だと読み込みの間ゲームループが回らなくても問題ない。

348 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 21:35:29.58 ID:yIzgiLYV.net]
プログレスバー系は別スレッド

349 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 23:28:47.88 ID:ffVke2Wd.net]
>>>333
ゲーム作るのにOSを参考にするバカは黙ってろ



350 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/21(水) 02:23:26.43 ID:tyE1KJUT.net]
[MSX大国] VC++2008Expr+DarkGDKでお手軽ゲーム開発 [転載禁止](c)2ch.net
wktk.2ch.net/test/read.cgi/ghard/1445274061/

サンプルプログラム(VC++、DarkGDK、マルチスレッド、217KB)
upload.saloon.jp/src/up19718.zip

…ってな訳で、さっそくDarkGDK付録のサンプルプログラムをマルチスレッド用に改変。

ガジェットのCPUメーターでスレッド毎の動きを見ると分かりやすい。

ダウンロードしたファイルをダブルクリックすると、実行ファイルが出てくるので、迷わずダブルクリックすればよいw

ちなみにまだスレッド調停がうまく行かないので途中で強制的に終わる場合ありw

画面上にデバッグ用の表示が出てくるが、無視してよしw

351 名前:uy ◆e6.oHu1j.o [2015/10/21(水) 06:22:05.99 ID:bkabQcdE.net]
>>337
ム板にいない間いろいろあったよ
俺に殺人予告出してきた奴を起訴したり
別件で自分が裁判所連れてかれそうになったり(ぼくはわるくない)
20代半ばにしてはいろいろ経験してると思う
今はフリーで生きつつOSSにちょっかい出す、イラストを描く、ピアノをする、園芸、
をして生きています

352 名前:uy ◆e6.oHu1j.o [2015/10/21(水) 06:40:37.46 ID:bkabQcdE.net]
>>342
https://www.youtube.com/watch?v=UsPtHvtId6M

353 名前:デフォルトの名無しさん [2015/10/21(水) 22:04:59.51 ID:D5rbjCRs.net]
JavaFXの自由度の高さに惚れ惚れする

354 名前:デフォルトの名無しさん [2015/10/22(木) 08:58:52.04 ID:KLEdlWO7.net]
しょうがないにゃあ・・・

355 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/22(木) 11:49:00.37 ID:8yp8/3aU.net]
VC++、DarkGDK、マルチスレッドの時代。(アハ

356 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 14:50:23.82 ID:edFJ8JER.net]
それはJavaとは違うのか?
Javaはかなり運と暗記を要求されるからキツい。
何かやろうとして調べて部分的なサンプルコード見つけても、
それを使うために何をimportする必要があるのかを調べるのにその数倍の時間がかかる。
それを調べてもなかなか出てこないから運が絡むレベルだし、暗記しないと次同じことをやろうとしたときにまた同じだけ時間を食う。
Javaはもう10年以上やってるからコーディング自体はプロを越えるレベルなんだが、
やっぱりそういうのを調べるところで時間がめちゃくちゃかかる。
Javaを開発してる人たちはそういうところも何とかすればいいと思うけど、
10年以上改善しないところを見ると本物の馬鹿なんだろうかと思う。
JavaFXがその辺りまともなら移行したい。

357 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 16:23:44.23 ID:Pb0K3LIr.net]
自動インポート対応しているIDE使えばそんな悩み無いのに

358 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 17:56:59.71 ID:X3Sa92mb.net]
>>348
プロを越えるコーディングがどういったものか気になる、詳しく説明してほしい。

できれば、プロならこうだが、それを越える自分はこうする、というような比較形式で。

359 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 18:05:58.97 ID:CeSwqlxw.net]
そこ突っ込んじゃあかんw



360 名前:デフォルトの名無しさん [2015/10/22(木) 21:39:10.20 ID:0VXww4cs.net]
>>348
運と暗記w

361 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 01:34:02.06 ID:58Yf5iq6.net]
これ全部C++のほうが当てはまるよね。
Javaは(外から持ってくるならなにをimportするか調べなきゃいけない過程は変わらないけど)同パッケージ内ならimportの記述いらないし、暗記量も肥大化したC++のが多い。
Javaの未定義動作関連は知らないが、C++は未定義動作はタイムトラベルを引き起こすから、そういう意味では運がマジで絡む(そんなクソコードは窓から投げ捨てるけど)。

362 名前:デフォルトの名無しさん [2015/10/23(金) 03:31:54.40 ID:Rrtmqjxl.net]
ここはほんとガラパゴスだな
いつまでC++やらjava触ってんだか・・・・
お前らが作っているものの10割がスクリプト言語の処理速度で間に合うものしかないと思うよ

363 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/23(金) 04:03:36.61 ID:OU8gZV4Y.net]
そっそっ♪、そこでCUDAの登場w

364 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/23(金) 04:06:46.76 ID:OU8gZV4Y.net]
CUDA 7.5 Downloads
https://developer.nvidia.com/cuda-downloads

365 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 04:39:40.71 ID:Rrtmqjxl.net]
NG

366 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/23(金) 05:00:22.10 ID:OU8gZV4Y.net]
忘れちゃいけないインラインアセンブルw

インライン アセンブラー
https://msdn.microsoft.com/ja-jp/library/4ks26t93.aspx

367 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/23(金) 05:04:20.61 ID:OU8gZV4Y.net]
VC++、DarkGDK、マルチスレッド、ASM、CUDAの時代。(アハ

368 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 10:21:48.87 ID:Y+ldLGQ7.net]
>>354
スペルミスを10割拾ってくれるスクリプトをよこせ

369 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 10:54:50.56 ID:Rrtmqjxl.net]
頻繁にスペルミスでバグ混ぜる雑魚はプログラミングやめろよ

そんなの年に1回もないけど



370 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 12:43:11.90 ID:Y+ldLGQ7.net]
自分のソースしか触らない雑魚がプログラミング語るなよ

371 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/23(金) 14:20:20.28 ID:OU8gZV4Y.net]
やっぱアセンブラ速いなw
単純ループで7倍以上差が出てるw

なるほどな…w”

       for(int j=0; j<1000000000; j++);
01152989 mov dword ptr [j], 0
01152990 jmp Loop1+1Bh (115299Bh)
01152992 mov eax,dword ptr [j]
01152995 add eax,1
01152998 mov dword ptr [j], eax
0115299B cmp dword ptr [j], 3B9ACA00h
011529A2 jge Loop1+26h (11529A6h) ;ループ外アドレスw
011529A4 jmp Loop1+12h (1152992h)

       __asm {
           MOV   ECX, 0
       LP1:  INC   ECX
           CMP   ECX, 1000000000
           JL    LP1
       }
00E52990 mov  ecx, 0
00E52995 inc   ecx
00E52996 cmp  ecx, 3B9ACA00h
00E5299C jl   LP1 (0E52995h)

始めは結果を疑ってソース見てたけど、逆アセンブルリスト見て納得w

372 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/23(金) 14:27:53.37 ID:OU8gZV4Y.net]
コンパイル→逆アセンブルリストチェックでまだまだ最適化は可能だなw

373 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 15:01:12.02 ID:YcURajHy.net]
ループ処理はデクリメントしましょうね

374 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/23(金) 15:59:21.47 ID:OU8gZV4Y.net]
同じ処理をしましょうね(ギャハハ

375 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/23(金) 16:19:13.81 ID:OU8gZV4Y.net]
VC++、DarkGDK、マルチスレッド、ASM、CUDAの時代。(アハ

376 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/23(金) 19:09:14.41 ID:OU8gZV4Y.net]
試しに実数は…ちゃんとコプロセッサ命令使ってたw
メモリ変数になるからなるべく整数型に置き換えたほうがいいかもなw

for(float k=1.23456789f; k<123456789.012f; k+=9.876543210f);
0025299F FLD     dword ptr [__real@3f9e0652 (3C4E5Ch)]
002529A5 FSTP    dword ptr [k]
002529A8 JMP    LP1+23h (2529B6h)
002529AA FLD     dword ptr [k]
002529AD FADD    qword ptr [__real@4023c0ca40000000 (3C4E50h)]
002529B3 FSTP    dword ptr [k]
002529B6 FLD     dword ptr [k]
002529B9 FCOMP  qword ptr [__real@419d6f3460000000 (3C4E40h)]
002529BF FNSTSW  AX
002529C1 TEST    AH, 5
002529C4 JP     LP1+35h (2529C8h)
002529C6 JMP    LP1+17h (2529AAh)

377 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 19:39:46.75 ID:k/FIqtBz.net]
>>354
HSPでは動作が遅すぎてゲームの進行に支障が出るレベルだったものが
C/C++に替えたら爆速になってゲームとして成立するようになったのを今でも忘れない
ラッパー作ってあるからコンパイルが必要な点以外開発速度にあまり差はない

378 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/23(金) 19:51:43.98 ID:OU8gZV4Y.net]
インテルのマニュアル見てたらCMOVcc(条件MOV命令)なんて付いてたんだなw

379 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/23(金) 20:04:12.88 ID:OU8gZV4Y.net]
CMOVcc r, r/mのみ指定。
使い道次第かw



380 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/23(金) 20:26:34.71 ID:OU8gZV4Y.net]
FPUの振り分けと、YMMを使いこなせるかどうか…あ、AVX付いてないCPUはダメかw
当面はFPUの振り分けだなw

381 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 20:30:09.28 ID:YcURajHy.net]
NGにしたんだけど
Jane StyleでNGってどう設定すんの?

382 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/23(金) 20:31:36.61 ID:OU8gZV4Y.net]
やっぱアセンブラ面白いなwwww”
AMDerどうなるんだろう?w

383 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 20:33:02.43 ID:YcURajHy.net]
おお、消えた

384 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 00:10:13.53 ID:/G743cuO.net]
>>362
ゴミコードのメンテに日々明け暮れる社畜にはならないでよかったと思う
typoのバグあるようなソースコードは自分のほうには周ってきませんね

385 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/24(土) 00:12:57.55 ID:gD/wAD2L.net]
条件MOVの使い道でも考えるとするかw

386 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/24(土) 00:14:27.42 ID:gD/wAD2L.net]
VC++、DarkGDK、マルチスレッド、ASM、CUDAの時代。(アハ

387 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 04:38:55.79 ID:/G743cuO.net]
速度問題解消以外でマルチスレッド使って
「ソースコードがわかりやすくなる」事例があるんですか?

プログレスバーにしたって普段使ってるタスクシステムが洗練されているならば
ロードタスクとプログレスバータスクの二つを作ってrunさせとくだけでいい

388 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/24(土) 04:59:35.88 ID:gD/wAD2L.net]
>>379
とりあえずおまえには教えないw
金払って専門学校でも大学でも行けw

389 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 10:33:20.50 ID:OU7qLC86.net]
分かりやすくなるわけではないが

ロードタスクの処理が長ければフレーム落ちするから、それを防ぐために
マルチスレッドを使う必要が出てくるんじゃないかな



390 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 11:12:44.77 ID:jc/5RlIu.net]
>>379
毎フレーム update() を呼ぶような作りだと、その中身はステートマシンになるだろう。
状態遷移が単純な場合には、手続き的に書いた方が圧倒的に分かりやすくなる。
例えば囲碁や将棋なら、ゲーム部分は手続き的に書いて、表示部分だけリアルタイムにするだろう。
もちろん、思考ルーチンだけ別スレッドにして、手順管理などのゲーム部分をタスクシステムでやっても構わない。

391 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 12:18:44.22 ID:lWtQPbiw.net]
ロードなんかはマルチスレッドを使ったほうが簡単だろうな
毎フレーム制御を返す方法だと、そもそものディスクアクセス自体を
ノンブロックにしなければならないし、その時点でスレッドを使うより面倒だ
使用するライブラリがノンブロッキングに対応していないかも知れないしな
当然freadはブロックするから使えない 後他、例えば昔で言うところの
D3DXCreateTextureFromFile
は、ブロッキングするから使用できない
自前でReadFileで謎のOVERLAPPED構造体を使った非同期読み込みをして
D3DXCreateTextureFromMemoryに渡してあげるとかしなければならない

392 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 12:23:13.39 ID:lWtQPbiw.net]
ブロッキングでディスクアクセスをするが
一回を細かい単位にして、毎フレーム制御を返すようにしたとしても
どれぐらいロードの処理をしたら制御を返すかというのが難しい
経過時間を計る方法は面倒だし
大体の目分量でするとロードが無駄に長くなるし
良いことないね
スレッドでやったほうが良い

393 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 12:59:46.51 ID:lWtQPbiw.net]
例えば60FPSのゲームであれば16ms程度の持ち時間になるが
ちょうど時間にして16ms程度だけロード処理をして制御を返す
というメカニズムを書くのは面倒だ
ロードキューのようなものを用意しておいて
前から順番にロードをしていき16ms経ちそうになったら制御を返す、とかね
こんなものを作るぐらいだったらスレッドを使ったほうがはるかに簡単だし
時間に無駄がないのでロードが早く終わる

394 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 13:46:30.86 ID:KcvUuzt9.net]
ネットワーク接続処理も同じだね

395 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 02:34:47.68 ID:IGihUR6P.net]
Ajaxは非同期だね

ファイルの読み込みなどの処理を委譲して、
その処理が終わったら、
コールバック関数を呼んでもらう

396 名前:uy ◆QLvratmkOY mailto:sage [2015/10/25(日) 03:58:57.15 ID:Pm66QtwE.net]
マママママルチスレッドwwwwwwwwwww

Fiberの使い方知らない情弱いる?w

397 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 09:23:34.71 ID:k5OqwX9E.net]
初級者ははしゃいで使いたがり
中級者は痛い目にあって嫌悪し
上級者はよく理解し慎重に検討した上で活用する

もちろん周回遅れは黙ってNGされる

398 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/25(日) 11:56:23.55 ID:WiHIlufW.net]
>>389
それって、資格ぐらい取ってから言わなきゃな(大爆笑)

399 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 16:24:41.92 ID:l/fL5071.net]
Fiberなんか使ったところで協調型のマルチスレッドだから意味ない
60FPSの場合16ms以内に自分から制御を返さなければならないことには変わりないからな
16ms以内で制御を返す、というのがなかなかの難関だ
余裕を見て10msで制御を返すようにするとアイドル時間が増えてロード時間が長くなる
スレッドを使うと何も考えずに済む



400 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 17:58:29.83 ID:vAKl7Lz8.net]
>スレッドを使うと何も考えずに済む

401 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 20:02:52.02 ID:2mE/wCV2.net]
スレッドセーフを考えなきゃならなくなるよな

402 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 22:00:07.94 ID:l/fL5071.net]
スレッドセーフっつったって、ロードスレッドはデータのロードしか仕事が無いわけだから
殆ど一人でシコシコ仕事をしているだけで、よそのスレッドとのコミュニケーションは限定的なので
初心者でも十分に扱えるレベルだ

403 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 07:25:58.19 ID:72bC2L7P.net]
ロードだけならそうだ。
というかキューイング読み込みの仕組みを作るのは別の話にした方がいい気がするね。
読み込みキューをタスクなりスレッドなりからポーリングすることになるわけだから、ポーリングする側の比較をするべきだろう。
キューイング読み込みスレッドはサウンドスレッドやムービーデコードスレッドと同様に扱われてしかるべき。
とすると、
> Fiberなんか使ったところで協調型のマルチスレッドだから意味ない
(略)
> 16ms以内で制御を返す、というのがなかなかの難関だ
というのはタスクと変わらない制限だから、ポーリングだけなら問題にならない。
まあ、Fiber なんか使うと移植が面倒だけどね。だから知ったかぶりして嬉しそうに視野の狭い環境依存の名称を出さずにコルーチンとかマイクロスレッドとか呼べばいいのに。

404 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 08:07:26.33 ID:+K79pdG1.net]
>ポーリングする側の比較をするべきだろう。
ポーリングする側はロードが完了したかどうか問い合わせるだけだから
何の問題にもならないので比較対象にもならない
スレッドでやろうが、スレッドを使わずにやろうが、
ロード画面のUpdate内でロードが何%完了したか調べるのには変わりないからな

>タスクと変わらない制限だから
全然違う 普通のタスクは自分の仕事を最速で処理して制御を返すだけ
ロードタスクは16msの持ち時間をなるべく多く使ってロード処理をしなければならない
16msより時間がかかるとコマ落ちする、16msより短いとアイドル時間が出来てロード全体が長くなる
ジャスト16msだけロード処理をしなければならない
しかし、HDDやCDやSSDへの一回のアクセスが何msかかるかは誰にも分らない
ジャスト16msで制御を返すのは難しい スレッドを使ったほうが効率的で簡単

>Fiber なんか
Fiber言い出したのは例の人だから俺は知らん

405 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 09:31:35.19 ID:NExmEVH8.net]
誰かこの基地外なんとかしてくれよ

406 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 10:18:44.50 ID:EzBhEF+/.net]
シンプルなRPGのバトルシーンを作りたいのですが
クラスの設計がよくわかりません
アイテムやスキルを使って一対一のコマンドバトルをしたいと考えた時にどういうクラスを作ってそれぞれのクラスはどのような関数を持ってて各クラスにどうアクセスしていいのか参考になるようなサイト等あれば教えて下さい
ちなみにunityでc#を使っての開発をしています

407 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 10:56:00.19 ID:+K79pdG1.net]
付け加えておくと、スレッドを使わずにロード画面のアニメーションをしつつロード処理をするのは
「16ms調度で制御を返さなければ時間に無駄が出る」以外にも面倒な事がある
これはマイクロスレッドやファイバーやコルーチンと呼ばれているものを使えば解決する問題では有るんだが
使わなければ大変に面倒な事態になる
マップをロードする場合、マップをロードする関数を呼び出すだろうが、大体マップというものは巨大で
沢山のテクスチャを使っていたり、すべてロードし終わるのに時間がかかる
何も考えずにマップをロードする関数を呼び出すと、その関数から制御が帰ってくるのに16ms以上かかってザワールドする
だから、マップをロードする処理を細切れに分解して一回のロード時間を短くして16ms以内に制御を返せるようにする
しかしその場合、スタックフレームに途中状態を保存できないので大変面倒な事になる
この問題はコルーチンを使えば解決するが、コルーチンを使ってもどの道「16ms調度で制御を返さなければ時間に無駄が出る」
問題が有るので結局スレッドを使ったほうが賢い

408 名前:uy ◆f2bXgeqopo mailto:sage [2015/10/26(月) 11:56:17.57 ID:PFFVX39o.net]
  ┴ァ 
  イヽットワークからデータをダウンロードしてるときのプログレスバーはFiberで実装できるから

 起動時に自鯖を立てるとネットワークとローカルの区別がなくなる

 リスクヘッジ。


スススススレッドwwwww

409 名前:uy ◆f2bXgeqopo [2015/10/26(月) 12:07:48.93 ID:PFFVX39o.net]
これから実装するって話



410 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 12:23:56.85 ID:+K79pdG1.net]
自鯖そのものが別スレッドで動いているという事実
それをソケット経由で非同期に読み込むあほさ加減
結局ローディング鯖という名のローディングスレッドを作成しているwww
遠回りでパフォーマンスも悪く面倒なだけ
あほの発想
非同期が良いなら、そんなことをしなくても
ReadFileには非同期読み込みのオプションが有る

411 名前:uy ◆LYC4sjPaFs mailto:sage [2015/10/26(月) 12:41:25.31 ID:PFFVX39o.net]
え?___は?____え?___
「ライブラリがスレッドを使っている」のと
自分で「スレッドを書く」の違い
わからない奴、 いる?


ゲームに限らず一つのアプリケーションが
自分専用のプロトコルを持つ事によって得

412 名前:られる恩恵があると予想しているんですよ
ここでは教えません
[]
[ここ壊れてます]

413 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 13:14:25.72 ID:+K79pdG1.net]
別ライブラリでスレッドを作らせて
それをソケット経由で非同期に読み込むあほさ加減を指摘しているだけ
単に非同期に読み込みたいならReadFileでも出来る
ソケット経由にする意味がまるでない

414 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 13:25:44.17 ID:PFFVX39o.net]
バカには無理

415 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 13:34:26.70 ID:+K79pdG1.net]
https://msdn.microsoft.com/ja-jp/library/cc429679.aspx
>ReadFile
>GetLastError 関数は ERROR_IO_PENDING を返します。
>この結果、呼び出し側プロセスは読み取り操作が完了する前に、他の作業を実行できます。
>その後、読み取り操作が完了すると、OVERLAPPED 構造体で指定したイベントがシグナル状態になります。

ソケットとか自鯖とか、必要なし、始めから無意味

そもそもスレッド使うならOVERLAPPEDも必要ないわけだがな

416 名前:uy ◆z45BCCS4kw mailto:sage [2015/10/26(月) 13:37:25.46 ID:PFFVX39o.net]
MSDNは環境依存なのでそのリンクはこの話では無意味です

417 名前:uy ◆z45BCCS4kw mailto:sage [2015/10/26(月) 13:48:00.76 ID:PFFVX39o.net]
uy実装
 protocol://***.***.***.***:8080/データ.dat
 protocol://localhost:8080/データ.dat

お前ら実装
 protocol://***.***.***.***:8080/データ.dat
 C:\\Game\\データ.dat

----

418 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 14:37:29.08 ID:NExmEVH8.net]
基地外は巣に帰れ

419 名前:uy ◆iLfr44WbfQ mailto:sage [2015/10/26(月) 15:40:28.42 ID:PFFVX39o.net]
>>409
君の仕事は単発レスではなく
さっさとログを流す事だ



420 名前:デフォルトの名無しさん [2015/10/26(月) 16:43:19.98 ID:7ZxAN5V0.net]
あっ!
基地外のuyだ!
相変わらず書き込みが低脳丸出しだなww
wwwwwwwwwwwwwwwwwwww

地球の酸素吸うなよ、もったいない

421 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 17:07:31.96 ID:bLXGWx61.net]
黙ってNG入れとけ

422 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 19:03:16.88 ID:PFFVX39o.net]
アホは黙ってスレッド使っとけよ

423 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 20:10:39.36 ID:YhVH3fXs.net]
なんつうかもう・・・・・
普通の人たちがコード書いてる部分がメタプログラミングになっていて・・・・
正直もうレベルが違いすぎて・・・・・
世界の科学力がついてきてない・・・

424 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/27(火) 01:03:19.56 ID:6s0uc6wD.net]
>>395
>16ms以内で制御を返す、というのがなかなかの難関だ

つーか、高精度タイマー使わないのか?w”

425 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 03:32:55.12 ID:0T7SOpyo.net]
https://twitter.com/kinuginu_/status/658499878201397248
ここを荒らしてるキチガイ固定ってこのレベルなんだよな
自信満々で何か言ってるけどどこか間違った主張をしてるというか

426 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/27(火) 05:42:45.47 ID:6s0uc6wD.net]
ウィルス注意。(アハ

427 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 07:38:27.35 ID:4uGYTRyn.net]
>>396
395 の前半を無視するからそういう理解になる。
「とすると、」と書いたわけだから、前半を無視したら「としない場合」の話になるから君の話で合ってる。
キューイング読み込みの仕組みを作るのが簡便でいいよ。

428 名前:uy ◆c4zp6q4ApA mailto:sage [2015/10/27(火) 07:58:58.11 ID:5a4qSPGd.net]
昨日はすごかった
かなり長い事これ以上は効率化のしようがないと思ってた部分のコードを簡略化出来た
だから昨日の出来事のすべてに感謝してる
2015年10月26日をuy記念日にするわ
uyの日な

429 名前:デフォルトの名無しさん [2015/10/27(火) 21:35:27.54 ID:sS/wkUVJ.net]
initialize



430 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/10/28(水) 06:01:58.83 ID:nMeCTHlT.net]
DX11に移る時かなw

431 名前:デフォルトの名無しさん [2015/10/28(水) 11:22:11.28 ID:dfvAkVtP.net]
というかゲームもjsで書く時代
ブラウザ上でDirectX使える時点で
Winアプリで1からゲーム組む意味ってもうなくね?w
フルスクリーンもキー入力も全部出来る
おまけにトランスレータも豊富で自分の好きな構文の言語選べるしw
jsトランスレータで書いとけばどのOSでも余裕で動くしスマホアプリにもできるよ
FPSガー、スレッドガーって
いつまでそんな事言ってんだって思うwwwwwwww






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<279KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef