■ このスレッドは過去ログ倉庫に格納されています
C/C++ゲーム製作総合スレッド Part6
- 1 :名前は開発中のものです。:2014/07/08(火) 19:30:19.51 ID:J+zVqUil.net
- ゲーム製作におけるC/C++全般に関するスレです。
元スレ
DXライブラリ 総合スレッド その17
http://toro.2ch.net/test/read.cgi/gamedev/1383795645/
前スレ
C/C++ゲーム製作総合スレッド Part1
http://toro.2ch.net/test/read.cgi/gamedev/1337516528/
C/C++ゲーム製作総合スレッド Part2
http://toro.2ch.net/test/read.cgi/gamedev/1351015269/
C/C++ゲーム製作総合スレッド Part3
http://toro.2ch.net/test/read.cgi/gamedev/1357899040/
C/C++ゲーム製作総合スレッド Part4
http://toro.2ch.net/test/read.cgi/gamedev/1376262450/
C/C++ゲーム製作総合スレッド Part5
http://peace.2ch.net/test/read.cgi/gamedev/1389798031/
- 2 :名前は開発中のものです。:2014/07/08(火) 20:06:44.54 ID:5wDx0zvv.net
- 忘れてた
DXライブラリ 総合スレッド その18
http://peace.2ch.net/test/read.cgi/gamedev/1399459468/
- 3 :名前は開発中のものです。:2014/07/08(火) 22:28:56.27 ID:HDpYeZ9B.net
- こういったRPGツクール(を再生するソフト)のオープンソース版を作りたい。これはフラッシュへコンバートしてるがオープンじゃない。エクセルはオープンオフィスでも動作する。
ドラゴンファンタジー2ってソフトが良い出来で、オープンソフトで動作させて改良もしたい。
ゲームをブラウザで!RPGツクール2000、WOLF RPGエディタ、NScripterが動くサイト - NAVER まとめ
RPGツクールやWOLF RPGエディター、NScripterをご存じだろうか。
どれも有名なゲームのエンジンであるが、これらがブラウザ上で動作するウェブサイトを発見したのでここで紹介したい。
http://matome.naver.jp/odai/2137760829980740001
カテゴリ:ロールプレイング | Plicy [プリシー]
http://plicy.net/GameSearch?Genre_Mode=1&Genre_Select=0
- 4 :名前は開発中のものです。:2014/07/09(水) 00:33:05.16 ID:/9oaau4B.net
- 秘密の話
超一流大の超一流サークルに味噌っかすとして在籍したけど
「戻り値」という奴は漏れなく糞だった
一流の先輩と同期の一流の素質持ちは「返り値」と呼んでいた
それ以来、相手の実力を測る一指標になった
- 5 :名前は開発中のものです。:2014/07/09(水) 00:42:18.61 ID:gH6YrqIg.net
- ウケる
- 6 :名前は開発中のものです。:2014/07/10(木) 23:08:04.49 ID:BdedQXe0.net
- じゃあnullの入ったポインタはなんて言うの
- 7 :名前は開発中のものです。:2014/07/10(木) 23:56:25.48 ID:2LHVKMhd.net
- ぬるぽ〜
- 8 :名前は開発中のものです。:2014/07/12(土) 11:17:35.85 ID:ncc3HdV6.net
- VisualStudio漬けの奴は一度Eclipseでゲーム作ってみた方がいい
ポインタとか配列少し組み合わせただけでインテリセンス全く効かなくてIDEが考えるのやめるから
素のプログラミング能力が鍛えられるぞ
- 9 :名前は開発中のものです。:2014/07/12(土) 11:44:15.86 ID:7m2fpbr8.net
- VS使うと脳が衰退する的ななにか
- 10 :名前は開発中のものです。:2014/07/12(土) 14:26:52.71 ID:vQ3bn+KM.net
- vi使えよ
- 11 :名前は開発中のものです。:2014/07/12(土) 15:31:31.54 ID:dx44IWET.net
- そんな無駄なことしてないで
VS使って削減した時間で技術書読んだ方が良い
- 12 :名前は開発中のものです。:2014/07/12(土) 19:27:51.35 ID:YFwp2REv.net
- コンピュータに出来ることは全部やらせてしまえってのがPGの本質だな
- 13 :名前は開発中のものです。:2014/07/13(日) 23:54:43.48 ID:6xdbF51m.net
- STLとか普通に使ってる?自分の上司(Win95時代が彼の黄金期だった)はひたすら
std::string, map, vectorとか避けてたけど自分はフツーに使っちゃってるんだよね。
- 14 :名前は開発中のものです。:2014/07/13(日) 23:56:16.44 ID:2b5ueZ89.net
- C++でSTL使わないって何の罰ゲームなのん
- 15 :名前は開発中のものです。:2014/07/14(月) 00:05:45.54 ID:ghns6Q0L.net
- 俺は使ってないが、それは単に使い方がわからんだけだし、
使い方知ってりゃ使うかもしれん。
- 16 :名前は開発中のものです。:2014/07/14(月) 00:06:33.81 ID:ghns6Q0L.net
- あ、まったく使ってないわけじゃないか。一部は使ってるな。
- 17 :名前は開発中のものです。:2014/07/14(月) 00:21:08.41 ID:RkncYO6G.net
- STLの書き方なんとかならないのかな
- 18 :名前は開発中のものです。:2014/07/14(月) 06:38:37.12 ID:4dgjpkas.net
- なら自分で書けば良いじゃん
- 19 :名前は開発中のものです。:2014/07/14(月) 06:54:19.85 ID:rCKkTZCt.net
- STLは詳細知らずに使うと面倒なバグの原因になるし、よくわからんものは使わないっていうのは判断として間違ってないな
- 20 :名前は開発中のものです。:2014/07/14(月) 10:44:14.50 ID:89yPaujn.net
- >>13
そういうのってご本人から理由を聞くのが一番早いと思うんですよねぇ
例えば組込では、不具合が事故に繋がるような制御部とか、かなりカッチリ
とした規約を設ける場合とかありますし。ターゲットハードウェアの仕様上
の都合で使える選択肢に各種の制限が加わる場合も今でもありますし
それと人材流動性が低い場合、社内で整備された資産が「標準」ですから。
それが「要求される機能を満足してます」「みんなが既に習得してます」
「既に安定しており、信頼されてます」などなど、諸々の理由で使われます
一方で人材流動性が高いとか、社内の資産が乏しいとか、様々な理由で
プログラマの裁量権が大きい(臨機応変にやってください状態)の場合は
承認プロセス無しにどんどん新しいライブラリやツールを導入しますね
- 21 :名前は開発中のものです。:2014/07/14(月) 15:04:44.76 ID:Ic3STpJM.net
- ゲーム作るときってPhysXって使う?
それともオクツリーとの判定で済ませる?
- 22 :名前は開発中のものです。:2014/07/14(月) 15:33:33.84 ID:zcJRIfiP.net
- >>21
PhysXは個人使用ならライセンス的に......
- 23 :名前は開発中のものです。:2014/07/14(月) 20:28:44.19 ID:89yPaujn.net
- 少なくともPC用のバイナリ版SDKについては商用・非商用を問わず
ライセンスフィーとかロイヤリティの類は発生しませんよ。お金の面
では心配無用かと
http://www.nvidia.co.jp/object/physx_downloads.html
> The NVIDIA binary PhysX SDK is 100% free for both commercial and
>non-commercial use
数年前、地方の即売会でジャケット詐欺の物理18禁ゲーを200円で配布
した際、事前に海外の開発者向けのコミュニティで、その手の話題の中で
便乗質問しまして、ライセンス的にはノープロブレムって言われました
- 24 :名前は開発中のものです。:2014/07/15(火) 00:01:33.50 ID:qX1m7C3+.net
- 物理エンジンってどうやってプログラム上で使うの?
自分が定義した座標情報とかを他所に任せて移動方向とかフィードバックがくるのか?
全然想像つかない
- 25 :名前は開発中のものです。:2014/07/15(火) 09:29:57.46 ID:fXHr03lw.net
- キャラクターの位置とか障害物の位置とかがうまくゲーム内の状況と一致するように、物理エンジン内に箱を作る
勝手に物理エンジン内でモノが動く(ゲームキャラクター側には何の影響もない)
必要なタイミングで、物理エンジン内の箱の位置や角度情報を取り出す
その位置や角度をし、自分のゲーム内のキャラクタに適用する
- 26 :名前は開発中のものです。:2014/07/15(火) 10:30:27.70 ID:bF6wBS74.net
- すげぇな。そんなシステムなのか。
- 27 :名前は開発中のものです。:2014/07/15(火) 12:49:35.84 ID:YEdbM4Lm.net
- MMDがいい例だよ
腕と髪に剛体が仕組まれてて、腕の動きに剛体がついていく
腕の剛体が髪の剛体にあたると髪の剛体が動いて、髪の動きとなる
- 28 :名前は開発中のものです。:2014/07/18(金) 00:32:45.27 ID:RFAJhKUJ.net
- キャラの動きとか物理エンジンに丸なげしたらすごく楽でなー。。。
- 29 :名前は開発中のものです。:2014/07/18(金) 18:24:17.00 ID:HNYPZCeU.net
- 「不安定な足場」を物理エンジンに任せようとするとどうなるの?
例えば飛行船の上で戦うとか
キャラクターだから自立はできる、けど飛行船の揺れは影響させたいし、>>25の解説だけ聞くと物理エンジン内の空間ではキャラクターを表すオブジェクトが倒れそう
まぁ倒れないんだろうけど
- 30 :名前は開発中のものです。:2014/07/18(金) 20:22:38.58 ID:RFAJhKUJ.net
- >>29
お前は物理シミュレータを作りたいのか?
それともゲームが作りたいのか?
- 31 :名前は開発中のものです。:2014/07/18(金) 21:31:31.69 ID:wz9t21HD.net
- > キャラクターだから自立はできる、
この認識が間違い
キャラクターは空間に固定されてアニメーションさせてるだけだから倒れたりバランスを失ったりすることはない
- 32 :名前は開発中のものです。:2014/07/19(土) 09:04:53.45 ID:MwsgZEhX.net
- >>31
んー・・・
例えば飛行船が急降下したとき、
乗ってるキャラクターは浮いたり偏ってる方に滑ったりする
この時、物理エンジン内で倒れていたら無理矢理起こす(固定?)という感じになるのか
- 33 :名前は開発中のものです。:2014/07/19(土) 09:28:41.17 ID:aecMKE4f.net
- >>32
普通、物理エンジンはキャラクターそのものには使わず
キャラクターの髪の毛とかスカートとかにしか使わない
> 「不安定な足場」を物理エンジンに任せようとする
っていうのが無理
http://www.gravitysensation.com/sumotori/index.php
極端な例だが、キャラクターの動きを物理エンジンに任せてしまうと、このゲームみたいに無茶苦茶になる
- 34 :名前は開発中のものです。:2014/07/19(土) 11:45:17.81 ID:ZZT3dE9z.net
- >>32
物理エンジンに丸投げと言っても、物理エンジンが自作コードから独立して動くわけじゃないし、
ゲームである以上、100%物理エンジン任せにすることはない。ガンガンプログラマが修正していく。
実際、メタッルギアソリッドのプログラマはその昔、
物理エンジンに任せることは多いが、そのままでは全くゲームにならないので「嘘」を入れていると言っていた。
例えば、人間キャラが自分より大きな物体(岩など)を押して動かす…などのギミックが使えないのだとか。
>>33
「キャラ自体に物理エンジンは反映させない」と言い切るのは、ちょっと乱暴じゃないかな?
実際それが楽なのは間違いないんだけどさ。
例えば、物理演算空間では単純な形状の剛体(直方体など)で登録しておいて、
位置情報だけキャラクターに反映させるとかさ。
- 35 :名前は開発中のものです。:2014/07/25(金) 07:42:06.20 ID:0cPiHr0B.net
- 物理エンジンには衝突判定を丸投げするのが一番楽なんじゃない?
- 36 :名前は開発中のものです。:2014/07/27(日) 14:09:28.81 ID:S7CCeGik.net
- もう疲れました。探さないでください。
物理エンジン
- 37 :名前は開発中のものです。:2014/07/27(日) 16:35:38.39 ID:hDFrb6h9.net
- MMOとかのスキルってそれぞれ個別にクラス作ってるの?
それとも1つのクラスにスクリプトか何かで頑張ってるの?
範囲攻撃だとか回復だとか防御だとかバフだとか色々あるけど、
今作ってるゲームで、スキルクラスを継承してプログラムで記述するか、
予めできるだけ多くのパターンを予想してパラメータを盛り込みまくるか
- 38 :名前は開発中のものです。:2014/07/27(日) 16:39:07.72 ID:hDFrb6h9.net
- おおまかにクラス分けしてそれぞれに必要なパラメータを付け加えたほうが効率いいのかな
近接攻撃クラスと魔法攻撃クラスとか
- 39 :名前は開発中のものです。:2014/07/29(火) 04:04:42.63 ID:AylXEMId.net
- スキルの数にもよるけど、個別クラス化すると細かいクラスが大量生成されて収拾つかなくなる。
基本的にはスクリプト。どんなスキルでも格納できる万能構造体を作れるならテーブル化するか、
SQLite なんかのデータベースを利用するって方法もある。
- 40 :名前は開発中のものです。:2014/08/01(金) 19:58:25.02 ID:HHwlbQuz.net
- ついに3DSでもソーシャルゲーム出たけど、契約とかどうしてるの?
- 41 :名前は開発中のものです。:2014/08/02(土) 05:01:01.75 ID:eOu4XZLT.net
- クラスの概念にハマりこんだ奴は何も作れない。
大人になってもSEとして奴隷労働確定。
目的のための手段なのか、手段のための目的なのか。
目的を達成することを第一義に置かないといけない。
- 42 :名前は開発中のものです。:2014/08/02(土) 08:07:18.21 ID:xbgScl0r.net
- 思考停止した奴はまともなものは作れない
大人になってもPGとして奴隷労働確定
どうすれば良くなるのか、良くする為にはどうすればいいのか
自己を成長させる事を第一義に置かなければならない
- 43 :名前は開発中のものです。:2014/08/02(土) 12:00:37.08 ID:lHwJwlEc.net
- 作れることは、目的を達成できるのは大前提だろ
- 44 :名前は開発中のものです。:2014/08/02(土) 18:15:56.09 ID:8HdFTJm8.net
- フリーズするプログラムがあるんだけど、どうしたらいいのかさっぱりわからない
キャラクターが削除された直後に衝突リストを探索するときに特定の関数を呼び出すとフリーズする
ヌルチェックしてるし、キャラクターをdeleteしたポインタに次の行でNULL代入してるし、
そもそもフリーズする直前にそのインスタンスの別の関数は呼び出しても問題ない
フリーズする関数を呼び出す直前と、関数の最初にログを吐くと関数に入ってないようにみえる
意味がわからん
- 45 :名前は開発中のものです。:2014/08/02(土) 19:25:04.15 ID:TmM60CSL.net
- その衝突リストとやらを使わなければ動くんじゃねーの?(鼻くそホジホジESPレス)
というか、錯誤により不具合を作り出してる張本人の、曖昧で、主観的な
供述のみからエスパーレスを引き出そうとしても解決にならないんじゃね
真剣な相談なら不具合を再現できる最小構成のソースコードを晒す
(これ用意する人はその過程で不具合の原因を突き止める確率高い。
つまり質問に至らない場合が多い)
- 46 :名前は開発中のものです。:2014/08/02(土) 19:26:38.81 ID:xbgScl0r.net
- エラーじゃなくてフリーズって、無限ループしてんじゃないの
大体の箇所わかってんならブレークポイントでぽちぽちしながら臭い所探せば
- 47 :名前は開発中のものです。:2014/08/02(土) 19:59:07.91 ID:bumse5jz.net
- ソースコードの左側をちょこんとクリックして、●をつけたくなるね
- 48 :名前は開発中のものです。:2014/08/02(土) 20:05:22.19 ID:/jwwYoCr.net
- >>44
そのログ書き出しはちゃんとfflushしてるか?
強制終了させたらバッファに残ってるログは捨てられるよ
- 49 :名前は開発中のものです。:2014/08/02(土) 20:50:36.25 ID:dX02eCqq.net
- >>44
フリーズすることなんてしょっちゅうだ。
フリーズの原因なんて46の言うように無限ループに入ってることがほとんど。
しかも自分の思い込みで「ここで無限ループになんてなるはずがない」と思ってる部分だったりする。
だから逆に「ループの全ては無限ループできる」と探せば割りと早く見つかったりする。
まぁひとつひとつ調べていくのが結局は早い。
- 50 :名前は開発中のものです。:2014/08/02(土) 22:07:42.24 ID:juDjvEHG.net
- Visual Studio使ってるなら、デバッグ実行してフリーズした状態で
「全て中断」ボタンを押すかCtrl + Alt + Breakで無限ループの中に一時停止させて
F10押してループ判定を追っていけばいいんじゃね?
マルチスレッドでなければブレークポイント使って探るのは効率悪いと思うの
- 51 :44:2014/08/03(日) 05:08:34.12 ID:jLtHhqBC.net
- 主観続報なんですが、衝突リストの直前で行われるdelete文をコメントアウトするとフリーズしないんですよ
別スレッドでアニメーション動かしてるからメインスレッド止まってもアニメーションは動くはずだし
でもAndroidNDKだからブレイクポイント使えない
- 52 :名前は開発中のものです。:2014/08/03(日) 10:47:06.01 ID:LcYcpDyV.net
- deleteした場所を、他から参照してしまっていると仮定してみる。
リストってことは、該当のポインタを削除するだけじゃなく
その前の要素にあるnextポインタも修正しなきゃならないわけだよな?
deleteだけじゃなく、その修正もしてるか?
してるなら、deleteと修正の間に、別スレッド(描画?)が参照してたりシないか?
- 53 :名前は開発中のものです。:2014/08/03(日) 11:28:48.20 ID:ygJOSsne.net
- >>51
>でもAndroidNDKだからブレイクポイント使えない
使えます。是非使ってください。本当にお願いします。
それと、既に指摘されてる問題部分の切り分けをして下さい。
最小構成でテストして下さい。出来ないならコードをうp
- 54 :名前は開発中のものです。:2014/08/03(日) 11:31:35.11 ID:DGgM8UM0.net
- 別スレッドから参照してるなら、
操作前後でロックが必要だけどしてないんじゃね?
- 55 :44:2014/08/03(日) 13:03:28.60 ID:Q2PG92ND.net
- >>52
ごめんなさいstd::listではなくstd::vectorでダブルバッファリングしてます
更新ごとに入れ替わって、push_backされないオブジェクトはdeleteされてそのポインタにNULLが入ります
- 56 :名前は開発中のものです。:2014/08/03(日) 13:39:34.89 ID:pnMbsHQK.net
- いい加減こういう小出し後出しはやめなよ
レスしてる暇があるなら単体テストしなよ
- 57 :名前は開発中のものです。:2014/08/03(日) 15:21:07.80 ID:CNCHN1HK.net
- こういう事になるから自前のdeleteなんて使わなきゃいいのに
- 58 :名前は開発中のものです。:2014/08/03(日) 23:21:55.40 ID:X5LmADYN.net
- メンバ関数を含むクラス(のインスタンス)を、まるごとデータファイルとして記録したりしてるんですけど
こういうメンバ関数ってどんな扱いになってるんですかね?
関数はデータじゃないので扱われないとすると都合いいんだけど、
ポインタだけで扱われてるのか、それともプログラムコードまで含まれるのか。
こんな説明じゃ分かりにくいですかね……。えーと。
以前から、「オブジェクトを生成するたびに、関数(のプログラムコード)も作られ、
オブジェクトごとにコードをそれぞれ持っている」なのか、それとも「関数のプログラムコードは
別のどこかに作られるだけで、オブジェクト内にはそこを示すポインタだけが作られてる」のか疑問だったんですが、
メンバ関数を修正してから修正前のデータを読み込んでみたところ、不正落ちするようになったもので
ひょっとして、前者なのかな? と思った次第でして。
- 59 :名前は開発中のものです。:2014/08/03(日) 23:49:05.25 ID:LcYcpDyV.net
- 実用上の話だけでいいなら、シリアライズでググろう
https://sites.google.com/site/boostjp/tips/serialize
- 60 :名前は開発中のものです。:2014/08/03(日) 23:54:41.45 ID:NYhfIPC5.net
- >>58
仮想関数使ってたらvtableのアドレスが格納されるから、それまで一緒にリストアすると落ちるんじゃないか?
- 61 :名前は開発中のものです。:2014/08/04(月) 00:15:41.74 ID:3huMrwYj.net
- 後者だと思うしアドレス復元するのは無理ゲーじゃね
- 62 :名前は開発中のものです。:2014/08/04(月) 00:35:39.14 ID:S6rlQ+o7.net
- C++: 水面下の仕組み
http://www.microsoft.com/japan/msdn/vs_previous/visualc/techmat/feature/jangrayhood/
- 63 :名前は開発中のものです。:2014/08/07(木) 12:24:04.59 ID:t1Sego2o.net
- アクションゲームの敵キャラの行動選択の事なんだけど。
例えば一部の種類の敵は近くの自分と同じ種類の敵の数で動きが変わるとか、敵Bと敵Cが合体攻撃するとか、
ステージ内の他の敵の状態を参照する必要に駆られた時ってどうやってアクセスするべき?
敵のリストを持った敵管理クラスが敵の行動選択時に毎回敵のリストのポインタを投げるのか、
敵Bクラスがstaticで自身のクラスのリストを作っておいて、敵Bの情報が欲しいクラスがこれにアクセスするのか。
他にも地形によって移動が変わる(落ちないようにとか)場合の地形データのアクセス方法ってどうするべきなの?
- 64 :名前は開発中のものです。:2014/08/07(木) 13:00:48.69 ID:GofjvCIT.net
- 自分の場合、敵オブジェクトは自分を管理するクラスへのポインタを持っているので、
必要に応じて管理クラスに問い合わせるという感じ
というか、何パターンか方法を考えているなら、適当にどれか試してみればいいと思うよ
動けばそれでいいし、問題があるなら直せばいいだけだし
- 65 :44:2014/08/07(木) 17:44:22.62 ID:62RjpHCx.net
- 現実的に考えた時
敵が地形情報にアクセスできても不自然じゃないのでは
- 66 :名前は開発中のものです。:2014/08/14(木) 01:20:33.31 ID:McYBYG45.net
- Macでc++を用いたゲーム作成だと
SDLかcocos2dあたりになるのかな?
- 67 :名前は開発中のものです。:2014/08/14(木) 14:25:37.69 ID:KaQreIxk.net
- 良い選択肢だと思うよ
- 68 :名前は開発中のものです。:2014/08/14(木) 19:21:35.91 ID:tnMEEuh8.net
- 一緒にSFML2やらね?DxLibやってるときにスレで単語出て、年始の頃から気になってた
日本語少なくて諦めてたけど、少しずつ揃ってきてるし、なによりDxLibで自作するようなクラスが
揃ってるのがありがたい
- 69 :名前は開発中のものです。:2014/08/14(木) 23:14:33.68 ID:hKNZ3m31.net
- そのクラスだけでしか使わない数十行のコードって何回出てきたら関数化する?
プライベート関数を作るのって妙に抵抗があるんだよな
パブリックは明確に必要だなってわかるんだけど
- 70 :名前は開発中のものです。:2014/08/15(金) 00:31:11.83 ID:oe50SlNL.net
- >>69
無名名前空間使えばいいんじゃね?
- 71 :名前は開発中のものです。:2014/08/15(金) 04:08:25.52 ID:rUjRhF5g.net
- 名前空間とかそもそも使ってない
ディレクトリでなんかやってるけど
不都合とかあるかな
- 72 :名前は開発中のものです。:2014/08/15(金) 05:19:42.53 ID:c/9kGC5u.net
- メモリをファイルのように扱うクラスを完成させたら
ファイルをメモリのように扱う機能が既に存在していたでござる
- 73 :名前は開発中のものです。:2014/08/15(金) 07:01:48.62 ID:ohMMiKIE.net
- >>69
数十行もあるのなら、2回以上で関数にする
しないと、修正・テストを常にダブルでしないといけない
>>72
そもそもメモリの基本が、mmap(memory map)で、
確保したメモリを、どんなオブジェクトで使おうが自由
まあ一般的なもので、自分が思いつくようなものは、
たいてい誰かが作っているだろう
- 74 :名前は開発中のものです。:2014/08/15(金) 09:58:24.44 ID:c/9kGC5u.net
- メモリ上にファイルシステムを構築して、ツリー情報を制御したいのだが、どんなのがあるの?
- 75 :名前は開発中のものです。:2014/08/15(金) 10:41:13.57 ID:j6cgjhWq.net
- 他のアプリでも見える仮想ファイルシステムとしてならFUSE/Dokan
アクセス方法含めてファイルAPI使わない木構造コンテナならググれば色々ある
APIフックして自分しか見えないRAMドライブを作ったことあるけど行儀悪いから他でもみかけないな
- 76 :名前は開発中のものです。:2014/08/16(土) 06:39:10.61 ID:L92YcU8p.net
- 他人の作ったコードって色々あるものなんだな
- 77 :名前は開発中のものです。:2014/08/16(土) 17:19:05.66 ID:8Fs/dbnc.net
- Templateって使ったこと無いんですが何に使うんですか?
std::vectorとかコンテナみたいなのに使うんですか?
ライブラリ作るときぐらいですか?
- 78 :名前は開発中のものです。:2014/08/16(土) 17:29:23.54 ID:FVHp6E5m.net
- よく知らないんですが、
大文字のTemplateって何か特別な意味がある言葉なの?
- 79 :名前は開発中のものです。:2014/08/16(土) 18:04:48.11 ID:8Fs/dbnc.net
- Google日本語入力が大文字にしただけです
- 80 :名前は開発中のものです。:2014/08/16(土) 19:19:43.39 ID:KpuwMNAx.net
- templateは使えるのにテンプレートエンジンすら知らなかったり
- 81 :名前は開発中のものです。:2014/08/17(日) 00:29:52.38 ID:DxB78rur.net
- コンテナやライブラリ作りでお世話になることが多いのは確かだな。
実際それくらいしか使ってないやってヒトも結構いると思う。
- 82 :名前は開発中のものです。:2014/08/17(日) 01:22:39.68 ID:ecqmGiuW.net
- よくわかんないですけど、templateってtemplateを使った処理を持ってる側は中身を予測できない(何らかの処理ができない)ですよね?
その中身も用途も知らずに誰かに使われるだけですよね?
でなければポリモーフィズムとかで代用出来そうだし
- 83 :名前は開発中のものです。:2014/08/17(日) 01:37:28.43 ID:rcRtUElV.net
- templateのやってる事はdefineの高度化で、
基本的にはただの置き換えだが?
- 84 :名前は開発中のものです。:2014/08/17(日) 02:35:54.03 ID:DxB78rur.net
- 予測できないってどういうことだろう
- 85 :名前は開発中のものです。:2014/08/17(日) 03:14:42.38 ID:lY+LSruT.net
- templateは、コンテナ(容れ物)によく使う
コンテナ <int>
コンテナ <ユーザ定義クラス>
コンテナが、様々な型に対応できる
- 86 :名前は開発中のものです。:2014/08/17(日) 10:03:56.33 ID:ecqmGiuW.net
- >>84
要はtemplateの処理って誰かから値を貰って処理するのではなく
値を右から左に受け渡すだけで・・・
- 87 :名前は開発中のものです。:2014/08/17(日) 10:13:42.02 ID:rcRtUElV.net
- templateの中で勝手に値が変更されるからどんな挙動をしているかが分かりにくいって事?
それはソースを追えとしか言えんな。templateはその性質上、クローズド化が出来ないから。
- 88 :名前は開発中のものです。:2014/08/17(日) 10:52:23.87 ID:eh8TRovF.net
- MPLとかエラー出ても追いきれないよ
STLですらちょっとした記述漏れで出るエラーメッセージが適切じゃないんだよな
記述した行じゃなくてテンプレートソースの位置のエラーメッセージだし
- 89 :名前は開発中のものです。:2014/08/17(日) 16:34:24.06 ID:2LOHSTCb.net
- sfmlはライセンスがGPLだったような
- 90 :名前は開発中のものです。:2014/08/18(月) 12:06:43.86 ID:/xfKqDtl.net
- え?templateの中で値が変更されることなんてあるの?
- 91 :名前は開発中のものです。:2014/08/18(月) 12:20:19.06 ID:Amfk7YXr.net
- operatorとか使わないの?
- 92 :名前は開発中のものです。:2014/08/18(月) 17:33:11.61 ID:/xfKqDtl.net
- 俺は使わん!
- 93 :名前は開発中のものです。:2014/08/18(月) 18:04:50.85 ID:xxNYX8Uv.net
- C++のラムダ、拡張for、タプルあたりは見た目が悪くて全然嬉しくないな
- 94 :名前は開発中のものです。:2014/08/19(火) 10:38:31.24 ID:g/Td6fwv.net
- 拡張forの見た目を悪いと取る人がいるのか
コロンがダメなのかい?
- 95 :名前は開発中のものです。:2014/08/20(水) 12:24:47.31 ID:vpc/8MHV.net
- 関数名ってどうしたらいいですか?
std見るとスネークケースだけどライブラリ見るとローワーキャメルケースだし
主流なオブジェクト指向で揃えたいのならJavaやC#みたいにアッパーキャメルケースだし
"ID"は両方大文字でもよかったり、HINSTANCEみたいにどこから意味のある単語なのかわかりづらいし
- 96 :名前は開発中のものです。:2014/08/20(水) 17:29:53.86 ID:zC8dBj+K.net
- kansu
- 97 :名前は開発中のものです。:2014/08/20(水) 18:27:48.79 ID:8ddmLszJ.net
- 最近の環境だと漢字が使える場合があるな
- 98 :名前は開発中のものです。:2014/08/21(木) 12:39:31.06 ID:cVduPEKK.net
- C++もDとかScalaみたいに、クラスに対して手続きだけの後付け静的関数作った場合に、
第一引数省略できたら最強なんだけどなぁ
MPLのgetはめんどくさすぎる
- 99 :名前は開発中のものです。:2014/08/22(金) 08:08:31.76 ID:np7Y3ytG.net
- http://jobinjapan.jp/job-listing/keyword-game-programmer.html
- 100 :名前は開発中のものです。:2014/08/22(金) 08:24:17.61 ID:+/wZ7jnK.net
- まあ、まともそうな所もあるけれど、時給800円って何だよwww
いくら何でも世間をナメすぎwww
- 101 :名前は開発中のものです。:2014/08/22(金) 13:04:18.40 ID:GdbuT6p8.net
- >>97
知らなかったこんなのが普通にコンパイル出来た
int 関数(int ほげ, int はげ)
{
return ほげ + はげ;
}
- 102 :名前は開発中のものです。:2014/08/22(金) 17:22:04.27 ID:kNYnH0VP.net
- ナメられてるのはゲームプログラマーなんだよなぁ・・・
- 103 :名前は開発中のものです。:2014/08/22(金) 18:16:28.30 ID:tnjQY6BU.net
- 最近も何もVisualStudioなら10年以上前から関数や変数名に
漢字を使えるが
- 104 :名前は開発中のものです。:2014/08/22(金) 20:27:56.63 ID:knEiP0zp.net
- typedef void 虚無
typedef int 整数
みたいな感じで型を日本語化して頑張ってた友達を思い出した
- 105 :名前は開発中のものです。:2014/08/22(金) 21:01:32.45 ID:+rbtpV8x.net
- >>102
さすがにこの条件で行く奴は居ないだろうと思うが……
と思ってよく見たらプランナーだった、紛らわしいな
- 106 :名前は開発中のものです。:2014/08/23(土) 11:34:38.27 ID:VlCYIhca.net
- 時給800円ってコンビニのバイトより安いけど
プランナーってそんな楽なお仕事なん?
- 107 :名前は開発中のものです。:2014/08/24(日) 19:03:04.47 ID:+YyUmjGH.net
- 人気のある仕事ではあるかもしれんな、プランナーは
だから値段が安くても人は来ると
- 108 :名前は開発中のものです。:2014/08/25(月) 12:46:11.86 ID:13Ou/jq/.net
- プランナーは好きにゲームを作れる(かもしれない)仕事だからな、一応
- 109 :名前は開発中のものです。:2014/08/25(月) 21:12:10.93 ID:fIeVmxmz.net
- 絵も音楽も無理でプログラム始めたけど難しいから
プランナーになってぼくのかんがえたさいきょうのげーむ作るんだ!
って人が多いイメージだわ
- 110 :名前は開発中のものです。:2014/08/26(火) 02:42:29.32 ID:zRu6Y76+.net
- 最近は、Unity製サンプルを提示してくるプランナーも多い印象
- 111 :名前は開発中のものです。:2014/08/26(火) 03:02:43.23 ID:9nJGtRzs.net
- そういうプロトタイプをさくっと作れるのは、ああいうフレームワークの強みだよね
非エンジニアの人でも、ある程度形を作り上げられるっていう
- 112 :名前は開発中のものです。:2014/08/28(木) 03:18:53.81 ID:X8+LqzAg.net
- C言語でゲームを作るならDXライブラリ
使った方が言われたのですが
MinGWのgccで使う方法はあるのでしょうか?
- 113 :名前は開発中のものです。:2014/08/28(木) 12:27:05.34 ID:IogRuqxm.net
- "DXライブラリ MinGW"でググったら公式配布ページも含めてゾロゾロ出てくるわけだが・・・。
- 114 :名前は開発中のものです。:2014/08/28(木) 14:45:11.67 ID:fyv86xWh.net
- こんな事聞くレベルの人間がなぜMinGWなんて使うのだろうと
思った
- 115 :名前は開発中のものです。:2014/08/28(木) 16:18:23.85 ID:bFGeiPpW.net
- while(true){printf("a");}
とコンソールで実行した時ループが遅くなるのはなんでですか?
目で追える速度でしか文字列を描画できないなら
計算だらけのゲームなんてまず作れませんよね?
- 116 :名前は開発中のものです。:2014/08/28(木) 18:13:14.40 ID:c3zFvuJr.net
- 文字表示系の処理は重いんです
- 117 :名前は開発中のものです。:2014/08/28(木) 18:25:00.80 ID:kFtDpON/.net
- 処理が重いというよりも、OSやコンパイラがConsoleで高速描写されないよう規制してるんだろ。
ファイル出力する記号 >でやったら画面表示より速いし、ゲームなんかで使う描写を、使えば速いし。
- 118 :名前は開発中のものです。:2014/08/28(木) 18:34:21.79 ID:p3a/rk2R.net
- コンソールはそもそも文字描画速度を速くしようなんて考え方で作られてないでしょ
windowsのコンソールの文字出力はCUIベースの補助的な表示がメインで、
コンソールの文字出力が遅いから早くしてほしいなんて誰も望まない
- 119 :名前は開発中のものです。:2014/08/28(木) 18:35:31.68 ID:cOy/jyai.net
- 今は文字を一つ画面に出力するよりもファイルに書き込む方が早い時代です
と言うか、文字一つ出力するのに何バイトのデーターを画面に書き込む必要があるか考えてみ?
- 120 :名前は開発中のものです。:2014/08/28(木) 18:45:56.07 ID:cOy/jyai.net
- >コンソールの文字出力が遅いから早くしてほしいなんて誰も望まない
あ、そう言えば昔、PC-98がdos/vよりも優位な点として文字出力速度が早い事を売りにしていたな
- 121 :名前は開発中のものです。:2014/08/28(木) 19:17:50.59 ID:izIKodD2.net
- ああいうのは、VRAMにテキストエリアがあるから速いんじゃないの。
DOS/Vにあるのかないのかは知らんけど。
- 122 :名前は開発中のものです。:2014/08/28(木) 19:22:18.05 ID:cOy/jyai.net
- PC-98は漢字ROMにフォントデータが入ってるから早いんだよ
- 123 :名前は開発中のものです。:2014/08/28(木) 19:39:22.02 ID:p3a/rk2R.net
- >>120
昔はコンソールは補助的なものじゃなかったし
今よりずっと遅い時代があったからでしょ
- 124 :名前は開発中のものです。:2014/08/28(木) 20:10:27.78 ID:lAEGR6jw.net
- >>123
いや、話のネタに思い出したからついでに書いただけだよ
昔はテキスト表示で画面をマスクしたりと、遅いマシンの
様々な機能をフル活用して使っていたみたいだね
- 125 :名前は開発中のものです。:2014/08/29(金) 13:24:27.28 ID:7LwoDteC.net
- >>115
目で追える速度に遅くしてるんじゃね
つ Ctrl+S
- 126 :名前は開発中のものです。:2014/08/29(金) 17:27:19.27 ID:PQKddMMr.net
- struct Aiu{
int hoge;
};
Aiu* aiu = new Aiu();
ってした時
Aiu aiu2 = *aiu;
ってした場合、aiuの寿命が切れた後もaiu2に保持されるんでしょうか?
コピーコンストラクタは定義してないです
- 127 :名前は開発中のものです。:2014/08/29(金) 17:35:13.67 ID:I0DNX3OS.net
- 自分で試したほうが早いだろ
- 128 :名前は開発中のものです。:2014/08/29(金) 18:05:40.44 ID:B+gnwrXf.net
- >>126
その Aiu aiu2 = *aiu; はメンバの値が複製されるだけだから、その後にaiu->hogeを書き換えてもaiu2->hogeは変わらない
だからaiuの指す先がdeleteされようがaiu2に影響はない
- 129 :名前は開発中のものです。:2014/08/29(金) 19:30:47.56 ID:+jt7R30F.net
- class Stack
{
int a;
}
class Heap
{
Stack stack;
}
void main()
{
Heap* heap = new Heap();
}
っていうプログラムの場合、int aはメモリ内のどこにあるのでしょうか?
そもそもヒープ領域のオブジェクトの中のスタック領域の場合ってメモリ的にはどうなるのでしょうか?
- 130 :名前は開発中のものです。:2014/08/29(金) 19:53:53.39 ID:B+gnwrXf.net
- 普通にヒープ
- 131 :名前は開発中のものです。:2014/08/30(土) 18:37:32.98 ID:5AIFhixX.net
- picojsonというjsonパーサー使ってるんですが、
Eclipseの言ってるエラーが意味不明で困っています
どうしたら結果が得られますか?
エラー内容:expected primary-expression before ')' token
あとテンプレートにポインタやらちょっと組み合わせると全く入力補完してくれないんですがなんなんですか
void hoge::hoge1(picojson::object* jsonObject){
picojson::array& jsonArray = jsonObject->get<picojson::array>();
for (picojson::array::iterator it = jsonArray.begin(); it != jsonArray.end(); it++){
picojson::object& o = it->get<picojson::object>();
int unit_num = atoi(o["unit_num"].get<std::string>().c_str());
int unit_id = atoi(o["unit_id"].get<std::string>().c_str());
}
}
- 132 :名前は開発中のものです。:2014/09/01(月) 11:52:34.58 ID:NxW8u5cB.net
- BlenderとかMayaで作ったモデルファイルとかモーションファイルって
C++erならやっぱり自分でパーサー作って読み込むの?
- 133 :名前は開発中のものです。:2014/09/01(月) 17:34:00.00 ID:7vpWhfmF.net
- >>132
Assimp
- 134 :名前は開発中のものです。:2014/09/02(火) 14:27:36.03 ID:PUVCbn2i.net
- DirectXも使えるの?
- 135 :名前は開発中のものです。:2014/09/02(火) 17:26:57.05 ID:tdHhEDHk.net
- >>133
これ良さげやね
BSDライセンスだし色々出来そう
スレッドセーフなのもポイント高い
- 136 :名前は開発中のものです。:2014/09/06(土) 11:58:19.59 ID:khJXlvEe.net
- >>131
これ誰かわかりませんか?
- 137 :名前は開発中のものです。:2014/09/06(土) 18:09:59.56 ID:AxxHSbmN.net
- expected primary-expression before ')' token 意味
で検索してみた?
- 138 :名前は開発中のものです。:2014/09/07(日) 11:10:43.48 ID:s9vhQEyf.net
- >>137
()内に値があるとかなんとかとか・・・
でも引数のエラーは別にあるし、全く同じ文(変数名は違うけど)をコピペしてきたものだし・・・
- 139 :名前は開発中のものです。:2014/09/08(月) 21:02:33.10 ID:tesqRk+d.net
- ずっとDXライブラリのwhileの中でやってきたせいで(ビジーウェイトっていうのかな?ポーリング?)
GUIライブラリとかのイベントドリブンでゲーム作る方法が全くわかんないぜ
DXライブラリでは1フレームごとの処理をupdateメソッドの中でやってたから、
アクションゲーム上のキャラクタなどがゲーム内時間での同期が簡単だったんだけど
イベントドリブンだと、そういう「メイン時間軸」による制御がないから
ゲーム内時間で厳密に同期が取れないとこが気持ち悪い
例えば、前者では1フレームごとにキャラクターの速度ずつ動いて、衝突判定も一斉にできるけど、
後者だとライブラリ側が(おそらく裏で_秒単位でポーリングしてて)『ボタン押されたよ!』って判断するから、
用いる時間の粒度が、自分が定めたいゲーム内時間じゃなくなってしまうという・・
イベントドリブンを用いる手前、1フレごとにupdateイベント起こすなんて二度手間はやりたくないし・・
(Unity3Dはupdateとイベント併用型らしいけど、どうやってるんだろ)
- 140 :名前は開発中のものです。:2014/09/08(月) 21:18:20.61 ID:tYyDmrPQ.net
- 別に必要ならUpdate相当のイベント起こしたっていいじゃない
Windowsとか普通のアプリでアニメーションしたいならWM_TIMERとか別スレッドのタイマーで処理してから
描画のWM_PAINTを間接的に呼び出してるわけだし
描画のイベントを約16msで起こして内部で状態更新すれば60フレームのゲームだ
- 141 :名前は開発中のものです。:2014/09/09(火) 01:28:32.21 ID:iF9Myub/.net
- 俺もDXライブラリしか使ったことないからわかんないんだけど描画ループとゲーム内処理のループって分けてマルチスレッドにするもんなの?
ダブルバッファってのもなんか、全ての描画リソースを2倍持つって結構勿体無いなとか思うんだけど
ネトゲでよく200fpsとか表示されててなんじゃこりゃとか思ったことあるけどゲーム内処理ループの事だよね?
- 142 :名前は開発中のものです。:2014/09/09(火) 03:36:37.22 ID:C1Zjzm8i.net
- 無限ループの中で定期的にPeekMessage関数を呼んで
受信しているウィンドウメッセージを処理するようにするようにする方法が一つある
(DxLibで言えばProcessMessage関数みたいなもんだと思いねぇ)
- 143 :名前は開発中のものです。:2014/09/09(火) 14:01:53.66 ID:3oFzTnHF.net
- UnityのUpdateは自分が定めたゲーム内時間(単位時間)じゃなくて描画の単位で呼び出されるから
結局のところ、Δ(←前回Updateから今回Updateが呼ばれるまでにかかったリアル時間)を使って
移動距離[ゲーム内距離] = Δ[リアル時間] ÷ 単位時間[リアル時間/ゲーム内時間] × 速度[ゲーム内距離/ゲーム内時間]
で、処理することになる。
ちなみに、Updateの中でもキー操作拾えるから慣れてるほうでいい
ただGUI部品はイベントでやるのがラク
- 144 :名前は開発中のものです。:2014/09/09(火) 20:43:35.21 ID:8XdiQ/JL.net
- 線形動作しか出来ないね。まあ西洋人は加減速にはこだわらないみたいだから大丈夫なんだろうけど。
- 145 :名前は開発中のものです。:2014/09/09(火) 23:05:52.44 ID:iF9Myub/.net
- ん?線形動作以外に何かあるの?
- 146 :名前は開発中のものです。:2014/09/10(水) 07:18:00.15 ID:CE6mrTSg.net
- 非線形な動作なんていくらでもあるだろ
円運動とか放物線とかバネの伸縮とか
最近の物理の教科書には載ってないのかね?
- 147 :名前は開発中のものです。:2014/09/10(水) 08:04:28.67 ID:+NofARIs.net
- 円運動だろうが放射線運動だろうが
前フレームの座標と今フレームの座標は線形動作じゃないのか
それが積み重なって円や放射状になるわけで
- 148 :名前は開発中のものです。:2014/09/10(水) 08:16:26.68 ID:qlf1nlfh.net
- 自然界の動作は殆ど非線形だろう。
人間が扱いやすいから、近似的に線形代数で計算するだけだろ。
- 149 :名前は開発中のものです。:2014/09/10(水) 08:52:17.08 ID:pn1h5JmM.net
- 線形動作は単位時間毎に同じ速度で動く動作を指す言葉だよ。
これに対して非線形動作は単位時間毎に別の速度で動く。
前者は直線的な、後者は曲線的な動作になる傾向がある。
- 150 :名前は開発中のものです。:2014/09/10(水) 09:37:06.65 ID:qlf1nlfh.net
- 非線形はこういうやつだろ。
カオス理論 - Wikipedia
カオス理論は、力学系の一部に見られる、予測できない複雑な様子を示す現象を扱う理論である。ここで言う予測できないとは、決してランダムということではない。
その振る舞いは決定論的法則に従うものの、積分法による解が得られないため、その未来の振る舞いを知るには数値解析を用いざるを得ない。
複雑系 - Wikipedia
複雑系とは、相互に関連する複数の要因が合わさって全体としてなんらかの性質を見せる系であって、
しかしその全体としての挙動は個々の要因や部分からは明らかでないようなものをいう。
複雑系は決して珍しいシステムというわけではなく、実際に人間にとって興味深く有用な多くの系が複雑系である。
系の複雑性を研究するモデルとしての複雑系には、蟻の巣、人間経済・社会、気象現象、神経系、細胞、人間を含む生物などや現代的なエネルギーインフラや通信インフラなどが挙げられる。
複雑系は、単純な要素に分解して法則や原理に落とし込む還元主義の方法論では理解できない。
生物を分解してしまうと死んでしまい「生物(生きている物)」として理解できないように、複雑系は分解してしまうと本質が抜け落ちてしまうものだからである。
したがって、複雑系の分野を貫く基本スタンスとして「複雑な現象を複雑なまま理解しようとする姿勢」を挙げることができる。
複雑な現象を複雑なまま理解しようとする学問、手法は「複雑系の科学」などと呼ばれることが多いが、その源流に眼を向けると、
アリストテレスの「全体とは、部分の総和以上のなにかである」といった言い回しにまで遡ることができる。
- 151 :名前は開発中のものです。:2014/09/10(水) 09:50:08.57 ID:+NofARIs.net
- 座標を見た時に直線的になるものかと思ってた
- 152 :名前は開発中のものです。:2014/09/10(水) 09:55:53.07 ID:pn1h5JmM.net
- 円運動や等加速度運動は非線形動作だが積分で解けるぞ?
- 153 :名前は開発中のものです。:2014/09/10(水) 10:04:39.49 ID:bDY0fB3w.net
- 求まるのは前回からの時間の差分であって
移動量とかは加速度とか考慮したらいいじゃない
物理エンジンに投げちゃうとそんなに気にしなくて済むし
- 154 :名前は開発中のものです。:2014/09/10(水) 10:24:30.94 ID:qlf1nlfh.net
- 非線形常微分方程式
線形の常微分方程式の解は、変数の数がいくら多くても、
あるところをグルグル回る(振動解) あるところに収束する 無限大に発散する のどれかになります。
ところが、非線形方程式になると、たった変数3つでも、予測不可能な複雑な解になる場合があります。
Lorenz 方程式
1963年、E.N.Lorenz は大気の運動のシミュレーションを試みました。次のようなLorenz方程式を導いたのです。
http://www.gaia.h.kyoto-u.ac.jp/~sakai/visual/2/Lorentz.gif
この方程式は、xz、xy といった2次の項(非線形項)を含みます。これが、非線形常微分方程式 と言われるゆえんです。
彼は、この方程式の解が、定常解でも周期解でもなく、不規則に振動を続けることを発見しましたのです。たとえば、
a=10、b=28、c=8/3
の時の解を、Euler法で積分すると、このようになります。
http://www.gaia.h.kyoto-u.ac.jp/~sakai/visual/2/lorenz1.jpg
「簡単な方程式からは、簡単な答えしか出てこない」または「真理は単純である」と信じられていた当時としては、この事実は衝撃的でした。
カオス状態では、初期値の違いが指数関数的に増大するという特徴があります。
http://www.gaia.h.kyoto-u.ac.jp/~sakai/visual/2/lorenz2.jpg
このことから Lorenz は、「長期の天気予報は不可能である」と結論づけました。
Lorenz の表現を借りれば、「アリゾナの砂漠に飛んでいる一匹の蝶が、ニューヨークに嵐がくるかどうかを決める」ということになります。これをバタフライ効果と呼びます。
http://www.gaia.h.kyoto-u.ac.jp/~sakai/visual/2/index25.htm
- 155 :名前は開発中のものです。:2014/09/10(水) 10:37:15.67 ID:pn1h5JmM.net
- 質量の概念が考慮に入ってて質量物がもっさり粘りのある動作をするような
物理エンジンがあれば考えるわ
- 156 :名前は開発中のものです。:2014/09/10(水) 11:01:26.76 ID:qlf1nlfh.net
- 非線形とか非可換は人間の限界を超えてるので扱わないことにしてただけ。
最近の物理ではそういう方を扱ってるようだが。
ゲージ・重力対応(AdS/CFT対応)
このような、超弦理論の「統一理論的な」性質を最大限に応用したアイディアの一つがゲージ・重力対応です。
この対応を用いると、ゲージ場の量子論における困難な計算や解析を、一般相対性理論における容易な計算に「変換」することが可能となる場合があり、場の量子論の新たな計算手法として注目されています。
http://www.phys.chuo-u.ac.jp/labs/nakamura/overview/index.html
AdS/CFT対応で探る非平衡相転移
概 要:我々の身の回りは非平衡現象であふれている。例えば物質に外部電場を加えて電流を流すという物理過程は、物質中で熱やエントロピーが生成される非平衡過程である。
このような非平衡過程を、電場や電流が大きく両者の関係が非線形となる領域で記述することは現代物理学の難問の一つとなっている。
この難問に向けての新たなアプローチとして最近注目されているのがAdS/CFT対応である。
この対応は、ある種の強結合ゲージ理論を一般相対性理論の言語に書き換える理論的 な枠組みであるが、これを用いると、ゲージ粒子の多体系の非平衡過程を一般相対性理論を用いて解析できる可能性がある。
講演者は最近、このAdS/CFT対応を用いて、強く相関する荷電粒子系の非線形電気伝導を重力理論を用いて解析し、非線形領域において、従来知られていなかったタイプの非平衡相転移が存在することを理論的に見出した。
この非平衡相転移では電気伝導度、あるいは微分伝導度が電流密度の関数として不連続に変化する。
2次相転移点も存在し、そこではいくつかの臨界現象を確認することもできる。
本講演では、発見された新奇な非平衡相転移について報告するとともに、AdS/CFT対応が非平衡物理学に新たな切り口をとなる可能性について述べたい。
http://asuka.phys.nara-wu.ac.jp/2013/07/13-03.html
- 157 :名前は開発中のものです。:2014/09/10(水) 12:31:50.45 ID:O1JsX9o2.net
- 数学の、というか物理学の歴史問題になっちゃった
- 158 :名前は開発中のものです。:2014/09/10(水) 13:47:47.01 ID:TOw/PRIW.net
- ゲームプログラミングで非線形な運動を積分で求める必要性ってないと思うんだが
物理シミュレーションでも作ってんの?
- 159 :名前は開発中のものです。:2014/09/10(水) 13:53:07.44 ID:V+psMTaV.net
- ミサイルの誘導に使う
- 160 :名前は開発中のものです。:2014/09/10(水) 14:00:04.34 ID:TOw/PRIW.net
- >>159
そんな精密に計算する必要なくない?
位置、速度、加速度をフレーム間で線形に計算すればそれっぽく動くと思うんだけど
- 161 :名前は開発中のものです。:2014/09/10(水) 15:59:28.51 ID:OJbZlwnu.net
- >>143 のやりかただと動作環境によって挙動が少しずつ変わるから
内部計算の間隔は一定のものとして扱うのが一般的だと思うよ。
- 162 :名前は開発中のものです。:2014/09/10(水) 17:49:57.40 ID:piOg7Z3/.net
- >>141
ダブルバッファは描画の基本
バッファが1つだと、描画の途中経過が、画面に映されてしまうので、
見えない裏の画面にすべてを描いてから、表裏の画面を入れ替える
- 163 :名前は開発中のものです。:2014/09/10(水) 20:26:02.06 ID:0Gu5fApf.net
- >>162
多分>>141が言ってるのはそういうことじゃなくて、
マルチスレッドやらで描画リソースを2つ、例えばAとBを持って
Aを描画中にBを更新→Bを描画中にAを更新 っていう意味じゃないのかな
全ての描画リソースを2倍って言ってるし
DXライブラリが勝手にそうしてるって>>141が勘違いしてるかもだけど
- 164 :名前は開発中のものです。:2014/09/10(水) 21:02:15.93 ID:+NofARIs.net
- シーンをクラスで管理して、シーン遷移する時
メインループの中のUpdate関数の中で
delete this;
return new NextScene();
ってやりたいんですが、ぬるぽエラーにならないでしょうか?
関数はインスタンスに関係無くstaticな存在だと聞いたことがあるんですが、イマイチよくわからないです
受け取り側では
while(true){
if((scene=scene->Update())==NULL)break;
}
こんな感じで、NULLが帰ってきたらゲーム終了です
- 165 :名前は開発中のものです。:2014/09/10(水) 21:14:44.14 ID:yJISCIw+.net
- >>164
「C++ delete this」でぐぐると吉
- 166 :名前は開発中のものです。:2014/09/10(水) 21:17:37.71 ID:yJISCIw+.net
- 追記だけども
> while(true){
> if((scene=scene->Update())==NULL)break;
> }
この方式なら、変数sceneをshared_ptrとかunique_ptrとかのスマートポインタにしておけば
代入のタイミングで元々入っているインスタンスをdeleteしてくれるから
そっちの方がシンプルで安全かも知れない
- 167 :名前は開発中のものです。:2014/09/10(水) 21:24:41.93 ID:+NofARIs.net
- 基本的にはokみたいな感じですか
ポインタでしか使わず、配置もしない
- 168 :名前は開発中のものです。:2014/09/10(水) 22:26:12.02 ID:+NofARIs.net
- 座標クラスを作ってoperatorを定義したいのですが、cppファイルに定義しようとするとエラーが出てコンパイル出来ません。
ネット上のサンプルではクラス定義と一緒に書いてるみたいで実装と分かれていません
operatorもtemplate同様ヘッダーでしか定義出来ないんでしょうか?
- 169 :名前は開発中のものです。:2014/09/11(木) 00:03:08.79 ID:asVl9LWg.net
- std::mapにキャッシュしておいたリソースをdeleteしたく全探索したいんですが、
beginで得たイテレータにインクリメント重ねると必ずendで得たイテレータになるのでしょうか?
- 170 :名前は開発中のものです。:2014/09/11(木) 00:08:52.32 ID:dW8hm7Dr.net
- デストラクタ(スマートポインタ)つかえよ。
そしたら自ら開放しにいかなくても、参照が消えたら開放されるはずだろ。
- 171 :名前は開発中のものです。:2014/09/11(木) 00:32:27.41 ID:U19JA4G4.net
- 物体Aと物体Bを衝突しないようにLayer Collision Matrixでオフにしたんだけど
その状態でAとBが重なったかだけ取得することってできる?
onTriggerEnterとかもコリジョンオフにしたから動作しないし、
自前で衝突判定プログラム作るしかない?
- 172 :171:2014/09/11(木) 00:33:42.60 ID:U19JA4G4.net
- >171
書くスレ間違えました
- 173 :名前は開発中のものです。:2014/09/11(木) 22:01:08.21 ID:asVl9LWg.net
- http://gyazo.com/7fe61ebdff02df42518433e7792bb7bc.png
これなんでerrorが出るのかよくわからないんですが、どういうことなんでしょうか?
ポインタが0にNULLとして反応してるってことですか?
- 174 :名前は開発中のものです。:2014/09/11(木) 22:06:54.07 ID:3lU2at1b.net
- ホニャララImageの型はなんなのさ?
- 175 :名前は開発中のものです。:2014/09/11(木) 22:24:22.87 ID:VO9tt5QZ.net
- >>173
引数間違ってるんじゃないの
- 176 :名前は開発中のものです。:2014/09/11(木) 22:30:38.71 ID:Vk9/avmu.net
- >>173
ポインタがNULLとかはコンパイル時には関係ないよ
コンパイルしたらエラーが出るんだよね?
インテリセンス的なやつはソース修正してもすぐに反映されないから、
IDE上ではエラーになっててもコンパイルしたら行けるとかあるよ
その下に出てる定義が本当にその上のDrawの定義なら行けそうに思うんだけどなあ
なんかインクルードのファイルが実は別のやつになってたとかそんな問題くらいしか思いつかないな
- 177 :名前は開発中のものです。:2014/09/11(木) 23:17:52.95 ID:PusxPgQr.net
- 全然関係ないけどbackgroundで一語だよ
- 178 :名前は開発中のものです。:2014/09/12(金) 01:29:52.01 ID:55HmiNZ2.net
- >>174
imageresource型で、下のウィンドウがDraw関数です
- 179 :名前は開発中のものです。:2014/09/12(金) 01:35:12.60 ID:MvhPALDv.net
- .じゃないの
- 180 :名前は開発中のものです。:2014/09/12(金) 09:19:01.28 ID:M+TP6FjV.net
- Draw(float, float)の実装がImageResourceの親クラスに存在していて
なおかつImageResourceがその型をpublic継承してないとか?
試してないから全く見当違いかも知れないけど
- 181 :名前は開発中のものです。:2014/09/12(金) 11:29:01.17 ID:L2eUAZ9Y.net
- constでした
- 182 :名前は開発中のものです。:2014/09/12(金) 16:54:40.75 ID:M+TP6FjV.net
- あーbackgroundImageとtitleImageがconst宣言されてたって事か
解決おめ
- 183 :名前は開発中のものです。:2014/09/13(土) 12:46:42.97 ID:qOD9bpYo.net
- ちょっと行き詰まってるので相談させて下さい。
自分のPC2台(両方XP)で動かすと問題なく動き、知人AのPC(Windows7)でも問題なく動くのですが
知人BのPC2台(両方Windows7)だと必ず「プログラムを停止します」とでて終了するという
謎の現象に悩まされています。
落ちる場所は毎回同じようなので、プログラムの要所要所に、テキストファイルに
メッセージを吐き出す命令を加えてみたところ、ある if文 のところで落ちてると判りました。
そこで今度はその if文 で使ってる変数6つをテキストに吐き出すようにしたところ、
その4つめの変数吐き出す部分で終わるようになってしまいました。
(つまり落ちる場所がずれた)
この if文 はループになっており、特定のループ時にのみ落ちる事が判明していますが
この変数自体はループにおいて全く変更されておらず、この変数が原因とは考えにくいです。
次に、このif文は無くてもこの場合たいした支障のでない部分だったので
まるごと消去してみたのですが、それでもやっぱり落ちました。
ここにきて行き詰まってしまって、どう調べていいのかわからなくなりました。
・実はこの部分以外に原因があってそれを見逃してる?
・この関数のこの部分が何らかの影響で破壊されているのか?
・なぜ知人BのPCでだけ発生する?(しかも2台とも)
何か考えられる原因とかありますでしょうか?
- 184 :名前は開発中のものです。:2014/09/13(土) 13:29:31.89 ID:N7NNCB+K.net
- なぜデバッガを使わないのか
- 185 :名前は開発中のものです。:2014/09/13(土) 13:31:47.88 ID:p7BFEjLV.net
- もっと前にメモリ関連のバグを起こしてて、プログラム領域に書き込み処理してる可能性が高いな
昔のデバッガだとアセンブラで見れて実際に命令がおかしくなってる部分を確認できたわけだが、今は無理だな
- 186 :名前は開発中のものです。:2014/09/13(土) 13:54:57.42 ID:p7BFEjLV.net
- 友人BのPCで共通して動かしてるアプリケーションとか無い?
もしくはメモリに余裕がないとか
- 187 :名前は開発中のものです。:2014/09/13(土) 13:58:59.50 ID:FxWLsqJE.net
- なんか変数初期化していないんじゃね
- 188 :名前は開発中のものです。:2014/09/13(土) 14:40:43.79 ID:ktDMwsVO.net
- プリミティブ型のクラスメンバだと勝手に初期化してくれるとかなかったっけ
配列とかJavaと勘違いしてたかもしれないけど
- 189 :名前は開発中のものです。:2014/09/13(土) 15:06:29.64 ID:Zs9/uEmo.net
- >>188
C++では、自動的に初期化されるのは静的変数の時だけ(全変数が0に初期化される)
それ以外のスタックやヒープの変数は何らかの初期化をどこかで行う必要があるね
- 190 :名前は開発中のものです。:2014/09/13(土) 16:41:17.80 ID:6DC3rx39.net
- > そこで今度はその if文 で使ってる変数6つをテキストに吐き出すようにしたところ、
> その4つめの変数吐き出す部分で終わるようになってしまいました。
そのテキストを吐き出す処理も立派な処理なので、落ちる場所がずれる可能性はあるよ。
デバッグ用に処理を追加してもずれるので原因究明が難しい。
とにかくメモリーを壊してる処理が無いかどうかチェックして
修正したらテストしてもらうとか…
- 191 :名前は開発中のものです。:2014/09/14(日) 11:36:56.77 ID:0Se26vk6.net
- >>183
問題のあるPCを使わせてもらって、IDE入れて直接確認するのが一番早い
もしくは強制終了が出なくなるまで、プログラムをどんどんコメントアウトしていって、原因箇所を突き止めるとか
思いつく原因は、ZeroMemoryで初期化サイズを間違えて、余計な領域まで0にしているとか?
- 192 :名前は開発中のものです。:2014/09/14(日) 12:01:02.08 ID:kfEvYRg/.net
- 一度開発環境入れると環境が変わっちゃうよ?
自分の場合はネトゲが一部動かなくなったし
- 193 :名前は開発中のものです。:2014/09/14(日) 14:26:42.23 ID:wa/wX/Er.net
- 異常終了時のメモリダンプ(dmpファイル)を取ってもらって
それをIDEで開けばデバッグ実行してるような状態になるから
そこでどこでエラーが出たか、どの変数に何が入っているかを確認するといい
開発環境を入れるのは>>192と同意見、入れない方が良いと思う。
- 194 :名前は開発中のものです。:2014/09/14(日) 21:12:12.71 ID:62kRP5LB.net
- スタック破壊か関数のリンケージ間違い
関数ヘッダが実体と違うというウルトラCもありえなくはない
printf でバッファ破壊というオチはよくある罠
>なぜ知人B
俺は詳しくないが DEP の設定がどうのとたまに聞く
自PCで再現できればそれに越したことはないが、そうでなければ気にしても仕方ない
- 195 :名前は開発中のものです。:2014/09/15(月) 00:44:13.42 ID:IlfRDj6O.net
- >>192
どうせランタイム入れるから、変わらないんじゃないの?
>ネトゲが一部動かなくなった
まじか
- 196 :名前は開発中のものです。:2014/09/15(月) 00:44:19.95 ID:GS0jslvN.net
- プログラマの前で100%再現できりゃバグ修正は9割終わったようなもんだ、
とか言われるけど、やっぱ事実?w
- 197 :名前は開発中のものです。:2014/09/15(月) 01:33:48.17 ID:Xt8gwGjX.net
- ・そのプログラマがそのアプリケーションの設計を把握している
・コンパイル前のソースコードがある
- 198 :名前は開発中のものです。:2014/09/15(月) 01:39:55.70 ID:GS0jslvN.net
- >>197
開発者ではない第三者の前で再現してどーすんだw
- 199 :名前は開発中のものです。:2014/09/15(月) 03:13:10.79 ID:wd8jmKt8.net
- 「デバッグの手間が10に対して、再現の手間が90」という意味ではなw
- 200 :名前は開発中のものです。:2014/09/15(月) 07:07:16.38 ID:wuAS4ub9.net
- >>195
デバッガの例外動作関連に割り込んでるみたいだな
アンインストールしても何か残ってたし
- 201 :名前は開発中のものです。:2014/09/15(月) 20:14:31.20 ID:+WwuNSKX.net
- DirectX の設定を書き換えるのが好かん
- 202 :名前は開発中のものです。:2014/09/16(火) 09:20:44.20 ID:4EKEuM8s.net
- フラグメンテーションかもな〜。別名メモリーの虫食い取得状態。
- 203 :名前は開発中のものです。:2014/09/17(水) 02:32:28.35 ID:lSNjy4CG.net
- 環境による問題はアンチウイルスとかサービスパック有無を疑うのも基本
- 204 :名前は開発中のものです。:2014/09/17(水) 06:50:46.77 ID:2baRZfUF.net
- >>202
アプリが大きいサイズの連続したメモリー空間が確保できないしか影響ないだろ
- 205 :名前は開発中のものです。:2014/09/17(水) 19:59:00.60 ID:BSiz0TOu.net
- SDL、DxLib、sfml以降でファイル読み込み・描画・音声・キー取得などができるゲームライブラリってあります?
cocos2dみたいに「フレームワーク」ほどいかない自由なのが好きなんだけど
- 206 :名前は開発中のものです。:2014/09/17(水) 20:20:12.05 ID:2sT7Gz4p.net
- Siv3Dってそういえばどうなったんだろう
- 207 :名前は開発中のものです。:2014/09/17(水) 21:26:51.10 ID:T7ONrPQz.net
- RPGのダメージ判定で、それぞれのキャラクターにvector型の通知配列用意して、
ダメージが発生した時その配列にpush_backして、キャラクターが更新される時にまとめて処理してるですが
その通知配列に何を入れるかすごい悩んでるんですが、他の人はどうやってやってるんですか?
今は、ダメージとか属性とかデバフ情報とかを伝える手紙のような構造体をvectorにpush_backして
ダメージを受けるキャラクター側の耐性とか加味して処理しようかなと考えてます
・攻撃発生時に構造体の自動変数を生成して、コピーして伝える
・攻撃発生時に構造体をインスタンス化して、ポインタを伝える
・予め攻撃通知用の構造体を静的な値(日本語としての静的)として持っておき、ポインタを伝える
の3つぐらいは思い付くのですが、それぞれ一長一短でどうしたものかなーと・・・
- 208 :名前は開発中のものです。:2014/09/17(水) 21:41:21.93 ID:Ek0OO0vX.net
- >>207
1つめはコピー量が気になる、2つめは毎度newするのが気になる、
ってことなら、3つめのでいいんじゃないの?
日本語としての静的の意味はよくわかんないけど
- 209 :名前は開発中のものです。:2014/09/17(水) 22:18:22.34 ID:T7ONrPQz.net
- >>208
武器を装備して殴りあうだけならいいんですが、
魔法とか攻撃手段が増えると、すごい勢いで増えるかなーと
- 210 :名前は開発中のものです。:2014/09/17(水) 22:40:21.67 ID:Ek0OO0vX.net
- >>209
構造がよくわからないからなんとも言えないけど、
3つのパターンともサイズに関してはあんまり変わらないよね
どうしても気になるなら、通知って方法自体からやり直してみるとか
メモリは必要なら潤沢に使ってもいいと思うけどね
自分なら5M、10Mくらいならそれが必要なら気にせず使うかな
- 211 :名前は開発中のものです。:2014/09/17(水) 22:49:18.55 ID:T7ONrPQz.net
- 構造はFFみたいにゲージが貯まったら行動できるってやつで、システムはそのままです
同時攻撃されることも考えて・・・
そういえばこの通知をスタックしてって
自分の更新タイミングで一括処理する以外にどんな方法があるんですか?
アクションゲーム作った時と同じ構造で作ったんですが、逐次処理の方がいいんですかね
- 212 :名前は開発中のものです。:2014/09/17(水) 23:14:42.49 ID:GQlJBbYl.net
- 3つ目でいいと思うなー
物理ダメ、魔法ダメ、属性、デバフ系とかをまとめた攻撃情報構造体みたいなものを用意
攻撃時に構造体へ情報を詰め込む
Character.Attacked(AttackInfo*)みたいな関数へ構造体を渡す
関数内で最終的なダメージを算出って感じ
FFみたいなゲージ戦闘なら審判みたいなものを用意して、攻撃側と防御側のステータスを渡して
審判が最終的なダメを計算、敵へダメージを与えるってのもありかも?
やるかはわからないけど、防御側のカウンターダメージとかもできそう
- 213 :名前は開発中のものです。:2014/09/17(水) 23:32:10.49 ID:Ek0OO0vX.net
- >>211
スタックせずに同時のタイミングを処理する別の方法としてなら、
ステータスを更新前と更新後用に分けといて、
同じタイミング中は更新前を参照して更新後を書き換えるとか?
- 214 :名前は開発中のものです。:2014/09/17(水) 23:34:50.13 ID:T7ONrPQz.net
- 3つめが強そうなので3つめで一度実装してみることにします
ありがとうございました
- 215 :名前は開発中のものです。:2014/09/18(木) 00:24:30.25 ID:64bH7faF.net
- >>207
一時的なオブジェクトのインスタンス化と削除は、
コンパイラによって最適化される場合があるらしいね
ソースはgems
- 216 :名前は開発中のものです。:2014/09/18(木) 02:30:55.45 ID:E/1zPl06.net
- >>211
>構造はFFみたいにゲージが貯まったら、
>行動できるってやつで、システムはそのままです
ATB(Active Time Battle)は、FFの特許じゃないの?
もう、特許が切れているの?
- 217 :名前は開発中のものです。:2014/09/18(木) 05:08:15.17 ID:djmncf26.net
- http://www.ekouhou.net/ビデオ・ゲーム装置,その制御方法および制御ディバイス/disp-B,2794230.html
これか?
出願1991年だから切れてるんじゃない?
しかしこういう特許ってゲームのルールは特許にならないからって回りくどくてめんどくさい書き方してるな。でもこれに書いてある通りに実装しなくても似てるだけで訴えるんだろ?
あほくさ
- 218 :名前は開発中のものです。:2014/09/18(木) 11:19:02.99 ID:l5OvmxOh.net
- ただでさえかったるいのに
余計な待ち時間を増やすとか
あほくさ
- 219 :名前は開発中のものです。:2014/09/18(木) 19:22:54.91 ID:5nIXhLpZ.net
- >>206
ありがとう!参考になります
当たり判定が直感的で良さそうですね
- 220 :名前は開発中のものです。:2014/09/18(木) 19:34:17.61 ID:UPAtERIr.net
- 個人的な利用なら特許侵害にならないんじゃなかったっけ
- 221 :名前は開発中のものです。:2014/09/18(木) 20:12:10.67 ID:djmncf26.net
- うっかり良いものが出来たとしても自分と家族ぐらいにしか配布出来ないけどな。
- 222 :名前は開発中のものです。:2014/09/18(木) 23:10:54.55 ID:5nIXhLpZ.net
- ATBの話って製作側だとよく聞く話だけど、
実際にスクエニに連絡して確認したことあるよっていう人がいないも案外おかしいよな
- 223 :名前は開発中のものです。:2014/09/19(金) 03:27:56.19 ID:HwK1MKsP.net
- ATBは一定時間経たないと、ユーザが入力できないため、
ユーザが待つ必要があり、時間のムダ
一般的には、ユーザが待たずに、入力し終わってから、
技を発動するまで、プログラム側で待つ
FFがなぜ、ATBのような非効率なシステムを発明したのか、疑問に思う
- 224 :名前は開発中のものです。:2014/09/19(金) 06:39:00.50 ID:SD9Sg4bw.net
- ARPGを作りたい人とコマンド式RPGを作りたい人との妥協の産物かと
- 225 :名前は開発中のものです。:2014/09/19(金) 07:39:46.20 ID:kDTQDM8B.net
- 変わったことやりたかったんでしょ。
- 226 :名前は開発中のものです。:2014/09/19(金) 18:20:13.98 ID:PqYwrc40.net
- リアルタイム重視といいつつアイテムリストとか魔法が異常に増えてて洗練されて無かったよね
サガみたいにスロット少なくするのとかアクションゲームみたいに1ボタンごとに割り当てにしないと
ユーザーに不利にしかならない
- 227 :名前は開発中のものです。:2014/09/19(金) 21:54:17.52 ID:GkCFCk/k.net
- ボタンごとにアクションを割り当ててるゲームっていうと
スタオとかテイルズオブシリーズとかか
あれも魔法とかをリストから選択する機会は無くはないけど
さすがに選択中はゲーム進行止まってたな
- 228 :名前は開発中のものです。:2014/09/21(日) 20:54:11.89 ID:+/5x6E0N.net
- 親クラスのprivate関数を子クラスでオーバーライドって出来る?
親クラスのルーチンワーク上で呼び出せれば
その関数を子クラスから呼ばせたくないけど、定義はさせたいっていうのが可能なのかなーって
例えばアクションゲームでキャラクターが攻撃を受けた時に、
その親クラスがコリジョン処理する時にノックバックするのかとか、状態異常をキャラクターに追加するとか
- 229 :名前は開発中のものです。:2014/09/21(日) 21:19:32.29 ID:yu1YxmSd.net
- そもそもゲームロジック部分をC++で書くのは疲れそう
- 230 :名前は開発中のものです。:2014/09/21(日) 23:30:37.12 ID:+/5x6E0N.net
- >>229
HSPとか?
Javaは論外としてC#とか向いてるのかな
- 231 :名前は開発中のものです。:2014/09/22(月) 07:38:18.22 ID:NiqYAxp5.net
- スクリプト使ってるんじゃね?
ただ、スクリプト使う状況って、意外とリファクタリングで何とかなる状況が多いけどな
- 232 :名前は開発中のものです。:2014/09/22(月) 07:49:16.65 ID:7IVENz3s.net
- 一番書き慣れていて使いこなせるのがC++だから疲れないけどな
DLLで組めば状態の変数をDLL側で持たないかぎり本体起動しっぱなしで入れ替えもできるし
組み込みスクリプトも何度か使ったが、外部データに関連する計算式程度しか有効的に活用出来なかったわ
- 233 :名前は開発中のものです。:2014/09/22(月) 08:56:45.93 ID:NiqYAxp5.net
- スクリプトはシナリオとかの文章をゲーム途中に挿入する場合に使うけどな
あと、個別の動作を順序だてて使いたい場合には使った方が楽
- 234 :名前は開発中のものです。:2014/09/22(月) 09:08:18.28 ID:NiqYAxp5.net
- >>228
protectedやfriendじゃ駄目なの?
- 235 :名前は開発中のものです。:2014/09/22(月) 09:11:46.10 ID:eY0HQZ22.net
- >>234
protectedじゃ子クラスから何度も呼び出されてもわからないじゃん
呼び出せるのは親クラスだけ、ただし親クラスが呼び出す関数を子クラスは定義できる
みたいなのがあったらいい感じに縛れそう
- 236 :名前は開発中のものです。:2014/09/22(月) 09:23:12.77 ID:NiqYAxp5.net
- 呼び出し専用関数作って、その中でカウントしとけば良くね?
- 237 :名前は開発中のものです。:2014/09/22(月) 11:02:48.99 ID:bWbweNXI.net
- 試してみたけど子クラスで関数を定義する以上, 子クラスからはその関数を制限なく呼び出せちゃうね
どうしてもやりたいときは関数ポインタ使うか, 236 のようにカウンタとかフラグで親クラスが管理するしかないんじゃね?
- 238 :名前は開発中のものです。:2014/09/22(月) 12:34:08.13 ID:pzX41AB7.net
- >>228
private virtualって出来なかったっけ?
- 239 :名前は開発中のものです。:2014/09/22(月) 12:35:34.50 ID:pzX41AB7.net
- あ、子クラスからは呼べないようにしたいのか、
じゃあ無理だ。ごめん。
- 240 :名前は開発中のものです。:2014/09/22(月) 19:40:03.48 ID:BR22T/mE.net
- >>235
@親のクラスで関数オブジェクトを返り値とするprotected関数を定義しといて、
子側でオーバーライドし、実行したい処理(関数オブジェクト)を定義し、返すようにする。
A親のクラスのprivate関数で、↑のprotected関数を呼び出し、さらに返り値である
関数オブジェクトを実行するようにしておく。
こうすれば、protected関数を複数回呼び出しても、処理自体が実行されないので
チーム間での疎通ミスは減らせるはず。
ちなみに、関数を子クラス内に定義して関数オブジェクトとして渡すのではなく、
protected関数をオーバーライドするブロック内でラムダ式で記述すれば、
子クラス内で処理を複数呼び出してしまうミスも防ぐことができる
こういう内部処理を外出しするの、D言語とかJavaだと簡単なんだけど、
C++だとラムダ式で返そうと思ったら参照をキャプチャしないといけないんだっけ?
- 241 :名前は開発中のものです。:2014/09/22(月) 19:48:34.84 ID:BR22T/mE.net
- あと個人的に思ったのは、
子クラス側で定義する関数内で、その関数をなんの脈絡もなく再起呼び出しして
無限ループに陥らせることは誰にも防ぐことも縛ることもできないっていうやつよwww
おそらくだけど>>235が縛りたいと言ってるのはその類の話になると思う。
複数回呼ばれて困る処理を子クラスで定義可能な以上、防ぐことはできない。
変更可能な状態を子クラスに公開し、かつ、その処理を子クラスに委ねてるからね・・・。
- 242 :名前は開発中のものです。:2014/09/22(月) 22:25:57.61 ID:BR22T/mE.net
- あーいやprivate virtualで行けるのか、これMSの独自仕様じゃあないよね?
- 243 :名前は開発中のものです。:2014/09/24(水) 17:43:40.72 ID:mcOEvjH/.net
- なあ、フラグメンテーション対策ってどうやればいいの?
- 244 :名前は開発中のものです。:2014/09/24(水) 17:49:53.05 ID:cFhvO8dH.net
- ゲーム中に使うメモリを全部最初に確保してしまう
- 245 :名前は開発中のものです。:2014/09/24(水) 17:53:27.57 ID:u5gVrNuz.net
- 1.気にしない(お勧め)
2.メモリ管理を完ぺきに把握し、完璧にスケジューリングする
3.スマートポインタ等を使ってガベージコレクションを実装する
- 246 :名前は開発中のものです。:2014/09/24(水) 17:57:31.66 ID:1Xr/Cbhv.net
- >>244
規模の小さいものならそれでも構わないけど、例えばskyrimみたいなオープンワールドのゲームだと無理だよね。
- 247 :名前は開発中のものです。:2014/09/24(水) 18:10:10.66 ID:1Xr/Cbhv.net
- >>245
GC実装しただけでメモリの断片化が無くなったら苦労しないよ。
Androidで使われてるVMのdalvikは最後までコンパクションの実装出来なかったし。
- 248 :名前は開発中のものです。:2014/09/24(水) 18:30:05.75 ID:FbXuVkZ2.net
- コンパクションなら実装したよ
基本的にはメモリハンドルでメモリを管理して、
必要なときだけポインタを返すやり方
メモリー配置が変わるとポインタの配置が変わるんでね
ちなみにメモリの再配置はメモリ取得のたびに行ってるから、
メモリ取得の多い場合は処理が重くなる欠点がある
- 249 :名前は開発中のものです。:2014/09/24(水) 18:34:03.41 ID:FbXuVkZ2.net
- 重い処理だけだとゲームにならないから、別の方法も色々やってる
基本的には一度取得したメモリを再利用するやり方
- 250 :名前は開発中のものです。:2014/09/24(水) 18:53:43.12 ID:FbXuVkZ2.net
- メモリサイズの変数を二つ用意して、片方には使用するメモリサイズを
もう片方には取得するメモリサイズを入れておく、なんて事もした
- 251 :名前は開発中のものです。:2014/09/24(水) 18:59:44.67 ID:Xjyy1rtc.net
- >>243
・サイズの増減がないデータは起動時に確保・終了時に解放
・増減があるなら最大数を決めて固定領域を使いまわす
この時個々の要素を同じサイズに揃えることが大事
サイズが違うならまた別の領域にまとめる
・あるいは処理順一定でLIFOにできるならスタックを真似てぶち込むのも一考
- 252 :名前は開発中のものです。:2014/09/24(水) 19:46:03.82 ID:LrfGaICk.net
- リスト構造も使い方次第で色々出来るな
例えば、使わなくなったメモリはリストから外して、
使う場合には使わなくなった領域をリストに再登録するとか
- 253 :名前は開発中のものです。:2014/09/24(水) 19:48:26.36 ID:RqPQCow/.net
- リスト自体は増減させてもメモリ大丈夫なんかな?
- 254 :名前は開発中のものです。:2014/09/24(水) 20:02:12.50 ID:LrfGaICk.net
- >>253
さあ?自分のリスト構造は自作で、基本はvector使って作ってる。
STLのリスト構造は使わなくなったらdeleteしてるらしいから、
あまり信用してないんだよな。まあ、増減量が一定量を越えると
自分のやり方でもフラグメンテーションの危険は高まるわけだが。
- 255 :名前は開発中のものです。:2014/09/24(水) 20:07:55.87 ID:BMl/3hMS.net
- 直接メモリを触るような言語でオレオレコンパクション実装までする価値あるのか疑問だな。
そのメモリを触る可能性のあるスレッドを全て止めなきゃいけなかったり、メモリをメンバーに持つクラスを(標準ライブラリ含む)を使用できなかったりデメリット多すぎる
- 256 :名前は開発中のものです。:2014/09/24(水) 20:18:47.07 ID:LrfGaICk.net
- コンパクションをスレッドの数だけ用意すれば大丈夫だな
スレッドはあんまし使わないから関係ないかもしれないけど
- 257 :名前は開発中のものです。:2014/09/24(水) 21:46:52.60 ID:2qY3dsir.net
- >>256
解ってないな。さすが使わないだけある。
- 258 :名前は開発中のものです。:2014/09/24(水) 21:57:16.58 ID:LrfGaICk.net
- 複数のスレッドから同じ領域に同時に書き込みしなけりゃ良いんだろ?
別々にメモリ取得して別々のコンパクションで監理すれば良いじゃん。
そりゃ、スレッド間通信をどう解決するかという問題は残るが。
- 259 :名前は開発中のものです。:2014/09/25(木) 02:06:25.63 ID:zb4pUBj7.net
- スレッド間通信をするためにコンパクションを追加しよう
- 260 :名前は開発中のものです。:2014/09/25(木) 06:27:40.78 ID:KZOA8+6u.net
- せやな。スレッド間通信回数×2のコンパクションが余分に必要やな。
- 261 :名前は開発中のものです。:2014/09/25(木) 09:20:46.75 ID:SiUQKnDu.net
- 個人制作ならリソース使いまくりでいいよな
よっぽどじゃなけりゃ断片化の弊害なんて目立たないし
商業のデカいタイトルだとGC独自実装してるらしいが
- 262 :名前は開発中のものです。:2014/09/25(木) 10:09:34.46 ID:Wwt/1FNM.net
- そもそも普通は動的メモリなんてそうそう使わんだろ
- 263 :名前は開発中のものです。:2014/09/25(木) 10:16:44.99 ID:GasQ7lmc.net
- 確保するサイズや解放の頻度でアロケータを複数変えればいいだけじゃ?
コンパクションなんて画面の切り替えみたいな暗転で良いシーンで
シリアライズしてオブジェクト作り直しで
64bitならメモリ空間が広くなったから気にせず標準実装でいくけどな
- 264 :名前は開発中のものです。:2014/09/25(木) 10:21:10.03 ID:BS6aeyL9.net
- コンパクションが必要なぐらい常時カツカツ、ってケースは
固定メモリ配置(って言い方で通じるかな、名前が分からん)にして
どっからどこのアドレスまで何のデータ、って設計までやりそうな印象がある
- 265 :名前は開発中のものです。:2014/09/25(木) 10:22:30.69 ID:4YQaZ6ET.net
- >>261
数時間のプレイの成果が謎のエラーでパーになったぞ どうしてくれる
- 266 :名前は開発中のものです。:2014/09/25(木) 10:57:38.17 ID:Q3KR10H7.net
- >>265
謎のエラーならメモリの断片化関係無いだろ何言ってんだ。
そもそも断片化しようが無尽蔵に増えていくわけでも無いのにそこ勘違いしてないか?
- 267 :名前は開発中のものです。:2014/09/25(木) 11:46:44.21 ID:Wwt/1FNM.net
- メモリ取得失敗なんて、そこらのプログラマーに対応出来るのか?
そもそもメモリのフラグメンテーションは見かけ以上にメモリを浪費するから問題になるわけで
- 268 :名前は開発中のものです。:2014/09/25(木) 12:15:21.37 ID:0U2Nzxja.net
- まあ数時間程度で使用メモリが数ギガとかになってたら、
普通はフラグメントじゃなくてメモリリークを疑うわな
- 269 :名前は開発中のものです。:2014/09/25(木) 12:16:23.34 ID:NZ65e36X.net
- >>263
32bitマシンは切り捨てですか?
- 270 :名前は開発中のものです。:2014/09/25(木) 12:22:47.53 ID:NZ65e36X.net
- >>268
フラグメンテの問題は使用メモリが少ないにもかかわらずメモリ取得出来なくなるんだが?
数バイトのゴミのような大量のメモリ取得が大きなメモリの再取得を失敗させるから問題なわけで
- 271 :名前は開発中のものです。:2014/09/25(木) 12:27:57.77 ID:0U2Nzxja.net
- >>270
ヒープに展開したメモリが断片化してんだからOS読みの使用量は肥大するだろ
- 272 :名前は開発中のものです。:2014/09/25(木) 12:36:56.59 ID:NZ65e36X.net
- ああ、ヒープサイズを見れば良いか
ただな、vectorしか使ってない、mallocやnewを使ってない状況では、メモリリークは起きない
- 273 :名前は開発中のものです。:2014/09/25(木) 12:51:35.78 ID:Wwt/1FNM.net
- ふっふっふっ、数バイト程度の1024個の動的メモリーと10Mバイト程度の動的メモリーがあれば、
32Bit環境でフラグメンテーションを発生させる事などたやすいわ〜!!
- 274 :名前は開発中のものです。:2014/09/25(木) 13:11:46.20 ID:Wwt/1FNM.net
- >>273の例だと最大10Gバイトのメモリーの浪費が出来るけどなwww
ちなみに32Bit環境の最大メモリー容量は4Gバイト
- 275 :名前は開発中のものです。:2014/09/25(木) 13:57:33.94 ID:7St3vxLx.net
- OpenGL使ってると、PCによっては突然カクカクすることがあるんだけど、何が原因なんだろう
PCによってなる場合とならない場合があるし、突然そうなったり直ったりする
誰か分かる人いる?
- 276 :名前は開発中のものです。:2014/09/25(木) 14:05:40.51 ID:0U2Nzxja.net
- >>273
これwindowsで試しにやってみたら、断片化起きないのな
なんでだと思って調べてみたら、小さいサイズと大きいサイズのアロケートが
ぜんぜん遠くの場所に確保されて、断片化しないように勝手に配置してた
ググるとLow Fragmentation Heap(vista以降でデフォルトで有効)って機能が在るらしく、
これのせいで断片化が起きにくくなってるらしい
これはwin(vista以降)限定にはなるけど、こんな機能があるなら断片化はそんなに気にしなくてもいいのかも
- 277 :名前は開発中のものです。:2014/09/25(木) 14:56:31.50 ID:Q3KR10H7.net
- >>274
どうやるんだよ。具体的に言って見ろよ
- 278 :名前は開発中のものです。:2014/09/25(木) 15:51:45.34 ID:Wwt/1FNM.net
- >>276
あれ!?て事はうちで今起きてるフラグメンテーションは……メモリの機能を解析しないと解らないか
>>277
悪い、古いOSで5Gまでしか無理だった
奇数番目の数バイトのメモリと10Mのメモリを配置が動くようにサイズを交互に変更して……
って事を考えてたんだが……
- 279 :名前は開発中のものです。:2014/09/25(木) 15:51:52.00 ID:eZ0WvKEX.net
- >>274
10Mバイト程度と数バイトが連続して並べられるような実装のmallocが前提でもいいぞ。例よろしく。
- 280 :名前は開発中のものです。:2014/09/25(木) 15:58:51.73 ID:eZ0WvKEX.net
- >>278
数バイトと10Mバイトを交互に変更したらなんで5Gもいくんだよ。
古いOSってなんだよfreeした領域を再利用しないような糞実装の環境か?どんな環境だよ。少なくとも64BitのOSなんだよな?
- 281 :名前は開発中のものです。:2014/09/25(木) 16:42:29.27 ID:Wwt/1FNM.net
- 1 数バイトのメモリの容量を増やす
10Mバイトのメモリの後ろに数バイトのメモリが動く
2 10Mバイトのメモリの容量を増やす
最初に動かした数バイトのメモリの後ろに10Mバイトのメモリが動き
10Mの空き領域が出来る
3 今の前から2番目の数バイトのメモリを増やす10Mバイトのメモリの後ろに……あれ!?
- 282 :名前は開発中のものです。:2014/09/25(木) 16:54:07.84 ID:mt5vjM8o.net
- >>281
普通に考えて2で出来た10MBの空き領域に3で増やした数バイトが配置されるだろ。
- 283 :名前は開発中のものです。:2014/09/25(木) 17:28:22.48 ID:Wwt/1FNM.net
- むうっ、10Mバイトの空き領域おきに数バイトのメモリ取得をすればフラグメンテーションの完成!
と簡単に考えていたが、難しい
- 284 :名前は開発中のものです。:2014/09/25(木) 17:47:48.32 ID:GasQ7lmc.net
- OSから見えるメモリとアプリがみえるメモリ空間は別物、最悪OS側では非連続でも良いんだよ
VirtuaAllocで予約だけして埋めてけばアプリから見たらメモリ確保に失敗できるだろうよ
- 285 :名前は開発中のものです。:2014/09/25(木) 17:49:24.77 ID:aYvhPGQT.net
- メモリのフラグメンテーションなんて気にしても意味ない。
圧倒的にページデフォルトのほうがロスが大きいし。
フラグメンテーション解消もOS依存だし。
そこにこだわるくらいならメモリプールして再使用したほうがマシ。
- 286 :名前は開発中のものです。:2014/09/25(木) 18:33:30.97 ID:Wwt/1FNM.net
- ページデフォルトって?ぐぐっても出ないんだが
- 287 :名前は開発中のものです。:2014/09/25(木) 18:39:35.35 ID:aYvhPGQT.net
- 書き間違い
ページフォールト - Wikipedia
ページフォールト (page fault) とは、プログラムが物理メモリがマップされていない仮想アドレス空間上のページにアクセスしたときにハードウェアが発生する割り込み(または例外)である。
ページフォールトを処理するソフトウェアは一般にオペレーティングシステム (OS) の一部であり、ページフォールトを発生させるハードウェアを一般にメモリ管理ユニットと呼ぶ。
OSのメモリ管理がページフォールトを処理し、その仮想アドレスにアクセスできるようにするか、無効なアクセスであるとしてページフォールトを発生させたプログラムを強制終了させることができる。
名前にフォールト(障害)とあるものの、ページフォールトは必ずしも致命的なエラーではない。
Windows、Unix系OS(Mac OS X、Linux。*BSD、Solaris、AIX、HP-UXなど)、z/OSといった仮想記憶方式を採用するOSでは、
ページフォールトは普通に発生するし、必須な機能でもある。
マイクロソフトは(Windows Vistaなどの)リソースモニタの最近のバージョンで、ページフォールトの意味で「ハードフォールト」(hard fault) という呼称を使っている[1]。
- 288 :名前は開発中のものです。:2014/09/26(金) 02:25:48.99 ID:m0bZOMy5.net
- 横からしょうもない質問をぶち込んで申し訳ないが
ゲーム開発を勉強したいんだけどどういう本を買えばいいかわからない
言語はC++で描画はDirectXを使いたい
とりあえず明快C言語の入門編は買った
- 289 :名前は開発中のものです。:2014/09/26(金) 03:16:50.45 ID:A4xH7Wvc.net
- HSPで手応て掴んでから
- 290 :名前は開発中のものです。:2014/09/26(金) 07:13:47.30 ID:zpPM/1OB.net
- DXライブラリ使うと楽だよ
DXライブラリ 総合スレッド その18
http://peace.2ch.net/test/read.cgi/gamedev/1399459468/
- 291 :名前は開発中のものです。:2014/09/26(金) 09:00:00.52 ID:FT0pZNED.net
- DirectX直で使うなら
入門ゲームプログラミング (Professional Game Developerシリーズ) 大型本 ? 2014/1/30
がいいみたいだぞ
WindowsゲームプログラミングでWin32apiについても勉強しておくといいかも
DXライブラリ使った方が楽だけど
- 292 :名前は開発中のものです。:2014/09/26(金) 10:12:15.38 ID:gU5F+WDx.net
- DXライブラリのいいとこどりして、自由にしたい部分(特に3D面)自分で作るのが一番
- 293 :名前は開発中のものです。:2014/09/26(金) 10:16:07.11 ID:rbkJ86iO.net
- つーかDXライブラリ使ってから直接叩きに行けばいいと思うの
- 294 :名前は開発中のものです。:2014/09/26(金) 12:18:19.00 ID:+75O60pj.net
- とりあえずブラインドタッチの習得から始めようか
- 295 :名前は開発中のものです。:2014/09/26(金) 15:10:36.26 ID:m0bZOMy5.net
- >>289
C++で行きたい
>>290
それはどう言う物?
>>291
DirectXに関してはそのProfessional Game Developerとか言うの買ってみる
Win32apiってのでお勧めの本はあったりする?
>>294
出来る
- 296 :名前は開発中のものです。:2014/09/26(金) 15:43:11.22 ID:KjwlBlc2.net
- Win32APIなんて最初のwindow作る時ぐらいしか触らなくね?
- 297 :名前は開発中のものです。:2014/09/26(金) 16:17:40.31 ID:JcYHmNqs.net
- >>295
DXライブラリはDirectXのラッパー
初心者でも簡単にゲームを作れるように製作された
- 298 :名前は開発中のものです。:2014/09/26(金) 17:48:05.16 ID:rO+kEazw.net
- そーいやDxLibって、いわゆるBetter Cで使えるように設計されてるらしいね
- 299 :名前は開発中のものです。:2014/09/26(金) 18:04:39.11 ID:9JMnzgXV.net
- effective C++
game engine architecture
game programming gems
取り敢えず俺が読んだ本でよかったもの
最近やってないから内容ほとんど忘れたけど
- 300 :名前は開発中のものです。:2014/09/26(金) 19:01:22.83 ID:bysjYWQH.net
- ウィンドウプロシージャがけっこう曲者だった気がする
- 301 :名前は開発中のものです。:2014/09/27(土) 17:06:21.54 ID:4H/ikRQa.net
- ゲームってリリースでビルドすると、exeとリソースに分かれると思うんだけど、ゲームを公開するときに、リソースファイルを非公開にすることって出来る?
- 302 :名前は開発中のものです。:2014/09/27(土) 17:09:38.13 ID:yBneoUhB.net
- 実行ファイルに組み込む
一つのファイルにアーカイブして暗号化したものを読み込む
- 303 :名前は開発中のものです。:2014/09/27(土) 22:59:20.87 ID:wImin9kV.net
- それってどうやるの?
ソリューションエクスプローラーにリソースフォルダあるけど、なんかexeのアイコンぐらいしかわからん
- 304 :名前は開発中のものです。:2014/09/27(土) 23:08:35.84 ID:SGVF4lSG.net
- フレームワークが後出しで出てくる予感
- 305 :名前は開発中のものです。:2014/10/02(木) 00:06:30.72 ID:fnVH62pX.net
- とりあえず、フラグメンテーションやそれに伴って発生するバグが予測しづらい事は何となく解りましたが、
これってグラフィックVRAMでも起きますよね?しかもメーカーによって発生頻度が変わるという。
- 306 :名前は開発中のものです。:2014/10/02(木) 12:09:22.18 ID:zEULmnAZ.net
- 要素のサイズのばらつきがなければ同じ領域を使いまわせるはず
- 307 :名前は開発中のものです。:2014/10/02(木) 12:58:09.55 ID:iGYHLveA.net
- アプリからAPI通して見えるのとGPUの物理配置はCPUのと同じで違う空間にマッピングされてるから気にしなくていい
複数のアプリでVRAMを取り合った結果GPU上に実際にあるかは保証できないし
- 308 :名前は開発中のものです。:2014/10/04(土) 22:09:19.67 ID:fjoq6jVy.net
- 自己解凍のインストーラってどうやって作るんだ?
- 309 :名前は開発中のものです。:2014/10/05(日) 02:33:34.79 ID:V/yeiJ3y.net
- うわ、バカが北!
- 310 :名前は開発中のものです。:2014/10/05(日) 03:23:02.94 ID:ofmLJ6L4.net
- インストーラを作るのか?
メリットを感じない。
C/C++で書くとしてもゲームじゃないから板違い。
自己解凍したいだけならググれ。
- 311 :名前は開発中のものです。:2014/10/05(日) 09:24:05.22 ID:Xq3Ljg/V.net
- >>303
これ結局どうやるの?
- 312 :名前は開発中のものです。:2014/10/05(日) 09:32:21.92 ID:644ev0/v.net
- VC++ リソース 実行ファイルに組み込む
とかでググればわかるだろ
プログラミングの前にグーグル先生の使い方覚えろよ
- 313 :名前は開発中のものです。:2014/10/05(日) 09:46:06.79 ID:aV15d1fG.net
- インストーラはVisualStudioのセットアッププロジェクトてのが使える
http://code.msdn.microsoft.com/windowsdesktop/10-4ca748ce
- 314 :名前は開発中のものです。:2014/10/05(日) 10:35:25.80 ID:Y65zx5bA.net
- 好きなの使え
http://en.wikipedia.org/wiki/List_of_installation_software
- 315 :名前は開発中のものです。:2014/10/11(土) 14:23:54.11 ID:W7Sb4d1k.net
- 敵を押しのけて進む「突進攻撃」を表現したいんですが、接触中常に判定しているため
触れている間、すごい勢いでHPが減ってしまいます
その攻撃は一回だけダメージを受けてあとは無視したいんですが、どういうふうに実装すればいいのかわかりません
キャラクターが直前の受けた攻撃を覚えるというのでもいいんですが、「連続攻撃」などがあるため、兼ね合い上無理です
- 316 :名前は開発中のものです。:2014/10/11(土) 14:31:25.31 ID:yKOIaJY/.net
- >>315
その攻撃にリスト持たせて相手の参照保持するとか
- 317 :名前は開発中のものです。:2014/10/11(土) 15:52:45.46 ID:VK47TOFi.net
- ・何らかの方法で攻撃されたことを覚えておく(>315>316の手法)
・無敵時間を作る
・触れてる間ずっと減るという前提で威力を調節する
このへんか?
- 318 :名前は開発中のものです。:2014/10/11(土) 19:19:54.03 ID:ftnQTcbt.net
- 触れてる間中判定のたびにダメージ食らうって仕様自体に問題ありそうな気するので
一回ダメージを主人公に与えた敵キャラは主人公に再ダメージ与えるには一定時間かかるようにするとか
連続攻撃の時だけインターバル無効にして
- 319 :名前は開発中のものです。:2014/10/12(日) 05:36:54.90 ID:H/GXxxmg.net
- みんなプログラミングソフト何使ってんの?
あのクッソ高いVisualStudioProfessional2013とか使ってんの?
- 320 :名前は開発中のものです。:2014/10/12(日) 05:45:57.20 ID:EhXtC2jR.net
- クッソ無料な Express です。
- 321 :名前は開発中のものです。:2014/10/12(日) 07:49:44.05 ID:J+1JVnSp.net
- インテルParallel Studio XE 2015が欲しいな……
いや、使ってるのはVisual Studio Professional 2012だ
数年おきに買い換えてるけどね
- 322 :名前は開発中のものです。:2014/10/12(日) 07:55:19.92 ID:/BVTES1n.net
- professionalってフリーのと比べて何が違うの
- 323 :名前は開発中のものです。:2014/10/12(日) 08:01:53.97 ID:J+1JVnSp.net
- ・MFCが使える
・Windows8アプリを作れる
後、何があったかな?まあ、買う意味はあまり無かったが
- 324 :名前は開発中のものです。:2014/10/12(日) 08:05:24.48 ID:J+1JVnSp.net
- ・個人情報の入力が不要
というのがあったか
- 325 :名前は開発中のものです。:2014/10/12(日) 08:23:20.45 ID:lmLFkKE0.net
- アドイン使えるのが最大の違い棚、無償のアドインですら便利なの多い
Intel コンパイラもアドインとして実装だし
アプリ作るのにMFCよりATLがついてるのとリソースエディタがあるのが楽
ゲーム向けといえばシェーダデバッガが使える。Pixは使えない環境が増えたから
- 326 :名前は開発中のものです。:2014/10/12(日) 08:29:03.38 ID:5ggxpAbS.net
- 商業利用
- 327 :名前は開発中のものです。:2014/10/12(日) 08:38:04.82 ID:J+1JVnSp.net
- Visual Studioのアドインってどんなのがあるの?
検索しても概念しか出てこないんだが
- 328 :名前は開発中のものです。:2014/10/12(日) 08:47:31.90 ID:M/9KBN8Z.net
- ttp://www.visualstudio.com/ja-jp/products/visual-studio-express-vs.aspx
商業利用は可能らしい
- 329 :名前は開発中のものです。:2014/10/12(日) 10:27:41.59 ID:SHzxfoNm.net
- 2010proと2013expressだったらどっちの方が良い?
- 330 :名前は開発中のものです。:2014/10/12(日) 11:20:36.06 ID:xlzIAwTn.net
- 個人的には、グラフィックス診断機能があるという一点だけでも
VisualStudioのProfessionalを使う意味があると感じている
DirectXを直接叩かない人には恩恵は殆どないかもしれないが
- 331 :名前は開発中のものです。:2014/10/12(日) 12:00:27.61 ID:dKaNtW9R.net
- 個人的にはEclipse CDTのほうが使いやすい
比べてるのVS2010だけどnamespaceのごとにフォルダ作るのとかめんどくさくない?
- 332 :名前は開発中のものです。:2014/10/12(日) 21:20:23.78 ID:Xey/qQ/1.net
- 俺が使ってるアドインはQtとNSightかな
- 333 :名前は開発中のものです。:2014/10/12(日) 23:04:27.97 ID:H/GXxxmg.net
- 質問ばっかで悪いが
Express2013で実行ファイルのアイコンって変えられないのか?
- 334 :名前は開発中のものです。:2014/10/12(日) 23:06:08.28 ID:fyt7rxnY.net
- アイコンって変えら
- 335 :名前は開発中のものです。:2014/10/12(日) 23:17:56.44 ID:V7vL1J09.net
- 2010は変えられたけど2013は知らない
- 336 :名前は開発中のものです。:2014/10/13(月) 00:33:49.65 ID:hzHBieoQ.net
- Express はしらんが Professional だと
表示→その他のウィンドウ→リソースビュー→該当アイコン
- 337 :名前は開発中のものです。:2014/10/13(月) 01:34:31.59 ID:uF6f/HdY.net
- VS使ってない俺でも >>333 んなわけねーだろと答えるわ
- 338 :名前は開発中のものです。:2014/10/13(月) 12:10:48.20 ID:OHHj8O/3.net
- if文でNULLチェックと同時にメンバ関数呼び出すのってぬるぽされる?
if(hoge != NULL && hoge->a == 1)
- 339 :名前は開発中のものです。:2014/10/13(月) 12:30:34.27 ID:rKI73evO.net
- マルチならマルチってきちんと言いなさい
- 340 :名前は開発中のものです。:2014/10/13(月) 13:18:53.44 ID:X0f4tC8k.net
- 左から判定してfalseがあった時点で後の判定はしないし大丈夫だと思うけど
ってかそれぐらい自分で適当にテストすればいいんじゃ
- 341 :名前は開発中のものです。:2014/10/13(月) 14:58:01.00 ID:Qf2MnFbB.net
- その行以外にメンバ関数呼び出さないなら良いけど
不具合の原因になるよ
- 342 :名前は開発中のものです。:2014/10/13(月) 15:12:08.33 ID:rsHrWC8o.net
- 他人が書いた無頓着なコード、神経質なコード
どちらを読んでも目眩がする。
- 343 :名前は開発中のものです。:2014/10/13(月) 15:49:22.33 ID:Fnhb7LNv.net
- 自分以外のコードなんて読めないからどれも同じ。
- 344 :名前は開発中のものです。:2014/10/13(月) 16:36:57.29 ID:hzHBieoQ.net
- >>338
知り合いの言語仕様にやたら詳しい人がこういうコード書いてたから、今は大丈夫なんだろうと思うが
昔は、式の中がどういう順で評価されるかはコンパイラ依存だったはずなので、こういうコードは NG だった
自分は不安なので2段階に分けてる
- 345 :名前は開発中のものです。:2014/10/13(月) 16:48:29.25 ID:rsHrWC8o.net
- まだ初期化されてないかも知れないコードを呼び出すコンテキストってどんなの?
- 346 :名前は開発中のものです。:2014/10/13(月) 17:11:00.07 ID:kMnfNib9.net
- 論理演算子の評価順は決まっててかつ真偽が確定した時点で評価をやめる
だから、>>338の文は言語仕様的には問題ないよ
- 347 :名前は開発中のものです。:2014/10/13(月) 17:16:52.97 ID:obVPXN/U.net
- いわゆる短絡評価
- 348 :名前は開発中のものです。:2014/10/14(火) 03:20:21.89 ID:EcN5Ngh+.net
- >>345
ちょくちょく出てこない?
安全に使いたいとか。
- 349 :348:2014/10/14(火) 03:33:56.66 ID:EcN5Ngh+.net
- ちょっと自分のレスが不親切だと感じたので、具体例を挙げてみる。
あんまり的確な例とは言えないかも。申し訳ない。
例えば単純なゲームプログラムで、Enemyクラスを用意し、これとプレイヤーキャラの当たり判定をしたいとする。
当たり判定を行って、接触してないと判定されたらミス処理はスルー。
また当然ながら、敵データがまだ生成されてない(nullptr)なら、当たり判定を行うまでもなくミス処理はスルー。
こんな感じのときに>338は使えると思う。
もちろん、最初に全部生成してからフラグで管理しろよとか、リストで管理しろよとか、他にも方法はあるだろうけど。
- 350 :名前は開発中のものです。:2014/10/15(水) 11:58:17.17 ID:KHlvqLu2.net
- 3DゲームでNPCに話しかけるプログラムを組みたいんだけど、話しかける側か話しかけられる側かどっちでどういうプログラムを組めばいいんだろう?
こういうの参考サイトに載ってなくて…
- 351 :名前は開発中のものです。:2014/10/15(水) 14:43:08.97 ID:/0utetRg.net
- シンプルなものなら、npc->getText() で個々のNPCのテキストを拾えるようにして
チャットウィンドウに投げるなり、吹き出しクラスを生成するなり…かなあ?
それとも、2Dゲームだと出来るけど、3Dゲームだと出来ない問題ってこと?
- 352 :名前は開発中のものです。:2014/10/16(木) 00:04:46.56 ID:6yN2mL4I.net
- 最終的なパフォーマンスは描画fpsで評価するんだけど、
改善したい場合、どこがボトルネックになってるかを知る必要があるじゃない?
これを視覚的に確認する方法ってないのかな?
GPUViewってのがあったみたいだけど、今は入手できない?
- 353 :名前は開発中のものです。:2014/10/16(木) 01:44:49.63 ID:RD+zBY34.net
- >>352
GPUのオーバーヘッドを調べるならVisualStudio2012以降のグラフィックステバッグか、
VisualStudioアドオンのnVidiaNSight
あとDirectXSDKについてくるPIXとか
- 354 :名前は開発中のものです。:2014/10/16(木) 14:07:15.58 ID:QS36hJY2.net
- 同じレンダリングステートで描画できる物は1つにまとめて描画した方が速い
まとめられるのは2D描画だけだと思うけど
- 355 :名前は開発中のものです。:2014/10/16(木) 14:11:40.09 ID:iU5kylbT.net
- は?意味わからない
- 356 :名前は開発中のものです。:2014/10/16(木) 15:57:05.99 ID:XA7dLBCP.net
- UnityVSはProじゃないと使えないのか(´・ω・`)
- 357 :352:2014/10/16(木) 23:15:25.79 ID:6yN2mL4I.net
- >>353
やはり、そのあたりですかね。
http://game.watch.impress.co.jp/img/gmw/docs/586/729/html/gra_53.jpg.html
http://game.watch.impress.co.jp/img/gmw/docs/586/729/html/gra_54.jpg.html
http://game.watch.impress.co.jp/img/gmw/docs/586/729/html/gra_55.jpg.html
http://game.watch.impress.co.jp/img/gmw/docs/586/729/html/gra_56.jpg.html
これ、PSVitaのゲーム開発環境の解析画面なんだけど、こういう感じで見たいなぁ。
>>354
DirectXTKのPrimitiveBatchで、異なるトポロジ(三角ポリと線)を頻繁に切り替えながら描画
(切り替わる度にDrawコールされる)してしまっていたのをできるだけまとめて描画するようにしたら、
Debugモード時に4倍くらいfpsが上がってマジ感動した。
Releaseモードは、わずかに向上するか、ほとんど変わらないときもあった。
>まとめられるのは2D描画だけだと思うけど
3Dモデルならジオメトリインスタンシングが使えるケースがあるね。
- 358 :名前は開発中のものです。:2014/10/16(木) 23:59:18.32 ID:mNWrvpmf.net
- 一応、VS2013Proのグラフィックス診断だと
DrawCall単位で何マイクロ秒かかってるかってのを測定して
CSVかXMLでエクスポートすることはできるみたい
- 359 :352:2014/10/17(金) 02:07:27.36 ID:1FCA9thd.net
- >>358
おお、それはなかなか良い機能!
それを活用かなぁ。
- 360 :名前は開発中のものです。:2014/10/17(金) 10:58:36.38 ID:i0zyuJTB.net
- >>356
おう、諦めな
- 361 :名前は開発中のものです。:2014/10/17(金) 22:20:59.73 ID:t1QiiFRy.net
- >>356
cocos2d-xやろうぜ(´・ω・`)
- 362 :名前は開発中のものです。:2014/10/19(日) 21:58:12.45 ID:A4TBNuX7.net
- ちょうど今cocos2d-xでなんかスマホゲーム作ろうと思ってる
プログラミングよりストア登録とか素材作りでつみそう
- 363 :352:2014/10/19(日) 22:56:32.89 ID:Me3iytM1.net
- http://adruab.net/wp-images/GDC14_infamous_second_son_engine_postmortem.pdf
このスライドの33枚目にあるようなタスク所要時間の視覚化機能を実装したいなぁ。
GPUの処理時間とか、どうやって計測するんだよ!w
- 364 :名前は開発中のものです。:2014/10/20(月) 06:37:43.13 ID:Vt4+cJIA.net
- なんか最近、スレ違いのレスが多いな
- 365 :名前は開発中のものです。:2014/10/20(月) 11:09:09.21 ID:YjayBuJo.net
- 素材作りで積むのはゲーム制作しようとプログラミング学んできた人間にはよくある話
3Dモデルや絵かける方がよっぽどゲーム作れるぞ
- 366 :名前は開発中のものです。:2014/10/20(月) 11:29:32.25 ID:jwhsqWX+.net
- ツクール系やフレームワークがあるからだいぶ敷居は下がったよね
絵や話つくりは何とかなりそうなんだけど音関係がなあ・・・
- 367 :名前は開発中のものです。:2014/10/20(月) 11:53:52.64 ID:DtF3+BwM.net
- 音がきついのすごく分かる
絵なんてそれなりのツール使って作品にあった書き方練習すれば半年でなんとかなる
初心者用サイトも多いし
音は何からどうすればいいかわからなくて詰む
- 368 :名前は開発中のものです。:2014/10/20(月) 12:00:13.49 ID:wIxNXk0C.net
- 音はフリーの素材でなんとかならんか
絵の方がアニメーションとかサイズとか考えると難しいよ
- 369 :名前は開発中のものです。:2014/10/20(月) 12:37:30.84 ID:mkykchgR.net
- 効果音ってどうしてる?
- 370 :名前は開発中のものです。:2014/10/20(月) 13:17:49.07 ID:b7HsFQvV.net
- 大半をフリーで補いつつ、ピンポイントで有料素材
- 371 :名前は開発中のものです。:2014/10/20(月) 14:07:32.34 ID:GwxwpQhh.net
- >なんか最近、スレ違いのレスが多いな
って言われた端からこれだもんな
- 372 :名前は開発中のものです。:2014/10/20(月) 14:15:39.93 ID:jwhsqWX+.net
- だがガチガチにコードの話だけって限定するのもあれだな
- 373 :名前は開発中のものです。:2014/10/20(月) 14:34:05.88 ID:RcYiFGCh.net
- CとC++の話だけに限定するならスレ自体要らんしな
- 374 :名前は開発中のものです。:2014/10/20(月) 14:35:40.06 ID:xrex0yYU.net
- ま話題もあんま無いしな
- 375 :名前は開発中のものです。:2014/10/20(月) 18:54:24.39 ID:+9Jsm3nb.net
- Unityとかの全く無関係な話が出なけりゃ、それでいい
- 376 :名前は開発中のものです。:2014/10/20(月) 19:20:29.41 ID:+9Jsm3nb.net
- >>331
namespaceごとにファイルを作っても全く問題はないが?
- 377 :名前は開発中のものです。:2014/10/20(月) 20:05:13.07 ID:k9NKmLW6.net
- >>375
昔Unityの話題だしてごめんな
- 378 :名前は開発中のものです。:2014/10/20(月) 20:59:37.69 ID:mkykchgR.net
- スレ違いのレスどころかレス自体ほとんどないじゃん
100レス消費するのに1ヶ月て
- 379 :名前は開発中のものです。:2014/10/20(月) 21:26:24.20 ID:GwxwpQhh.net
- ゲ製の技術系スレなんて大抵がそんなもんだろ
流れが遅けりゃ何を話題に出してもいいのか?
勢い至上主義の人は別の板に行ったほうがいいぞ
- 380 :名前は開発中のものです。:2014/10/20(月) 21:44:59.67 ID:mkykchgR.net
- ゲーム製作に関連した話題だろ
話の広がりを全て排除するオキテでもあんの?
- 381 :名前は開発中のものです。:2014/10/20(月) 22:03:31.71 ID:crBxYzk6.net
- なんとなくム板住人っぽい
- 382 :名前は開発中のものです。:2014/10/20(月) 22:07:06.42 ID:5MyCaHfJ.net
- 服や髪の毛を風でヒラヒラさせるくらいなら、
物理エンジン使うの大げさかな?
C++でスクラッチで実装してる人いる?
- 383 :名前は開発中のものです。:2014/10/20(月) 22:49:22.88 ID:T47b68DN.net
- 11月号の日経ソフトウェアに
「効果音」「BGM」「歌」はこう作る(Cubase/VOCALOIDで)
音だってプログラミング!
ってな記事があるよ
12月号が10/24発売だからチェックするなら早めにな
- 384 :名前は開発中のものです。:2014/10/21(火) 00:05:57.07 ID:rqDahQkS.net
- >>382
モーションとかで設定すんのきついからエンジンでいいんじゃ
- 385 :382:2014/10/21(火) 00:10:52.73 ID:CEedc/zF.net
- >>384
たしかに。
パフォーマンスもエンジンのほうが良さそうだし、
簡単なことでも、下手に自分で組むよりイイかも。
コリジョン全般もやらせられるし。
ありがとう、エンジン使う方向でいくわ。
- 386 :名前は開発中のものです。:2014/10/21(火) 00:35:00.20 ID:DPj+H0co.net
- 初めてOOPしてるライブラリ使ったけど楽しいな
- 387 :名前は開発中のものです。:2014/10/21(火) 22:05:55.64 ID:zLum7v8j.net
- >>386
OGREかな?
- 388 :名前は開発中のものです。:2014/10/22(水) 19:05:01.43 ID:mUYRFHNV.net
- アクションゲームのバフというか、状態異常ってどうやって処理してる?
バフがつくキャラクタークラスに「〜のバフがあったら〜」という処理を記述するのが簡単なんだろうけど、
バフの数だけキャラクタークラスの処理が増えるのってなんか変だし、
キャラクタークラスが行動しようとするたびにバフ一つ一つにチェックかけるのか・・・
- 389 :名前は開発中のものです。:2014/10/22(水) 19:22:28.97 ID:1itouT9H.net
- >>388
武器毎にキャラクタークラスの処理増えてるわけじゃないだろ?
それと同じだよ
- 390 :名前は開発中のものです。:2014/10/22(水) 20:23:54.50 ID:WiWK8TWz.net
- バフってどこで流行ってる言葉なん初めて聞いたんだが
- 391 :名前は開発中のものです。:2014/10/22(水) 20:26:43.81 ID:eqXGTzBz.net
- もう十年以上前から、MMORPGで使ってたよ。
ステータスを一時的にパワーアップするのをバフ、
逆にパワーダウンするのをデバフって。
- 392 :名前は開発中のものです。:2014/10/22(水) 20:36:40.39 ID:T1nolpti.net
- 最近はMMO流行ってないからなあ
- 393 :名前は開発中のものです。:2014/10/22(水) 21:44:48.22 ID:hFcfDOrV.net
- MMOからの輸入だと思うけど、ここ数年はMMO以外でも結構聞くなあ
- 394 :名前は開発中のものです。:2014/10/22(水) 22:31:22.09 ID:U9EexPEj.net
- >>389
モンハンとか武器ごとに増えてない?
最近は10秒以内に他のデバフを食らわないと即死するデバフとか、特定の属性の敵に攻撃力2倍とか、3秒に一回キャラクターの行動を中断する麻痺デバフみたいな、
単純なステータス操作じゃないものが多くて、そういうの視野に入れて作ろうかなと
そういや構造って、
ゲーム起動時にstatic変数としてバフのインスタンスを持っておいて、キャラクターのポインタとバフの残り時間を与えれば結果を返してくれるようにするのか、
キャラクターにバフがついた瞬間インスタンス化して、バフが消えた瞬間deleteするようなクラスを作るか
どっちがいいんですか?
- 395 :名前は開発中のものです。:2014/10/23(木) 08:02:34.39 ID:I+oJL2c7.net
- そりゃステートパターンよ
- 396 :名前は開発中のものです。:2014/10/23(木) 08:15:05.80 ID:s5Cm5p+v.net
- 【毒】と【放心】と【催淫】が同じキャラにかかった場合とか考えると
クラスに自殺機能的なものを持たせつつ、キャラごとにリストで持っておきたいなあ。
あー、でもフィールド自体にスリップダメージ効果、みたいなパターンもあるか。
- 397 :名前は開発中のものです。:2014/10/23(木) 09:46:02.30 ID:VAxuJujr.net
- それはバフの自殺条件に「指定範囲から外れた時に消滅する」って条件が出来ればおkなはず
そうするとバフが欲しい情報はマップ上にあるオブジェクトのリストと、キャラクターのポインタと、時間かな
ゲームの仕様にもよるけど大体この3つ安定
- 398 :名前は開発中のものです。:2014/10/23(木) 09:46:44.49 ID:VAxuJujr.net
- >>395
ステートパターンだと一つしか状態異常かからなくない?
ポケモンなら一つだけど
- 399 :名前は開発中のものです。:2014/10/23(木) 10:02:49.79 ID:s+t98wQk.net
- フィールドのスリップダメージは状態異常じゃなくて衝突イベントで処理すれば
- 400 :名前は開発中のものです。:2014/10/23(木) 13:23:41.02 ID:noQ9gUlZ.net
- >>394
そういうの作るほうは大変だけどユーザにウケるか、手間に見合うかというと、う〜ん
かえってわかりにくいと敬遠されかねない
その点討鬼伝のミタマはうまくやったなと思う いろいろな意味でw
- 401 :名前は開発中のものです。:2014/10/23(木) 17:30:00.96 ID:I+oJL2c7.net
- >>398
ステートパターン+配列でいいじゃん?
ゲームの仕様側を単純化しないと実装の複雑化はさけられないぞ
std::vector<State*> state_list;
state_list += new Poison();
- 402 :名前は開発中のものです。:2014/10/23(木) 19:43:01.60 ID:I0e3Ds/C.net
- 仕様はカッチリ決めといた方が設計はしやすいな
なんでもありを想定して作って結局あんまり使わないなんてムダだし
- 403 :名前は開発中のものです。:2014/10/23(木) 21:28:12.43 ID:qInVWJ1L.net
- 【毒】を放置しておくと【猛毒】になるとか、
そういうのが無くてもStateパターンって便利?
- 404 :名前は開発中のものです。:2014/10/24(金) 00:54:44.36 ID:jy1RY2Vz.net
- ステートはしぬほど楽
- 405 :名前は開発中のものです。:2014/10/24(金) 20:11:21.11 ID:ddPt2zGi.net
- イベントで処理出来ないかな
スリップダメージならイベント処理時にダメージ&継続判定して再度イベント投げるみたいな
オーバーヘッドでかそうだけど汎用性はある気がする
- 406 :名前は開発中のものです。:2014/10/24(金) 22:30:58.39 ID:LvhDFXW3.net
- >>405
オーバーヘッドとかそう言うのはプロファイラで測ってから言いなさいな
普通、負荷がかかるのはもっと重い処理の部分でしょ
- 407 :名前は開発中のものです。:2014/10/25(土) 03:42:15.96 ID:fVKGIfTf.net
- オーバーヘッドは本来の処理とは関係ない所で発生する計算コストの事で相対的な話でしょ
- 408 :名前は開発中のものです。:2014/10/25(土) 07:52:10.14 ID:NLLH5JYR.net
- オーバーヘッドキックなら知ってるぞ
- 409 :名前は開発中のものです。:2014/10/26(日) 16:26:16.62 ID:RQv84B/3.net
- >>407
だからそのオーバーヘッドが大きいかどうかはそこがネックになってるかどうかで判断しろって言ってるんでしょ
- 410 :名前は開発中のものです。:2014/10/26(日) 17:41:30.80 ID:dULlRr0t.net
- >>408
だからそれがオーバーヘッドキックかどうかはそれがキックになってるかどうかで判断しろって言ってるんでしょ
- 411 :名前は開発中のものです。:2014/10/26(日) 18:19:06.69 ID:Z5NRlQnX.net
- せやな
- 412 :名前は開発中のものです。:2014/10/26(日) 19:50:32.98 ID:YANUPprV.net
- 知ったような口を利くんじゃない
- 413 :名前は開発中のものです。:2014/10/26(日) 19:56:46.37 ID:eW7jlsGh.net
- 微妙に会話が噛み合ってない感じするな
- 414 :名前は開発中のものです。:2014/10/26(日) 22:10:45.35 ID:PTfFlHbF.net
- 相対的なコストの話だって言ってるのに全体で判断しろっておかしいでしょ
- 415 :名前は開発中のものです。:2014/10/26(日) 22:20:48.23 ID:Wgbd5x3C.net
- ボトルネックって言うけどさ、瓶はドボドボ出ない様にわざと狭く作ってあるんだよな?
- 416 :名前は開発中のものです。:2014/10/26(日) 22:37:50.70 ID:RQv84B/3.net
- オーバーヘッドの影響が大きいかどうかはって言えばよかったかね
- 417 :名前は開発中のものです。:2014/10/27(月) 22:07:07.84 ID:sM1yBz6U.net
- 俺だってオーパーツヘッドくらい知ってるよ!
- 418 :名前は開発中のものです。:2014/10/28(火) 00:30:16.35 ID:/GKC+OVC.net
- 俺もオーバーライドとオーバーロードの違いぐらいわかるよ!
- 419 :名前は開発中のものです。:2014/10/28(火) 21:29:09.92 ID:ysAm8J5x.net
- 俺なんてどっちかというと見た目がオーバーサーンだよ!
- 420 :名前は開発中のものです。:2014/10/29(水) 19:22:23.08 ID:nDYTAhVm.net
- 俺はsum41のオーバーヘッドなんちゃらっていう曲好き
- 421 :名前は開発中のものです。:2014/10/29(水) 23:42:07.72 ID:4ZmDH5l4.net
- 俺なんてゲームオーバーヘッドですよ
- 422 :名前は開発中のものです。:2014/10/31(金) 00:17:00.08 ID:nSbgcPzE.net
- みんな状態異常がなんたらとかC++で記述してる?
自分は限界を感じてC++はゲームライブラリをラップするエンジン部分だけに使って
ゲームロジック部分はLuaでできるように勉強してる
C++(エンジン) // C++(エンジン上で動作するパーツ) // Lua(パーツを利用するロジック) // Lua(モデルやイベント用スクリプト)
- 423 :名前は開発中のものです。:2014/10/31(金) 07:04:00.65 ID:m5w778wA.net
- Lua で書けるなら同じことを C++ で書けばいいだけだと思うけど
何で書くかというより設計の問題でしょ
- 424 :名前は開発中のものです。:2014/10/31(金) 10:05:54.22 ID:6bcSF0zB.net
- >>422
自分もLua使ってて今作ってるけど、ロジックはC++で組んでる(組む予定)
Luaでやるのはキャラの初期値などのパラメータ値の設定やイベントの記述、
画面背景に表示するものをLuaで記述、くらいの予定かな
>>423の人も言ってるけど、Luaで書けるならC++でも書けるから、何をLuaに求めるかだと思うけど、
自分の場合はLuaでやるメリットはリコンパイルせずにレベルデザインの動作確認を行えるようになること
ロジック部分はLuaに追い出すと速度的なデメリットが大きそうなのと、
Luaで書けるようにすること自体の工数も大きそうなのでやめた
- 425 :名前は開発中のものです。:2014/10/31(金) 12:53:25.76 ID:CfUZyuSt.net
- スクリプトの利点はコンパイルしなくても修正出来るところ
- 426 :名前は開発中のものです。:2014/10/31(金) 17:49:19.79 ID:wudHshK9.net
- 作り方によってはゲーム中にリアルタイムに変更できたりするよね
- 427 :名前は開発中のものです。:2014/10/31(金) 17:59:48.36 ID:881Z1hau.net
- コンパイルは必要だけど動的変更ならC++でも出来るけどね
- 428 :名前は開発中のものです。:2014/10/31(金) 18:15:11.72 ID:jL8HxUOw.net
- デバッガでぽちぽち変数の値いじるの?
- 429 :名前は開発中のものです。:2014/10/31(金) 18:24:36.01 ID:6bcSF0zB.net
- ゲーム中にスクリプト書き換えてリアルタイムに反映?
いらねーよw
- 430 :名前は開発中のものです。:2014/10/31(金) 19:02:05.50 ID:LbK2+I6l.net
- 今の所スクリプトは、用途に応じて別のスクリプトを作って使ってるな
3種類ほど
一つはシナリオとかのイベント管理用
一つはレコード単位のデータ管理用
一つはツリー構造のデータ管理用
- 431 :名前は開発中のものです。:2014/10/31(金) 19:18:37.90 ID:oJQR+l+C.net
- ・高速なコンパイル
・クラスとヘッダーに分けなくていい
・importはC/C++のincludeより使いやすいと思う
C/C++だとどれをインクルードすべきか調べないと分からない事もあるし
・ネイティブの部分だけ予めコンパイルしておけば、変更したコードを複数のデバイスですぐにデバッグ可能
・GCでメモリ管理が自動に
・リフレクションでクラスの情報に実行時アクセス
・実行時の式評価(デバッグに使う)
実行時コード編集は確かにあまり役立ってないかも
デリゲート・・・はC++11なら使えるのか
- 432 :名前は開発中のものです。:2014/10/31(金) 19:23:51.37 ID:GqyQ4J03.net
- >>429
実行中に変更出来ないと一回落として変更して同じところまで進めないといけないから
レベルの調整とかしてるとめちゃくちゃめんどい
- 433 :名前は開発中のものです。:2014/10/31(金) 19:24:16.18 ID:LbK2+I6l.net
- VB.netのスレはここじゃないんだが?
- 434 :名前は開発中のものです。:2014/10/31(金) 19:32:27.85 ID:6bcSF0zB.net
- >>432
まあ半分わかるけど、相当規模が大きなものじゃないといらないし、
代替としてその環境を作るスクリプトも組めるし、
途中で変えちゃったら、ユーザーがほんとにその条件に辿り着けるのかテストにならないから
やっぱりいらないな
- 435 :名前は開発中のものです。:2014/10/31(金) 20:11:52.54 ID:GqyQ4J03.net
- >>422
ロジックをスクリプトで記述するなら汎用ゲームエンジンでいい気がするな
Unityとかめっちゃお手軽よ
- 436 :名前は開発中のものです。:2014/10/31(金) 20:42:19.68 ID:3MYWoAmv.net
- スクリプト言語はやっぱ、コルーチンが使える点が良いよね?
- 437 :名前は開発中のものです。:2014/10/31(金) 20:58:16.81 ID:qWph+yLX.net
- yieldってなんて読むの
- 438 :名前は開発中のものです。:2014/10/31(金) 22:36:22.81 ID:ARi4wFqk.net
- ヨィールドって脳内再生してうr
- 439 :名前は開発中のものです。:2014/10/31(金) 22:57:08.23 ID:oJQR+l+C.net
- >>437
いーるどぅ
- 440 :名前は開発中のものです。:2014/10/31(金) 22:59:35.82 ID:r+epGFzI.net
- インバースキネマティクスについて書かれている書籍知りませんか?
- 441 :名前は開発中のものです。:2014/10/31(金) 23:09:11.23 ID:BXR79UmA.net
- >>440
シューティングゲームアルゴリズムマニアクスにあったように記憶してる。
手元にないから確かじゃないけど。
- 442 :440:2014/10/31(金) 23:15:42.18 ID:r+epGFzI.net
- >>441
ありがとうございます!
その本は持っているのですが、IKについて書かれていることに気付きませんでしたw
コードも書いているので参考になりそうです。
他の本も、ご存知の方がおられたら是非教えてください。
- 443 :名前は開発中のものです。:2014/11/01(土) 01:19:56.78 ID:/W7J7qqw.net
- >>442
最近読んだのだとこれ
XNAのソースがサンプルであるけど今はXNA自体が使えない
http://www.borndigital.co.jp/book/94.html
- 444 :440:2014/11/01(土) 01:22:56.00 ID:THgSKMXt.net
- >>443
ありがとうございます!
XNAでも参考にはなると思うので買ってみます。
- 445 :名前は開発中のものです。:2014/11/01(土) 10:44:08.91 ID:oqeDiPeW.net
- AがtrueならB、falseならC
BがtrueならD、falseならE
DがtrueならF、falseなら・・・
という感じで
if (A) {
if (B) {
if (D) {
F();
} else {
G();
}
} else {
E();
}
} else {
C();
}
というようなことになってしまいます
例えばAがゲーム開始フラグ、Bがプレイヤー出現フラグ、Dが敵出現フラグという時
最初にC()でカウントを回してAをtrueにしゲーム開始
E()でカウントを回してプレイヤーを出現
G()でカウントを回して敵を出現
F()でバトル開始
のような感じになるのですが、どうすればいいのでしょう
あまり良くないですがswitch caseなどでもいいのかなと考えてます
- 446 :名前は開発中のものです。:2014/11/01(土) 11:05:49.01 ID:/W7J7qqw.net
- >>445
ステートパターン使うといいよ
IStateを実装した開始ステート、敵出現ステートなどをつくって、
unique_ptr<IState> state = make_unique<InitialState>();
while ...
state->update();
if (state->next)
state = state->next;
- 447 :名前は開発中のものです。:2014/11/01(土) 16:11:10.84 ID:XJ9qlDD+.net
- 普通のクラスだったらプレフィックスにCってつける?
- 448 :440:2014/11/01(土) 17:17:01.83 ID:THgSKMXt.net
- >>443
買ってきました!
とても詳しく書かれていて大満足です。
ありがとうございました!
- 449 :名前は開発中のものです。:2014/11/02(日) 01:02:23.40 ID:p7Beypyf.net
- >>446
やっぱりStateパターンが良いですよね
ありがとうございます
- 450 :名前は開発中のものです。:2014/11/02(日) 10:54:46.91 ID:F1N1A3wT.net
- Stateパターンと
Strategyパターンって
コードの書き方はまったくと言っていいほど同じじゃないですか?
Stateは状態的な切り替え、
Strategyは機能的な切り替え、
というふうに、どういう使い方をするかで名称が別れてるということですか?
- 451 :名前は開発中のものです。:2014/11/02(日) 12:52:42.92 ID:2+iLF1K9.net
- ストラテジーはアルゴリズムの切り替え
状態遷移はストラテジーっぽい
- 452 :名前は開発中のものです。:2014/11/02(日) 13:07:10.08 ID:nNeu0fIH.net
- どういう意図で組んでるか?という情報は
後から見た時に結構重要だったりするよね
- 453 :名前は開発中のものです。:2014/11/02(日) 13:26:08.13 ID:bYY9FFGo.net
- だよなぁ
例えば遷移だと>>446のやり方はそれぞれのStateの中で自分に関係する遷移条件と遷移先だけ指定するから
ソースを見ただけじゃ全体の遷移一覧がぱっと見えてこないんだよなぁ
- 454 :名前は開発中のものです。:2014/11/02(日) 20:23:50.79 ID:rvNm7bLn.net
- ソースに依存関係が少ないて部分では良い事だろ
偏移状態はUMLなりその他の手段で伝わればいい
- 455 :名前は開発中のものです。:2014/11/02(日) 20:58:59.62 ID:F1N1A3wT.net
- 状態遷移を記述するのに優れた外部ソースを読み込ませれば
その通りに動くっていう仕組みはスマートで憧れるなぁw
動かす側(エンジン側)のC++コードは一切変更しないでいい。
- 456 :名前は開発中のものです。:2014/11/02(日) 21:39:22.79 ID:2+iLF1K9.net
- 何を言ってるのかわからない
- 457 :名前は開発中のものです。:2014/11/02(日) 23:03:44.43 ID:nU5X7LHx.net
- Lua使えってことだろ
- 458 :名前は開発中のものです。:2014/11/02(日) 23:46:34.29 ID:bYY9FFGo.net
- WebアプリのフレームワークみたいにXMLでできたら良いなってところか
- 459 :名前は開発中のものです。:2014/11/03(月) 11:18:44.11 ID:awPRm7Lk.net
- >>445の例みたいに順番に実行するだけの処理でstateパターンはちょっと大袈裟な気がする
各処理に番号付けてswitchで振り分けながら順番に処理した方がまだ見通しよくなりそう
- 460 :名前は開発中のものです。:2014/11/03(月) 12:22:49.27 ID:h2Nq+Bdg.net
- 内容と関連の無い連番の関数名て最悪のパターンじゃないか
- 461 :名前は開発中のものです。:2014/11/03(月) 12:27:51.68 ID:DUvfBBxq.net
- まぁ、単純なステートで、かつ、再利用も考えないなら、ハードコーディングしちゃってもいいと思うけどね。
- 462 :名前は開発中のものです。:2014/11/03(月) 13:23:55.34 ID:EKtPAmoI.net
- 関数ポインタの配列とかステートパターンとか
1行ですっきり書けてかっこいいと思ってやってるんだろうけど
結局デバッグするときにどの関数が実際に呼ばれてるのか
分かりにくくなったりするだけなんだよなあ
状態変数使ってifelseとかswitchの方が分かりやすいし
そもそも状態遷移の処理なんかそんなに頻繁に書き換えないし
状態遷移の処理で致命的なバグになって開発が頓挫なんてしないし
結局プログラマーのオナニーでしかないんだよなあ
ファミコンなんかクラスどころか関数すらないのに神ゲーいっぱいあったわけで
オナニーに精力を出すくらいならもっと内容に力入れてよ
- 463 :名前は開発中のものです。:2014/11/03(月) 13:31:20.68 ID:DUvfBBxq.net
- デザインパターンとか、スマートさと複雑さのトレードオフなところあるし、バランスが難しいよね。
ベタな書き方で十分なら、それでいいところは多いね。
- 464 :名前は開発中のものです。:2014/11/03(月) 13:33:27.09 ID:Haa+1SS6.net
- まあ気分よく作業できるってことも重要だよ
他人と共同で作業してたりコードレビューしたりしないなら好きにすればいいさ
多少のわかりにくさはコメントでカバーすることもできるし
それが原因で時間かかっていつまで経っても完成しないとかだと目も当てられないが
- 465 :名前は開発中のものです。:2014/11/03(月) 13:33:31.87 ID:TMDXQf53.net
- でもOOP楽しいじゃん?
- 466 :名前は開発中のものです。:2014/11/03(月) 13:36:09.35 ID:DUvfBBxq.net
- >>465
楽しいねw
ポリモーフィズムで、ほとんどコードをいじることなくなった基幹クラスがあることが嬉しいw
場合によってはベタ書きのほうが総合的にイイなぁ、と思うところも多々あり。
- 467 :名前は開発中のものです。:2014/11/03(月) 15:20:17.50 ID:awPRm7Lk.net
- >>460
関数名じゃなくて数値と対応付けてswitchで処理するって事
複数のboolで分岐してるのをintひとつでやる感じ
列挙型でやればコードも見やすいかも
そもそも関数名でswitchなんて出来ないしね
- 468 :名前は開発中のものです。:2014/11/03(月) 15:42:10.04 ID:LRPNDOfH.net
- 簡単なトランスレータ(プリプロセッサ)を挟む事で、列挙型と感数名を
自動的に対応付けてCのソースコード生成とか、昔からよくあるサボりテク
STGの敵キャラや弾みたいな、簡易なシーケンシャル制御では重宝するかと
- 469 :名前は開発中のものです。:2014/11/03(月) 15:42:40.12 ID:LRPNDOfH.net
- 感数名→関数名
- 470 :名前は開発中のものです。:2014/11/03(月) 16:29:35.49 ID:almwUFeG.net
- 関数ポインタじゃなくて関数オブジェクトにしてメンバに名前を持たせればいいだけの話だと思うがなぁ
- 471 :名前は開発中のものです。:2014/11/03(月) 16:38:51.58 ID:w8rbKk4K.net
- C++の話だよね
Cならまだしも、C++で関数ポインタって使いにくいと思うんだけど
非staticなメンバ関数使おうとしたらめんどくさいし(function<...>とかあるけど)
あと一口に状態遷移っていっても
アクションゲームの敵とか、個々のゲーム内オブジェクトの動作みたいな規模と
RPGでのフィールド/メニュー/先頭シーンの切り替えみたいな規模のものがあるけど
それによっても求められる要件は結構違ってくるんじゃないか
- 472 :名前は開発中のものです。:2014/11/03(月) 16:47:13.78 ID:6bdXEtlk.net
- 関数ポインタの配列とenumで分岐するくらいならC++やめて純粋なCでやったら?
関数付き構造体としてしかC++使えていないだろうし
- 473 :名前は開発中のものです。:2014/11/03(月) 17:15:54.38 ID:awPRm7Lk.net
- c++はマルチパラダイムだしむしろOOPしか認めないならJAVAでやったら?
少なくとも>>445の例でstateパターンが最適とは思えない
- 474 :名前は開発中のものです。:2014/11/03(月) 17:30:10.15 ID:s5EHYVPL.net
- 例えば
http://boost.cppll.jp/HEAD/libs/mpl/doc/paper/mpl_paper.html
の、「5. 例: コンパイル時 FSM ジェネレータ」の辺りを読んでみると
>>445が抱いた疑問に対して、わりと明瞭に答えているような気が
しないでもない
「ネストしたif(またはswitch-case)を使ってFSMの構造を実装する
ことは特に間違いではないが」というように、状況によって最適な
実装は変わるんだよね
- 475 :名前は開発中のものです。:2014/11/03(月) 17:38:52.31 ID:EKtPAmoI.net
- 馬鹿の一つ覚えでステートパターン覚えたら
ステートパターン使ってない奴を見下し軽蔑し
ステートパターンを使うことを強要してくる
こういうやつがいるからソースコードをgithubに公開とかする気が失せるんだよなあ
日本人てほんと頭悪い民族なんだなと思う
- 476 :名前は開発中のものです。:2014/11/03(月) 17:40:45.30 ID:DUvfBBxq.net
- 何で日本人はそうなんだろうか?
- 477 :名前は開発中のものです。:2014/11/03(月) 17:43:52.24 ID:71HprTRF.net
- 公開されてるコードにステートパターンを強要されたことがあるのか
すごいなその日本人ってやつは
- 478 :名前は開発中のものです。:2014/11/03(月) 17:49:10.69 ID:s5EHYVPL.net
- そういうの余所でやってくれませんかね(お願い)
- 479 :名前は開発中のものです。:2014/11/03(月) 17:56:31.99 ID:Z17rldcf.net
- 正解なんてないんだし綺麗に整ってればなんでもええわ
商業ならそうもいかないだろうけど
- 480 :名前は開発中のものです。:2014/11/03(月) 18:00:07.61 ID:eKZugS4h.net
- 我流でゲーム作ってたら、確かに作れるからいいんだけど「私はC++が使えます」ってスキルアピールできないんだよな。
他人のソース全く意味わからないし。
- 481 :名前は開発中のものです。:2014/11/03(月) 18:26:59.05 ID:EKtPAmoI.net
- メッセンジャーとかでも外人は普通に顔写真フルネーム公開だが
日本人は絶対写真出さないしニックネームだからな
ネットゲームでも外人は気さくに話しかけてくるが日本人は基本無口だからな
晒しとか陰湿な行為を行うのは日本人という民族が劣ってるからなんだろう
- 482 :名前は開発中のものです。:2014/11/03(月) 18:34:22.56 ID:Z2NKRK1e.net
- で、ID:EKtPAmoI はもちろん日本人だよね?
もっと自分に自信を持ったら?
- 483 :名前は開発中のものです。:2014/11/03(月) 19:12:02.78 ID:LRPNDOfH.net
- お引き取りください
- 484 :名前は開発中のものです。:2014/11/03(月) 21:02:33.52 ID:6bdXEtlk.net
- C++入門書に書いてある程度のことが分からなくて逆切れなん?w
頭悪いし才能ないから諦めたほうがいいよ
- 485 :名前は開発中のものです。:2014/11/03(月) 21:22:08.07 ID:/5RkG39n.net
- よしなよ
- 486 :名前は開発中のものです。:2014/11/03(月) 21:41:28.69 ID:DUvfBBxq.net
- やめなよー
- 487 :名前は開発中のものです。:2014/11/03(月) 21:47:10.70 ID:awPRm7Lk.net
- >>484
だからJAVAやってればいいじゃん
君にネイティブ言語はちょっと難しいんじゃないかな
- 488 :名前は開発中のものです。:2014/11/03(月) 23:31:40.14 ID:6bdXEtlk.net
- ネイティブ言語わろた
継承ひとつ理解できないおつむじゃ諦めたほうがいい
もしくは独自のヘンテコなやり方をしたければ、ここで披露せずに一人でやっていなさい
- 489 :名前は開発中のものです。:2014/11/03(月) 23:48:43.67 ID:kGGiNKfp.net
- stateパターンって、クラスつくるよりenumのメンバ追加の方が楽でいい。
でもstateパターン作るなら、状態遷移図は別にドキュメントを作る必要があると思う。
テーブルでやる場合はソースだけでもいいが、抜けがないかの確認がしにくい。
階層型の状態遷移はどうやるといいのだろうか。nestが2階層とか決まってたらまだいいけど、
自由に階層作りたいとか。
- 490 :名前は開発中のものです。:2014/11/03(月) 23:51:38.06 ID:kGGiNKfp.net
- 状態遷移はluaのコルーチンとかでやった方がいいのだろうか?
コードも見やすく、変更も動的にできるし。
- 491 :名前は開発中のものです。:2014/11/04(火) 00:05:07.98 ID:zm0bWhhE.net
- なんで大手が採用してるか考えたら自明の理
- 492 :名前は開発中のものです。:2014/11/04(火) 00:09:15.45 ID:8wIs/lt8.net
- 独り言が激しいな とりあえず階層型の状態遷移に話の焦点を絞ると、
親階層を子階層から遷移させる手法が考えどころになるだろうね
自分は独自のやり方でやってるけど、一般的にはどういうやりかたが
推奨されて普及しているのかよく分からない
- 493 :名前は開発中のものです。:2014/11/04(火) 00:40:17.63 ID:ROF6NvON.net
- コンパイルが待てないほど大きいの作るの?
- 494 :名前は開発中のものです。:2014/11/04(火) 01:00:57.23 ID:gmdSbkqZ.net
- 自分のコードは大した量じゃなくても、ライブラリいっぱい使ってるとリビルド数分とか普通にかかる
- 495 :名前は開発中のものです。:2014/11/04(火) 01:25:54.32 ID:eIlBUMlD.net
- boostのcoroutineとかcontextとかをゲーム製作で使ってる人いる?
興味があるので、できれば試用感を教えてほしいんだけど
- 496 :名前は開発中のものです。:2014/11/04(火) 02:14:53.36 ID:zm0bWhhE.net
- コンパイルが待てないからスクリプト組み込むとか、
ライブラリいっぱい使うと時間がかかるとか、
なんでアホな話になるかね。
外部データとして扱えることが最大の利点だろうに。
移植のこととか考えてないんかねこの人たちは。
- 497 :名前は開発中のものです。:2014/11/04(火) 02:17:27.43 ID:ROF6NvON.net
- 趣味だもの
- 498 :名前は開発中のものです。:2014/11/04(火) 02:33:18.69 ID:zm0bWhhE.net
- ついでに、Luaじゃなくても別にかまわないがスクリプトでコルーチンを実装すると、
シーケンシャルな書き方で >>445 を書けて
GameStart();
ShowPlayer();
ShowEnemy();
BattleStart();
てことで、定型の処理は隠ぺいして保守しやすくスッキリ見通せる。
さらにスクリプトからスクリプトを生成して動的に実行するということも可能になるんで
非常にフレキシブル。
boostのコルーチンは使ったことない。
- 499 :名前は開発中のものです。:2014/11/04(火) 06:57:09.55 ID:64bWIxQw.net
- >>496
逆にC++だと移植大変だったりする?
OSのAPI以外でもコードに差って出たりするの
- 500 :名前は開発中のものです。:2014/11/04(火) 13:13:42.12 ID:8wIs/lt8.net
- コルーチンとかコマンドパターンのベースクラス作れば同じことだし
コンパイル時間云々もDLLにすれば解決するよ
俺的には、Luaはユーザーに自作マップとかMODを作らせるものだと思ってる
洋ゲーだとMODツールキットにLuaがよく使われているしな
- 501 :名前は開発中のものです。:2014/11/04(火) 20:36:39.38 ID:zm0bWhhE.net
- >>499
C++の中にハードコーディングしたイベントだらけだったら、
コードを把握するのも大変で移植するのに萎えないか?
その点実行部分とスクリプトで明確に分けれるのが大きい。
実行部分は作る人が仕様に沿ってつくるだけだし、どのプラットホームでも共通のスクリプトにできる。
ちなみにLuaはANSI C準拠なんで、C++がダメな環境でもOK。
- 502 :名前は開発中のものです。:2014/11/04(火) 21:00:59.89 ID:xgvPL05X.net
- それ移植どうこうとまた別問題じゃね
コード把握するの大変だけど移植するわけじゃないからおkとはならないでしょ
- 503 :名前は開発中のものです。:2014/11/04(火) 21:03:11.80 ID:IS/2iQRa.net
- 結論先にありきのデタラメばかり
移植以前に完成したことないだろ
- 504 :名前は開発中のものです。:2014/11/04(火) 21:09:55.86 ID:zm0bWhhE.net
- 普通にandroidとPCで出してるが、
とりあえず、>>503はどういう方法でゲーム作っているのか書いてから
どこら辺がデタラメか指摘してもらえるかな?
- 505 :名前は開発中のものです。:2014/11/04(火) 22:19:13.99 ID:8wIs/lt8.net
- ハードコーディングと移植性に何の関係もないことくらい移植したら分かるだろ
見栄を張って嘘をついてもすぐにばれてしまうというこったw
- 506 :名前は開発中のものです。:2014/11/04(火) 22:42:12.25 ID:Jn/miYsu.net
- ステートパターンだけど、
AIの行動パターンを制御する時みたいに、それぞれのステートが
共通の値(現在HPとか)を参照できる状態(ステート固有の値は持たない)で、
実行される処理だけ切り替えたい場合と、
シーンの切り替えみたいに、ステート固有の値を保管してシーンをスタックに詰んで戻ってきたい場合と、
実装方法は>>446で同じだけど、明確に意味が違うとして別クラス(インターフェース)にすべきだよね?
- 507 :名前は開発中のものです。:2014/11/04(火) 22:46:48.54 ID:zm0bWhhE.net
- 何言ってんだ?
外部にスクリプトで記述していたら、本体は機種依存や特殊な部分だけ移植すればいいだろうが。
ハードコーディングなんぞしてたら移植するたびに作り直しじゃないか。
- 508 :名前は開発中のものです。:2014/11/04(火) 22:48:00.93 ID:2N3psa7J.net
- >>506
するべきだと思う
じゃないとシーンの制御にAIのオブジェクト渡せるみたいなわけわからん事になる
- 509 :名前は開発中のものです。:2014/11/04(火) 23:07:53.61 ID:K2k2Os5b.net
- イベントなんかをハードコーディングすると機種依存が発生するって言ってる?
- 510 :名前は開発中のものです。:2014/11/04(火) 23:17:05.61 ID:zm0bWhhE.net
- 極端なたとえ話をすると、エミュを作成する場合で
ゲーム固有のイベントをその汎用的なエミュに組み込むのか?組み込まないだろ?というのとあまり変わらない。
- 511 :名前は開発中のものです。:2014/11/04(火) 23:18:46.07 ID:2N3psa7J.net
- もうUnity使えばいいんじゃないかな
- 512 :名前は開発中のものです。:2014/11/04(火) 23:36:33.23 ID:rDud6J5G.net
- 移植するつもりがあるなら移植を考えたコードにすりゃいいし
別に移植考えないなら考えてないコードでもいいんじゃない?
まぁどっちでも好きな様にすりゃいいんだけど
- 513 :名前は開発中のものです。:2014/11/04(火) 23:41:58.41 ID:K2k2Os5b.net
- やっとわかったけど
多分大抵の人はスクリプトの用途をもっと限定的なものとして話してると思うわ
- 514 :名前は開発中のものです。:2014/11/04(火) 23:48:24.99 ID:zm0bWhhE.net
- 分かりにくくてスマンかった。ついでに移植で話がそれたのもスマンかった。
要はstateパターンやswitch振り分けのほかにDSLという選択肢を示したかっただけ。
- 515 :名前は開発中のものです。:2014/11/04(火) 23:50:26.53 ID:GMRH/mFP.net
- もうエンジン部分以外はほとんどスクリプトでいいと思うけどね
処理速度が必要な部分が判明したときだけコードをC++に移すかんじで
FFCCはソース見当たらなかったがほとんどがスクリプトだったと見た記憶がある
http://www.inside-games.jp/article/2009/09/07/37504.html
http://game.watch.impress.co.jp/docs/20080224/ffcc.htm
- 516 :名前は開発中のものです。:2014/11/04(火) 23:52:06.45 ID:8wIs/lt8.net
- >>507
スクリプトを使うかどうかと何の関係もないのだがw
ボロがでるばかりwww
- 517 :名前は開発中のものです。:2014/11/05(水) 00:01:59.05 ID:23olDi5X.net
- >>515
まさにそう。使ってるライブラリが開発停止になっても、エンジン部のすげ替えもできるし。
>>516
キミは分からないならもういいよ、独自の路線を走ってくれw
たぶん一人だけで開発してるだろうから、いまのままでも特段不便はないだろ。
- 518 :名前は開発中のものです。:2014/11/05(水) 00:12:09.01 ID:mDgxc5Qo.net
- まず、OSやOpenGLのAPIをアプリロジック内にハードコーディングしちゃうアホとか君だけだからね
それと組み込みスクリプト言語を使用することに何の関連性も無いのよ
- 519 :名前は開発中のものです。:2014/11/05(水) 00:21:14.06 ID:23olDi5X.net
- 薄いラッパー書いて使ってるが何か?w
で、俺の主張は>>514だが、キミの主張はなんなの?過去発言から意図が見えないのだが?
単に俺に突っかかって来るだけなら、相手しても無駄なので遠慮したいんだが。
- 520 :名前は開発中のものです。:2014/11/05(水) 00:27:01.07 ID:mDgxc5Qo.net
- 嘘デタラメを書き散らすウザイやつを笑ってるだけだよ
あまり背伸びをするなよw
- 521 :名前は開発中のものです。:2014/11/05(水) 00:28:29.32 ID:23olDi5X.net
- ああ、そうw
- 522 :名前は開発中のものです。:2014/11/05(水) 00:36:27.94 ID:mDgxc5Qo.net
- かくしてスクリプト言語を使わないと移植が困難になるとかいう根拠なきトンデモ説が論破され
しったか君が大恥をかいたのであった♪
- 523 :名前は開発中のものです。:2014/11/05(水) 00:45:38.59 ID:/iQIEZEB.net
- ゲーム自体をスクリプトでつくれば移植するときエンジンを交換するだけで済むって話でしょ
前提が共有できてないのに知ったか吹いてると大恥かくよ
- 524 :名前は開発中のものです。:2014/11/05(水) 00:50:14.08 ID:IdGIx4uz.net
- ってか、スクリプト使ってる人って多いのかな?
個人で作る小規模ゲームでもよく使われるの?
オールC++の人も多いのかな?
- 525 :名前は開発中のものです。:2014/11/05(水) 00:55:37.53 ID:x4hCla17.net
- 交換だけったって結構C++で書き換えるコードもアリそうだけどな
移植先がC++ならOSのAPI叩く部分とエンジン駆動部分を綺麗に分離しとけば、
移植性に関しては大して変わらないようにも思うし、
スクリプトの最大のメリットが移植性とか言われるとやっぱすごい違和感在るわ
つうかゲーム自体をスクリプトで書くならもうすでにこのスレで話す内容じゃないな
- 526 :名前は開発中のものです。:2014/11/05(水) 00:56:41.89 ID:mDgxc5Qo.net
- マルチプラットフォームのエンジンなりラッパーを挟めば何も交換する必要もない
遂にその程度のことも分からなかったID:23olDi5Xが大恥かいたということだね
- 527 :名前は開発中のものです。:2014/11/05(水) 01:16:22.19 ID:IsY3AQRw.net
- winのしか作る気ないしな
c++だけで何の問題もない
- 528 :名前は開発中のものです。:2014/11/05(水) 01:19:11.85 ID:IdGIx4uz.net
- 自分もC++/Win/DirectXオンリー派。
移植とか気にせんでえーし楽だ。
- 529 :名前は開発中のものです。:2014/11/05(水) 01:33:14.61 ID:1mW5bpIr.net
- スクリプトは覚えるのめんどくさいかもしれんけど便利だよ
データの分離は常識だけど、それをさらに進めて制御も分離できる
データとそれを使うコードは密接なことも多いから
まるごと分離できると何も考えなくて済むし
- 530 :名前は開発中のものです。:2014/11/05(水) 02:09:12.31 ID:23olDi5X.net
- >>525
いや、>>496 で言ってるように最大の利点はデータとして分離できること。
移植が注目されてるが、質問から思わず伸びたに過ぎない。利点の一つではあるが。
ちなみに>>422は俺ではないが、ほぼ同じ経緯をたどっているね。
特に複数人で開発するときスクリプトはかなり便利。
割と簡単に使えるようにしてから、デザイナーが演出とかいろいろ直接いじったりできる。
※あいつら、結構シビアなんでいちいち要求に応じて、こっちで作業してたらめんどくっさい。
また、前は書き換え専用の実行ファイル持ってたが、
データとしてゲーム部分を持っているのでリリース後、ゲーム中にアップデートすることもできる。
某プロテクトの関係で実行ファイルを書き換えられないので、これ地味に結構良い。
- 531 :名前は開発中のものです。:2014/11/05(水) 02:22:26.32 ID:23olDi5X.net
- >>529
ほんとこれだね
- 532 :名前は開発中のものです。:2014/11/05(水) 02:24:59.33 ID:IdGIx4uz.net
- なるほど。
覚えとこ。
- 533 :名前は開発中のものです。:2014/11/05(水) 03:13:21.00 ID:H18oW5WU.net
- スクリプトってよくわからない。素人で申し訳ないが。
例えばキャラクターの行動を外部データ(テキスト形式)で設定するとして、俺がどうやろうかと考えると
テキストを読み込む→書かれてた文字を判定→それに従ってキャラを設定する
という単なる外部データ読み込み処理になるわけだけど、
これだと特に意識しない限り独自形式でやることになるから、スクリプト言語とか関係なくなる。
んじゃよく聞くスクリプト言語ってのはなんなんだと考えると
誰かが考えたスクリプト言語にしたがって自分で実行プログラムを組んでいる?
しか思いつかないんだが、これだとあまりにも非効率で、一般に広まるとは考えにくい。
んじゃライブラリみたいな形で配布されてるの? とも思うんだが、それを自分のプログラムに組み込むのって
最初に挙げた、自分の独自形式でテキスト読み込むほうが楽でしかも早くね? と思ってしまう。
- 534 :名前は開発中のものです。:2014/11/05(水) 04:02:31.79 ID:23olDi5X.net
- テキスト読んで設定するだけでも立派なスクリプト。
独自だろうが何だろうが、スクリプトを見て処理の流れが一発でわかるとベスト。
ノベルゲーのテキスト処理のスクリプトは想像しやすいんじゃないかな?
これはいくらなんでもハードコーディングはしないでしょ。
ただ、自分で四則演算や変数・関数を実装しようとすると、
テキストの構文解析、意味解析、スタックマシン等を勉強して
yaccやbisonでコンパイラを作る大変な羽目になる。
んで、そんなことせずとも簡単にそういう機能を組み込めるように
LuaやSquirrelがある。それにこの二つはメジャーで、かなり広まってる。
- 535 :名前は開発中のものです。:2014/11/05(水) 04:45:23.73 ID:vpLYRihW.net
- BulletMLとか、こういう説明には向いてそうな感じがする
- 536 :名前は開発中のものです。:2014/11/05(水) 07:24:36.56 ID:gZJGpYil.net
- テキスト形式のデータ構造とスクリプト言語を同一視するのは、なんだかな
xmlとかをデータ構造と言われると納得できるがスクリプト言語と言われるとなんかモニョる
いや、スクリプト言語をデータ構造として使える事は理解しているし、
データ構造をスクリプト言語の代わりとしては使えない事も理解しているが……
- 537 :名前は開発中のものです。:2014/11/05(水) 08:24:52.84 ID:JAMPZGh3.net
- ノベルゲームの場合はプログラミング言語としてのスクリプトって言うかまんま台本だな
- 538 :名前は開発中のものです。:2014/11/05(水) 08:58:45.06 ID:Tq/w+cMa.net
- ノベルゲーごときにこんな議論してたのか
通りでスレの流れが理解できんわけだ…
- 539 :名前は開発中のものです。:2014/11/05(水) 19:54:47.73 ID:LE8Hhxvh.net
- >>533
キャラクターの行動を記述できるような表現力のある
実質的にスクリプト言語と呼んで良いようなものを簡単に書けるなら
他の人が作ったものを学習して使う方が面倒に思うのでは
他の人が作ったスクリプト言語を使うにしてもブラックボックスで使うのと
中身を検査して使うのとでは手間が大幅に違う
まだお互いに無意識な認識の違いがかなりあるのではないか
- 540 :名前は開発中のものです。:2014/11/06(木) 01:14:24.74 ID:u3pLa7VG.net
- 外部データの代わりとしてのスクリプト(初期化の時に呼び出すとか)はわかるんだけど
処理としてのスクリプトってのはどういう風に使うかわかんねぇや
例えばDXLibとLuaを使うとする。
DXLibは基本的にシングルスレッドで、ゲームループ中にupdateとdrawを交互に呼び出すっていうのが主流だけど、
そのupdate中にLuaスクリプトを呼ぶとすると、その処理中、ループはそこで止まってることになる。
AIのルーチンとか、ウェイト無しでひたすら処理すればいいやつはそれで良いけど。
コルーチンを駆使するような挙動(※)を記述する場合って、意図したように動かすの難しいよね?
(※四角形を右に3秒かけて30ドット移動させた後に、上に2秒かけて50ドット動かす、など)
コルーチンを2段重ねにして、
obj.move(30, 0, 3000) //xに30ドット、1000ミリ秒
obj.move(0, -50, 2000)
//moveの実装
void move(int x, int y, int time) {
int frame = time * FPS / 1000;
float dx = (float)x / frame
float dy //略
for(i = 0; i < frame; ++i) {
time / FPS
this.x += dx;
this.y //略
yield();
}
}
こんな感じ?(これじゃズレるけど)
- 541 :名前は開発中のものです。:2014/11/06(木) 02:25:22.77 ID:PKFZPuVA.net
- 最後合わせればそれでもいいんだけど、時間で考えたらいい。
float delta = (now_time - begin_time) / (float)time で 0〜1まで変化するので、
x(y) * deltaでその時点での移動量が出るから初期位置に足してやる。
終了条件は1以上になったときで、強制的に初期位置にx(y)を足して処理を抜ける。
- 542 :名前は開発中のものです。:2014/11/06(木) 03:09:54.65 ID:EqcVgNy3.net
- LuaとC++のデータ橋渡しとか、C++書く側が結構面倒くさそうだな
- 543 :名前は開発中のものです。:2014/11/06(木) 14:42:03.47 ID:/931C6S2.net
- おい、姿勢制御にクォータニオンを使う方法が特許取られてたぞ
特開2011−220825
でググって一番最初のリンク
今更こんなんで特許申請するとか頭おかしいし、なぜ取れるんだろうか…
- 544 :名前は開発中のものです。:2014/11/06(木) 15:30:14.91 ID:58LXPdcW.net
- 周知の技術って特許にならないんじゃなかったっけ。
ホントにそうなら取り消されるんじゃない?
- 545 :名前は開発中のものです。:2014/11/06(木) 15:41:51.54 ID:SeWxbthZ.net
- 訴えれば取り消せる
訴えなければ取り消されない
ちなみに低額訴訟なら簡単に訴えれる
- 546 :名前は開発中のものです。:2014/11/06(木) 15:46:35.49 ID:SeWxbthZ.net
- 間違えた。低額訴訟じゃなくて少額訴訟だった。
ちなみに3Dゲームに興味の無い俺は訴えないけどな
まあ訴えるなら頑張れ
- 547 :名前は開発中のものです。:2014/11/06(木) 15:53:35.47 ID:/931C6S2.net
- 申請者はトヨタ自動車になってて、最初は工業用ロボット制御の事で始まってるが
最終的には一般的なプログラム上での話しになってる
これは酷過ぎるな…
何の価値もないこの申請がトヨタの誰かの業績になってると思うと腹立つな
- 548 :名前は開発中のものです。:2014/11/06(木) 15:56:19.75 ID:WRpf6OH0.net
- 特定の特許申請に対して異議申し立てとか再審請求とか出来るんだろうか?
- 549 :名前は開発中のものです。:2014/11/06(木) 16:08:27.82 ID:/931C6S2.net
- 実際は、相手から訴えられない限り特許無効申請なんて誰もしないだろうね
そしてこういう下らない特許は山ほどあって
ゲーム 特許 訴訟
でググると結構色々あるな
- 550 :名前は開発中のものです。:2014/11/06(木) 16:13:48.30 ID:es6ThdJv.net
- 訴訟起こされるほど拡散力の強いゲームを作ってみたいもんだね
- 551 :名前は開発中のものです。:2014/11/06(木) 18:44:11.46 ID:F7RERGXP.net
- よくわからんがゲ製には関係ないじゃろ
- 552 :名前は開発中のものです。:2014/11/06(木) 19:53:55.97 ID:rZJzoyGT.net
- 特許で思い出したけどコナミだかどっかの
ロード中にミニゲームが遊べる
って特許が12月で切れるんやな
- 553 :名前は開発中のものです。:2014/11/06(木) 20:31:37.28 ID:KMTyqLtj.net
- 実際に訴訟を起こされたら>>550みたいな考えは吹き飛ぶだろう
それも、どこから出てきたのか見当もつかないサブマリン特許みたいな物ならなおさら
- 554 :名前は開発中のものです。:2014/11/06(木) 21:01:35.08 ID:/931C6S2.net
- >>552
ミニゲームだったらナムコだろ
リッジ7のロード中にゼビウスが遊べた時はびびったw
- 555 :名前は開発中のものです。:2014/11/06(木) 21:11:28.90 ID:Zp1CF6nb.net
- なぁ、特許って本当に社会の発展に貢献してるんだろうか・・・?
>>543みたいなゴミ特許が効力あるとか、唖然とするわ・・・。
- 556 :名前は開発中のものです。:2014/11/06(木) 21:19:10.59 ID:MoMQBjON.net
- 特許を審査するメンバーってちゃんと仕事してるのか考えさせるよな。
審査過程をチェックする機構もあるのか怪しい。
- 557 :名前は開発中のものです。:2014/11/06(木) 21:25:50.58 ID:OmSV/1Vy.net
- 永久機関そのままは駄目だけどちょっと表現変えるだけで通るみたいだしな
- 558 :名前は開発中のものです。:2014/11/06(木) 21:40:44.92 ID:58LXPdcW.net
- 特許の審査ってなにやってるんだろうと考えると、
まず考えられるのは今までに同じ特許がなかった事を調べる、くらいだろう。
次に既知の技術として存在してないかを調べるんだろうけど、
これいちいち調べてられないよな。漏れがでるのはしょうがない。
ネットが発展した現代では、調べるのもかなり容易になってきたのではないかと思うが、
審査官が来る日も来る日もググってると考えるとなにか悲しいものがあるな……。
- 559 :名前は開発中のものです。:2014/11/06(木) 21:53:29.21 ID:mXBMs4Fv.net
- その特許を調べるためのシステムをつくるような話があった気がしたけど頓挫したんだっけ
- 560 :名前は開発中のものです。:2014/11/06(木) 22:55:27.98 ID:T/qTIcHW.net
- この特許はフィードバック制御が必要だから、
新規性の判断はそこでされたんじゃないの?
- 561 :名前は開発中のものです。:2014/11/06(木) 23:20:16.77 ID:MoMQBjON.net
- よし、車輪でも申請してみるか
- 562 :名前は開発中のものです。:2014/11/06(木) 23:37:08.84 ID:u3pLa7VG.net
- >>541
あーいや、そういう話じゃなくて、
DXLibだとメインループ回ってるから、いくらLuaでコルーチンがあっても
1ループ間の時間に合わせて処理返さないといけないよなって話
- 563 :名前は開発中のものです。:2014/11/07(金) 00:36:18.17 ID:YN7LVK2N.net
- c++側とlua側ともにもう少し詳しく書いてみ
- 564 :名前は開発中のものです。:2014/11/07(金) 00:41:45.93 ID:WL/Bhc4K.net
- わからんって言ってるのに書いてみとはアスペしかいないのかよ
- 565 :名前は開発中のものです。:2014/11/07(金) 01:43:20.36 ID:OPX5vmff.net
- プログラマはアスペ気味の糞が多いからねw
そいつらを上手く奴隷として扱えるようになるのが社会の勝ち組。
- 566 :名前は開発中のものです。:2014/11/07(金) 01:53:01.03 ID:cHXJDjI4.net
- ていうかマルチスレッドで描画てどうやんの?
座標はupdateスレッドでロックしてるし描画するにしてもdrawスレッドでロックしないといけないだろ
メモリを2倍使ってダブルバッファリングで交互にリソースを入れ替えてもいいけど1フレーム遅れるし
要素ごとにロックとアンロックしてたらそっちのほうが処理重いでしょ
モーションブラーとかドロップシャドウみたいな、書き足すようなシェーダとかなら分かるんだけど、ゲームの要素そのものを描画するのにマルチスレッド?ってすごい疑問なんだけど
どんな風にやってるの?
- 567 :名前は開発中のものです。:2014/11/07(金) 02:53:09.53 ID:BtR0AX8u.net
- 俺、マルチスレッドってさっぱりわからんけど
マルチスレッドで描画するのに「1フレーム遅れる」って関係あんの?
- 568 :名前は開発中のものです。:2014/11/07(金) 03:13:07.36 ID:QezXslKR.net
- 片方はとにかく更新する
片方はとにかく描画する
ロックアンロックで同期させるならマルチスレッドをやめる
- 569 :名前は開発中のものです。:2014/11/07(金) 06:56:56.78 ID:cuSqlZ5a.net
- マルチスレッドを理解してない奴が多いな、まあ自分もあんまり理解はしてないが
というか、マルチスレッドだけでも本がいっぱい出てるからそれを参考にしたらいいかと
- 570 :名前は開発中のものです。:2014/11/07(金) 07:32:03.69 ID:9A2ZZlGV.net
- マルチスレッドの場合、普通は描画と更新を別々にするわけじゃない
それぞれのスレッドに別々の役割を与えて異なる処理を分担させる事になる
あと、マシンに対する負荷を減らすには同期処理しまくらないと意味がないし
ロックアンロックが重くなると言ってる奴はマルチスレッドを根本から誤解してる
というかとにかく本を読め
- 571 :名前は開発中のものです。:2014/11/07(金) 07:53:25.81 ID:7gbV2cfz.net
- とにかく1フレームの中に時間は8msぐらいはあるんだ
その中ですべての作業を終わらせる事を考えろ
重い処理は役割分担して複数のスレッドで終わらせばいいし、
軽い処理はわざわざ役割分担する必然性は無いからな
- 572 :名前は開発中のものです。:2014/11/07(金) 08:07:38.45 ID:0E5IqK7U.net
- 120fpsがデフォなのか
- 573 :名前は開発中のものです。:2014/11/07(金) 08:58:33.47 ID:cHXJDjI4.net
- じゃあ描画要素ごとにロックアンロックして、
もし描画スレッドで更新スレッドがロックしてる描画要素を描画しようとしたらアンロックされるまで待つのか?
- 574 :名前は開発中のものです。:2014/11/07(金) 09:08:00.46 ID:4PyQVSc6.net
- 描画スレッド分けるのは描画中にメインループ止まるの防ぐ為だと思ってたけど
そんな事しなくても並列処理してくれるもんなの?
- 575 :名前は開発中のものです。:2014/11/07(金) 09:22:31.34 ID:xV0IZ5SC.net
- >>570
javaとかだと排他ロックするのすごい重い気がするんだけど
C++だとそんなことないの?
- 576 :名前は開発中のものです。:2014/11/07(金) 11:15:34.21 ID:+qZS8i0Y.net
- ロックすると重くなるんじゃなくてロックの割り当てというかスレッドの割り当てを間違えてるから重くなる
ロックしている間に別のスレッドをフルに動かすのがデフォ
- 577 :名前は開発中のものです。:2014/11/07(金) 11:42:28.34 ID:KHDaX/cL.net
- 描画をマルチスレッドにするには自前の描画コマンド(のようなもの)を作らないと駄目だね
で、コマンドの作成を出来る限りマルチスレッドで行なう
最後にメインスレッドが自前の描画コマンドを解析しつつ各種API(DirectXやOpenGL)を呼び出していく
- 578 :名前は開発中のものです。:2014/11/07(金) 11:53:44.31 ID:CL7k1iDn.net
- そこでluabindですよ
- 579 :名前は開発中のものです。:2014/11/07(金) 12:23:40.03 ID:mfboXhbt.net
- そういや、描画範囲が違う場合は別々のスレッドで別個に書き込み出来るけれども、
描画範囲が重なる場合はこの手段が使えないね
あとスレッドって、何度も起動させて使うよりも、
一度起動させたらロックさせながら使い回す方が処理が早いね
- 580 :名前は開発中のものです。:2014/11/07(金) 15:24:47.03 ID:Frm/uGA7.net
- ごめん、いまいち分かってないんだけど
今の話ってどのプラットフォームを想定して進行してるの?
DirectX? OpenGL? ソフトウェア描画? それとも特に規定しない全般?
- 581 :名前は開発中のものです。:2014/11/07(金) 23:07:57.05 ID:JstQIuBK.net
- 特にしてないはずだけど、DirectXはユーザが多いだけに暗黙な前提にしてる人が多そうなイメージ
- 582 :名前は開発中のものです。:2014/11/08(土) 10:52:03.60 ID:CsoGcbNX.net
- 最近はマルチコアなCPUも珍しくないからなぁ
ウチのタブレットは4コアだ
PCはシングルコアだが
PCはわりと長持ちだらなぁ
- 583 :名前は開発中のものです。:2014/11/08(土) 11:16:44.54 ID:kQCHHHLC.net
- よく考えたら背景だろうがエフェクトだろうがキャラクターだろうが
カメラの射影行列使いまわすんだからカメラのインスタンスロックしないと危ないよね
で、カメラのアップデートは更新処理するスレッドで回すんだから結局更新スレッドと描画スレッドで占有権を撮り合う形になるから
アンロック待ちが当たり前なのか
- 584 :名前は開発中のものです。:2014/11/08(土) 11:30:01.41 ID:unIj8h+A.net
- プログラム内であまり時間を使っていない部分までマルチスレッドにしてもパフォーマンスが落ちるだけ
- 585 :名前は開発中のものです。:2014/11/08(土) 12:09:00.67 ID:mcbpZdSD.net
- DirectX11のDeffered Contextとか使うとうまくマルチコア化できるんかな
気になってはいるんだけど試せてないんだよな
- 586 :名前は開発中のものです。:2014/11/08(土) 12:09:24.51 ID:hcp3vt2I.net
- >>583
1フレーム内で不整合起きなきゃいいんだしそんな神経質にやることないと思うけど
描画スレッド内で他スレッドから書き込まれる領域とスレッド内で使う領域分けておけばいいんじゃない
- 587 :名前は開発中のものです。:2014/11/08(土) 12:10:50.95 ID:/8NTzH0L.net
- マルチスレッドを使ってドヤ顔したい年頃なんだろう
- 588 :名前は開発中のものです。:2014/11/08(土) 12:11:13.95 ID:mcbpZdSD.net
- 綴り間違ってた、「Deferred Context」だった
まさにGPUへのコマンドリストの構築と発行をやってくれるっぽいんだが
- 589 :名前は開発中のものです。:2014/11/08(土) 12:11:48.40 ID:V2oqVXE4.net
- 自分もいまいちDefferedContextの使いどころが分からんくて
ImmediateContextしか使ってない。
DefferedContextは並列化の点で少し中途半端なものらしく、
この点を改善するのもDirectX12の目的みたいよ。
早くDirectX12を触りたいなぁ。
- 590 :名前は開発中のものです。:2014/11/08(土) 12:51:36.67 ID:omvuHK+K.net
- そもそもウィンドスレッドとゲームスレッドにすら処理を分担できてないゲームが珍しくないけどな
重い処理をやってるとウィンドが動かなくなるとかw
- 591 :名前は開発中のものです。:2014/11/08(土) 13:25:48.11 ID:omvuHK+K.net
- そもそもマルチスレッドでプログラムするのは良いけれど、コア数いくつのマシンを前提にしてる?
あと、コア数の足りないマシンは切り捨てるの?
- 592 :名前は開発中のものです。:2014/11/08(土) 14:33:58.84 ID:kQCHHHLC.net
- コア数少なかったらOSが勝手にスレッド振り分けてくれるんじゃないの?
まぁそうじゃなくても、今どきPCでゲームやろうって人がシングルコアなんて無いと思うけど
- 593 :名前は開発中のものです。:2014/11/08(土) 14:46:37.18 ID:omvuHK+K.net
- >>592
おまえは>>582を読まなかったのか?
あと、PCはネットに繋ぐための道具とかワープロの代わりとしか思ってない人は珍しくないし、
そーゆー人はPCが壊れるまで買い換えない
- 594 :名前は開発中のものです。:2014/11/08(土) 14:50:59.54 ID:zEUiJRA7.net
- ゲーム用途じゃないじゃんw
- 595 :名前は開発中のものです。:2014/11/08(土) 14:54:18.14 ID:CsoGcbNX.net
- DVD再生装置にインディーズゲーム、使い道はまだまだ広いぞwww
2Dゲームの信者はまだまだ多い
- 596 :名前は開発中のものです。:2014/11/08(土) 15:00:01.75 ID:mKjDtcTQ.net
- エロゲじゃないんだw
- 597 :名前は開発中のものです。:2014/11/08(土) 15:46:47.80 ID:hKybVK3f.net
- 2Dっつーか古いOSでしか動かないゲーム?
いいこと思いついた、お前ら古ゲーを新型OSでも動くように移植しようぜ
え?俺?ソースもないのにそんなのやる気ないです
- 598 :名前は開発中のものです。:2014/11/08(土) 17:38:42.74 ID:Gya1/bv4.net
- みんなはC++でゲーム開発するときシーン制御ってどうやってやってる?
王道とかあるの?
- 599 :名前は開発中のものです。:2014/11/08(土) 17:52:05.59 ID:R8iM6laI.net
- そのシーンについて、もう少しkwsk
(ジャンルによって、ツールによって)意味が異なるので、そこんとこの絞り込みを
- 600 :名前は開発中のものです。:2014/11/08(土) 18:03:53.69 ID:R8iM6laI.net
- >>584
ですよねぇ…
>>591
個人的なケースでは、自分が使ってるi5のノートPCのバッテリ駆動状態で
できるだけ長く動かせるように仕方なく組んだ事ならありますねぇ
即売会でのデモ用(試遊用)として、予備バッテリーを何個も持って行きたく
なかったので。あと夏なので、あまりアッチッチーになるのも困るんで
- 601 :名前は開発中のものです。:2014/11/08(土) 18:11:24.52 ID:Gya1/bv4.net
- >>599
例えばRPG作るとして、タイトル、セーブデータ選択、マップ、戦闘、またマップ、町のマップ、お店で購入、みたいなシーンの管理
今あげた奴の中でも、戦闘までシーンとして管理していいのかどうかとか
- 602 :名前は開発中のものです。:2014/11/08(土) 19:04:20.72 ID:kQCHHHLC.net
- 例えばRPGのマップ画面で戦闘になると、戦闘画面へと切り替わるじゃん
でもマップ画面でショップ画面になっても、画面とは名ばかりの操作できるウィンドウが表示されるだけなのかもしれないし
- 603 :名前は開発中のものです。:2014/11/08(土) 19:26:18.89 ID:omvuHK+K.net
- 戦闘シーンこそ別個で管理しないとややこしいことになりそうなんだが……
- 604 :名前は開発中のものです。:2014/11/08(土) 20:42:42.63 ID:hcp3vt2I.net
- ウィンドウ出す程度なら分けなくていいんじゃないの
こうしなきゃいけないなんて決まりはないんだから複雑さ見て決めりゃいいと思うけど
- 605 :名前は開発中のものです。:2014/11/08(土) 21:13:23.69 ID:omvuHK+K.net
- 自分の場合、マップシーンでは、セリフはメッセージウィンドウ、
メニューはメニューウィンドウ、買い物は販売メニューウィンドウ、
所持金は金額ウィンドウ、ってな感じに分けてるが、
戦闘シーンは別プログラムで処理している
タイトルシーンではメニューウィンドウ出してるし
あと、フィールドマップと町マップとダンジョンマップでは、
データを変えて同じプログラムで処理している
この辺はわざわざ別個のプログラムにする事は考えもしなかったな
- 606 :名前は開発中のものです。:2014/11/08(土) 21:33:54.63 ID:0KWVrT87.net
- セガ本はStateパターンって話は聞いた
- 607 :名前は開発中のものです。:2014/11/08(土) 22:19:46.15 ID:zEUiJRA7.net
- そういやゲーム関連での定番、デザパタって決まっているもん?
やっぱりGoFの流用?
- 608 :名前は開発中のものです。:2014/11/08(土) 23:09:04.26 ID:xWQV6qjI.net
- ゲームつくろーのやつ見てたな
- 609 :名前は開発中のものです。:2014/11/08(土) 23:25:12.94 ID:hcp3vt2I.net
- タスクシステム
- 610 :名前は開発中のものです。:2014/11/08(土) 23:48:44.70 ID:zEUiJRA7.net
- >>609
振る舞いに関するパターンやね。メモリ管理も含めた。
- 611 :名前は開発中のものです。:2014/11/09(日) 00:03:30.39 ID:tU74c/u+.net
- マルチタスクって平行に複数の動作を同時に行うって事だからね
スクリプト言語のコルーチンを使えば簡単簡単
マルチスレッド?あれは同じメモリに複数アクセスすると例外を発生させるから難しいんだよ、
処理速度は早くなるけどな
- 612 :名前は開発中のものです。:2014/11/09(日) 00:20:14.91 ID:tU74c/u+.net
- >>589
スレッディング・ビルディング・ブロックに対応するのかな?
- 613 :名前は開発中のものです。:2014/11/09(日) 02:11:09.89 ID:b6C1rYs5.net
- >>601
以下、あくまでも私感
演出上の場面(シーン)として。テレビゲームの典型的な和RPG(例:ドラクエ)
同様にマップ移動と戦闘で完全に切り替えてるなら、別シーンとして区切る
ゲームルールというかゲームマスター視点で。マップ移動中と戦闘中では
時間も移動距離も各キャラの見た目も状態もできる事も挙げればキリがない
くらい仕事が異なるので、別シーンとして区切る
プログラミングの視点で。自分は戦闘だけでテストできるようにしときたい派。
戦闘における値のやり取りが面白さの肝だと思う戦闘厨(ストーリーとか設定
とか見た目なんて飾りだよ派)なので、まず戦闘が面白くなるまで練り込みたい
から。マップ移動時とは別のモジュールとして区切る
- 614 :名前は開発中のものです。:2014/11/09(日) 02:45:25.53 ID:CGct2DUQ.net
- 入れ子にすればいいじゃん
なんで階層を一つまでに制約してるん
- 615 :名前は開発中のものです。:2014/11/09(日) 07:19:30.89 ID:b6C1rYs5.net
- >>614
んー。そんな話はしていないと思うんだが…何か誤解があるようなので
もう少しkwsk頼む。整理するために確認させてもらっていいかな?
・モジュール分割する事 (或いはシーンを分ける事)
・入れ子(ネスティング)しない事 (或いは階層を一つまでに制約する事)
これらは直結するか?(YES/NO)
- 616 :名前は開発中のものです。:2014/11/09(日) 10:41:43.85 ID:IF+insbO.net
- http://getnews.jp/archives/54427
マップ画面中に戦闘画面とか
- 617 :名前は開発中のものです。:2014/11/09(日) 11:21:15.79 ID:ot2OM0IR.net
- 昔、どこかでチラッと聞いただけだから細かいことは分からないんだけど、
階層構造付きのStateパターン(?)って、どうやるの?
Scene
├Title
├Game
|├Play
|├Pause
|└Result
└Config
みたいな構成で、Game::PauseからTitleに飛ぶとか。
単に名前空間で分けるだけにして、シーンとしては並列に扱うのが楽だとは思うんだけどさ。
- 618 :名前は開発中のものです。:2014/11/09(日) 11:29:19.51 ID:8zzCuCYW.net
- スタック
- 619 :名前は開発中のものです。:2014/11/09(日) 11:54:42.19 ID:ot2OM0IR.net
- ああすまん、流れを読み違えてた。
あるシーンの中で、別のシーン(メニュー画面など)を挿入するという話だったのね。失敬した。
- 620 :名前は開発中のものです。:2014/11/09(日) 11:58:46.71 ID:mPPfhXcl.net
- 考え方としてはスタックに詰んで行く感覚で良いけど
実際の持ち方としてはリストの方がいい。
RPGで戦闘画面の背景にマップ画面を使ったり、
ARPGでメニュー画面開いてる間も敵が動くようにできる
Stateパターンはシンプルな動作の切り替えに留めて、
シーンの遷移はAndroidのintentを参考にして作りこんだ方が良い
- 621 :名前は開発中のものです。:2014/11/09(日) 12:05:20.17 ID:ot2OM0IR.net
- スタックによるシーン処理で思い出した。
テイルズシリーズのどれかだったか、
フィールドでメニュー画面を開いて、そこからタイトル画面に戻ると、
暗転中にフィールドのBGMが一瞬だけ流れるというネタがあったなあ。
シーンそのものはともかく、BGMをスタックで管理してたからなんだろうか。
- 622 :名前は開発中のものです。:2014/11/09(日) 17:00:17.96 ID:IF+insbO.net
- atoi関数ってなんでatoiなの?
stoiとかctoiとかcptoiとかならわかるけどなんでaなの?
- 623 :名前は開発中のものです。:2014/11/09(日) 17:02:41.77 ID:EiTaW/mC.net
- >>622
asciiコードから変換だから
- 624 :名前は開発中のものです。:2014/11/09(日) 21:42:38.03 ID:6dA8GNBZ.net
- >>623
あいうえおのaかと思ってた
- 625 :名前は開発中のものです。:2014/11/11(火) 00:52:56.10 ID:XQVF6NRm.net
- それだったらABCのAの方が説得力あるだろ
- 626 :名前は開発中のものです。:2014/11/11(火) 01:38:28.59 ID:Ml1KtPS5.net
- どうでもいい突っ込みをすると、ABCを変換するわけじゃないし。
- 627 :名前は開発中のものです。:2014/11/11(火) 09:36:35.03 ID:KfLTdZLl.net
- アルファベットのaらしい
- 628 :名前は開発中のものです。:2014/11/11(火) 11:07:29.28 ID:uQazbP0q.net
- http://ja.m.wikipedia.org/wiki/Atoi
- 629 :名前は開発中のものです。:2014/11/11(火) 11:46:03.47 ID:NdomKUg0.net
- >>627
いつからアラビア数字はアルファベットになったんだよ
- 630 :名前は開発中のものです。:2014/11/11(火) 14:06:45.04 ID:l6H8mfSN.net
- シェーダーとかネットワークって
シェーダー・・・座標変換と色の計算
バッファ・・・シェーダーの変数
バインド・・・バッファの適用
ソケット・・・ネットワークの変数
send・・・データの送信
recv・・・データの受信
っていう感じであってる?
- 631 :名前は開発中のものです。:2014/11/11(火) 15:51:23.77 ID:FlAn94PS.net
- >>630
そういう理解で構わないから、実際に使って(試して)(手を動かして)みたほうがいい
あれこれ疑問を持つのはその後でいい
- 632 :名前は開発中のものです。:2014/11/12(水) 10:33:52.89 ID:3FzO9Rn6.net
- いまの時代cとdirectxでゲーム作ることってあるんですか?
学習にはいいと思うけど、現実的ではないように思えるんだけど…
- 633 :名前は開発中のものです。:2014/11/12(水) 11:21:02.43 ID:tRAW/G/v.net
- いまの時代もゲームはほとんど全部CかC++で出来ている
- 634 :名前は開発中のものです。:2014/11/12(水) 12:10:58.56 ID:nj7UpIrk.net
- つまり632は現実を知らなかったと
- 635 :名前は開発中のものです。:2014/11/12(水) 12:13:44.26 ID:2wLmFIfA.net
- CPU性能が上がり続ければC以外の選択肢も増え続けたんだろうけどな
やっぱトロい言語じゃ駄目だぁな
- 636 :名前は開発中のものです。:2014/11/12(水) 12:15:34.55 ID:Jp7fJIBG.net
- お前らのc++ゲーム制作知識を
wikiかどこかに集約してくれ(他力本願
- 637 :名前は開発中のものです。:2014/11/12(水) 12:25:14.03 ID:U9TuOuDT.net
- 今のCPUがC言語に合わせた進化してるだけなんだけどね
動的言語はハードウェア側での最適化が難しいけど
- 638 :名前は開発中のものです。:2014/11/12(水) 12:25:50.29 ID:AuBOaCee.net
- なおC#もとい海栗も増えてきている模様…結局C系列じゃん
>>636
言い出しっぺの法則
- 639 :名前は開発中のものです。:2014/11/12(水) 12:36:22.31 ID:NowaE2rM.net
- なぁに、いずれ並列処理用言語が出来て、他の言語は駆逐されるよ
今は速度が必要なら並列化を目指せばいいからな
- 640 :名前は開発中のものです。:2014/11/12(水) 13:07:42.51 ID:dBZQKyvT.net
- ガベコレ持ち言語じゃ作りにくいよな
C#がどうなってんのかわかんないけど
- 641 :名前は開発中のものです。:2014/11/12(水) 13:18:03.99 ID:uNUWqhDA.net
- c++もスマートポインタやらSTLやら使わない?
- 642 :名前は開発中のものです。:2014/11/12(水) 13:24:07.08 ID:nj7UpIrk.net
- 量子コンピューターの思考イメージを展開する、初の思考パターンイメージコンパイラの誕生である
- 643 :名前は開発中のものです。:2014/11/12(水) 14:19:53.36 ID:Uu3QrSPF.net
- 海外の公害基準でCPUの性能止められてるし、当分は今のままだろう
- 644 :名前は開発中のものです。:2014/11/12(水) 14:33:14.13 ID:ovXfI3JT.net
- C#やJavaが主流になれないのは速度より良いライブラリが無いからじゃないの
UnityでC#の人気が爆発してるし、薄いクラスライブラリで良いのがあればいいのだが
http://d.hatena.ne.jp/Nagise/20090322/1237723661
- 645 :名前は開発中のものです。:2014/11/12(水) 17:16:29.25 ID:5VJqGqvp.net
- >>632
そういう理解で構わないから
@自分に適した道具選べ
Aそれ使って面白いもの作れ
B人に遊んでもらえ
これ出来る奴は、お前の疑問とは縁がない。関係ないからな
- 646 :名前は開発中のものです。:2014/11/12(水) 17:46:38.37 ID:AuBOaCee.net
- ま、まあ2と3は「自分が楽しめる物を作る」だけでもいいと思うよ
別にすべての開発者が作った物を「俺のゲームをやってくれ!!!!1」ってガンガン公開する訳じゃないから
他人に公開するにしても、自分すら楽しめないようなゲームはクソの中のクソ キングオブクソ
- 647 :名前は開発中のものです。:2014/11/12(水) 21:20:04.82 ID:SYY1txKH.net
- C++&DirectXでガリガリと組み上げていくことに喜びを感じる
- 648 :名前は開発中のものです。:2014/11/12(水) 21:53:11.34 ID:GHnQwsv6.net
- Unreal Engineは最新のバージョン4では3までにあったスクリプト言語のUnreal Scriptが無くなってC++で書くようになったしな。
Visualスクリプトエディタが強力になったのもあるけど
- 649 :名前は開発中のものです。:2014/11/13(木) 07:26:45.01 ID:R9H0HNzV.net
- アンリアルエンジンの本って売ってるけど、アンリアルエンジン未経験者でも出来るようになるの?
誰か買ったことある人いたら教えて
- 650 :名前は開発中のものです。:2014/11/13(木) 11:32:24.41 ID:pEhVoeVb.net
- C++は代わりが無いぐらい重要な言語なのは分かるが、最新の仕様とか見てると
もう一度根本的に一から設計しなおしてくれと言いたくなるぐらいグチャグチャになってる…
最新の仕様も含めて深く理解するにはとてつもなく困難な言語なのは間違いない
- 651 :名前は開発中のものです。:2014/11/13(木) 11:36:07.43 ID:HK6+TuGr.net
- いろいろ盛り込んだからやりたいようにやってくれってことでしょ
やりたいことがはっきりしてれば目的は達成できる
- 652 :名前は開発中のものです。:2014/11/13(木) 12:45:39.27 ID:UMYfazR7.net
- D言語実装待ったなしですか分かりますん
いろいろあるからこそ汎用性はダントツのトップだし、
掘ろうと思えばどこまででも掘れる拡張性もある
バグの出やすさに目をつぶれば開発者理想の言語じゃないですか
なお初心者には
- 653 :名前は開発中のものです。:2014/11/13(木) 16:15:51.23 ID:mQixsQeM.net
- 初心者はCとして使うから
- 654 :名前は開発中のものです。:2014/11/13(木) 23:08:38.36 ID:5guIEaf6.net
- パフォーマンス必要な箇所はCぽく書いて
生産性が必要な所はOOPで書く
みたいに分けられて良い…のかな
- 655 :名前は開発中のものです。:2014/11/14(金) 13:14:55.84 ID:5wiMUdhH.net
- 「船頭多くして船山に登る。それがC++」
「水陸両用ですね。最高じゃないですか」
- 656 :名前は開発中のものです。:2014/11/14(金) 20:31:26.83 ID:yjqeER4j.net
- C++が一番気持ちいい
- 657 :名前は開発中のものです。:2014/11/14(金) 20:36:28.88 ID:BUwtlw7S.net
- そうでしょ?
- 658 :名前は開発中のものです。:2014/11/14(金) 21:31:13.67 ID:PGsqEl+k.net
- 眠たくなるからやめれ
- 659 :名前は開発中のものです。:2014/11/15(土) 00:35:42.62 ID:QsaQ9+YO.net
- VC++2015にはgeneratorが入るらしい。
スクリプト使う理由が一つ減った?
- 660 :名前は開発中のものです。:2014/11/15(土) 01:07:43.80 ID:ocCnTJxq.net
- サイニー?
- 661 :名前は開発中のものです。:2014/11/15(土) 01:51:29.18 ID:FYIlPqIe.net
- generatorって?ググっても英語ばっかだし……
- 662 :名前は開発中のものです。:2014/11/15(土) 02:44:54.65 ID:csIS2THd.net
- >>661
C++でyieldが使えるようになる
- 663 :名前は開発中のものです。:2014/11/15(土) 06:20:29.97 ID:QsaQ9+YO.net
- >>661
http://blogs.msdn.com/b/vcblog/archive/2014/11/12/resumable-functions-in-c.aspx
- 664 :名前は開発中のものです。:2014/11/15(土) 07:59:55.58 ID:v6LA9C/H.net
- yieldさんpythonでお世話になってます。
- 665 :名前は開発中のものです。:2014/11/15(土) 08:21:47.08 ID:a7IQ1KUV.net
- これバイナリってどうなってんだろ
generatorの関数内の変数は静的な領域に確保されんのかな
普通にスタック積んでたらこんなん実装出来ないよな
- 666 :名前は開発中のものです。:2014/11/15(土) 08:33:02.98 ID:v6LA9C/H.net
- >>665
Boost.Coroutine
- 667 :名前は開発中のものです。:2014/11/15(土) 09:14:58.45 ID:/7FTHmq8.net
- >>663
何が嬉しいのかさっぱり分からん・・・(汗)
コロチン??
- 668 :名前は開発中のものです。:2014/11/15(土) 09:51:15.18 ID:v6LA9C/H.net
- >>667
例えばオブジェクトを順番に返したいときに楽するならlistとかvectorに入れて返すよね?
でも一つずつ順番に処理していくだけであれば一度に全部作ってメモリに持っておくのはメモリの無駄
parserとか作るとき、なるべく省メモリにしたいけど(XMLのSAXみたいに)使い勝手は落としたくないときとかに便利
- 669 :667:2014/11/15(土) 10:08:49.83 ID:/7FTHmq8.net
- >>668
あ、なるほど、データ作りながら処理かけていけるわけか。
サンキュー!
- 670 :名前は開発中のものです。:2014/11/15(土) 11:15:19.49 ID:a7IQ1KUV.net
- >>666
よくわからんけどヒープに確保されんのかな
- 671 :名前は開発中のものです。:2014/11/15(土) 12:26:57.64 ID:VJG7MPsg.net
- ヒープ以外にどこに確保されるってんだ
- 672 :名前は開発中のものです。:2014/11/15(土) 12:41:40.07 ID:v6LA9C/H.net
- >>670
http://d.hatena.ne.jp/melpon/touch/20091212/1260584012
- 673 :名前は開発中のものです。:2014/11/15(土) 17:09:58.52 ID:VJG7MPsg.net
- yieldってなんだ
誰か一言で言い表して
- 674 :名前は開発中のものです。:2014/11/15(土) 17:13:41.84 ID:skgsPBOl.net
- >>673
コルーチン
http://en.wikipedia.org/wiki/Coroutine
- 675 :名前は開発中のものです。:2014/11/15(土) 17:23:51.51 ID:VJG7MPsg.net
- >>674
関数の途中でデータ返せるってだけか
でもこれ返り値受け取る側はどういう処理になるんだ?
受け取ったらそのまま次の行に行きそうだけど、そうすると次呼び出された時中断したところから再開するのか?
- 676 :名前は開発中のものです。:2014/11/15(土) 17:28:35.72 ID:IlcXR0Tx.net
- 「終わり」って言うまでキャッチボールだな
- 677 :名前は開発中のものです。:2014/11/15(土) 21:07:43.80 ID:csIS2THd.net
- 関数の途中でデータ返せるってだけって、だけっておま・・・・
何のためにLua導入してまでコルーチン使ってると思ってるのかと・・・・
- 678 :名前は開発中のものです。:2014/11/15(土) 21:28:20.19 ID:nxADb3aY.net
- 使わない人にはいらないものだし
- 679 :名前は開発中のものです。:2014/11/15(土) 21:49:25.06 ID:Cvi6GQeL.net
- コルーチンを使うといっぺんに何十行も減らせる場合があるのですよ
サブルーチンでマルチスレッド制御をするよりもお手軽だし
- 680 :名前は開発中のものです。:2014/11/15(土) 23:50:56.76 ID:/7FTHmq8.net
- >>679
へぇ〜。
コルーチンを使ったテクニック・トリック集みたいなの欲しいな。
- 681 :名前は開発中のものです。:2014/11/16(日) 22:25:19.06 ID:BmMQH27T.net
- コルーチンってノンプリエンプティブなスレッド制御のことでしょ?
オレの理解がおかしいのかこれw
- 682 :名前は開発中のものです。:2014/11/17(月) 00:42:18.99 ID:WLL2OPoM.net
- 昔のウィンドウズじゃあるまいし
- 683 :名前は開発中のものです。:2014/11/17(月) 10:29:07.85 ID:Ld14qEhv.net
- >>677
別にLua導入せずともsetjump longjumpでコルーチンは作れるけどね
非同期処理が同期処理と同じように書けるから滅茶苦茶便利なのは使った人にしか分からんだろうね
- 684 :名前は開発中のものです。:2014/11/17(月) 11:54:49.69 ID:J8hAdEWA.net
- >>681
その理解であっているとおもうよ。
状態を(コード上は)ヒープに持たなくても、ローカル変数を引き継いだり、
ループを途中から再開できる、構文糖みたいなもの。
- 685 :名前は開発中のものです。:2014/11/17(月) 20:35:59.87 ID:KwtC8N0w.net
- ぶっちゃけコルーチン使わない
原理的にはシーンをStateパターンで切り替えるのと変わらないし
- 686 :名前は開発中のものです。:2014/11/18(火) 18:34:34.98 ID:tX1o0EDZ.net
- 改造できる武器を作ったとして、そのデータを保持するにはどうすればいいんだろう?
無改造の物をオリジナルとして、
そのデータ配列を丸ごとコピーして改造(変数に変更を加える)して、
それをあらかじめ確保しておいた保存用の配列にぶっ込めばいいのだろうか
- 687 :名前は開発中のものです。:2014/11/18(火) 18:45:45.72 ID:MnekbNE0.net
- 改造したら別の武器にする
- 688 :名前は開発中のものです。:2014/11/18(火) 18:58:45.41 ID:VF38SoXr.net
- 改造の定義にもよるが687と同じく別の武器にしてる
ステータスを上げるだけの改造なら
修正値を保持するor改造回数を保持するって感じじゃない?
- 689 :名前は開発中のものです。:2014/11/18(火) 21:07:47.07 ID:Lfan6beG.net
- 改造前提で、かつそれがゲーム内で重要な位置にあるなら、
最初からアイテム欄にある全ての武器について、名前・ステータス・種別などのデータを個々に持たせてしまったほうが良さそう。
要は、「どうのつるぎ」が「2本」という管理じゃなくて
「どうのつるぎ(武器ID:001)/攻:12/防:0/価格:100G」 「どうのつるぎ(武器ID:002)/攻:12/防:0/価格:100G」 みたいにするっていう。
- 690 :名前は開発中のものです。:2014/11/18(火) 21:48:09.63 ID:qY3UPxZd.net
- 好きなようにパラメータいじれるなら所持アイテム個々にパラメータ持たせる必要あるし
アイテム名+1みたいに変動が決まってるなら最初から別のアイテムとしてデータ作ればいい
- 691 :名前は開発中のものです。:2014/11/18(火) 22:44:11.50 ID:QzZupUBq.net
- やったことあるのは
------------------------------
装備マスタ(装備ID, 名前, 基礎攻撃力, 基礎○○力, ...)
生成装備(生成装備No, 装備ID, 攻撃力補正値, ○○力補正値, ...)
プレイヤー所持装備(生成装備No, 装備中キャラNo) //ここに持たせる[装備中キャラNo]は冗長だけど、ここで持たせておくと便利
キャラクターマスタ(キャラID, 名前, 属性, 攻撃力成長率, ○○力成長率, ...)
生成キャラクター(生成キャラNo, Lv, 生成装備No, ...)
------------------------------
(かなり端折ってるけど)こんな風で、起動時にロードされてプレイ中ずっと不変なマスタと、
動的生成したり変化する部分に分けて、武器の能力を可変にして自動生成できるようにしたり、
敵モンスターのレベルを変動させて自動生成できるように頑張ったな
作っていく上で失敗したと思ったのが、キャラの属性がマスタ側で固定なせいで、
敵の色違いキャラ作るごとにマスタ1行作るハメになったり、主人公をキャラメイクさせたいときに、
キャラメイクパターン分の主人公マスタを作らないといけなくなって、スマートじゃなかったので諦めた
ただ、これはこれで設計としては正しかったんじゃないかな、とも思ってる。
というのも、バランス調整する時に、マスタを変更すればセーブデータ上の「生成装備」の能力も修正されたから。
今作ってるのは、↑でいうマスタの部分を「テンプレート」と称して、
装備テンプレート(テンプレID, 連番, 名前, 基礎攻撃力) //アップデートで能力を修正したら新規行で連番を振る
生成装備(生成装備No, テンプレID, 現在適用連番, 名前, 攻撃力)
生成装備側に値を複写(基礎攻撃力→攻撃力)して、その後は自由に変更できるようにする。
アップデート時は、連番が一番大きいテンプレートとの差分で修正できるようにするつもり
- 692 :名前は開発中のものです。:2014/11/19(水) 00:34:02.86 ID:OX7d9Gn4.net
- >>687-688
実は真っ先に考えたのはそれなんだけど、
アイテムや改造の数を増やせば増やすほどモコモコとアイテムの全体数が増えて、
管理を考えるとおしっこもっちゃいそうな量になって困った
自由度も低かったし
>>689-691
やっぱりそういう風にやるしかないか、再利用性も高そうだし
いろいろな意見をありがとう 参考になった
- 693 :名前は開発中のものです。:2014/11/19(水) 07:21:33.65 ID:/n+zepvC.net
- 単純に Clone + シリアライズ ではいかんのか?
実態ではなくアイテムIDで保持しようとするから難しくなるんじゃ?
- 694 :名前は開発中のものです。:2014/11/19(水) 07:53:10.12 ID:VDiSqvaf.net
- >>693
要するに、データを丸々コピーするのじゃいかんのか?って事だろ?
俺は逆に最近レコード管理に切り替えた
っつーかソースコードを一カ所に纏める方が楽だし、メモリ消費も減るから、俺はこの方がいいと思ってる
って言うか、存在しない名前のアイテムが発生するバグに対応するのが面倒で
- 695 :名前は開発中のものです。:2014/11/19(水) 08:04:49.35 ID:VDiSqvaf.net
- あと、実体処理だとセーブデータに記録した後にデータを変更するのが面倒だと思う
- 696 :名前は開発中のものです。:2014/11/19(水) 16:05:10.60 ID:MSY6gmXE.net
- 一旦データ管理という場面に踏み込むと、こうやって多くの手間や技術を要求される
これだからRPGは初心者にはおすすめできないんだが、何故初心者に限ってRPGを作りたがるんだ
- 697 :名前は開発中のものです。:2014/11/19(水) 19:21:08.31 ID:HWXJ3kGs.net
- RPG・・・データ管理・データ作成が面倒
SIM・・・バランス調整や、AIやナビゲーションマップ等が面倒
ADV・・・フラグ管理やテキスト作成が面倒
ACT・・・地面や壁との接触判定、マップを作るのが面倒
RCE・・・車を操作するAIが面倒、サーキットのウェイポイントの調整が大変
STG・・・当たり判定を飛ばすだけ、壁なんて要らん、AIも適当でいい、テキストもいらん、敵がいつ出てくるかだけ考えろ、伸ばしたい分野だけ拘れる登竜門的存在
- 698 :名前は開発中のものです。:2014/11/19(水) 20:59:46.83 ID:OX7d9Gn4.net
- ブロック崩し…パズル…
まあ、パズルはそれこそAIがな
将棋で超AI作ってプロ棋士と戦わせるだけでお祭りになるくらい
- 699 :名前は開発中のものです。:2014/11/19(水) 23:18:55.69 ID:7ML/+Uac.net
- テトリス!
- 700 :名前は開発中のものです。:2014/11/20(木) 00:30:04.14 ID:vWl5cX6m.net
- 趣味プログラミングは鼻くそホジホジしたり屁をこいたりしながら
土日の内に作っちゃう人間なので、RPGとかデカブツは無理だなぁ
元々好きじゃないから作る気も起きないわけだが
- 701 :名前は開発中のものです。:2014/11/20(木) 04:07:38.08 ID:h+JiqRdV.net
- 俺も学生の頃はそうだったな。
集中力自慢で4日間睡眠時間2時間で仕上げきる、それを自慢にしてた。
だが社会人になって悟った。
ある程度以上のものを作ろうと思ったら、それじゃ駄目なんだと。
プロマネとしてチームを率いることができなければ、いつまでも
徹夜自慢のバカのままで終わるんだと。
- 702 :名前は開発中のものです。:2014/11/20(木) 05:21:30.14 ID:vSwwwYEe.net
- そっか、すごいね
- 703 :名前は開発中のものです。:2014/11/20(木) 16:13:36.88 ID:ASkU6c/s.net
- やりたい事がすり替わっちゃったんだな、可哀相に
- 704 :名前は開発中のものです。:2014/11/20(木) 17:24:27.51 ID:5jfsrVJn.net
- 人海戦術でしか作れない程度の能力の低いプログラマーには社会人が凄く見えるんだろうな
- 705 :名前は開発中のものです。:2014/11/20(木) 17:50:24.81 ID:6dfcdxQ7.net
- 人海戦術が程度が低い制作形態かどうかは知らないが、
絵とか音楽とかにこだわりだしたら誰かの手も借りたくなる事はある
だが、素材探しをしているうちに結局完璧に自分の構想を実行できるのは自分だけだと悟る
俺が何人か欲しい
- 706 :名前は開発中のものです。:2014/11/20(木) 18:06:31.42 ID:5jfsrVJn.net
- 10人プログラマーが集まれば作れるようなゲームを作りたいなら、
そもそもC/C++にこだわる必要もなくね?人海戦術に向いた言語なら色々とあるんだし
- 707 :名前は開発中のものです。:2014/11/20(木) 18:38:32.43 ID:5jfsrVJn.net
- >>705
まあ、少数精鋭で作られたゲームの方が良いゲームは多くね?
人数が増えれば増えるほど、どうしても軸はプレまくるからな
- 708 :名前は開発中のものです。:2014/11/20(木) 19:31:14.46 ID:iI+OSFLH.net
- 少数精鋭もやり過ぎるとこうなる
Appleのソフトウェアの品質が次第に低下している理由は? - GIGAZINE
http://gigazine.net/news/20141016-apple-software-quality/
Appleは世界的な巨大企業ですが、同レベルの企業に比べるとはるかに小さなソフトウェアチームを意図的に構成しています。
これは「たくさんのB級プレイヤーを雇用するより、少しのA級プレイヤーを雇用する方が好ましい」というスティーブ・ジョブズの方針によるもの。
ジョブズが亡くなった後もこの方針は続いていますが、「最上級の人材」だけでチームを構成するため、人手が足りないチームへ別チームの人材がヘルプに入ることがあります。
最高の人材獲得に挑戦するのは間違ったことではないのですが、キーパーソンのエンジニアがiPhoneチームのヘルプに入っていたために、OS X Leopardのリリースが遅れた、という事態も起こっています。
- 709 :名前は開発中のものです。:2014/11/20(木) 19:36:39.53 ID:36zbpl++.net
- ゲームと一緒にされても
- 710 :名前は開発中のものです。:2014/11/20(木) 19:37:10.26 ID:36zbpl++.net
- IDがperl++
- 711 :名前は開発中のものです。:2014/11/20(木) 22:05:42.89 ID:93aHVuNb.net
- そもそも小規模開発なら汎用のゲームエンジン使えばいいしプログラマそんな要らないよな
人が必要になるのは基本的に素材作りだろうし
- 712 :名前は開発中のものです。:2014/11/20(木) 22:16:36.81 ID:xrUP7PKr.net
- そういえば、おソロだとテストがまずいことになりそう
なにしろ、自分はメタデータが頭の中に叩き込まれている少なくとも中級者だ
そこからバランス調整に入ったら初心者がうんざりするゲームになりそう
バグ取りも自分の発想だけだと限界があるし
ま、制作自体には直接関わりない事だけどね
- 713 :名前は開発中のものです。:2014/11/20(木) 23:09:21.65 ID:94t7DNRt.net
- マだけの人海戦術製作やってみたい気もする
でも標準ライブラリが貧弱なC++だと、まずstl, boost, pocoとか
どれを使うかで決裂しそうだな
- 714 :名前は開発中のものです。:2014/11/20(木) 23:47:01.70 ID:XIRb6nJJ.net
- なんか、ただの知ったかぽい
- 715 :名前は開発中のものです。:2014/11/21(金) 00:06:46.12 ID:1pvURVep.net
- boostってまだあったのか。
今だと何の用途につかってるの?
- 716 :名前は開発中のものです。:2014/11/21(金) 00:13:35.21 ID:eEbWn5CX.net
- 標準ライブラリに入れる機能の実験場みたいなものだから標準ライブラリがある限り存在し続けるのでは
- 717 :名前は開発中のものです。:2014/11/21(金) 00:21:11.37 ID:7CnZSeAT.net
- >>715
人それぞれ
C++11対応してくれない環境での同等ライブラリとしてとか、
uBLAS
Geometry
Graph
など標準入りしてないけど有用なライブラリもあるし、
coroutineとかC++11以降にBoost入りしたのもある。
Boost.GeometryはMySQLに使われてたりするよ。
- 718 :名前は開発中のものです。:2014/11/21(金) 03:19:55.68 ID:K9GeSQKw.net
- C++が一番楽しい。
C++11最高だ。
- 719 :名前は開発中のものです。:2014/11/21(金) 07:08:46.35 ID:qV4oLsfC.net
- ゲームプログラマーの求人ってどこで探せば良いの?
- 720 :名前は開発中のものです。:2014/11/21(金) 07:19:13.80 ID:pFBl4fEs.net
- 住んでる地域が東京圏か大阪圏内で無い限りほとんど無い
自分から売り込め、もしくは起業しろ、あるいは同人から始めろ
- 721 :名前は開発中のものです。:2014/11/21(金) 08:02:03.86 ID:KX4IO8pf.net
- ゲーム業界はやりたい人が多い割りに雇用創出効果が薄いから
競争率激しくて経営者もやりたいことやらせてもらえて感謝しろみたいな態度でくるから
激務薄給で使い捨てだよ
- 722 :名前は開発中のものです。:2014/11/21(金) 08:51:37.88 ID:LfVWOyzt.net
- おじいさんたち、板違いの話題は適切な板に誘導して差し上げて
http://wc2014.2ch.net/recruit/
http://kanae.2ch.net/job/
http://kanae.2ch.net/prog/
質問者共々、行ってらっしゃい
- 723 :名前は開発中のものです。:2014/11/22(土) 00:33:56.72 ID:GjARED3K.net
- >>713
>マだけの人海戦術製作
それ楽しそうだね。
テクスチャ、モデリング、効果音も含めて、すべてProcedualに生成するってやつでしょ。
音楽だけは無理か。
- 724 :名前は開発中のものです。:2014/11/22(土) 11:11:14.41 ID:2kOY5/sq.net
- 個人でも最初はそんな感じだけどなー
- 725 :名前は開発中のものです。:2014/11/22(土) 11:27:35.29 ID:UXfM8O3M.net
- >>723
音楽でもMMLのライブラリがあればプログラミングするように作曲が可能
- 726 :名前は開発中のものです。:2014/11/22(土) 12:04:53.88 ID:2kOY5/sq.net
- MMLって聞いてマビノギかよと思ったらMusic Markup Languageだったんだな
Mabinogi Music Languageかと思ってた
- 727 :名前は開発中のものです。:2014/11/22(土) 12:51:58.39 ID:z05T//p3.net
- >>693-695
アイテムを実体処理するとセーブデータ改造が容易になるけどな
昔、ソーサリアンてゲームでアイテム魔法の空を飛ぶ魔法の消費MPを0にした事がある
- 728 :名前は開発中のものです。:2014/11/22(土) 15:25:07.79 ID:2kOY5/sq.net
- チート防止方法って
・リソースファイルを暗号化する
・リソースファイルが改竄されていないかハッシュ値を照合する
・メモリ上の値が書き換えられていないかチェックする
の3つでいい?他にするべきことってある?
スタンドアロンなゲームを想定してる
- 729 :名前は開発中のものです。:2014/11/22(土) 15:28:45.59 ID:4gvnFUCF.net
- 深く考えずにユーザーには改造の自由を与える
- 730 :名前は開発中のものです。:2014/11/22(土) 15:50:11.91 ID:2kOY5/sq.net
- >>729
そのスタンスいいな
githubへのリンクでも添付するか
- 731 :名前は開発中のものです。:2014/11/22(土) 16:53:28.19 ID:5ZWxKn8M.net
- 海外のゲームはそれが普通だね。
オンラインの場合は別だけど
- 732 :名前は開発中のものです。:2014/11/22(土) 17:01:09.64 ID:GtITkLZ+.net
- データを全てXMLやCSVで記述しておいて数値変え放題にする
- 733 :名前は開発中のものです。:2014/11/22(土) 17:02:59.01 ID:ycIYhRSf.net
- 時代はオープンデータ
- 734 :名前は開発中のものです。:2014/11/22(土) 17:31:14.63 ID:2kOY5/sq.net
- それでもハッシュ値は欲しいな
実績「一度もデータを変更せずにクリア」とか
- 735 :名前は開発中のものです。:2014/11/22(土) 18:43:56.35 ID:rQjhf0Yu.net
- 海外はMOD作り放題なゲームも多いな
- 736 :名前は開発中のものです。:2014/11/23(日) 01:04:58.19 ID:4ZBc6dKC.net
- チートを使わないでクリアすると実績だなんて、
なんでそんな当たり前のことを?と変な話にしか見えない俺
っつーか、ハッシュならまずあり得ないだろうが実績ごと改造されそうだよ
- 737 :名前は開発中のものです。:2014/11/23(日) 01:18:05.75 ID:mI42wc3z.net
- そこまでされるようなゲームを作れるのかが問題
- 738 :名前は開発中のものです。:2014/11/23(日) 01:22:28.60 ID:SnMKy+pN.net
- 商業タイトルならともかく個人制作でチート対策なんてかんがえないよな
- 739 :名前は開発中のものです。:2014/11/23(日) 11:11:41.84 ID:+dJYaAUV.net
- でもセーブデータがテキストファイルにcsvで直書きとかだったらプレイする方も萎えるじゃん
- 740 :名前は開発中のものです。:2014/11/23(日) 12:27:51.29 ID:EqABDKyO.net
- 個人制作はチートされてなんぼのレベルだからな。
チートされる規模まで広がるようになってから対策を考えても遅くない。
それ以前にチート対策なんて、
「桃尻にて落ちなんは、心憂かるべしと思ひけり」ってやつだ。
- 741 :名前は開発中のものです。:2014/11/23(日) 12:30:53.64 ID:kaKHHfmS.net
- 一般ユーザーはバックアップ目的でのセーブデータの位置やファイル名は気にするが中身までは気にしない
チート目的ならバイナリかテキストの違いしかない
オンラインでランキングや対戦等他人との接点がある場合には対策したほうが良いけどオフラインは自由にしてやりたい
- 742 :名前は開発中のものです。:2014/11/23(日) 13:56:57.65 ID:82D+n2IC.net
- 中身がテキストでも拡張子を*.savとかにしてあれば普通は開かないよね
まぁチート防止法なら>>728の3つで十分な気がする
メモリ上の数値チェックはしなくてもいいと思うけどww
- 743 :名前は開発中のものです。:2014/11/23(日) 14:02:44.82 ID:+dJYaAUV.net
- ていうか>>728以外に何かある?
リソース抜き出しとか通信盗聴は別にして
- 744 :名前は開発中のものです。:2014/11/23(日) 16:18:46.75 ID:n5OStoXo.net
- ブラウザやランチャーからの起動に限定...とか
- 745 :名前は開発中のものです。:2014/11/23(日) 16:49:33.89 ID:cJk/+EVe.net
- >>741
ほんとこれ。
この意見とまったく同意見だわ。
- 746 :名前は開発中のものです。:2014/11/23(日) 20:40:57.35 ID:4ZBc6dKC.net
- MODはともかく、コンテンツ食い荒らさせても開発者には全くメリットないし
そこまでして公開するくらいなら、むしろ公開せずに自分で楽しむよ
タダで公開している時点でメリットなんてないだって?
この俺が、金やちやほやされるためにゲームを作っていると思っているのかーッ!
(目を泳がせながら)
- 747 :名前は開発中のものです。:2014/11/24(月) 00:38:32.67 ID:8cacGq0B.net
- サーバーにセーブデータ保管
- 748 :名前は開発中のものです。:2014/11/24(月) 10:03:38.23 ID:dzDmH2rP.net
- データ改竄は許しまへんで
- 749 :名前は開発中のものです。:2014/11/24(月) 17:33:44.16 ID:Z/FunYTK.net
- >>740
クソゲー杉てタルいんで、さっさと改造してCGだけ回収してる
改造できない同人ゲーなんてやってられっかよ
- 750 :名前は開発中のものです。:2014/11/24(月) 17:55:20.84 ID:2xrZiHXU.net
- そだね
- 751 :名前は開発中のものです。:2014/11/24(月) 18:39:45.23 ID:zdvI3CUV.net
- そこまでしてcg回収なんかしたいとなると、修羅の国のゲームかな?
修羅の国のゲームは同人であるなしに関わらず基本的にクソゲー
クソゲーでない修羅の国のゲームは希少
- 752 :名前は開発中のものです。:2014/11/26(水) 17:10:13.93 ID:uKd9Te04.net
- 中央のスプライトに隣接しているスプライトを、
中央のスプライトの大きさによって位置を変えられるようにするには、
どのような方法が考えられるでしょうか?
あらかじめ中央のスプライトにフラグを設定しておいて、
その数値によって周りの位置を制御するという方法は思いついたのですが、
どうもマジックナンバーだらけで気持ちが悪いし汎用性が低いのです
- 753 :名前は開発中のものです。:2014/11/26(水) 17:20:11.22 ID:Y1/yNkyi.net
- emun
- 754 :名前は開発中のものです。:2014/11/26(水) 19:59:12.17 ID:AChn1R5P.net
- enum
- 755 :名前は開発中のものです。:2014/11/26(水) 20:02:16.64 ID:/W/8yg6H.net
- nullpo
- 756 :名前は開発中のものです。:2014/11/26(水) 20:23:02.74 ID:utK4NJ2p.net
- ga!
- 757 :名前は開発中のものです。:2014/11/26(水) 20:49:02.86 ID:gy/4zLs8.net
- 隣接の概念があるなら、それぞれのスプライトはパラメータとして「半径」を持っているのでは?
中央のスプライトだけ特別扱いする必要はないんじゃないの?
- 758 :名前は開発中のものです。:2014/11/29(土) 12:17:43.47 ID:RkdSMohZ.net
- http://brbranch.jp/blog/201312/cocos2d-x/cocos2dx_ccscale9sprite/
これかな?
- 759 :名前は開発中のものです。:2014/11/29(土) 12:18:18.60 ID:RkdSMohZ.net
- あやべ、cocos2dxのスレじゃなかった
- 760 :名前は開発中のものです。:2014/11/30(日) 12:30:11.20 ID:2LtupVMk.net
- std::vectorのfrontとsizeとbeginとendとdataの使い分けの見分け方を教えて下さい
- 761 :名前は開発中のものです。:2014/11/30(日) 15:32:55.05 ID:wowBQ4xC.net
- http://www.cppll.jp/cppreference/cppvector.html
https://sites.google.com/site/cpprefjp/reference/vector/data
sizeは要素数取得
beginとendはイテレータ始端と終端取得
frontは先頭要素の参照取得でv[0]と一緒
dataはvectorのデータをただの配列として使いたい時用で&(v[0])と一緒
イテレーターは全部の要素に処理する時とかに使う時が多いけどsizeの数だけ繰り返しとかでも出来るし
使い分けとか考えなくても好きに使ったらいいんじゃない
- 762 :名前は開発中のものです。:2014/11/30(日) 16:30:02.97 ID:9UMHtIHE.net
- イテレータいわゆる反復子を使うと
for_each(ary.begin(), ary.end(), func());
このような感じで書ける、ary がvector<int> であってもいいし、list<int>であってもいい、
最初にlist<int> で、あとでvector<int>に書き直してもfor_eachはそのままで使えるので書きなおす必要はない。
typedef list<int> IntArray;
このようにtypedefしておけば IntArrayを使ってあとでvectorに変えるのも
typedef vector<int> IntArry;
にすればいいだけになるので変更が楽になる。
ただ、ゲームのプログラムだと速度的に最初からvectorに決まってたりする。
dataはstringのc_str()のように、受け取る側が配列ポインタになってる時に使うものだと思う。
C言語のライブラリとかはそのようなのが多いしな。
- 763 :名前は開発中のものです。:2014/11/30(日) 18:07:42.80 ID:2LtupVMk.net
- >>761-762
ありがとう
- 764 :名前は開発中のものです。:2014/11/30(日) 18:49:40.41 ID:09iyr5dN.net
- 最適化で変数が削られる憂き目に遭った・・・。
DirectXMathのXMMatrixPerspectiveFovLHの第2引数に与える、画面のアスペクト比なんだけど、
直前で
float fAspect = VP.Width / VP.Height;
ってな感じで書いてたら、Debugモードだと正常に動作するのに、
Releaseモードだとクラッシュする。
とりあえず、コメントアウトしながら原因箇所を追跡したら、上記のアスペクト比算出箇所に行き着いたわけ。
試しにvolatile修飾子を付けてみたら正常に動作することになったから、
最適化で削られたことが判明したんだけど、これ、どういうときに発生するか知ってる?
今までコンパイラ(VC++)に裏切られたことが一切なくて、信頼しきってただけに、ちょっとショック・・・。
今回は小規模なテストプログラムだから大した影響はなかったんだけど、
大規模で複雑なの組んでるときにこういうのが出ると話がややこしくなって厄介だ。
- 765 :名前は開発中のものです。:2014/11/30(日) 19:08:33.40 ID:6mhBW/fH.net
- 再現手順も説明できずにコンパイラのバグとか言い出す奴の
99%以上は本人のミスだ
- 766 :名前は開発中のものです。:2014/11/30(日) 19:19:20.08 ID:wowBQ4xC.net
- VCのデバッグとリリースで最適化って変わんの?
デバッグビルドってデバッグコード埋め込むだけだと思ってたわ
http://msdn.microsoft.com/ja-jp/library/dykf6bx9.aspx
- 767 :名前は開発中のものです。:2014/11/30(日) 19:28:29.73 ID:3sYJoklf.net
- デフォルトではデバッグビルドのオプション設定は最適化無効になってるみたいね
- 768 :名前は開発中のものです。:2014/11/30(日) 19:28:51.51 ID:6mhBW/fH.net
- デバッグが困難になるからデフォルトでは最適化は無効になる
- 769 :名前は開発中のものです。:2014/11/30(日) 19:37:40.53 ID:mq2znQaR.net
- >>764
その変数が引数としてしか使われてないなら、変数を経由しないで
計算結果を直接スタックに乗せるようになってる、とかかなぁ。消えた原因は。
あんまり関係ない話だけど
つい最近(というか今日)、DirectXMathで躓いたのが
newで確保したXMVECTORの配列が16バイトアラインメントに乗って無くて
SSEのmovapsでアクセス違反が起きるって奴だった。
アクセス違反が報告されたメモリアドレスが「0xFFFFFFFF」ってなってて
どういうこっちゃとしばらく悩んだよ・・・。
- 770 :764:2014/11/30(日) 19:54:39.02 ID:09iyr5dN.net
- >>769
ちょ・・・、今回クラッシュするところの逆アセンブリ結果が、同じくmovapsっす・・・。
floatの引数削られるのと、どう関係あるか分からないけど。
DirectXMathのSSE絡み、ちょっと怖いっすね。
>その変数が引数としてしか使われてないなら、変数を経由しないで
>計算結果を直接スタックに乗せるようになってる、とかかなぁ。消えた原因は。
そうそう、引数にしか使われてないから、ダイレクトにスタックに乗せるのは納得する。
けど、なぜクラッシュw
- 771 :名前は開発中のものです。:2014/11/30(日) 20:14:02.81 ID:mq2znQaR.net
- >>770
movapsはXMMレジスタへ128ビット分のデータを一括転送するSSE命令だけども
メモリ⇔レジスタの転送の場合、メモリ側が16バイト境界に沿っている必要があるのよ。
(movapsのaはalignedのa)
XMMatrixPerspectiveFovLHの戻り値を格納しようとしている変数(XMMATRIX)の
メモリアドレスが怪しい気がする。
XMMATRIXはXMVECTOR4個の塊だし
- 772 :名前は開発中のものです。:2014/11/30(日) 20:25:50.60 ID:mq2znQaR.net
- 追記。
多分、リリースビルドでだけ発生する原因は、速度優先の最適化によって
movups命令(16バイト境界に沿っていなくてもOK、ただし低速)からmovaps(高速)に
使用する命令が置き換えられたからだと思う。
で、多分fAspectにvolatileを付けたら動くってのは
fAspectの分だけスタック使用量が増えるから、格納先変数のアドレスが
16バイト境界に合うようになって、それでエラー落ちしなくなるんじゃないかな・・・
でも「_m128 型の変数は、16 バイト境界に自動的にアラインされます。」ってMSDNには書いてあるから
違う原因かも。
- 773 :764:2014/11/30(日) 21:00:10.04 ID:09iyr5dN.net
- >>771-772
サンクス。
fAspectが増えたことで16Byteアラインしたから通ったとしたら、たまたまで怖い気もw
いずれにせよ、たしかに_m128型使ってる以上、アラインされることは期待できそうだよね。
- 774 :名前は開発中のものです。:2014/11/30(日) 21:49:21.14 ID:3sYJoklf.net
- いつになく勉強になる流れだなw
- 775 :名前は開発中のものです。:2014/11/30(日) 22:42:52.60 ID:wowBQ4xC.net
- アライメントでクラッシュとかデバッグ大変そう
ヒープに確保すんのはやめた方がいいらしいけど
http://msdn.microsoft.com/ja-jp/library/ee418725%28v=vs.85%29.aspx
- 776 :名前は開発中のものです。:2014/12/03(水) 13:17:19.43 ID:Z1yRDwuo.net
- Unityにナビメッシュっていう機能あるけど、内部ではダイクストラ法使ってるの?
- 777 :名前は開発中のものです。:2014/12/03(水) 13:18:24.64 ID:iziS6ZnM.net
- 3回に1回は使ってる
- 778 :名前は開発中のものです。:2014/12/03(水) 21:11:51.59 ID:OgMzERcn.net
- ファイルの読み書きのやり方って、
・C標準のfopen系
・C++標準のfstream系
・WinAPIのCreateFile、ReadFile、WriteFile
みたいに、たくさんあるけど、使い分けってどうしてる?
- 779 :名前は開発中のものです。:2014/12/03(水) 22:44:11.09 ID:TXwtBb38.net
- WinAPI系に近いライブラリを作る場合はCreateFile、ReadFile、WriteFile、
普段使いのC++で機種依存しないライブラリはstream系
C系のライブラリで開発汁ときはfopen系
いずれにせよメインプログラムから直接ファイル操作関数は使わなーい
- 780 :名前は開発中のものです。:2014/12/04(木) 01:02:24.18 ID:YkojZjJM.net
- Windows環境と仮定して。
C標準を使うとランタイムライブラリが必要になるので却下。
今どき使うのはオッサンとバカだけ。
C++も結局はWinAPIの薄いラッパに過ぎないので、
基本的にはWinAPIを呼ぶのが正解。
- 781 :名前は開発中のものです。:2014/12/04(木) 03:01:38.93 ID:ClGYe+T3.net
- CRT使わないなんて、よほど節制しないとつらくないか?
try-catchを使っただけでもCRTが要るだろ?
あと、Windowsなら、よく使うのはAPIの関係でIStream系が多いなぁ。
- 782 :名前は開発中のものです。:2014/12/04(木) 03:07:11.75 ID:iZaOw4vq.net
- C++だってランタイム必要なのに変わりないような
- 783 :名前は開発中のものです。:2014/12/04(木) 08:11:19.48 ID:L+71L5pW.net
- ランタイム必要な記述ってどういうのがある?
例外、IO、メモリ関係とかはランタイム必要そうだけど
その辺全部OSのAPIで済ますの?
- 784 :名前は開発中のものです。:2014/12/04(木) 08:35:11.34 ID:y13HpW+M.net
- >>780の常識は世界の非常識
- 785 :名前は開発中のものです。:2014/12/04(木) 09:42:58.76 ID:ClGYe+T3.net
- >>783
昔のATLコンポーネントで、実行ファイルを小さくするためにランタイム無しってのはたまに見かけた。
IOやメモリ関係は、Win APIで代替が利く。 例外は使わないか、SEHやRAIIで代用。
ただ、浮動小数やstd::*を使えないし、かなりの制限を受けるよ。
- 786 :名前は開発中のものです。:2014/12/04(木) 10:01:50.12 ID:Eg8ibX6r.net
- 要件も確認しない実行ファイルサイズ至上バカが、生産性もクロスプラットフォームも捨ててWin32APIを直接使うって主張してるだけだな。
そっちの方がオッサンくさい。
- 787 :名前は開発中のものです。:2014/12/04(木) 19:29:15.66 ID:tgdEpz3N.net
- 自分はRAIIなfstream系が好みだな。
WinAPIでも、
shared_ptr<void> pFile( CreateFile( ... ), CloseHandle );
でRAIIできるし、WinAPIならメモリマップドファイルが使えるから、Seekすることが多い用途で使う。
fopen系でも、上記要領でRAIIできるけど、
fopenだと、VC++でfopen_s使えって警告がウザいし、1行でスマートに書けないから嫌い。
でも、fprintf、fscanfは便利なんだよなぁ・・・。
- 788 :名前は開発中のものです。:2014/12/04(木) 21:52:37.38 ID:BSnl4VWG.net
- 状況によって使い分けてるな。なので>>778に近い気がする
ファイル入出力に近いモジュールは一度組んだらほぼ手を加えないので
環境依存のAPIを使ってても、次に使う時は細かいこと忘れちまってるな
オッサンだな
- 789 :名前は開発中のものです。:2014/12/04(木) 21:53:54.27 ID:BSnl4VWG.net
- ×>>778 ○>>779
- 790 :名前は開発中のものです。:2014/12/06(土) 04:00:55.39 ID:X/U/zDqc.net
- まとめブログが世論誘導加速中 閲覧数と影響力が大きいのでまとめブログにもコメント宜しくお願いします。
http://jbbs.shitaraba.net/bbs/read.cgi/news/5097/1275245794/96 ←
- 791 :名前は開発中のものです。:2014/12/07(日) 13:13:24.02 ID:mFsIvomy.net
- クラスのメンバのvector変数にpush_backをしたのに、push_backしたメンバ関数が終了すると
他のメンバ関数でsizeが0になるんですが、vectorにそういう感じの仕様ってあるんですか?
http://codepad.org/QE4clISm
vector変数の中身を消す処理はしてません
- 792 :名前は開発中のものです。:2014/12/07(日) 13:40:07.34 ID:9LyEQ/ju.net
- http://melpon.org/wandbox/permlink/PGTC7VqZBylSFl9m
- 793 :名前は開発中のものです。:2014/12/07(日) 14:36:04.47 ID:5KYRoGrU.net
- デストラクタが走ってからsize()を呼んでるとかそんなオチだろうな
- 794 :名前は開発中のものです。:2014/12/07(日) 14:39:37.63 ID:hyValMsU.net
- どうでもいい質問で悪いけど、範囲for文とstd::for_eachってどっち使ってる?
- 795 :名前は開発中のものです。:2014/12/07(日) 15:34:57.43 ID:EqvPSafZ.net
- 範囲for
- 796 :名前は開発中のものです。:2014/12/07(日) 16:06:32.38 ID:6S6vavTT.net
- 範囲for
- 797 :名前は開発中のものです。:2014/12/07(日) 16:43:30.16 ID:dMVqqTm9.net
- 範囲for
C#やVB使う場合はfor each使うけどね
C++では扱いづらい
- 798 :名前は開発中のものです。:2014/12/07(日) 16:52:24.55 ID:dMVqqTm9.net
- わざわざ関数名考えないといけないから面倒なんだよな
- 799 :名前は開発中のものです。:2014/12/07(日) 16:56:54.79 ID:9LyEQ/ju.net
- ラムダのことも忘れないであげてください
- 800 :名前は開発中のものです。:2014/12/07(日) 17:45:42.30 ID:e6dpx8ym.net
- 範囲for!そういうのもあるのか
イテレーター使えればなんでもいけるのこれ
- 801 :名前は開発中のものです。:2014/12/07(日) 17:57:50.11 ID:fL0IRO+A.net
- 範囲for、途中でインデクスが欲しくなって、
結局普通のforになることが多い。
- 802 :名前は開発中のものです。:2014/12/07(日) 18:19:55.91 ID:6S6vavTT.net
- >>801
あるあるw
でもそうでもない限りは記述が美しいから、できる限り使うようにしてるな。
- 803 :名前は開発中のものです。:2014/12/07(日) 20:32:17.28 ID:heuc+ktl.net
- ランダムアクセスイテレータならdistanceで取ればいいだけ
- 804 :名前は開発中のものです。:2014/12/07(日) 20:40:01.29 ID:6S6vavTT.net
- >>803
知らんかったw
すげーw
さんきゅー。
- 805 :名前は開発中のものです。:2014/12/07(日) 21:00:39.07 ID:KCbAkKfJ.net
- std::for_each で being() end() を書かずに済む方法ってあったっけ
範囲forのほうがむしろタイプ数が少ないような
- 806 :名前は開発中のものです。:2014/12/07(日) 21:44:37.07 ID:0+t1yYxF.net
- BOOST_FOREACHを使うのが一番良いのでは
- 807 :名前は開発中のものです。:2014/12/08(月) 00:26:35.24 ID:Tkb5ImKO.net
- boost使っていいんなら
boost::for_eachというのもある
- 808 :名前は開発中のものです。:2014/12/08(月) 01:42:50.74 ID:/dWjo4ra.net
- distanceはrandomの時はO(1)それ以外はO(n)か
考えてみれば当たり前だけどこれvector以外のコンテナで全ての要素でやったら計算量O(n2)になるな
こういうのちゃんと覚えておかないと使い所間違えそう
- 809 :名前は開発中のものです。:2014/12/10(水) 15:07:51.95 ID:fIQTJgum.net
- 市販の3DアクションゲームってC++で作られてるの?
それともUnityとかアンリアルエンジンとか?
- 810 :名前は開発中のものです。:2014/12/10(水) 19:05:50.57 ID:UFn2Nat6.net
- ほとんどC++やJAVA等でプログラミングしてると思うが、
最近は一部エディタでもコンシューマ開発用キットを出してる
エディタ系はアクション系特化が多いので、
もしかしたらエディタ製もあるかもしれない
- 811 :名前は開発中のものです。:2014/12/10(水) 20:57:58.95 ID:WqzdIXuz.net
- それともUnityって何だよ
Unityだってコア部分はC++で作られているだろ
- 812 :名前は開発中のものです。:2014/12/10(水) 21:08:38.95 ID:OgtEYajR.net
- そういう意味じゃねえだろ
- 813 :名前は開発中のものです。:2014/12/10(水) 21:17:30.67 ID:Z1DuKoHt.net
- エディタは内部で独自に言語を作っているところも多いし ほとんど使わないのもある
そもそもプログラミング言語使わずにゲームが作れるのが一番の売りだし
- 814 :名前は開発中のものです。:2014/12/10(水) 21:19:34.07 ID:WqzdIXuz.net
- Unityじゃない所は
そう言うミドルウェアにライセンス料払いたくないか
全部自分でコントロールしたいから非オープンソースが嫌な人達だろう
- 815 :名前は開発中のものです。:2014/12/10(水) 21:21:37.53 ID:TxBmxmRH.net
- >>809は言語とゲームエンジンの区別がついてないのだろうな、とは俺も思う
- 816 :名前は開発中のものです。:2014/12/10(水) 21:26:51.59 ID:PG4tDcoQ.net
- フルスクラッチか否かって話じゃね
- 817 :名前は開発中のものです。:2014/12/10(水) 21:27:36.02 ID:Z1DuKoHt.net
- 言語使って自分で組んでるのかエディタ使って作ってるのか聞きたかったんだろ?
で、商業でやってるところはだいたい自分で書いてるとすでに答えられてる
- 818 :名前は開発中のものです。:2014/12/10(水) 21:34:16.87 ID:FC5BkzvK.net
- バイナリデータとかバージョン管理が出来ないから嫌すぐるw
- 819 :名前は開発中のものです。:2014/12/10(水) 21:35:32.23 ID:X2qHCJlA.net
- 難しかったり面倒な部分をエンジンやライブラリに押し込むのは良くあること。
それを簡単なC++から使うか、適当なスクリプト言語から使うかの差しかない。
- 820 :名前は開発中のものです。:2014/12/10(水) 21:48:54.83 ID:Z1DuKoHt.net
- バイナリデータなんか直接扱うことはほぼないぞ…
それをしないためのプログラミング言語なんだし
バージョン管理は商業で作るところならまず間違いなく専用のソフトを入れているし、
個人でやるなら中〜大規模な作品でもなければ多分なくても管理できる
何人か集まって作るならその時導入を検討すればいい
- 821 :名前は開発中のものです。:2014/12/10(水) 22:03:07.95 ID:FC5BkzvK.net
- エディタってのが専用のバイナリを直接変更するものだと思って書いた
バージョン管理って個人的なのでも結構使うなあ・・・
ソースに変なコメントとか残したくないんだよねw
- 822 :名前は開発中のものです。:2014/12/10(水) 22:21:09.59 ID:6ysuSswG.net
- 男なら全部C++
- 823 :名前は開発中のものです。:2014/12/10(水) 22:22:55.40 ID:WqzdIXuz.net
- Unityはバージョン管理システムが組み込まれてるし
svn等の外部のバージョン管理システムも使いたければ使える
- 824 :名前は開発中のものです。:2014/12/10(水) 23:18:34.81 ID:SWjWjl7/.net
- コードにコメントでいつ追記とか書くの鬱陶しいよな
場合によっては編集前のコードをコメントで残すとかいうルールしいてることもある
もうアホかと
- 825 :名前は開発中のものです。:2014/12/10(水) 23:36:58.77 ID:FC5BkzvK.net
- うん
Gitだとサーバーとか立てなくても気軽にローカルでリポジトリ
作れたりとかできちゃうから楽だわ
作業内容はソースにコメントで残すんじゃなくコミットログに
押し込めるし時系列で追えるしね
- 826 :名前は開発中のものです。:2014/12/11(木) 00:13:34.16 ID:RhkXQVIG.net
- UnrealEngine4はC++でプログラミングするんだぞ
- 827 :名前は開発中のものです。:2014/12/11(木) 00:16:26.40 ID:6Drf6QBa.net
- bitbucketにリモートリポジトリ取っておけば優秀なバックアップに。
ちょっと思い付いたらブランチ切って気が済むまで弄り倒して
上手く行ったらそのままマージ、
ダメだったら元のブランチをチェックアウトすれば元通り。
今はGUI付きのクライアントもあるし有り難い時代だ
- 828 :名前は開発中のものです。:2014/12/11(木) 02:04:41.77 ID:vflPKXfm.net
- ゲーム会社の求人見てたら普通に
Unityやcocos2dの経験者歓迎とか書いてあるぞ
商用で普通に使われてるんだと思うんだが
- 829 :名前は開発中のものです。:2014/12/11(木) 08:52:12.08 ID:6p4P8aMh.net
- 大手ならC/C++で独自ツール作るけど
弱小は既存ツール使うしか選択肢がない
- 830 :名前は開発中のものです。:2014/12/11(木) 09:22:11.45 ID:HPqpSaB4.net
- 1つでも使いこなせれば応用が利くから教育の手間が省けるってことじゃないの?
- 831 :名前は開発中のものです。:2014/12/11(木) 13:18:32.61 ID:2JpT6opC.net
- >>817はどこの世界の話か知らないが
Unity使った商業作品なんて山ほどあるだろ
>>829
いやだからどこの世界の話だよ。
- 832 :名前は開発中のものです。:2014/12/11(木) 19:04:56.48 ID:aRGwjS4y.net
- 「大手は既存ツールやエンジンを使わない」とは言ってないと思うぞ
- 833 :名前は開発中のものです。:2014/12/11(木) 19:10:00.11 ID:b4/DV/vl.net
- 結局潰しがきかないのよね、開発エンジンって
それでも大抵の人は困ることはないだろうけど
- 834 :名前は開発中のものです。:2014/12/11(木) 21:50:30.14 ID:jqIw6zJe.net
- 日本で汎用のゲームエンジンってソシャゲくらいしか思いつかんな
海外だとアンリアルエンジンで作った大型タイトルあるぽいんだが
http://ja.m.wikipedia.org/wiki/Unreal_Engineを採用したゲームソフト一覧
- 835 :名前は開発中のものです。:2014/12/11(木) 22:59:37.83 ID:aRGwjS4y.net
- 汎用ってゲームジャンルに対しての汎用じゃなくて、
いろんなユーザ(団体)が利用できるという意味での汎用?
エロゲやアマチュアまで含めれば、テキストゲーム系エンジンやツクール等も結構多そうだが。
- 836 :名前は開発中のものです。:2014/12/11(木) 23:14:39.27 ID:jqIw6zJe.net
- ライセンス販売してるようなゲームエンジン
UnityとUE位しか知らんけど
2Dもこういうエンジンってなんかあるんかな
- 837 :名前は開発中のものです。:2014/12/11(木) 23:22:19.61 ID:FC/EOQl8.net
- >>836
・・・
cocos2d-x
http://peace.2ch.net/test/read.cgi/gamedev/1390136237/
- 838 :名前は開発中のものです。:2014/12/11(木) 23:43:01.37 ID:jqIw6zJe.net
- cocosはエンジンじゃなくてフレームワークだし
ソシャゲではよく使われてるみたいだけど
- 839 :名前は開発中のものです。:2014/12/12(金) 00:23:08.10 ID:QnblLndC.net
- 開発エンジン単体では潰しがきかなくても
いろんな開発エンジンを次々使いこなせるだけの柔軟さと適応力は充分潰しが利くと言えると思う。
- 840 :名前は開発中のものです。:2014/12/12(金) 02:25:38.84 ID:bDxMroSG.net
- それだけの適応力があるならそれ使って言語習得した方が早そうだ
独自仕様のゲーム作るなら特に
- 841 :名前は開発中のものです。:2014/12/12(金) 07:21:28.86 ID:o+Ocs+h7.net
- エンジン使うのと作るのとじゃ大違いでしょ
エンジン使いこなせるって言ってもエディタ使って効率的に作れるだけでプログラマとしてはスクリプタレベルよ
- 842 :名前は開発中のものです。:2014/12/12(金) 12:34:20.78 ID:wXPiKRYS.net
- 潰しが効くって何について言ってるんだ?
何でも自前で作るのが良いとは限らないだろ
- 843 :名前は開発中のものです。:2014/12/12(金) 13:11:01.77 ID:so0Qz3P5.net
- そもそもゲームエンジン使ったからといって中のコードに触れない訳じゃないし。
何でもかんでも自分で書いて糞のようなコード量産するより、広く使われているゲームエンジンの良い設計のコードに触れる方が為になる。
- 844 :名前は開発中のものです。:2014/12/12(金) 13:27:08.97 ID:evwzVpBf.net
- まぁ、デキは別にして、自分でスクラッチで書いたところが多いほど達成感も大きいw
- 845 :名前は開発中のものです。:2014/12/12(金) 16:01:25.41 ID:v/KVbnR1.net
- Unityって物理演算とかナビメッシュとかあるけど、あれってC++でも出来るの?
- 846 :名前は開発中のものです。:2014/12/12(金) 17:38:37.97 ID:cemAAiyO.net
- >>845
できますん
- 847 :名前は開発中のものです。:2014/12/12(金) 18:39:21.32 ID:ntY+D6GU.net
- 他人のコードに任せっぱだと、複雑なデータ構造とか作れなくね?
- 848 :名前は開発中のものです。:2014/12/12(金) 19:46:05.18 ID:KvfRzLEl.net
- 俺は作る必要ないんで
- 849 :名前は開発中のものです。:2014/12/12(金) 20:17:56.66 ID:6Y7Yxnc1.net
- 凡百の人間で終わりたくないな、俺は
- 850 :名前は開発中のものです。:2014/12/12(金) 20:19:28.11 ID:evwzVpBf.net
- 俺も。
- 851 :名前は開発中のものです。:2014/12/12(金) 20:48:58.45 ID:s0rRP3Zy.net
- 他人に読めるコードは書いてねw
- 852 :名前は開発中のものです。:2014/12/12(金) 21:30:09.86 ID:EW3P8d8T.net
- 可読性が低すぎて自分にすら読めないコードには、
そこらのサイトに書いてある簡単なテンプレコードほどの価値もないからな…
- 853 :名前は開発中のものです。:2014/12/12(金) 21:41:45.52 ID:KfzBrrjx.net
- まあ他人に読ませる必要がなければ好きにすればいいでしょ
自分で読めないのは論外だけど
- 854 :名前は開発中のものです。:2014/12/12(金) 22:33:35.88 ID:evwzVpBf.net
- 一ヶ月後の自分は他人と同じ
- 855 :名前は開発中のものです。:2014/12/12(金) 23:05:56.51 ID:KfzBrrjx.net
- ならその一ヶ月後の自分用に読めるコーディングにするべきだな
いずれにしても自分で読む気も起きないようなコードはただのゴミ
- 856 :名前は開発中のものです。:2014/12/12(金) 23:44:33.51 ID:b4Xh27MQ.net
- 良い設計のライブラリに触れる事は自分がライブラリ書くときの糧になるだろ?それと同じ事だよ。
そのライブラリを深く理解する事がないとか、ライブラリになるようなものを書くことがないというのであれば、それだけの資質だったということ
- 857 :名前は開発中のものです。:2014/12/12(金) 23:59:52.22 ID:EW3P8d8T.net
- C++使ってる人でライブラリを使わない人なんてこの世にいるのか?
よほど天才的なプログラミングの素質でもなければソフト作りのはるか手前で地面に転がるぞ
っつーか、ライブラリ製作自体がソフト製作に近いし
- 858 :名前は開発中のものです。:2014/12/13(土) 06:34:13.77 ID:/sKItXqV.net
- フルスクラッチ派と流用派の言い争いか
まあ、適材適所じゃね?
今更ゲーム製作でデータ圧縮や暗号化、組み込みスクリプトのコードを書く奴は滅多にいないだろ
書いたけどな、俺は、スクリプトを
けど、ゲーム製作での一番のキモは独創性だろ
そんな所は自分で書くしか方法が無いんだよ!
独創性の無い、ありふれたゲームを作りたいなら、好きに流用すればいいさ
- 859 :名前は開発中のものです。:2014/12/13(土) 10:06:03.65 ID:KmIl68fQ.net
- 読めるコードを書く能力より、
どんなコードでも読める能力の方がいい。
- 860 :名前は開発中のものです。:2014/12/13(土) 10:33:09.68 ID:GVgS9kEW.net
- >>859
読めるコード書けないとチーム開発で役に立たないじゃん
リバースエンジニアリング専門でやんの
- 861 :名前は開発中のものです。:2014/12/13(土) 11:10:08.60 ID:vJXa5IWH.net
- このスレ、プログラマーが複数人開発の環境の人、居るの??
- 862 :名前は開発中のものです。:2014/12/13(土) 11:19:10.70 ID:KmIl68fQ.net
- 読める具合が数値化できればいいのだけど。
何書いても読めない人はいるわけで。
- 863 :名前は開発中のものです。:2014/12/13(土) 11:28:25.00 ID:A651+XDE.net
- >>858
すげーな。
実力派だな。
やっぱ自分で書くのが一番気持ちいいな。
基本的には一人で全部組んでるな。
生産性は別にしてw
- 864 :名前は開発中のものです。:2014/12/13(土) 11:46:26.04 ID:OLxz298b.net
- ダーティーなコードを読む能力ついでにクリーンコードに書き直す能力もあった方がいいな
まあlint通してからやれば比較的楽だが
- 865 :名前は開発中のものです。:2014/12/13(土) 12:02:01.67 ID:cTfiogfq.net
- enum(エナム)
struct(ストラクト)
const(コンスト)
yield(イヨールド)
extern(エクスターン)
explicit(エクスプリクト)
sizeof(サイズオフ)
- 866 :名無しさん@そうだ選挙に行こう:2014/12/13(土) 12:42:15.70 ID:GVgS9kEW.net
- enumえにゅうむ
yieldいーるど
exturnいくすたーん
explicitいくすぷりしっと
sizeofさいずおぶ
- 867 :名無しさん@そうだ選挙に行こう:2014/12/13(土) 12:46:53.80 ID:YQCx+6st.net
- ×exturn
○extern
- 868 :名無しさん@そうだ選挙に行こう:2014/12/13(土) 12:47:23.37 ID:GVgS9kEW.net
- oh misstake
- 869 :名無しさん@そうだ選挙に行こう:2014/12/13(土) 12:47:27.98 ID:vmsxYpAR.net
- いや読むってのは音読することじゃないから
- 870 :名無しさん@そうだ選挙に行こう:2014/12/13(土) 13:34:00.06 ID:cTfiogfq.net
- 「ある画像が透明になりきったら、画面を別の画面に遷移する」という処理をしたいんですけど
その「ある画像」の不透明度に依存して画面遷移を操作してもいいんでしょうか?
・その画像の不透明度は他で操作されない
・SetOpacityの内部で0以下255以上の数値はそれぞれ最小値最大値に正規化される
という環境であるものの、減少し続ける値を等価演算子で比較したりするのは、ゲームを作り慣れてる人から見るとどうなのかなと
それに、画面に複数ある内の1つのパーツでしかない画像に画面が依存するのはオブジェクト指向?的にはどうなんでしょうか?
Scene::update(){
if(image->GetOpacity() == 0){
//遷移する
}else{
image->SetOpacity(image->GetOpacity()-15);
}
}
- 871 :名無しさん@そうだ選挙に行こう:2014/12/13(土) 13:39:12.16 ID:A651+XDE.net
- >>870
透明度を直接評価するんじゃなくて、
もう少し抽象的に、遷移準備完了状態、みたいなものを評価したら汎用的じゃない?
- 872 :名無しさん@そうだ選挙に行こう:2014/12/13(土) 13:54:47.72 ID:cTfiogfq.net
- >>871
こんな?感じでしょうか
違和感すっきりしたんでこれでやってみます、ありがとう
Scene::update(){
if(image->GetOpacity() == 0){
transitionFlag = true;
}else{
image->SetOpacity(image->GetOpacity()-15);
}
if(transitionFlag){
//遷移
}
}
- 873 :名無しさん@そうだ選挙に行こう:2014/12/13(土) 15:13:37.37 ID:ZiMlwiS0.net
- スレ流し読みしてたらフルスクラッチ云々のせいで乾燥肌が痒くなってきた
フルスクラッチ派:「あぁ^〜痒いところに手が届くんじゃぁ^〜」(バリバリ
- 874 :名無しさん@そうだ選挙に行こう:2014/12/13(土) 18:29:40.45 ID:OLxz298b.net
- まー確かに自分の都合でどんどん改変できるしなあ
- 875 :名無しさん@そうだ選挙に行こう:2014/12/13(土) 20:39:35.80 ID:8y/GDHu5.net
- 何度も言うが、初心者は大抵の場合自作ライブラリが完成する前に力尽きるからな
ある程度ガリガリ書けるようになるまで絶対に真似するんじゃないぞ!
- 876 :名無しさん@そうだ選挙に行こう:2014/12/13(土) 20:59:49.32 ID:xmg5RhiV.net
- ライブラリ作るほうが楽しい
- 877 :名無しさん@そうだ選挙に行こう:2014/12/13(土) 21:24:26.17 ID:ht1CXKxj.net
- 車輪の再発明はしないとか言ってるけど、ライブラリ作らないやつの技術力は総じて低いしな
- 878 :名無しさん@そうだ選挙に行こう:2014/12/13(土) 22:34:29.96 ID:ZiMlwiS0.net
- おじさんはいつも即売会で一旦真っ白な灰になって意欲が回復したら
しょぼしょぼとリファクタリングだなぁ…そのサイクルを繰り返す内に
ライブラリやら何やらが自然と充実していったよ
凡人だから知見の獲得は経験の積み重ねによるところが大なんだよねぇ
- 879 :名無しさん@そうだ選挙に行こう:2014/12/13(土) 22:37:32.08 ID:8y/GDHu5.net
- しかしむやみに作るとscanfの二の舞に
あのくらいの代物詰め込んだライブラリを作るなら他人の作った物使って下さい、頼むから
元々多くの人に使われる予定がなかったからなのか、
超がつくくらい初期の関数のせいなのか、あの関数欠陥が多すぎ
一体何に使う予定だったんだろうか?
- 880 :名無しさん@そうだ選挙に行こう:2014/12/13(土) 23:06:20.95 ID:A651+XDE.net
- >>878
ゲーム売ってるんだ。
すごい。
自分の作ったゲームをプレイしてもらうのって、やっぱ即売会がいいの?
ネットでそういう場とかないのかな?
最近だと、ニコニコの自作ゲームコンテストみたいなのかな?
- 881 :名無しさん@そうだ選挙に行こう:2014/12/13(土) 23:31:59.05 ID:MCAEResE.net
- >>880
DLSiteとかDMMとか、いくらでもあるが?まあエロや萌えに偏ってるきらいはあるが
- 882 :名無しさん@そうだ選挙に行こう:2014/12/14(日) 02:35:05.98 ID:9YbZbvSi.net
- scanf詳しく
- 883 :名無しさん@そうだ選挙に行こう:2014/12/14(日) 09:49:32.25 ID:BC24ajZK.net
- 呼び出すだけでコマンドラインでインタラクティブ いやっほぅ! の優れものだぜ
元々プロ中のプロしか使わない前提だけどな
前提をひっくり返すなら中級者以下がCを使うこと自体がおかしい
- 884 :名無しさん@そうだ選挙に行こう:2014/12/14(日) 11:18:28.43 ID:V/uzlPBv.net
- scanfは超初学の頃に学んだとき以外触った記憶がないな
コマンドラインでインタラクティブなんてシェルで十分だし
- 885 :名無しさん@そうだ選挙に行こう:2014/12/14(日) 15:09:32.61 ID:L+QkNmy7.net
- >>880
おじさんは古型なので流行りの頒布方法とかよくわからないけど
言いたかった事は、凡人なら頒布(他者に晒すor他者の評価を聞く
過程)を伴う経験のサイクルは大切だということ。PDCA、反復型
身近な友人同士でも即売会でも何でもいいと思うよ
- 886 :名前は開発中のものです。:2014/12/17(水) 07:39:05.49 ID:AgN/4Z5H.net
- UnityってNetworkクラスとかNetworkViewクラスとかあるけど、あれ使うとMMOとか作れるの?
- 887 :名前は開発中のものです。:2014/12/17(水) 09:32:33.84 ID:4MvBwvFG.net
- Muchi Muchi Oppaiか、もちろんだ
- 888 :名前は開発中のものです。:2014/12/17(水) 10:25:45.45 ID:/fBBXLJf.net
- スレチ
- 889 :名前は開発中のものです。:2014/12/17(水) 12:10:44.24 ID:H3GRnYo+.net
- 社員乙
- 890 :名前は開発中のものです。:2014/12/20(土) 19:07:18.57 ID:Chph+5fV.net
- スタックを使うメリットとヒープを使うメリットって何?
- 891 :名前は開発中のものです。:2014/12/20(土) 20:02:00.84 ID:keBzJKTR.net
- この処理ではこっちを使う、この処理ではあっちを使う…って、
ほぼ自動的に決まるから、あんまりメリット/デメリットを意識することって無いと思う。
- 892 :名前は開発中のものです。:2014/12/20(土) 21:32:50.60 ID:hNo8GLbS.net
- 開放忘れを気にしなくていいかどうかくらいじゃないの?
ただスタックはあくまで一時的なものって意味合いが強くて、
容量制限があるからあんまりでっかいものをガンガン作れないってのと、
あとCPUキャッシュ的に有利ってのがあるけど、
まあ>>891の言うように実際使うときははあんまりメリット・デメリットを意識することも無いと思う
- 893 :名前は開発中のものです。:2014/12/21(日) 03:38:59.26 ID:tJq5gWK6.net
- スタック
・レジスタの値を書き換えるだけでメモリ確保されたことになるので比較的速い
・変数のスコープが抜けた時に自動的に解放される
ヒープ
・スタックには確保できない大きな領域を使える
・確保するサイズを実行時に動的に決定できる(スタックでもできなくはないけど)
・スコープを跨いだ寿命の長いメモリ領域として使用できる
あとなんかあるかな
- 894 :名前は開発中のものです。:2014/12/21(日) 11:16:24.87 ID:UoMqn2et.net
- スタックとヒープってなんだ?
調べてみたら自動変数がスタックでnew演算子を使うのがヒープって書いてあるけどあってるの?
- 895 :名前は開発中のものです。:2014/12/21(日) 11:18:03.73 ID:cF9cgol+.net
- QtのクラスはRAIIの考え方に基づいていて
メモリ解放が殆ど自動化されているから
ヒープ確保でも単純ミスでメモリリークすると言う事が少ない
- 896 :名前は開発中のものです。:2014/12/21(日) 11:43:00.73 ID:UoMqn2et.net
- Javaみたいに後でまとめてメモリ開放するでもなく、
参照が0になったらその場で開放してくれる言語ってないの?
スマポ利用するとかじゃなくて言語レベルで。VM無いと無理なのか?
- 897 :名前は開発中のものです。:2014/12/21(日) 12:12:25.01 ID:ImGMMbuW.net
- C#
- 898 :名前は開発中のものです。:2014/12/21(日) 12:18:34.78 ID:cF9cgol+.net
- なぜそこまでGCを嫌う?
最近のVMのGCはかなりうまくやってくれていると思うけど
>>897
(゚Д゚)ハァ?.NETはGCするだろ
- 899 :名前は開発中のものです。:2014/12/21(日) 12:20:14.63 ID:xV1M/iBe.net
- >>896
swift
ARC有効にしたObjective-C
参照カウントだけだと弱参照するところをどうやっても意識する事になるから流行らないんだろうよ。中途半端だから。
- 900 :名前は開発中のものです。:2014/12/21(日) 12:57:51.36 ID:IwHuX+Tw.net
- >>899
swiftは今っぽい構文なだけで、その辺りは15年前レベルだよな。
参照カウント + 循環参照用のGCはスクリプト言語ならあるな。 PythonとかSquirrelとか。
クロージャをサポートすると、循環を避けるのは難しい。
- 901 :名前は開発中のものです。:2014/12/21(日) 14:04:19.84 ID:tJq5gWK6.net
- http://seesaawiki.jp/w/author_nari/d/GC
以前どっかで教えてもらったGCの各アルゴリズム(とそれを実装してる主な言語)をまとめてるサイト
結構勉強になった
見ていて、C++上で既存のデータ構造との親和性を保ちながら実装するのは無理そうだなーとも感じた
- 902 :名前は開発中のものです。:2014/12/21(日) 14:05:13.03 ID:tJq5gWK6.net
- あ、ちょっと訂正
× 実装するのは無理そうだなーとも感じた
○ 実装するのは俺には無理そうだなーとも感じた
- 903 :名前は開発中のものです。:2014/12/21(日) 17:21:30.42 ID:3dyKCo+m.net
- ガベコレって使いづらい印象付きすぎちゃったもん
- 904 :名前は開発中のものです。:2014/12/23(火) 01:05:19.57 ID:UuPEmr1n.net
- バカにはそういう印象付いちゃったよね^^;
しかもバカって一度持った印象を絶対に改めないから…
- 905 :名前は開発中のものです。:2014/12/23(火) 20:19:18.60 ID:y5yR41zs.net
- デストラクタで十分
- 906 :名前は開発中のものです。:2014/12/23(火) 22:15:26.87 ID:I+Smn/JJ.net
- デストラクタ(ファイナライザ)はリソースを解放するもので
いつデストラクタを呼ぶかを自動化するのがGCなんだよなぁ
- 907 :名前は開発中のものです。:2014/12/23(火) 22:25:27.90 ID:IjLiTo3j.net
- shared_ptrが標準化され、RAIIが一般的になった昨今、
ガベコレの意義が分からない。
- 908 :名前は開発中のものです。:2014/12/23(火) 23:15:42.17 ID:PQqq+vmb.net
- スレッド使ってたら生のデストラクタは使えないし、
sharedは循環参照に気を使わないといけないのがなぁ
- 909 :名前は開発中のものです。:2014/12/24(水) 04:46:42.87 ID:INaba3Bc.net
- 生のデストラクタってなんぞ…
- 910 :名前は開発中のものです。:2014/12/24(水) 09:59:07.80 ID:+KNBOnw3.net
- おそらく「スタック上には確保できない」って言いたいんだろう。
スコープを抜けた後も別のスレッドで使われるから。
- 911 :名前は開発中のものです。:2014/12/24(水) 19:08:44.28 ID:JqKQyI9r.net
- GC「後で掃除しときますんで」
ぼく「これもやっといて」
GC「あ、すいません、今掃除してるんで」
ぼく「今すぐ処理してほしいんだけど」
GC「あと20分ぐらい待ってください」
ぼく「は?処理できない・・・」
こんな印象
- 912 :名前は開発中のものです。:2014/12/24(水) 23:09:56.90 ID:mC2vVuxE.net
- 世代別GCなめんな
- 913 :名前は開発中のものです。:2014/12/25(木) 00:07:59.44 ID:GYUw7kdq.net
- >>910
RAIIと関係なくね?流れ的にRAIIでは対応出来ないケースを挙げたように読めるんだけど。
- 914 :名前は開発中のものです。:2014/12/25(木) 00:11:13.27 ID:MJlq1Aj4.net
- 「生のデストラクタ」なんて謎の用語を使うようなやつが、「流れ」を読めていると思うのか?
- 915 :908:2014/12/25(木) 00:51:14.98 ID:0+lNtng/.net
- >>910
ちょっと違う
スコープを抜けたときに普通にデストラクタが呼ばれるものを「生」と、
スマートポインタ等で使う工夫したデストラクタと区別するために言ってみた
>>914
生のポインタとスマポがわかるなら適当に空気嫁や
- 916 :名前は開発中のものです。:2014/12/25(木) 01:24:40.70 ID:C10OwjTO.net
- いや、本人以外理解できてないって事は、言葉選びを間違ってるって事なんだから、読み手に責任転嫁すんなって。
- 917 :名前は開発中のものです。:2014/12/25(木) 01:26:24.11 ID:0+lNtng/.net
- 正直スマンかった
- 918 :名前は開発中のものです。:2014/12/25(木) 02:39:55.48 ID:+bLp0IG7.net
- 結局ちょっと手を加えるだけで簡単にメモリ解放ができるデストラクタ便利
- 919 :名前は開発中のものです。:2014/12/25(木) 06:37:13.40 ID:GYUw7kdq.net
- >>915
その説明でも意味わかんねえんだけど?
スマートポインタ等で使う工夫したデストラクタ?
スマートポインタのデストラクタの事?
それとスレッドがどう関係してくるんだ?
- 920 :名前は開発中のものです。:2014/12/25(木) 07:27:27.19 ID:lfp6OMz3.net
- >>911
GCって掃除して!って言えば掃除してくれるよ?
問題は、掃除してくれと言える人が少ない事とか、
捨てるべきでないものまで捨てちゃう事かと
ヒープ上の参照は無視して掃除するんだよなぁ……
- 921 :名前は開発中のものです。:2014/12/25(木) 08:08:39.90 ID:MJlq1Aj4.net
- >>920
質の悪いGCを使っているか、単に使い方をミスってるだろ
- 922 :名前は開発中のものです。:2014/12/25(木) 08:15:02.30 ID:MJlq1Aj4.net
- >>915
ちょっと違う じゃねーよ
確保する場所がスタック上かヒープ上かの違いだけじゃねーか
- 923 :名前は開発中のものです。:2014/12/25(木) 08:54:43.93 ID:wubB5pdO.net
- >>921
GCって最初は親切だけど、結局面倒臭いものなんだね
メモリ管理をする手間は変わらないじゃん
- 924 :名前は開発中のものです。:2014/12/25(木) 10:29:27.96 ID:Y3U3uktg.net
- GCで最も困るのはメモリ解放時のStop the Worldだが
v8は少ないと思う
- 925 :名前は開発中のものです。:2014/12/25(木) 12:54:07.39 ID:MhE4palG.net
- どっちがいいなんてアプリケーションによるんじゃね?
- 926 :名前は開発中のものです。:2014/12/25(木) 14:31:05.41 ID:+bLp0IG7.net
- 速度重視のゲーム開発でGCなんて重い物動かす余裕はないね
結構色々なゲームで使うA*だけでもそれなりに食うってのに
- 927 :名前は開発中のものです。:2014/12/25(木) 15:29:01.01 ID:ZzsGRtB9.net
- 使うタイミングと量を間違えなければ、特に問題にならない気がするけどなあ
- 928 :名前は開発中のものです。:2014/12/25(木) 16:21:19.48 ID:qeWu8Kkf.net
- メディエイターパターンでshared_ptr使った場合ってメモリリークするの?
- 929 :名前は開発中のものです。:2014/12/25(木) 21:11:54.62 ID:ICmaagKn.net
- >>928
ん、学校の宿題?違うなら以下の逆質問に答えてみてくれないか?
@ shared_ptrの典型的実装は何
A @でメモリリークする場合の典型的原因は何
B mediatorの目的は何
C BはAを誘発する方向に作用するか
mediator使ってAを招いてメモリリークさせる男の人ってどう思う?
- 930 :名前は開発中のものです。:2014/12/25(木) 21:30:48.42 ID:0+lNtng/.net
- >>922
違うわ
普通はやらんがスタック上でも別にスレッドで使えるわ
確保する場所の話をしてるんじゃねぇ
デストラクタを呼んだ時の振舞の違いを言っとるんだ
- 931 :名前は開発中のものです。:2014/12/25(木) 21:47:40.02 ID:MJlq1Aj4.net
- >>930
「デストラクタが呼ばれ方」の話だったはずが、いつの間にか「呼んだ時の振舞」に摩り替わっている。
具体例まで挙げないと、君の話は他人には理解できないぞ。
- 932 :名前は開発中のものです。:2014/12/25(木) 22:18:25.00 ID:rdtwM2Em.net
- そして呼んだ時の振る舞いって話だったとしてもイミフメー
そもそも配置newしないかぎり自分でデストラクタを呼ばないし。どんどん謎な方向へ。
- 933 :名前は開発中のものです。:2014/12/25(木) 22:24:10.39 ID:0+lNtng/.net
- 生のデストラクタを呼ぶってのは俺の中じゃ、単にdelete xのこと
スレッド使ってたら↑みたいなのは管理が面倒なので使えないっしょ。それだけの話
で、参照カウンタを使ってデストラクタ呼ぶか、マーク&スイープみたいな仕組みでデストラクタを呼ぶか
その振る舞いが違うけど、俺は循環参照に気を使って設計しないといけないのは、やだなぁと言っただけ
そもそも深い話でも続けるような内容でも何でもないだが
- 934 :名前は開発中のものです。:2014/12/25(木) 22:27:00.95 ID:0+lNtng/.net
- ちなみに>>908は>>905宛て
- 935 :名前は開発中のものです。:2014/12/26(金) 11:43:36.55 ID:IXxiiBMK.net
- よくわかんないけど「手動でデストラクタを呼ぶ」じゃダメだったん?
- 936 :名前は開発中のものです。:2014/12/26(金) 16:51:22.54 ID:xlNeQ6wG.net
- 自動化の権化プログラムを扱う人にとって自動化はロマン
特に多くの人がつまづく面倒くさい処理を自動でやってくれるって素敵やん?
解放処理を描かずに済む分コードも減るし、初心者やうっかりさんにやさしいし
世の中にはそういうできる限り完全自動にこだわる人もいるのです
細かい個別の事案にまで高速に対処できる高い能力を持ったオートデストラクタなんて、
それこそマイクロソフト並の巨大企業が本腰入れてデータ集めないと完成まで何年かかるか分からないレベル
消すには消せるが処理速度に影響を与えて邪魔で使えなかったりすればゴミだし
- 937 :名前は開発中のものです。:2014/12/26(金) 18:51:58.22 ID:9MuNlFH5.net
- 演算能力が頭打ちになりそうな昨今、プログラマが殴られるのが規定路線。
自分で何とかしろ、ってこと。
RAIIで十分じゃない。
- 938 :名前は開発中のものです。:2014/12/28(日) 12:00:32.40 ID:DVHfXhJL.net
- クラスのポインタ変数をdeleteした後、
そのポインタ変数にNULLを入れて他の処理でNULLチェックをしてぬるぽ回避してるんですが、
逆に言えばdeleteした後NULLを入れてないとぬるぽ回避できないということで、
一般的に職業プログラマではどういうふうにdeleteした変数を識別してるんでしょうか?
- 939 :名前は開発中のものです。:2014/12/28(日) 12:24:23.36 ID:5FK2L+6G.net
- 生ポインタよりもスマートポインタを使うのが一般的じゃねーの
- 940 :名前は開発中のものです。:2014/12/28(日) 13:58:25.18 ID:dAYPhj1N.net
- 生ポインタの場合
#define SAFE_RELEASE(p) { delete p; p = NULL; }
みたいなマクロ使ってるのを見たことある
俺の趣味プログラミングだとshared_ptrやunique_ptr使ってる
boolへの型変換が定義されてるから普通のポインタみたいに
if (p) { /* スマートポインタが有効だった時の処理 */ }
とかできるし
- 941 :名前は開発中のものです。:2014/12/28(日) 14:54:46.81 ID:DVHfXhJL.net
- みんなスマポなんですか
まぁ生ポインタと同じように扱えるならそっちのほうがいい感じですか
代入で参照カウントが増えるのはオペレーターとかいうやつですか
- 942 :名前は開発中のものです。:2014/12/28(日) 18:56:20.33 ID:uPxHRIHV.net
- 俺はあんまりスマポは使わないな
ちょっと作ったらテストしてリークしてたらメッセージでるし、
deleteのタイミングが難しい場合ぐらいしかスマポ使わないよ。
ポインタ変数なんか、ほとんどの場合どっかのクラスのメンバーに
なってるからデストラクタでdeleteするようにしてるし
- 943 :名前は開発中のものです。:2014/12/28(日) 20:49:21.58 ID:KLVWt4ts.net
- マウスカーソルを対象の位置に置いてマウスホイールで対象にズームするような機能をつけたいのですが
どのように実装すれば良いでしょうか
Siv3Dを使っています
- 944 :名前は開発中のものです。:2014/12/28(日) 20:55:05.01 ID:ToxqMv2l.net
- 素朴な疑問なんだけど、ワープロやグラフィックソフトのオブジェクトと違って
ゲーム中に出現するキャラクタの数は大体決め打ちできるんじゃないの。
Cの作法に則って毎回newして確保するんじゃなくて、例えば1オブジェクト最大256バイト、
80体まで出現するならchar slot[256*80]のような形で生メモリ領域をあらかじめ確保しておいて、
ふだんはp = (Actor*)&slot[256*n]; if (p->Exists) { p->Act(); }でいい気がするんだけど。
もちろんActorは基底クラスで、必要でない時はp->Exists = falseにする。
作成時はnewでなくスタック上でコンストラクタ呼び出して、領域に内容丸ごとコピー。
もしかしたら全然違う用途の話かも知れないけど。
- 945 :名前は開発中のものです。:2014/12/28(日) 20:57:03.11 ID:R8bFfUbq.net
- FlyWeightパターンとかもある
- 946 :名前は開発中のものです。:2014/12/28(日) 21:15:10.93 ID:vMYsGefx.net
- >>944
動的メモリ確保はパフォーマンスへの影響が大きいので、
可能な限りは最大出現数分の配列を確保しておく。
- 947 :名前は開発中のものです。:2014/12/28(日) 22:21:01.45 ID:D5X5qYnm.net
- むしろそんなに重要な物なら絶対に常時必要分確保しないといかんと思うけど
他のジャンルならともかく、敵が出るたびになんだかカクつくSTGなんか嫌だぞ
- 948 :名前は開発中のものです。:2014/12/29(月) 00:30:37.06 ID:gxX17JP7.net
- 逆に、例えば「格闘ゲームにおけるキャラクタ選択画面」なんかは
その画面にいる間オブジェクトは一定だろうから >>942 方式で十分だと思う。
そう考えるとゲームの場合、シミュレーションとか特殊なルールでオブジェクト数に
上限を設けたくないとかでなければポインタ制御は簡素に纏める方向でいいと思うんだわ。
- 949 :名前は開発中のものです。:2014/12/29(月) 00:45:24.09 ID:Ue1eh9PX.net
- まぁ、無理にスマポ使う必要はないと思うけど、
スマポを知って感動して以降、newするものやopen/close系のものは余程でない限りはRAIIで書くようにしてたら、
deleteを書くことが(ほぼ)なくなった。
当然、メモリリークもゼロ。
RAIIを知った前後でプログラムの規模・品質が雲泥の差になったわ。
- 950 :名前は開発中のものです。:2014/12/29(月) 01:07:57.04 ID:0UxFRGu4.net
- 今は、boostにスマポも入っているだろ
- 951 :名前は開発中のものです。:2014/12/29(月) 01:44:11.15 ID:32D0f9iV.net
- memoryとの違いがわからん
- 952 :名前は開発中のものです。:2014/12/29(月) 07:13:22.67 ID:aw7mXH6p.net
- 今最新のVSに入ってるC++も当然11だよな?スマポ余裕で使えるじゃん boost不要
- 953 :名前は開発中のものです。:2014/12/29(月) 11:06:00.25 ID:UPrXKgd4.net
- リークするのはてめえの脳みそだけにしておけ
- 954 :名前は開発中のものです。:2014/12/29(月) 18:43:53.95 ID:aw7mXH6p.net
- うん?現行最新のVSなら3種類の型が使えるだろ?実質2種類だけど
VS以外を使っていたりとかVS標準スマポの仕組みや性能が気に入らないってのは知らない
っつーかな、書き落としはリークじゃなくね
- 955 :名前は開発中のものです。:2014/12/30(火) 03:36:36.79 ID:vvze8R+p.net
- データの圧縮や解凍ってどうやってる?
簡単な圧縮かけた方がファイルからデータに展開するのも早いし、
(ファイルの読み書きの速度と展開速度を天秤にかけた)
解析する人にとっても多少は面倒になるかな?と思って
GPLとかに感染しないのがあると良いな
やっぱ、自力でやるしか無い?
- 956 :名前は開発中のものです。:2014/12/30(火) 03:46:28.22 ID:W5CPlMBg.net
- >>955
zlib
- 957 :名前は開発中のものです。:2014/12/30(火) 04:01:26.42 ID:bdHUCtIv.net
- バイナリ全部繋げてcueファイルにインデックスいれときゃいんじゃね
- 958 :名前は開発中のものです。:2014/12/30(火) 08:13:45.13 ID:swhFWkgZ.net
- 今使うならLZ4かな
- 959 :名前は開発中のものです。:2014/12/30(火) 09:05:37.93 ID:6MynlDel.net
- 色々な言語のライブラリあるしBSDだし良さそうやね
圧縮率あって高速ってのは魅力的だわ
- 960 :名前は開発中のものです。:2014/12/30(火) 09:25:49.71 ID:HpQ+h6E5.net
- 圧縮済みの画像や音声なら無圧縮形式のほうが良いかもね。
mmapして切り出せばメモリ確保も要らない。
- 961 :名前は開発中のものです。:2014/12/30(火) 18:48:29.71 ID:UWJ4OXBN.net
- mmapのほうがreadより速いという迷信について - kazuhoのメモ置き場
http://d.hatena.ne.jp/kazuhooku/touch/20131010/1381403041
- 962 :名前は開発中のものです。:2014/12/30(火) 23:03:50.59 ID:HpQ+h6E5.net
- 誰もCPUキャッシュやディスク先読みのレベルでのmmapの速度の話なんかしてねーよ
- 963 :名前は開発中のものです。:2014/12/31(水) 10:36:13.73 ID:rJyBxJIf.net
- メモリ節約って何だよ
ファイルの内容なんてデコードしたらすぐ捨てるだろ
そんな回りくどいことしないで普通に読み込めばいい
サーバーにおいて複数のプロセスから同じファイルの内容を読み込む時なんかは
読み込み用のバッファが要らなくなるからメモリ節約に繋がるらしいが
殆どのケースで速度が遅くなるだけだから使う理由が無い
- 964 :名前は開発中のものです。:2015/01/01(木) 16:48:21.14 ID:jkRIISMU.net
- class TestClass {
private:
// 型 m_funcArray;
void FuncA();
void FuncB();
void FuncC();
public:
void CreateFuncArray() {
m_funcArray[0] = &FuncA;
m_funcArray[1] = &FuncB;
m_funcArray[2] = &FuncC;
}
void ExecuteFuncArray() {
for (int i = 0; i < m_funcArray.Length; i++) {
m_funcArray[i]();
}
}
}
こんな感じでクラスにメンバ関数ポインタの配列を作って実行したいのですが
メンバ関数ポインタの配列の型をどう宣言すれば良いでしょうか
- 965 :名前は開発中のものです。:2015/01/01(木) 18:08:05.65 ID:cWuPuXeC.net
- 言語仕様的にどこまで正しいかわからんけど
class CTestClass {
private:
void (CTestClass::*m_pFunc[3]) ();
void FuncA();
void FuncB();
void FuncC();
void SetTable() {
m_pFunc[0] = &CTestClass::FuncA;
m_pFunc[1] = &CTestClass::FuncB;
m_pFunc[2] = &CTestClass::FuncC;
};
};
- 966 :名前は開発中のものです。:2015/01/01(木) 18:10:47.53 ID:cWuPuXeC.net
- 呼び出しはこうな
void Exec( int i ) {
(this->*(m_pFunc[i])) ();
}
- 967 :名前は開発中のものです。:2015/01/01(木) 18:29:15.58 ID:jkRIISMU.net
- >>965-966
ありがとうございます
なるほど*はその位置につけるんですか
- 968 :名前は開発中のものです。:2015/01/02(金) 17:10:32.59 ID:dGIIjPDH.net
- enum class Signals {
RED,
GREEN,
BLUE
}
void func(Signals signal) {
if (signal == Signals::RED) {
// 処理
}
}
enum classを使って引数を識別したかったのですが次のようなエラーが出ました
error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
どうすればいいのでしょうか
- 969 :名前は開発中のものです。:2015/01/02(金) 17:16:07.35 ID:nBM88kHl.net
- void main を int main に変更
- 970 :名前は開発中のものです。:2015/01/02(金) 17:47:26.94 ID:dGIIjPDH.net
- 関係ない所のエラーでしたすみません
- 971 :名前は開発中のものです。:2015/01/04(日) 15:42:29.73 ID:8cIsCjgM.net
- ifstream::read(buff,filesize)で読み込んだ文字列を表示すると
末尾にEOFらしき文字化けした文字があってXML等のパースに失敗するんですが
filesizeを-1してreadしたり、読み込んだchar*の末尾のEOFと思われる要素に\0をいれて回避しているんですが
根本的な解決方法がわかりません
どうしたらいいですか
- 972 :名前は開発中のものです。:2015/01/04(日) 16:06:48.29 ID:Ep14vw0N.net
- >>971
filesize 数ぶんの文字が無かったんだろう。
入力バッファ末尾の未初期化の領域が見えているだけ。
改行コードの変換 \r\n --> \n とかでちょうど1文字減ってるんじゃないの?
バイナリモードで読めば、たぶんファイルサイズと文字数が一致するはず。
その後の処理が \r\n に対応してないといけないけど。
テキストモードで読みたいなら、istream_iterator を使うのが定番かな。
- 973 :名前は開発中のものです。:2015/01/05(月) 13:29:36.70 ID:61MXvLfY.net
- 終端文字の文字数って2文字じゃなかったっけ?
- 974 :名前は開発中のものです。:2015/01/05(月) 13:52:13.89 ID:+omNtWXl.net
- buff全体を0クリアしてreadすればいいだけ
他の方法はgetで一文字づつ読みつつeofチェック
ファイルが全てメモリに置いても問題ないサイズならstd::stringとoperator>>で全部一度に取得
好きなの選べ
- 975 :名前は開発中のものです。:2015/01/06(火) 11:25:41.33 ID:BevxLkoj.net
- http://murakan.cocolog-nifty.com/blog/2009/12/cstreameof-7401.html
なんかeofまで読み込むのはifstreamの仕様らしいですね
- 976 :名前は開発中のものです。:2015/01/06(火) 18:08:33.09 ID:+D28bBOU.net
- そりゃeofまで読まないとどこが終端なのか分からないし…
- 977 :名前は開発中のものです。:2015/01/07(水) 13:02:30.14 ID:NiXFoaGk.net
- 横からすいません、質問です。
http://www1.axfc.net/u/3387806
ソフトウェア3DCGライブラリを作っているのですが、
80万ポリゴン/秒(C2D E8400 OC 3.6GHz上&フラットシェーディング&テクスチャマッピングなし)
しか出ません。ソフトウェアレンダリングってこんなものなんですか?
- 978 :名前は開発中のものです。:2015/01/07(水) 18:26:06.67 ID:PQ5kLSMd.net
- 何で今時ソフトウェアレンダラー
- 979 :名前は開発中のものです。:2015/01/07(水) 18:57:47.13 ID:vA0pKoe4.net
- >>977
DirectXのリファレンスドライバでメッシュを表示する適当なもの作ってそれと比較してみたら?
- 980 :名前は開発中のものです。:2015/01/07(水) 20:29:35.89 ID:PQ5kLSMd.net
- ソフトウェアレンダラーにしたってMesaとかIrrlichtのソフトウェアレンダラーとかが既にあるのに
車輪の再開発じゃない?
http://en.wikipedia.org/wiki/Mesa_(computer_graphics)#Software_renderer
http://irrlicht.sourceforge.net/features/
- 981 :名前は開発中のものです。:2015/01/07(水) 22:42:06.11 ID:Wqt7oMn8.net
- GT3D_drawpoly_fill_sub()を流し読みしたけど、多角形描画は普通っぽかったし
このプログラム自体は特に速度をどうこうしているものではないようですね。
ちょっと見ただけだけどソースは一部ですよね
SSEとかも使ってないし、マルチスレッドでもないですよね
描画対象はメモリ? に一旦描画している感じなのかな
描画範囲を分割してマルチスレッドにしてはどうですか?
- 982 :名前は開発中のものです。:2015/01/08(木) 20:42:14.85 ID:Mw182kRW.net
- メモリ速いやつに差し替えようぜ
- 983 :名前は開発中のものです。:2015/01/08(木) 22:06:01.19 ID:7iBzssXL.net
- MSの最新技術の粋を集めたWARPに敵うはずがない
- 984 :名前は開発中のものです。:2015/01/08(木) 22:18:13.29 ID:5+CLNQq0.net
- WARPはSIMDも使ってるはずだよね。
- 985 :名前は開発中のものです。:2015/01/09(金) 13:53:51.10 ID:VWlQDlh6.net
- SSE2必須で使える場合SSE4.1まで使ってるとかなんとか
- 986 :名前は開発中のものです。:2015/01/09(金) 17:34:34.87 ID:Iw10L3cl.net
- >>977 です。
ちょっとSSE勉強してみます。
今更ソフトウェアレンダラなのは
自分で作れば最小限の機能になって使いやすいと思ったからです。
自作OSへの転用も簡単ですし。
SSE版は別プロジェクトでやってみます。
- 987 :名前は開発中のものです。:2015/01/09(金) 17:49:58.46 ID:6dSDlYuJ.net
- SSEより完成目指せ。
効率よく使ったとして数%の成績アップだ。体感では違いがないとかなりうる。
- 988 :名前は開発中のものです。:2015/01/09(金) 18:21:14.91 ID:YwByCpOo.net
- >>986
何その理由
普通にOpenGLかDirect3Dで良いじゃん
自作OSってふざけてんの?
- 989 :名前は開発中のものです。:2015/01/10(土) 06:38:12.95 ID:FMkme2Bg.net
- >>986
面白い物好きが来たな
OS作るのがメインでゲーム作りがサブなのか
目指すは究極のマルチプラットフォーム?
あるいは新しい3D環境でも作り出したいのかな?
レイトレーシングという概念を勉強すると、また新しい世界が見えるかも?
- 990 :名前は開発中のものです。:2015/01/10(土) 10:07:13.00 ID:JC3btUBL.net
- 自前でできるといいと思うよ。
その後、FPGAに実装したらさらに楽しいと思う。
- 991 :名前は開発中のものです。:2015/01/10(土) 10:28:58.93 ID:XEF52+tX.net
- 中身自作するにしてもAPIはOpenGLにあわせたものも作った方が良いと思うけどね。
自作物のパフォーマンスがどれだけ酷いか解るし。
まぁ趣味なんだろうから好きにしたら良いと思うけど。
- 992 :名前は開発中のものです。:2015/01/11(日) 00:41:53.86 ID:EFs4nj8K.net
- き、きっと将来のビル・ゲイツを目指しているんだよ!
オペレーション・システムそのものの開発ときたか
夢がデカすぎて全体像が見えない
- 993 :名前は開発中のものです。:2015/01/11(日) 00:44:24.46 ID:IZj/cFBq.net
- 実用性はさておき、自分で一通り作れたら最高に感動できるだろうな。
がんばってくれ。
- 994 :名前は開発中のものです。:2015/01/11(日) 00:50:41.76 ID:2AMxCLe9.net
- お前ら東大の名物科目CPU実験くらいは知っといたほうがいいぞ
986がそうとは思わないがな
- 995 :名前は開発中のものです。:2015/01/11(日) 06:09:25.57 ID:vPB1OoJW.net
- WARPって必要な部分だけソフトウェアで補うとかじゃなくって
全部ソフトウェアになるのか
- 996 :名前は開発中のものです。:2015/01/11(日) 09:26:23.44 ID:DORzARTJ.net
- >>992-993
実はOSの方は既にある程度出来てまして・・・w
「三十日でできる!OS自作入門」のはりぼてOSをもとに作ってます。
ちなみにソフトウェアレンダラに至った経緯は
OS作った
↓
それでゲーム作りたい
↓
でも3dCG使えない
↓
じゃあレンダラ作ろう
↓
ある程度出来た←いまここ
自作OSの方はSSE未対応なのでlinux/OSX/Windows版のみの特権になるっぽいですね
今日中には移植しようと思ってます!
- 997 :名前は開発中のものです。:2015/01/11(日) 10:21:27.64 ID:RDQlUyF+.net
- 次スレ立てたよ
C/C++ゲーム製作総合スレッド Part7 [転載禁止]2ch.net
http://peace.2ch.net/test/read.cgi/gamedev/1420939171/
- 998 :名前は開発中のものです。:2015/01/11(日) 10:39:34.22 ID:IZj/cFBq.net
- >>997
乙〜!
やっぱゲームプログラミングは一番楽しいぜ。
- 999 :名前は開発中のものです。:2015/01/11(日) 18:55:24.63 ID:9XLW+JE+.net
- 自作OSとか本人は楽しいんだろうけど
- 1000 :名前は開発中のものです。:2015/01/11(日) 19:08:48.17 ID:+gxvr94o.net
- 本人が楽しいなら十分だろ
- 1001 :2ch.net投稿限界:Over 1000 Thread
- 2ch.netからのレス数が1000に到達しました。
総レス数 1001
246 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200