2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

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