- 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/
- 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
- 113 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 17:05:42.55 ID:u+eqsmYT.net]
- *0.5の乗算と/2の除算
表す物はまったく同じだけど、前者の方が早いんだろうか?
- 114 名前:名前は開発中のものです。 [2015/01/26(月) 17:06:44.50 ID:plLWVR07.net]
- /2の除算
- 115 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 17:08:38.36 ID:U+7vhN1O.net]
- シフト演算
- 116 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 17:36:32.42 ID:nJhOAZkT.net]
- 整数ならそもそも結果が違うな
浮動小数ならコンパイラが最適化してくれるだろ
- 117 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 17:48:01.99 ID:u+eqsmYT.net]
- 2のn乗倍しかできないじゃないですかー!やだー!
書き方が悪かったのは認める
- 118 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 18:30:30.51 ID:pS9kEcva.net]
- >>113
浮動少数なら変わらないんじゃ?
- 119 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 21:04:49.69 ID:J7eP3rC5.net]
- >>107
Javaや.NETはスレッド簡単に書けるんか。 C++11や今後の新しいC++規格で同じようなライブラリ入れてくんないかな?
- 120 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 21:13:32.54 ID:nJhOAZkT.net]
- >>115
すでに >>108 が答えてくれてる。 std::thread, mutex, shared_mutex(=RWLock), condition_variable, async/future C++11, 14 にて、この手の処理のための部品は揃ったと思われる。 あくまで部品なので、タスクキューなんかは自分で多少は書くことになるとは思うが。
- 121 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 21:19:26.58 ID:thceLWWx.net]
- #ifndef〜#endifの組み合わせと#pragma onceの違いがよく分からない
前者は明確なインクルードガードだけど、後者は?
- 122 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 21:45:22.75 ID:OIbLNO60.net]
- 前者はガード以外にも使える
後者はガード専門
- 123 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 21:45:26.06 ID:eI0emMfH.net]
- >>117
一回だけincludeしてねとコンパイラに言う
- 124 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 21:57:36.77 ID:MFO6WL+3.net]
- ついでに言うと#pragma onceは非標準
だけど主要コンパイラで実装してないものがないほぼデファクトスタンダード状態
- 125 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 22:06:02.39 ID:J7eP3rC5.net]
- >>116
ありがとう! C++的にはちょうど良い落としどころっぽいね。 使い易くてハイパフォーマンスなスレッド記述をマスターしてやるぜ!
- 126 名前:名前は開発中のものです。 mailto:sage [2015/01/26(月) 23:14:24.34 ID:thceLWWx.net]
- なるほど、むしろ#pragma onceがインクルードガード専用なんだな
>>120 マジで!? VSで最初から書き込まれているプリプロセッサが非標準なのかよ
- 127 名前:名前は開発中のものです。 mailto:sage [2015/01/27(火) 02:06:38.39 ID:m3LjzbYT.net]
- そもそも#pragma自体が、コンパイラ独自実装な機能で使うタグみたいなのじゃなかったっけ
まあ今となっては大抵のコンパイラで使えるみたいよ en.wikipedia.org/wiki/Pragma_once
- 128 名前:名前は開発中のものです。 mailto:sage [2015/01/27(火) 05:50:27.53 ID:v0Ke9Ofm.net]
- #pragma で始まるものは、互換性がない
- 129 名前:名前は開発中のものです。 mailto:sage [2015/01/27(火) 09:41:49.82 ID:kpJLUqPw.net]
- >>124
リンク先見た? 俺もVCだけの互換の無い機能と思っていたが、互換してないのはIBMの一種(世の中のコンパイラを網羅してるわけではないけど)だけだったよ 標準仕様が〜とかよりも便利なモノは取り込まれてくんだと思った
- 130 名前:名前は開発中のものです。 mailto:sage [2015/01/27(火) 15:08:16.08 ID:m3LjzbYT.net]
- まあ#pragma comment(lib, "...")とか、ガチでVC独自の機能もあるし
>>124の考えが自然だと思う
- 131 名前:名前は開発中のものです。 mailto:sage [2015/01/27(火) 17:35:37.67 ID:OmLGS6W/.net]
- C++14の新機能ってラムダ式にautoが使えるくらい?
- 132 名前:名前は開発中のものです。 mailto:sage [2015/01/27(火) 22:54:28.14 ID:k1Z1zLml.net]
- >>126
なぜ comment なのだろう…
- 133 名前:名前は開発中のものです。 mailto:sage [2015/01/27(火) 23:27:04.08 ID:Ow2H94g+.net]
- 互換と呼ばれるパクリ・盗用
- 134 名前:名前は開発中のものです。 mailto:sage [2015/01/27(火) 23:51:44.84 ID:mO8GdU7r.net]
- パクりパクられないインタフェースに存在意義は無い
- 135 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 00:13:05.10 ID:5x2afQiV.net]
- ただのガラパゴス仕様だからな…
- 136 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 08:57:20.61 ID:DPC05MEk.net]
- C++は消える運命
- 137 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 10:44:43.26 ID:SOs+ZJbg.net]
- C++は地盤担当だから消えはしない。見えなくなるだけ。
- 138 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 16:49:43.54 ID:/ZB0USJc.net]
- 土台のしっかりしている家は頑丈だからな
しかし最近、犬小屋程度の建物にビルのような土台を作ってどうすんだ? と思うようにもなってきた
- 139 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 17:10:45.12 ID:dUb4vLHi.net]
- ウサギ小屋と呼ばれる日本の家をバカにするな!
- 140 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 19:20:53.89 ID:nasZb7nZ.net]
- 最近ホント、この板でこじつけで日本の風習をバカにする奴が増えたな。
レガシで安定したものはラップして使い回すのが鉄板なのに、 横からうまく吹き込んで全部潰して一から作り直そうとさせる。 それだけ、相手の発展を遅らせることができる。
- 141 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 19:28:52.88 ID:tBFCEOiA.net]
- 古いからといってバグが無いとは限らないけどな。
特に昔のコードは脆弱性対策が練られてない事が多い
- 142 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 20:15:35.81 ID:RgnZVm9M.net]
- FirefoxはJavaScriptの速度がChromeを超えたとか言われている割にもっさりしている感が否めない
後発のChromeの方が速い
- 143 名前:名前は開発中のものです。 [2015/01/28(水) 20:18:09.19 ID:t3hT+Wje.net]
- >>138
感覚でなく実測で。
- 144 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 20:33:36.08 ID:RgnZVm9M.net]
- ブラウザの使用感はスクリプトの実行速度だけで決まるわけじゃないからな
読み込み時間の短縮も大事 v8の方がバイトコードを通さず直接マシン語を生成するから読み込み速いんじゃないか 全体の速度はTom's Hardwareが調べていたが スコアを合計したら何かFirefoxが速いという結論になっているのが理解できなかった どんな計算をしたのやら www.tomshardware.com/reviews/chrome-27-firefox-21-opera-next,3534.html 古い記事だけど
- 145 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 20:35:32.45 ID:GO27aJnJ.net]
- 関係ないけど体感速度を速く感じさせるって大事な事だね
Chromeはメモリの使い方や優先順位の割り振りが上手いんじゃないかと
- 146 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 21:30:30.57 ID:zOtKlcou.net]
- chromeはメモリ馬鹿食いするしな
ブラウザしか起動しないならそれでもいいんだが
- 147 名前:名前は開発中のものです。 mailto:sage [2015/01/28(水) 23:41:47.26 ID:gWUJCc9x.net]
- わずかな妥協さえ許さずチューニングに血道を上げ
DNSの応答時間すら惜しむ そりゃ比べる相手が悪すぎる
- 148 名前:名前は開発中のものです。 mailto:sage [2015/01/29(木) 00:04:26.59 ID:iAJNBuYX.net]
- 0.3を0.1にする前に,10が1になるツールを作ろう
- 149 名前:名前は開発中のものです。 mailto:sage [2015/01/29(木) 08:56:31.18 ID:KH1X7ZAq.net]
- メモリが多めのマシンだとChromeが最速だろうね
逆にChromeでメモリ不足に陥るマシンなら最速はFirefoxセーフモードかと
- 150 名前:名前は開発中のものです。 mailto:sage [2015/01/29(木) 09:36:37.60 ID:6+mjNHtZ.net]
- FirefoxはブックマークとかタブとかRSSあたりが使いやすい
あとはDuckDuckGoに対応してたりとか まあ好きな方使えばいいんじゃない?
- 151 名前:名前は開発中のものです。 mailto:sage [2015/01/29(木) 10:09:11.55 ID:c6VwBThb.net]
- Chromeの最低動作環境は一応メモリ512MB
タブをいくつ同時に開けるのか分からないが
- 152 名前:名前は開発中のものです。 [2015/01/29(木) 11:20:16.55 ID:XKuc65oW.net]
- JavaScriptとブラウザの速度が一緒くたにしてる。
ChromeはJavaScript不使用であってもメモリ食う。 ChromeにIE,FirefoxのJavaScriptエンジン搭載したらメモリ消費が減ると思えん。
- 153 名前:名前は開発中のものです。 mailto:sage [2015/01/29(木) 13:39:58.83 ID:c6VwBThb.net]
- ブラウザ全体が確保したメモリを使いまわしているのだろう
新しいのページ等はHTML5で書かれているので実質JavaScriptを完全にオフにはできない。 v8もメモリが十分にある環境だとメモリ使用量が200MBを超えたぐらいにならないとGCされない。
- 154 名前:名前は開発中のものです。 mailto:sage [2015/01/29(木) 13:45:00.34 ID:au4Qd8+o.net]
- C++でブラウザゲーム開発?
- 155 名前:名前は開発中のものです。 mailto:sage [2015/01/29(木) 15:54:12.53 ID:PqqQ3LUQ.net]
- ただの荒らしでは?
- 156 名前:名前は開発中のものです。 mailto:sage [2015/01/29(木) 19:20:51.28 ID:QDO0WN3U.net]
- >>150
emscripten?
- 157 名前:名前は開発中のものです。 mailto:sage [2015/01/30(金) 17:01:12.20 ID:1O7TniCL.net]
- 「国産フリーゲームの舞台をPCスタンドアロン(主にC++)から
ブラウザゲーム(クラウド、HTML5)やスマートフォンアプリ(非C++多)に移行」 させようという思惑を、最近この板でひしひしと感じる。
- 158 名前:名前は開発中のものです。 mailto:sage [2015/01/30(金) 17:49:20.89 ID:Uwc5t0gr.net]
- エサに飢えたスマホ厨や企業やその信者のステマ工作員だろ ほっとけ
- 159 名前:名前は開発中のものです。 mailto:sage [2015/01/30(金) 17:52:07.48 ID:9l7Lplvm.net]
- スマホはAppmethodというC++環境もあるが?
- 160 名前:名前は開発中のものです。 mailto:sage [2015/01/30(金) 18:28:39.45 ID:cceEvulu.net]
- 一般企業 : C++って難しいんでしょ?
奴隷商人 : 新しいxx言語やツールを使えば簡単ですよ 奴隷商人 : C++なんか使う必要ありません 奴隷商人 : 素人でもちょっと勉強すれば使えますよ 奴隷商人 : わが社では優秀なxx言語エンジニアを多く確保しています 奴隷商人 : 非常にリーズナブルな値段で派遣できますよ 一般企業 : じゃあxx言語とツールで開発するからnn人派遣して 奴隷商人 : まいどw 奴隷商人 : さてと在庫減ったし新しいボンクラ雇うかな、安い金でw 奴隷商人 : Appmethod? ボンクラがC++使えるわけねーだろw 奴隷商人 : うちは安さが売りなの C++プログラマ : 仕事ないすか? 一般企業 : うちはxx言語とツールで開発するからC++いらないよ 一般企業 : C++高くつくし ユーザ : みためはそれなりだけど、手抜き感ありありのクソゲー増えたな ユーザ : 今売れてる○○なんか△△をパクッて版権キャラゲーにしただけだし ユーザ : そのくせバグが多くて元の△△より面白くない
- 161 名前:名前は開発中のものです。 mailto:sage [2015/01/30(金) 18:54:29.18 ID:8M4ey3DN.net]
- まいどw
- 162 名前:名前は開発中のものです。 mailto:sage [2015/01/30(金) 19:11:37.72 ID:WJ9MDokc.net]
- >>156
C++でも買い叩かれる
- 163 名前:名前は開発中のものです。 mailto:sage [2015/01/30(金) 20:07:26.54 ID:eOqAWtJ/.net]
- (給与だけなら)Python最強、C++は微妙
プログラミング言語別求人給与額の第2位はRuby、第1
- 164 名前:位は? | 開発・SE | マイナビニュース
http://s.news.mynavi.jp/news/2014/11/04/084/ [] - [ここ壊れてます]
- 165 名前:名前は開発中のものです。 mailto:sage [2015/01/30(金) 20:33:11.20 ID:8M4ey3DN.net]
- >>159
件数の軸だけ見ると、Javaが断トツなんだな。 ま、自分はC++しかしないけど。
- 166 名前:名前は開発中のものです。 mailto:sage [2015/01/30(金) 21:50:27.80 ID:xDmuU9zY.net]
- 民度が高過ぎる(笑)。
自分は案件減や開発コスト軽減からC#やPHPに日和ってしまってるけど やっぱりちゃんとC++で「アセンブラレベルで何が起こってるか」意識した プログラムしないとダメになっちゃうかもね。
- 167 名前:名前は開発中のものです。 mailto:sage [2015/01/30(金) 23:02:06.31 ID:8M4ey3DN.net]
- >>161
C++は遣り甲斐があるぞ〜、と誘惑してみるw
- 168 名前:名前は開発中のものです。 mailto:sage [2015/01/30(金) 23:29:11.58 ID:lEERAgAH.net]
- 正直C++もC#も言語使用は簡単でしょ?
問題はオブジェクト指向とかアルゴリズムじゃないの?
- 169 名前:名前は開発中のものです。 [2015/01/30(金) 23:48:33.71 ID:mPLLQnOv.net]
- ラインパーティクルみたいな細長くて透明な部分があるテクスチャが
交差するときって どうすればいいですか? というか、Zソートってテクスチャが貼られた面の重心を使ってやるんですか?
- 170 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 00:04:49.27 ID:XljQIOh1.net]
- メモリを意識して書かないといけないのはC/C++くらいでないの
メモリアドレス扱う言語って他になんかある?
- 171 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 00:15:01.69 ID:vx9WzsVv.net]
- >>163
C++は根底にCとしての組み込み系やら、ドライバとかの知識が有るかどうかでかなり変わると思う まーもうニッチな世界になってしまってるけど、ゲームに絞るとコンシューマとかで何かを極めようとしたときに需要は有るかと
- 172 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 00:23:27.83 ID:08SnV/iE.net]
- ZソートってZバッファのかわりに遠い方から描くって意味?
厳密にやるなら、ポリゴンを無限平面とした場合に交差する他のポリゴンを 交差する線で分割する処理をすべてのポリゴンにして って文章で書いてもわかりにくいな。 分割のあとは2分木のクイックソートで、あるポリゴンの面から見て 別の比較するポリゴンが手前側か向こう側でソート判定する。 多分それなりに有名な方法と思うから検索すれば見つかると思うけど 手法の名前は知らない。 あと、赤黒木でもできるのかしらない。
- 173 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 01:24:39.63 ID:vx9WzsVv.net]
- プレステやらサターンの時のZソートなら、重心か頂点の順番忘れたが二頂点のZ値を加算したものでソートしてたよ
でも組み込み方としては実際にソートではなく、リスト構造で管理してたと思う だから解像度が低いとバキバキになってた wソートってのも出たけど、流行る前にZバッファでパフォーマンス出るようになって無くなったと思う
- 174 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 01:26:13.53 ID:H+AZbHjO.net]
- >>168
wソートってのがあったのかw 興味深いw
- 175 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 02:31:32.35 ID:MYAY0/XK.net]
- >>162
じつはC#でXNAやってたんよ。 C++に戻るということは、ここ数年で作った自分ライブラリと そこから呼び出しているXNAライブラリをDirectXに移植することを意味する。 けっこう大変だったり。 あとMonoGameが実用に足りるようになったらC#のままの方が楽というのも 正直、ある。C++でクロスプラットフォームの3Dライブラリがあれば 別なんだけど…。
- 176 名前:166 mailto:sage [2015/01/31(土) 02:34:23.55 ID:08SnV/iE.net]
- > 手法の名前は知らない。
多分、BSPツリー法だと思う。wikipediaにバイナリ空間分割でのってる。 wソートってどんなのかちょっと興味あるけど、説明されても難いと読ま
- 177 名前:ないだろうなw []
- [ここ壊れてます]
- 178 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 05:16:44.71 ID:dLJDPFMl.net]
- >>171
wバッファなら下にあったけど。たぶん今はwバッファとは呼ばない。 webcache.googleusercontent.com/search?q=cache:iuYaNXjit0oJ:www.daionet.gr.jp/~masa/column/98-06-25.html wソートははじめて聞いた。
- 179 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 08:12:54.84 ID:e0isyZ8t.net]
- C#ってある意味理想的な言語だよね
・オブジェクトはすべて参照渡し ・値は参照渡しは出来るが参照で持つことはできない ・共有したい変数はクラス(構造体)にする
- 180 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 08:17:29.88 ID:XljQIOh1.net]
- VBもそんな感じじゃなかったっけ
- 181 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 12:13:09.01 ID:H+AZbHjO.net]
- >>172
おお、川瀬さんのページか。 清水さんと交流あったんだな。 >>173 >・共有したい変数はクラス(構造体)にする C#がやたらクラスだらけなのはそういうことだったのか・・・
- 182 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 12:39:15.50 ID:jayN4xwq.net]
- C#って、構造体の参照渡しで「メソッド側で書き換え不可能」指定ができないのが難。
ref:入出力を兼ねる参照渡し out:出力のみの参照渡し(意外と便利) C++のconst 型 *やconst 型 &がないと言えばいいか。
- 183 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 12:44:18.35 ID:dP8uz4HA.net]
- Wソートってもしかしてローカルな話だったのか?
Zソートはリストだって話を書いたけど、そのリストを更にソートすることで込み合ってる部分を細かく前後入れ換える事で若干バリバリを押さえる感じだった 当時は描画よりも演算の方が圧倒的に早かったのとダブルバッファやトリプルバッファでの空き時間を有効にって感じだったよ でも自分では研究以外では使ってない 理由は当時は整数演算だったから、ほとんど効果が感じられなかったから
- 184 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 12:46:07.85 ID:ehZNZ4NM.net]
- 書き換えなきゃ良いだけだろ
なんでそんな事を言語仕様に入れなきゃならないんだ
- 185 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 12:51:54.53 ID:vx9WzsVv.net]
- >>178
書き換えちゃダメって言っても書き換える人が居るから言ってるんだと思うよ 全員自分なら楽な話だけどさ
- 186 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 12:55:33.58 ID:jayN4xwq.net]
- あ、連投ごめん。
上のリンク先とMSの解説で、ZバッファとWバッファの意味が逆になってる気がする。 https://msdn.microsoft.com/ja-jp/library/cc324546.aspx リンク先は「割るほうがWバッファ、割らないほうがZバッファ」、 MSだと「割るほうがZバッファ、割らないほうがWバッファ」に読める。 用語の混乱があるのか、自分が何か勘違いしてるのか。 で、Wソートって何? 昔のPSみたくバッファリングしないでポリゴン単位でソートするけど、Wでやるってことかね。
- 187 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 13:05:31.10 ID:+0dbs7Ey.net]
- const必要になるのはライブラリ作成とかチーム開発とかだろうし
ひとりでシコシコ作ってる分には別に不便もないよな コーディングルールは自分ルールだし
- 188 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 13:12:28.57 ID:H+AZbHjO.net]
- 自分も、自分用プログラムばっかり作ってて、const利用はハードコーディングな定数以外は0。
自分以外を考慮に入れると、たしかにconst修飾子は重要になると思うけど、 ある程度小規模なチームなら、ルールで十分賄えると思う。
- 189 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 14:06:11.93 ID:9fyUH/Hj.net]
- struct, classのコピーを避けるために参照・ポインタを多用してると確実にミス出るし
constは値を中身を書き換えない保障でもあるから、内部処理を忘れたときとかに役立つ
- 190 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 14:13:16.03 ID:ehZNZ4NM.net]
- オブジェクトの参照を渡し
- 191 名前:ス時に中身を書き換えてくれるなよ、という要求はある
それをC++のようにconstで表現するのがいいかどうか C#ではイラネってなったし要らないと思う [] - [ここ壊れてます]
- 192 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 14:18:46.16 ID:4UKOkNc6.net]
- ところで、const 同士の operater== は operater==(const) const; でいいのか?
最後の const で数時間悩んだんだが。ゲーム以外のところで…
- 193 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 14:47:44.78 ID:g0EkdIoS.net]
- friend operator == (const&, const&)
- 194 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 15:27:49.35 ID:PEZyYsg9.net]
- jbbs.shitaraba.net/sports/42269/
- 195 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 16:27:45.39 ID:4UKOkNc6.net]
- あー、ここで friend 使うのかサンクス。スレチすまん
- 196 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 19:40:50.51 ID:LvLYpCGK.net]
- 単に規約の問題だけじゃなくて。
constというかC#のreadonlyは構造体にも指定できるんだけど、 それを先述のref指定でメソッドに渡せないんだよ。 既存のライブラリでref指定(参照渡し)になっているものが 少なからずある。まあ別の変数に代入してから値渡しできるんだけど、 微妙にパフォーマンス落ちるでしょう。
- 197 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 22:35:54.52 ID:g0XZBTK4.net]
- const無しをデフォルトにしてしまうと,引数先で書き換えるのかどうか,引数からわからなくなるから
基本はconst参照だよね
- 198 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 23:12:04.08 ID:IlaPMJGi.net]
- constなしの参照だとrvalue取れないし。
全部コピー渡しですかそうですか
- 199 名前:名前は開発中のものです。 mailto:sage [2015/01/31(土) 23:45:24.01 ID:+0dbs7Ey.net]
- const付けたらコンパイル時に置き換えられるの?
- 200 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 02:38:02.64 ID:HEaS08Xq.net]
- #defineした変数をconstするとどうなるのっと
- 201 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 09:04:46.33 ID:4SXpmV3a.net]
- >>189
たまにそういうシチュエーションがあるけど、それを解決するために言語使用に手を入れるのは言語道断
- 202 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 16:13:17.17 ID:7SDWQ5Km.net]
- >>192
intとかならそうなんじゃないかな。 でもconstで定義されるのがクラスインスタンスの場合、 実行時に生成されるのでは(恐らくクラスに最初にアクセスした時)。 >>193 >#defineした変数 #defineはプリプロセッサで置換されるマクロに過ぎないよ。
- 203 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 16:38:17.15 ID:5cTwIokB.net]
- >>193
お前のconstでコードがやばい
- 204 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 16:38:49.06 ID:gTwIs5aq.net]
- template初めて使ったんだけど引数側に同じtemplate型があれば、
返り値をわざわざ指定しなくてもいいの? ↓こんなん template<typename T> T zeroCheckException(T t){ if(t == 0)throw; return t; }
- 205 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 16:44:02.52 ID:wN5YVAib.net]
- >>197
2つあるTはどちらも同じ型なんだから、むしろ指定できたらダメだろ 引数と同じ型を返す関数、という意味になっている 引数から推測できない型を返したいなら、typename を2回書けばいい template < typename R, typename T > R convertTo(T t) { return ... } string r = convertTo<string>(123);
- 206 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 16:59:29.96 ID:7TQeJfVA.net]
- >>197
>>返り値をわざわざ指定しなくてもいいの? 多分質問の意味からだと、返り値を引数と同じ型(T)で返したいなら返り値(の型)の宣言は必要 その部分はtemplateとは関係のない関数宣言の話で、template内はTと言う型が使えるようになっているだけだと思って関数を宣言すればOK だから、その関数が返り値を返す必要がないならvoid、intを返したいならintになる
- 207 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 17:45:05.57 ID:bGERJtUD.net]
- typenameとclassってどっちがモダンなん?
あるいは使い分けが必要?
- 208 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 19:03:59.15 ID:gTwIs5aq.net]
- ideone.com/bM0sAR
i.gyazo.com/a30bf7d11715dd37855cf8fc8a9be676.png 一度変数にしないと、とんでもない数値になるんだけどさっぱりわからない 計算してるわけじゃないから桁あふれで無いと思うんだけど
- 209 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 19:05:18.65 ID:gTwIs5aq.net]
- >>198,198
なるほど、ありがとう
- 210 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 19:24:29.40 ID:aP8gwvz+.net]
- >>200
常にclassを使用していて困ったことがない
- 211 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 19:33:48.11 ID:2nnmtHZB.net]
- class使ってる人を見たことがない
- 212 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 19:36:58.64 ID:mV3TuxIT.net]
- >>201
ideoneに張る意味ねえな。 最低限実行出来るようにしてから張れ。 その過程でここで質問するまでもなく解決することもある。
- 213 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 19:53:30.95 ID:I530QHNw.net]
- >>201
11行目のgetPositionをnextPosにしても駄目? 評価順は正しいとは思うけど最適化とかキャッシュとかで狂ってるのかな?と思いました しかし、難読化してるようなソースだな…
- 214 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 20:01:18.83 ID:mV3TuxIT.net]
- >>201
ヒント unitListが標準コンテナだとするとsize()の返す型はsize_t 多くの処理系でsize_tは符号無し 1-2uの結果は?
- 215 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 20:12:12.40 ID:2nnmtHZB.net]
- そんな問題じゃねーよw
- 216 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 20:29:03.32 ID:mV3TuxIT.net]
- >>208
(゚Д゚)
- 217 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 20:46:24.29 ID:eIbULHuy.net]
- >>200
これは俺ルールだが、 typenameはbool, int, doubleとかも使いたいとき classはクラスだけでいいとき
- 218 名前:199 mailto:sage [2015/02/01(日) 22:08:02.18 ID:0xVgzIN+.net]
- >>203>>204>>210
見事にバラバラだなー
- 219 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 22:50:33.72 ID:/xEMpT1p.net]
- classしか使わない派だが,template自体あまり使わないことにしてる
- 220 名前:名前は開発中のものです。 mailto:sage [2015/02/01(日) 22:52:09.95 ID:UZAipjiA.net]
- 自分はtypename派だな。
classに限定しない使い方が多いからというのがあるけどね。 ま、組み込み型も一種のクラスと見做せないことはないし、文字数少ない分、classのほうがいいかもしんないけど。
- 221 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 00:06:09.93 ID:WStqUBYk.net]
- もはやゲーム関係ない気がするのはミンナニ ナイショダヨ
- 222 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 01:35:39.62 ID:g0RkpJRz.net]
- て、テンプレ使えれば前以上に楽ができるかもしんないし!
なお移植性が壊滅的に下がる模様
- 223 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 04:07:49.86 ID:lvNA0Ulc.net]
- テンプレート使って移植性が下がるってここの住民は一体いつの時代に生きてるんだろうか
- 224 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 08:53:14.68 ID:9YOvsS+B.net]
- 俺もテンプレート自体使わないな
過去の遺物だろあれ
- 225 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 09:10:16.63 ID:QEPcxUVH.net]
- >>217
ダメだこいつ…早くなんとかしないと
- 226 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 09:50:21.86 ID:pbbvOQ2U.net]
- VSのバージョン上がるたびにどこかしらテンプレートで書いたところの書き直しが待ってるんだよな
MPLに手を出すと他の処理系でまた違う方言で困るし
- 227 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 10:05:53.54 ID:ZKghX0zO.net]
- バージョン上がるたびに、ってほどテンプレートに手入ってたっけ?
むしろ、いままでコンパイルを通すためにいちいち">"と">"の間にスペースを入れていたのが 入れる必要なくなったとか、そういう方面の変更しか知らないんだけど
- 228 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 10:33:54.29 ID:TF5MhFQ8.net]
- だいぶこなれてきたから、できないことができるようにはなっても、逆は無いと思うぞ
確かにC++03時代は typename が急に必要にされてエラーになるのはあったけど 気になるなら互換性を吸収するラッパーとしてboostを使うのも手だな
- 229 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 11:10:10.63 ID:pbbvOQ2U.net]
- 最近変えたところだと
enable_ifが無い頃の代替としての部分特殊化のコードが 2012では通ってたのに2013でC2753で通らなくなって 代わりにenable_if使えるからそれになって 2015でconstexprあるからそこはテンプレート要らないだろうなて状態だわ なんでエラーなのか追いかけるの面倒だから新機能で凌いでる boostのを最初から使えばいいんだけどライブラリのバージョンアップが面倒でね
- 230 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 11:30:47.44 ID:uEPb5G0x.net]
- テンプレートが悪いというよりVSの実装が
- 231 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 12:44:55.25 ID:QEPcxUVH.net]
- STLもテンプレートなのに
- 232 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 13:21:17.62 ID:ZKghX0zO.net]
- SFINAE周りは確かに、C++11でようやく統一仕様が策定されて多少手を付けやすくなった印象がある
>>224 テンプレートを使ってるライブラリを使うのと テンプレートなクラスや関数を自分で作るのとは 結構隔たりがある気がする…
- 233 名前:名前は開発中のものです。 [2015/02/02(月) 13:54:32.94 ID:fu9cgs9q.net]
- スタンダードテンプレートライブラリ(の構想・実装)が先にあってC++で実装するためにテンプレートが導入された。テンプレートはSTL実装のための道具といえる。
Standard Template Library - Wikipedia STLのアーキテクチャの多くはアレクサンドル・ステパノフという一人の人物の手によって作られた。 1979年に彼はジェネリックプログラミングの初期アイデアを練り始め、そしてソフトウェア開発に革命をもたらす可能性を探究し始めた。 当時はジェネリックプログラミングを実際にサポートしているプログラミング言語がまだなかった。 それをサポートする最初のメジャーな言語はジェネリックユニットの機能があるAdaであった。 1987年までにステパノフとマッサーはジェネリックプログラミングの研究成果としてAdaのリスト処理ライブラリを開発してリリースしていた。 C++は当時まだ言語として未成熟ではあったものの(テンプレートはまだなく後から実装された)、より広く普及してジェネリックプログラミングの良好なサポートが提供される可能性が高いと考えられた。
- 234 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 14:52:33.01 ID:bbrlQEEY.net]
- で、結局>>201はuintの減算でオーバーフローしてるってことでいいのか?
int - uintがintにキャストされれば大丈夫そうな気がするけど
- 235 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 15:26:46.03 ID:u58PP6hj.net]
- 桁あふれや型違いの時に起こる超数値に見える
- 236 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 16:37:35.11 ID:lvNA0Ulc.net]
- そんな問題じゃねーよさんが解決してくれるさ
- 237 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 17:14:57.39 ID:ZKghX0zO.net]
- 直接的な解決策や原因は分からないけど、俺なら
・「unitList.size()*140」を「unitList.size()*140.0f」にして直るか確認する ・set/getPositionXを通さなかったらどうなるか確認する(当該メンバ関数の実装が自明である場合を除く) ・コンパイラの警告設定を最強にしてみて、何かメッセージが出るか確認する あたりをやってみると思う
- 238 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 18:13:33.41 ID:NKDBUGQv.net]
- で、ゲーム制作だと意識して。
開発環境を開発中やデバッグ中に更新するとか無いだろ 移植で困ることは判る
- 239 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 18:39:29.29 ID:u58PP6hj.net]
- 新しい開発環境に新規実装された要素どうしても使いたかったんだ…と推測(適当)
CやC++とはあまり関係ないけど、 一部の開発環境では、関数や変数を書いた行にコメントしとけば カーソル合わせるだけでコメントが出るのでメモ代わりにできるな なおソースがコメントだらけになり、よそに貼った時に失笑物のソースになる模様
- 240 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 19:31:16.34 ID:lvNA0Ulc.net]
- ideone.com/3SPXKz
ほぼ答えのヒント張っても理解できてないアホがいっぱいいるんで再現させてやったぞ >>208 で、どんな問題だったんですかね?
- 241 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 20:49:55.23 ID:0Y8pqiU9.net]
- 色々試してみたけど、オーバーフローしたuintを直接floatにキャストするのがダメっぽいね
一回intにキャストすれば大丈夫だった int - uintはintになるってわけじゃないのね テストコード #include <iostream> int main() { int i=3; size_t ui = 5; float x = i-ui; float x2 = i - static_cast<int>(ui); int x3 = i - ui; float x4 = static_cast<int>(i-ui); std::cout << x << std::endl; std::cout << x2 << std::endl; std::cout << x3 << std::endl; std::cout << x4 << std::endl; std::cout << static_cast<float>(i-ui) << std::endl; }
- 242 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 21:20:46.80 ID:lvNA0Ulc.net]
- >>234
intで表現出来ない値をintへcastしたら桁あふれで未定義動作
- 243 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 21:33:08.99 ID:MkYgWBqp.net]
- >>235
未定義になる可能性のある演算は暗黙のキャストしてくれないって事?
- 244 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 21:39:18.84 ID:lvNA0Ulc.net]
- >>236
違う intとunsigned intの演算結果はunsigned int もちろんunsigned intはマイナスを表現出来ない、なので0-1uはUINT_MAXになる。(符号無し整数は桁あふれしても未定義動作ではない) でも符号あり整数の桁あふれは未定義動作なのでUINT_MAXをintへキャストするのは未定義動作 まぁ大抵の処理系では動くだろうけど。
- 245 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 21:57:25.95 ID:MkYgWBqp.net]
- 符合ありなしで演算すると符合なしになるのか
なるほどねー
- 246 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 22:39:56.06 ID:4aJa1XJJ.net]
- 混ぜるな危険
- 247 名前:名前は開発中のものです。 mailto:sage [2015/02/02(月) 22:40:47.51 ID:AAW+YNQa.net]
- >>239
いいねw
- 248 名前:名前は開発中のものです。 mailto:sage [2015/02/03(火) 00:10:07.19 ID:0Nhy8xyl.net]
- これそもそも size_t が unsinged int なのが悪いんだよな、頭悪すぎ
- 249 名前:名前は開発中のものです。 mailto:sage [2015/02/03(火) 02:08:59.87 ID:YnXnr0TR.net]
- size_tはsizeofで測ったデータの長さを受け取る物だからよ
データの長さに0未満はあり得ないから定義できないようにしてるんだろう
- 250 名前:名前は開発中のものです。 mailto:sage [2015/02/03(火) 04:00:41.53 ID:WscpFvcA.net]
- 質問です。
抽象クラス(親クラスとする)を継承した派生クラス(子クラスとする)を 親クラスの型のメンバー変数に子クラス型でnew()し、抽象化して保持してます。 このメンバーをdelete してすぐNULLを代入しても、参照が残ってるみたいで エラーでる場合があります。 抽象化しているオブジェクトの削除の、お作法みたいなものってありますでしょうか。
- 251 名前:名前は開発中のものです。 mailto:sage [2015/02/03(火) 04:32:33.06 ID:UaiJdd2F.net]
- >>243
スレ違いです こちらへどうぞ peace.2ch.net/test/read.cgi/tech/1420379468/
- 252 名前:名前は開発中のものです。 mailto:sage [2015/02/03(火) 04:40:14.90 ID:WscpFvcA.net]
- >>244
ありがとうございます。
- 253 名前:名前は開発中のものです。 mailto:sage [2015/02/03(火) 13:03:57.60 ID:vrraL4+G.net]
- スレはあってるけど板が違う的な。
まあ、ゲーム関係かどうかの境目って結構曖昧だけれども。
- 254 名前:名前は開発中のものです。 mailto:sage [2015/02/03(火) 13:07:01.87 ID:IeF+/7iv.net]
- いずれにしろコードもなしに質問されてもエスパーしか回答出来ないですし
- 255 名前:名前は開発中のものです。 mailto:sage [2015/02/05(木) 07:36:31.37 ID:gQYa1HB0.net]
- 開発期間が長すぎて、開発環境が何度も変わるのってどう思いますか?
開発環境を固定する?それともコードを書き直して対応する?
- 256 名前:名前は開発中のものです。 mailto:sage [2015/02/05(木) 08:11:52.44 ID:6fCmneha.net]
- boost辺りならまだしも、言語自体のバージョンが上がるまでって
一体どんだけ開発期間が長いか間が悪いんだよ… どうしても使いたい追加要素でもなければ変えない トラブルの素
- 257 名前:名前は開発中のものです。 mailto:sage [2015/02/05(木) 09:22:24.85 ID:JByM0e2E.net]
- CSのSDKとかじゃないの?
開発序盤なら対応、終わりが見えてたらそのままってのが普通だと思うけど
- 258 名前:名前は開発中のものです。 mailto:sage [2015/02/05(木) 10:05:22.41 ID:tVSHsnYT.net]
- 昔VS2008から2010に上げたけど特に問題は起きなかった
- 259 名前:名前は開発中のものです。 mailto:sage [2015/02/05(木) 12:20:47.44 ID:qWgtWrzH.net]
- vsの2005から2012に上げたら、Releaseでは動くけどdebugでは動かなくなった
自前で作ってた文字列クラスが弾かれたから、現在、std::wstringに置き換え中
- 260 名前:名前は開発中のものです。 mailto:sage [2015/02/05(木) 17:18:01.03 ID:grWdPzSP.net]
- >>248
何年にもわたって開発を続けていくようなものなら あんまり気にせずに変えちゃう
- 261 名前:名前は開発中のものです。 mailto:sage [2015/02/05(木) 19:05:51.48 ID:IWRqO40R.net]
- iOS向けなら変えざるを得ない
- 262 名前:名前は開発中のものです。 mailto:sage [2015/02/05(木) 19:45:56.22 ID:ckteJ+s1.net]
- プロの人も来てるのかも知れないけど、同人ならぶっちゃけ
DirectX9辺りの技術基盤があれば十分じゃないの。 新技術に取り組むこと自体が目的化して、ゲームを完成させる方が 疎かになってしまうって、何かありがちな気がする。
- 263 名前:名前は開発中のものです。 mailto:sage [2015/02/05(木) 22:51:52.09 ID:EoFgZ44U.net]
- 別に必要ないなら使わなければいいんです、エロい人にはそれが分からんのです
- 264 名前:名前は開発中のものです。 mailto:sage [2015/02/06(金) 08:51:59.99 ID:J5odCBuG.net]
- だまれ朝鮮人
- 265 名前:名前は開発中のものです。 mailto:sage [2015/02/06(金) 08:53:55.71 ID:u5/2KnVF.net]
- idがバグ
- 266 名前:名前は開発中のものです。 mailto:sage [2015/02/06(金) 09:00:23.95 ID:12AknHRs.net]
- >>255
DirectXがそもそも出来ない人が話に混じってるだけだから気にしない方が DXライブラリ程度でいいんじゃないかな?同人なら 自作ライブラリ作れる人ですら少ないよ
- 267 名前:名前は開発中のものです。 mailto:sage [2015/02/06(金) 11:05:36.91 ID:vDg1pnk8.net]
- 面白けりゃ何でもいいんだよ。
- 268 名前:名前は開発中のものです。 mailto:sage [2015/02/06(金) 14:58:45.96 ID:1vhL8u+G.net]
- もとの環境で大体完成していたのに、
無理やり次世代機用に作り直そうとしたがうまくいかず、 そのまま爆死した家庭用機向けソフトのプロジェクトなら知ってる
- 269 名前:名前は開発中のものです。 mailto:sage [2015/02/06(金) 17:34:24.75 ID:12AknHRs.net]
- >>261
RomからCD-ROMへの移植は苦労が多かった ROMの容量が4Mバイト超えてるとRAMご足りなくなって、動的に入れ換えしようとするとリソースのマネージメントが大変だったから
- 270 名前:名前は開発中のものです。 mailto:sage [2015/02/06(金) 22:49:06.68 ID:qIQhbqny.net]
- しかもそれだけ苦労したにもかかわらず、ロードが遅いと文句言われたに違いない…。
- 271 名前:名前は開発中のものです。 mailto:sage [2015/02/07(土) 13:13:21.00 ID:uCqCiOK0.net]
- >>261
PS3だな そうに決まってる
- 272 名前:名前は開発中のものです。 mailto:sage [2015/02/07(土) 13:42:24.95 ID:buz4BGGO.net]
- >>252
置き換えたらさらに別の場所が動かなかったから2013へと移行したりw いや、ネットでは動くコードと書かれているんだよ、2013からは動くと うちのPCで2013はマトモに動くかな?今インストール中だが
- 273 名前:名前は開発中のものです。 mailto:sage [2015/02/07(土) 14:45:09.34 ID:84N483gz.net]
- ヘッダで前方宣言したはずのクラスがCandidates are: struct SimpleAudioEngineとエラーを出され
定義でreference to 'SimpleAudioEngine' is ambiguousとエラーを出されます ヘッダではポインタしか使ってません 思うところがあるとすればSimpleAudioEngineの名前空間をusing namespaceしてるぐらいです
- 274 名前:名前は開発中のものです。 mailto:sage [2015/02/07(土) 14:58:01.00 ID:tCXn
]
- [ここ壊れてます]
- 275 名前:t3yJ.net mailto: >>266
http://melpon.org/wandbox/permlink/8WYv9UpPeF3DROcf [] - [ここ壊れてます]
- 276 名前:名前は開発中のものです。 mailto:sage [2015/02/07(土) 16:04:21.06 ID:ns5GMSPv.net]
- 異なる名前空間の中で前方宣言すると別物だとみなされて
あとでusing namespaceすると区別できない
- 277 名前:名前は開発中のものです。 mailto:sage [2015/02/07(土) 19:26:49.25 ID:buz4BGGO.net]
- 開発環境をvs2012からvs2013に変更したのは大当たりだった
エラーの位置は分かりやすくなったし、デバッグ機能は大幅に強化されてるし、 文字列クラス(std::wstring)は扱いやすくなったし、全般的に軽くなった
- 278 名前:名前は開発中のものです。 mailto:sage [2015/02/07(土) 20:51:50.60 ID:G8afa58Z.net]
- std::wstringって何か変更あったっけ?
- 279 名前:名前は開発中のものです。 mailto:sage [2015/02/07(土) 23:10:30.01 ID:buz4BGGO.net]
- operaterがほとんど対応してなかったんだよ。
+=はあるのに+は無いとか、map<wstring,wstring>で使えないとか。
- 280 名前:名前は開発中のものです。 [2015/02/07(土) 23:18:38.16 ID:17zrnW4A.net]
- ためしてないがそれはないだろ。
あとSTLやC標準ライブラリ、C++標準ライブラリは備え付けのを必ずしも使う必要がない。 実装は多数ある。
- 281 名前:名前は開発中のものです。 mailto:sage [2015/02/07(土) 23:55:35.77 ID:tCXnt3yJ.net]
- たまたまインストールされてるのがVS2012だったから試してみたが普通に使えた
- 282 名前:名前は開発中のものです。 mailto:sage [2015/02/08(日) 00:06:03.58 ID:uih1DHvo.net]
- あれ?って事は、vs2005を後から入れたせいでおかしくなってるのか??
- 283 名前:名前は開発中のものです。 mailto:sage [2015/02/08(日) 00:15:39.03 ID:uih1DHvo.net]
- UMLのツールを買ってみて、たまたま家のVSで対応してるのが2005だけだったから、
後からインストールし直したんだよな そっか、VS2005のコードでC++のコードが上書きされてたか
- 284 名前:名前は開発中のものです。 mailto:sage [2015/02/08(日) 00:52:07.50 ID:iVwSBW/g.net]
- とんでもない話だなw
- 285 名前:名前は開発中のものです。 mailto:sage [2015/02/08(日) 01:13:03.19 ID:sR/2PkWV.net]
- VC6でもoperator+位あったような気もするけど
不便な所は連続したメモリ領域の保証が無いから 実装上はともかく厳密にやろうとするとvectorじゃないとダメな所
- 286 名前:名前は開発中のものです。 mailto:sage [2015/02/08(日) 09:15:03.02 ID:dvv+ci6w.net]
- 連続領域かどうかに関しては
- vector C++03/11 → 連続保証 - string C++03 → 実装依存 / C++11 → 連続保証 らしいぞ。 最近のVCなら大丈夫なんじゃないかな。
- 287 名前:名前は開発中のものです。 mailto:sage [2015/02/08(日) 13:48:18.26 ID:vuQZMEzS.net]
- 連続性が保証されるようになっているとはな
外見は変わらなくても内部は少しづつ変わってるんだな
- 288 名前:名前は開発中のものです。 mailto:sage [2015/02/08(日) 13:51:09.60 ID:iVwSBW/g.net]
- 地味ではあるが重要なことだな。
- 289 名前:名前は開発中のものです。 mailto:sage [2015/02/08(日) 13:58:02.91 ID:uih1DHvo.net]
- mallocのメモリ配置はOSで変わるんじゃなくてコンパイラで変わるみたいやね
- 290 名前:名前は開発中のものです。 mailto:sage [2015/02/08(日) 15:05:56.00 ID:OpMqb989.net]
- 依存するのはコンパイラじゃ無い
ランタイム依存
- 291 名前:名前は開発中のものです。 mailto:sage [2015/02/09(月) 20:39:13.54 ID:q5WWprzE.net]
- なんにせよ、ポインタはむやみにいじらない方がよさそうね
- 292 名前:名前は開発中のものです。 mailto:sage [2015/02/10(火) 22:00:30.08 ID:Lg1oqTmd.net]
- ポインタは使い勝手がわかると色々出来るが、無くても問題無くなってきてるからなぁ……
- 293 名前:名前は開発中のものです。 mailto:sage [2015/02/10(火) 23:49:52.25 ID:2hfNPcff.net]
- それなりのもの作ろうとしたらアロケーター自作になるゲーム制作はポインタ必須なんじゃないの
- 294 名前:名前は開発中のものです。 mailto:sage [2015/02/10(火) 23:59:52.09 ID:m/pIKos0.net]
- プラットホームによるとは思うが、いまだにカスタムアロケータなんて使うのか?
OSや言語処理系を書いているわけではないだろうに
- 295 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 00:01:51.67 ID:7TGiUCxx.net]
- 車輪の再発明が好きなんだろ
- 296 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 00:26:12.68 ID:IKslX+U4.net]
- 流石にOSデフォルトのアロケーターは使わないんじゃないの
ライブラリのメモリプール使うにしてもポインタは使うだろうし
- 297 名前:名前は開発中のものです。 [2015/02/11(水) 00:38:39.31 ID:5bVnp7SH.net]
- アロケーターはC言語かSTLのやつのことだろ?
OS自体のメモリ管理はOS自体のソースからビルドしないと変更むりでは。
- 298 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 00:41:52.28 ID:IKslX+U4.net]
- 普通にnew、deleteしたらOSのAPIでメモリ確保
- 299 名前:するんでないの?
STLはどうかわからんけど [] - [ここ壊れてます]
- 300 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 00:51:21.24 ID:rJC6nJDr.net]
- >>289
mallocの置き換えぐらいリンクするライブラリー変えるだけだよ tcmallocでググれ
- 301 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 00:52:08.05 ID:vZk9YDm5.net]
- new deleteの動作なんて実装によるとしか言いようがない
STLのstd::allocator<T>の話なら、単にnewとdeleteを呼び出す実装になってる
- 302 名前:名前は開発中のものです。 [2015/02/11(水) 00:59:11.50 ID:5bVnp7SH.net]
- mallocやnewを置き換えてもOSの命令を使ってたら
OS自体のメモリ管理の制約は受けるわけで。 OSと完全に独立できるものか? OSが既に管理してるところを横取りしないとならないが。
- 303 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 01:01:23.93 ID:WPu+kv42.net]
- ちょっと前に「ゲームの場合、出現オブジェクトの個数に上限を設けることが多いから
new deleteせず自分でプールを確保する手もある」という話をしなかったっけ。 とりあえずstd::allocator<T>で書いといて、あとでカスタム化してもよいのでは。
- 304 名前:名前は開発中のものです。 [2015/02/11(水) 01:03:22.28 ID:5bVnp7SH.net]
- malloc - Wikipedia
OSのカーネルでもアプリケーションと同様にメモリ確保が必要である。 カーネル内にもmalloc相当の関数はあるが、その実装はCライブラリのものとは大きく異なる。 例えば、DMA用のバッファには特別な制限が課せられることがあるし、割り込み処理でメモリを動的に確保したい場合もある。 このため、カーネルの仮想記憶サブシステムと密に連携した malloc 実装が要求される。
- 305 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 01:04:29.98 ID:rJC6nJDr.net]
- 余程特殊な用途でないかぎり既成の物使った方が速いから
- 306 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 01:06:40.34 ID:IKslX+U4.net]
- 自作アロケーターは最初に領域確保してその分を切り盛りするでしょ
ていうかそれ以外の作り方を知らない
- 307 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 01:06:46.81 ID:rJC6nJDr.net]
- >>295
スレ違い お前はゲームをOSから作るんか?
- 308 名前:288 [2015/02/11(水) 01:16:23.87 ID:5bVnp7SH.net]
- >>288に対して、自作アロケータ、マイアロケータってのは
ほとんどのケースで、OSデフォルト、カーネルアロケータに依存してるだろ?って反応なわけで。
- 309 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 01:32:15.63 ID:rJC6nJDr.net]
- そうだな
>>288 が言ってるOSデフォルトってのが悪かった。 アプリケーションが使うメモリアロケーターの殆どの実装はライブラリが行ってる。 OSからシステムコールでブロック単位でメモリを貰いアプリケーション内で分配な。
- 310 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 01:41:17.25 ID:IKslX+U4.net]
- すんませんVC++のメモリ確保がWin32APIの関数呼ぶだけって何かで見たからそういうもんだと思ってました
- 311 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 01:49:31.11 ID:tga+SBCo.net]
- >>297
アプリケーションとしてのゲームはこれで確定だと思ってた 動的と言えば動的だけど都度都度確保はあり得ないって意味でこの手の話はスルーしてたけど、そう言うものでも無いみたいだと知ったわ 取れなかった場合の処理は思い付かないけど
- 312 名前:名前は開発中のものです。 [2015/02/11(水) 01:55:07.09 ID:5bVnp7SH.net]
- ヒープ、動的確保は丸投げに近いが。普通のauto変数とかは最初に確保した領域を使いまわす。
メモリの4 領域 brain.cc.kogakuin.ac.jp/~kanamaru/lecture/MP/final/part06/img6.png brain.cc.kogakuin.ac.jp/~kanamaru/lecture/MP/final/part06/node8.html テキスト領域:機械語に翻訳されたプログラムが格納される. この機械語の命令が 1 行づつ実行されることでプログラムが動く。 静的領域:グローバル変数などの静的変数が置かれる。 ヒープ領域:メモリの動的管理 (C 言語の malloc 関数や C++ の new 演算子でメモリを確保すること) で用いられる。 スタック領域:今回の演習で扱ったように CPU のレジスタを一時的に退避させたり、また C 言語の自動変数 (
- 313 名前:多くのローカル変数) が置かれる。 []
- [ここ壊れてます]
- 314 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 02:24:49.00 ID:COJ2IR9k.net]
- いわゆるメモリープールのようなものは既にランタイムに実装されてる場合もあるし
自分で実装する・しないは実行環境によると思う。 最近はこの辺のことは既に当たり前になってるのかどうか知らないけど、 検索してもあまり引っかからないね。とりあえず引っかかったところ vcpp-ml.ldblog.jp/archives/1169943.html ではVCのランタイムのソースみればとなってるので 興味ある人は読んでみては。
- 315 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 02:41:42.58 ID:0cWu/C1d.net]
- 俺が昔作ったベンチ引っ張り出してきた
10000個確保して解放を1セットで、10回繰り返す malloc 0.0104349686516726 100 new 0.0170437163409596 163.332702856062 tlsf 0.0327989992535455 314.318138831095 右側がmallocを100とした場合の倍率。意外とtlsfは遅い。 んで下が自作のメモリアロケータでnewとdeleteをオーバーロードしてて 上で使ったnewするソースをそのまま使ってる。 fixpool 0.01086365697986310 104.108189899754 fixpool-ss 0.00270476282206395 25.9201815774541 アルゴリズムは一回使ったものをリストにつなげておいて、newのとき取り出すだけ。 ssは上限が分かっている場合で、先にメモリ確保するのでmallocを上回れる。 まぁ、はっきり言って速度だけを考えると自作アロケータの必要はないかなレベル・・・と思う。 確か、スマートポインタのベンチもどっかにあったはずなんだが、どこだったか・・・
- 316 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 02:52:05.14 ID:IKslX+U4.net]
- >>304
ゲームエンジン•アーキテクチャ(ソフトバンククリエイティブ)によれば、デフォルトのnewが遅い理由は管理コストとOSのコンテキストスイッチとあるけど URL先の内容からすると最初に確保された分越えなければコンテキストスイッチは発生しないって事なんかな ていうか2000年の時点でそういう仕様だったのか
- 317 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 02:52:16.60 ID:rJC6nJDr.net]
- >>305
その自作アロケーターって複数スレッドから呼んでも大丈夫なように作ってんの? だったらたいしたもの。 今時モバイルですらマルチスレッドが当たり前だからベンチマークも複数スレッドで実行すべき。 スレッド使うライブラリーをリンクしないとシングルスレッド版のmallocとリンクする環境もあるし
- 318 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 03:06:07.85 ID:rJC6nJDr.net]
- >>306
ライブラリが貧弱な環境だと効果はあったんじゃない? ライブラリが貧弱で有名だったPS3とか。 ゲームエンジン アーキテクチャって本PS専門デベロッパーだった人の著書みたいだし
- 319 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 03:24:52.81 ID:tga+SBCo.net]
- >>307
データ読み込みや通信で「now loading…」、ムービー再生とか以外でマルチスレッドって何に使うの? いろんな判定でシングルでないと困らない? 俺はコンシューマ長すぎのせいか、マルチスレッド(タイムスライス型)は、そもそもゲームシステムとして実装が思い付かない どうしてもタスク()で疑似マルチしか作れないや
- 320 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 03:29:13.74 ID:0cWu/C1d.net]
- >>307
ポインタのつなぎ替えの部分に一応クリティカルセクション使ってる。 が、これのベンチがねぇ・・・ 複数スレッドで同時に確保しまくって人為的にコリジョン起こしても、 シングルの場合と違って純粋な値が取れないので。
- 321 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 03:54:41.50 ID:0cWu/C1d.net]
- スマポあった。同じく10000を10回。
new 0.00696283003770957 100 sha
- 322 名前:red_ptr 0.039324851409757 564.782584046715
生ポインタとboostのshared_ptrね。 下が自作のリンク方式とカリカリにチューンした参照カウント方式のスマートポインタ。 link 0.0273835524999122 393.281932082318 count 0.0157994938635595 226.911956460117 これも、安全をとるなら生より多少遅くてもboostで十分と思う。 自作のスマポは労力の割にはねぇ。 [] - [ここ壊れてます]
- 323 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 04:10:32.63 ID:0cWu/C1d.net]
- 書き忘れてた。>>305はゲームに近いように
10000まで{ 4, 10, 20, 100, 208, 501 }のサイズを巡回して確保していってる。 >>311は同じオブジェクトをずーっと生成してる。 こうするとnewがなぜか結構速いんだけど、その状態で対決してみたかったので。
- 324 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 08:00:15.92 ID:JqfHYvpf.net]
- んーなんか車輪の再発明がどんどん無駄になってくのな
必要な機能が既存のコードにあるなら、わざわざ作る必要は無い、みたいな
- 325 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 08:08:59.24 ID:JqfHYvpf.net]
- 自分は今は自作コンパクションを使ってるけど、これも誰かの作ったコードを流用した方が早い時代が来るのかな?
- 326 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 08:40:48.37 ID:45+5SbHz.net]
- >>309
MTフレームワークの例 www.4gamer.net/specials/3de/lost_planet/lost_planet_04.shtml
- 327 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 13:02:10.23 ID:tga+SBCo.net]
- >>315
これの詳細を知ってるが、レンダリングはPCだとGPU処理だから、マルチスレッドとは別で非同期でしょ? それ以外は先程書いた通り 因みにこのフレームワークは自動変数(スタック)以外はメモリは静的に持ってるよ
- 328 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 13:10:49.29 ID:vZk9YDm5.net]
- ガチな将棋AIとか作ることになったらやっぱりCPUスレッド数のスレッド作って読みを分散するんじゃなかろうか
- 329 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 13:40:34.62 ID:sOoti607.net]
- どうせなら複数マシンに分散させるべき
- 330 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 14:57:37.67 ID:/JcbXeo3.net]
- そもそもメモリ管理なんて個人でやるものじゃないよ
せいぜいオブジェクトプールのように局所的なところで使ったほうがいい 自作アロケータを使ってみたい気持ちはわかるんだけどねぇ
- 331 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 15:06:24.20 ID:rJC6nJDr.net]
- >>309
シングルスレッドでパフォーマンス十分なら要らないんじゃない? その場合アロケーター自作しようとする理由すら解らなくなるけど。 レンダリングスレッドを分けるってのは比較的簡単だからよく使われてる方法だね。 グラフィックスのAPIが全て非同期という訳でもないし、呼ぶ事自体比較的コストが高いものもあるドローコールとか あとGPUが全てやってくれるわけでもない。 影とかモデルの持ってるマテリアルによってはマルチパスレンダリングが必要になるしね それら含めて一つの独立したスレッドでレンダリングを行うって事 どこまでやるかはそれぞれのゲームエンジンの実装次第だけど
- 332 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 20:31:12.70 ID:IKslX+U4.net]
- PS3なんかはは汎用コアが貧弱でマルチスレッド使わないとまともに動かないらしいけど
PCはターボブーストなんかもあるし処理分割しなくてもそれなりに動くのかね ゲームで重い処理って言ったらAIとか物理演算とか? それらやらなきゃコア使い切る事もなさそう
- 333 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 22:28:39.42 ID:o3rdwdSA.net]
- 自分の場合、(作ったのはC#とXNAだったけど)
・更新 非同期・4体のキャラの思考ルーチンをマルチスレッドで(他のキャラの状態は前フレームのものを利用)。 同期・同時に行う必要のある判定類。 非同期・4体のキャラのアニメーション演算(*) ↓ ・描画(スキップされることがある) 非同期・キャラの描画コマンド発行(ただし、4体それぞれに(*)を同期)。(**) 同期 非同期・背景などの描画。 ↓ ・更新 ※未了のタスクがあればいったん待機して、最初と同じ。 ということはやっていた。じつはXNAは(**)が異様に重くなるというハンデ持ちで、 (*)はC++だろうと当然重いはずだから、パフォーマンス上がると思うよ。
- 334 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 22:33:55.73 ID:o3rdwdSA.net]
- 連投悪い。
というか、マルチコアのCPUなのにシングルで動作させてるって、同人ならともかく 商用ゲームだとハードを全然使いこなせていないんじゃないの。 仮にPS3相当かそれ以上のハードで、シングルで楽々動くゲームがあるとしたら、 それは「CPUスゲー!」じゃなくて「CPUを遊ばせている未熟なプログラム」 もしくは「絵的にボリューム不足」「敢えてシンプル路線のゲームにしただけ」だと思う。
- 335 名前:名前は開発中のものです。 mailto:sage [2015/02/11(水) 23:00:37.92 ID:DLujIAOi.net]
- 妖精左「マルチスレッド!!」
妖精右「マルチタスク!!」 俺「じっそうできればいいから・・・」 部長「ま だ か は や く し ろ 。」
- 336 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 00:02:20.82 ID:ebWGGwik.net]
- >>323
C#なんて全然ハード生かせないだろC++で作れよ
- 337 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 00:29:15.74 ID:DJBGtoR8.net]
- C++至上主義の時代はもう終わった
- 338 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 00:32:29.34 ID:UV0J6V6h.net]
- まだだ!まだ終わらんよ!
- 339 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 02:23:42.32 ID:U9NT4imE.net]
- さっき始まったばかりですよ
- 340 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 02:30:04.64 ID:rNOcVIpi.net]
- >>323
たしかにC#だと、ネイティヴDirectX呼び出す時点でカーネル切替が発生し、ボトルネックになる (ただ一方、GCはちょっと工夫すればシーン切替時以外は抑制できる)。 まあC++が最強という事実は揺るがないし、だからここを覗きに来てるんだけど 今まで作った資産をそっくり移植するのは全部1人開発だと工数的に厳し過ぎるんよ。 自分はあくまでゲームを完成させるのが主眼なもんで。
- 341 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 02:30:45.99 ID:rNOcVIpi.net]
- >>325だった。
- 342 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 09:37:50.92 ID:ebWGGwik.net]
- >>329
> 仮にPS3相当かそれ以上のハードで、シングルで楽々動くゲームがあるとしたら、 > それは「CPUスゲー!」じゃなくて「CPUを遊ばせている未熟なプログラム」 > もしくは「絵的にボリューム不足」「敢えてシンプル路線のゲームにしただけ」だと思う。 こんなこと言う人間が > 自分はあくまでゲームを完成させるのが主眼なもんで。 なんてよく言えるな
- 343 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 09:58:41.94 ID:DJBGtoR8.net]
- Unityの台頭とC++erの更なる没落
- 344 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 10:00:56.62 ID:K+V6X3Ce.net]
- 社員さん、ステマ乙
- 345 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 10:16:24.93 ID:xZrWsSkn.net]
- 世界は使いやすい道具の前にひれ伏す
これが分からない奴は一生地を這う
- 346 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 10:44:14.01 ID:K+V6X3Ce.net]
- Unityあつかいづらいから自分でライブラリ作ったわwww
- 347 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 12:11:18.44 ID:ZP/aF8VN.net]
- アホか。
みなが同じ道具を使ったら、それを売って儲ける奴の小作農になるだけ。 これが分からない人こそ >一生地を這う
- 348 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 12:13:54.04 ID:ZP/aF8VN.net]
- >>331
>>323はあくまで>>321に対する客観的な指摘。 それと「自分はあくまでゲームを完成させるのが主眼なもんで」は別問題だよ。
- 349 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 13:25:06.24 ID:0nYHwL7l.net]
- 実際PS3の初期タイトルは酷いの結構あったな
アイデアファクトリーとか
- 350 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 15:23:29.14 ID:gRG035Lb.net]
- 作るものに応じて道具を選べない人が一生地を這うのでは
各処理をどんだけ細切れにしても結局全部処理しないと次には進めず、 しかも実は単一の処理は積み重ねても大して時間はかかっておらず、 単なるスレッドの立て損にしかなっていないんならマルチスレッドなんか不要 商業だからだのなんだのと適当な言い訳をしても、 実際は目に付くよさそうに見えるものに振り回されているキョロ充 まずは作りやすい方法で実装してテストして、ダメだったら作り直せばいいじゃん
- 351 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 17:28:07.56 ID:K+V6X3Ce.net]
- Unityの社員ってステマのノルマがあるみたい
- 352 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 17:41:44.09 ID:3BvTygsz.net]
- スレッドのが実装しやすい処理もあると思うの
- 353 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 19:41:03.02 ID:gRG035Lb.net]
- うにちゃんは次期主力ゲームエンジンの座を狙っているからね、仕方ないね
何が悲しくてわざわざ柔軟な使い方のできる言語投げ捨ててゲームエンジンなんぞに… PHPやらJAVAやらに行った方がマシ
- 354 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 20:21:56.36 ID:K+V6X3Ce.net]
- そんなに自信があるのなら、自分たちでゲーム機を出せばいいのに
彼らの夢は、所詮は砂上の楼閣なんかね
- 355 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 20:26:40.79 ID:EbJGy+Ll.net]
- このスレってレベル低いよな
- 356 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 20:29:07.88 ID:EbJGy+Ll.net]
- >>339
出来ることは並列でやった方が早く終わるよね。
- 357 名前:名前は開発中のものです。 [2015/02/12(木) 20:35:29.18 ID:wNE8sYSh.net]
- >>343
それは無理。彼らの夢は、ゲーム業界に巣喰う寄生虫になる事だから。
- 358 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 20:42:55.10 ID:K+V6X3Ce.net]
- >>345
その前にアルゴリズムを考えた方が早いかもね
- 359 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 21:16:05.40 ID:SEu5lClB.net]
- シングルスレッドで足りるならシングルスレッドで作ればいいと思う
後からマルチスレッドにしようとか考えたら地獄みるけど ムダに作り込んで時間かけても仕方ないしね
- 360 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 21:57:58.62 ID:5lpYcWcf.net]
- スレッドの話で盛り上がってるけど、みんなpromiseとかatomicとかcasとかちゃんと理解できてる?
俺は半分も理解してない
- 361 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 22:02:24.65 ID:BY0ie4C4.net]
- C++を書いているとJavaやC#にだんだん似てくるし
C++で便利コードを書いても既存のライブラリには適わないし C++でゲーム用ライブラリを書いていると既存のエンジンに似てきたから 既存のエンジン使うことにした。困ったらエンジン改造すればいい。
- 362 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 23:13:41.81 ID:X8c9QSvd.net]
- おーい、誰かクマが釣り針見つめてるAA持ってない?
>>349 promiseはFutureパターンのSTL実装かな。 casは不勉強だったわ。いちいちロックしなくても非同期でノード更新できるってことかな。
- 363 名前:名前は開発中のものです。 mailto:sage [2015/02/12(木) 23:54:36.97 ID:yCMGD6Md.net]
- casって言われてもメモリのclしか思いつかないです
これの事でいいの ja.m.wikipedia.org/wiki/コンペア・アンド・スワップ
- 364 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 00:16:59.27 ID:6pLn2rnq.net]
- visual c++2010です
コードを書いていると、未定義エラーなどのエラーが起こっている部分を波線で表示する機能がありますが それをすばやく表示したい(エラーを確認する間隔を早めたい)時はどうすればいいのでしょうか? オプションでそれらしき項目を探しているのですが、見つけられず困っています…
- 365 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 00:28:10.25 ID:FqU8O5pj.net]
- 今表示されてる速度が最速だよ
文句があるならもっと早いCPUに代えろ もしくはVSのバージョン上げたら改善される可能製はある
- 366 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 00:38:48.23 ID:PNw/R4Nn.net]
- 何が原因かわからんが仮にnullpoって変数なり型名なりがあるとしてpoにだけ下線とエラー表示が出る謎現象なんかが困る
nullpoの間にスペース入れた後に消すなりコンパイルするなりして文字解析をやり直させると普通に通る
- 367 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 00:38:56.82 ID:6pLn2rnq.net]
-
- 368 名前:ありがとうございました []
- [ここ壊れてます]
- 369 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 02:11:39.11 ID:E1xWFoJ9.net]
- コードを書いてるといきなり妙な場所に波線
面食らいつつ原因を探るべくコードを見直しているといつの間にか消える 他にも指摘されて修正した部分の波線がなかなか消えず、 あれ?修正間違ったかなと書き直そうとすると消えたりする VSに不信感を抱きそう
- 370 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 03:15:03.66 ID:Jw6U7GOH.net]
- VS2010より2012, 2013はずっと賢いから変えたほうがいい
あとVSの謎の挙動はコードが悪いせいなのできちんと書くように心がけましょう
- 371 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 03:17:28.00 ID:Jw6U7GOH.net]
- いつもコードが悪いせいではないな
一括置換とかファイル名変更とか,変なことをやるとVSたんはたまにアホになる
- 372 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 03:36:37.36 ID:PNw/R4Nn.net]
- というわけでついっさっきVS2013導入したった
C++で打ってる時2010だとショートカットキー(Alt→派)でしかインテリセンス出なかったのが改善されてるのが今のところ一番嬉しい
- 373 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 04:37:35.15 ID:diYHW0ok.net]
- 外部エディタを使っている自分に隙はなかった
- 374 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 09:12:51.03 ID:PRy9EczC.net]
- どんなスペックのPC使ってんの
- 375 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 10:50:31.89 ID:WvS4Hu4Q.net]
- JavaやC#ならわかる
だが負の遺産であるクソ構文抱えたC++で 実用的な速度であれだけのことが出来ることそのものが信じられん 動いたらラッキーくらいの謙虚な気持ちで使うべき
- 376 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 11:23:05.70 ID:/fWsfy1c.net]
- C++とC#ってそんなにちがうか??
C++って多少手間暇かかる部分はあるが、自前で組めばどうにでもなる事でね? まあ、プログラムはソースの書き方だけで作る時間に10倍以上の差が出るし、 モジュールやオブジェクト指向を理解してるかどうかで100倍以上の差が出るから、 その辺りの違いだろうけどな。
- 377 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 11:25:59.01 ID:NjULDeHN.net]
- MSがBC++を買っとけば世界が平和になってたんですよ…
- 378 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 12:17:28.61 ID:oAXnXeHu.net]
- 学習コストの高い言語はもう流行んないでしょ
ゲームもコア部分以外はスクリプトで書くのが主流になるだろうし C++プログラマはゲームエンジン書けるレベルの人しか生き残れないな
- 379 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 13:34:54.76 ID:/fWsfy1c.net]
- パソコン自体がもうほとんど進化しなくなったのに、遅い言語を勧められてもな
- 380 名前:名前は開発中のものです。 [2015/02/13(金) 14:00:42.22 ID:wCixqXPj.net]
- 状況次第ではJavaScriptの方が速いなんて事もあるのに
まだそんな事を言っているのか arewefastyet.com/#machine=28&view=breakdown&suite=asmjs-ubench
- 381 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 14:07:45.39 ID:/fWsfy1c.net]
- まずは、JavaとJavaScriptの違いから勉強しようね?
- 382 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 14:07:50.74 ID:ozS65/+Z.net]
- と言うかC/C++のスレでいい加減スレチw
- 383 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 14:18:22.58 ID:diYHW0ok.net]
- いや、C/C++の存在意義を知る上で重要な議論だよ。
- 384 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 14:20:03.86 ID:s8SeVfmU.net]
- しかも、asm-jsってClangで中間コードにしたものをJavascriptに変換するものであって人間が書いてネイティブコードより速くなるもんじゃねえよ
- 385 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 14:58:19.33 ID:wCixqXPj.net]
- 他の言語は実行がVMだから遅い、C++はネイティブコードだから(常に)VMより速いと言う幻想を>>367は持っているようなので
ぶち壊してやった
- 386 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 15:06:44.71 ID:/fWsfy1c.net]
- で、JavaやC#がC++と等速になったとかいうデータはマダー??
- 387 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 15:23:17.
]
- [ここ壊れてます]
- 388 名前:57 ID:fRUihGLp.net mailto: >>372
>>373 は多分あなたの言っていることが全く理解できていないだろうな。 たぶん初〜中級者に「VMやJSは思ったほど遅くない」という幻想を抱かせるのが目的。 [] - [ここ壊れてます]
- 389 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 15:25:16.23 ID:diYHW0ok.net]
- いったい、何のためにそんなことを・・・
- 390 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 15:25:55.96 ID:9I9SRziA.net]
- C++の中にCをラップしているという、気味の悪いC++の現状を憂う気持ちは分かる
C++という言語自体がすでに溶岩流状態だよなwww …
- 391 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 15:26:18.69 ID:s8SeVfmU.net]
- >>373
誰もVMだから遅いなんて言ってないと思うんだけど で、遅いのは確実だろC#がネイティブコードになっても遅いのは変わらないよ CやC++より実行時に行う事が多いのだから当たり前のこと
- 392 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 15:27:18.22 ID:7ayiwF3a.net]
- 中間コードを実行するVMの関数呼び出しや演算がC++より速くなることは原理的にないんじゃないの
速くなったとしても結局記述されたコードのレベルの差でしょ C++でチューニングしたコード書けばもっと速くなる Cのコードがチューニングされたアセンブリより遅いのといっしょ
- 393 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 15:31:25.28 ID:4Xq/J0Q+.net]
- 話の流れに乗ってみるが
ゲーム本体はc++でツール等はc#というのを ちらほら聞くけど実行している人いる? いるとしたらどれだけ有用か意見をお伺いしたい
- 394 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 15:36:07.95 ID:s8SeVfmU.net]
- >>379
いや、そうとも限らないよターゲットが固定されてるなら問題ないが、 ネイティブコードに変換したら実行するCPUを完全に生かすコードを吐けるとは限らない。 JITならターゲットがコンパイラを内蔵してるようなものだから動かす環境のCPUを完全に生かすコードを吐ける。 もちろん実行時だから時間のかかる複雑な最適化は出来ないから元のコード次第だけど >>380 そういえばUnrealは昔エディタはVB製だったな。
- 395 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 15:43:02.61 ID:6pLn2rnq.net]
- >>362
356ですが、もし自分の事でしたらXeon W5590(8コア3.33GHz)・メモリは12gbです 遅延が起こるコードはDLLを作る用のもので、約5000行 (2000行のファイル2つ・1000行のファイル1つ、それぞれa.cpp b.h c.hとします)です a.cpp(2000行)の途中でb.hとc.hをインクルードしてる状態ですが a.cppの一番下の行の方でスクリプトを書きますと、 波線や#if 0-#endifの半透明化が行われるまでにおよそ2分ぐらいかかります
- 396 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 15:46:18.40 ID:diYHW0ok.net]
- 原理的なパフォーマンスより生産性を優先されることで言語の歴史は移り変わってきたし、
機械語 ⇒ アセンブラ ⇒ C までは割とはっきりと移り変わってきたと思う。 それ以降、C ⇒ C++ ⇒ Java or C# についてはうろうろしてる感じ・・・。 やっぱり、今もC++は欠かせないでしょ。
- 397 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 15:46:47.59 ID:7ayiwF3a.net]
- >>381
あー確かにターゲットが広いとC++で全部に最適化するのは現実的じゃないな
- 398 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 15:52:11.33 ID:KYsA9vla.net]
- ツールはマルチプラットホームで動く必要が無いってのが大きいんじゃないの?
Windows, Mac, コンシューマ機 で動くとなると C++ しか選択肢が無かった気がする。 そこにモバイルが加わって、必ずしもC++が移植性の面で最良では無くなりつつあるのかもしれない。
- 399 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 15:55:59.21 ID:/fWsfy1c.net]
- 問題点がGCを使うことの有無になってきてる気がするな
適切にGC.Collect()を使えばいいというような話はあるが……どちらが良いかはよーわからんw
- 400 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 15:56:27.80 ID:7ah0R
]
- [ここ壊れてます]
- 401 名前:MwS.net mailto: なんか勘違いしてる人が多いみたいだけど、C#は簡単な言語じゃなくて、理想的なオブジェクト指向をするための言語
そもそもオブジェクト指向が出来ない人はC++もC#もまともに使いこなせないから [] - [ここ壊れてます]
- 402 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 15:59:29.02 ID:diYHW0ok.net]
- >>387
まーそうだな。 いずれにしても、ちゃんとした設計ができるというのが前提。 その上でパフォーマンスと生産性(クロスプラットフォームかどうかなど)を勘案した上で適切な言語を選択する。 できれば全部C++でやりたい派だけどw
- 403 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 16:09:25.94 ID:/fWsfy1c.net]
- 設計気にせずコーディングでゴリゴリやりたい派が居るからなぁ……
ライブラリが充実してると有効なんだが、充実してない場合は……お察し下さい
- 404 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 17:05:12.10 ID:wCixqXPj.net]
- C++のコンパイラは事前コンパイラだから
実行前にはプログラム全体のネイティブコードが得られるが プログラム全体を無差別に最適化する分コンパイルに時間が掛かるし 実行時の状況を見て最適化する事も出来ない JITコンパイルは実行時によく使われたコードだけを最適化するから割と高速に実行できる事が多い ja.wikipedia.org/wiki/実行時コンパイラ
- 405 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 17:11:55.89 ID:diYHW0ok.net]
- その中間がGPUのシェーダーって感じかな。
動的ではないけど、同じコードをデバイス(ドライバ)に応じて実行直前に一度コンパイルする。
- 406 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 17:26:17.39 ID:wCixqXPj.net]
- JITだと最適化すべき所があまりに多いと最適化が間に合わないし、あまり複雑な最適化はできないだろうけど
プロファイラで遅いところを見つけてそこだけC++で書くことも出来る そうすれば速度が下がるデメリットより生産性が上がるメリットの方が上回ると思う Android 5.0は中間コードから事前コンパイル出来るらしいが インストールに時間取りそうだな MonoはJITコンパイルが禁止されているiOS向けには事前コンパイルするらしい
- 407 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 17:30:13.12 ID:s8SeVfmU.net]
- >>392
だからってJavaやC#が速いってことにはならんからな。 そこを勘違いすんなよ
- 408 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 17:40:26.14 ID:7ayiwF3a.net]
- ただでさえ動的な型付けやジェネリクス、クロージャなんかでスクリプトの最適化にかかるコストは高いし
かけられるコストに制限のかかるJITが静的なコンパイラ超えるのはまだまだ先の話だろうな
- 409 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 17:49:39.74 ID:3uAgugBd.net]
- C++入門系の本だと「STLは難しいので分からなくてOKです^^;」とか書いてあるけど
Javaとかの入門書だとジェネリクスやリフレクションも簡単に分かって当たり前が前提 程度の低い人がC++入門書の内容も理解できずに「C++はすごいんだ」と威張っている
- 410 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 17:53:19.30 ID:s8SeVfmU.net]
- >>395
何言ってるのか解らない
- 411 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 17:57:54.44 ID:9I9SRziA.net]
- どこの入門書だよ…
STLのような便利ツールを分からなくてOKなんて書くような入門書はクソ本認定必至だぞ Unityに絡まれたりC#やJavaに絡まれたり大変だな 一体何が始まるんです?
- 412 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 18:00:31.37 ID:3uAgugBd.net]
- ここで何の言語が速いだのマルチスレッドだの騒いでる連中は怪しいってこと
- 413 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 18:05:07.34 ID:s8SeVfmU.net]
- >>395
> Javaとかの入門書だとジェネリクスやリフレクションも簡単に分かって当たり前が前提 何が言いたいのか解らないからここだけに反応するけど、AmazonでJava入門して人気度でソートして一番上に出てきた「スッキリわかるJava入門」って本の目次にはジェネリクスもリフレクションも無いぞ
- 414 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 18:19:41.22 ID:ozS65/+Z.net]
- 別にオートマ乗りたい人もマニュアル車乗りたい人も好きにすればいいよ
- 415 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 19:06:42.10 ID:diYHW0ok.net]
- ほんとに最初はSTLなしで勉強したらいいけど、
ある程度できるようになったらSTLを使わない手はない。 STLなしで大規模プログラミングするとか拷問。
- 416 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 19:09:22.59 ID:9I9SRziA.net]
- そんなことより
Hoge() {} と Hoge() { } と Hoge() { } を使い分ける
- 417 名前:タイミングについて []
- [ここ壊れてます]
- 418 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 19:20:16.61 ID:ozS65/+Z.net]
- >>402
上は本当に何もすることが無い、空実装の場合だけ 下2段は好み(規約でスタイルが統一されてない場合)
- 419 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 19:23:44.45 ID:9WE2qWDV.net]
- バージョンによるかも知れないけどVSでインデント自動だと
Hoge() {} じゃなくて Hoge() { } と中括弧の間に半角空白が入るのが気になる。
- 420 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 19:27:56.48 ID:ozS65/+Z.net]
- 大抵のIDEにコーディングスタイル(ルール)の設定あるはず
- 421 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 19:31:59.81 ID:ozS65/+Z.net]
- >>390
pragmaでモジュール毎に最適化の指定って一部の処理系のみ?
- 422 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 19:46:05.27 ID:s8SeVfmU.net]
- >>406
pragma自体処理系依存
- 423 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 21:20:17.39 ID:ozS65/+Z.net]
- まあ最適化の方針自体が処理系依存だしな
言語仕様で他言語と比較すること自体無意味かも
- 424 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 22:15:35.36 ID:9+3djK7O.net]
- >>382
スペックたけええ IOくらいしかボトルネックになりそうなところなさそうだけど 2分遅れるってのはちょっと遅すぎだな
- 425 名前:名前は開発中のものです。 mailto:sage [2015/02/13(金) 23:08:30.20 ID:E1xWFoJ9.net]
- ソース一枚で2000行ってのはもうちょっとバラせないのかなぁ?
相当大規模なプログラムなんだろうか
- 426 名前:名前は開発中のものです。 mailto:sage [2015/02/14(土) 00:36:28.82 ID:+drYNYXs.net]
- >>409-410
別の環境(インタプリタ)で作っているゲームがありまして、 一部の重い処理をc++を使ってDLL化し、(インタプリタの方でDLLを読み込んで)使っている状態です ツール→オプションやプロジェクト→プロパティでいくつか操作した記憶があるのですが、 どれを操作したのかは思い出せなません……。 すみません fast-uploader.com/file/6979396992867/ あまりC++に慣れてなく、アップロード時にどこまで載せるべきなのかが分からないのですが とりあえずcppファイルとhファイル、defファイルだけ用意したものです (個人用開発のスクリプトで、本来あまりやるべきではない処理も複数使っているためコード自体はかなり見づらいと思います) これのdll1.cppの最初の位置の方でコードを書くと波線がすぐ表示され、 dll1.cppの最後の方でコードを書くと波線が表示されるまでに数十秒、#if 0-#endifでの半透明化に2分ほど掛かる状態です
- 427 名前:名前は開発中のものです。 [2015/02/14(土) 00:52:52.43 ID:o7XnZ6lm.net]
- かなりの素人っぽいコードになってるな。
これでプログラムは正常動作するんだったらいいけど。
- 428 名前:名前は開発中のものです。 mailto:sage [2015/02/14(土) 16:14:47.43 ID:i+Qy19Ot.net]
- nullpo
- 429 名前:名前は開発中のものです。 mailto:sage [2015/02/14(土) 21:45:25.56 ID:8yKSZnHL.net]
- nullptrだろ
- 430 名前:名前は開発中のものです。 mailto:sage [2015/02/14(土) 22:15:17.68 ID:dPtZMbpp.net]
- 肝心なこと忘れてるぞ
>>413 ガッ
- 431 名前:名前は開発中のものです。 mailto:sage [2015/02/15(日) 00:52:20.75 ID:cKjU4/tc.net]
- >>355 ガッ ガッ
よくわからんけど、これでいいのか?
- 432 名前:名前は開発中のものです。 mailto:sage [2015/02/15(日) 14:24:16.38 ID:HGj2LM7P.net]
- ぬるぽはガッする これ鉄の掟ネ
- 433 名前:名前は開発中のものです。 mailto:sage [2015/02/15(日) 17:08:32.51 ID:lIyPTDYW.net]
- OpenGLのライトの設定って8つまでしか設定出来ないの?
- 434 名前:名前は開発中のものです。 mailto:sage [2015/02/15(日) 18:13:03.67 ID:221Gw+Uq.net]
- 一つのモデル書くのに8個も使うこと無いと思うけど
- 435 名前:名前は開発中のものです。 mailto:sage [2015/02/15(日) 18:18:15.97 ID:kJKCFPVs.net]
- 使うか使わないかなんて誰も聞いてないのでは
- 436 名前:名前は開発中のものです。 mailto:sage [2015/02/15(日) 18:27:22.52 ID:QJPI0val.net]
- 8つまでは保障されるって書かれてるね
それ以上はGPU次第?
- 437 名前:名前は開発中のものです。 mailto:sage [2015/02/15(日) 18:30:35.01 ID:pHH37jBe.net]
- 普通にシェーダにuniformで渡せばいいんじゃなかろうか
- 438 名前:名前は開発中のものです。 mailto:sage [2015/02/15(日) 20:13:36.87 ID:221Gw+Uq.net]
- 使わない機能について質問するのは普通なの?
ここってそういうスレッドだった?
- 439 名前:名前は開発中のものです。 mailto:sage [2015/02/15(日) 20:15:43.39 ID:BSm63ZvK.net]
- 未だに固定機能パイプライン使ってるのかよ
- 440 名前:ES2.0やCoreプロファイルでは削除されたと言うのに []
- [ここ壊れてます]
- 441 名前:名前は開発中のものです。 mailto:sage [2015/02/16(月) 10:55:53.67 ID:GCnoGlJr.net]
- このスレのみんなは何ゲーム作ってる?作ってた?俺は今は2DRPGを作ってる。
作り始めてもう2年は経つが、バイトしながら作っているのでなかなか先に進まない。 その前は剣で敵を殴り倒すサイドビュー2Dアクションとか作ってた。 公開してる作品はまだ無いけれど、今回作ってる作品はようやく公開できそうだ。
- 442 名前:名前は開発中のものです。 mailto:sage [2015/02/16(月) 12:05:03.56 ID:xAAEGNM/.net]
- いつゲームを思いついてもいいように自分用フレームワーク作ってる
今はポストエフェクトとかの高級機能の追加とパフォーマンスチューニングやってる・・・
- 443 名前:名前は開発中のものです。 mailto:sage [2015/02/16(月) 14:01:53.12 ID:zTNZgaYq.net]
- 昔3Dのゲーム公開してグラボ必須と明記したのに
オンボードのグラフィックで動かないって言われるから萎えたw
- 444 名前:名前は開発中のものです。 mailto:sage [2015/02/16(月) 14:25:13.79 ID:GCnoGlJr.net]
- オンボードってグラボと違うんだ……知らんかった
- 445 名前:名前は開発中のものです。 mailto:sage [2015/02/16(月) 15:11:57.10 ID:YsWE65vY.net]
- 体験版かベンチマークテスト付けるのが間違いない
- 446 名前:名前は開発中のものです。 mailto:sage [2015/02/16(月) 15:20:33.89 ID:SFvkE6bf.net]
- 日本語が読めない日本人のコメ欄荒らしなんか今に始まった事じゃないし
ひどいと環境も書かずに動かないのでクソみたいなことを言ってくるぞ その理由がインストール失敗だったりするし、あの人達は異常 >>426 何か作っちゃえよ…さもないと意味ないってそんな作業
- 447 名前:名前は開発中のものです。 mailto:sage [2015/02/16(月) 15:35:35.16 ID:ilnxTAbg.net]
- 起動時に「こんな貧相な環境では起動できません」とメッセージだすとか
- 448 名前:名前は開発中のものです。 mailto:sage [2015/02/16(月) 15:44:19.94 ID:DJ/HQJjd.net]
- 譏斐ョ繧ェ繝ウ繝懊シ繝峨げ繝ゥ繝輔ぅ繝繧ッ繧ケ縺ッ譛ャ蠖薙↓雋ァ蠑ア縺縺」縺溘°繧峨↑窶ヲ
繧ヲ繧」繝ウ繝峨え繧ФI縺ョ謠冗判繧竪PU縺ァ繧繧雁コ縺励◆譛霑代ッ縺九↑繧翫槭す縺ォ縺ェ縺」縺溘s縺倥c縺ェ縺縺繧阪≧縺
- 449 名前:431 mailto:sage [2015/02/16(月) 15:52:15.48 ID:DJ/HQJjd.net]
- ごめんなんかすごい文字化けした、なんだこれ
最近になって普通のGUIをGPUで描画するようになって ようやくオンボードグラフィックの性能も上がってきたよね 的なことを書きたかった・・・
- 450 名前:名前は開発中のものです。 mailto:sage [2015/02/16(月) 20:48:43.56 ID:SFvkE6bf.net]
- >>431
大半のユーザーにとってはただ処理が煩雑になるだけだな っつーか、手の込んだおちょくり方だなw
- 451 名前:名前は開発中のものです。 mailto:sage [2015/02/16(月) 22:42:53.99 ID:vhmKDLh4.net]
- 起動時にデバイスの判別とかする?
D3Dの初期化出来るかくらいしか見てないすわ ていうかデバイスの判別なんて出来るもんなの?
- 452 名前:名前は開発中のものです。 mailto:sage [2015/02/16(月) 23:54:49.98 ID:7aPTvn5L.net]
- GPUのデバイス名を見てショボそうだったらエフェクトを減らしたりして品質を下げるのは良くある
- 453 名前:名前は開発中のものです。 mailto:sage [2015/02/16(月) 23:58:04.64 ID:+QAYKcbY.net]
- やるとしても初期化できるかできなかったらでいいと思う
できなかったらエラーはいてもいいけど,情報をログに出しておくとのちのち面倒になりにくい
- 454 名前:名前は開発中のものです。 mailto:sage [2015/02/16(月) 23:58:32.44 ID:+QAYKcbY.net]
- 訂)初期化できなかったら
- 455 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 01:00:22.99 ID:8xjE9Voj.net]
- メーカーや型番を調べるってこと? CAPSじゃなくて。
- 456 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 04:37:03.07 ID:rbxqwbjb.net]
- >>425
いま初めてまともな2Dアクション作ってるんだけども、 当たり判定(四分木・モートン)なんかの実装とか処理の順番で発生する矛盾とか解決するのがしんどい(´・ω
- 457 名前:・`)
一度作ってしまえば使い回し効くんだろうけれどそれでもunuty辺りに逃げたくなる誘惑ががが [] - [ここ壊れてます]
- 458 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 10:09:59.94 ID:rM4wsrPX.net]
- box2dでも使ってみれば?
自分で作るよりいろんな意味ではやいと思う
- 459 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 11:20:06.28 ID:R+csvIHk.net]
- >>427
初期のIntel GMA(のドライバ)はD3Dのデバイス機能あると返答する癖に実は使えん とか、ファンキーな挙動をするゴミカス同然の問題児だなという印象があったが 五年前辺りの製品になるとだいぶマシだたよ 当時、即売会で同人ゲをバラ撒くために貧困糞スペ層対策にPentiumG6950と i3 540のPC組んでテストしたけど、GF8400GSとRADEON4350載せた時と 速度的にほぼ互角で、プログラム側から見た時のD3DデバイスとしてのIntel IGP 特有のお粗末さに呆れる事も無く、特段配慮せずに適当に組んでも動いたので 感激した憶えアリ もう五年前の製品なので、今の若い子はこれより新しい世代のハード使ってると 思う。これ以前のGMAの名を持つIntel IGPについては俺はもう完全に無視してる
- 460 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 11:29:55.71 ID:SVmL1BJ3.net]
- SM2.0〜3.0ぐらいの世代の古いGPUだとD3D11自体は使えてもジオメトリシェーダー等は使えない
https://msdn.microsoft.com/en-us/library/windows/desktop/ff476876%28v=vs.85%29.aspx D3D11ではFeature Levelsというのを調べればデバイスの対応度が分かる
- 461 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 11:38:29.47 ID:SVmL1BJ3.net]
- GPUの種類を検出してドライバの問題に対応するのはChromeがやっている
NVIDIA Optimusを使っていると、今アプリケーションが使っているのが内蔵GPUか外部GPUかは検出できないらしいが 検出する方法はないわけでも無さそう https://code.google.com/p/chromium/issues/detail?id=418418
- 462 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 15:22:32.89 ID:R+csvIHk.net]
- optimusか…。ウチの場合はIGPでも軽快に動くものを頒布してたから
その辺の不具合報告はたまたま来なかったな。来ても「それドライバ の設定のせいだろ何とか自力で頑張れ」とか返事しちゃいそうだけど。 対応するとしたらこの辺の情報も使えそうかしら www.garagegames.com/community/forums/viewthread/136127
- 463 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 15:26:27.22 ID:R+csvIHk.net]
- >>445訂正
IGP → Intel IGP
- 464 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 17:34:23.35 ID:kQ4D9OfR.net]
- Optimusは拡大鏡のようなMagnification APIが使えないので
背景を透過させるような処理が使えなかった GDI通すと負荷が半端無いうえに自ウィンドウの裏が不完全
- 465 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 17:38:33.49 ID:c37KzA7E.net]
- 商業ならやって当然だけど、サークルや個人製作でD3X10以上の機能が必須の
3Dゲーム作るって凄いと思うわ。 自分は一応プログラマブルシェーダは実装できたけどD3X9が限界だし、 ファーやブラーなどジオメトリシェーダ必須の特殊効果やテセレータによる分割って 「それがないと、どうしても実装できないゲームシステムがある」わけではないから…。
- 466 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 17:39:35.00 ID:c37KzA7E.net]
- D3X→DX3D
- 467 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 17:49:14.01 ID:QlaPcbbK.net]
- 自分の場合は、俺がやりたいことをもっとも簡単に実現する方法が
ジオメトリシェーダで動的生成することだったから、DirectX10/11使ってる たぶんメッシュを工夫するとかすればDirectX9の範囲でもできたことなんだろうけど 個人的にDirectX9の「お作法」に嫌気がさしてたってのもあったから移行に未練は無かった
- 468 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 19:38:23.87 ID:GIdVBJpd.net]
- 質問なんだけど、位置情報ってどうやって保存してる?
1、Matrix4 2、Vector3、クォータニオン 3、Vector3、角度(float)
- 469 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 19:50:16.17 ID:R+csvIHk.net]
- >>448
俺は前回は時期的な都合でD3D9で組んでばら撒いたけど、次は 「楽をするために」D3D9切り捨てでばら撒くことにしてるよ なお「新APIの新機能使わなくちゃ(使命感)」というのは皆無。 D3D10すっ飛ばしてD3D11のお勉強した感想は、あぁ^〜極楽なn
- 470 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 19:57:47.59 ID:2VajbZX5.net]
- 今って、2DでDirextX9からバージョン上げる必要って何かある?
昔はアルファーブレンド使いたかったらDirextX必須だったけど
- 471 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 20:14:51.86 ID:QlaPcbbK.net]
- ベクタグラフィックスを楽に使いたいとか
GDI/GDI+との相互運用がしたいとかなら Direct2Dと連携できるDirectX10.1以降がいいかもしれない あと、Direct2Dに関連して、DirectWriteを使うと 文字を出すのが超楽になるかもしれない
- 472 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 20:15:09.37 ID:R+csvIHk.net]
- >>451
その情報が関与する数値積分の計算式の都合で使い分け 俺はオッサンだから流行りのやり方は知らんけど、アニメーションの補間 アルゴリズムの都合が絡む所は四元数で回転情報持ってるけど、それ以外 では使ってないよ 例えばシミュレーション部の数値計算は行列で計算してるからわざわざ 四元数に変換して保存する意味ないんじゃね、というような判断で
- 473 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 20:16:00.13 ID:R+csvIHk.net]
- >>455訂正
数値積分→数値計算
- 474 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 20:18:17.09 ID:QlaPcbbK.net]
- あと
「移行しない理由」が欲しいなら無理に移行しなくていいのでは、とも思う
- 475 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 20:18:25.23 ID:R+csvIHk.net]
- >>453
XPにしがみ付く人に対応する気ありません、という強い気持ちを表現したい場合 とか
- 476 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 21:41:07.26 ID:2VajbZX5.net]
- 今の自分にはあまりバージョンアップする必要は無さそうですね
このままでいきます
- 477 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 22:01:14.76 ID:jnPWiKnI.net]
- だからどうあってもしなきゃいけないんでもない限り別に必要ないって
ウイルス定義やOSのアップデートじゃあるまいに デバイスロストが怖い ただそれだけで十分だったりするのは秘密
- 478 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 22:18:09.36 ID:8JUkAmcn.net]
- とりあえず動けばいいじゃん?
- 479 名前:名前は開発中のものです。 [2015/02/17(火) 22:41:07.94 ID:ePkhNQGN.net]
- dxlibでblenderで作った3Dモデリングを表示させたいんだけど
テクスチャのUV座標とかは一個一個代入しないとダメってことはないよね? ポリゴン数多いと骨が折れるんだけど・・・
- 480 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 22:48:43.96 ID:91SkRfsF.net]
- デバイスロストは再取得する処理をいくつか書けばいいじゃんいいじゃん
- 481 名前:名前は開発中のものです。 mailto:sage [2015/02/17(火) 23:11:26.72 ID:WkWjQbqK.net]
- >>450
その具体例は? 絵の質を上げたいっていうならまだ分かるけど、ゲームのルールに直結する部分で ジオメトリシェーダが必須になるって、思い浮かばない。
- 482 名前:名前は開発中のものです。 mailto:sage [2015/02/18(水) 00:07:10.98 ID:G38OtsQE.net]
- >>464
太さのあるモデルの
- 483 名前:ナ線や輪郭線を楽して描画したかっただけだよ
最初からモデルにつけとけば出来なくはなかったんだろうけど ゲームのルールに直結なんかしないよ 俺がそういう画面表現したかっただけ ルールがどうのって話出てたっけ? [] - [ここ壊れてます]
- 484 名前:名前は開発中のものです。 mailto:sage [2015/02/18(水) 00:22:40.86 ID:G38OtsQE.net]
- ああ、>>448の
>「それがないと、どうしても実装できないゲームシステムがある」わけではないから…。 ってのの話? だとしたら確かにゲームシステムなんかにゃ関係ない話だったな、すまんね
- 485 名前:名前は開発中のものです。 mailto:sage [2015/02/18(水) 15:04:19.81 ID:f28x4TyT.net]
- ジオメトリシェーダって技術的には興味あるんだけど、ゲーム用途だとオーパースペックな感が。
絵のセンスを求めてる人はいても、絵のリアリティを求めてるゲーマーって少ないし。 同じ「プログラム技術」でも、経路探索とか衝突判定の方がゲーム内容に直結してる気がするんよ。
- 486 名前:名前は開発中のものです。 mailto:sage [2015/02/18(水) 15:21:22.07 ID:QeK+UKTO.net]
- 2Dのゲームだと未だに画像貼り付けで十分だったりするからなぁ
3Dになると途端に描画系に求められるものが跳ね上がる……というか、中途半端だとショボく見えやすい
- 487 名前:名前は開発中のものです。 mailto:sage [2015/02/18(水) 15:42:52.18 ID:De5fOi6p.net]
- そういや昔、DX9やだやだDX7でいい、と駄々捏ねてた連中がいたっけ
- 488 名前:名前は開発中のものです。 mailto:sage [2015/02/18(水) 16:16:04.18 ID:FM6JykcW.net]
- 2Dでも、画面解像度と色が多くなると、DirctX 3D処理で2Dを書いたのが速くなる。
- 489 名前:名前は開発中のものです。 [2015/02/18(水) 16:53:19.00 ID:6OJTipUu.net]
- blenderでエクスポートした拡張子.xの3Dモデルを
下のアドレスのサンプルコードで表示させようとおもったんだけど ttp://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_3d.html#R1N1 真っ暗で何も表示されない 拡張子.mqoでエクスポートしたやつなら真っ白な3Dモデルがクライアント領域に表示されるんだけど .xで表示されないのは何が原因なんだろう
- 490 名前:名前は開発中のものです。 mailto:sage [2015/02/18(水) 17:25:58.03 ID:JA2VpMMo.net]
- >>471
ライトの設定? よくわからないけど「blender directx エクスポート」でググれば?
- 491 名前:名前は開発中のものです。 [2015/02/18(水) 17:37:25.56 ID:6OJTipUu.net]
- >>472
返答ありがとう 「blender directx エクスポート」あたりは既に昨日から何度もググってるんだが一向に分からないんだ だけどさっき画面を良く見ると下のほうにすごく小さい点があって dxlibに付属されてるDxLibModelViewerで例のモデルを見てみたら最大頂点座標と最小頂点座標が約-1〜約1しかなくて エクスポート時になぜかものすごく小さくされてることが分かったんだ だからこれはblenderの問題っぽいのでここで失礼する事にする でももし対処方法を知ってる方がいたら教えてくれるとありがたいです
- 492 名前:名前は開発中のものです。 mailto:sage [2015/02/18(水) 22:47:25.03 ID:ILsqNe3P.net]
- ファイルにマテリアルの情報ついてないんじゃね
- 493 名前:473 mailto:sage [2015/02/18(水) 23:21:37.40 ID:jPrz+6+J.net]
- あ、解決してたのか
よく読んでなかった
- 494 名前:名前は開発中のものです。 mailto:sage [2015/02/19(木) 19:55:57.68 ID:D6yNUzB8.net]
- DirectXは旧バージョンとの互換性をガンガン切り捨てるけど、
古いバージョンをラップするのってやっぱり技術的には難しいのだろうか まあ、根本的な仕様変更の問題もあるんだろうけど
- 495 名前:名前は開発中のものです。 mailto:sage [2015/02/19(木) 20:09:04.59 ID:BvTV0nsZ.net]
- 前のバージョンも丸ごと使えるようにしてるじゃん
- 496 名前:名前は開発中のものです。 mailto:sage [2015/02/19(木) 20:34:31.82 ID:NvdslICU.net]
- 旧バージョンのインタフェースをくれといえば、ちゃんと使えるだろう?
ある世代内では、互換性は維持されるし、仕様変更も無いはずだぞ。 新バージョンのAPI体系がガラッと変わるのは、時代のニーズなので仕方ない。 ただ、よほどのこだわりが無ければ、今後は、ゲームエンジンを使うか、 WebGL の関係で GL 系を覚えたほうが役に立つとは思う。
- 497 名前:名前は開発中のものです。 mailto:sage [2015/02/19(木) 20:45:49.81 ID:oNkiA836.net]
- DirectInput8でジョイスティック設定するようにしてたら9で切り捨てられた。
仕方ないので9でオブジェクトの名称と機能を対応させてたら、ある日名称が変更された。 ガン切捨てくらいはされてるよw
- 498 名前:名前は開発中のものです。 mailto:sage [2015/02/19(木) 21:40:39.58 ID:Q5dde7tF.net]
- APIに依存するようなところは自分でラップしといてバージョン変わったら書き換えるくらいしかないんじゃないかな
インターフェイス変えないと立ち行かなくなって結局大改修になる可能性はあるけど
- 499 名前:名前は開発中のものです。 mailto:sage [2015/02/19(木) 21:54:49.08 ID:BvTV0nsZ.net]
- 古いバージョンそのまま使えばええやん。
何か不都合あんの?
- 500 名前:名前は開発中のものです。 [2015/02/19(木) 22:04:43.69 ID:srcYRBk+.net]
- >>481
新しい機能が使えない
- 501 名前:名前は開発中のものです。 mailto:sage [2015/02/19(木) 22:42:13.32 ID:BvTV0nsZ.net]
- 無くなったものはその新機能にそぐわないからなくなってんだよ
それぐらい解るだろ
- 502 名前:名前は開発中のものです。 mailto:sage [2015/02/19(木) 22:58:15.14 ID:56/Nxvf8.net]
- どんな理由だろうが無くなれば困る奴はいるんだよ
それぐらい解るだろ
- 503 名前:名前は開発中のものです。 mailto:sage [2015/02/19(木) 23:01:29.94 ID:z/wN7MYn.net]
- 少数の無くなって困る奴を気にしすぎると新バージョンの開発が難しくなるんだよ
それくらい解るだろ
- 504 名前:名前は開発中のものです。 mailto:sage [2015/02/19(木) 23:26:36.09 ID:yx5mPigo.net]
- そもそもDirectInputって切り捨てられたことあったっけ?
Windows SDKに統合された今でもヘッダとライブラリ残ってるし開発できるでしょ
- 505 名前:名前は開発中のものです。 mailto:sage [2015/02/20(金) 04:15:28.38 ID:0Lt4GRA5.net]
- >>951
出ました! さり気ないウニステマ。
- 506 名前:名前は開発中のものです。 mailto:sage [2015/02/20(金) 04:40:02.95 ID:Yq9E+HAh.net]
- 新しいバージョンで無くなって困るって言ってる奴はその新しいバージョンの設計思想を読み取れないアホなんだから、移行せずに古いほう大人しく使っとけ
- 507 名前:名前は開発中のものです。 [2015/02/20(金) 10:47:36.85 ID:LvDa2DK4.net]
- 3D箱庭ゲーみたいな面の各頂点がバラバラのマップデータの処理ってどうやってるんだろう
正方形の地形が並んだxyデータだったら 指定した座標から地形を読み込んで処理すればいいのは知ってるけど
- 508 名前:名前は開発中のものです。 mailto:sage [2015/02/20(金) 10:55:37.99 ID:1wvp+sDY.net]
- クオータービューも座標変換する前は普通に二次元のマップだと思うけど
- 509 名前:名前は開発中のものです。 [2015/02/20(金) 11:35:44.82 ID:LvDa2DK4.net]
- >>490
クォータービューは3次元なはずだよ(2次元ももちろんあるけど) xyだけじゃなくてz座標もないと奥行きと上下左右の同時表現が成り立たないし あとあれも大体は一定の大きさの立方体の集まりだから 指定したxyz座標と立方体の大きさ(16だったら座標/16)で計算すれば読み込むべき地形を特定して処理できる 俺が知りたいのはその立方体の大きさや頂点の位置がばらばらだった場合の処理なんだよね・・・
- 510 名前:名前は開発中のものです。 mailto:sage [2015/02/20(金) 11:39:19.38 ID:wXZtF1jQ.net]
- クォータービューがFFTみたいなの想定してるなら、z座標はセルごとに値で持っとけばいい
3Dの地形だって立体交差とかしない限りは同じでいい
- 511 名前:名前は開発中のものです。 [2015/02/20(金) 12:13:53.08 ID:LvDa2DK4.net]
- >>492
いや同じだと立方体のがくがくした地形しか作れないとおもうんだけど マリオ64みたいに地形を作りたいんだよなぁ 俺の説明の仕方が悪かったかもしれなかったらすまん
- 512 名前:名前は開発中のものです。 [2015/02/20(金) 12:42:42.94 ID:LvDa2DK4.net]
- ごめんもっと簡単に言うと
大量のポリゴンがある空間の中で座標を指定した時 どうやって適用されるポリゴンを選ぶことが出来るかれるかが分からないんです
- 513 名前:名前は開発中のものです。 mailto:sage [2015/02/20(金) 12:43:09.25 ID:mEXo8/Tf.net]
- 地形で簡単なのが、”高さマップ” 碁盤の目の座標に高さデータを加えるだけ。
自由度が高いのが、Xファイルで作る方法。モデリングソフトで作ればよい。 ポリゴン数を少なくするように工夫がひつよう。 非力なパソコン用に使われた方法
- 514 名前:ナは、”BSPマップ”がある、
マップを細分化して分割する、その中から必要な部分だけを表示する手法。 [] - [ここ壊れてます]
- 515 名前:名前は開発中のものです。 mailto:sage [2015/02/20(金) 12:52:21.59 ID:81/jlh7Y.net]
- 今時xファイル勧めるとか無いわ
- 516 名前:名前は開発中のものです。 mailto:sage [2015/02/20(金) 12:53:11.59 ID:7oZJAYkq.net]
- もしポリゴンで判定したいなら、基本的には点と三角形の当たり判定になる。
重力判定であれば、その方向の直線がぶつかるポリゴンを見つけるのは難しくは無いだろう。 軽量化のために、メッシュ空間を予め分割しておくこともある。 描画用の細かいメッシュのほかに、当たり判定や移動判定用の荒いメッシュを持つ場合もある。 壁へのめりこみ判定も似たようなものだが、市販のゲームでも「壁抜け」系の バグがよくあるように、完璧なものはけっこう難しい。
- 517 名前:名前は開発中のものです。 mailto:sage [2015/02/20(金) 12:54:54.49 ID:81/jlh7Y.net]
- >>494
その程度も解らないなら既成のゲームエンジン使っといた方がいいよ 竹槍で航空機へ挑んでる感じ
- 518 名前:名前は開発中のものです。 [2015/02/20(金) 13:02:44.72 ID:LvDa2DK4.net]
- >>495
>>497 ありがとうがんばってみる
- 519 名前:名前は開発中のものです。 [2015/02/20(金) 13:12:46.23 ID:LvDa2DK4.net]
- >>498
一応方法としてはポリゴンごとにオブジェクトと距離測って範囲内にあれば処理するくらいならあったのだよ でもそれだと処理量がすごいことになっちゃうからね 今からゆっくり理解するよ ありがとう
- 520 名前:名前は開発中のものです。 mailto:sage [2015/02/20(金) 14:14:35.39 ID:V4z76ahC.net]
- モートン序列というので大量の判定を軽量化出来るってどっかのサイトにあったが
地面との着地判定にはどう使うんだろうか オープンワールドの地形よろしく分割されてれば出来そうだが、マップ読み込んだ時に自動的に分割されればデザイナーにも優しいかも
- 521 名前:名前は開発中のものです。 [2015/02/20(金) 14:17:28.45 ID:LvDa2DK4.net]
- あれ、今言われたことを踏まえて改めて調べたんだけど
もしかして重力判定で通過したかどうかは一定の範囲のポリゴン全部チェックする必要があるんだ? 二次元データみたいに指定したxy座標にブロックの有無と種類を判別して処理ってことに近い事はポリゴンでは出来ないって事だよね? これ重くならないか不安だったんだがこういう認識でOKだよね? 本当頭悪くてすまん
- 522 名前:名前は開発中のものです。 mailto:sage [2015/02/20(金) 15:28:45.62 ID:f/qfY/pq.net]
- >>501
キャラクターだろうが地面だろうがひとつのオブジェクトとして扱うのが一番簡単なんじゃね 今モートン序列当たり判定自作してて各ブロックにオブジェクトを挿入するところまで出来たけれど、 肝心の探索でバグってて総当たりよりも遅くなっててわろえない
- 523 名前:名前は開発中のものです。 mailto:sage [2015/02/20(金) 16:33:09.05 ID:V4z76ahC.net]
- 同じブロックに入ってても通常より処理が増えるだけだからな
スカイリムみたいなオープンワールドで始めて効果を発揮するんじゃないか? まぁスカイリムでもマップの反対側で当たり判定動かしてるのかわからないが
- 524 名前:名前は開発中のものです。 mailto:sage [2015/02/20(金) 16:50:19.91 ID:kfuov5G/.net]
- >>502
ポリゴン全部っつーても、衝突判定に描画に使ってる精細なポリゴンをそのまま使う必要はなく 基本的にはそれを簡易化した描画しないローポリや、球、箱などとの判定でok
- 525 名前:名前は開発中のものです。 [2015/02/20(金) 17:03:56.05 ID:LvDa2DK4.net]
- >>505
ありがとう! みんな優しいね
- 526 名前:名前は開発中のものです。 mailto:sage [2015/02/20(金) 18:58:58.25 ID:QKhWkDln.net]
- DirectInput8のためだけにDirect8で止めておく選択肢はあったかもなw
名称が変るのは回避できない可能性があるが。
- 527 名前:名前は開発中のものです。 mailto:sage [2015/02/20(金) 19:33:43.50 ID:81/jlh7Y.net]
- ポリゴンのあたり判定もそれをやる前にオブジェクト毎にAABB(aligned axis bounding box)を持っといてそれで大まかな判定したあとポリゴンであたり判定するとかね
AABBは描画するときにもつかえる
- 528 名前:名前は開発中のものです。 mailto:sage [2015/02/20(金) 19:56:18.41 ID:V4z76ahC.net]
- オクルージョンカリングってどうや
- 529 名前:驍フ? []
- [ここ壊れてます]
- 530 名前:名前は開発中のものです。 mailto:sage [2015/02/20(金) 21:38:48.57 ID:81/jlh7Y.net]
- 出来るだけ少ないポリゴン数で遮蔽ポリゴンを作っておく(実際のポリゴンをはみ出ないように)
1.遮蔽ポリゴンだけを使ってデプスのみ描画 2.描画判定するオブジェクトのAABBをそのデプスを使って描画されるか判定(デプステストをパスするピクセル数を返すだけのAPIがある) 3. 2で描画されるピクセルがあると判定されたものだけ実際に描画する いくつか方法あるけどスタンダードなのはこんな感じ
- 531 名前:名前は開発中のものです。 mailto:sage [2015/02/20(金) 21:43:31.32 ID:mEXo8/Tf.net]
- Clipping
Culling Occlusion でしょ
- 532 名前:名前は開発中のものです。 mailto:sage [2015/02/24(火) 21:32:41.15 ID:vaS9aulZ.net]
- C++/SFMLライブラリを使った2Dベースのゲームを作っているのですが、
自分で調べた感じですとSFML自体ではz-orderingの機能は持ち合わせていないようです。 こうなるとやはりvectorなどを用いてマニュアルで描画順をうまくやりくりするしかないのでしょうか?
- 533 名前:名前は開発中のものです。 mailto:sage [2015/02/24(火) 22:29:05.30 ID:xhUImxJo.net]
- >>512
en.sfml-dev.org/forums/index.php?topic=7535.0 ちょっと古いやり取りだが、z-orderの機能はないし、リクエストも却下されたらしいぞ。 自前で管理するしかないんじゃないか?
- 534 名前:名前は開発中のものです。 mailto:sage [2015/02/24(火) 23:50:55.98 ID:vaS9aulZ.net]
- >>513
早速の返答ありがとうございます。 dxlib関連の記事のようですが下記のようなサイトを見つけました。 こんなかんじで描画順を管理できるように試してみようと思います! ありがとうございました。 ttp://ktkrmjskmjds.blog119.fc2.com/blog-entry-4.html
- 535 名前:名前は開発中のものです。 [2015/02/25(水) 07:37:32.67 ID:nWK6BI/o.net]
- BtconというWiiリモンコンをPCで使えるようにするツールを作っているのですが、
これはwiiyourself!ベースでwiiリモコンを制御しています。 しかしwiiリモコンプラスと元祖wiiリモコンで違いがあり、wiiリモコンプラスにwiiyourselfが対応していません。 wiiyourselfのほうがwiiリモコンプラス発売より前に作られたもので、開発が止まっているためです。 自分で調べて動いたという情報を元に改造してみたりしているのですが、動かなくて困っています。 詳しい方がおられましたらヒントをいただければ助かります。 xbmc.inpane.com/main/rc/wiiremote.php#mc
- 536 名前:名前は開発中のものです。 mailto:sage [2015/02/25(水) 09:06:11.55 ID:zNwgz5b4.net]
- wiiリモコンプラスはMSスタックは繋がらないようで、東芝のスタックであれば繋がりました。
- 537 名前:名前は開発中のものです。 mailto:sage [2015/02/27(金) 09:04:14.57 ID:l7kW3nDz.net]
- DirectX9でミップマップって勝手にテクスチャ入れ替えてくれる?
- 538 名前:名前は開発中のものです。 mailto:sage [2015/02/27(金) 14:15:25.84 ID:KjiqxG1B.net]
- https://msdn.microsoft.com/ja-jp/library/cc373037.aspx
- 539 名前:名前は開発中のものです。 mailto:sage [2015/02/27(金) 21:19:14.81 ID:Pdgs5cQ7.net]
- シェーダ側では、ミップレベルを指定したい時はわざわざtex2Dlod()を呼び出すくらいだから
一般のtex2D()は自動でミップマップされてると考えていい。 ただもちろん、ハード対応してればだし(今動いてるPCはまずしてるだろうけど)、 「ミップレベルを入れ替える」のではなく「周辺の2つのミップレベルを補間する」実装のはず。
- 540 名前:名前は開発中のものです。 mailto:sage [2015/02/27(金) 21:26:33.67 ID:Pdgs5cQ7.net]
- あ、ごめん、サンプラステートのMipFilterのことを忘れてた。
- 541 名前:名前は開発中のものです。 mailto:sage [2015/03/03(火) 08:02:03.50 ID:O4uDv9F0.net]
- UnrealEngineのコードへのアクセスが無料化されたけどこのスレの住民は興味なし?
- 542 名前:名前は開発中のものです。 mailto:sage [2015/03/03(火) 08:44:20.60 ID:nygqixhE.net]
- ゲームエンジンでは実現不能なアイデアばっかりなんで
- 543 名前:名前は開発中のものです。 mailto:sage [2015/03/03(火) 08:46:22.16 ID:O4uDv9F0.net]
- ゲームエンジンを知らない奴が居ることは解った
- 544 名前:名前は開発中のものです。 mailto:sage [2015/03/03(火) 10:44:49.65 ID:ngz/wjN8.net]
- UE4課金してるし無料になるならラッキーって程度。
- 545 名前:名前は開発中のものです。 mailto:sage [2015/03/04(水) 00:59:35.68 ID:9TbqAfLf.net]
- 興味ないどころか、この板自体がウニと非現実のステマに占領されてるので
嫌気が指してる。でもこういうのに限って板分けないだろうな運営。
- 546 名前:名前は開発中のものです。 mailto:sage [2015/03/04(水) 01:13:58.75 ID:dqGNRwqL.net]
- っていう時代に取り残された人達が多い所か、ここは。
オクルージョンカリングの質問にもまともに答えれるひと居なかったし
- 547 名前:名前は開発中のものです。 mailto:sage [2015/03/04(水) 07:43:32.99 ID:tS5hBT8s.net]
- オクルージョンカリングで思ったんだけど、
例えばキャラクターが建物やらの後ろにいて隠れるけど、 影は建物から出るって時、影は描画されるのん? 判定用モデルでそのまま影描画しちゃう感じ?
- 548 名前:名前は開発中のものです。 mailto:sage [2015/03/04(水) 09:43:02.19 ID:GgwaroCI.net]
- シャドウマップを作るときはライトからの視点になるから、
また別のオクルージョンカリングを行うとか?
- 549 名前:名前は開発中のものです。 mailto:sage [2015/03/04(水) 10:13:15.70 ID:yZTKs+IT.net]
- オクルージョンカリングね
あれうまいよな でも俺はポンデリング派だな
- 550 名前:名前は開発中のものです。 mailto:sage [2015/03/04(水) 10:49:22.17 ID:a+CSwpI9.net]
- 影はビューカリングだけじゃない?
z-prepassすればそこまで重いものじゃないし影用モデルでかなり最適化できる。 オクルージョンカリングは描画結果のピクセル数を取得して0なら描画しないだけだよ。
- 551 名前:名前は開発中のものです。 mailto:sage [2015/03/04(水) 20:12:10.19 ID:lWy5bGCc.net]
- オクルージョンカリングってgpu内で完結できたらいいのに。
- 552 名前:名前は開発中のものです。 mailto:sage [2015/03/04(水) 21:18:31.71 ID:GgwaroCI.net]
- 大きなトレードオフがないならGPUでやってほしいよね
- 553 名前:名前は開発中のものです。 mailto:sage [2015/03/04(水) 22:53:21.49 ID:GI8MSIuN.net]
- >>529
くだらない事言ってるとお前の*に->するぞ
- 554 名前:名前は開発中のものです。 mailto:sage [2015/03/05(木) 00:38:58.57 ID:f1raWeBS.net]
- >>531
>>532 簡素な遮蔽ポリゴンと、事前計算した超軽量なAABBでデプステストをパスするか確認するから軽くなるんだよ。 デプステストをパスしなかったら描画する対象のvertex shaderすら動かす必要が無いからね。 GPU内で完結するようにしたら実際のポリゴンを使うしかない。 そうすると、どうやっても全頂点計算するしかない。 それで隠れるポリゴンがあればfragment shaderは実行しなくて済むけど、それはTBDRっていう方法で既にGPUで実現済み。 ピクセルを書き込む回数を減らせるからメモリ帯域の狭いモバイルGPUでよく使われてる方法で、PowerVRが昔からその方法を使ってて有名。 それも半透明とかアルファテスト使うようなポリゴンがあると使えない。
- 555 名前:名前は開発中のものです。 mailto:sage [2015/03/05(木) 02:25:19.75 ID:YpPGywcJ.net]
- なんか2chの専ブラでハードコーディングしたからAPIキーが割れたって言ってるけどコンパイルしてネイティブコードに変換されて読み取れるもんなの?
- 556 名前:名前は開発中のものです。 mailto:sage [2015/03/05(木) 06:12:17.20 ID:KVc1+L+F.net]
- >>535
とりあえず板名100回復唱。な
- 557 名前:名前は開発中のものです。 mailto:sage [2015/03/06(金) 07:01:26.91 ID:22aEiDue.net]
- オーバーフローと配列範囲外のチェックってどうやんの
- 558 名前:名前は開発中のものです。 mailto:sage [2015/03/06(金) 08:11:24.59 ID:JOegiwit.net]
- if ( hoge.length() - 1<i ) return;
- 559 名前:名前は開発中のものです。 mailto:sage [2015/03/09(月) 00:28:48.51 ID:iEPwp1GV.net]
- 入門ゲームプログラミングって本買った
まずロベールのC++本で基礎を身につける
- 560 名前:名前は開発中のものです。 mailto:sage [2015/03/09(月) 00:55:44.81 ID:KBqbZUvv.net]
- >>538
lengthがsize_tを返すのであればemptyの時に死ぬね
- 561 名前:名前は開発中のものです。 mailto:sage [2015/03/09(月) 08:43:44.85 ID:5/H88Ii0.net]
- そんなん配列のnullチェック先にするに決まってんだろ
- 562 名前:名前は開発中のものです。 mailto:sage [2015/03/09(月) 11:25:36.92 ID:KBqbZUvv.net]
- >>541
hogeってのは生配列を返す関数持っててnullチェックしないと使えない糞コンテナなのか?そんなもん窓から投げ捨てろ
- 563 名前:名前は開発中のものです。 mailto:sage [2015/03/09(月) 16:56:13.92 ID:Tsv4BOfD.net]
- >>542
なんか話噛み合ってないと思ったら、javaと勘違いしてたごめん。 あとjavaにしてもlengthの後の括弧いらんかったごめん。
- 564 名前:名前は開発中のものです。 mailto:sage [2015/03/14(土) 11:31:02.28 ID:Bn3tbHEp.net]
- ヘッダでstatic constな配列を初期化することってできない?
- 565 名前:名前は開発中のものです。 mailto:sage [2015/03/14(土) 12:27:07.32 ID:FGm0AUiX.net]
- const_castとかあるけど使ったことないから分からない
- 566 名前:名前は開発中のものです。 mailto:sage [2015/03/21(土) 17:31:21.55 ID:4J9dPJbb.net]
- DXライブラリで一通りゲームを作って次はDirctX9でゲームを作ろうと思って本なり読んでるけど
入力関連とかメインループ文に入ってるように見えないのになんで操作できてんだこれとか色々わけわかんなくてDXライブラリに逃げちゃいそう
- 567 名前:名前は開発中のものです。 mailto:sage [2015/03/21(土) 17:41:03.09 ID:WO0UmCC8.net]
- 入力の取得関数の所にブレークポイント張ればいつ呼ばれるか解るだろ
ソースレベルで追えないんじゃそのあとも苦労しそうだが
- 568 名前:名前は開発中のものです。 mailto:sage [2015/03/21(土) 22:19:51.97 ID:Vu16KnFN.net]
- メッセージ系の処理の話かな?
Win32の仕組みを知らないといろいろわからないかもしれない って言うか無理しないでDXLibでいいと思う
- 569 名前:名前は開発中のものです。 mailto:sage [2015/03/22(日) 13:15:06.80 ID:RZoxpRxM.net]
- >>546
まさかまかりなりにもDxlib使ってゲーム作った経験があるのにコールバック関数を知らない訳じゃないだろうな・・・w
- 570 名前:名前は開発中のものです。 mailto:sage [2015/03/23(月) 00:04:40.06 ID:6RzGsxDm.net]
- 最低限の機能を使うだけなら、コールバック要らんぜ?
- 571 名前:名前は開発中のものです。 mailto:sage [2015/03/23(月) 02:47:34.49 ID:5MPdWZ7w.net]
- 話をまとめると「コールバック関数でググれ」だな
- 572 名前:名前は開発中のものです。 mailto:sage [2015/03/23(月) 08:21:54.36 ID:OPwFNkI6.net]
- 名前聞けば皆知ってそうなFLASHゲームの製作者なんて構造体すら知らなかったぞw
実装力>>>知識よ。
- 573 名前:名前は開発中のものです。 mailto:sage [2015/03/23(月) 14:50:59.94 ID:ORae6Rkf.net]
- コールバックの利点ってなんぞ
軽い機能ならswitchすればいいしでかいならクラスごとするし手間かかるだけじゃないのか
- 574 名前:名前は開発中のものです。 mailto:sage [2015/03/23(月) 20:27:25.37 ID:jlPJ7kT1.net]
- >>553
と、とりあえずググってこい、なっ?
- 575 名前:名前は開発中のものです。 mailto:sage [2015/03/23(月) 20:32:37.09 ID:6RzGsxDm.net]
- 「ゲームで」だとそこまでは…
- 576 名前:名前は開発中のものです。 mailto:sage [2015/03/23(月) 21:51:33.63 ID:2BLAF17B.net]
- ライブラリの実装が楽になるぐらいじゃね
- 577 名前:名前は開発中のものです。 mailto:sage [2015/03/25(水) 00:11:47.80 ID:q/dDA6au.net]
- 誰にも迷惑がかかるわけでもなし
メリットが無いと思うのならば使わず突っ走ってみるのも一興 スマートポインタ?delete忘れるわけねーだろとツッパっていたら 見事に二重deleteを踏み抜いて以来 スマートポインタ教になった俺みたいに
- 578 名前:名前は開発中のものです。 mailto:sage [2015/03/25(水) 07:50:29.42 ID:Ni1QV6xd.net]
- スマポ(RAII)は誰もが魅了される素晴らしい作法。
- 579 名前:名前は開発中のものです。 mailto:sage [2015/03/25(水) 09:05:10.14 ID:QSKvYWqw.net]
- 二重deleteは追えばすぐ分かるだけ良心的
- 580 名前:名前は開発中のものです。 [2015/03/29(日) 16:51:57.43 ID:0emdsjcu.net]
- C++も、デフォルトで、ベクトル演算や行列演算のコンパイルができるようになればいいのに
コンパイラに任せると、機械語でオーバーヘッドが膨らみ過ぎるのかな・・・
- 581 名前:名前は開発中のものです。 mailto:sage [2015/03/29(日) 17:28:01.84 ID:xcFREV5w.net]
- どうせベクトルや行列の型を指定するんだから見た目だけなら演算子オーバーロードでいいだろ
そうじゃない自動ベクトル化ならIntelCでも使えよ、一応VCにもあるけど
- 582 名前:名前は開発中のものです。 mailto:sage [2015/03/29(日) 17:28:41.73 ID:ZYW27Yds.net]
- VC++の自動ベクトル化の空気さは異常
- 583 名前:名前は開発中のものです。 mailto:sage [2015/03/29(日) 22:35:03.23 ID:0emdsjcu.net]
- >ベクトルや行列の型を指定するんだから見た目だけなら演算子オーバーロードでいい
要するに自分でクラス定義して、そのクラスを引数に取る演算子のオーバーロードするって事だよな。 それって面倒じゃん? たとえば、ベクトルxとスカラーcがあるとして、 例えば、x-cなんかで、cをベクトルに拡張して四則演算してくれるようにコンパイルをしてくれれば便利だ 記述が、すげースッキリするぜ
- 584 名前:名前は開発中のものです。 mailto:sage [2015/03/29(日) 22:46:40.82 ID:tAb5E4+1.net]
- そんな言語あるのか
- 585 名前:名前は開発中のものです。 mailto:sage [2015/03/29(日) 23:57:58.80 ID:LTE960gn.net]
- HLSLとかGLSLはそうとも言えるんじゃね?
C++に含めるのは仕様が膨らみすぎるしどう考えてもありえないけど
- 586 名前:名前は開発中のものです。 mailto:sage [2015/03/30(月) 17:38:30.42 ID:kGTScyVB.net]
- その程度のオーバーロードぐらい自分で書けよ
- 587 名前:名前は開発中のものです。 mailto:sage [2015/03/30(月) 17:39:10.89 ID:kGTScyVB.net]
- それかライブラリ使え
それぐらい既にあるだろ
- 588 名前:名前は開発中のものです。 mailto:sage [2015/03/30(月) 18:13:10.35 ID:slXQ1bOX.net]
- ベクトル化って並列化のことでなくて?
- 589 名前:名前は開発中のものです。 mailto:sage [2015/03/30(月) 18:23:29.49 ID:kGTScyVB.net]
- >>568
スカラーをベクトルに拡張してって話をどうこねくり回しても並列化にたどり着かないんだけど
- 590 名前:名前は開発中のものです。 mailto:sage [2015/03/30(月) 20:10:43.25 ID:1XyG6Wml.net]
- 行列の話と、CPUの最適化の話がごっちゃになっとるなwww
Phiとか扱わんだろうからなぁ
- 591 名前:名前は開発中のものです。 mailto:sage [2015/03/30(月) 20:48:54.91 ID:b0tJqvqw.net]
- >>565
C言語でも、静的配列はsizeof()で、要素数が求まるじゃん。 だから静的配列に限っては、それほど無理なコンパイル要件でもないと思うんだ。
- 592 名前:名前は開発中のものです。 mailto:sage [2015/03/30(月) 22:48:43.72 ID:slXQ1bOX.net]
- >>569
いや >>562 で出てんじゃん
- 593 名前:名前は開発中のものです。 mailto:sage [2015/03/31(火) 00:17:17.94 ID:DE0yY6pv.net]
- >>572
そいつに言ってるわけじゃないし ID:0emdsjcu はどう見てもベクトル命令の方は言ってないだろ返信の為に引用した方から見ても
- 594 名前:名前は開発中のものです。 mailto:sage [2015/04/04(土) 12:05:56.45 ID:QQCOreS+.net]
- >563
プリプロセッサとかテンプレート使え
- 595 名前:名前は開発中のものです。 mailto:sage [2015/04/04(土) 15:28:53.15 ID:yUzuUUN3.net]
- unityとかue使わないのにはなんか理由があるの?
- 596 名前:名前は開発中のものです。 mailto:sage [2015/04/04(土) 16:35:38.22 ID:vaG8wcz0.net]
- >>575
オープンソースじゃないと嫌な宗派の人たちとか 反プロプライエタリエンジン派の人たちとか?
- 597 名前:名前は開発中のものです。 mailto:sage [2015/04/04(土) 17:34:51.61 ID:YDk4o154.net]
- ゲームを作るだけが目標じゃなくて
技術習得とか作る行程にもこだわりがあるとか
- 598 名前:名前は開発中のものです。 mailto:sage [2015/04/06(月) 02:30:22.94 ID:uSGdnOak.net]
- >>577
まさにそれ。 ゲーム以外でも応用できる技術を身に着けるのが楽しくてしょうがない。 会社(非ゲーム)でも役に立ちまくってる。
- 599 名前:名前は開発中のものです。 mailto:sage [2015/04/06(月) 08:15:15.97 ID:sWIkPIlR.net]
- 日本のIT屋はOSやオフィスソフトなんかを作らなかった
結果世界を相手にできない 日本のハード屋はゼロから作ること(メイドインジャパン)にこだわった 結果世界を相手にできてる unityとかもいいけどゼロからでも作り上げれる技術は保持しときたい だからC++は捨てれない
- 600 名前:名前は開発中のものです。 mailto:sage [2015/04/07(火) 08:34:53.50 ID:q9bGL2Lp.net]
- 俺もだ
つまり、元々ゲームが作りたいんじゃなくて、プログラミングを楽しんで色んな技術や知見を得たい。その過程の一つとしてゲーム作ってるだけ。
- 601 名前:名前は開発中のものです。 mailto:sage [2015/04/07(火) 10:05:55.63 ID:6mIxjEc4.net]
- >>579
言語は関係ないのでは? コピペしたいなら別だけど
- 602 名前:名前は開発中のものです。 mailto:sage [2015/04/07(火) 19:26:39.87 ID:J/eE9D3a.net]
- >581
VMでもスクリプトでもなくハードを直接叩けて多くのプラットフォーム向けのコンパイラのあるOOPも関数型もいける高級言語って他にある?
- 603 名前:名前は開発中のものです。 mailto:sage [2015/04/07(火) 20:05:14.94 ID:pKp3reSH.net]
- ハードを直接叩くって時点でC++は…
- 604 名前:名前は開発中のものです。 mailto:sage [2015/04/07(火) 21:14:04.62 ID:JigxqEUV.net]
- c++11以降の発展が素晴らしいから使ってる。
- 605 名前:名前は開発中のものです。 mailto:sage [2015/04/07(火) 21:49:14.25 ID:6Igr/bFa.net]
- ガベージコレクタないらしいじゃん
それだけで使う気になんないわ
- 606 名前:名前は開発中のものです。 mailto:sage [2015/04/07(火) 22:15:58.91 ID:Js45Pttp.net]
- C++11が神すぎて愛してる。
>>585 ガベコレの必要性が分からない。 スマポじゃダメなの??
- 607 名前:名前は開発中のものです。 mailto:sage [2015/04/07(火) 23:22:56.51 ID:r6+ZyJLJ.net]
- たしかガベコレのCライブラリもあったはず
わざわざC++でガベコレの使うぐらいなら それでこそJavaでよくね?とは思うけど 使いこなせる人はきっといるのだろう ま、使いやすいと思う言語を使えばいいのさ
- 608 名前:名前は開発中のものです。 mailto:sage [2015/04/07(火) 23:52:39.26 ID:V/NiCl4y.net]
- ジャンルにもよるけどゲームの場合はガベコレはデメリットが大きい
ガベコレ中はどうしても処理負荷がかかってしまう あとガベコレでも循環参照とかメモリークの危険性はある
- 609 名前:名前は開発中のものです。 mailto:sage [2015/04/08(水) 01:18:56.44 ID:FP0EIOAz.net]
- 循環参照を上手いこと扱ってくれるのをガベコレって呼ばないか?
単純な参照カウントは含まないイメージがある
- 610 名前:名前は開発中のものです。 mailto:sage [2015/04/09(木) 04:57:40.20 ID:V84tE5WO.net]
- 処理が高速なのが売りの言語にそんな物を突っ込むこと自体が…
しかも、CPUの進化で結構余裕が出るようになってきたとはいえ1フレームを争うゲームで まあ、処理の速さを活かして動作安定性を高めていると言えないこともないが
- 611 名前:名前は開発中のものです。 mailto:sage [2015/04/09(木) 10:55:23.90 ID:MHTRE/z5.net]
- そのあたりの利便性と実行速度のバランス自体を作り手の技術と裁量次第で自由に出来るのがC++の良さ
例えば、マークアンドスイープをメモリ領域を小分けにしてフレーム単位で分散して実行するとか 同じサイズのオブジェクトが大量に生成破棄されるならそれ用のメモリプール作っておくとか
- 612 名前:名前は開発中のものです。 mailto:sage [2015/04/09(木) 11:07:59.75 ID:U3R6v3b4.net]
- マークアンドスウィープ方式のGCを自分で実装なんて考えたこともないわ
- 613 名前:名前は開発中のものです。 mailto:sage [2015/04/09(木) 14:05:15.05 ID:eY4Y798Y.net]
- boostあたりでgcライブラリを出してくれてもいいんでねえ?
スマポの延長みたいな感じで
- 614 名前:名前は開発中のものです。 mailto:sage [2015/04/09(木) 15:30:45.95 ID:TQZSg7vZ.net]
- どうせ何かしらのスクリプト組み込むんだからGC必要な処理はそっちでやればいい
- 615 名前:名前は開発中のものです。 mailto:sage [2015/04/09(木) 15:32:48.11 ID:0uLPtayU.net]
- プログラミング初心者にはわからないと思うけど、プログラミングそのものが有名ゲームをプレイする以上に楽しかったりするんだよね
むしろお金を払わないでプログラミングができるってだけで結構楽しかったり
- 616 名前:名前は開発中のものです。 mailto:sage [2015/04/09(木) 15:51:09.16 ID:DMZkI4l5.net]
- 料理とかプラモデルみたいな感覚って説明してる。
それを楽しいと思えるかどうかは別として。
- 617 名前:名前は開発中のものです。 mailto:sage [2015/04/09(木) 20:09:02.62 ID:V84tE5WO.net]
- 問題は覚えるべき要素も多くて取っ付きにくいことと、
言語仕様がとっ散らかってて時々その仕様に悩まされることだ
- 618 名前:名前は開発中のものです。 mailto:sage [2015/04/09(木) 21:03:17.88 ID:0zValk89.net]
- C++11は洗練されてて好き。
まぁ、それでもプログラミングを楽しめるかどうかは適性次第だろうね。 自分はC++11が超キモチイイ。
- 619 名前:名前は開発中のものです。 mailto:sage [2015/05/04(月) 22:56:40.79 ID:bWjMZjgH.net]
- 初心者だがコードを書くこと自体に喜びを感じる。
- 620 名前:名前は開発中のものです。 mailto:sage [2015/05/05(火) 00:33:10.13 ID:IAsXNTG2.net]
- それは幸せなことだ
初心者は喜びを知り 中級者は苦しみを知り 上級者は無常を知る それがこの世界の理よ
- 621 名前:名前は開発中のものです。 mailto:sage [2015/05/06(水) 00:50:58.96 ID:ZQTteOf/.net]
- >>600
すごい世界だ・・・
- 622 名前:名前は開発中のものです。 mailto:sage [2015/05/06(水) 01:10:46.90 ID:o2LDDDsk.net]
- 無情ならぬ無常か。イケテルじゃんw
- 623 名前:名前は開発中のものです。 mailto:sage [2015/05/06(水) 03:08:49.55 ID:IHlLqFXR.net]
- 当方ビジュアルスタジオ2010にてアクションゲームを作っているんですが、
デバッグ中、配列に格納したマップ情報とオブジェクトとの判定をする部分で ごくまれにエラーが起きて停止します。 経験則で判断すると、マップ判定でのエラーは マップ情報の無い部分にオブジェクトが飛び出すというものが多かったんですが 今回は目視ですべてのオブジェクトが飛び出してるか否か確認出来る状態で 毎回エラー発生時に怪しいオブジェクトがいないので、今までのエラーとは違うような気がします。 しかも、滅多にそのエラーが出ないため、原因を探れません。 ただ、気持ち悪いことがひとつありまして、そのエラーで停止したあと、 マップの情報を入れた配列にカーソルを当てて、要素を見たら、 途中から「?」という状態になって表示されてるんです。 download1.getuploader.com/g/zipcodezipcode/91/B.png download1.getuploader.com/g/zipcodezipcode/90/A.png これがおかしなことに、見るのを止めて、もう一度カーソルを合わせてみると 今度はちゃんと中身が入ってる状態で表示されたりします。 ビジュアルスタジオの扱いにまだ慣れてないせいもあり、 中身が「?」で表示されたのは初めてだし、覗き直すたびに 「?」だったり、ちゃんと中身が見れたりすることが気持ち悪いんですが これは別に、問題ないのでしょうか?(もともとそういうものだ、とか) もし、ゲーム中に配列の中身が「?」みたいになる瞬間があるのなら そりゃいきなりオブジェクトがど真ん中にいてもエラーになると思うんです。。。 これが原因なのかと思うんですが、、違いますか? もしくは配列覗いたときの、「?」表示はビジュアルスタジオのバグなんでしょうか? ちなみに、マップ配列の中身の格納はゲームが始まる最初に行っているので、 ゲーム中にマップ配列の中身が変わることは考えられない仕様です。 だとするとこの「?」はなんなんでしょうか? 考えられる要因を教えて下さい、お願い致します。
- 624 名前:名前は開発中のものです。 mailto:sage [2015/05/06(水) 04:38:15.56 ID:bWOaRpfa.net]
- その覗き直すってのは、
- 625 名前:実行を停止してる状態での話? []
- [ここ壊れてます]
- 626 名前:名前は開発中のものです。 mailto:sage [2015/05/06(水) 04:44:45.87 ID:IHlLqFXR.net]
- >>604
深夜なのにレスありがとうございます。 リリースで実行中に、エラーが起きて「中断」します。 そのときに黄色の矢印がつきますよね、エラーが起きたところで。 中断状態ですね、デバッグモードになってるんでしょうか、 その時の話です。
- 627 名前:名前は開発中のものです。 mailto:sage [2015/05/06(水) 04:51:52.90 ID:bWOaRpfa.net]
- ちょうど同じような症状に悩まされてる人が居たから、そっちと協力すればいいんじゃないかな(鼻ほじ
peace.2ch.net/test/read.cgi/tech/1424782918/857
- 628 名前:名前は開発中のものです。 mailto:sage [2015/05/08(金) 09:17:52.46 ID:NPzwaxuV.net]
- DXライブラリでデータベースと連携させてアカウント制のオンラインゲームとかって作れる?
- 629 名前:名前は開発中のものです。 mailto:sage [2015/05/08(金) 17:02:47.08 ID:1OSTxxey.net]
- DXライブラリは、ただのDirectXのラッパだ
別のライブラリなり、自前なりで用意して組み合わせれば当然出来るだろう DXライブラリにそういう機能があるか?って質問なら、無い。 そういう質問をするレベルの人が作れるかと問われれば、相当厳しいが頑張れとしか。
- 630 名前:名前は開発中のものです。 mailto:sage [2015/05/10(日) 16:30:22.09 ID:wE+sWsx1.net]
- >>603
一箇所で質問しろボケナス
- 631 名前:名前は開発中のものです。 mailto:sage [2015/05/12(火) 19:53:17.91 ID:S9OdlII3.net]
- >>602
マジで最近は技術の陳腐化がものすごく早まって、 ちょっと前までこれが最新最適とされていたコードがもう古い役に立たないコード扱いされてたりして、 そういう意味では無常ではある
- 632 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/05/23(土) 12:10:33.26 ID:OTbSyu9z.net]
- 安定の99BASICとDarkBASIC。(キリッ
- 633 名前:名前は開発中のものです。 mailto:sage [2015/05/23(土) 12:52:09.56 ID:E7l9iLg/.net]
- >>611
IchigoJam行けよ
- 634 名前:名前は開発中のものです。 mailto:sage [2015/05/23(土) 13:41:01.34 ID:Mp8uVbop.net]
- 実績のないルーキーが過剰にもてはやされる業界
- 635 名前:名前は開発中のものです。 mailto:sage [2015/05/24(日) 01:01:21.31 ID:2/e5e/p/.net]
- ゲームのAI作るの楽しいな
一応動いてくれた時の感動がたまらない けど相手に合わせて学習するようなAIはデバッグが難しいね
- 636 名前:Office & Gamers ◆G144Hzgh2.0e mailto:アハ♪” uh huh [2015/05/25(月) 20:19:16.09 ID:uK2DB85t.net]
- >>612
わざわざ99BASIC未満の環境なんか逝くかよw
- 637 名前:名前は開発中のものです。 mailto:sage [2015/05/25(月) 22:55:26.19 ID:na2KTF3d.net]
- お前ならヒーローになれると思ったのになー、残念だわー
- 638 名前:名前は開発中のものです。 mailto:sage [2015/05/30(土) 09:46:19.17 ID:B9JLVvSW.net]
- 参考書増えすぎて置き場所がなくなってきた
ブックエンドいくつか使って何とか置いてたけど ちゃんとした本棚買うべきか・・・
- 639 名前:名前は開発中のものです。 mailto:sage [2015/05/30(土) 10:04:43.12 ID:euXn7anm.net]
- 丁度サイズの合ういい本棚がないんだよな
- 640 名前:名前は開発中のものです。 mailto:sage [2015/05/30(土) 10:36:42.87 ID:B9JLVvSW.net]
- 本棚買う金で新しい参考書買えるんじゃね?って考えてしまう気持ちもあってなぁ・・・
- 641 名前:名前は開発中のものです。 mailto:sage [2015/06/02(火) 17:39:01.05 ID:MlWv0OLE.net]
- 今日発売の ゲームプログラマのためのコーディング技術 って読んだ人いる?
少し立ち読みして良かったら買おうと思って近所の本屋に寄ったけど置いてなかった ゲームのシステムがある程度の規模になってくるとゴチャゴチャしてきて わけわからなくなってくるから綺麗なコード書けるようになりたいんだけど参考になるかね? 専門学校時代も入れるとゲーム製作は3本目なんだけど、 いまだに悩んでるスパゲッティコードをなんとかしたい
- 642 名前:名前は開発中のものです。 mailto:sage [2015/06/02(火) 17:58:05.87 ID:MlWv0OLE.net]
- あ、3本目って言うのは一人で全部プログラミングしたって意味
分担ならもっと多いです
- 643 名前:名前は開発中のものです。 mailto:sage [2015/06/02(火) 21:36:22.65 ID:SNgoyQru.net]
- 読んでないけどゲームプログラマのためのコーディング技術なんて
ループしないで並べるとか細かくメモリとらないとか、 綺麗なコードとは関係なさそうなイメージしかないけどな
- 644 名前:名前は開発中のものです。 mailto:sage [2015/06/02(火) 22:41:29.74 ID:kPJiVod8.net]
- 汚いコード書く奴ほどバグ出してると感じることはある
綺麗に書こうと努力してるコードは何かしらのこだわりを持って書いているからだろうか 必然的に保守し易くなる傾向にあるとも思える しかし何にも増して重要なのはやはりセンス
- 645 名前:名前は開発中のものです。 mailto:sage [2015/06/02(火) 22:52:24.02 ID:OsC99ZpC.net]
- >>623
まったくの同意。 美意識の低い人間のコードは見辛い、保守性悪い、汎用性、可搬性が考慮されていない等々、機能的にも美しくない。 こういうやつの尻拭いがまわってくる度に怒りが込み上げてくる。 うっかりミスや、見通しが難しい段階でのコーディングなど、止むを得ないことは仕方ないが、 もうちと考えるなり拘るなりしようや・・・。
- 646 名前:名前は開発中のものです。 mailto:sage [2015/06/02(火) 23:00:59.32 ID:G2Xt6Fyg.net]
- きったねえコードだ
- 647 名前:名前は開発中のものです。 mailto:sage [2015/06/03(水) 16:11:07.48 ID:Nya6+czP.net]
- とりあえず動けばいいやと考えて作るから場当たり的になってコードが汚くなるんだよ
はじめに全体像を大まかにでも作り上げておいて、それに従って体系だったコードを書いて 場合によっては書き直しも視野に入れるくらいしないと後でバグ探しが大変だよ
- 648 名前:名前は開発中のものです。 mailto:sage [2015/06/03(水) 16:59:26.17 ID:6kvk2a5h.net]
- それは分かったから
なんか具体例で示して
- 649 名前:名前は開発中のものです。 mailto:sage [2015/06/03(水) 19:09:02.96 ID:sRl87IVO.net]
- 継承しまくってもはやどれだけの要素が絡んでるのかわからない子クラスとか、
ソースで使う要素が書かれていないヘッダとか、 あまり意味のないtypedefのせいで紛らわしくなってるソースとか、 ろくに改行もせずにごちゃごちゃ書きなぐってるソースとか… 可読性は落とそうと思えばいくらでも落とせそうだからなぁ
- 650 名前:名前は開発中のものです。 mailto:sage [2015/06/04(木) 16:11:36.42 ID:vrU+ubOi.net]
- >>626
たぶん、「とりあえず動けばいい」というコーディングをしつつも、 最低限の体裁が整ってるような、基礎力が必要なんだろうなあ 勉強しなきゃ
- 651 名前:名前は開発中のものです。 mailto:sage [2015/06/04(木) 18:56:22.51 ID:cnsghjkt.net]
- いつオープンソース化しても恥ずかしくないような
きれいな設計を心がけている
- 652 名前:名前は開発中のものです。 mailto:sage [2015/06/05(金) 19:52:10.75 ID:JMVsMa+y.net]
- そして暗号のような関数名や変数名
- 653 名前:名前は開発中のものです。 mailto:sage [2015/06/05(金) 20:37:14.05 ID:mCe853J4.net]
- 3回も書き直せばマシになると思う
というか当たり前だけど、設計って細かい点までどうしてそうしたか説明できないと
- 654 名前:名前は開発中のものです。 mailto:sage [2015/06/05(金) 22:35:58.01 ID:LdgVPS1s.net]
- >>620の本がアマゾンのゲームプログラミングカテゴリで売れ筋1位になってんな
- 655 名前:名前は開発中のものです。 mailto:sage [2015/06/06(土) 14:40:28.29 ID:dpbcAJje.net]
- ゲームプログラミングカテゴリ
ニッチすぎる
- 656 名前:名前は開発中のものです。 mailto:sage [2015/06/06(土) 15:35:59.70 ID:sud1dN03.net]
- そのニッチなことに興味あるのがこのスレに居る奴らだろう
- 657 名前:名前は開発中のものです。 mailto:sage [2015/06/07(日) 13:09:26.35 ID:NNLpNWfN.net]
- 技術テストだから・・・と書き始めたコードを、体裁整えて本番用にしてしまいました。
構造体には、今後を見据えた無駄が沢山ヽ(`Д´)ノ 関数には、アップデートの過程で使われなくなった関数そこそこヽ(`Д´)ノ グローバル変数こそ控え目なものの、そこかしらに謎の変数int i;が溢れていますヽ(`Д´)ノ うん、もう少し頑張ろう。
- 658 名前:名前は開発中のものです。 mailto:sage [2015/06/07(日) 19:01:21.25 ID:GcuHsAFc.net]
- >>620の読んだ人はいない?
まだ現物見てないからすでに手に入れた人がいたら感想聞きたいが
- 659 名前:名前は開発中のものです。 mailto:sage [2015/06/07(日) 19:49:11.96 ID:kU5YoC5S.net]
- 田舎だからか本屋に置いてなかった
- 660 名前:名前は開発中のものです。 mailto:sage [2015/06/09(火) 13:45:46.10 ID:KfX/rE3U.net]
- 電子版あるべや
- 661 名前:名前は開発中のものです。 mailto:sage [2015/06/09(火) 17:10:14.78 ID:xMkQCsUA.net]
- 中身確認してから買いたいって意味だろ
- 662 名前:名前は開発中のものです。 mailto:sage [2015/06/09(火) 20:36:17.49 ID:fdMK9ws0.net]
- >>636
バージョン管理ソフトで定期的にバックアップを取りつつ、 使わなくなった関数は消してあげるといいよぉ っつーか、使わないなら消してくれ 頼むから
- 663 名前:名前は開発中のものです。 mailto:sage [2015/08/31(月) 13:46:15.71 ID:BsMwLClI.net]
- 幸福を固定された状況で規定するのは無意味
重要なのはどれだけそれを望むかということ それに富と名声が同時に手に入らないと決まっているわけでもない わざわざ自分から天井作ることはないだろ ニートよ大志を抱け
- 664 名前:名前は開発中のものです。 mailto:sage [2015/08/31(月) 13:46:58.10 ID:BsMwLClI.net]
- ごwばwくw
- 665 名前:名前は開発中のものです。 mailto:sage [2015/09/27(日) 10:14:22.18 ID:U9LV1Cm0.net]
- 前スレ >>996 です
やっと移植終わりました 60ポリの飛行機が120fpsでしたがw とりあえずOS(バイナリのみ)ともとにしたPC版ソースあげてみます www1.axfc.net/u/3540804
- 666 名前:名前は開発中のものです。 mailto:sage [2015/09/30(水) 16:48:24.79 ID:/wD0a4XY.net]
-
- 667 名前:自作OSで3D表示に挑戦してた人か、乙 []
- [ここ壊れてます]
- 668 名前:名前は開発中のものです。 [2015/12/19(土) 14:08:46.68 ID:xrPl3RjI.net]
- プログラマはMacを使ってるってマジ?
hayabusa3.2ch.net/test/read.cgi/news/1450395043/
- 669 名前:名前は開発中のものです。 mailto:sage [2016/03/08(火) 21:48:03.20 ID:aJ2MUmL6.net]
- 14歳からはじめるC言語わくわくゲームプログラミング教室 Visual Studio 2013編p148に
//画像を読み込み if (LoadGameImage() == FALSE) return -1; というのがあるんだが 画像をこれで読み込んでるらしいが プログラムに異常があったときの処理があるようにしか見えない それともC++とDXライブラリではこれが画像読み込みを意味するんだろうか・・・
- 670 名前:名前は開発中のものです。 mailto:sage [2016/03/08(火) 23:48:05.21 ID:HZQ9dU35.net]
- どういうこと?
- 671 名前:名前は開発中のものです。 mailto:sage [2016/03/08(火) 23:55:20.55 ID:xTnST2lM.net]
- LoadGameImageは自作関数じゃないの?
- 672 名前:名前は開発中のものです。 mailto:sage [2016/03/08(火) 23:58:22.29 ID:S/avUcpG.net]
- >>647
読み込みとエラー判定を兼ねているのではなく?
- 673 名前:名前は開発中のものです。 mailto:sage [2016/03/08(火) 23:59:47.69 ID:HZQ9dU35.net]
- >プログラムに異常があったときの処理があるようにしか見えない
これが具体的に何を指すのかが分かれば 答えようもあるんだが
- 674 名前:名前は開発中のものです。 mailto:sage [2016/03/09(水) 00:25:01.22 ID:6v8oW5co.net]
- www12128uf.さくら.ne.jp/forum/viewtopic.php?t=16197&p=128079
ここに>>647が言ってるものと思われるコードが載ってるけど、 エラー判定をするif文に何か関数が入ってれば当然その関数もif文を判定するときに実行される だからエラー判定の一行だけで画像の読み込みも同時に済む これはDXライブラリの仕様ではないよ >プログラムに異常があったときの処理があるようにしか見えない これは失敗した時に-1を返すようになってるからそう思ったんだと思う DXライブラリの関数でもそうなっているね
- 675 名前:名前は開発中のものです。 mailto:sage [2016/03/09(水) 10:30:03.03 ID:hrHSTVTj.net]
- if(!Func()) return 0;
みたいな書き方を俺はよくしてるけど "!"よりも"== FALSE"の方が可読性高かったりする?
- 676 名前:名前は開発中のものです。 mailto:sage [2016/03/09(水) 15:57:21.69 ID:Ezb24swa.net]
- 俺も!だと一瞬で理解できないな。
!strcmpとか書かれるとそこで1秒固まる。
- 677 名前:名前は開発中のものです。 mailto:sage [2016/03/09(水) 16:03:42.30 ID:k0YnCSJd.net]
- んなことはない
俺は!でも分かるし オープンソースソフトウェアのソースコードでもよく使われている
- 678 名前:名前は開発中のものです。 mailto:sage [2016/03/09(水) 16:08:21.21 ID:yq5u8pgy.net]
- 自分も!派だな
- 679 名前:646 mailto:sage [2016/03/09(水) 18:40:53.88 ID:Y8IoTovs.net]
- あああ ありがとうございました
if文の中の関数が実行されるとは・・・
- 680 名前:名前は開発中のものです。 mailto:sage [2016/03/09(水) 18:50:25.07 ID:ZhTtK3D6.net]
- Cの勉強中?
- 681 名前:名前は開発中のものです。 mailto:sage [2016/03/09(水) 19:50:34.93 ID:JQPFUPms.net]
- !はよく使うけど、if文の中に関数は書かないな。
エラー処理とかしたい時は一旦hogeでも挟む。 strcmpとか条件分岐で使うのが前提みたいな関数は書くけど。 ってか人多いな。
- 682 名前:名前は開発中のものです。 mailto:sage [2016/03/09(水) 20:28:24.63 ID:KZC9RKwk.net]
- >>654
!がわかりにくいのではなくて strcmpのような真偽値でない値を返す関数に対して!を使ってる 本質的に正しくない書き方だからじゃないか?
- 683 名前:名前は開発中のものです。 mailto:sage [2016/03/09(水) 21:34:28.22 ID:JVQPGZ6h.net]
- !か==FALSEかの可視性に関してはその関数が何を返してくるかによると思うけどね
>>659 自分も一旦変数で受けてから評価するかな
- 684 名前:名前は開発中のものです。 mailto:sage [2016/03/09(水) 21:58:58.25 ID:RXGdxmu3.net]
- 半年ぶりの書き込みだって言うのに結構レスついたな
書き込みなかっただけでチェックしてる人はいたのか
- 685 名前:名前は開発中のものです。 mailto:sage [2016/03/09(水) 22:07:48.28 ID:bvV2Ln2d.net]
- !使うときって、正常終了時は0が返ってきて、エラーの時は0以外(エラー番号)、
ってな関数の時に使うこともある 他人に判りやすく書くなら、S_OKとか使った方がいいんだろうけど
- 686 名前:名前は開発中のものです。 mailto:sage [2016/03/09(水) 23:47:54.45 ID:4T/47goJ.net]
- 今回の件の反動で>>657が変態Cプログラマーになる確率90%
- 687 名前:名前は開発中のものです。 mailto:sage [2016/03/10(木) 02:11:59.94 ID:mzm/T4vZ.net]
- でも多少の文法の違いはあれど、
C/C++以外でも頻出する用法よね…
- 688 名前:名前は開発中のものです。 mailto:sage [2016/03/11(金) 13:06:08.83 ID:N544VfcK.net]
- 確かに戻り値0orNot0とstrcmpは分けるべきだったな、失礼。
お願いだから、0<strcmp(a,b)って 書き方だけは止めてくれーーー!!(心の叫び)
- 689 名前:名前は開発中のものです。 mailto:sage [2016/03/11(金) 20:50:27.91 ID:0nAdN0wU.net]
- 左辺に定数来る書き方が?
- 690 名前:名前は開発中のものです。 mailto:sage [2016/03/11(金) 22:16:16.31 ID:N544VfcK.net]
- strcmp(a,b)<0は、a<bって脳内変換できるけど、
0<strcmp(a,b)はa>bになって、不等号が逆になっちゃうんだよね if (a==1) を if(a=1)としてもエラーにならないから if(1==a)って書きましょうっていう コーディング規約の影響なんだけと
- 691 名前:名前は開発中のものです。 mailto:sage [2016/03/11(金) 23:40:02.75 ID:0nAdN0wU.net]
- あー、なるほど
- 692 名前:名前は開発中のものです。 mailto:age [2016/03/19(土) 02:16:35.26 ID:r4dDPjn8.net]
- なるぽ
- 693 名前:名前は開発中のものです。 mailto:sage [2016/03/19(土) 05:49:07.11 ID:of13wxGN.net]
- Javaのコーディング規則で、必ず左側に、
小さい方を書く、というのを見たことがある a < b OK a > b これはダメ
- 694 名前:名前は開発中のものです。 mailto:sage [2016/03/19(土) 23:46:05.96 ID:O4bWw4/W.net]
- 不等号は基本的に小なりを使いたいってのは、分からんではないかな?
「必ず」ってなると面倒そうだが。
- 695 名前:名前は開発中のものです。 mailto:sage [2016/03/23(水) 21:40:01.22 ID:Ti6+V5d4.net]
- 「統一した方がいい」という発想は分かるけど、何でも絶対的な規則で
統一するのが正しいと考えるのは中級プログラマの悪い癖だよ 文脈上、xという変数が意味を持つ箇所で「x > 0」でなく「0 < x」と書くのは だだの教条主義。「臨機応変」が正解なんだ
- 696 名前:名前は開発中のものです。 mailto:sage [2016/03/24(木) 16:12:48.68 ID:CsdUy+70.net]
- 「初心者がgotoを連発するよりは、全面禁止にしてしまったほうがトラブルが少ない」
みたいな類かもしれない
- 697 名前:名前は開発中のものです。 mailto:sage [2016/03/24(木) 19:13:52.99 ID:TxcOybH3.net]
- 原則的に不等号は直接書かないようにしている。
比較なりなんなりは“ホニャララ”かどうかを判断するためにあるのだから “ホニャララかどうか”というマクロなり関数なりメソッドにしてる。
- 698 名前:名前は開発中のものです。 mailto:sage [2016/03/25(金) 07:10:43.20 ID:5jyLFHUE.net]
- その発想も確かに正しいが、
比較1つ程度でなんでもかんでもそれやると、逆にわかりにくくならん?
- 699 名前:名前は開発中のものです。 mailto:sage [2016/03/31(木) 00:24:44.36 ID:qFkKshiZ.net]
- >>673
よくある規則としては 特別な理由がない限り従うこと だ。 特に共通部品系を作成する奴はスキルが高い事が大前提のため、規則を無視することが多い。 十分にデバッグするしね
- 700 名前:名前は開発中のものです。 [2016/04/12(火) 00:37:37.91 ID:YMU8Fmug.net]
- リスト構造ってゲームの場合どういう時によく使われるんだろう?
- 701 名前:名前は開発中のものです。 mailto:sage [2016/04/12(火) 00:48:30.61 ID:8sNCvVDt.net]
- タスクシステム作って古の風を感じたい時かな
- 702 名前:名前は開発中のものです。 mailto:sage [2016/04/15(金) 07:29:42.45 ID:gdl0YKy3.net]
- 大量のオブジェクトを駆使するゲームなんかだと
まだ使うことはあるのかなあ…?
- 703 名前:名前は開発中のものです。 mailto:sage [2016/04/15(金) 20:50:38.81 ID:ksWWJBCE.net]
- リストじゃないと何使ってるの?配列?
- 704 名前:名前は開発中のものです。 mailto:sage [2016/04/15(金) 22:11:23.49 ID:gdl0YKy3.net]
- そこって1ミリでも疑問に思うとこなの?
- 705 名前:名前は開発中のものです。 mailto:sage [2016/04/16(土) 00:29:38.93 ID:QR94Rf2u.net]
- Siv3D触ってみたけど
while (System::Update()) { } こういうスタティック上等、エラーも返すで^^な書き方って何の影響を受けてんの?
- 706 名前:名前は開発中のものです。 mailto:sage [2016/04/16(土) 09:17:43.38 ID:wej20Ait.net]
- リストは削除と挿入のコストがO(1)だから増えたり減ったりが多いような時に使う
ただし検索コストはO(n)になる
- 707 名前:名前は開発中のものです。 mailto:sage [2016/04/16(土) 12:10:46.47 ID:PRbyp6Ee.net]
- >>682
俺にとってはね で、答えは?
- 708 名前:名前は開発中のものです。 mailto:sage [2016/04/16(土) 15:13:18.16 ID:AMsxlZHo.net]
- だから配列でしょ
- 709 名前:名前は開発中のものです。 mailto:sage [2016/04/17(日) 05:39:51.98 ID:yyaaEcZM.net]
- >>678
2Dゲーム作ってます。 リストはキャラ情報繋ぐのに使用。 先頭さえ押さえておけば、キャラ情報領域を総当りしなくても良いので便利。 ついでに作画順番も決まるので、順番を調整すれば重ね合わせも制御できます。
- 710 名前:名前は開発中のものです。 mailto:sage [2016/04/17(日) 08:05:02.97 ID:i3HsvLfj.net]
- exists みたいなフラグが1つ減るというのは
ちょっとだけスマート。。。かもしれない
- 711 名前:名前は開発中のものです。 mailto:sage [2016/04/24(日) 00:23:52.15 ID:MInVRodY.net]
- リストじゃなかったら配列ってメモリ配置の事言ってるのか?
データ構造の事なら他にも色々あると思うが
- 712 名前:名前は開発中のものです。 mailto:sage [2016/04/24(日) 00:37:02.19 ID:nXkxGb8d.net]
- こういうデータ構造が向いてる、ってのが分かってるなら、そっちを使うだけで
用途を限定しなかったら一般的には配列になるんじゃね
- 713 名前:名前は開発中のものです。 mailto:sage [2016/04/24(日) 23:39:03.51 ID:MInVRodY.net]
- むしろデータ構造なんて用途ありきなんだから用途を限定せずにって前提は無意味な気が
超汎用のコンテナ作ってるならともかく
- 714 名前:名前は開発中のものです。 [2016/07/30(土) 13:10:59.59 ID:gYGEPygV.net]
- ゲ製板の任意ワッチョイの導入についての投票を8月7日(日)に行います。
ご希望の方は是非参加お願い致します。 tamae.2ch.net/test/read.cgi/vote/1469829608/
- 715 名前:名前は開発中のものです。 [2016/08/04(木) 03:44:27.44 ID:uSHyJnw3.net]
- 今からDirectXやろうと思ったらDirectX11でいいんだろうか
9のほうがサンプルとか記事は多いけど…
- 716 名前:名前は開発中のものです。 mailto:sage [2016/08/04(木) 05:00:21.26 ID:BXEYLxgQ.net]
- 9に比べて若干ハードル高いけど11から始めた方がいい
- 717 名前:名前は開発中のものです。 [2016/08/06(土) 13:22:04.65 ID:jvnNi9Fg.net]
- 1週間前にも告知いたしましたが再度告知致します。
ゲ製板の任意ワッチョイの導入についての投票を8月7日(日)に行います。 スレの>>2の訂正部分に気を付けて是非参加お願い致します。 tamae.2ch.net/test/read.cgi/vote/1469829608/
- 718 名前:名前は開発中のものです。 [2016/08/06(土) 18:57:46.72 ID:zv4mu8Do.net]
- C++ゲーム制作ライブラリで
https://developer.mozilla.org/ja/docs/Web/CSS/border-image こういう処理を提供しているのってありますかね? 会話ウィンドウとかこういうのあると結構便利だと思うんだけど
- 719 名前:名前は開発中のものです。 mailto:sage [2016/08/07(日) 00:48:34.67 ID:KJmZIl4L.net]
- 【訂正】
>>695において8/7(日)に行うと告知されたワッチョイ導入についての投票ですが、 自治スレでは投票の是非について結論が出ておらず、 現時点において投票の実施が決まったという事実はありません なお、ワッチョイ導入そのものが否決されたわけではありません 導入についての議論は現在も自治スレにおいて継続中です ご意見のある方は自治スレまでお越しください ■ ゲーム製作技術板自治04 [無断転載禁止]©2ch.net・ echo.2ch.net/test/read.cgi/gamedev/1469698797/
- 720 名前:名前は開発中のものです。 [2016/08/07(日) 01:05:27.05 ID:95O87T0V.net]
- 荒らしが出没しておりワッチョイの議論だけでなく投票自体もまとまらないから
投票を開始しましたが【訂正】と言い投票自体を妨害する方が出没しています。 投票自体は20:59まで行っており、確認時間も23:59までの3時間行っておりますので 是非参加お願いいたします。 tamae.2ch.net/test/read.cgi/vote/1469829608/
- 721 名前:名前は開発中のものです。 mailto:sage [2016/09/13(火) 12:12:13.43 ID:arn+xict.net]
- >>696
可変サイズを求めなければ、ピクチャの上にテキスト配置するだけじゃないの
- 722 名前:名前は開発中のものです。 [2016/11/20(日) 15:53:19.18 ID:Zr00I/Qf.net]
- ,彳;;;;;;;;;;;;;;;;;;;;;;;;;;、
/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,ヽ 涙が あとからあとから あふれ出て /;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;t、 ,';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;z 止めることができなく なる !;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i |''';;;;;;;;;;;;;'''" ,;;;;;;;;;;;;;;;;;;;;f ニ;、 マヨーレマヨーレ! {丁 "'' _ ,;;;;;;;;;;;;;;;;;//万 ! ! .i厂\( \ 六夂 i、__ goo.gl/kY6CYb ! .{.\ \ \ ,' ! ‐ ´  ̄ ̄ Zz、 i >、 ヽ \ \ | | \ .| \\\ ヽ ー= ! .\ ! \\\ 、,. `' | ヽ } ≧! 、,,. ! ! ノ .', | | ./ 八 ', ! / ./ .>‐、 .∧ :; .! ./ / / ヽ \ ∧ !: ハ / / ./ ', ヽ .∧ / ノ i / / , ', ∧ ! ' ! // ! ∨ ∧ ,' i .! / / セ、 ∨ ∧ ! ! .| /z ´ .\ ∨ \ _| .' .|
- 723 名前:長留裕平 [2016/11/29(火) 21:25:56.43 ID:s/ljbuDp.net]
- ブックオフで本がうってるぜそれを全部買ってこい
- 724 名前:長留裕平 ◆lirqr6DwLQ [2016/11/29(火) 21:26:57.45 ID:s/ljbuDp.net]
- ブックオフで本が打ってるぜそれをかってこい
- 725 名前:長留裕平 ◆lirqr6DwLQ [2016/11/29(火) 21:28:24.55 ID:s/ljbuDp.net]
- ブックオフで本が打ってるぜそれを全部買ってこい
- 726 名前:長留裕平 ◆lirqr6DwLQ [2016/11/29(火) 21:29:50.98 ID:s/ljbuDp.net]
- 柴田さんを崇めなさい
- 727 名前:名前は開発中のものです。 mailto:sage [2016/12/05(月) 22:18:08.65 ID:ZTsIsC0K.net]
- 並列処理しても、キャッシュ機構がネックになるから、
参照するヒープが膨大だと、 必ずしも速度倍率=動員コア数とはならないな
- 728 名前:名前は開発中のものです。 mailto:sage [2016/12/06(火) 08:39:38.65 ID:b57tQ2bo.net]
- 3dモデルを描画するときってどうするのが一般的?マテリアルごと?
- 729 名前:名前は開発中のものです。 mailto:sage [2016/12/06(火) 08:48:58.50 ID:b57tQ2bo.net]
- スレチだったかも
連投スマソ
- 730 名前:名前は開発中のものです。 mailto:sage [2016/12/21(水) 18:36:24.74 ID:hQNzrBhV.net]
- >>706
マテリアル別、テクスチャ別でソートしてた希ガス
- 731 名前:名前は開発中のものです。 mailto:sage [2017/08/11(金) 19:45:04.06 ID:aPax3ehE.net]
- namespace GameObject{
namespace Player{} class Player; } visual studioで上記のことやりたいんだけどできないんだけ? 前提としてフォルダとnamespace構造をいっしょにしたい。 現状の実装 namespace Player{ class Player{}; //PlayerHelperClass,Function } みたいなことやっているけど GameObject::Player::Playerってなんだか気持ちが悪い これを避けるためにnamespace PlayerHelperを作ったほうがいいのか悩んでるんですけど 皆様はどうしてます?
- 732 名前:名前は開発中のものです。 mailto:sage [2017/08/12(土) 01:07:35.74 ID:ZQFcyoj/.net]
- >>709
PlayerHelperをクラス内クラスにするってのは無し?
- 733 名前:名前は開発中のものです。 mailto:sage [2017/08/12(土) 18:22:36.69 ID:iYZm+7V9.net]
- ありですな
ありがとう クラス内クラスにする場合、クラス内に前方宣言しとかないといけないのが欠点だけど 大した手間ではないけどうーんこれがベターか? c++ではpartial class的なことできればな ヘッダー汚れなくて済むのに 他のコンパイラだとnamespaceとclass被ってもコンパイルできたりするのに player.hとplayerhelperfuncを同じフォルダに入れたかったから今の設計にしたんだと思うけど、別に同じフォルダに入れなくてもいい気もしてきた ありがとうございました
- 734 名前:名前は開発中のものです。 [2017/12/31(日) 19:27:52.04 ID:/rN76OKL.net]
- 簡単にお金が稼げる方法興味ある人だけ見てください。
グーグル検索⇒『来島のモノノリウエ』 L23CW9IZ1K
- 735 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|