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


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

C/C++ゲーム製作総合スレッド Part7



1 名前:名前は開発中のものです。 mailto:sage [2015/01/11(日) 10:19:31.85 ID:RDQlUyF+.net]
ゲーム製作におけるC/C++全般に関するスレです。

元スレ
DXライブラリ 総合スレッド その18
peace.2ch.net/test/read.cgi/gamedev/1399459468/

前スレ
C/C++ゲーム製作総合スレッド Part1
toro.2ch.net/test/read.cgi/gamedev/1337516528/
C/C++ゲーム製作総合スレッド Part2
toro.2ch.net/test/read.cgi/gamedev/1351015269/
C/C++ゲーム製作総合スレッド Part3
toro.2ch.net/test/read.cgi/gamedev/1357899040/
C/C++ゲーム製作総合スレッド Part4
toro.2ch.net/test/read.cgi/gamedev/1376262450/
C/C++ゲーム製作総合スレッド Part5
peace.2ch.net/test/read.cgi/gamedev/1389798031/
C/C++ゲーム製作総合スレッド Part6
peace.2ch.net/test/read.cgi/gamedev/1404815419/

12 名前:名前は開発中のものです。 mailto:sage [2015/01/13(火) 11:20:25.68 ID:tklViF/V.net]
>>9
そういう文章ってどうやってプログラム中から識別するの
"会話0001"?

13 名前:名前は開発中のものです。 mailto:sage [2015/01/13(火) 12:40:45.14 ID:x0mM86eW.net]
4 :名前は開発中のものです。:1985/01/12(土) 16:06:35.67 ID:skthRk+e
基本的にゲーム内で使う画像を外に書くメリットはないよな?
で、描画手順は専用の構造体を用意して
そこに開始点・終了点の座標や塗る色の数値を片っ端からぶっこめばいいんだよな?
なら今のゲームで画像ファイルを使う場面って、
画面紹介等の画像のスクショくらいだと考えていいんだろうか?

14 名前:名前は開発中のものです。 mailto:sage [2015/01/13(火) 18:27:31.65 ID:u897FUjW.net]
>>11
ユニークな名前で管理するのが面倒な規模なら
ロジックの部分もある程度は外に投げるようになるんでね

15 名前:名前は開発中のものです。 mailto:sage [2015/01/13(火) 18:40:16.59 ID:RKeKGf32.net]
画像ファイルでそれやろうって奴はいないだろ…
テキストは定義された物を書き出すだけだからやろうって考える人がいるだけで
あと、MOD作ってもいいよとか多人数でやるよとか
追加含めて大量に書くよってんならテキスト外置きなんだろうけど、
逆に言えばこのどれにも当たらないならいらないかなって
一部でもオープンソースにする気はないって人もいるだろうし

壊せる壁って破壊済み相当の状態で床などに変化するオブジェクトだけど、
これはダメージを与えていくと壊せる物はマップチップ扱いなのかキャラクター扱いなのかよく分からない
キャラクターをマップチップに正確に重ねてチップを隠すんならいけそうだけど、
そうするとマップ情報をキャラクター生成部に送る必要があるんだろうか?

16 名前:名前は開発中のものです。 mailto:sage [2015/01/13(火) 19:39:05.23 ID:MdTOZHze.net]
>>14
普通に居るけど
Mod作りやすいってことは本編も作りやすいって事がわからんのだろうかね。
あとオープンソースの使い方おかしい

17 名前:名前は開発中のものです。 mailto:sage [2015/01/13(火) 22:57:29.48 ID:RKeKGf32.net]
それ、一部の場面でレイヤーの代わりに使ったりする物のことを言ってるんだろ?
描画画像を全部内部で0から生成なんかやってたらそのコードだけでものすごい量になっちゃうよ
逆にそれが部品として小さいなら、外に置かなくても組み込んじゃえってのはありだとは思うし
それを実行しているのが一行目ってわけだ

非現実的な案ではあるけど、できるんなら画像の隠蔽は完璧だな
あと、一部ならオープンソースじゃなくてシェアードソースね、おk覚えた

18 名前:名前は開発中のものです。 mailto:sage [2015/01/13(火) 23:22:24.12 ID:tklViF/V.net]
お前は勘違いをしている

19 名前:名前は開発中のものです。 mailto:sage [2015/01/13(火) 23:48:10.98 ID:QJSitgs3.net]
ソース違い

20 名前:名前は開発中のものです。 mailto:sage [2015/01/13(火) 23:48:23.40 ID:yF9v46c2.net]
たとえ話は
通じなかった時に双方ともに間抜けなことになるのが辛いな



21 名前:名前は開発中のものです。 mailto:sage [2015/01/14(水) 00:25:45.86 ID:8sU4Ec1w.net]
スレを流し読みしたが、>>14-16の辺りが話が噛み合ってないよな
これお互いに誤読してるだろ。推測するに大凡の所お前らの間には
目立った意見の食い違いはなさそうだから仲良くしろよな

22 名前:名前は開発中のものです。 mailto:sage [2015/01/14(水) 01:05:05.22 ID:8sU4Ec1w.net]
>>14
>壊せる壁って破壊済み相当の状態で床などに変化するオブジェクトだけど、
>これはダメージを与えていくと壊せる物はマップチップ扱いなのかキャラクター扱いなのかよく分からない

本来は、昔のゲーム機の仕様(例えばOBJとかBGがあるやつね)の様々な縛り
の中での話なので、今なら好きに定義して自由に作ればいいんじゃねーかな

見当がつかなくて何か参考にしたいんならツクールの類でも触ってみて
内部の仕組みを推測して真似てみたりすればいいんじゃねーかな

>キャラクターをマップチップに正確に重ねてチップを隠すんならいけそうだけど、

そういう手も当然ありだよね

>そうするとマップ情報をキャラクター生成部に送る必要があるんだろうか?

どういう機能分割をしてるのかイマイチ分からんけど、座標系の概念が
考慮されてないなら取り入れたほうがいいんじゃねーの

23 名前:名前は開発中のものです。 mailto:sage [2015/01/14(水) 01:50:18.20 ID:oy3qeLAO.net]
え、俺はマップチップもキャラも一緒のオブジェクトなんだけど
お前らわざわざ分けてんの?

24 名前:名前は開発中のものです。 [2015/01/14(水) 23:47:05.61 ID:nDPijqqTv]
車用ピッキングツール 車の鍵を不正に開ける工具
www.amazon.co.jp/dp/B00RGI2EU8

25 名前:名前は開発中のものです。 mailto:sage [2015/01/14(水) 18:32:13.33 ID:b3+ap1tg.net]
>>22
舞台装置と役者は似て非なる別物だからよ

>>14みたいなことをやる場合、
当たり判定まではキャラクターと同じでも
HPは持っていない壊せない壁をどう定義するかがな

26 名前:名前は開発中のものです。 mailto:sage [2015/01/14(水) 20:11:23.18 ID:oy3qeLAO.net]
>>24
同じオブジェクトで行けるってことは、似て非なる別物じゃないと思うが

27 名前:名前は開発中のものです。 mailto:sage [2015/01/14(水) 20:25:50.33 ID:mV/UlqnK.net]
好きなようにすりゃええがな
あんさんの方法を否定してる奴なんて誰もおらん
あんさんは他人を否定したくて仕方ないかも知れないがな!

28 名前:名前は開発中のものです。 mailto:sage [2015/01/14(水) 21:38:06.89 ID:0XojYraf.net]
例えどんな方法でも実現可能だったとしても
複数の手法の中からベストな物を追求するのは良いことである

29 名前:名前は開発中のものです。 mailto:sage [2015/01/14(水) 22:19:18.87 ID:oy3qeLAO.net]
>>26
まぁ、お前にゃ聞いてないがw
似て非なる別物の根拠を訪ねただけで、否定したように感じるってのは相当病んでるぞ

30 名前:名前は開発中のものです。 mailto:sage [2015/01/14(水) 23:02:57.92 ID:iwR4jgL6.net]
当たり判定の範囲をなしを含む特有の定義にして、
一番最初に横たわるキャラクターオブジェクト それがマップ

他のキャラクターとは一部の要素が大きく違う分管理に差が出るし
無駄を承知で分けた



31 名前:方が分かりやすくはなる…かも []
[ここ壊れてます]

32 名前:名前は開発中のものです。 mailto:sage [2015/01/15(木) 21:04:25.90 ID:v7OuMrqm.net]
マップと言えば、マップチップタイプみたいな並びを記憶しておく必要があるマップは、
当然二次元配列を使うとして
たとえば現在の装備一覧のような、
同じ要素を指す数値の並びをしている物の塊も二次元配列にすべきなんだろうか

33 名前:名前は開発中のものです。 mailto:sage [2015/01/15(木) 23:17:08.52 ID:Q5DMCUO8.net]
>当然二次元配列を使うとして


34 名前:名前は開発中のものです。 mailto:sage [2015/01/16(金) 08:47:44.30 ID:ZjU+PjG/.net]
>>30
別にどう作っても良いけどマップも1次元の配列で持っていた方が楽
座標x、yも持たせておけばいい

35 名前:名前は開発中のものです。 mailto:sage [2015/01/16(金) 12:23:34.85 ID:KH2Og/LD.net]
二次元のビットマップ画像も普通一次元配列で確保するよな。

36 名前:名前は開発中のものです。 mailto:sage [2015/01/16(金) 23:19:42.96 ID:aIsA+egi.net]
>>30
>たとえば現在の装備一覧のような(…中略…)二次元配列にすべきなんだろうか

一覧表示にも色々あるけど
要求(される操作)に応じて適切なデータ構造(コンテナ)選ぶものなので
二次元配列でおk(な要求)ならそれで作るのが一番いいんじゃねーの

要素数がたかが知れてる場合、配列(std::vector)使ってるからって
何か問題が生じるような事はまずないわけだし

37 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 08:27:09.12 ID:XHyVYcVD.net]
2次元配列でOKなものは1次元配列でOK
わざわざ2次元配列を使うメリットは何も無い

38 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 11:40:55.67 ID:vMwgaTo6.net]
シンタックスシュガーでしかないもんねぇ
初心者に教えるなら積極的に使うけど

39 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 11:55:03.58 ID:YJD7hT+O.net]
一次元配列で確保した上で行(or列)先頭にアクセスするための
インデックス(LUT)を用意するような内部実装でも二次元配列
なんであってだな(>>33)

ターゲットも実装も不明ならメリットねぇとは断言できんよ

40 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 11:57:15.65 ID:YJD7hT+O.net]
>>36被ったスマン



41 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 17:31:33.18 ID:KBPYDccT.net]
たとえば縦スクロールSTGのマップとかで、
メモリ節約のためにマップを行ごとに細切れにして
表示範囲の上に一行足して下から一行引くような処理をしていたりする場合、
一行ずつ読み込んでるんだという事を示すためにわざとやるとか
試作段階で仕様が固まらなかった時の苦肉の策がそのままになっちゃったとか?
二次配列ってなんかあんまり使い道が浮かばない

42 名前:名前は開発中のものです。 [2015/01/17(土) 18:57:09.16 ID:O8Io0R5L.net]
3Dでキャラクターが技によって自由に地面の凹凸を操作できるようにしたいんですが
予め頂点を作っておかないとダメでしょうか?

キャラクターがここじゃーって指してる座標に一番近い面の上に
頂点をいい感じに窪ませるように配置して、
もともとあった面と入れ替わるような感じにしたいのですが、
当たり判定やハードウェアレンダリングしたいならやっぱり面倒ですか?

まぁハードウェアレンダリングなんてどうやればいいのかわからないですが

43 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 20:24:50.48 ID:dqiO68fF.net]
確かにあんまり、というか殆ど多次元配列使わないな
配列へのアクセス部分は、隠蔽する傾向にあるから、アクセス用インデックスが多次元でも、アクセスの内部仕様は1次元配列でやってることが多いな

また配列の次元数を増やすと、後から解読するのが難しくなって、可読性が下がる
だから次元が増える場合は、次元別にクラス定義して、一次元配列のメンバに下位次元を持たせるようにしてるな

そういやD3DMATRIXに2次元配列のメンバあるけど、自分で定義したものじゃないし、そもそもそのメンバって殆どアクセスしないなぁ

44 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 20:40:58.36 ID:eRR0fEDj.net]
std::vector<std::vector<int>>とかやるじゃん?

45 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 20:55:17.63 ID:XHyVYcVD.net]
Dictionary<Point, Tile> Mapしか使わん

46 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 21:10:19.92 ID:dqiO68fF.net]
>>42
enum定数でアクセスするのかな?
それにどんな情報を入れるんだろ

47 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 21:23:58.77 ID:j+s0LTMz.net]
ベジェとか普通に書いたら多次元配列になるんじゃ…

48 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 21:56:16.62 ID:ceElOD9E.net]
>>42
やりません
コンテナ2つ重ねても無駄に複雑になるだけでしょ

49 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 22:50:59.20 ID:Gl1ppQ6p.net]
>>42
リソースに余裕がある場面では使ってるな
規模が大きくなってくると細かいことまで気にしてられんからこれ使うとラク

50 名前:名前は開発中のものです。 mailto:sage [2015/01/17(土) 22:59:23.12 ID:aI7crSKW.net]
>>40
テッセレータを使ったらいいのでは?
凹ませたい領域を4頂点の単純なタイルで表現し、それをフィールドに敷き詰めておく。
凹ませるときは、該当するタイルに対しテッセレーション(最大64分割)して、
高さマップを与えてディスプレースメントさせる。



51 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 00:08:51.85 ID:DJykD+cW.net]
>>46
やるぜ?
可変長CSVの読み込みとか

52 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 07:49:00.66 ID:sJaCX/+8.net]
長さ不定のに多重vectorはしないかな

53 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 12:34:52.67 ID:W1O9uyd7.net]
vector<vector<T>>は便利なときもあるけど、
コピーやトラバースのパフォーマンスがvector<T>に比べて著しく遅いんで、
そちらが重要なときは多少冗長でもvector<T>で扱うようにしてる。

54 名前:名前は開発中のものです。 [2015/01/18(日) 12:40:46.60 ID:beKeRz4L.net]
vector<vector<T>*>

55 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 12:44:37.58 ID:sJaCX/+8.net]
生ポインタ使うならdequeで良いだろ
とは言えないパフォーマンス差があるんだよな…

56 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 13:35:03.38 ID:yNPMG51i.net]
vector<unique_ptr<T>>

57 名前:名前は開発中のものです。 mailto:ぬるぽ sage [2015/01/18(日) 14:23:19.06 ID:J6J53lAj.net]
null_ptr

58 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 15:20:17.44 ID:W1O9uyd7.net]
nullptrでは・・・

59 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 15:53:55.88 ID:dWFx6RaG.net]
相当昔にC++触って、今と環境がかなり違いそうなのですが、
タスクシステムを実装する時、昔は固定長のメモリを予め確保したうえで、そのメモリを
newすることによって使っていたのですが、今のゲームもこのやり方が主流ですか?
それともスマートポインタ+std::listでも速度出るのでしょうか?

スマートポインタとやらは、これはやってる事はガベージコレクションですよね?
速度に問題無しということですが、ヒープ領域から自由にnewdeleteして大丈夫なのかと不安になるのですが・・・

60 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 16:23:04.34 ID:6LkKK9Db.net]
誰も使ってない



61 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 17:19:29.87 ID:W1O9uyd7.net]
>>57
スマートポインタはリソース管理の安全性を高めるだけで、
new、deleteのパフォーマンスを高めるわけではない。
むしろクラス被せる分、オーバーヘッドが嵩む。
現代のハードウェア環境においては、多くの場合そのオーバーヘッドは問題にならないというだけ。

62 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 18:04:36.15 ID:WcZ4waH9.net]
手動解放は、車で例えると
タイム短縮のためにわずかなエンジンパワーのロスも許されないプロレーサーや、
オートマはエンジンパワーが完全には伝わらないのでクソ
俺は完璧なギアチェンジ操作ができる(自称含む)のでマニュアルで通すんだって人向け

解放忘れてメモリリーク他の面倒な問題を起こしても泣かないなら全部手動で
それが嫌なら我々が作った処理班にぜひおまかせ下さい!
スマートポインタってそういうもの
shared_ptrやweak_ptr自体の書き忘れや循環参照などは防げないけど

>>55
ga

63 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 19:56:46.03 ID:1ZXKy9PG.net]
>>57
ここではWindowsならメモリ確保の負荷はそんなに問題にならないとしている

marupeke296.com/ALG_No2_TLSFMemoryAllocator.html

スマートポインタはGCってそれどういう意味だよ。
スマートポインタに使っている参照カウントはGCの方式の一つとは言えるが。

ja.wikipedia.org/wiki/参照カウント

64 名前:名前は開発中のものです。 mailto:sage [2015/01/18(日) 20:33:19.91 ID:E2jV+3+x.net]
おじさんは2万円前後の安もんの8インチタブ(CPU:Z3735G,RAM:1GB)を
即売会場でデモ機として使う都合で、バッテリー駆動でできるだけ長時間
ヌルヌル動かすために貧乏根性丸出しな組み方しちゃったけど、そういう
変な目的が無ければ自分の好きなようにやればいいと思うんだがな

○○のやり方が大丈夫なのか不安とか意味わかんねぇな。周りキョロって
ねぇで自分で決めた基準動作環境で自分でテストすればいいじゃんと

65 名前:名前は開発中のものです。 mailto:sage [2015/01/19(月) 05:04:21.05 ID:xLKHfZFD.net]
最近は底の方でも1GB
これなら多少雑に使ってもリークさえさせなければ問題ないな

なお512MB以下は爆死する模様
そんな化石がまだあるのかどうかは知らないが

66 名前:名前は開発中のものです。 mailto:sage [2015/01/19(月) 08:44:27.43 ID:XDjCkDzP.net]
全部起動時に読み込みとかやめて!

67 名前:名前は開発中のものです。 mailto:sage [2015/01/19(月) 19:59:00.97 ID:21R5SuXr.net]
ふははは、貴様のセルを使うかどうかもわからない画像や音楽データで埋めてくれる!

読み込み時間といい、占有領域といい、ロースペにはある種のテロだな…

68 名前:名前は開発中のものです。 mailto:sage [2015/01/19(月) 23:27:21.97 ID:U55o2asL.net]
音楽やムービーのストリーム再生以外で、オンメモリでないゲームが作れるって凄いな。
そこまでリソースが用意できないよ。

69 名前:名前は開発中のものです。 mailto:sage [2015/01/20(火) 00:33:47.17 ID:KjcEBQWF.net]
メモリ次第ではあるけど
常駐とブラウザ合わせたら警告食らうくらいのゲームならあるんじゃないの

70 名前:名前は開発中のものです。 mailto:sage [2015/01/20(火) 01:29:50.61 ID:VPdLWQW0.net]
>>66
数年前、(旧)Android Marketに個人でゲーム出した時は機種依存の
バッドノウハウの量に本気で吐き気がしたけど、あれに比べたら
PCゲーは作りやすい思たよ。メモリフットプリント小さくするだけで
おkなら大したこたないと思える程にAndroidスマホはカオス

(だった。今はどうなってるのか知りません)



71 名前:名前は開発中のものです。 mailto:sage [2015/01/20(火) 10:35:24.77 ID:B8GspOPa.net]
1080pの画像を一度に100枚読み込めばロード地獄間違いなし
1920*1080*4 /1024/1024 *100 = 791MBぐらい
スマホだとアプリが強制終了するかも

グラフィックの豪華なアプリのModern Combat 5でもメモリは512MBぐらいまでしか使わない

72 名前:名前は開発中のものです。 mailto:sage [2015/01/20(火) 22:05:53.74 ID:GnwjxLXH.net]
圧縮テクスチャ使えば1/5くらいにはなるんじゃね?

73 名前:名前は開発中のものです。 [2015/01/21(水) 16:36:27.53 ID:OnV6g/fE.net]
そういや、Appmethodってどうよ?ちょっと気になってるんだが使ってる奴居る?

74 名前:名前は開発中のものです。 mailto:sage [2015/01/21(水) 22:17:40.75 ID:1wPj2se9.net]
タスクシステムで組む時、
・タスクリスト2つ用意して移動と描画分ける
・タスクリスト1つに移動も描画も入れる

どっちがいいのでしょうか?個人的には前者にしたいけど・・・

75 名前:名前は開発中のものです。 mailto:sage [2015/01/21(水) 22:19:47.80 ID:CqaY5thk.net]
前者にしたいのにできない要因を考えるのがよい
「みんながどうやってるか気になる」ってだけなら気にする必要はない

76 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 00:52:45.85 ID:fqCV4qez.net]
タスクシステムはバグった時に大変そうな印象
そりゃあ、バグれば大抵それなりに大変な目に遭うんだけどさ

77 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 02:20:52.62 ID:PxEmvatE.net]
>>69
一般的なアプリは、数MB

78 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 07:47:04.58 ID:niGIPEW3.net]
昔タスクシステムスレあったけど相手の主張への罵詈雑言だらけでいつの間にか消えたなw

79 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 16:27:46.03 ID:pRLOyuNi.net]
移動と描画両方持ってたほうがスマートだべ

80 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 16:50:32.20 ID:MBqyL5iH.net]
>>76
「タスクシステム」っていう名前が何を指すのかがすごく曖昧なのに
それを無視して自分の中の定義を押しつけ合う奴らの隔離スレだったし
消えて当然とも言える



81 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 17:35:35.81 ID:niGIPEW3.net]
まあ個人でゲーム作る分にはどう作ろうが60FPS出てちゃんと動けば勝ちだからなw
会社とかで厳密にタスク管理されてるなら覚えなきゃならんのだろうけど。

82 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 18:57:21.14 ID:gduwMt/g.net]
タスクシステムw
馬鹿しか使わん

83 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 21:08:37.90 ID:9AIymZEw.net]
>>80
なんで?

84 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 21:13:16.12 ID:ZmYkrSmS.net]
>>80
OS上で動くアプリならそうかもな
OS込みとしてならタスクは最適解だろうし、組み込み系で使われてるOSは名前が違うだけて同じ系統のものだよ
現在マイノリティなのは認めるけどな

85 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 22:06:24.79 ID:MBqyL5iH.net]
ほーら始まったw
スレ立ててそっちでやれw

86 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 23:18:22.87 ID:MosgWt8b.net]
たすくしすてむってなあに?
おいしいの?

87 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 23:53:50.36 ID:hRTvuKPH.net]
ごめんなさい
反射してしもた

88 名前:名前は開発中のものです。 mailto:sage [2015/01/22(木) 23:56:43.23 ID:U49zokjS.net]
だーかーらー、ただのリストに大げさな名前付けんなや

89 名前:名前は開発中のものです。 mailto:sage [2015/01/23(金) 00:49:17.98 ID:jY3sOyRC.net]
ja.m.wikipedia.org/wiki/TRONプロジェクト
多少は勉強になるから、読んでみたらどうだろう
これの亜流だよ

90 名前:名前は開発中のものです。 mailto:sage [2015/01/23(金) 01:07:05.72 ID:JihQada2.net]
はじめからほとんど完成しているシステムに、
そのシステムの中枢部に触れないように要素を追加できるような実装を目指すなら有効
つまり、OSやエンジン作るならこれがいいかもしれない
が、そうでなければバグが修正困難だったり無駄な手続きが多いクソ
なんだ実行順って 必要になった時にやらせろオラァァ



91 名前:名前は開発中のものです。 mailto:sage [2015/01/23(金) 10:32:52.67 ID:ZhBY7M7O.net]
最近はどんな言語でもクロージャやジェネレータ (yield) をサポートするようになってきた。
タスクシステムとは呼ばれないけど、同じ目的には使えるんじゃないの?

描画に関しては、オブジェクトが自前で描画命令を発行するのか、
オブジェクトとは別にスプライトのような構造

92 名前:を用意して、描画はそちらに任せるかの差が大きい気がする。
巷のゲーム向けのフレームワークを見るに、後者のほうが可搬性は優れているんじゃないか?
[]
[ここ壊れてます]

93 名前:名前は開発中のものです。 mailto:sage [2015/01/23(金) 10:52:38.49 ID:ZpK8PG+c.net]
オブジェクトが自前で描画って構造はゲームではあり得なくない?
ポーズ作るだけで一苦労じゃん

94 名前:名前は開発中のものです。 mailto:sage [2015/01/23(金) 16:09:48.65 ID:gTjNx7m+.net]
ネットに転がってるC++のゲームソースしっかりしたのはほとんどタスクシステムっぽいのばっかだから
そういうソースじゃないと読む気がしなくなったっていう(´・ω・`)

95 名前:名前は開発中のものです。 mailto:sage [2015/01/23(金) 16:29:50.12 ID:Qg1gWf/N.net]
単一のタスクだけで動かすと実によく機能するのに、
タスク同士を連動させようとすると途端にギクシャクする辺りが
実にぼっちらしくてよいが、
プログラムにそんなのやらせてどうするんだ

96 名前:名前は開発中のものです。 [2015/01/24(土) 11:10:33.23 ID:vN0iK6Pw.net]
>>90
cocos2dとかそんな感じじゃね

97 名前:名前は開発中のものです。 mailto:sage [2015/01/24(土) 13:26:12.19 ID:AuIVSu3m.net]
C++11のstd::asyncってのが便利そうだから使ってみた。
確かに簡単に別スレッドに非同期に仕事をさせられる。
だが、どうも処理結果を受け取ってスレッドを終了するのに膨大なコスト(500msくらい)がかかるようだ。

代わりに、std::threadで常時スレッドを走らせておいて、std::mutexで同期を取りながら
データのやり取りをするようにしたらとてもスムーズに動くようになった。
しかし、std::asyncを使った場合と比べて、煩雑な記述が避けられない。

スレッド終了のコスト高杉。

98 名前:名前は開発中のものです。 mailto:sage [2015/01/24(土) 13:34:42.36 ID:0N2Bqsd3.net]
TBBやPPL使っとけ

99 名前:名前は開発中のものです。 mailto:sage [2015/01/24(土) 16:36:58.01 ID:l++ObWZB.net]
>>94
Windowsの話だよな?

100 名前:名前は開発中のものです。 [2015/01/24(土) 20:09:43.23 ID:Js5qaCaY.net]
C11使っとけ



101 名前:93 mailto:sage [2015/01/24(土) 21:51:42.90 ID:AuIVSu3m.net]
>>95
サンクス。
調べてみる。

>>96
そうだよ。

102 名前:名前は開発中のものです。 mailto:sage [2015/01/24(土) 22:06:18.60 ID:SL/s5qpu.net]
1タスクごとにスレッドそのものを開始終了するとコストが高いので
想定するCPUのコア数だけワーカースレッドを用意して
それらにタスクを投げるのが定石じゃないかな。

・キューにタスクがない時はスレッド待機。
・タスクをキューに投げたら全ての待機スレッドを励起。
・いずれかのスレッドがキュー上のタスクを取得して実行、他は再び待機。
・タスクが完了してもスレッド完了せず、次のタスクを確認する。

デザインパターンにあったはず。

103 名前:名前は開発中のものです。 mailto:sage [2015/01/24(土) 22:12:29.49 ID:VTrvOh2Q.net]
>>71
居ないのか……ま、いいや

104 名前:名前は開発中のものです。 mailto:sage [2015/01/24(土) 22:16:34.35 ID:VTrvOh2Q.net]
スレッドの使い分けは適切に使わないと工数が意味もなく増殖するからな……

105 名前:名前は開発中のものです。 mailto:sage [2015/01/24(土) 22:31:57.37 ID:AuIVSu3m.net]
>>99
勉強になった。
やっぱそういうやり方が常套なのね。
そういや、マルチスレッドのデザインパターンってのがあるって聞いたことがあるな。
調べてみるわ。

106 名前:名前は開発中のものです。 mailto:sage [2015/01/25(日) 21:12:51.89 ID:vXlhEd/U.net]
タスクシステムよりシーン管理の方がよっぽど複雑だと思うの

107 名前:名前は開発中のものです。 mailto:sage [2015/01/25(日) 21:27:30.87 ID:16a+UuyX.net]
シーンって「タイトル画面とキャラ選択画面とゲームのメインループその他」の意?
それとも「メインループ中の各シーン」のことかな。

>>102
標準テンプレートとか使える程度に技術のある人なら余裕で実装できるよ。

108 名前:名前は開発中のものです。 mailto:sage [2015/01/25(日) 23:16:44.80 ID:ZTrWlyYJ.net]
シーンったら状態遷移のことでは つまり両方

109 名前:名前は開発中のものです。 mailto:sage [2015/01/25(日) 23:53:06.16 ID:5N9PH1z0.net]
>>99
ワーカースレッドが、キューに何もない

110 名前:アとを確認して、
眠ろうとしているところに、
キューにタスクが入って、ワーカーに起きるよう指示を出す。
ワーカースレッドはその後寝てしまう。悪いことに全ワーカーが同じ状態。
次のキュー挿入で起きるけど。

なんかこんなこと考えると、こんがらがってきます。
[]
[ここ壊れてます]



111 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 15:41:45.19 ID:VjIajR+F.net]
>>106
キュー操作そのものにミューテックスで排他かけるから
「寝る」一連の動作と「起こす」一連の動作は複数のスレッドで並行に起こらない。

「寝て大丈夫かキューを確認したらタスクがあるから寝ずに実行」か
「完全に寝る→即座に次のタスクがキューにある状況で起こされる」のどちらか。

.NETだとWait()とPulseAll()、Javaならwait()とnotifyAll()で
簡単に実装できるけど、Win32APIだと少し面倒だった。

まずは上記2つのどちらかを調べて流れを掴んで、
それをC/C++用のAPIで書き表すことを考えてはどうかな。

112 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 16:22:24.05 ID:MFO6WL+3.net]
>>107
condition_variable






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

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

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