5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

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

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

1 :名前は開発中のものです。:2012/10/24(水) 03:01:09.64 ID:oI68Vzqz
ゲーム製作におけるC/C++全般に関するスレです。

元スレ
DXライブラリ 総合スレッド その12
http://toro.2ch.net/test/read.cgi/gamedev/1330000532/
C/C++ゲーム製作総合スレッド Part1
http://toro.2ch.net/test/read.cgi/gamedev/1337516528/

2 :名前は開発中のものです。:2012/10/24(水) 07:04:30.27 ID:QqhvnQkz
>>1

3 :名前は開発中のものです。:2012/10/24(水) 11:45:45.71 ID:hU5AaZCM
乙。
前スレ埋まってたのか、気付かなかった

4 :名前は開発中のものです。:2012/10/25(木) 00:00:59.96 ID:ChvlZYKL
>>1
パート1で終了するかと思った

5 :名前は開発中のものです。:2012/10/25(木) 00:03:16.10 ID:ZM2Y071k
>>1
ご苦労様です。

6 :名前は開発中のものです。:2012/10/25(木) 04:53:51.10 ID:s4jU45SK
ttp://photozou.jp/photo/show/2819159/153010030

( ´∀`)ノ



7 :名前は開発中のものです。:2012/10/25(木) 22:27:31.80 ID:0wDnKh2y
4 1-2
3 0-3
2-1-4
↑上下左右の値を加算すると9方向表現できるぞ!
あとはテーブルでもなんでも配列でも定義して合計値に+4すれば0~8の添字が取り出せる!!
やべえええええええ!!!!

8 :名前は開発中のものです。:2012/10/26(金) 15:05:26.09 ID:obC94l0N
日本語でおk

9 :名前は開発中のものです。:2012/10/26(金) 19:10:53.48 ID:zfi+Ohed
クラスのオブジェクトのインスタンス毎に途中で変数を名前付けて確保するってやっぱりmapとかじゃないと無理かね

10 :名前は開発中のものです。:2012/10/26(金) 22:42:14.92 ID:dM39dulL
>>7
面白いけど、どこで使うんだそれ
上下左右からの入力値がある場合に関数ポインタの配列で処理させるとか?
そういう処理が大量にあるゲームってなんかあるかね

11 :名前は開発中のものです。:2012/10/27(土) 15:51:21.57 ID:XWfc1mIR
>>10
間違ってるのかは知らないけど、キャラクターの移動制御とか
WASDで上下左右斜めを移動させようとする時if文が気持ち悪いからを回避させようと思って考えた


12 :名前は開発中のものです。:2012/10/27(土) 16:01:25.19 ID:0RCdMBm4
のちの二進数である

13 :名前は開発中のものです。:2012/10/27(土) 16:59:50.06 ID:8ecSlhuk
二進数だと0〜10にならないか

14 :名前は開発中のものです。:2012/10/27(土) 17:05:30.73 ID:f+1+ewbY
上下左右4bit分のテーブル用意したほうが解りやすくね

それで思い出したけど上と下同時に押された時どうするか迷う
大抵面倒くさいので相殺しちゃうけど、
後から押した方を有効にしてやったほうが操作感よさそう

15 :名前は開発中のものです。:2012/10/27(土) 17:35:07.05 ID:8ecSlhuk
>上下左右4bit分のテーブル
テーブルに使用しない要素ができるのが、なんだかねえ。

16 :名前は開発中のものです。:2012/10/27(土) 17:43:29.40 ID:PILDR8EH
ケチ臭いなw

17 :名前は開発中のものです。:2012/10/27(土) 17:48:53.76 ID:aY+YsFGu
Cプログラマらしいっちゃらしいけどな
無駄の無い方が美しい

18 :名前は開発中のものです。:2012/10/27(土) 17:59:19.86 ID:8ecSlhuk
現場でしょっちゅうこんな口論して、主導権争いしてるんじゃ?

19 :名前は開発中のものです。:2012/10/27(土) 18:45:38.01 ID:TyYhYgA9
過疎 m9(^Д^)9mザマァ

20 :名前は開発中のものです。:2012/10/27(土) 20:16:43.05 ID:0RCdMBm4
>>15
キーボードだと左右同時押しはありえるんじゃない?

21 :名前は開発中のものです。:2012/10/27(土) 20:33:54.92 ID:FPQPdfrs
同時押してキーボード側の制限あるから厳しい事もあるな

22 :名前は開発中のものです。:2012/10/27(土) 20:59:36.97 ID:aY+YsFGu
>>7のアルゴリズムだと反対方向同時押しは押さないのと同等になるな
それはそれで問題無さそうだが

もし何か特別な処理が必要になったら根本から破綻するな
まあ、最適化されたアルゴリズムなんてそんなもんだけど

23 :名前は開発中のものです。:2012/10/27(土) 21:47:05.59 ID:f+1+ewbY
>>15
使用できない要素はたしかに出来るんだけどね
0-8に変換だったら64bit整数1個で済むし気にならなく無い?
n = (0x0576108734052310LL >> (k << 2)) & 0xf;

24 :名前は開発中のものです。:2012/10/27(土) 22:20:47.43 ID:B8sptMGD
>>12
後の3値論理じゃないかな
DB屋さんがクソNULLがとか言ってるのは、まれによくみる光景かと。

25 :名前は開発中のものです。:2012/10/27(土) 22:41:01.57 ID:83zyeglk
そんな性能的に無視できるところで必要以上に最適化する奴はセンスがないんじゃないか

26 :名前は開発中のものです。:2012/10/27(土) 22:54:33.03 ID:aY+YsFGu
キー入力以外でなんか使い道あればなあw
入力が2値になるからかなり限定的になるが

27 :名前は開発中のものです。:2012/10/27(土) 23:08:35.48 ID:0RCdMBm4
スマホとかのソフトキーなら、左右同時押しでスピンとか入れるのも楽しそうだ

28 :名前は開発中のものです。:2012/10/28(日) 00:43:53.84 ID:V6fh8U3v
>>7が何を言いたいのか、私には良く分らない。

29 :名前は開発中のものです。:2012/10/28(日) 03:37:51.14 ID:VC1NUKM6
一瞬俺も謎だったが
0を起点に上下左右で同じ数を足し引きしてるから何となくわかった
左上なら3+1で4と言う風に計算させてキー入力判定できるじゃんてこと(だよな?)

30 :名前は開発中のものです。:2012/10/28(日) 04:15:46.38 ID:l36h33Qo
真下と斜め下を区別しないようなときはちょっと面倒かな?

31 :名前は開発中のものです。:2012/10/28(日) 05:25:22.20 ID:VC1NUKM6
数値の配置変えるだけで良いだろう

32 :名前は開発中のものです。:2012/10/28(日) 09:14:30.41 ID:dFYfbBkK
>>22
同時押しを定義しておけばいい
想定していない操作は押さないのと同等になるのがメリット

33 :名前は開発中のものです。:2012/10/28(日) 09:46:35.50 ID:wnJwOgy7
>>23のアルゴリズムなら同時押しも別に定義できるな
メモリと処理の無駄も特に無さそうだし、応用もききそう

34 :名前は開発中のものです。:2012/10/28(日) 15:52:19.16 ID:j5L9gX8T
そんな性能要らないところで最適化する奴はセンスないぞ
そういうところは何やってるのかが明確に分かるよう読みやすく書くべきだ

35 :名前は開発中のものです。:2012/10/28(日) 15:57:47.90 ID:kJebQXhg
センス君乙

36 :名前は開発中のものです。:2012/10/28(日) 16:01:49.10 ID:j5L9gX8T
レッテル貼り乙


37 :名前は開発中のものです。:2012/10/28(日) 16:03:39.20 ID:kJebQXhg
>>36
返しにセンスを感じないなw

38 :名前は開発中のものです。:2012/10/28(日) 16:05:52.76 ID:j5L9gX8T
便所の落書きなんかよりコーディングでセンスを発揮できる奴のほうが社会的に有用だぞ

39 :名前は開発中のものです。:2012/10/28(日) 16:09:33.74 ID:rrtnkDUA
>>38
レッテル貼ってるのはお前だろ
センスクン

40 :名前は開発中のものです。:2012/10/28(日) 16:10:40.01 ID:kJebQXhg
>>38
自己紹介乙

41 :名前は開発中のものです。:2012/10/28(日) 16:21:59.20 ID:euVvYrvz
ここでやるなageるなクズども

42 :名前は開発中のものです。:2012/10/28(日) 16:22:40.69 ID:j5L9gX8T
ttp://blog.ashodnakashian.com/2011/06/the-second-law-of-optimization-abridged/

Premature optimization; Most of us have been there.
And that’s what makes those words very familiar. Words of wisdom, if you will.
We’ve all decided to do a smart trick or two before fleshing out the algorithm and even checking if it compiles,
let alone checking the result, only to be dumbfounded by the output. I can figure it out! we declare… and after half a day,
we’d be damned if we rewrote that stupid function from scratch. No chance, bub.

43 :名前は開発中のものです。:2012/10/28(日) 16:24:37.70 ID:Nz6O7Olc
ID:j5L9gX8T  のコーディングまだ?

44 :名前は開発中のものです。:2012/10/28(日) 16:29:23.69 ID:u2a2keHh
そりゃ仕事でやるなら効果無いような細かいこと気にしないけど
話のネタまで否定しなくていいのに

45 :名前は開発中のものです。:2012/10/28(日) 16:33:09.38 ID:j5L9gX8T
馬鹿な奴が>>7とか>>23みたいな巧妙なトリックを真に受けて真似しかねないからな
1/60秒で1回しか実行されないような実行時間的にほぼ無視できる場所で
こんな最適化するのは無駄どころの話ではない
ぶっちゃけ害悪である
あなたは半年後に同じコードを見て何をやっているのか一瞬で理解できるだろうか

46 :名前は開発中のものです。:2012/10/28(日) 16:34:57.34 ID:qrTVy0A0
とりあえず話題があればセンスとか無くていいです

47 :名前は開発中のものです。:2012/10/28(日) 16:35:37.85 ID:qrTVy0A0
1fpsかよw

48 :名前は開発中のものです。:2012/10/28(日) 16:36:01.76 ID:qrTVy0A0
読み違えたわw

49 :名前は開発中のものです。:2012/10/28(日) 16:38:12.60 ID:Tr+QQlDk
つまんねーやつ。可読性モンスターはこういうの多いよな。
昨今の技術書の影響だろうけどさw

50 :名前は開発中のものです。:2012/10/28(日) 16:40:51.07 ID:j5L9gX8T
つまらなくて結構
コーディングで笑いを取る必要は全く無い
面白いコードより分かりやすくて効率的なコードを書きましょう

51 :名前は開発中のものです。:2012/10/28(日) 16:41:19.38 ID:Tr+QQlDk
はいはい、先生様。


52 :名前は開発中のものです。:2012/10/28(日) 16:43:12.92 ID:j5L9gX8T
人格批判やレッテル貼りばかりで詰まらん奴らだな
何か反論できないのか?
実行時間的に無視できる部分を巧妙な手法で最適化することを擁護する意見はないのか?

53 :名前は開発中のものです。:2012/10/28(日) 16:43:39.78 ID:Tr+QQlDk
効率的じゃなくて読みやすいコードのお間違えでは?

54 :名前は開発中のものです。:2012/10/28(日) 16:44:37.24 ID:Tr+QQlDk
ここの連中も、センスなんて言葉でレッテル貼ってるやつに言われたくないと思うぞw


55 :名前は開発中のものです。:2012/10/28(日) 16:46:44.64 ID:qrTVy0A0
>>52
いや、話してるやつらは最初からわかってやってんじゃないの
>>7についた最初のレスが「それなんの役に立つの?」だぞ

56 :名前は開発中のものです。:2012/10/28(日) 16:47:18.26 ID:euVvYrvz
いいからハードウェア半分触るレベルで最適化してるんでなければ、コンパイラの最適化にまかせてろ

57 :名前は開発中のものです。:2012/10/28(日) 16:48:27.57 ID:rrtnkDUA
わからんのだろ?
センスってセンス悪いって言いたいだけみただしな。



58 :名前は開発中のものです。:2012/10/28(日) 16:53:37.83 ID:j5L9gX8T
>>55
>>11-33あたりを見てると、そうは思えなかったな
書き込んでる奴らには「そんな糞コード書くな糞が」と思ってる奴がとても少なそうで残念だ

59 :名前は開発中のものです。:2012/10/28(日) 16:56:02.25 ID:Tr+QQlDk
だから俺が教えてしんぜようってか?
傲慢な奴めw


60 :名前は開発中のものです。:2012/10/28(日) 16:57:15.74 ID:rrtnkDUA
苦笑

61 :名前は開発中のものです。:2012/10/28(日) 16:59:55.14 ID:rrtnkDUA
以上。新入社員研修でした。

62 :名前は開発中のものです。:2012/10/28(日) 17:20:53.85 ID:j5L9gX8T
ディスプレイの前でROMってるお前
そう、お前だ
ここまでの流れで分かったと思うけど、便所の落書きを真に受けるなよ
何が正しくて何が間違ってるのかは自分で判断しなさい
この書き込みのことも真に受けず自分で判断しなさい

63 :名前は開発中のものです。:2012/10/28(日) 18:41:42.17 ID:230DDn6p
なんか荒れてるなー

64 :名前は開発中のものです。:2012/10/28(日) 19:38:11.09 ID:u2a2keHh
これはコードゴルフの流れだな

65 :名前は開発中のものです。:2012/10/28(日) 20:12:04.01 ID:TbEep54T
なんか理想のゲーム作ろうとして詰まったから逃避で
STLの学習がてらミニゲーム作るつもり
それが適当にゴリゴリコード書いただけなのに
パラメータをGUIでいじれるようにしたら
自分がハマりまくって目がヤバイ

66 :名前は開発中のものです。:2012/10/28(日) 20:43:17.42 ID:qrTVy0A0
>>65
面白いゲームってのは案外そういう風に生まれるのかもな

67 :名前は開発中のものです。:2012/10/29(月) 00:43:29.41 ID:TWnpiUK4
>>45
>>7>>23は、スコープが非常に限定されているじゃない。
何か後々作業が膨らんでしまう可能性ってあるか?
あの程度を半年後に見てすぐわからなかったら、それこそセンスないぞw

68 :名前は開発中のものです。:2012/10/29(月) 01:14:46.27 ID:NNB0oxO0
どうして何のメリットもないことをそうまでしてやりたがるのか全く理解できないな
どうせ性能には1ミリも影響しないのに無駄な時間かけて最適化()笑とか馬鹿じゃないのか

69 :名前は開発中のものです。:2012/10/29(月) 03:27:35.61 ID:TWnpiUK4
別に誰も、話題に上っていないスコープも含めて、問題の優先順位の相談してないからwww

ところで、
>1/60秒で1回しか実行されない
>何のメリットもない
>どうせ性能には1ミリも影響しない
どうしてそう言い切れるんだ?
思い込み激しいんじゃねえの?w

70 :名前は開発中のものです。:2012/10/29(月) 03:30:43.60 ID:pkHkKL53
最適化なんてある程度書けるようになった中級者以降がするべきもので、
初心者がこだわるのは非常に無駄っていうのには同意

71 :名前は開発中のものです。:2012/10/29(月) 05:22:10.53 ID:WCV9+Tmj
最近のコンパイラはますます優秀になってくなぁ・・・
必要以上の最適化はもう不要な時代なんだろうけど
最適なデータ構造を心がけるクセは早めから意識するといいと思う

72 :名前は開発中のものです。:2012/10/29(月) 06:58:56.92 ID:f+Zrcf1Y
>>71
とはいえコンパイラが最適化してくれるのはアセンブラレベルで、アルゴリズムの最適化してくれる訳じゃないし
ボトルネックになりやすい箇所はやっぱり自分で工夫しないといけないんだよな

まあアセンブラレベルの作り込みとか絶対やりたくないけど
家庭用ゲーム機だと結構普通に必要らしいね 特にソニーの奴

73 :名前は開発中のものです。:2012/10/29(月) 07:05:43.04 ID:Nah+Du53
例のセンス君はどうせ本読んで囓っただけだろ

74 :名前は開発中のものです。:2012/10/29(月) 07:12:16.61 ID:kX9uezSJ
マシンパワーが向上した事も理由の一つじゃね?
数パーセントの最適化程度じゃ、大して差はないし

75 :名前は開発中のものです。:2012/10/29(月) 12:01:08.46 ID:kMq1Bnep
レベル低いなーお前ら

76 :名前は開発中のものです。:2012/10/29(月) 13:01:28.01 ID:0MIK6w9Q
>>75
なんだかんだでCはそういうのに向いた言語だからなー


77 :名前は開発中のものです。:2012/10/29(月) 13:06:19.01 ID:kK1qumnh
スクリプト言語組み込む時代だからなあ

78 :名前は開発中のものです。:2012/10/29(月) 19:34:42.93 ID:CthfwFfZ
ぶっちゃけCPUの処理能力は余る方向にある
最適化が必要なのはGPUのほうだ
ちょっと重い処理をしたら簡単にフレームレートが下がる
GPUの処理がスムーズにいくよう工夫するのも重要な最適化だな
視野カリングして見えない物体をGPUに送らないようにするとか
頂点キャッシュが効くようにインデックスを並べ替えるとか

79 :名前は開発中のものです。:2012/10/29(月) 21:39:45.34 ID:0MIK6w9Q
コンシューマだとメモリもよく聞くなあ

80 :名前は開発中のものです。:2012/10/29(月) 21:49:50.77 ID:wP42oojN
マシンパワーの向上って念仏みたいにいってるけど
CPUやGPUが性能を発揮できる流れに沿ってることが大前提だな

例えばマルチコアCPUならマルチスレッドを多用すること、
GPUだったら一括描画やカリングだな

ハードウェアの特性に逆らったり、設計から生じたボトルネックの重さは
マシンパワーの向上では解決できんよ

SSE2でバッファコピーの高速化云々みたいな小さい話なら
コンパイラの進歩まかせでいいと思うがな

81 :名前は開発中のものです。:2012/10/29(月) 23:40:45.73 ID:gi/SrGX8
不毛な争いだなw

82 :名前は開発中のものです。:2012/10/30(火) 08:40:00.34 ID:snIQuAh1
そういやシェーダの話ってスレ違いになんのかね?

83 :名前は開発中のものです。:2012/10/30(火) 09:10:26.11 ID:QFOFN70d
各ゲームエンジン用のシェーダならそのスレへ、glslならopenglのスレへ
hlslならdirectxのスレへ

84 :名前は開発中のものです。:2012/10/30(火) 09:22:27.12 ID:2s6uouZg
組み込む場合の直接C++に関わってくる部分はこのスレでも

85 :名前は開発中のものです。:2012/10/30(火) 10:11:54.77 ID:uPwiuQHo
->commitchanges();の呪文詠唱を忘れて時間喪失

86 :名前は開発中のものです。:2012/10/31(水) 02:38:09.90 ID:ULo/cr7A
新スレたってたのか

87 :名前は開発中のものです。:2012/11/01(木) 00:30:46.07 ID:yAoFpDQg
C++のゲーム作りなんて実質テンプレ化されてるから、
ツール使いとそんなに大差が有るわけではない無い。

88 :名前は開発中のものです。:2012/11/01(木) 07:12:24.20 ID:XpgpfYdy
それでもツール使いの方が絶対数は多いな
人間、新しい事をするのは面倒なんよ


89 :名前は開発中のものです。:2012/11/01(木) 14:55:34.09 ID:YcgTOK0e
XM/MOD/IT形式の音楽を鳴らせるライブラリってありますか?
かつて使い慣れていたので

90 :名前は開発中のものです。:2012/11/01(木) 22:40:12.86 ID:y3qRsTHC
http://www.un4seen.com/
basemodとかあるけどこれって金とるんだっけ?

91 :名前は開発中のものです。:2012/11/02(金) 20:20:59.47 ID:G703aHFB
ぶっちゃけ、お前らC or C++でゲーム作ってる?
作ってるのは仕事で?趣味で?
趣味でやってる人はどれくらいの規模のもん作ってるの?

ちなみに俺は趣味で3Dシューティング(パンツァードラグーンみたいなの)作ろうと
思って始めて、エンジンすら完成しないまま放置してたのを最近また進めようと思ってる
多分アーキテクチャを流用してほぼ書き直しすると思うけど

みんなどれくらいのモチベーションでやってるのかちょっと知りたいわ

92 :名前は開発中のものです。:2012/11/02(金) 23:00:21.22 ID:pvjO2WuT
教えてほしいか?

趣味で世界規模だ

93 :名前は開発中のものです。:2012/11/03(土) 08:33:21.87 ID:JAkDSb9o
趣味
規模は小さいけど自分の手にあまり気味

94 :名前は開発中のものです。:2012/11/03(土) 12:16:24.80 ID:YlTYGWm1
エスパー向け質問で悪いんだけど、
シューティングゲームの攻撃判定ってどうやってキャラクターやエンティティが取得してる?
各キャラクターが更新されるたびに攻撃マップとか除いてふるまうの?
それとも、すべてのキャラクターやエンティティが更新し終わってから
攻撃判定用のクラス(?)が判定して、各キャラクターやエンティティにフィードバックするの?

95 :名前は開発中のものです。:2012/11/03(土) 12:24:18.50 ID:mhjBy24C
何が言いたいのかわかんないけど、普通は毎フレーム1から構築

96 :名前は開発中のものです。:2012/11/03(土) 16:55:57.71 ID:u2hBXnIg
>>94
>攻撃マップとか除いてふるまう
ってのがよく分らん。

決まったやり方なんてないだろうな。
俺はアクター単位の更新前にやっている。

97 :名前は開発中のものです。:2012/11/03(土) 20:12:18.93 ID:MPi99ujn
久しぶりにゲームプログラム戻ってきたけどほんと訳分からんw
勉強し直しだな…

98 :名前は開発中のものです。:2012/11/03(土) 21:22:47.48 ID:JSIHKqgA
プログラムは自分で作るとして、ゲームの素材ってどうすればいいんだ
みんなフリー素材使ったりとかしてるのか?

全部一人で自作しようとして、終わらなくて心が折れそう…

99 :enpel:2012/11/03(土) 21:27:44.18 ID:bHLe96K0
http://www.ustream.tv/channel/akihabara-game-jam
Unity勉強会の配信してます
みてください

100 :名前は開発中のものです。:2012/11/03(土) 22:07:00.11 ID:dBvT5/6H
>>98
買えばいいじゃない

101 :名前は開発中のものです。:2012/11/03(土) 23:26:20.15 ID:Zt/6Kn8V
>>98
俺は自分で作るよ。


102 :名前は開発中のものです。:2012/11/03(土) 23:45:44.30 ID:MPi99ujn
>>98
自分で作るしかない
みんな3Dエフェクトはどうしてる?

103 :名前は開発中のものです。:2012/11/04(日) 00:31:03.81 ID:tGjg6t73
最近だとeffekseerとかbishamonとかは見かける

104 :名前は開発中のものです。:2012/11/04(日) 06:39:38.34 ID:YUTURfMs
ゲームの背景に使える素材サイトってある?
写真じゃなくて、アニメの背景のような水彩画っぽいのが
いいんだけど、そういう素材って見かけなくて。

105 :名前は開発中のものです。:2012/11/04(日) 06:42:46.21 ID:0aBxGlv8
エロゲの背景みたいなのならググれば出てくるが

106 :名前は開発中のものです。:2012/11/04(日) 12:28:31.26 ID:A1XAKU4Y
イラストサイトでも回れば

107 :名前は開発中のものです。:2012/11/04(日) 12:49:37.26 ID:q6gcsEXK
著作権とかライセンスとか気にすると以外とめんどくさい

108 :名前は開発中のものです。:2012/11/04(日) 18:30:45.75 ID:t8zQvkkV
点A: X,Y,Angle
点B: X,Y
とあった時に、
点AのX=0,Y=0,Angle=0度 とした時の点Bの位置をsqrtを使用せずに求めたいのですが
どうしたらいいでしょうか?

http://codepad.org/u0wX7SBH
自分の頭だとどうしてもsqrtを使っちゃってこうなります。


109 :名前は開発中のものです。:2012/11/04(日) 18:40:22.68 ID:ESy0DDjV
意味がわからん
ベクトルで駄目なのか?

110 :名前は開発中のものです。:2012/11/04(日) 18:51:07.76 ID:t8zQvkkV
>>108
これ間違ってました

>>109
無知ですゆえ

111 :名前は開発中のものです。:2012/11/04(日) 18:55:58.67 ID:t8zQvkkV
>>109
仮に点Aから見てAngleの方向に点Bがあった場合、
点Bの座標を(0,距離)として表現したい

112 :名前は開発中のものです。:2012/11/04(日) 19:13:46.25 ID:FFX64lFq
ビュー変換の関数使うのが一番楽そうだけど

113 :名前は開発中のものです。:2012/11/04(日) 19:20:54.59 ID:FFX64lFq
距離で出したいのか
だったらsqrtはいるんじゃないのかな

114 :名前は開発中のものです。:2012/11/04(日) 19:27:15.24 ID:t8zQvkkV
距離は過程で、座標さえだせればいいです。
ややこしくてすいません。

115 :名前は開発中のものです。:2012/11/04(日) 19:55:14.08 ID:+eKQim6x
距離分かってんなら三角関数で座標求めるだけじゃないか・・・

116 :名前は開発中のものです。:2012/11/04(日) 20:35:21.06 ID:FFX64lFq
x'=(xb-xa)cos-(yb-ya)sin
y'=(xb-xa)sin+(yb-ya)cos

二次元なら多分これで出ると思う
変換行列の作り方がパッと出てこないヤバイw
ちょっとやってないとすぐ忘れる

117 :名前は開発中のものです。:2012/11/04(日) 20:38:18.78 ID:FFX64lFq
あ、回転は-Angle

118 :名前は開発中のものです。:2012/11/04(日) 20:40:02.40 ID:+eKQim6x
xbやらybを求めたいのにそれを式の中で使ってどうするんだ

119 :名前は開発中のものです。:2012/11/04(日) 21:57:57.68 ID:obDXMYF5
距離がないと位置は出せないだろw

120 :名前は開発中のものです。:2012/11/05(月) 08:40:42.35 ID:EzdeqMcY
>>108
BからAを引けばおk。

relativeX = B.x - A.x;
relativeY = B.y - A.y;


121 :名前は開発中のものです。:2012/11/06(火) 19:53:02.05 ID:eNz//o3J
なんで距離求めて
x,yに分解するんだ

122 :名前は開発中のものです。:2012/11/06(火) 23:19:03.48 ID:STH5OQ9t
点Aを(0,0)とした点B(bx-ax,by-ay)があった時
点Aを座標軸ごとθ度回転させた時に、θ方向を基準とした点Bの座標が>>116...??
http://gyazo.com/069649312522d587ceeb9f9fef62682b
http://gyazo.com/e1e11d10fd9465401c7b8dc04899e31b

Angleはどこに代入すれば・・・

123 :名前は開発中のものです。:2012/11/07(水) 00:15:23.58 ID:VREKKmj9
画像の通り。
(cosθ, -sinθ)(sinθ, cosθ)と(x, y)の行列の積。回転行列。

>Angleはどこに代入すれば・・・
sin()やcos()に何渡すんだよw

124 :名前は開発中のものです。:2012/11/07(水) 00:34:19.50 ID:VBlYDNDl
そもそも>108の日本語がワケワカメで何がやりたいのかさっぱりわからん

125 :名前は開発中のものです。:2012/11/07(水) 02:11:54.93 ID:amzJWZHs
>116の書いた

x'=(xb-xa)cos(-Angle)-(yb-ya)sin(-Angle)
y'=(xb-xa)sin(-Angle)+(yb-ya)cos(-Angle)

これが正解だろ



126 :名前は開発中のものです。:2012/11/07(水) 05:25:09.69 ID:Wwvr1glG
>>124
全くだな。一生ROMってろレベルだ

127 :名前は開発中のものです。:2012/11/07(水) 06:13:29.64 ID:F1nCS+Bd
>>120
この方法で解決しました!
ありがとうございました。


128 :名前は開発中のものです。:2012/11/07(水) 09:00:37.96 ID:Xletgf7N
相対座標求めたいだけだったのかよw

129 :名前は開発中のものです。:2012/11/07(水) 09:02:49.31 ID:Mr7fX9Z7
>>128
回転が加わると育ちが悪いせいかどうも遠回りな計算しか・・・

130 :名前は開発中のものです。:2012/11/07(水) 09:03:26.42 ID:Mr7fX9Z7
>>109-128
ありがとう

131 :名前は開発中のものです。:2012/11/08(木) 06:32:08.18 ID:ELEjlKZe
見下しているつもりのバカの滑稽さがなかなか楽しかった

132 :名前は開発中のものです。:2012/11/08(木) 10:09:58.85 ID:8AHptFMp
なんだかんだ言って教えてくれる人がたくさんいるツンデレ空間w

133 :名前は開発中のものです。:2012/11/08(木) 11:16:16.68 ID:ELEjlKZe
>>1332
教えている奴の大半がまともにコード読めないアスペか
池沼だったけどな
まあマシンスペック上がってるしこんなんでもいいのか

134 :名前は開発中のものです。:2012/11/08(木) 12:15:49.62 ID:8AHptFMp
( ´∀`)σ)∀`) >>133

135 :名前は開発中のものです。:2012/11/08(木) 13:14:42.55 ID:zP8ZUOET
sqrtはx86の拡張命令セットにあるはずだからそんなにリソース食わないと思う
10年前のコンパイラ使ってるとかなら話は別だが

136 :名前は開発中のものです。:2012/11/08(木) 20:35:57.54 ID:1/7WKa2O
カンスト時のオーバーフロー対策として範囲チェック付きのintのラッパークラス作って
多方面でintの代わりに使うのって悪手なのかな?
チェックしないワケにはいかないから毎回毎回チェック用の関数に通してたけど
そんなことするくらいならラップしたほうがいいよね?

137 :名前は開発中のものです。:2012/11/08(木) 20:45:48.77 ID:Z+cFsqvj
>>136
それ演算子オーバーロードして計算する度にチェックしたりすんの?
結構なオーバーヘッドになりそうな気がするが…

一回ベンチマーク取ってみた方がいいと思うけど
あとはオーバーフローする可能性のあるところだけ使うとか

138 :名前は開発中のものです。:2012/11/08(木) 21:01:40.06 ID:1/7WKa2O
>>137
もちろん単純な計算とかはintと同じような振る舞いができるようにしようと思ったんだけど
思いつきだったから他所の各種フォーマットのこととか考えると一気にめんどくさくなってくるね・・・

139 :名前は開発中のものです。:2012/11/08(木) 21:36:07.56 ID:G2+9xcvR
多倍長整数クラスみたいなのは自作しないのが鉄則だと思う

140 :名前は開発中のものです。:2012/11/09(金) 16:35:38.97 ID:X+TCzH6/
ググッてみたが連絡必須な作者ばっかりだな

141 :名前は開発中のものです。:2012/11/09(金) 19:50:15.35 ID:VSrh+osv
「任意倍長整数 std::vector」でググッた?
しかし、ゲームではスコアぐらいしか使い道が無いような・・・

142 :名前は開発中のものです。:2012/11/09(金) 20:23:54.88 ID:r5dUZ16H
intがダメならlongを使えばいいじゃない
現実的な時間でカンスト出来なきゃおkでしょ

143 :名前は開発中のものです。:2012/11/09(金) 22:04:54.38 ID:VSrh+osv
それを言うならlong longじゃね?
longとintじゃ、サイズ一緒だし。

144 :名前は開発中のものです。:2012/11/09(金) 22:08:31.43 ID:VSrh+osv
C#やVBとC++じゃ、データサイズ違うしな

145 :名前は開発中のものです。:2012/11/09(金) 22:20:24.27 ID:iHmFaNL/
さーせんintが16bitと勘違いしてた

146 :名前は開発中のものです。:2012/11/09(金) 22:34:04.03 ID:Dzz1dA77
少し質問です。
最近のFPSゲームなどはどんな言語、環境、ソフトを使って開発しているのでしょうか?

147 :デジタルハリウッド偏差値45:2012/11/09(金) 22:36:07.04 ID:8DN5+ede
>>146
Unity

148 :名前は開発中のものです。:2012/11/09(金) 22:42:50.09 ID:Dzz1dA77
>>147
ゲームエンジンが主流ですか、Unityなら言語はC++でしょうか?

DXライブラリというものも耳にしますが、あれは何なのですか?

149 :デジタルハリウッド@偏差値45:2012/11/09(金) 22:44:39.99 ID:8DN5+ede
>>148
わかりません
Unityやってます
はいjavasciptでUnityを使います
シューティングゲームみたいなのを作っています

150 :名前は開発中のものです。:2012/11/09(金) 22:48:57.56 ID:lyg7gPNA
>>145
>さーせんintが16bitと勘違いしてた

16bit機なら間違ってない。

151 :名前は開発中のものです。:2012/11/09(金) 22:51:56.08 ID:pwxZtJFc
PCのFPSなら、作品数で多いのはudk またはunreal engineかと。やったことあるならロゴはみたことあるよね。
それかc++とdirectXで内製するかかな?
dxlibは公式みればわかるけど、directXのラッパーで扱いやすくしてるらしい。2dがメイン?
3Dは一応dxlibでもあるらしいよ。使えるか使うほどのものかは自分で調べてね。

公開されてるゲームエンジンならtorque3dとか、ogre3d(c#とかあるけどどれだけ利用されてるかはしらないな。

152 :デジタルハリウッド@偏差値45:2012/11/09(金) 23:03:02.76 ID:8DN5+ede
>>148
あ、javascirptやってればいいと思います
僕は学校でunityのjavascirptを使ってunityゲームつくってます


あ、そうなんですか
FPSはあれがすきです
ゴーデンアイです

日本のゲームしかわかりません

153 :名前は開発中のものです。:2012/11/09(金) 23:17:07.62 ID:Dzz1dA77
>>149
>>151
おぉレスありがとうございます、早速いろいろと調べてみます

ちなみに好きなFPSはAVAです

154 :デジタルハリウッド@偏差値45:2012/11/09(金) 23:22:45.88 ID:8DN5+ede
>>153
AVAですか
でもAVAってネトゲですよ
運営のGAMEONは韓国資本です
搾取されてる感じなのでネトゲはあんまり好きじゃないです

155 :名前は開発中のものです。:2012/11/10(土) 00:06:42.01 ID:ZRDvwXZX
(^q^)FPSが大好きです、どうやって作ればいいですか?

156 :名前は開発中のものです。:2012/11/10(土) 00:09:07.07 ID:/iHA2cHX
>>155
まず服を脱ぎます

157 :名前は開発中のものです。:2012/11/10(土) 00:26:49.89 ID:C6N3xOd/
C++製の同人ゲーでオススメは?

158 :名前は開発中のものです。:2012/11/10(土) 00:51:56.35 ID:c/VcRE9w
CかC++かとかわからんやろ〜

159 :名前は開発中のものです。:2012/11/10(土) 01:42:45.45 ID:jSSOLfjK
>>157
どうやって判断すんだw

160 :名前は開発中のものです。:2012/11/10(土) 01:51:18.61 ID:uDOWmTU2
readmeや自サイトに書かれてることは少なくないけどね

161 :名前は開発中のものです。:2012/11/10(土) 08:04:43.07 ID:vuCkQhFB
DXライブラリ使ってれば大抵C++

162 :名前は開発中のものです。:2012/11/10(土) 08:58:28.72 ID:WCv+J7TM
同人ゲームならコミケ行って開発者に聞くのが早くね?

163 :名前は開発中のものです。:2012/11/10(土) 09:08:47.06 ID:vuCkQhFB
バイナリエディタでexeを開いて「C++」で検索すると、「Visual C++ Runtime Library」という文字列が出てきた
VC++製のプログラム全部に含まれるみたいだからこれで判別できるな

164 :デジタルハリウッド@偏差値45:2012/11/10(土) 09:41:21.35 ID:LnFUWnqt
>>155
Unityがいいですよ
DirectXっていうのは時代遅れです
C++も時代遅れです
Javascriptがブームです

Unity Game Jamっていうサークルがあるのでよかったらきてください
FPS作ってる人もいます

165 :名前は開発中のものです。:2012/11/10(土) 09:44:50.76 ID:JDLvE6hN
UnityみたいなゲームエンジンもJavascriptで作れる時代なのか・・・
GooogleのV8もJavascriptで書かれてるのかな
そのうちJavascriptでOS書いたりデバイスドライバ書いたりできるようになるかな?

166 :名前は開発中のものです。:2012/11/10(土) 10:17:43.51 ID:hp96843s
>>165
なんか勘違いしてるっぽい

167 :名前は開発中のものです。:2012/11/10(土) 11:19:24.13 ID:JDLvE6hN
まさか時代遅れのC++やさらに古いC言語で書かれてたりしないですよね?

168 :名前は開発中のものです。:2012/11/10(土) 11:20:29.38 ID:7J8tbM/I
俺はjavascriptで身長伸びて彼女できて宝くじが当たったよ

169 :デジタルハリウッド@偏差値45:2012/11/10(土) 11:23:04.28 ID:LnFUWnqt
僕はUnityとjavascript使ってゲーム作ってるよ
C++とか時代遅れだよ
javascriptの時代だよ

170 :名前は開発中のものです。:2012/11/10(土) 11:24:43.50 ID:GU+cQ84R
高度な釣り

171 :名前は開発中のものです。:2012/11/10(土) 11:39:58.87 ID:ugQSrMUN
高度ではないだろ

172 :名前は開発中のものです。:2012/11/10(土) 12:39:11.62 ID:HViNGugV
どこからが釣りなの?
>ゲーム製作におけるC/C++全般に関するスレです。
まさかこれ?

173 :デジタルハリウッド@偏差値45:2012/11/10(土) 12:42:27.01 ID:LnFUWnqt
???

174 :名前は開発中のものです。:2012/11/10(土) 12:47:00.70 ID:L5/NCAoO
馬鹿と無知としったかはほっておけ。スルースキルは2chのスキルの中で最も重要

175 :名前は開発中のものです。:2012/11/10(土) 12:51:39.87 ID:HViNGugV
>>174
もともと釣りじゃなかったのか、了解した

176 :デジタルハリウッド@偏差値45:2012/11/10(土) 12:58:26.41 ID:LnFUWnqt
C++のnewってどういう意味でしょうか?

177 :名前は開発中のものです。:2012/11/10(土) 13:01:59.44 ID:7J8tbM/I
newはjavascriptにもあるだろ

178 :名前は開発中のものです。:2012/11/10(土) 21:44:09.79 ID:kdgWH7qz
javascriptwwwww

ブラクラゲームかwwwww

179 :デジタルハリウッド@偏差値45:2012/11/10(土) 22:20:18.38 ID:LnFUWnqt
何がおかしいんですか?

180 :名前は開発中のものです。:2012/11/10(土) 22:39:49.87 ID:zPoeI4Ci
初心者でも今時JavaとJavascriptは混同しねーよwww

181 :名前は開発中のものです。:2012/11/10(土) 22:51:17.47 ID:0f/wz9cV
誰かブラクラゲームに突っ込んでやれよw

182 :名前は開発中のものです。:2012/11/10(土) 22:57:47.64 ID:zPoeI4Ci
余計なJavaScriptはウザいからそういう皮肉かと思った

183 :名前は開発中のものです。:2012/11/13(火) 09:12:21.25 ID:9N5q0Xsj
話題ないみたいだからちょっと質問
透明色含んだビルボード表示するときにvectorに突っ込んで表示順ソートしてるんだけどなんか遅そうな気がする
もっと効率的にソートする方法ないかな
もしくはzバッファ切った方がいいの?

184 :名前は開発中のものです。:2012/11/13(火) 09:30:12.70 ID:8Q0utp4J
>>183
何個ソートしてんの?

185 :名前は開発中のものです。:2012/11/13(火) 10:33:03.40 ID:9N5q0Xsj
>>184
3Dシューティングぽいので弾を全部ソートしてるから最大で300くらいかな?
敵増やすと増えるからちょっとあいまいだけど

186 :名前は開発中のものです。:2012/11/13(火) 10:37:25.65 ID:4wR9uF6j
たった300なら何も問題ない
ただ、vectorにはポインタを詰め込むべき
vectorはlistと違ってソート時にメモリを直接置換するから、構造体のサイズがそのままネックになる
ポインタを詰めれば毎フレーム10000以上の要素をソートしても60fps余裕だよ

187 :名前は開発中のものです。:2012/11/13(火) 11:35:18.71 ID:A9vKBFCi
vectorの中身をポインタにして比較関数の中でポインタの先参照して比較って感じでいいのかな?

188 :名前は開発中のものです。:2012/11/13(火) 14:36:53.02 ID:7uL1yheX
でも「毎フレーム全ソート」って本当に必要?
弾が作られた時にだけ適所にインサートすればいんじゃない?

189 :名前は開発中のものです。:2012/11/13(火) 15:38:57.87 ID:4wR9uF6j
ソート方法によるけど、STLのマージソートは未ソートの要素が多いほど時間が掛かって、
ソート済の場合ほとんど処理を食わないから毎フレームソート処理してても大して問題ないはず

それに>>185は3D空間のオブジェクトのソートをしてるというから、カメラがちょっと動いただけでもソートの必要が出る
ソート関数にかけること自体がソートする必要があるかの判定になってると言ってもいい

190 :名前は開発中のものです。:2012/11/13(火) 16:39:59.60 ID:eWkVVOn6
>>183ですが
とりあえずstlのソートでも十分速いと言うことなので安心した
勉強になりました

191 :名前は開発中のものです。:2012/11/13(火) 21:04:01.78 ID:cEtJDQKT
横。

vectorにポインタを格納するとして、本体はどこに置くの?
もちろん状況次第だとは思うけど、別のvectorとか?

192 :名前は開発中のものです。:2012/11/13(火) 21:19:11.80 ID:a9WU8SHc
ヒープ

193 :名前は開発中のものです。:2012/11/13(火) 21:43:47.14 ID:HVfjUt4J
newしろ

194 :名前は開発中のものです。:2012/11/13(火) 21:56:20.66 ID:Oj4WY+EN
固定で別の配列にするのが普通だと思う

195 :名前は開発中のものです。:2012/11/13(火) 22:23:30.25 ID:4pvX9vHm
なら実データをvectorに入れればいいじゃん

196 :名前は開発中のものです。:2012/11/13(火) 22:35:19.83 ID:R7nFxA7+
シーンの最初と最後に生成、破棄するならauto_ptr使って
ポインタだけvectorで管理するのもありなんじゃないかと
思ったんだがどうだろうか

197 :名前は開発中のものです。:2012/11/13(火) 22:43:12.39 ID:HVfjUt4J
とりあえずauto_ptrとかいうゴミを捨てるんだ

198 :名前は開発中のものです。:2012/11/13(火) 22:57:50.27 ID:R7nFxA7+
よく考えたらauto_ptr使って元のポインタだけ管理しようとしたら
newしてる関数抜けた瞬間deleteされるからダメかw

199 :名前は開発中のものです。:2012/11/13(火) 22:58:45.26 ID:BrAT+Ts5
もうauto_ptr時代遅れなん?

200 :名前は開発中のものです。:2012/11/13(火) 23:01:15.07 ID:KobHHPjK
気にせず使ってください^^

201 :名前は開発中のものです。:2012/11/13(火) 23:01:32.88 ID:k2b3NisB
auto_ptrってなんですか? どうしてunique_ptrを使わないんですか?

202 :名前は開発中のものです。:2012/11/13(火) 23:02:03.36 ID:R7nFxA7+
c++11でdeprecated指定だって
http://en.m.wikipedia.org/wiki/Auto_ptr

なんかunique_ptrが代わりになるのかな?

203 :名前は開発中のものです。:2012/11/13(火) 23:07:03.03 ID:k2b3NisB
スコープを抜けるときに自動で閉じるファイルポインタとか
例外いつ投げても閉じてくれるので便利ですね?
std::unique_ptr<FILE, decltype(&fclose)> fp(fopen("filename", "r"), fclose);

204 :191:2012/11/14(水) 00:25:26.13 ID:CmmzPOW9
>>192-194
最初から数が分かってるか、途中で増えるか等に応じて、
普通の配列、配列の動的確保、vectorあたりを使い分けるって感じかな?

205 :名前は開発中のものです。:2012/11/14(水) 07:47:57.43 ID:f09Uuje+
vectorで実体まとめるとバッファのリサイズ発生した時にアドレス変わるんじゃない?

206 :名前は開発中のものです。:2012/11/14(水) 08:50:51.27 ID:Za6Nl7tI
そんなの当たり前じゃん。

207 :名前は開発中のものです。:2012/11/14(水) 08:58:13.52 ID:f09Uuje+
vectorで実体管理してソートのためにポインタのvector使ったら
リサイズ発生した時点で参照変わるからちゃんと動かなくなるよね
最初に確保した分より増えないなら大丈夫だろうけど
これ発生したら原因特定めんどくさそう

208 :名前は開発中のものです。:2012/11/14(水) 09:06:59.91 ID:CmmzPOW9
あー、それもそうか。失敬

209 :名前は開発中のものです。:2012/11/14(水) 15:05:59.50 ID:Za6Nl7tI
>>207
っていうか「Vectorで実体管理」がそもそも意味不明。
ポインタで管理してるならそれだけでいいじゃん。

210 :名前は開発中のものです。:2012/11/14(水) 16:31:57.71 ID:OuQGweox
確かにvectorにポインタいれときゃそれでdelete出来るな
自分でちゃんとdeleteするならそれで十分か

211 :名前は開発中のものです。:2012/11/14(水) 17:44:55.77 ID:3cThVkCw
newしたポインタはとりあえずstd::unique_ptrかstd::shared_ptrに入れるべき
deleteなんて自分で書いたら負けだぞ
デストラクタもハンドル管理クラスみたいなの以外では自分で書いたら負け

212 :名前は開発中のものです。:2012/11/14(水) 18:27:52.20 ID:lHOdfYqK
それは一般レベルの場合な
我々のように国家機密レベルでやってる場合は違う

213 :名前は開発中のものです。:2012/11/14(水) 18:36:32.02 ID:5BbMRJco
何に負けるんだよ
見えない敵と戦う労力こそが一番の無駄

214 :名前は開発中のものです。:2012/11/14(水) 19:00:59.45 ID:3cThVkCw
見えない敵というとメモリリークですね
まあ、お遊びプログラムならすぐに終了されるので
リークしても問題ないのかもしれませんが

215 :名前は開発中のものです。:2012/11/14(水) 19:09:24.21 ID:3BI2eEEx
shared_ptrはvectorに入れても大丈夫なのか
vector<shared_ptr<クラス>>でやっときゃ勝手に消えてくれそうだな

216 :名前は開発中のものです。:2012/11/14(水) 19:15:38.28 ID:CmmzPOW9
>>211
十行くらいのブロックで、かつ外に出すつもりもないならnew/deleteで書いちゃうなあ

217 :名前は開発中のものです。:2012/11/14(水) 19:28:19.33 ID:BbQiy07V
リークするのはお前の脳みそだけにしておけ

218 :名前は開発中のものです。:2012/11/14(水) 19:32:08.10 ID:FHk4zIEt
うんまぁお前らも一番実感してると思うけど、自分のルールの一貫性を保つことが一番大事だからな
もちろん柔軟に対応するのも大事だし柔軟に対応できるような構造にしておくことはもっと大事だが

219 :名前は開発中のものです。:2012/11/14(水) 19:38:37.20 ID:3BI2eEEx
>>216
ブロックの外に出さないならローカル変数の方がよくない?
可変長だと無理かもしれんけど

220 :名前は開発中のものです。:2012/11/14(水) 19:40:11.42 ID:3cThVkCw
生ポインタの場合

A* a = nullptr;
B* b = nullptr;
try {
a = new A();
b = new B();
doSomething(a, b);
}catch(...){
if (a) { delete a; }
if (b) { delete b; }
throw;
}
delete a;
delete b;



std::unique_ptrを使う場合

std::unique_ptr<A> a(new A());
std::unique_ptr<B> b(new B());
doSomething(a.get(), b.get());


なぜわざわざ生ポインタを使おうとするのか、理解できない

221 :名前は開発中のものです。:2012/11/14(水) 19:52:16.75 ID:3BI2eEEx
生ポとは関係ないんだけど、例外処理ってしてる?
tryは遅いらしいと何かでみたから基本投げっぱなしスープレックスなんだけど
実際どうなん?

222 :名前は開発中のものです。:2012/11/14(水) 19:56:47.63 ID:aP39cEyY
投げっぱなしだとexeが落ちちゃうだろ…(Windowsなら

223 :名前は開発中のものです。:2012/11/14(水) 20:00:51.70 ID:K6TezrTK
落ちなかったらバグったまま続いちゃうじゃん?

224 :名前は開発中のものです。:2012/11/14(水) 20:45:10.81 ID:S4/fLXg9
なんでC++11前提で話してるのか理解できない

225 :名前は開発中のものです。:2012/11/14(水) 20:49:59.82 ID:3cThVkCw
C++11じゃないならboostを使えばよろしい

226 :名前は開発中のものです。:2012/11/14(水) 21:04:33.08 ID:KC8fJK0S
>>222
デバッグで例外が発生したら例外の原因箇所にチェック入れて防ぐように修正してる
基本は例外じゃなくて戻り値で成否を返すような感じ

227 :名前は開発中のものです。:2012/11/14(水) 22:40:22.29 ID:FilUuDwR
スマートポインタの名前の長さは
C++スタイルキャストを思い出す

228 :名前は開発中のものです。:2012/11/15(木) 00:52:00.71 ID:CCQxRnc8
ふと思ったんだが、ゲーム・アプリのプレイ期間中に、
同一スコープ内でnewして解放する局面ってあるか?
つうか、プレイ期間中じゃなくても、同一スコープ内で
newして解放する局面って思いつかないな。
同一スコープ内なら、非ポインタのオブジェクト変数で済ませる。

229 :名前は開発中のものです。:2012/11/15(木) 08:27:34.76 ID:kybbSnHR
コンストラクタに引数必須とか?

230 :名前は開発中のものです。:2012/11/15(木) 13:27:32.69 ID:CCQxRnc8
>>229
変数定義に引数記述してもコンパイル通るよ。
class Test {
public:
  Test(int arg);
   :
};

int a = rand();
Test ins(a);

231 :名前は開発中のものです。:2012/11/15(木) 13:44:36.27 ID:FiWT7kKo
>>230
出来るんだ…
考えてみれば出来ない理由もないか


じゃあ>>203みたいにポインタ返すけど、後始末は呼び出し側がやらないといけない関数とかかな?
あとはスタックにデカイ領域作りたくないとか?意味があるかはわからんけど

232 :名前は開発中のものです。:2012/11/15(木) 17:38:22.10 ID:CCQxRnc8
>スタックにデカイ領域作りたくないとか

これはあるかもね。
とは言っても具体的な局面が思い浮かばない・・・

233 :名前は開発中のものです。:2012/11/15(木) 19:13:59.62 ID:JDzb/9N7
スコープ抜けたら勝手に消えるだけがメリットじゃないだろう
メンバ変数にしておけば親が死ぬとき勝手に死んでくれるし

ていうかスマートポインタ使わないとコンストラクタで例外が発生した時どうするんだ

234 :名前は開発中のものです。:2012/11/15(木) 20:24:55.99 ID:CCQxRnc8
具体的にどんな例外を想定してるの?

235 :名前は開発中のものです。:2012/11/15(木) 21:06:29.19 ID:JDzb/9N7
なんでスマートポインタを使うのを躊躇うの?
unique_ptrは自動的にdeleter呼んでくれる上に
性能的には生ポと同じコストで使えるんだぞ

236 :名前は開発中のものです。:2012/11/15(木) 21:15:04.36 ID:V2Q8QmNk
>>235
別に躊躇ってる人は居なくね?

237 :名前は開発中のものです。:2012/11/15(木) 21:16:59.75 ID:/bYy5p67
なんかこの流れ前にも見たな

今話してるのはunique_ptr使うんだったら普通にautoで変数定義すればよくね?
って所だと思うが

238 :名前は開発中のものです。:2012/11/15(木) 21:17:12.28 ID:f9BWxP4M
なんでC++11やboost前提で話してるのか理解できない

239 :名前は開発中のものです。:2012/11/15(木) 21:24:24.52 ID:V2Q8QmNk
この板的には、まだまだ11前提とするには厳しいかなー?

240 :名前は開発中のものです。:2012/11/15(木) 21:37:01.79 ID:JeS5pTB2
新しいもの好きなのはいいけど自分がマイノリティなのに気づけよ

241 :名前は開発中のものです。:2012/11/15(木) 21:41:59.03 ID:JDzb/9N7
>>237
お前は何を言っているんだ
スマートポインタと型推定は全然違う話だぞ

>>239
STLすら厳しそうだ
なぜだか自作ライブラリのほうが優れてるとか勘違いする奴が多いんだよな

242 :名前は開発中のものです。:2012/11/15(木) 21:45:29.61 ID:JDzb/9N7
ゲーム開発とSTL
ttp://d.hatena.ne.jp/masfj/20120308/1331220846

C++を知らないゲームプログラマ達
ttp://d.hatena.ne.jp/alwei/20111008/1318090538

243 :名前は開発中のものです。:2012/11/15(木) 21:48:28.33 ID:Dmy8apjq
>>241
まず話の前提として>>228があってそもそもnewする必要なくね?という問題提起があるんすよ
あと型推定ってなんすか

244 :名前は開発中のものです。:2012/11/15(木) 21:51:46.71 ID:V2Q8QmNk
autoには2種類あるから、そこですれ違ってるんじゃない?

245 :名前は開発中のものです。:2012/11/15(木) 21:55:52.06 ID:Dmy8apjq
ごめん、c++11のautoと勘違いさせたか
俺が言ったのはただの自動変数のことです

246 :名前は開発中のものです。:2012/11/15(木) 21:56:18.09 ID:V2Q8QmNk
>>241
>STLすら厳しそうだ
>なぜだか自作ライブラリのほうが優れてるとか勘違いする奴が多いんだよな

いや、既存ライブラリを使わない病気のじゃなくw

247 :名前は開発中のものです。:2012/11/15(木) 21:56:44.58 ID:JDzb/9N7
スタックオーバーフローしないならnewする必要はないな
でもスマートポインタの使い道ってそれだけじゃないよ?
むしろクラスのメンバ変数にこそ使ってほしい
デストラクタを自分で書くのはもうやめよう

あと、C++11ではautoの意味が変わりました
C#のvarみたいに変数の型を推定してくれるので
STLのイテレータとか死にそうなくらい長い型名でも
for(auto i = v.begin(), e = v.end(); i != e; ++i) { ... }
こんな風に書けて超便利な機能です

248 :名前は開発中のものです。:2012/11/15(木) 21:58:09.46 ID:JeS5pTB2
STLは慣れるまでは内部でどういう処理してるのかわからなくて気持ち悪い部分はあったな

249 :名前は開発中のものです。:2012/11/15(木) 22:06:00.91 ID:AHySL0i4
内部のことなんて知らなくていいんだよ
使い方を知ってれば、低能でも使えるのがSTL
だからこそ意味がある

250 :名前は開発中のものです。:2012/11/15(木) 22:11:50.11 ID:AKJanR6y
>>249
それでバグ出したらデバッグで死ねるな

251 :名前は開発中のものです。:2012/11/15(木) 22:14:31.65 ID:JeS5pTB2
コード書き間違えるとたまにSTL内部のコードに誘導される時があるよな
記述ミスったところでエラー検知してくれよと言いたくなる

あと気になるのはゲームだからだろうな
静的プログラムなら負荷が発生するパターンなんてどうでもいいけど、
動的プログラムだとそこら辺完全に把握してないと非常に気になる

252 :名前は開発中のものです。:2012/11/15(木) 22:18:29.51 ID:CCQxRnc8
>>247
>むしろクラスのメンバ変数にこそ使ってほしい
なぜ自動変数ではダメなん?

253 :名前は開発中のものです。:2012/11/15(木) 22:25:11.84 ID:JDzb/9N7
STLだとメモリを自分で管理できないとか言ってる奴はいないか
ttp://www.slideshare.net/alwei/ss-11521742

>>252
スタックオーバーフローしないならnewする必要はないな

254 :名前は開発中のものです。:2012/11/16(金) 07:35:50.58 ID:wj9cLs/W
http://www22.atpages.jp/otsr/cgi-bin/src/otsr8520.jpg

http://www22.atpages.jp/otsr/cgi-bin/src/otsr8521.jpg

255 :名前は開発中のものです。:2012/11/16(金) 13:39:30.43 ID:BTfLhLXO
絵柄と相まって小学生が好きそうなノリだなw

256 :名前は開発中のものです。:2012/11/16(金) 16:46:04.64 ID:N1OcN+jA
vector配列のvector配列をvector配列で管理する三次元配列って開放する時大本だけ開放しておけばおk?

257 :名前は開発中のものです。:2012/11/16(金) 17:19:36.14 ID:BTfLhLXO
vector<vector<vector<int> > > か?
実体さえ行方不明にならなければどうとでもなるが
newしたものを格納してるならshared_ptrじゃないと危ないかもな

258 :名前は開発中のものです。:2012/11/16(金) 18:07:16.53 ID:sOBt52RE
typedef shared_ptr<MapData> MapTip
typedef vector<MapTip> Map1D
typedef vector<Map1D> Map2D
typedef vector<Map2D> Map3D

259 :名前は開発中のものです。:2012/11/16(金) 19:28:23.88 ID:N1OcN+jA
ポインタじゃなくて実体を格納するなら大丈夫なのか
クラスのメンバとしてコンテナ使ってると混乱してくる

260 :名前は開発中のものです。:2012/11/16(金) 21:05:15.58 ID:JKxfRh2i
別にポインタを格納しても何の問題もねえよ混乱しすぎ
Actor* actor = MapTip[0][4][6];
a->Draw();
みたいなアホな事してないなら何の問題もない

261 :名前は開発中のものです。:2012/11/16(金) 21:08:12.91 ID:N1OcN+jA
混乱してるのはそこじゃねーよ!

262 :名前は開発中のものです。:2012/11/16(金) 21:16:48.82 ID:JKxfRh2i
>>261
悪い、ちょっと想定がアレな上にアホな事コード(vectorのアドレス保存して云々が正しくアホなコード)も間違ってるというアレっぷり

実体なら問題はないが、個人的にはコピーコストが馬鹿みたいにかさむからshared_ptr推奨したいな
メンバのメンバのメンバの...みたいに順々にデストラクタは働くので、実際にユーザーが使用した型であるvector<vector<vector<T>>>をclearすれば、Tのデストラクタがちゃんとしてるならば処理される

263 :名前は開発中のものです。:2012/11/16(金) 21:28:55.22 ID:bHfLv1nY
所有権を共有する必要はないのでunique_ptrを使いたいけど
ポリモーフィズムに対応してないという弱点のせいでshared_ptrにせざるをえない

264 :名前は開発中のものです。:2012/11/16(金) 21:37:31.95 ID:BTWHJeh/
ていうかunique_ptrってコピーしても大丈夫なん?

265 :名前は開発中のものです。:2012/11/16(金) 21:56:59.63 ID:Tl4n6tnv
なんのゲーム作ってるのか誰も書かないではないか。

266 :名前は開発中のものです。:2012/11/16(金) 21:59:18.17 ID:JKxfRh2i
>>264
unique_ptrはコピー不可能だよ moveは可

>>263
ポリモーフィズムに対応していない、とは……??
http://ideone.com/oD6tgf

267 :名前は開発中のものです。:2012/11/16(金) 22:12:13.09 ID:bHfLv1nY
あれ、できるようになってる・・・?
前はva[1] = std::move(b);で怒られてた気がしたんだけど

#include <memory>
#include <vector>

struct A {
int val;
A(int i):val(i){}
};

struct B : public A {
B(int i):A(i){}
};

int main()
{
std::vector<std::unique_ptr<A>> va(2);
std::unique_ptr<A> a(new A(1));
std::unique_ptr<B> b(new B(2));
va[0] = std::move(a);
va[1] = std::move(b);
for(auto& i : va) {
printf("%d\n", i->val);
}
}

268 :名前は開発中のものです。:2012/11/16(金) 22:48:49.93 ID:EdJd2yN1
すみません
質問です

1次元配列で使用可能な要素を前に詰める関数を書きたいのですがどういう方針で行ったら良いでしょうか?
例えば
TestArray[8]があって、その関数実行後に
|○|○|×|×|○|×|○|×|

|○|○|○|○|×|×|×|×|
のようにしたいのです
どなたか良いアイデアをお持ちの方よろしくお願いします。

269 :名前は開発中のものです。:2012/11/16(金) 22:51:01.79 ID:b7Jxtx/j
普通にソートじゃだめなん?

270 :名前は開発中のものです。:2012/11/16(金) 22:57:44.20 ID:bHfLv1nY
安定じゃなくても良いなら
for(;;) {
前から×を探す
後から○を探す
swap
前と後ろが逆転したらbreak
}

271 :名前は開発中のものです。:2012/11/16(金) 22:58:20.10 ID:EdJd2yN1
>>269
1フレームで10以上呼ぶつもりなので出来るだけ高速な処理をしたいんです。
値の大小が無いだけで、ソートのようなプログラムになることは理解できるんですが・・・。

272 :名前は開発中のものです。:2012/11/16(金) 22:58:32.75 ID:BTWHJeh/
間つめたいだけじゃないの
普通に先頭から見てってつめればいんじゃない

273 :名前は開発中のものです。:2012/11/16(金) 22:59:05.57 ID:JKxfRh2i
>>268
std::sort使って、比較関数だけ自前で書く

>>270
std::sortを薦めろや…

274 :名前は開発中のものです。:2012/11/16(金) 23:01:41.02 ID:BTWHJeh/
ソートだとO(nlogn)になるじゃん
間つめるだけならO(n)ですむ

275 :名前は開発中のものです。:2012/11/16(金) 23:03:52.15 ID:N1OcN+jA
今時ゲームにその程度の高速化必要か?

276 :名前は開発中のものです。:2012/11/16(金) 23:07:21.91 ID:bHfLv1nY
そもそもなんでそんなことになるかな
途中の要素を削除するときは末尾の要素とswapしてから削除すれば良いだけだろ

277 :名前は開発中のものです。:2012/11/16(金) 23:16:25.42 ID:JKxfRh2i
出てるのに加えて使用可能と不可能で別のスタックでも使えばいいとか、色んな方法が考えられるな

>>274
汎用のブツを使うべきだろ、高速化が必要な風にも見えんし
必要ならその時点で書きなおせばいい

278 :名前は開発中のものです。:2012/11/16(金) 23:19:43.28 ID:EdJd2yN1
>>272さんの言う通り普通に前から詰めます。ありがとうございました。

279 :名前は開発中のものです。:2012/11/17(土) 04:14:11.89 ID:Yvb5b4+U
パフォーマンスを気にしたら、その分ゲームが完成から遠ざかる気がする

「できるだけ速く」ではなく、
「aaの環境でbbくらい時間がかかるが、ccくらいの時間にしたい」
が明確になるまでは、パフォーマンス気にしないほうがいんじゃね

もちろん遅すぎて論外なことをやらない、って前提ありきだけど

280 :名前は開発中のものです。:2012/11/17(土) 11:37:53.11 ID:aR98lbIK
昔はSLGを遊ぶ場合、敵の思考モードに入るとそれだけで数分かかったものだよ

281 :名前は開発中のものです。:2012/11/17(土) 16:54:20.20 ID:WXt99mEx
数分?

282 :名前は開発中のものです。:2012/11/17(土) 17:03:31.27 ID:N5wMv0H7
・・・思考中デス・・・

今じゃパターン総当りでもまったく気にならないからなー
いい時代になったもんだ

283 :名前は開発中のものです。:2012/11/17(土) 21:31:41.79 ID:lAYofdVH
処理ごとの時間を測れるライブラリみたいのつくっておけばいいのに。
そうすれば、
遅くなりそうなところが、実際は、別のところがネックだったってのが
わかるし、変に悩まなくてすむ。

284 :名前は開発中のものです。:2012/11/17(土) 21:33:12.27 ID:N5wMv0H7
普通に計測プログラム用意したり、処理の途中に時間計測して個別に比較したりするんじゃダメなん

285 :名前は開発中のものです。:2012/11/17(土) 21:36:26.15 ID:wjcsv03f
プロファイラぐらい使えよ

286 :名前は開発中のものです。:2012/11/17(土) 22:50:47.28 ID:4SSSv3ja
俺のプロファイリングによるとこのスレの住人は10代から20代、もしくは30代から40代、50以上の年齢の男性あるいは女性
プログラミング自体には精通しておらず、文法を覚えている程度の初心者と思われるが、必ずしもそうとは言えない

287 :名前は開発中のものです。:2012/11/17(土) 22:53:57.31 ID:FLG+6H3e
最近は「素人が○○することは考えにくい」って言うんじゃないのか

288 :名前は開発中のものです。:2012/11/17(土) 23:00:28.20 ID:4SSSv3ja
これか
http://www.jiji.com/jc/zc?k=201210/2012101800773

バイナリからソースが外付けストレージにあったとか判るもんなのか

289 :名前は開発中のものです。:2012/11/17(土) 23:09:23.72 ID:vLrNZqQF
何らかの形でディレクトリのパスが入ることはあるだろうけど
ストレージの種類までは記録されたりせんよ
CやDじゃないから、ぐらいの根拠だろう

290 :名前は開発中のものです。:2012/11/17(土) 23:15:36.55 ID:wjcsv03f
>>288
自分でコンパイル後のバイナリ確認してみ?
パスは入ることもあるよ。

気になるならバイナリエディタ辺りで消せばいい。
動作に問題はない。

291 :名前は開発中のものです。:2012/11/17(土) 23:45:04.79 ID:N5wMv0H7
龍神録の館ですら説明してるし

292 :名前は開発中のものです。:2012/11/18(日) 02:01:16.37 ID:a/mIzCX9
ボタンのクラス作ったんだけど
class ButtonにDraw()関数にboolの戻り値つけて押されているか押されてないか判定するのってあり?

293 :名前は開発中のものです。:2012/11/18(日) 03:37:14.26 ID:G8vKCtAR
混乱するのでナシ
自分でちゃんと把握できるのなら挙動がすべてなのでどう書いてもいいが

294 :名前は開発中のものです。:2012/11/18(日) 04:23:18.47 ID:OtH/PY93
ありがとう。ボタンクラスが、出来た!

class Button{
POINT CoordUL,CoordDR;//右上、左上座標。
int m_nONButtonTexture;//押された時のテクスチャ番号
int m_nOFFButtonTexture;//押されてない時のテクスチャ番号
XMMATRIX m_Transform;//変形行列
public:
void Draw();//画面上に描画。
//コンストラクタ。
Button::Button(int ulX,int ulY,int drX,int drY,
int nONButtonTexture,int nOFFButtonTexture);
//押されているかどうか。
bool PushCheck(int nMousePosX,int nMouseY);
};

295 :名前は開発中のものです。:2012/11/18(日) 04:33:06.01 ID:JhTLY1BD
C++では多少の粗は速度でカバーする!

296 :名前は開発中のものです。:2012/11/18(日) 09:28:38.84 ID:1KRliL9g
まあ適当に作ってもそれなりに速度でるもんな
コードに時間かけるよりバグ出さないような
設計、書き方に気を付けた方が幸せになれる

jsでブラウザゲームとか作ってみたら遅すぎて泣けてくる

297 :名前は開発中のものです。:2012/11/18(日) 09:42:02.13 ID:t3/vK/l2
最近の女子小学生はブラウザゲームとか作るのか

298 :名前は開発中のものです。:2012/11/19(月) 00:02:52.78 ID:xStQIj1y
遅すぎると逆に萌えるなそれは。

299 :名前は開発中のものです。:2012/11/19(月) 08:00:26.59 ID:Z7RVi5qW
ふええ、こんなにいっぱいしょりできないよお

300 :名前は開発中のものです。:2012/11/20(火) 05:52:27.33 ID:JIlX6vOn
>>267
これ見てて思ったんだけど、
struct A と struct Bはそれぞれ非仮想の暗黙のデストラクタを持つじゃない。
すると std::vector<std::unique_ptr<A>> va(2) が破棄されるときには Aのデストラクタが呼ばれるよね。

#include <iostream>
#include <memory>
#include <utility>

struct A{
int val;
A(int i):val(i){};
};
struct C{ int dummy; };
struct B : private C,public A { // 多重継承を用いて vtbl の計算を複雑にする。
B(int i):A(i),C(){};
};

int main(int,char*[]){
std::unique_ptr<B> b( new B(10) );
std::cout << "\(^-^)/" << b->val << std::endl;
std::unique_ptr<A> a(nullptr);
a = std::move( b );
return 0;
}

(これは、わざと落ちるようstruct Cを入れて多重継承してみたんだけど、
問題はBのデストラクタは走らないよの部分)
暗黙のデストラクタって気にする?

301 :名前は開発中のものです。:2012/11/20(火) 07:24:43.57 ID:JIlX6vOn
暗黙のデストラクタって気にする?じゃ意味がつたわんないな。
多分 struct Aの定義は、割と普通にやるとおもう。
じゃあ Bを書いた時点でAを public 継承してるけどAには仮想のデストラクタが用意してないから、
B*をA*にキャストして、それをdelete したらこけるじゃん Aに仮想デストラクタを用意するように
お願いするかAの継承をあきらめてメンバで持つようにするか B*を A* にキャストして、delete
するのはだめよとココロの中でお願いするか選択肢が出てくると思うんだ。
main 書いてる最中も std::move の時点で、struct Aのデストラクタは、非仮想だから、
unique_ptr<A> の破棄時にstruct Bのデストラクタが呼ばれないなと気がつかないといけない
と思うんだけど、正直最初、自分は全部スルーしてた。
暗黙のデストラクタは非仮想であることにみんなどのあたりで気がつくように訓練してる?

302 :名前は開発中のものです。:2012/11/20(火) 11:56:10.65 ID:Hewg6tab
継承元になるクラスにはvirtualなデストラクタを付ける、を習慣にするしか…

303 :名前は開発中のものです。:2012/11/20(火) 12:42:09.27 ID:/LQmBJc6
C++ではAが継承を想定しないなら
Aを継承しないのがふつうじゃん?
トラブルを避けるためにメンバに持つ。
暗黙のデストラクタが非仮想なのはあたりまえじゃん?
訓練してるってたんに知識の問題のような。

304 :名前は開発中のものです。:2012/11/20(火) 18:03:15.21 ID:YMT95jvg
常に全てにvirtual付けてりゃいいんじゃね
最適化の段階で外していけばいいよ

305 :名前は開発中のものです。:2012/11/21(水) 02:32:47.54 ID:O0QHrPFm
javaかよw

306 :名前は開発中のものです。:2012/11/21(水) 08:07:42.08 ID:Sa/LjIte
javaみたいにクラスの継承禁止って出来ないの?
と思って調べたらc++11からfinal追加されたのね

307 :名前は開発中のものです。:2012/11/21(水) 19:50:13.57 ID:i5WslLE/
小学生の息子にアクションゲームを作ってる所だけど、背景とか音楽が難しいー。誰かファミコンぽいやつ作れる人いないかな。

308 :名前は開発中のものです。:2012/11/21(水) 20:13:31.23 ID:RN32Cd3P
とりあえずプログラムでウィンドウを画面に出す

画像を読み込んでウィンドウに表示させる

キー入力を受け付ける処理を作る

キー入力で画像の表示位置を変えたりアニメーションさせたりする

画像表示のパターンを増やす

完成

309 :名前は開発中のものです。:2012/11/21(水) 20:56:45.03 ID:i5WslLE/
>308
ありがとう。
一応、横スクロール、プレイヤー移動、弾発射まではできてて、今から敵とかダメージ判定とかやるつもり。音楽ないとさみしいなーとか、背景もっと森とかしたいなーとかおもってるけど、雲とかがせいぜいで、、、

310 :名前は開発中のものです。:2012/11/21(水) 21:03:39.96 ID:1xP0Jxk2
ファミコン風背景なんざペイントでグリグリでいいんじゃないの?

311 :名前は開発中のものです。:2012/11/21(水) 21:17:48.26 ID:e4cilLWo
>>310
素人が知ったかすんなよw

312 :名前は開発中のものです。:2012/11/21(水) 21:19:49.30 ID:1xP0Jxk2
何が知ったかなんだよw

313 :名前は開発中のものです。:2012/11/21(水) 21:23:14.86 ID:4ruuHy6d
>>307
えーと、質問の意味が分らないんだが。
絵や音楽を作るのが難しいと言ってるのか。
プログラムの話しどっちだ?

文体から前者にとれるんだが。前者ならスレ違い。

314 :名前は開発中のものです。:2012/11/21(水) 21:25:40.22 ID:1xP0Jxk2
「風」って言ってるから俺は素材だと理解したわ
風でいいならスプライトや和音の仕様をプログラムで再現する意味はないし

315 :名前は開発中のものです。:2012/11/21(水) 21:25:58.45 ID:hLXHgUEm
ファミコンはドット絵だからペイントで描くようなもんじゃないだろう

316 :名前は開発中のものです。:2012/11/21(水) 21:29:25.50 ID:4ruuHy6d
>>315
ルーペで拡大して描くんだろwしらんけどw

317 :名前は開発中のものです。:2012/11/21(水) 21:34:52.78 ID:1xP0Jxk2
ペイントでドット絵描いてる人は今も多いぞ
ドット絵なんてアンチエイリアス掛からないツールなら問題ないしな
それほどクオリティを求めないファミコン風なら、アンチエイリアスもかけないしペイントで十分

318 :名前は開発中のものです。:2012/11/21(水) 21:53:06.25 ID:i5WslLE/
>313
前者です。スレ違いみたいでした。すみません。
背景が難しいていったのはマップチップ作ってそれをループで並べてるんですけど、樹木とか遺跡っぽいのが作るの難しくて。
子供が寝たから今からまた作ります。

319 :名前は開発中のものです。:2012/11/21(水) 22:32:54.29 ID:Ar9mPays
実際にどういう絵にすればファミコンっぽくなるかが気になるなら
CG板にあるドット絵スレで質問するといいよ。
http://toro.2ch.net/test/read.cgi/cg/1347980328/

一応この板にもドット絵スレは幾つかあるけど、あんまり動いてない。
あと音楽は分からん。たぶん2chのどこかにチップチューンスレとかあると思う。

320 :名前は開発中のものです。:2012/11/21(水) 22:38:13.26 ID:i5WslLE/
>319
ありがとうございます!
曲のほうはこの板の別スレで、リクエストできるスレがあったので、そちらにレスしてみました。
ドット絵は後で調べてみます。
今は、穴に落ちた時やライフゼロのときのゲームオーバーの判定実装してます。

321 :名前は開発中のものです。:2012/11/21(水) 22:41:06.45 ID:vU7vV5c8
ファミコンっぽくしたいなら、解像度を荒くする、色数を8色以下にする、マップチップのサイズを8*8にする、くらいじゃないのかな。

322 :名前は開発中のものです。:2012/11/21(水) 22:47:05.46 ID:4ruuHy6d
>>320
ドット絵なら素材じゃだめなんか?
素材サイト回れば一通りそろいそうだが。

323 :名前は開発中のものです。:2012/11/21(水) 23:05:03.40 ID:i5WslLE/
>322
前にマップチップで探してみたんですけどRPG 用ぽいのが多くて、とりあえず探すのやめてました。

324 :名前は開発中のものです。:2012/11/21(水) 23:05:22.18 ID:BpQGjbQp
マウス押された時呼ばれるコールバック関数があるのだけど、
メインループの関数内の処理によってコールバックの内容も変えたい。
どういう設計すればいいの?

325 :名前は開発中のものです。:2012/11/21(水) 23:09:17.43 ID:GbUHGBi8
コールバック関数を設定しなおすとかすればいいんじゃね?

326 :名前は開発中のものです。:2012/11/21(水) 23:11:57.28 ID:hLXHgUEm
int f;
main()
{
f=0;

f=1;

f=2;
}

コールバック(int f)

switch(f)


こんなんでいいんじゃないの

327 :名前は開発中のものです。:2012/11/21(水) 23:31:26.12 ID:BpQGjbQp
>>326
やっぱりそうかー。
fに当たる変数はグローバル変数で取ってるから受け渡しは必要ないんだけどやっぱりそうなるか。
main()で配列に関数ポインタ設定して、コールバックのほうで設定されている関数ポインタ配列から自動的に呼び出しとか面倒なこと考えてた。
ありがとう。

328 :名前は開発中のものです。:2012/11/22(木) 00:45:52.42 ID:Y6G4CBGg
敵がマップスクロールに引っ張られてくる、、
実装の仕方がまずいのかなー。プレイヤーはマップの真ん中の座標にきたらマップの描画位置をずらすようにしてる所が悪いんだろうか。

329 :名前は開発中のものです。:2012/11/22(木) 01:20:33.58 ID:ds3F2YzA
言ってる意味がわからない。

330 :名前は開発中のものです。:2012/11/22(木) 01:45:38.18 ID:Y6G4CBGg
画面が右にスクロールすると、左に進んでた敵の速度が遅くなってしまう。

331 :名前は開発中のものです。:2012/11/22(木) 02:56:28.36 ID:3oA0zPbz
大きく分けて、2つの実装方法があると思う。
例えば毎フレーム5ドットずつマップスクロールすると仮定した場合、


(1)スクリーン座標
プレイヤーキャラや敵キャラの位置を、画面上の座標として保持する方式。
「カメラ」は固定のまま、「舞台」が移り変わるイメージ。演劇みたいな。

背景はスクロールするが、実質的に固定画面ゲーと同じようなデザインなゲーム向きだろうか。例えばシューティングゲーム等。

 プレイヤーキャラ: プレイヤーが操作しなければ座標は変更されない。
 敵キャラ:      通常の動作(前進や停止など)に加えて、毎フレーム5ドットずつ加算される。
 背景:         毎フレーム5ドットずつ加算される。
 カメラ:        動かさない。


(2)ワールド座標
プレイヤーキャラや敵キャラの位置を、マップ全体から見た座標として保持する方式。
「カメラ」が移動して、マップ上の各オブジェクトを映しだす。TVのマラソン中継や競馬中継みたいな。
よって、自動スクロールの場合、プレイヤーが操作しなければプレイヤーキャラも画面外に消えてしまう。
画面上に表示される位置は、(マップ上の座標)-(カメラ座標)で求められる。

広いマップを探索するようなゲーム、スクロールのタイミングや速度がプレイヤーの操作で変わるゲーム向きか。マリオ等。

 プレイヤーキャラ: プレイヤーが操作しなければ座標は変更されない。
 敵キャラ:      通常の動作(前進や停止など)による変更。
 背景:         動かさない。
 カメラ:        毎フレーム5ドットずつ加算される。


……みたいな感じ。

332 :名前は開発中のものです。:2012/11/22(木) 08:50:06.52 ID:Y6G4CBGg
やりたいのは(2)のほうで、マリオとかみたいにプレイヤーが画面中央より左右に進もうとしたら、画面スクロールしようとしてます。
>331の内容見て、また考えてみます。

333 :名前は開発中のものです。:2012/11/22(木) 09:18:15.26 ID:3oA0zPbz
なら、次の順番で試してみるといいかもしれない。
各オブジェクトを表示するときは、(マップ上の座標)-(カメラ座標)に表示すること。

 i.  カメラを固定してキャラを動かす。
 ii. プレイヤーの操作とは関係なく、カメラが自動的に右方向へスクロールするようにする。
 iii. プレイヤーキャラが常に画面の中央に表示されるようにカメラを動かす。
 iv. プレイヤーキャラがマップの端に居るときは、カメラが動かないようにする。

334 :名前は開発中のものです。:2012/11/22(木) 11:19:22.25 ID:RlzqnUp+
>>328
どんなのが作りたいのかそれだけじゃわからないけど
マリオっぽのならこれが参考になるじゃねーの?

ソースも入ってるよ?ライブラリはSDLだけど
http://www.vector.co.jp/soft/winnt/game/se347402.html

335 :名前は開発中のものです。:2012/11/22(木) 11:50:57.17 ID:eFQjOjmf
スクロールしたら敵ずれるって、スクロールした分敵の座標移動するの忘れてるだけじゃないのか
そんな単純な話ではないのか?

336 :名前は開発中のものです。:2012/11/22(木) 12:26:19.16 ID:3oA0zPbz
>>334
懐かしい! この板が発祥のゲームなんだよな。

337 :名前は開発中のものです。:2012/11/22(木) 13:14:20.80 ID:YppVmW6v
>>335
敵を移動するんじゃなくて、カメラを移動するのが王道。
ゲーム内のキャラクターはすべてワールド座標で処理すべし。

338 :名前は開発中のものです。:2012/11/22(木) 13:25:14.45 ID:eFQjOjmf
>>337
どっちにしろ描画するときに座標変換は必要だし
カメラ移動分の座標さっぴいてやらないとずれるし
パラメータをどう持つかはともかく、処理は必要だし

339 :名前は開発中のものです。:2012/11/22(木) 14:44:38.27 ID:XkqVanxt
>>338
カメラ座標変換マトリックスに任せておけ

340 :名前は開発中のものです。:2012/11/22(木) 15:46:56.07 ID:XgY5u7US
>>338
描画モジュールとそれ以外のモジュールがゴチャッてなければそこで不整合は起きないだろ

341 :名前は開発中のものです。:2012/11/22(木) 18:47:04.04 ID:BilY3FWQ
このスレってこういう初心者っぽい質問があるかと思えばたまに異次元みたいなワケわからない話が始まるし
距離感が掴みにくいな

342 :名前は開発中のものです。:2012/11/22(木) 19:35:19.32 ID:giYr9TgY
STLのアルゴリズムを使え使えって本に書いてあったから使って見てるけどコンパイルエラーを変なところに飛ばしやがってむかつく

343 :名前は開発中のものです。:2012/11/22(木) 20:31:45.22 ID:IVKuNp4c
STLのコンパイルエラーメッセージって分かり肉いよね

344 :名前は開発中のものです。:2012/11/22(木) 22:06:07.74 ID:44UwHnvI
>>342
中身完全把握しとけって事だよ
言わせんな恥ずかしい

まあ現実的に考えても最低限使い方だけでも完全把握してないとデバッグすら出来ない
なんとなくで使ってるといつか痛い目を見る…っていうか今見てるのか

345 :名前は開発中のものです。:2012/11/22(木) 22:28:38.51 ID:tBmxJtaY
初心者こそSTL使えという奴もいればこういう奴も居る
困ったもんだな

346 :名前は開発中のものです。:2012/11/22(木) 22:35:28.92 ID:44UwHnvI
配列の代わりに使うくらいなら問題ないんだろうけどな

347 :名前は開発中のものです。:2012/11/22(木) 22:36:52.36 ID:Gl1QEKN/
>>344
いや。
実際、STLの配列絡みのエラーの場合、エラーメッセージでなく、
むしろ自分の作業過程を思い出して、
配列やメモリを扱うロジックに思慮不足が無かったかを見直さないと、
訂正すべき個所をなかなか特定できない場合が多いぞ。

他人のコードをハックするには、当然センスが必要になってくるってことさ。
俺は、なるべく難しい問題を、なるべく自分でフルスクラッチすることが上達の早道だと思うね。
勿論、チーム制作で、未熟者にフルスクラッチされたら、たまったもんじゃないがな。

348 :名前は開発中のものです。:2012/11/22(木) 22:41:09.07 ID:F4NAJzUg
>>337
それは状況によるんじゃないの?
俺は固定マップの時はそうやったけど、
ループマップで、自機周辺でしか当たり判定等の処理をしない、という時は敵を移動させるようにしたぞ。

349 :名前は開発中のものです。:2012/11/22(木) 22:46:01.23 ID:Y6G4CBGg
>>333
今の処理の順序見直してみます。
今日とりあえずそこをなんとかして、形にしようと思ってます。

>>334
後でやってみます。ありがとうございます。

350 :名前は開発中のものです。:2012/11/22(木) 23:23:16.03 ID:uWBDaITV
音楽はRetro Music Editorでやってみる?

351 :名前は開発中のものです。:2012/11/22(木) 23:38:20.65 ID:Y6G4CBGg
>>350
インストールして適当に再生してみました。
ファミコンっぽい音が出るwww
ゲームの基本的な流れが出来たら、こっちも触ってみようかな。

352 :名前は開発中のものです。:2012/11/22(木) 23:50:53.87 ID:Y6G4CBGg
すみません。(マップ上の座標)-(カメラ座標)というのはどんなイメージになるんでしょうか。
今、
// マップを描く
for( int i = 0 ; i < MAP_DRAW_HEIGHT ; i ++ ) {
for( int j = 0 ; j < MAP_DRAW_WIDTH ; j ++ ) {
DrawGraph(j * MAP_SIZE + (mapMoveCnt) , i * MAP_SIZE , map[Map1_Data[i][j]] , true);
}
}
って感じでマップ描画してます(DXライブラリ使ってます)
mapMoveCntっていうのがマップの描画位置をずらす為に使ってて、
プレイヤーが画面中央に居る且つ、左右に移動した時にmapMoveCntを加減算してました。
これでスクロールをしてたんですけど、カメラを移動するってことはマップを描画する位置をずらすってことでしょうか??

353 :名前は開発中のものです。:2012/11/23(金) 00:13:57.43 ID:cFXLUjPO
うーんと
そもそも、それ2Dのマップ表示のコード(それもチップ?)だよね?

となるとカメラなんて使ってないでしょ。
>>331 で言うと(1)スクリーン座標

悪いこと言わないから
>>334 のソースDLして研究してみ

ライブラリはSDLだけどDXLIBを2Dで使うならやることは同じだから。

354 :名前は開発中のものです。:2012/11/23(金) 00:16:00.60 ID:GjI1Zcmz
>>352
だね。カメラが移動するってことは、見た目の位置がずれるってこと。


挙げられたソースだと、その mapMoveCnt がまさにカメラの座標に相当すると思う。
正確にいえば、そこに-1を掛けた値だけど。
まあ、単に減算するか、正負反転したものを加算するかだけの違いなので、やってることは同じ。

で、マップチップ以外のもの、「カメラ」が撮影する「舞台」上もの全てに、そのカメラ座標を減算する。
こうすれば、「カメラ」の位置に関わらず、各オブジェクトが画面上あるいは画面外を自由に動くことになる。


ここまで(>333の2番3番に相当)出来れば、あとはカメラをどう動かすかだけの話なので、
問題点をかなり絞り込めるはず。

355 :名前は開発中のものです。:2012/11/23(金) 00:16:21.06 ID:GZw5dyQ6
>>353
あ、カメラって3Dでのことなんですね。すみません。
>>334で書いてたのを今からDLしてソース見てみます。

356 :名前は開発中のものです。:2012/11/23(金) 00:17:01.41 ID:GjI1Zcmz
>>353
擬似的な「カメラ」と、3Dにおけるカメラをごっちゃにしてる

357 :356:2012/11/23(金) 00:18:57.78 ID:GjI1Zcmz
失敬、擬似的というよりは概念としてのカメラと言ったほうが正しいな

358 :名前は開発中のものです。:2012/11/23(金) 00:28:34.06 ID:cFXLUjPO
>>355
まあ、がんばって、昨日のお子さんに作ってる人かね。

>>356
どっちでもいいよ。
カメラ固定なんだからあまりカメラのことは考えなくていいと思う。
DirectXやOpenGL直に打つなら話は違うけど。
DXLIBを2Dで使うんだし。その辺はDXLIBがくるんでるっしょ。

359 :名前は開発中のものです。:2012/11/23(金) 00:42:30.97 ID:GjI1Zcmz
いやだから、何故3Dにおけるカメラの話を持ち出すのか

360 :名前は開発中のものです。:2012/11/23(金) 01:09:13.45 ID:yOOti4xC
>>359
普通は概念だろうがなんだろうが
それをカメラって呼ばないしどうでもいい

361 :名前は開発中のものです。:2012/11/23(金) 01:14:50.46 ID:Tfq3xGkn
いやカメラって呼ぶだろ

362 :名前は開発中のものです。:2012/11/23(金) 02:09:55.26 ID:GZw5dyQ6
>>358
そうです。今、モナーアクションゲームのソース見てます。
今日はこれ見て理解するだけで終わっちゃいそう、、、。
また明日の夜頑張ります。こうして質問に答えてくれる人がいるだけでも
モチベーションが違うきがします。>>354さんもありがとうございます。

363 :名前は開発中のものです。:2012/11/23(金) 05:17:34.40 ID:tAm612YR
ワールド座標からスクリーン座標に変換するロジック → カメラ

364 :名前は開発中のものです。:2012/11/23(金) 06:41:13.52 ID:hefSCrq5
キャラクターの位置を( X , Y )とする。(ワールド座標)
カメラの位置を( CX , CY )とする。
そうすると表示する位置は( X - CX , Y - CY )となる。(スクリーン座標)

カメラの位置が( 0 , 0 )の時はワールド座標どおりの位置に表示されるが、
カメラが右に1ずれる( 1 , 0 ) とキャラクターは1左にずれて表示される。

キャラもマップも同じようにしてあれば、カメラ次第でマップのどこでも自由に表示できるようになる。

って事だよね。

365 :名前は開発中のものです。:2012/11/23(金) 06:57:02.76 ID:74NPTa8/
平行移動だけじゃなくて回転やスケーリングやせん断やもうなんでもできるよ!

366 :名前は開発中のものです。:2012/11/23(金) 09:58:16.44 ID:mO6j71re
移動、回転、拡縮は行列で出きるとして、せん断ってどういうロジックになるんだ?

367 :名前は開発中のものです。:2012/11/23(金) 10:17:08.64 ID:74NPTa8/
普通に行列でできるよ!
基底ベクトルを直交させなければ良いだけだ!
1.0 0.1 0.0
0.0 1.0 0.0
0.0 0.0 1.0

368 :名前は開発中のものです。:2012/11/23(金) 10:25:37.76 ID:mO6j71re
>>367
なるほど

369 :名前は開発中のものです。:2012/11/23(金) 11:01:21.96 ID:/1tfeEwj
「せん断」って何?

370 :名前は開発中のものです。:2012/11/23(金) 11:05:08.54 ID:74NPTa8/
長方形が平行四辺形になるような変形のことだよ!

371 :名前は開発中のものです。:2012/11/23(金) 11:10:02.01 ID:6nCMYav3
底の無いダンボールってのはわかりやすい例だよな

372 :名前は開発中のものです。:2012/11/23(金) 11:57:56.24 ID:GjI1Zcmz
シアーの方が通じる気がする

373 :名前は開発中のものです。:2012/11/23(金) 13:59:35.40 ID:cFXLUjPO
カメラだの行列だの無かったころのゲームだから
その方が理解しやすいよって言ってるだけだよ。

まあ、最初からカメラありきで学んだ人はむしろ理解し辛いのか?

374 :名前は開発中のものです。:2012/11/23(金) 14:06:05.85 ID:cFXLUjPO
>>364

ていうかさぁ。

>>352 のソースみてあげなよDXLIBのDrawGraphってそんな概念関係ないよ。

ただのスクリーン座標に絵を置いてるだけ。

375 :名前は開発中のものです。:2012/11/23(金) 14:19:41.95 ID:cFXLUjPO
>>360
呼ぶんじゃないの、マの概念なんてみんなバラバラだからね。
そう呼んでる人にはそっちが常識なんだよ。

マ系やプログラム系の板で同じことを言ってるのに
使ってる言葉が違って議論がループなんてザラ

この場合も多分、みんな言いたいことは同じなんだよ。

言葉が違うだけだと思うよ。

376 :名前は開発中のものです。:2012/11/23(金) 14:53:44.50 ID:GjI1Zcmz
>>373
マリオみたいに広いマップを探索するようなゲームだと
スクリーン座標ベースの管理は面倒くさそうだけどなー。

実際、黎明期のPGがどういう考え方で組んでいたかどうかまでは知らないけど。

377 :名前は開発中のものです。:2012/11/23(金) 15:00:51.05 ID:GjI1Zcmz
あ、ちなみに自分は
http://www.tamaweb.or.jp/jinzai/071.html
この右側にあるレールカメラ(って言うらしい)のイメージで言ってた。

378 :名前は開発中のものです。:2012/11/23(金) 15:48:41.51 ID:cFXLUjPO
>>377
なるほど。理解したわ。ちょっと長文になるが。

俺のような古い頃を知ってるマに言わせると、昔のファミコンやスーパーファミコンの頃の
スーパーマリオのようなゲームの、ただのスクロールの実装にカメラとか言いだす方が違和感を感じるんだよ。
すまんな。

あえて、昔の言葉を使えばBG(バックグラウンド)とSpriteが分れば実装できるんだから。

↓DXLIBのこの例も同じようなもの
http://homepage2.nifty.com/natupaji/DxLib/dxprogram.html#N4

ファミコンなら
http://hp.vector.co.jp/authors/VA042397/nes/ppu.html
こんな感じか?ちょっと違うけど。流石にネットにもその辺のテクニックは載ってないわ古過ぎてw
(説明し辛いな。文章じゃ無理だわ)

勘違いしないでほしいのは
今のDirectXやOpenGLの世界ではカメラがないと話しにならないのは知ってるよ。
その辺の3D,2Dゲームも作ってるしな。

関係ないが。
VRAMの定義で、それぞれのマが別々のVRAMの概念を言いだして
話がなんだかわからない方向に行ったのを思い出した。

一人は上記のBGやSPRITEのVRAM
一人はPC98やX68Kの頃のパソコンのVRAM
一人はテクスチャやフレームバッファやZバッファ等の載る今のVRAM
そりゃ、話がかみ合うわけがないw

何にしても、>352さんのゲームが完成することを祈るよ。お子さんの為にもな。

379 :名前は開発中のものです。:2012/11/23(金) 16:22:34.51 ID:tVuXwvMy
スクリーン座標とビュー座標と呼べば良かったのかな?
と混ぜっかえしてみる

380 :名前は開発中のものです。:2012/11/23(金) 16:23:41.72 ID:GjI1Zcmz
>>378
なるほど、だから>353の時点でスクリーン座標と言ってたのか。

内部的にはワールド座標ベースで考えて、それを表示用に落とすって考え方自体は
3D以前からあるようには思うけれどね。

381 :名前は開発中のものです。:2012/11/23(金) 16:37:47.36 ID:hefSCrq5
スーパーマリオみたいな一方通行で逆進できないシステムならワールド座標はいらないかもね。

382 :名前は開発中のものです。:2012/11/23(金) 16:52:57.32 ID:X3Az5vp2
引き算するだけだからPCの性能とか関係ないよw

383 :名前は開発中のものです。:2012/11/23(金) 17:34:11.98 ID:tvkINjeP
N88BASICですらビューポートの概念あるよ
floatの場合無茶な拡大させると誤差の蓄積が問題になることがあるからその場合は原点近くで処理したいけど

384 :名前は開発中のものです。:2012/11/23(金) 18:17:22.09 ID:tVuXwvMy
>>382
ワールド座標はマッブが広大になるとメモリーを消費するから、昔のマシンだと厳しいだろ
メモリー1バイトは血の一滴に比例すると言われていた時代もあるし

385 :名前は開発中のものです。:2012/11/23(金) 18:37:49.31 ID:GjI1Zcmz
>>384
ああ。
画面に映ってるかどうか関係なく処理できるメリットを活かしにくいとか、
画面内だけなら符合なし1バイトで座標を保持できるけど、全体を考えると2バイトくらい必要になるとか?

386 :名前は開発中のものです。:2012/11/23(金) 18:57:47.92 ID:tVuXwvMy
>>385
ああなるほど。
マッブはタイル表示するものだとばっかり考えていたから、その発想は無かったわ。

387 :名前は開発中のものです。:2012/11/23(金) 19:54:39.19 ID:cFXLUjPO
>>383
そんなもんあったっけ?ってぐぐったらあったようだなw
30年近く前でまったく覚えてないわ。

あの頃、アクションゲームっていうと機械語オンリーだったのもあるけど。
BASICねー。なつかしいけど。インタープリタで8,16BITじゃ遅すぎるもんな。
シミュレーションや くそ遅っそいRPGとかかね。

コンパイラもあったみただけど。使ったこともないわ。
あの頃のコンパイラの吐くコードなんて使いものにならなかったしw

388 :名前は開発中のものです。:2012/11/23(金) 19:59:07.69 ID:MSqNZyrV
お前らいったいいくつなんだよ…

389 :名前は開発中のものです。:2012/11/23(金) 20:22:07.11 ID:GjI1Zcmz
0xを付けておきたいお年頃かな

390 :名前は開発中のものです。:2012/11/23(金) 20:29:01.83 ID:cFXLUjPO
>>389
そうそう、その辺はおさっし。

391 :名前は開発中のものです。:2012/11/23(金) 20:45:11.38 ID:6nCMYav3
現場とか経験したことないとビット積意識する列挙体くらいでしか0x表記したことないな

392 :名前は開発中のものです。:2012/11/23(金) 21:03:14.64 ID:tVuXwvMy
フラグ処理で0x表記しまくりですが?
#defineで隠れてはいるケド

393 :名前は開発中のものです。:2012/11/23(金) 21:26:47.76 ID:e2eqPIhq
ピチピチの0x20歳です!

394 :名前は開発中のものです。:2012/11/23(金) 21:27:22.68 ID:Tfq3xGkn
ゲーム作ってるなら色管理で0x表記はたまにやるはず

395 :名前は開発中のものです。:2012/11/23(金) 21:35:37.06 ID:cj0uR2IM
>>394
RGBマクロで0~255しか使わないって人も多いんじゃないかね

396 :名前は開発中のものです。:2012/11/23(金) 21:46:45.61 ID:926N4zcD
命令セットに乗算なんてありませんでしたが、何か?

397 :名前は開発中のものです。:2012/11/24(土) 00:05:24.65 ID:2OLw8PRK
>>396
呼んでないのに、何か?て

398 :名前は開発中のものです。:2012/11/24(土) 00:18:35.93 ID:o4KqUQfO
画面スクロール上手くいきました!
プレイヤーも敵キャラも不自然な動作をしなくなりました。
回答していただいたみなさんのおかげです。ありがとうございます。
とりあえずまとも(?)に動くようになったから次は敵の出現タイミングとかを考えます。
プレイヤーがある座標まで来て、対象の敵が表示されていなかったら表示させるみたいな条件で
やろうとしてます。うまいこといけばいいけどー。

399 :ジュナイ:2012/11/24(土) 06:54:32.86 ID:QqV0oVKy
機能の拡張を目的に継承したらダメみたいなの読んだ記憶があるけど、未だに意味がわからない

>>317
もう出てた

400 :名前は開発中のものです。:2012/11/24(土) 07:14:08.67 ID:E4ngvRbM
機能の拡張なら継承しないで委譲しろって話だろ
継承の設計上の意味が曖昧になるし、遅くなるし、ミスも多くなるから
class A : public Base{}; じゃなくて、class A{ Base base; };にしろっていう

401 :名前は開発中のものです。:2012/11/24(土) 07:28:17.27 ID:RKqrxKct
>>400
「遅くなる」をkwsk

402 :名前は開発中のものです。:2012/11/24(土) 07:32:37.95 ID:5F9z+6Hu
オーバヘッドじゃね

403 :ジュナイ:2012/11/24(土) 08:22:49.66 ID:W4j3QuI9
>>400
継承は完全にIs-aかHas-a関係の場合以外は使わない方がいいってことなのか?
継承の例とか見ると拡張してるようにしか見えないときがあるから疑問だったんだ
なんとなくだけど、わかった気がする
解説ありがとう

404 :名前は開発中のものです。:2012/11/24(土) 08:44:31.65 ID:RKqrxKct
ケースバイケースだからどっちが正解ってもんじゃないぞ。

ただ最近の流行はinterfaceをよく使う。
C++だと単なるクラスだけど、Java/
C#をやると
interfaceの概念が一番しっくりくる。

405 :名前は開発中のものです。:2012/11/24(土) 08:59:00.75 ID:nSnY0kez
C++の場合、virtual関数でもどの関数が呼び出されるのかコンパイル時に分かる場合は
virtualの性能ペナルティはないぞ

406 :名前は開発中のものです。:2012/11/24(土) 11:47:55.57 ID:o4KqUQfO
ソースがごちゃごちゃしてきた気がする、、、。

アイテム(武器とか回復)をマップの途中や、敵を倒した時にランダムで出す仕様にしようと
思っているけど、プレイヤーにも敵にもマップにも影響するからそれぞれにインスタンス生成
をしなければいけないのかなー。いい案がまだ思いつかない。

プレイヤーや敵キャラの移動処理は共通モジュールでやっているけど、それみたいに
共通化したい。

407 :ジュナイ:2012/11/24(土) 12:20:37.64 ID:fxHMnqZg
>>404
俺の場合、CStringを自作して
それを継承してCStringExを作った
CStringExはCStringの検索機能を追加したもの
>>399
これを読んで問題あるんだなって思ったんだ
ケースバイケースなんだな
あんまり深く考えないことにするよ、ありがとう

408 :名前は開発中のものです。:2012/11/25(日) 01:32:34.49 ID:vQ6ezv4p
>>407
安価の付け方が間違ってるのか何なのか、話の流れが読めない

409 :名前は開発中のものです。:2012/11/25(日) 01:54:12.65 ID:MAutdaKJ
>>406
それぞれにインスタント生成?なんで?
インスタントは一個でいいでしょ。
ItemManagerなクラス作ってそこで一括管理。
他のクラスはItemManagerへのポインタだけ持ってればいい。

410 :名前は開発中のものです。:2012/11/25(日) 02:14:05.00 ID:DhagDrvr
インスタント……?

411 :名前は開発中のものです。:2012/11/25(日) 02:37:36.83 ID:vQ6ezv4p
というか個々にインスタンス生成するのは、よくある手法だよな?

412 :名前は開発中のものです。:2012/11/25(日) 02:42:49.71 ID:YMRxlnml
**Managerって命名するのやめろ。マジで。
いやしてもいいけどすすめんな。

413 :ジュナイ:2012/11/25(日) 05:25:23.73 ID:hEk/IMrv
>>408

>>407
×399のアンカー
○機能の拡張を目的に継承したらダメ

ふむ、アンカーにしない方がよかったな

414 :名前は開発中のものです。:2012/11/25(日) 05:48:04.62 ID:vQ6ezv4p
ああ、そういうことか。
自分のレスを読んで問題に気づいた、と読めて何が何だか分からんかった

415 :名前は開発中のものです。:2012/11/25(日) 09:59:49.84 ID:koi9+vO4
>>412
なんで?

416 :名前は開発中のものです。:2012/11/25(日) 10:19:26.16 ID:EqulQ1PI
インスタンス作らなかったらどこにパラメータ置いとくんだ?

417 :名前は開発中のものです。:2012/11/25(日) 10:46:41.19 ID:YMRxlnml
>>415
機能を曖昧にするのでアンチパターンとされている

418 :名前は開発中のものです。:2012/11/25(日) 11:02:52.49 ID:CAdWkKcH
>>417
ちなみにそれって出典どこなの?
前に同じような話しあったときにネットで探したんだけど見つけられなかった

419 :名前は開発中のものです。:2012/11/25(日) 11:14:46.43 ID:TgZ39+Gc
個人で開発してるなら自分が分かる名前なら問題ないだろう

420 :名前は開発中のものです。:2012/11/25(日) 12:09:26.86 ID:YMRxlnml
>>418
somethingmanagerでググれ

>>419
何をするかわかるなら明確な名前付けが可能なはずで、
それができないなら設計ミスである可能性が高い。

421 :名前は開発中のものです。:2012/11/25(日) 12:17:34.50 ID:VGiaFwf4
オブジェクト指向は難しいよな
俺はステータスクラスを作る際に能力項目の入った構造体みたいな感じにしか考えてなかったんだが
能力項目はそれぞれクラスとしてインターフェイスから継承させておいて
それをmapに型識別子と一緒にプッシュしておけとかなんとか
極めだすとスタート地点がわからなくなるわ

422 :名前は開発中のものです。:2012/11/25(日) 13:42:36.14 ID:TgZ39+Gc
なんとかManageって名前は即ダメとかいう思考停止はどうかと思うがなあ
ていうかCharacterクラスとか完全にそのアンチパターンに適合してるわ

423 :名前は開発中のものです。:2012/11/25(日) 15:08:01.52 ID:pp6NGY3t
面倒くさいときに1,2,3とかExとか付けて終わりとか平気でやるよ?

424 :名前は開発中のものです。:2012/11/25(日) 15:30:35.40 ID:z3lM07q+
Win32APIじゃねぇんだから

425 :名前は開発中のものです。:2012/11/25(日) 17:12:31.80 ID:ViSjD+S+
英語できない人間がほとんどなんだから、明確な英語名がでてこないのが普通だろ。
難しい単語を使うと読めなくなるし。

426 :名前は開発中のものです。:2012/11/25(日) 17:13:51.16 ID:UP94DjU/
ぶっちゃけローマ字でやるのが一番効率イイと思うんだよね
外人が混じってるんじゃないなら

427 :名前は開発中のものです。:2012/11/25(日) 17:37:22.64 ID:wuDHigGI
ローマ字で名前付けると長くなりがち
そしてなによりカッコ悪いという欠点がある

428 :名前は開発中のものです。:2012/11/25(日) 17:56:18.70 ID:VGiaFwf4
Zittai *zittai = ZittaiKouzyou::Tukuridasu(ZittaiBanngou banngou);

429 :名前は開発中のものです。:2012/11/25(日) 18:59:33.14 ID:62UuJeRg
またそうやって極端な例を出す…

430 :名前は開発中のものです。:2012/11/25(日) 20:04:25.41 ID:GcdFOKW2
xxxManagerって命名はゲーム会社で普通に使うよ。

431 :名前は開発中のものです。:2012/11/25(日) 20:07:38.48 ID:z3lM07q+
xxxManagerて設計した時点で設計を疑えという人も居てだな

432 :名前は開発中のものです。:2012/11/25(日) 20:24:38.60 ID:GcdFOKW2
ただの名前じゃん。
中身は大抵リスト管理。

433 :名前は開発中のものです。:2012/11/25(日) 20:55:27.38 ID:mP9k6ovN
変なローマ字使うぐらいなら漢字やひらがな使えよ

434 :名前は開発中のものです。:2012/11/25(日) 20:59:12.19 ID:FijO3P5J
自作のクラスManagerだらけだわ

435 :名前は開発中のものです。:2012/11/25(日) 21:28:17.23 ID:q6C2eAfD
漢字やひらがな使えなかった頃をひきずってるんだよ

436 :名前は開発中のものです。:2012/11/25(日) 22:24:13.04 ID:R43oAPYu
漢字や平仮名なんて使えんし使わん

437 :名前は開発中のものです。:2012/11/25(日) 23:37:36.56 ID:DhagDrvr
defineでは日本語使えるから使う

438 :名前は開発中のものです。:2012/11/26(月) 10:15:31.37 ID:yusv7QzF
例えば、リソースをコンテナで管理するようなクラスで、ファイルパス渡すと
ポインタ返すようなメソッド持ったヤツはなんて名前つける?

439 :名前は開発中のものです。:2012/11/26(月) 10:21:15.41 ID:LyLQhMu0
リソースをそれだけで管理するなら、単純にリソースマネージャーあたりにする
メソッドの名前はget_ptr_from_pathとか

440 :名前は開発中のものです。:2012/11/26(月) 10:48:10.34 ID:zeeOA2Lm
メソッド名は頭文字大文字式で統一しましょう。

GetPtrFromPath

441 :名前は開発中のものです。:2012/11/26(月) 12:33:32.54 ID:LyLQhMu0
俺はライブラリ的に使いまわせる関数は頭大文字、
それ以外のローカルだったりクラスのメンバだったりする関数は小文字で統一してるわ

442 :名前は開発中のものです。:2012/11/26(月) 19:38:53.10 ID:KtYdm8fk
**Managerって設計ミスだったのか。
マップマネージャとユニットマネージャの2クラスをメインに進めていたがこれもダメなのか・・・。
画面操作もマップマネージャとユニットマネージャに振り分けてやらせてるし・・。

ただこれはユーザーインタフェースクラスを新しく作ってそっちに集約しようか考え中だが。

443 :名前は開発中のものです。:2012/11/26(月) 19:48:22.12 ID:5nHWy65V
あっちもManager、こっちもManager、だとちょっとマヌケっぽいというただの感想とか、
世の中のクラスの半分くらいは、何かをマネージしてるもんじゃね?っていうツッコミとか、
複数のインスタンスを集めたものなら、collectionって単語があるよっていう指摘とjか、
使う側から見た場合、中身なんてどうでもいいんだから、外側をシンプルな名前にしろよっていうクレームとか、

そのへん色々。
ぶっちゃけ本人が困ってないならどうでもいい。

444 :名前は開発中のものです。:2012/11/26(月) 20:18:36.19 ID:rMNobjpu
偉い人が言ってるからとかで真に受けてたらダメだよな
Linusとか超アホなこと言ってるし

445 :名前は開発中のものです。:2012/11/26(月) 20:28:48.98 ID:ABDeEVSH
鵜呑みは危険だが常に最新の情報や環境に気を使うのは大事だろうな
物事が時間の流れで最適化されていくってのは自然の摂理のはずだ

というか議論できるレベルの人達って情報どこで集めてる?
ネットで情報集めてるとハンガリアン記法は減ってきたけどクラス名の先頭に
C付けてるのが未だに散見してどうすりゃいいのかわからなくなってきた

446 :名前は開発中のものです。:2012/11/26(月) 20:35:17.10 ID:BD+Y7+n1
コンソールからviでコーディングしてる人たちにとってはハンガリアンも有用だし?
現存するかは知らんけど

447 :名前は開発中のものです。:2012/11/26(月) 21:06:16.36 ID:rMNobjpu
templateで型名とかワケワカメになるのにハンガリアンが使えるのか?

448 :名前は開発中のものです。:2012/11/26(月) 21:07:09.64 ID:M7DeNh3p
TwitterでC++erフォローするとか…

449 :名前は開発中のものです。:2012/11/26(月) 21:18:05.41 ID:BD+Y7+n1
>>447
Tのプレフィックスはtでいいんでない
使うときはVector<int>ならiVecとか?

450 :名前は開発中のものです。:2012/11/26(月) 21:32:54.44 ID:fBbbS4l8
どうせゼロから作り直すんだし、
一発目は思いつくままに継承多態、俺式命名でいいんじゃね
1日の時間が重要って場合ならともかく・・・

451 :名前は開発中のものです。:2012/11/26(月) 22:54:16.45 ID:vwxVmeIr
システムハンガリアンは誰もが否定するところだろうが、
アプリケーションハンガリアンは重要でしょ。

型で切り替えずに、意味レベルで同じ水準で扱う値に同じ接頭辞を付ける。
スクリーン座標にはs、ウィンドウ座標にはwをつける等、
同じ型でも混同しちゃいけないものを混同せずに済むよ。

452 :名前は開発中のものです。:2012/11/26(月) 23:01:58.09 ID:BD+Y7+n1
>>451
普通に名前つけてたら自然にそうなっちゃう気がするんだけどな
まあ、クラスやら構造体でラップしちゃうからプレフィックスって
いうより変数名そのもので区別できるんだけど

453 :名前は開発中のものです。:2012/11/27(火) 02:16:19.75 ID:JayK2jV6
>>445
最新の情報に敏感な人って周りの需要が見えてない人ばっかりな印象なんだが
俺の周りのプログラマはみんなそう

454 :名前は開発中のものです。:2012/11/27(火) 07:41:38.26 ID:PNGeWQU0
>>422
思考停止なんて言い訳するから糞設計になるんだよ

455 :名前は開発中のものです。:2012/11/27(火) 09:51:11.14 ID:RjAqjHvy
>>453
geekと職業プログラマの最大の違いはそこだろうな
geekは技術力はあるんだが、自分の知識が絶対正しいと思いがちでやたら新しいことやろうとする
職業プログラマは言われたことやるだけだが、その分要求はちゃんと満たす

456 :名前は開発中のものです。:2012/11/27(火) 09:52:31.07 ID:JayK2jV6
それは職業プログラマを持ち上げすぎ
出来る人と出来ない人の違いではあるけど

457 :名前は開発中のものです。:2012/11/27(火) 11:13:46.66 ID:RjAqjHvy
>>455は極論だけど、仕事に対するスタンスとしてはそんな感じでしょ
サーバ運用でもただのgeekはサーバモンキーとか言われるし
まあ積極的に情報仕入れてそれを活用できる人ってのはまれなんじゃないかな
仕入れた知識すぐ使いたがるモンキーか頭の中化石になってるおっさんのようなのが大半じゃないの

っていうかそれ以外はマなんてやってないで管理職なるでしょ

458 :名前は開発中のものです。:2012/11/27(火) 15:01:28.50 ID:vXBr16jt
>>443
> あっちもManager、こっちもManager、だとちょっとマヌケっぽいというただの感想とか、

> そのへん色々。
> ぶっちゃけ本人が困ってないならどうでもいい。

勝手に問題を矮小化してどうでもいいとか。頭が悪すぎる。
"本人が困ってなければどうでもいい"の本人のと、"本人を困らせるコードを推奨するな"の本人は違うだろ。
困ってない本人がこれから困るかもしれない他人に腐った手法を押し付けてる。

459 :名前は開発中のものです。:2012/11/27(火) 15:44:51.45 ID:p6PPkzD6
うぜぇw

460 :名前は開発中のものです。:2012/11/27(火) 16:19:24.47 ID:3CO8/3Q2
頭のいい人に聞きたいのだが
PS3とかWiiとか3DSのゲームソフトを
ゲーム会社で制作している人って
どうやって各ハードでのゲームプログラミング技術を習得したのだろう

ゲーム会社に入社してからソニーか任天堂と契約を結んでいるゲーム会社しか知らない
各ハードの秘密の開発技術などを習得させているのだろうか

C言語とかC++とかのプログラム言語でプログラムを組めば
ゲームを作るぐらいのことは僕でも知ってるが
各ハード別の開発技術って、それだけの知識だけでは足りないような気がする

461 :名前は開発中のものです。:2012/11/27(火) 16:22:44.22 ID:3CO8/3Q2
例えば3DS用ゲームソフトを3Dモードにすれば
飛び出したような映像表現が可能ですが
ああいう技術って単にC言語やC++を習得しただけでは開発出来ないような気がします

462 :デジタルハリウッド@偏差値45:2012/11/27(火) 16:36:02.37 ID:r/jyAiAv

質問なのか、独り言なの意味がわかりません


================
デジタルハリウッド@偏差値45
出席番号5

好きなゲーム東方、格ゲー、地球防衛軍

463 :名前は開発中のものです。:2012/11/27(火) 16:36:29.19 ID:LIfIJ6xQ
ハード毎にライブラリが提供されるから、それでゲームを作ることになる
ライブラリの仕様を迅速に勉強し身につけられるのもゲームプログラマに必須の条件

例えば、C++やろうと思い立った次の日には基本的なテストプログラムは組めるくらいの習得力がある人じゃないと無理

464 :デジタルハリウッド@偏差値45:2012/11/27(火) 16:57:48.30 ID:r/jyAiAv
Unity使えます
Javascript使えます

昔からUnityでゲームやってます
Unity勉強会にも参加しております
Unity関連の本全部持ってます

数学と関数型言語と論理力を磨いています

================
デジタルハリウッド@偏差値45
出席番号5

好きなゲーム東方、格ゲー、地球防衛軍
使える言語 Javascript,C++,PHP
使えるゲームエンジン Unity

465 :名前は開発中のものです。:2012/11/27(火) 17:08:33.05 ID:3CO8/3Q2
>>463
では、例えば任天堂からWii Uが発売されたら
ゲーム会社のプログラマーたちは新しいハードが出る度に
新しい技術を必死に勉強されて習得されてるわけですね

しかも、その技術用の解説本もない中・・・

ホントに頭が下がる思いです

466 :名前は開発中のものです。:2012/11/27(火) 17:17:55.77 ID:3CO8/3Q2
ところで一つ伺いたいのですが
WindowsパソコンでPS3並の高画質のHDゲームを開発して
それを同人ゲームとして遊んでもらえるようにすることは可能でしょうか?

昔のPCと違って今のPCは、64bit版OSも出てるし
グラフィックボードもいいのが出てるから
PS3並のゲームを制作してプレイしてもらうことも可能だと思いたい

467 :名前は開発中のものです。:2012/11/27(火) 17:18:41.56 ID:dvvZlrEZ
>>465
提供されたライブラリを理解するのは別に難しくないが、
たまにバグがあるんで、それを治すのに苦労する事はある。
次のアップデートまで待てないから、バグや不都合は
ガンガン治してくよ。

468 :名前は開発中のものです。:2012/11/27(火) 17:19:19.48 ID:EwaiNful
>>465
メーカー毎にapiの設計や命名に癖があるから
同一メーカーの一世代前のハードで経験のある人が中心になるかサポートに入るかする
サンプルも多少は提供される

だから本当に1からということはなかなか無いよ

469 :名前は開発中のものです。:2012/11/27(火) 18:05:49.78 ID:LIfIJ6xQ
>>466
PCでFF14とかラストレムナントとか出てるだろ
あとビット数は関係ない

だが、お前くらい無知だと人も付いてこないだろうし作るのは無理だ

470 :名前は開発中のものです。:2012/11/27(火) 18:20:39.67 ID:XJFpU/H+
発売から6年も経ったコンシューマー機のスペックに幻想を抱いている知能レベルだと、
はっきり言って無理だろうね。
公開されているデータシートすら確認する脳ミソすらないんだから。

471 :名前は開発中のものです。:2012/11/27(火) 19:02:36.58 ID:BJEbR/WY
インテリジェントシステムズが説明書付きのライブラリ送ってくるからそれみれば馬鹿でもゲーム作れるんだろ

472 :デジタルハリウッド@偏差値45:2012/11/27(火) 19:12:20.03 ID:wU6YR6iC
Unityが主流です

473 :名前は開発中のものです。:2012/11/27(火) 19:31:47.21 ID:vYFFYWd5
市販レベルのゲーム個人作成するとか、性能以前に素材作れなくて挫折するだろ

474 :名前は開発中のものです。:2012/11/27(火) 19:40:25.46 ID:8efcepbP
素材は買えばいい。

475 :名前は開発中のものです。:2012/11/27(火) 20:36:42.38 ID:3CO8/3Q2
>>469
> あとビット数は関係ない

え?そうなの?
昔、任天堂から64が出て話題になったから
bit数によって処理速度が速くなると思ってました

64bit版Windows8Proのパソコンなら4GB以上のメモリーが搭載できるから
10GBのメモリー搭載パソコン対応のWindowsゲームにすれば
処理能力が上がるものだとばかり

476 :名前は開発中のものです。:2012/11/27(火) 20:53:35.30 ID:vYFFYWd5
そんな大量のメモリなんに使うんだ
pS3のメモリってvram含めても512MBじゃなかったか

477 :デジタルハリウッド@偏差値45[:2012/11/27(火) 21:52:45.24 ID:wU6YR6iC
un

478 :名前は開発中のものです。:2012/11/27(火) 23:38:22.90 ID:udmUHhEh
今、2Dアクションゲームを作成していて、インスタンス生成をnewでしてますけど、
ゲームみたいに速度大事な場合はplacement newで生成した方がいいんでしょうか。
まだ短いステージしか作ってないから重くなったりしないけど
敵を増やしたらやっぱり重くなるのかなと思って。

479 :名前は開発中のものです。:2012/11/27(火) 23:40:01.56 ID:jNiNsKvP
偽装しているけどどう見てもスレ違いです

480 :名前は開発中のものです。:2012/11/27(火) 23:54:17.12 ID:7KjACd0W
2Dの時点で重くなりようがないと思った

481 :名前は開発中のものです。:2012/11/27(火) 23:56:01.15 ID:jNiNsKvP
479だけどすまん、ありゃID:3CO8/3Q2宛だ。リロードしてなかった。

>>478
使わないと思うよ。速度(とメモリ制限)が厳しい時は、最初に必要数確保して使いまわしたり。
メモリのフラグメント化も避けられるし。

もっとも今時のWindows環境なら、ゲームのインスタンスくらいじゃ心配はいらないと思います。

482 :名前は開発中のものです。:2012/11/27(火) 23:57:31.47 ID:udmUHhEh
>>480
2Dではよっぽど無茶したり、変な実装してなければ大丈夫なもんなんですか?
とりあえず修正せずに今のままでやってみます。ありがとうございます。

483 :名前は開発中のものです。:2012/11/27(火) 23:59:13.11 ID:udmUHhEh
>>481
>使わないと思うよ。速度(とメモリ制限)が厳しい時は、最初に必要数確保して使いまわしたり。
>メモリのフラグメント化も避けられるし。
了解しましたー。今のままの感じでやってみます。ありがとうございました。

484 :名前は開発中のものです。:2012/11/28(水) 00:01:24.36 ID:vYFFYWd5
初期化するときに必要なメモリ全部確保しとくのが一番楽だよな
趣味で作るゲームは何よりも完成させることが大切だと思う

485 :名前は開発中のものです。:2012/11/28(水) 04:30:44.98 ID:y8CZWJWg
>>484
ゲーム機ならそれがいいけど、PCのメモリはほぼ無限だから
気にしなくていい。

486 :デジタルハリウッド@偏差値45:2012/11/28(水) 10:18:17.59 ID:hP93q/7g
プログラミングをしないでゲームつくれたらな〜っておもいませんか?

487 :名前は開発中のものです。:2012/11/28(水) 10:34:30.99 ID:WwlhnVmH
>>486
つRPGツクール

488 :名前は開発中のものです。:2012/11/28(水) 10:56:01.19 ID:LA76+44o
金があれば誰かにプログラミングさせてゲーム作ることもできるんだろうね

489 :デジタルハリウッド@偏差値45:2012/11/28(水) 10:56:40.83 ID:hP93q/7g
格闘ゲームの60FPSの理由をこたえよ

490 :名前は開発中のものです。:2012/11/28(水) 14:26:43.54 ID:k1DqZtzr
NTSC方式の垂直同期が60Hzだから。

491 :名前は開発中のものです。:2012/11/28(水) 19:16:58.84 ID:c4ykrjdD
59.94fpsだが・・・

492 :デジタルハリウッド@偏差値45:2012/11/30(金) 13:28:44.39 ID:MDTtwB01
59.94fpsとはどういうことでしょうか?
わかりません
fpsとはなんですか?
よくわかりません

493 :名前は開発中のものです。:2012/11/30(金) 14:55:59.84 ID:3iutj+yg
そんな事も分からないから偏差値が45なんだよ

494 :名前は開発中のものです。:2012/11/30(金) 14:59:10.90 ID:dRasH0yT
最近は内部FPSが120の格ゲーも多いが

495 :デジタルハリウッド@偏差値45:2012/11/30(金) 15:05:20.68 ID:MDTtwB01
>>493

Unity使えますJavascript使えます
PHP使えます3Dsmaxつかえます
mayaつかえます

技術のない人に言われたくありません

496 :名前は開発中のものです。:2012/11/30(金) 15:06:10.81 ID:dRasH0yT
それだけかよw

497 :名前は開発中のものです。:2012/11/30(金) 15:37:22.19 ID:IaVAZenz
まあ、文章の書き方が変な時点で、頭が悪そうだというのは十二分に伝わってくる。

498 :名前は開発中のものです。:2012/11/30(金) 15:47:09.77 ID:DsYN0kOm
167 名前は開発中のものです。 [sage] 2012/11/30(金) 11:13:15.46 ID:MDTtwB01 [1/2]
>>162
デジタルハリウッドの低脳低学歴じゃ無理だ
消えろ

170 名前は開発中のものです。 [sage] 2012/11/30(金) 12:22:00.03 ID:MDTtwB01 [2/2]
>>169
デジタルハリウッドの低脳低学歴じゃ無理だ
消えろ


なにしたいんだこいつ

499 :デジタルハリウッド@偏差値45:2012/11/30(金) 15:58:47.81 ID:MDTtwB01
海外のゲームはマサエッチュー大学がつくるからすごいらしいんですが
日本のゲームがしょぼいのはなぜですか?
僕みたいなデジタルハリウッドしかいないからでしょうかおしえてください

500 :名前は開発中のものです。:2012/11/30(金) 16:15:58.87 ID:N03FEQNf
"マサエッチュー大学" に一致する結果は見つかりませんでした

501 :名前は開発中のものです。:2012/11/30(金) 16:16:02.98 ID:iTK2pPTw
そのキス相手の雅恵さんって誰だよ。

502 :名前は開発中のものです。:2012/11/30(金) 19:18:10.51 ID:y8iXHf54
マサエッチューとかww

503 :名前は開発中のものです。:2012/11/30(金) 19:21:32.01 ID:lijJunr0
越中ってすごいんやな

504 :名前は開発中のものです。:2012/11/30(金) 19:27:20.53 ID:e1dK1hp+
やってやるって

505 :名前は開発中のものです。:2012/11/30(金) 21:44:40.33 ID:RwH8/+au
2Dアクションゲームなら300万で作ってやるぞ

506 :名前は開発中のものです。:2012/12/01(土) 00:20:19.39 ID:4EemNxJB
結構アクションゲームっぽくなってきた気がするー。敵と当たったときのダメージ判定とか、
敵の出現条件がまだ考え中だけど。

ダメージ判定を共通関数でするかプレイヤークラスか敵クラスでさせるか悩む。

507 :名前は開発中のものです。:2012/12/01(土) 00:29:49.35 ID:f8uku+Sy
>>505
それグラフィックと音声の作成も含むの?

508 :名前は開発中のものです。:2012/12/01(土) 09:22:38.14 ID:IBe3OiN8
>>506
後者のどちらでやっても同じ結果になる、かつどちらか一方しか実行されないように
するのが基本なんじゃね?むしろどのポインタどういう風に共有させるか悩んでるわ

509 :デジタルハリウッド@偏差値45:2012/12/01(土) 10:38:36.27 ID:ILlUmx+J
>後半、イメージエポック御影社長(左から2番目)を交えトークに拍車がかかります。
>会場からの質問「海外のFPSに日本のFPSが勝つにはどうすればいいと思いますか?」
>御影社長「うーん、海外のFPSはマサチューセッツ大学を首席で卒業したプログラマーとかが作っているので、それを超えるには根本的に開発スタイルを変えないとダメで・・・」

海外のゲームはマサチューセッツ大学がつくるからすごいらしいんですが
日本のゲームがしょぼいのはなぜですか?
僕たちみたいなデジタルハリウッドの低学歴しかいないからでしょうかおしえてください

510 :名前は開発中のものです。:2012/12/01(土) 10:44:44.48 ID:dtZt5ne8
まぁ東大の主席はゲーム業界にはこないだろうな

511 :名前は開発中のものです。:2012/12/01(土) 11:23:52.21 ID:X91UfSRc
>>509
そういう、しょぼいしょぼくないと言う
偏差値相応の善悪二元論的発想はやめなされw
誰か釣りたいならゲハ板にでも行けば?
C++にも関係ないことだし。

512 :名前は開発中のものです。:2012/12/01(土) 12:37:54.74 ID:0XcK0KjW
海外のほうがゴミゲー率高いけどな
駄ゲーは日本で話題にすらならないから存在を知らないだけ
日本に居て洋ゲーのほうが良作多いなんていうのは、その程度のこともロジカルに考えられない馬鹿
印象に惑わされる奴は視点のぼやけたゲームしかつくれねーよ

513 :名前は開発中のものです。:2012/12/01(土) 13:12:14.38 ID:v5N1217G
映画の話だけど、邦画はなんで洋画に比べて面白くないかっつーと、つまらん映画はわざわざ海を渡ってこないからって話があったな
ゲームも同じだよね

514 :名前は開発中のものです。:2012/12/01(土) 13:15:57.24 ID:6XI39V9Z
だからなに?海外がーとか日本がーより自分がーでしょw

515 :名前は開発中のものです。:2012/12/01(土) 14:23:28.70 ID:ElCOhwfv
>>513
悪いが全然答えになってないよ
面白くない理由は、つまらんからとか‥‥

516 :名前は開発中のものです。:2012/12/01(土) 14:24:36.35 ID:0XcK0KjW
さすがに理解力がなさすぎる

517 :名前は開発中のものです。:2012/12/01(土) 14:31:23.51 ID:4uRg8fTG
デジタルハリウッドにも最低限のモノを作る人間と、
FPSという用語を検索をする程度の脳味噌が無い奴とか色々いるだろう。
日本とかアメリカとかデジハリとかいう区分以前に、人間個人が駄目なら駄目。
クズはどこに行こうがクズ。

518 :名前は開発中のものです。:2012/12/01(土) 14:50:59.72 ID:NTXF1xW1
デジタルハリウッドが何でどうなんかは知らんが、少なくともFPS作ってるマサチューセッツ云々の奴は、AIの経路探索や動作モーションの自動平滑化とかのアルゴリズムを理解・実装できるやつなんだろ、きっと。
プログラミングできるだけの奴なら高専にもいるが、論文読んで実装できる奴は限られるって話。

519 :名前は開発中のものです。:2012/12/01(土) 15:07:00.75 ID:+8DAgByD
>海外のFPSはマサチューセッツ大学を首席で卒業したプログラマーとかが作っている
これ工科大学の方か?

520 :名前は開発中のものです。:2012/12/01(土) 15:09:57.13 ID:6XI39V9Z
ほんといい釣り堀だな。
Unityスレと同じような反応ワロタ

521 :デジタルハリウッド@偏差値45:2012/12/01(土) 15:26:29.85 ID:XgIPgCus
ゲ製板には、デジタルハリウッドの卒業生だらけだから
僕をたたく人はいない!!

522 :デジタルハリウッド@偏差値45:2012/12/01(土) 15:28:16.21 ID:XgIPgCus
>映画の話だけど、邦画はなんで洋画に比べて面白くないかっつーと、つまらん映画はわざわざ海を渡ってこないから

海外は沢山海を渡ってる
日本は少しですね

日本=ゴミが多い、海外には全然渡ってない
海外=ゴミが多い、海外に面白いゲームが沢山わたってる

523 :名前は開発中のものです。:2012/12/01(土) 16:11:38.95 ID:X91UfSRc
Yahoo知恵袋を髣髴させる凄まじい天才が光臨してやがるなw
2chでこんな逸材を拝見する羽目になったのは何年ぶりかねぇ

524 :名前は開発中のものです。:2012/12/01(土) 16:20:14.60 ID:0XcK0KjW
ただの荒らしですがな

525 :名前は開発中のものです。:2012/12/01(土) 17:11:03.28 ID:24GByIke
>>518
論文読んで実装する程度じゃダメだ
論文書かないが書けるレベルの新しい手法を自分で編み出すレベルじゃないと

526 :名前は開発中のものです。:2012/12/01(土) 17:19:10.12 ID:NTXF1xW1
>>525
そりゃそうだが、就職考えたらそんな時間もないし、能力持った奴居ないだろ。居たらそれこそ米国行っちゃうし。あっちじゃ給料4倍とかだぞ?
ゲームアルゴリズム系で博士論文とかイケる文化が日本にない上に、大学で研究した成果をゲーム会社が使って云々っていう文化もないのがキツい。

527 :名前は開発中のものです。:2012/12/01(土) 17:32:19.49 ID:0XcK0KjW
時間がないない言い訳するのは無能だけってばっちゃが言ってた

528 :デジタルハリウッド@偏差値45:2012/12/01(土) 17:50:59.40 ID:8+h6A2zI
クサイスレですねほんと

529 :名前は開発中のものです。:2012/12/01(土) 18:02:33.76 ID:24GByIke
すごいアルゴリズムや手法を編み出すのは就職してからに決まってんだろ
仕事があるから論文書く時間はねーが書けるくらいのネタは自分たちで編み出せないとダメだ

他人の論文を参考にするって言うのはゲーム発売の周期でいうと下手したら1作品遅れになる
論文が形になって出てくるのに1年とかかかるわけだし
著者のチームは色々ノウハウ持ってるわけだから相当先行されてることになるぞ

まあでもゲームで重要なグラフィックス分野だと
だいたいNVIDIAかAMDから出るので直接競合する形じゃないのはまだ救われてるな

530 :名前は開発中のものです。:2012/12/01(土) 18:24:32.47 ID:ElCOhwfv
欧米のゲームってそんなにすごいタイトルあったかな?
海外のゲームショーでも話題になってるゲームって
ほとんど日本のタイトルなんじゃないかな?

スト4とかモンハンとかFFシリーズとか
海外では任天堂のマリオ系のタイトルも人気があるらしいね
ポケモンとかも人気あるか

なぜか海外ではドラクエシリーズは人気ないらしいが
俺、日本人だし日本だけで人気でも構わないよ

531 :名前は開発中のものです。:2012/12/01(土) 20:01:15.64 ID:xtv9SGIG
>>530
Call of Duty

532 :デジタルハリウッド@偏差値45:2012/12/01(土) 20:40:54.03 ID:8+h6A2zI
League of Legendsがここ最近で成功したゲームらしいですね
わたしはしりませんが

わたしは格ゲーの配信とかよくみてますが
なんかLoLが凄い人気らしいです

Unityで格ゲーとTPSつくりたいです
低脳なのでしょぼいゲームしか作れません

533 :デジタルハリウッド@偏差値45:2012/12/01(土) 20:41:50.67 ID:8+h6A2zI
>後半、イメージエポック御影社長(左から2番目)を交えトークに拍車がかかります。
>会場からの質問「海外のFPSに日本のFPSが勝つにはどうすればいいと思いますか?」
>御影社長「うーん、海外のFPSはマサチューセッツ大学を首席で卒業したプログラマーとかが作っているので、それを超えるには根本的に開発スタイルを変えないとダメで・・・」

結論はデジタルハリウッドみたいな低学歴じゃいいゲームはつくれないってことですね
ありがとうございました

534 :名前は開発中のものです。:2012/12/01(土) 21:34:12.28 ID:NTXF1xW1
結論はデジハリにしか入れない程度の努力しかできない奴がまともなゲーム作れないってことだよ
才能でも学歴でもなく、ヤル気の差

535 :名前は開発中のものです。:2012/12/01(土) 21:45:26.13 ID:+8DAgByD
>>529
Deferred Renderingは20年前の論文が元ネタだぞ。

536 :名前は開発中のものです。:2012/12/01(土) 22:17:33.59 ID:4uRg8fTG
http://www.4gamer.net/script/search/index.php?mode=article&W00176
ここで紹介されているゲームを見ると、すごいと思ったものは軒並み洋ゲーだが、
結局はおのおの個人の能力次第。

537 :名前は開発中のものです。:2012/12/01(土) 22:25:48.48 ID:T1i07g+C
業界や各国の情勢の話題は専用板で

ゲーム業界、ハードウェア@2ch掲示板
http://anago.2ch.net/ghard/

538 :名前は開発中のものです。:2012/12/01(土) 22:55:10.53 ID:amEVcZWj
お前らC/C++の話しろよ

539 :名前は開発中のものです。:2012/12/02(日) 11:25:23.74 ID:eFlYqC57
デジタルハリウッドって本当にクズしかいねーのな

540 :名前は開発中のものです。:2012/12/02(日) 19:06:37.84 ID:NaDkLQwc
R&D担当するような人は大学から採用するだろう
専門学校は兵隊さんを生産するところだしそんなもんだ

541 :名前は開発中のものです。:2012/12/02(日) 21:04:54.41 ID:npJ5erFs
デジハリは専門学校ですら無いんだが。

542 :名前は開発中のものです。:2012/12/02(日) 21:23:44.74 ID:QrQOyspf
嵐の活動で評価されるとか不当評価にも程があるだろw

543 :名前は開発中のものです。:2012/12/02(日) 22:31:26.76 ID:A1fKXAE3
3Dゲームは攻撃に当たり判定持たせるのが面倒だな
武器モデルに判定付けるか、適当に座標でやるか迷う

544 :名前は開発中のものです。:2012/12/03(月) 23:23:00.44 ID:oE5O/dbh
やたらESPを要求する難読な文章を書く人も面倒だよ

545 :名前は開発中のものです。:2012/12/03(月) 23:49:11.34 ID:fh2a9qcL
文盲の方ですか

546 :名前は開発中のものです。:2012/12/04(火) 07:26:02.88 ID:P3nilyRL
>>544
ノベルだとそんな奴ばっかしだよ

547 :デジタルハリウッド@偏差値45:2012/12/04(火) 20:03:12.43 ID:pyQ/lRzS
バカにするなぁ!!
夢をもってないやつは生きてる価値なし!!

548 :名前は開発中のものです。:2012/12/04(火) 20:39:42.20 ID:Sbe64al8
叶える努力すらまともに出来てないのに何を

549 :名前は開発中のものです。:2012/12/04(火) 22:23:01.34 ID:00oqnh2V
子供の頃から勉強でも何でもそつなくこなしてきた俺だが
そんな俺が唯一、ものにすることが出来ずに挫折してしまったのが
プログラミングだった

これまで幾度となくプログラミングには挑戦してきたよ
VBにC言語にC++等々・・・
だがいつも毎回、途中で飽きて投げ出してしまうんだよね

C言語の入門書を購入して丸々一冊勉強してみたが
出来たことはウィンドウを表示させて文字を表示させて
あと色々な計算をさせて・・・と

だが俺が求めてることは、そんなつまんないことじゃなくて
ゲーム制作なんだよね

550 :名前は開発中のものです。:2012/12/04(火) 22:24:44.91 ID:MagWrEa/
必要なのはプログラミング能力じゃない
絶対にゲームを作り上げたいという熱意だ
それさえあれば必要なことは調べていける

551 :名前は開発中のものです。:2012/12/04(火) 22:27:17.63 ID:Sbe64al8
こういうのを見るといつも思うんだが、
ゲーム制作がしたいなら最初からゲーム制作を学べよと

552 :名前は開発中のものです。:2012/12/04(火) 22:28:21.22 ID:MagWrEa/
根本的に、ゲームを作りたいという気持ち自体が貧弱だということが問題だということに気付くべき

553 :名前は開発中のものです。:2012/12/04(火) 22:35:37.97 ID:mehPo5fV
RPGツクールでいいじゃん
プログラミングなんて出来なくても面白いゲームは作れるっしょ

554 :名前は開発中のものです。:2012/12/04(火) 22:36:22.84 ID:P3nilyRL
>>549
とりあえず、ノベルツールかRPGツクールのスクリプトでもやってみ?

555 :名前は開発中のものです。:2012/12/04(火) 22:37:01.31 ID:EUvVwbkZ
ちやほやされながら1から10まで作りたいというのがヲタの理想
なお現実は

556 :名前は開発中のものです。:2012/12/04(火) 22:39:53.14 ID:Sbe64al8
自分の世界に篭って浸ろうと思えない時点でそれオタクじゃないな
近年増えたオタクもどきのただの中途半端なゲーム好き

557 :名前は開発中のものです。:2012/12/04(火) 22:46:57.67 ID:P3nilyRL
ちやほやされるに越した事は無いが、篭って浸るのって無茶苦茶楽しくね?

558 :名前は開発中のものです。:2012/12/05(水) 00:02:00.31 ID:Zsslocr+
仕事やめて部屋に籠りたいとは常々思ってる

559 :名前は開発中のものです。:2012/12/05(水) 00:10:26.63 ID:D7qPnhYa
学生 「うわヒッキーwww だっせぇえええwwww」
社会人 「ひきこもり…あれはいいものだ…(遠い目)」

560 :デジタルハリウッド@偏差値45:2012/12/05(水) 00:29:38.42 ID:jp+BD9PA
>後半、イメージエポック御影社長(左から2番目)を交えトークに拍車がかかります。
>会場からの質問「海外のFPSに日本のFPSが勝つにはどうすればいいと思いますか?」
>御影社長「うーん、海外のFPSはマサチューセッツ大学を首席で卒業したプログラマーとかが作っているので、それを超えるには根本的に開発スタイルを変えないとダメで・・・」

お前らUnityすら使えないクズには無理だろw
あきらめろw

561 :名前は開発中のものです。:2012/12/05(水) 00:57:17.05 ID:ZH9n4plT
マジレスすると実際にUnityにさわる機会あるのなんてプログラマですらないスクリプタだけだよね

562 :549:2012/12/05(水) 01:18:51.09 ID:W0pApem4
>>553
結局さ
プログラミングでのゲーム制作は断念したんだけど
それでもゲーム制作魂の熱が冷めきれなかったから
RPGツクールでゲーム制作をやってみたよ

DD0-プロローグ
(p)http://www.youtube.com/watch?v=Fnjpcx0QBYI
DD0-オープニング1
(p)http://www.youtube.com/watch?v=rOC_Qi8q-Og

で、こんな感じのRPGを作ってみたんだけど
やっぱダメだったね
多分、技術うんぬんよりも、もっと根本的なゲーム制作に対する情熱だったり
根気などが俺には欠けていたんだと反省したよ

563 :名前は開発中のものです。:2012/12/05(水) 01:52:32.94 ID:ZH9n4plT
>>562
頑張ってると思うよ
ただこれならツクールじゃなくて吉里吉里でも使ってノベルにしたほうがいいんじゃないかと思った

564 :名前は開発中のものです。:2012/12/05(水) 09:02:31.13 ID:rv6gql98
イメエポの社長の発言コピペされてるけど何が言いたかったんだろうなこれ
主席で卒業したプログラマー?FPSのプログラムなんぞ中卒ニートでも出来るだろう
演出や脚本って話ならハリウッド映画経験者とかいるので太刀打ち出来ないのは確かだろうけど


>>562
あんたゲ制で見た事あるなw
本気でプログラム勉強したいのなら人のコード読むのが一番早いと思う
id Softwareがゲームのソースいくつか公開してる
DOOM3 ソースとかで検索すれば出てくるよ

565 :名前は開発中のものです。:2012/12/05(水) 09:50:15.77 ID:5bbxrjLT
すぎなみたくやってどっかで聞いた名前だと思ったらkazukiやポナルポと呼ばれていた人じゃないか
こんなところで見かけるとは

566 :デジタルハリウッド@偏差値45:2012/12/05(水) 09:56:07.24 ID:jp+BD9PA
>後半、イメージエポック御影社長(左から2番目)を交えトークに拍車がかかります。
>会場からの質問「海外のFPSに日本のFPSが勝つにはどうすればいいと思いますか?」
>御影社長「うーん、海外のFPSはマサチューセッツ大学を首席で卒業したプログラマーとかが作っているので、それを超えるには根本的に開発スタイルを変えないとダメで・・・」


馬鹿には無理

567 :名前は開発中のものです。:2012/12/05(水) 10:02:50.86 ID:5bbxrjLT
プログラマーって仕様書通りに組むだけの単純作業だろ
誰が組んでも差はバグやロードが多いか少ないかだけでゲーム性には何も影響はない

568 :名前は開発中のものです。:2012/12/05(水) 10:18:25.27 ID:/Bq85UGR
>>567
その仕様書が「ここに来たら巨大ロボがガーッて現れて、
ドカンドカンって撃ってきて、ビューンってジャンプして
ガガガガって滑る感じにして」っていう
曖昧な口頭リクエストなのが現実。

569 :名前は開発中のものです。:2012/12/05(水) 10:19:55.74 ID:5bbxrjLT
>>568
そりゃ開発スタイル変えないとダメだなww
プログラマー関係ねぇ

570 :名前は開発中のものです。:2012/12/05(水) 10:44:55.97 ID:3SPXtkmk
一言にプログラマと言っても色々あるからな
社長が言ってるプログラマは作業者ってより
新しいアーキテクチャやアルゴリズム開発する
研究開発者の事だろうな
どっちかって言うとプログラミング以前に
数学の知識が求められる

571 :名前は開発中のものです。:2012/12/05(水) 10:46:28.86 ID:hS4Plf9e
世の中いくつのゲームがロードとバグでゲーム性を破壊したか・・・

572 :名前は開発中のものです。:2012/12/05(水) 10:50:13.36 ID:5bbxrjLT
それゲーム性じゃなくて快適性とゲームバランスじゃね

573 :名前は開発中のものです。:2012/12/05(水) 12:03:05.10 ID:VgNzdCdq
>>572
いづれにしろ損なえばクソゲーだけどな

574 :549:2012/12/05(水) 12:51:38.89 ID:W0pApem4
>>570
ゲーム会社でゲームを制作してるスタッフは
当然、全員がプログラマーではなくて
音楽だけを担当する人もいれば、鳥山明のようにキャラデザだけやる人もいる
そういう専門分野の人たちはいいとして

ストーリーとか企画とかアイディアだけを考えるスタッフは
プログラムは全く知らない素人だったりするのかな
それとも、そういうスタッフもある程度のプログラミングの知識は持っているものなのだろうか

575 :名前は開発中のものです。:2012/12/05(水) 13:00:20.41 ID:W0pApem4
>>568
ああ、何となく仕様書のイメージが浮かんできた

1枚の用紙に画面を見立てた箱枠が描かれていて
そこに大雑把なキャラや矢印とかが描かれていて、
「こっちにこう移動してきて、そのあと、こんな動きでこんな動作をさせたい」
みたいなことが描かれてるわけですねw

でも、そういう風に書かないと作りたいイメージって伝わらないような気がしますね

576 :名前は開発中のものです。:2012/12/05(水) 13:03:28.59 ID:5bbxrjLT
昔から良作を生み出してるプランナーはほぼ全員プログラム書ける
そういう人は、子供の頃からアイデアを形にする為に色んな創作をしてきたから何でも器用にこなす

今では、ゲーム開発スタッフのうち、優秀なプログラマーが企画に抜擢される場合が多いし

577 :デジタルハリウッド@偏差値45:2012/12/05(水) 13:11:16.68 ID:jp+BD9PA
>後半、イメージエポック御影社長(左から2番目)を交えトークに拍車がかかります。
>会場からの質問「海外のFPSに日本のFPSが勝つにはどうすればいいと思いますか?」
>御影社長「うーん、海外のFPSはマサチューセッツ大学を首席で卒業したプログラマーとかが作っているので、それを超えるには根本的に開発スタイルを変えないとダメで・・・」

マサチュッセーツ大学のがんばり>>>馬鹿のがんばり

578 :名前は開発中のものです。:2012/12/05(水) 13:11:55.27 ID:hS4Plf9e
そもそも開発スタイルでなんとかなるなら学歴とか誰も求めねーっていう

579 :デジタルハリウッド@偏差値45:2012/12/05(水) 13:12:52.03 ID:jp+BD9PA
低学歴の即レス(笑)

>後半、イメージエポック御影社長(左から2番目)を交えトークに拍車がかかります。
>会場からの質問「海外のFPSに日本のFPSが勝つにはどうすればいいと思いますか?」
>御影社長「うーん、海外のFPSはマサチューセッツ大学を首席で卒業したプログラマーとかが作っているので、それを超えるには根本的に開発スタイルを変えないとダメで・・・」

580 :名前は開発中のものです。:2012/12/05(水) 13:22:37.09 ID:5bbxrjLT
イメージエポックってどの程度の会社なんだよとググろうとしたらご丁寧にも関連検索ワードにクソゲーって出てきたよ

581 :名前は開発中のものです。:2012/12/05(水) 13:40:36.18 ID:FAmK5OKb
ところで日本のFPSってどんなんあるの?
TPS風のアクションゲームならいっぱいあるけど、FPSってあんまりないよね?
64の007位しか知らんわ

582 :名前は開発中のものです。:2012/12/05(水) 19:04:16.07 ID:mJU3rSwT
>>545
まぁ、例えば>>543が何を迷ってるのか理解できる?
行間を推測したり、表現力の無さを補間すると色々な
可能性が想起できるけど、会話にはならず脳トレで終わる
直接に対面してれば色々聞けるけど、こういうスレだと
それはできないし、結局どういう反応を期待してるのか
謎だよね。独り言なのかな、とは思うけど

583 :名前は開発中のものです。:2012/12/05(水) 19:05:50.71 ID:mJU3rSwT
>>581
http://en.m.wikipedia.org/wiki/GoldenEye_007_(1997_video_game)

洋ゲー

584 :名前は開発中のものです。:2012/12/05(水) 19:29:40.22 ID:j0lAd8+P
スレ違いだ馬鹿ども

585 :名前は開発中のものです。:2012/12/05(水) 19:29:48.54 ID:1ABhelRH
>>583
なんで日本語のwikiあるのにわざわざ海外のヤツはるの?

しかし、どんなのあるかもわからんようなもんを膨大な開発費で作られたゲームと比較して
「勝つにはどうしたらいいか」ってそもそも議論としてなりたたないんじゃね

586 :名前は開発中のものです。:2012/12/05(水) 19:39:59.70 ID:O5RwaKKN
>>584
どうもこの間から流れがおかしい
変なのが住み着いたか

587 :名前は開発中のものです。:2012/12/05(水) 19:44:32.68 ID:5bbxrjLT
デジタルハリウッドとポナルポという二大キチガイが居る時点で

588 :デジタルハリウッド@偏差値45:2012/12/05(水) 21:08:41.30 ID:mvjh2Sl9
低学歴へ

>後半、イメージエポック御影社長(左から2番目)を交えトークに拍車がかかります。
>会場からの質問「海外のFPSに日本のFPSが勝つにはどうすればいいと思いますか?」
>御影社長「うーん、海外のFPSはマサチューセッツ大学を首席で卒業したプログラマーとかが作っているので、それを超えるには根本的に開発スタイルを変えないとダメで・・・」

589 :名前は開発中のものです。:2012/12/06(木) 01:32:24.33 ID:/C9ywAz0
だから日本のFPSってなによ?
比較になってねーだろって

590 :名前は開発中のものです。:2012/12/06(木) 05:54:12.14 ID:OR1WKfSs
>>589
SeeNaに決まってるじゃん。

591 :名前は開発中のものです。:2012/12/06(木) 08:03:48.67 ID:/oF0dOum
落ち着いてスレタイと>>1を音読しろ馬鹿共

592 :名前は開発中のものです。:2012/12/06(木) 14:50:50.09 ID:secBQEQ4
ゲーム制作で関数ポインタ使ってます?
僕はあれのメリットが理解しきれずとりあえず使わなくて進めてます。
例えば複数の敵や弾があった場合、名前や引数が同じだけど内容が異なる処理をループで実装したい場合に使ってますか?
実際の使用例とか聞いてみたいです。

593 :名前は開発中のものです。:2012/12/06(木) 15:50:04.34 ID:wGXNDkNL
>>592
タスクシステム

c++なら関数ポインタ使うような所はポリモーフィズムで対応するんじゃない

594 :名前は開発中のものです。:2012/12/06(木) 17:52:50.38 ID:MOIAHQLk
>>592
ゲーム系ツールでは使ってるけど、ゲーム制作では使ってないなあ。

595 :名前は開発中のものです。:2012/12/06(木) 18:18:57.69 ID:fuWUXeVY
アドベンチャーゲームとかでイベントのスクリプトを実装しようとしているのだけど、
例えばmessage('hogehoge')でメッセージを表示するスクリプトだとすると実装は、

1 事前にmessage()関数を用意してスクリプトを直接評価してその関数を呼び出す

2 識別子(message)を取り出して文字列マッチングで処理する

どちらの方法が良いだろう

596 :名前は開発中のものです。:2012/12/06(木) 18:27:25.72 ID:/oF0dOum
>>592
マルチスレッドのために別スレッドで実行する関数のポインタを渡す

597 :名前は開発中のものです。:2012/12/06(木) 19:14:32.65 ID:k6F8L/e1
>>595
自作のスクリプト言語?
スクリプト内で色々定義出来るようにするなら後者の方が楽
しないなら前者の方が楽で高速

個人的な意見を言うなら組み込みスクリプト使った方が楽

598 :名前は開発中のものです。:2012/12/06(木) 19:17:59.37 ID:sPyX5poJ
luaを組み込んで思うように処理速度出なくて死ね

599 :名前は開発中のものです。:2012/12/06(木) 19:39:44.25 ID:IAqOXp0Z
>>592
個人的にはオブジェクト配列はポインタ使ったほうが管理しやすいな。
observerパターンなんかもポインタ使う。
蛇足ながら、無理に使えとは言わんけど、
デザインパターンは一通り目を通して損はしないと思う。

600 :名前は開発中のものです。:2012/12/06(木) 19:54:42.30 ID:ySGiyJS+
コールバックで関数ポインタ必要でしょ。
Windowsでプログラミングすれば嫌でも必要になるはずだが?

601 :名前は開発中のものです。:2012/12/06(木) 19:57:34.43 ID:+vhLc7nO
>>595
ごめん質問の意味を曲解してたかも
スクリプトの構文解析をどうするかって話?

602 :名前は開発中のものです。:2012/12/06(木) 22:26:25.89 ID:/oF0dOum
>>598
jit版使え
継承階層深くなければv8にも勝る速度を稼げる

603 :名前は開発中のものです。:2012/12/06(木) 23:13:35.68 ID:IAqOXp0Z
>>600
MFCならカプセル化されてるし、そうでなくとも、
関数ポインタなんか意識せずとも書けるでしょ。
VC++はご丁寧にテンプレート吐いてくれるし。

604 :名前は開発中のものです。:2012/12/06(木) 23:17:48.75 ID:G+8u4RQx
無用なスクリプト化を思い留まる冷静な判断力、って初心者には軽視されがちだよね
技巧に走るのが目的のお勉強趣味なら好きにすればいいけど

605 :名前は開発中のものです。:2012/12/06(木) 23:31:32.07 ID:+fSGl9c6
今はインターフェースっぽいの使って配列に子クラスのインスタンス詰めて処理してます。
これがポリモーフィズムになるのかな?
とりあえず関数ポインタは置いといてやってみます。
関係ないけど昨日循環参照になってしまったみたいでずっとコンパイルできなかった、、

606 :名前は開発中のものです。:2012/12/07(金) 06:21:28.35 ID:tL7IIDRf
>>603
MFCってw 今時w

607 :名前は開発中のものです。:2012/12/07(金) 06:23:32.54 ID:tL7IIDRf
StateMachineのデザパタで必要じゃない?>関数ポインタ
ゲームにStateMachineは必須でしょ。

608 :名前は開発中のものです。:2012/12/07(金) 07:29:40.83 ID:BoWzUI+p
>>598
>>602
アドベンチャーに速度が必要なの?

>>604
逆に有用なスクリプト化ってどんなだよ

609 :名前は開発中のものです。:2012/12/07(金) 07:39:51.21 ID:ynWkr9Hy
>>607
どの部分に状態遷移を使うか、あるいはどう実装するか次第じゃない?

例えば、タイトル画面 → プレイ画面 → エンディング画面 のような遷移なら、
それぞれの画面ごとにクラス化(共通の親を持つ)して、State/Strategyパターンでもいいかもしれない。

状態遷移表を用意して一括管理するなら、関数ポインタの方が楽かもしれない。

610 :名前は開発中のものです。:2012/12/07(金) 07:41:53.64 ID:ynWkr9Hy
>>608
>有用なスクリプト

横だが、やっぱ作業分担の時じゃね

611 :名前は開発中のものです。:2012/12/07(金) 09:16:12.26 ID:5eInNVDL
スクリプトの利点は
・コンパイル不要
・習得が容易

スクリプトの実装はプログラミングスキルそんなに要らないから分担しやすい
頻繁に調整のかかる部分の実装に使うと効率的に開発出来る

一人で作ってる小さなプログラムだとあんまり役に立たんかもな

612 :名前は開発中のものです。:2012/12/07(金) 12:58:07.00 ID:1uoHMWk+
StateMachineって初めて聞いた
Stateとは違うん?

613 :名前は開発中のものです。:2012/12/07(金) 13:39:24.50 ID:tW5aEqx6
デザインパターンはsingletonしか覚えてせんでした。
stateパターンも空いた時間に覚えようかな。
さっきちらっと解説ページみたけどじっくりみないと理解できそうになかった。

614 :名前は開発中のものです。:2012/12/07(金) 13:46:03.91 ID:xNVLTqCh
ステートパターンなんか使わなくてもこれで十分
シーン遷移如きで開発が頓挫するようなことあるかと

enum
{
  TITLE,
  PLAY,
  ENDING,
};

int main(void)
{
  int state = TITLE;

  switch(state)
  {
    case TITLE: title(); break;
    case PLAY: play(); break;
    case ENDING: ed(); break;
  }
}

615 :名前は開発中のものです。:2012/12/07(金) 13:50:16.31 ID:fSRHLTsP
>>614
それじゃステートが変わる瞬間のコーディングがやっかい。
やっぱりStateEnter, StateUpdate, StateExitが欲しくなる。

デザパタが何故存在するのかもう一度良く考えてみて。

616 :名前は開発中のものです。:2012/12/07(金) 14:09:10.06 ID:eXGoHhXk
趣味で作るコンパクトなゲームなら>>614で十分
それなりに大規模だとメンテナンス性を考えてデザインパターンを考慮したほうがいい
覚えたての知識をむやみやたらに使いたがるのはよくあることだが
パターンに限らずまず本当に必要かどうか見極める事が肝要だな

617 :名前は開発中のものです。:2012/12/07(金) 14:32:54.73 ID:KKye1TcY
>パターンに限らずまず本当に必要かどうか見極める事が肝要だな

たしかにそうですね。とりあえず今のところmainで遷移区分によってタイトル、ステージ1どっちを処理するか判断させてるのでそこの部分はそのままにしようかなとおもいます。
ステージ1作りおわったら↑の実装やデザインパターンをみたあとに必要かどうか考えようかな。

618 :名前は開発中のものです。:2012/12/07(金) 14:58:49.11 ID:D8hnsSVO
>趣味で作るコンパクトなゲームなら>>614で十分


そう思っていた時期が私にもありました・・・

619 :名前は開発中のものです。:2012/12/07(金) 15:10:23.01 ID:xNVLTqCh
シーン遷移にステートパターン適用しないと開発が行き詰るってどれだけ無能なの

620 :名前は開発中のものです。:2012/12/07(金) 15:20:35.36 ID:skNMHtby
最初の質問から見当違いの方向に話が進むのはこのスレの仕様

621 :名前は開発中のものです。:2012/12/07(金) 15:20:52.81 ID:eXGoHhXk
作るだけなら単純な実装の方が速い
メンテナンスや再利用を考えるならパターンは考慮したほうがいい
けど汎用的な設計は単純に作るより時間かかるしスキルもいるから
趣味で作るときに汎用性求めすぎると作ってるうちにしんどくなる
単純設計で作って再利用出来そうなものを自作ライブラリにするのが
現実的

622 :名前は開発中のものです。:2012/12/07(金) 15:39:20.30 ID:ynWkr9Hy
>>615
そのEnterとExitって、要はコンストラクタとデストラクタみたいなやつ?

623 :名前は開発中のものです。:2012/12/07(金) 15:40:46.94 ID:ynWkr9Hy
>>621
一度作ってしまうと、>614と大して変わらない労力でシーン遷移出来ちゃうのよねー

624 :名前は開発中のものです。:2012/12/07(金) 16:01:22.40 ID:D8hnsSVO
>>622
違うとおも。
一つのクラス内で起こるステート変更かと。
敵キャラが「待ち」から「攻撃」に移るみたいな。
各ステートのEnter関数でアニメーションのリセットしたりする。

625 :名前は開発中のものです。:2012/12/07(金) 17:19:52.00 ID:swkCGWsv
Stateは俺も悩むわ
ネットで調べると講座用の簡易なのしかないし
ガッツリ調べるとゲームから乖離してイメージが掴めん・・・

626 :名前は開発中のものです。:2012/12/07(金) 18:09:35.62 ID:uKacoqVx
SLGはstateパターン使わないと軽く詰む。
switch処理だとメンバ変数が大変な事になるしなぁ。

627 :名前は開発中のものです。:2012/12/07(金) 18:40:55.11 ID:ynWkr9Hy
シーン遷移はStateなのかStrategyなのか

628 :名前は開発中のものです。:2012/12/07(金) 19:38:29.66 ID:jju3TROv
シーン遷移なんてstackで十分だよ

629 :名前は開発中のものです。:2012/12/07(金) 19:47:04.17 ID:EGZVovBQ
>>627
全く別のふるまいになるからストラテジではないんでね
ゲームをプレイヤの操作をインプットとしたステートマシンと考えると
ステートの方がしっくりくる…のかな?

630 :デジタルハリウッド@偏差値45:2012/12/08(土) 00:15:26.47 ID:rCS98IFy
>>後半、イメージエポック御影社長(左から2番目)を交えトークに拍車がかかります。
>>会場からの質問「海外のFPSに日本のFPSが勝つにはどうすればいいと思いますか?」
>>御影社長「うーん、海外のFPSはマサチューセッツ大学を首席で卒業したプログラマーとかが作っているので、それを超えるには根本的に開発スタイルを変えないとダメで・・・」


低学歴へ

631 :名前は開発中のものです。:2012/12/08(土) 00:25:12.27 ID:xSL8vY1o
ちょっと疑問なんだが、デジハリ名乗りながら低学歴云々ってそれ完全にブーメランだろ
なんでわざわざコテつけんの?

632 :名前は開発中のものです。:2012/12/08(土) 00:31:18.65 ID:wLwkILiu
>>631
触っちゃダメ。

633 :名前は開発中のものです。:2012/12/08(土) 02:02:10.29 ID:I9wJ8evd
歩き動作や弾を撃つときの描画の実装がごちゃごちゃしてきたー。

634 :名前は開発中のものです。:2012/12/08(土) 08:56:56.31 ID:rjdgGOk6
State/Strategyって 壁.Draw() { 壁->図形.Draw() { /*四角形用の処理*/} } みたいに
アクセサが被るのがモヤっとしない?(ここではDraw)

もちろん、そこが被ってワンクッションあるからこそ単一継承では難しい複数の機能を
併せ持つということができて多態性の幅が広がるけど、それって継承を使った際における
保守・変更時に整合性が取りやすいって部分を犠牲にして得た対価なだけな気がする

635 :名前は開発中のものです。:2012/12/08(土) 13:50:45.55 ID:fq3ThR28
>>634
デザインパターンはあくまでベストプラクティスだから
それにあった処理に対して適用すると効果的ってだけで万能なわけじゃない
ちゃんと前提条件を踏まえて使わないとソース管理が煩雑になるだけ

636 :名前は開発中のものです。:2012/12/08(土) 14:16:38.28 ID:Bn+gP5Uf
>>614
仕様によるキリ)
しかし、その部分でこだわり発揮している作品って見たことがないな。
シーン遷移仕様がカオスとか、どんなゲームになるんだろうw

637 :名前は開発中のものです。:2012/12/08(土) 15:30:29.07 ID:7AwysAnX
結局C++使いは継承(デザインパターン)使って俺つえーしたいだけだし、
C使いは関数ポインタ使って俺つえーしたいだけだし、
C#,Java使いはジェネリックス使って俺つえーしたいだけだし、
perl使いは無駄にシンプルで解読不能なコード記述して俺つえーしたいだけだし、
要は俺つえーしたいという欲望を捨てない限り救われることはないし、
足るを知り、満足するということを覚えない限り苦悩から逃れることはできぬ

638 :名前は開発中のものです。:2012/12/08(土) 21:06:16.34 ID:7BkOFPw9
そして一周回って言語を作り始める

639 :名前は開発中のものです。:2012/12/08(土) 23:35:28.04 ID:jztRnxv9
>>637
C#の俺つえーはラムダだな。
無くても良くね?感アリアリ。

640 :名前は開発中のものです。:2012/12/08(土) 23:59:37.28 ID:pghPfEMz
C++にもlambdaあるし、
std::functionのおかげでdelegateっぽいこともできるし、
signal/slotライブラリを使えばeventのようなことも可能だ

641 :名前は開発中のものです。:2012/12/09(日) 00:19:33.51 ID:KzrZ3rOC
そういや std::mem_fun ってstd::shared_ptr には対応してないの?
Boostの方を使うしかないのかな

642 :名前は開発中のものです。:2012/12/09(日) 10:40:34.38 ID:g248FFXu
JoyToKeyについて質問です
JoyToKeyを使ったゲームを作ってるんだけど
キーの割り当てで汎用的、標準的なパターンてあるのだろうか?
(例えばPOVはテンキー、左スティックはマウス、右スティックはカーソルキー、〇ボタンはSキーとか)
どこかの有名ゲームサイトで記事等あったら教えて下さい

643 :名前は開発中のものです。:2012/12/09(日) 10:41:23.24 ID:g248FFXu
ちなみにPS3のコントローラーの話です

644 :名前は開発中のものです。:2012/12/09(日) 11:54:35.46 ID:zhyc/08Z
JoyToKeyってゲーム本体にキーコンフィグが無くても、
プレイヤー側で自由に設定できるようにするソフトだったよね?

単純に、一般的なキー・パッド入力配置を聞いてるわけじゃないの?
(もっといえば、C/C++に限った話しでもないし)

645 :名前は開発中のものです。:2012/12/09(日) 12:03:31.70 ID:g248FFXu
>一般的なキー・パッド入力配置を聞いてるわけじゃないの?
その通りなんですけど 作り手側でもデフォ設定するじゃないですか
んで あまりにもアフォ設定だとユーザーがプチ切れるんじゃないかと

たまたまこの画像(この人はPS3コントローラーでPC操作してるらしい)見ちゃって
不安になったもので…
ttp://stat.ameba.jp/user_images/20090729/11/sasakisannoblog/17/45/j/o0800059210222434784.jpg

646 :名前は開発中のものです。:2012/12/09(日) 18:18:43.74 ID:ETEjY4yj
水の表現ってどうやってる?
煙とか火はテクスチャはっつけていくつも放射状にするだけでいいのに

647 :名前は開発中のものです。:2012/12/10(月) 05:31:35.23 ID:glxZoaj4
>>646
どういう水の表現?
ケースバイケースで色々方法ある。
さざ波や反射はシェーダーで処理するのがベスト。

648 :名前は開発中のものです。:2012/12/10(月) 08:39:58.94 ID:KaDY5hdz
市販のゲーム見た感じでは単純なのだとテクスチャいくつか重ねたりuv値でアニメーションさせたり
複雑なのだと水面うねったり水底を歪ませたりしてるね
水しぶきはパーティクル、雨は線作って画面に重ねる感じかな?

ところで水平線ってどうやって表現すればいいの?
でっかいポリゴンにテクスチャ繰り返しで水面作ってるけど
もっといい方法ある?

649 :名前は開発中のものです。:2012/12/10(月) 12:36:19.95 ID:EaVtuODL
地形を球にすれば、何も考えなくても地平線も水平線も勝手にできる。

650 :名前は開発中のものです。:2012/12/10(月) 14:00:21.22 ID:s9PS7ew3
PS2のドラクエ5が、そのへん上手かった気がする

651 :名前は開発中のものです。:2012/12/10(月) 21:22:12.10 ID:rtIV+/pt
簡単な質問なんだけど、一回だけキーを判定する方法ってどうやってる?
前のキーAを取っておく方法だとキーBを押した時にキーAが発動しちゃう

652 :名前は開発中のものです。:2012/12/10(月) 21:29:03.43 ID:mPXWYpf6
AとBそれぞれ前に押しているかを判定すればいいんじゃないのか

653 :名前は開発中のものです。:2012/12/10(月) 21:33:59.05 ID:rtIV+/pt
ああ…やっぱりそれぞれ判定する用に配列作るのか
パッド使ってるからKey[16]にそれぞれのキー押した時間格納すればいけるかも、ありがとう

654 :名前は開発中のものです。:2012/12/10(月) 22:33:14.03 ID:Ci9afKAy
普通は1フレーム前の状態を取っておく
そうじゃないと
押してない→押した
押した→押してない
の判定ができない

655 :名前は開発中のものです。:2012/12/10(月) 22:36:04.62 ID:H439YNPF
654みたいなのが下の下で、1bitだけ確保するというアホすぎる戦術。
普通は押され続けた回数をカウントしておき、押されている限りインクリメントする。
1だったら押された直後と判定できるし、
キーリピートの実装も簡単だ。

656 :名前は開発中のものです。:2012/12/10(月) 22:42:01.64 ID:HAruj3/y
何でそんなに、こき下ろすのに気合入ってるんだよw
形になりゃええやん

657 :名前は開発中のものです。:2012/12/10(月) 22:48:12.00 ID:j+XLrcw7
もしかして時間ってフレーム数の事言ってんじゃね?

658 :名前は開発中のものです。:2012/12/11(火) 05:21:45.01 ID:Yt3B5aQe
>>655
今時フレームレート固定が前提?

659 :名前は開発中のものです。:2012/12/11(火) 07:19:45.97 ID:MblGPOXr
>>658
何でそんな面倒な事をせなあかん?

660 :名前は開発中のものです。:2012/12/11(火) 07:52:24.55 ID:AZewm+2Z
>>659
だから聞いてるんだけど?

661 :名前は開発中のものです。:2012/12/11(火) 08:12:46.85 ID:gdIUkimf
時間と前フレーム押したかどうか持っとけば可変でもいけるっつーことですよね
それに対して固定前提の処理をどや顔で提示したって突っ込んでるんですかね?

662 :名前は開発中のものです。:2012/12/11(火) 09:13:08.17 ID:k+/1zF7i
655では時間の保持について言及してないので
フレーム固定前提だと思われたってことですよね
それに対して時間も持っとけば可変でいけるとか
誰でも分かる当たり前の事をどや顔で提示してるんですかね?

663 :名前は開発中のものです。:2012/12/11(火) 09:32:55.95 ID:gdIUkimf
>>662
でも可変だったらインクリメントした値保持する意味なくね?

664 :名前は開発中のものです。:2012/12/11(火) 10:24:46.56 ID:iTUjo3NN
>>663
経過時間に掛けてインクリメントする値を変えれば良い。

665 :名前は開発中のものです。:2012/12/11(火) 13:03:20.48 ID:Q/n5yH4F
フレーム変化したらその分キー入力呼ばれなくなるんだから特別な処理する必要なくね

666 :名前は開発中のものです。:2012/12/11(火) 13:05:18.47 ID:8fksbtB7
「3秒ボタン押したらフォース発射」を考えてみよう。

667 :名前は開発中のものです。:2012/12/11(火) 14:38:59.44 ID:l8u6Xf/B
>>664
状態変化したときの時間保持して現在時間との差分見た方が誤差少ないと思ったけど
数百回程度の加算の誤差なら大したことない?

668 :名前は開発中のものです。:2012/12/11(火) 16:09:57.95 ID:F6mkJulj
ていうか加算するやり方は可変フレームレートには向かないよ。
時間と状態をヒストリーに保存するのが吉。

669 :名前は開発中のものです。:2012/12/11(火) 19:00:48.01 ID:vFlVKFlM
長押しを判断させるのはプロセス側で良いんじゃないか?

670 :名前は開発中のものです。:2012/12/11(火) 19:07:47.23 ID:zSHYCAjl
love me, I love you
http://www.youtube.com/watch?v=X4c-FpcWh0U

Easy Come Easy Go
http://www.youtube.com/watch?v=1jOnu8THvlg

MONSTER
http://www.youtube.com/watch?v=8xFPy93bM8g

671 :名前は開発中のものです。:2012/12/11(火) 19:30:46.96 ID:is07smQ+
>>669
でも入力の履歴は入力管理するインスタンスに持たせたくない?
例えば3秒以上押されてるか確認したい場合はプロセスは入力インスタンスにどのボタンを何秒ホールドしてるか
問い合わせてそれを3と比較する方が処理がスッキリすると思う

672 :名前は開発中のものです。:2012/12/11(火) 20:21:01.28 ID:vFlVKFlM
>>671
もちろん俺も色々悩んだけど、長押しかどうかの判断をしたいプロセスは
結局のところ「自分のコントロールのためにボタンが押され始めた時刻」を
保持しておかないと後々融通が効かないかなーと判断したのよね
だから押しっぱ時間は入力管理クラスで測るんじゃなくて
専用のカウンタークラスを必要とするプロセスに包含させることにしたよ

673 :名前は開発中のものです。:2012/12/11(火) 20:42:53.21 ID:QH4Jp+pF
こんな事をしてる人って、もしかして俺だけ?

BYTE GetKey()
{
return g_bGetKey;
}

BYTE GetKeyOn()
{
return ( g_bGetKey ^ g_bGetKeyBackup ) & g_bGetKey;
}

BYTE GetKeyOff()
{
return ( g_bGetKey ^ g_bGetKeyBackup ) & g_bGetKeyBackup;
}

キー入力の直後を取得する場合は、
if( GetKeyOn() & GET_KEY_BUTTON1 )
ってな感じ。

674 :名前は開発中のものです。:2012/12/11(火) 21:08:30.32 ID:SN3sP5DN
俺もPC向けだと時間でやらなきゃ駄目だというところに行き着いたよ。
もしかして安定が保証されてる(?)ような専用のゲーム機ではフレームでやっちゃっていいよってことになってるのだろうか?

675 :名前は開発中のものです。:2012/12/11(火) 21:11:47.98 ID:Hl/o+Fyi
フレームレートが安定しないような廃スペック要求するゲームを作ってるなんてすごいですね
で、画面の更新間隔と内部の処理を同期する必要あるの?

676 :名前は開発中のものです。:2012/12/11(火) 21:13:32.84 ID:X82lXxGK
>>673
ぶっちゃけよくわからん
GetKey()は押されているボタン
On()は押された直後のボタン
Off()は離した直後のボタン
がそれぞれビットに入って帰ってくんのかな?

677 :名前は開発中のものです。:2012/12/11(火) 21:44:39.23 ID:QH4Jp+pF
>>676
そゆ事

678 :名前は開発中のものです。:2012/12/11(火) 22:08:30.81 ID:7anuxOVx
>>675
安定していたとしても固定されてるわけじゃないし、その安定性も誰かが保証してくれるわけでなし

679 :名前は開発中のものです。:2012/12/11(火) 22:19:47.38 ID:qtWofOeR
>>677
いいんじゃないかな
でも
~a & b
a & ~b
の方がわかりやすいかな?

680 :名前は開発中のものです。:2012/12/12(水) 00:10:24.61 ID:fpIP8ZOc
stateとか他のデザインパターンについても空いた時間にちょこちょこ読んでるけど
まだ理解しきれてないから使わずにとりあえず実装進めている。

後から後からこのプロパティ要るな〜とか、ここの処理は親クラスで実装したほうがいいな
とか色々出てくるからやっぱ最初の時に設計固めるのって大事ですね。
こういうケースって結構あります?

681 :名前は開発中のものです。:2012/12/12(水) 02:08:00.48 ID:zIx3wKzo
>>680
趣味で経験があまりないならまずやってみ
迷走して完成しないのが一番もったいないし、失敗しないとノウハウは身につかない

仕事なら・・・がんがれ

682 :名前は開発中のものです。:2012/12/12(水) 05:36:12.32 ID:pejMdb7O
>>675
3Dゲームなら可変フレームレート前提で作るのは常識だろ。
ハードによってパフォーマンス全然違うし、ユーザー側で
イフェクトのオンオフを設定できるからそれでもスピード変わる。

16ビット機時代のゲームはテレビの垂直同期に
合わせてたから、ヨーロッパでPAL用に作られた
ゲームがNTSC機に移植されると微妙にスピードが
速くなったりしてたな。

683 :名前は開発中のものです。:2012/12/12(水) 08:42:23.07 ID:+6S9fL9F
イフェクトってかっこいいな
エフェクトの英語読みか?

684 :名前は開発中のものです。:2012/12/12(水) 11:05:54.53 ID:K+wZ6m/T
>>682
2Dなら固定、3Dなら可変ってイメージがあるな。
あくまでイメージなので根拠はない。

685 :名前は開発中のものです。:2012/12/12(水) 19:37:51.95 ID:DFbI9bul
>>682
描画だけ可変にすれば良いんじゃないの?
どうして内部の処理と描画を同期する必要がある?

686 :名前は開発中のものです。:2012/12/12(水) 19:52:52.42 ID:x9Xv2qgt
>>685
ゲーム機でゲーム作った事ある?

687 :名前は開発中のものです。:2012/12/12(水) 19:57:16.04 ID:w/T4PT+a
このスレにゲーム機でゲーム作るような奴がいるとは思えないが

688 :名前は開発中のものです。:2012/12/12(水) 20:07:28.49 ID:A6Otrip/
せんせい!かへんふれーむれーとにするとどんないいことがあるんですか?

689 :名前は開発中のものです。:2012/12/12(水) 20:08:20.10 ID:YtwJxZGO
>>687
そうか、ゲーム会社に勤めるプログラマーは
2chは誰一人やらないのかw

690 :名前は開発中のものです。:2012/12/12(水) 20:32:57.91 ID:K+wZ6m/T
>>688
17msec以上かかる処理や、実際の時間を計測するような処理が使いやすいとか?

691 :名前は開発中のものです。:2012/12/12(水) 20:55:46.43 ID:VZy9fiRn
>>689
居てもほとんど守秘義務の範囲内でしか書けないから居ないのと同じ。

692 :名前は開発中のものです。:2012/12/13(木) 00:25:18.52 ID:hxBRbA/2
http://www.mascotcapsule.com/img/faq/ja/e010_01.jpg
これ見て思ったんですけど
ゲームとかの3Dの描画ってどうやって順序決めてるんですか?
Zソートでも(透明化バンバン使ってますし)Zバッファでもないですよね?

693 :名前は開発中のものです。:2012/12/13(木) 08:36:35.52 ID:e3HLIbX2
それ見たら、Zバッファだけで何の問題も無いようにしか思えないが、
頭は大丈夫か?

694 :名前は開発中のものです。:2012/12/13(木) 09:08:55.57 ID:LIfzj1KL
参考
http://marupeke296.com/cgi-bin/cbbs/cbbs.cgi?mode=al2&namber=334&rev=&no=0&P=R&KLOG=1

まあzバッファ切れば解決するよ(無責任)

695 :名前は開発中のものです。:2012/12/13(木) 09:15:31.44 ID:LIfzj1KL
zバッファ解除で解決すんのは交差してない時の透明色描画順序だけだわ(訂正)

696 :名前は開発中のものです。:2012/12/13(木) 18:02:31.52 ID:jjgR95jk
交差しているテクスチャは分断してあるんだよ

697 :名前は開発中のものです。:2012/12/15(土) 12:27:38.78 ID:aCUGFQ4c
>>696
想像で質問してますけど、パフォーマンス大丈夫なんでしょうか?

698 :名前は開発中のものです。:2012/12/15(土) 12:29:29.52 ID:aCUGFQ4c
基本的にZソートで、
交差したら交差した部分を
ナイフツール使ったみたいに分断・?

699 :名前は開発中のものです。:2012/12/15(土) 13:40:29.24 ID:43eYd58k
>>698
動かない所なら最初から分断しとけばおk
動くところは交差させないければおk

700 :名前は開発中のものです。:2012/12/15(土) 14:25:26.18 ID:yoqgcH9B
捻くれたレスのように見えるけど
>>699を基本にして間違いはない。

701 :名前は開発中のものです。:2012/12/15(土) 17:22:49.86 ID:aCUGFQ4c
>>699
よく理解できてないんだけど、
例えば長方体の長い棒で人を刺した表現をしたかった場合、
本来面が8個で表現できるのに刺されてるところを予め予想して面を分割して増やすの?

702 :名前は開発中のものです。:2012/12/16(日) 02:10:20.17 ID:idl/7miE
クラス内の関数が多いから名前空間つけようと思ったらできないんだな。使えん

703 :名前は開発中のものです。:2012/12/16(日) 14:10:24.25 ID:A1nLQKz2
>>702
まず設計見直せ

704 :名前は開発中のものです。:2012/12/16(日) 18:28:47.05 ID:7/rHuq0U
よくわからんが、たぶん設計が誤っている

705 :名前は開発中のものです。:2012/12/17(月) 07:15:12.99 ID:2O7YEFYB
リファクタリングすれば良いんじゃね?

706 :名前は開発中のものです。:2012/12/17(月) 11:45:57.73 ID:rWWESSHt
ぐおおおおおおお!!
バグがとれねええええええ!!
どこでメモリ破壊してるのかわからねええええ!

707 :名前は開発中のものです。:2012/12/17(月) 13:25:20.17 ID:v7z71YLo
落ち着け!動くバグは仕様だ!

708 :名前は開発中のものです。:2012/12/17(月) 13:36:29.18 ID:dNwaeNFI
悪い悪夢はバクだ!

709 :名前は開発中のものです。:2012/12/17(月) 17:52:30.91 ID:2H2hs6CN
そういう時はメシ食って寝ろ。

710 :名前は開発中のものです。:2012/12/17(月) 23:45:30.95 ID:EVVlRtni
可変フレームレートを固定フレームレートより良いとする場合って多いけど
実際そんなに見た目は良くならなくね?

固定60fps>可変60fps=固定30fpsくらいのイメージ

可変fpsでゲーム作ると手間かかるから
結局固定fpsで落ち着いちゃった

711 :名前は開発中のものです。:2012/12/18(火) 01:12:23.92 ID:EXioU2qv
まあ固定60fpsでいいよ

712 :名前は開発中のものです。:2012/12/18(火) 04:37:15.25 ID:Twqvzk1H
>>710
スタートはそれでもいいと思う。
初心者がいきなり可変を扱うのは敷居高い。

713 :名前は開発中のものです。:2012/12/18(火) 13:26:18.34 ID:DsQCakRX
可変はゲームスピードが一定になるのがメリットだから
見た目なら固定の方がコマ落ちおきないからキレイでしょ

714 :名前は開発中のものです。:2012/12/18(火) 14:19:41.11 ID:TuCkfkjU
>>713
可変だって重い処理が起きない限り一定だけどw

715 :名前は開発中のものです。:2012/12/18(火) 14:36:10.28 ID:zQVs6mwL
重い処理が起きたら一定じゃないじゃん

716 :名前は開発中のものです。:2012/12/18(火) 16:58:30.22 ID:GS9Q5oMn
重い処理が起きたらコマを飛ばすから一定、ってのが可変の売りじゃないの?

717 :名前は開発中のものです。:2012/12/18(火) 17:06:10.56 ID:Qd/614xG
描画が間に合わなくて適度の位置にスキップは良いけど
演算処理が重い場合は結局コマ送りにしてやらないと入力が飛んでしまいそう

718 :名前は開発中のものです。:2012/12/18(火) 18:20:27.85 ID:TuCkfkjU
現実的には60fpsが30fpsに落ちる程度でしょ。
プレイヤーは気付かないよ。

固定フレームだとスピードガタ落ちで丸わかりだけど。

719 :名前は開発中のものです。:2012/12/18(火) 19:23:35.02 ID:TPvAJFrN
>>718
コマ落ちだと見た目で処理落ちとわかるけど
スローなら演出と思ってくれるかもよ?

720 :名前は開発中のものです。:2012/12/18(火) 20:14:05.23 ID:EyYp+y92
なるほど!
つまり処理落ちしたら「スロー再生中」と出せばいいのか!

721 :名前は開発中のものです。:2012/12/18(火) 23:27:56.24 ID:5CUeaKQC
スレ流し読みしたけど
「フレームレートの可変/固定」と「時間刻みの大きさの可変/固定」を
ゴッチャにしてる奴がチラホラ混ざってるよね。そこんとこどうなの?

722 :名前は開発中のものです。:2012/12/18(火) 23:33:01.96 ID:wIDglDST
どうでもいい。
さらっと上辺の話ししてるだけだし。

723 :名前は開発中のものです。:2012/12/19(水) 02:14:25.56 ID:e/92mlvQ
フレームレート=時間刻みの大きさな訳だが
変動量が連続的か離散的かってなら、離散的な可変は固定の延長みたいなもんだと思ってる

724 :名前は開発中のものです。:2012/12/19(水) 12:43:55.98 ID:yNt05L24
3次元のオブジェクトの動きの計算の仕方で悩んでるんですが
たとえばガンダムのファンネルの動きでMSの周りを等速円運動させる場合などの
具体的なプログラミング方法を紹介しているようなサイトってありますか?
よろしくお願いします

725 :名前は開発中のものです。:2012/12/19(水) 16:23:09.86 ID:vO3Q/z+H
>>724
2次元なら
ファンネルの座標x = ガンダムの座標x+cos(a);
ファンネルの座標y = ガンダムの座標y+sin(a);
としてaを少しずつ増やせばできるともうよ

726 :名前は開発中のものです。:2012/12/19(水) 19:03:51.36 ID:9MAw/FSP
>>725
忘れ物ですが
つr

二次元の説明してるサイトは結構あるけど三次元で具体的なプログラム書いてあるサイトは見つからんかったな
まあ二次元のが理解できれば応用で三次元もいけるとは思うけど、複雑さが違うから数学苦手だときついかもな

727 :名前は開発中のものです。:2012/12/19(水) 20:24:52.47 ID:YtPtOMuR
Matrix使わないなら面倒そうだな

728 :名前は開発中のものです。:2012/12/19(水) 20:58:21.97 ID:GXyJ4BhN
後ろに仰け反った方が弾を避けやすいからな。

729 :名前は開発中のものです。:2012/12/19(水) 21:54:35.71 ID:9ePxZHgD
どうみてもクォータニオンだろ

730 :名前は開発中のものです。:2012/12/19(水) 22:30:33.88 ID:YtPtOMuR
どちらでもできる

731 :名前は開発中のものです。:2012/12/19(水) 22:58:53.25 ID:0Y7GxCa1
速度と加速度で円運動させるという方法もある

732 :名前は開発中のものです。:2012/12/19(水) 23:23:17.67 ID:jmWoQdeL
   
 Q、 なぜ彼はそのような遅そうな方法を提案するのか

 A、 頭の回転が遅いから

733 :名前は開発中のものです。:2012/12/19(水) 23:59:25.82 ID:zhjvwsUv
ディスり芸は身を滅ぼすぞ

734 :名前は開発中のものです。:2012/12/20(木) 09:23:39.22 ID:Kn6tQgpM
遅そうな方法ってどれの事言ってんの?
どれも普通に使われる演算に見えるんだが

735 :名前は開発中のものです。:2012/12/23(日) 05:27:30.36 ID:zmfuZP77
>>730
悪いとは言ってないよ
俺はそういう奴は下に見る
個人の感想

736 :名前は開発中のものです。:2012/12/23(日) 09:02:45.28 ID:1m6DrkYc
個人意見だと断りを入れれば
何を言っても良いと思っていそうだな

737 :名前は開発中のものです。:2012/12/23(日) 12:10:37.97 ID:m2QJWO9N
下層にいる人間ほど上下関係を気にするものだから仕方ないだろ

738 :名前は開発中のものです。:2012/12/23(日) 18:47:58.31 ID:Q1zB2M99
昔のゲームでよくみるアニメ動画ってどうやって作ってるの?
スクリプト組んでその通りに動かすか、After Effect辺りを買ってきて、
動画ファイルを組み込むかで迷ってるんだが。
それとも、他に何か良い方法とかある?

739 :名前は開発中のものです。:2012/12/23(日) 19:08:21.34 ID:lqCRwHHc
座標算出するのにクォータニオン使うメリットって何かあるの?
ジンバルロックは起きないし、座標変換するときに結局行列使うことになる気がするけど

740 :名前は開発中のものです。:2012/12/23(日) 19:32:35.94 ID:nJIhnzv9
>>738
昔のゲームっていつぐらいの?
具体的にタイトル挙げてくれないと、作り方はいくらでもあるから答えにくいよ。

741 :名前は開発中のものです。:2012/12/23(日) 19:33:07.65 ID:m2QJWO9N
>>738
ベトナムのアニメ会社に外注するとか?

742 :名前は開発中のものです。:2012/12/23(日) 19:39:45.60 ID:Q1zB2M99
>>740
今は無きグローディアとか、パチ屋に吸収されたマイクロキャビンとか

743 :名前は開発中のものです。:2012/12/23(日) 19:54:41.80 ID:Q1zB2M99
個人的には、PC版のエメラルドドラゴンとか、アルシャークとか、
ヴェインドリームUとか、エルムナイトの動画がよく出来てたと
思うんですよね。

744 :名前は開発中のものです。:2012/12/23(日) 19:56:56.67 ID:fCnMZAgY
まず、アニメーションがどうやって動いて見えるのかそこからみたいだなw

745 :名前は開発中のものです。:2012/12/23(日) 19:58:40.29 ID:xcYIS0uF
絵を複数描いて切り替えろよ。
何が疑問なのかがさっぱり分からない。

746 :名前は開発中のものです。:2012/12/23(日) 20:07:43.36 ID:Q1zB2M99
どんな方法が効率良いのかが分からないので、質問しました。
時系列で絵を切り替えるのか、スクリプトで画像を条件分岐して貼り付けるのか、
文字入力との同期はどうするのか、そんな所です。

747 :名前は開発中のものです。:2012/12/23(日) 20:13:51.96 ID:fCnMZAgY
二十年も前のゲームのアニメーションなんてほとんどが画像切り替えか
小さな画像をそれっぽく動かす(移動)させてるんじぇねーの?

つーか、そんな昔のアニメ効果の話をスクリプトだのとか言われてもね。
二十年前にはスクリプトだのそんなもの無かっただろうし。

今のやり方で好きにやればいいよ。

748 :名前は開発中のものです。:2012/12/23(日) 20:16:32.25 ID:DyE9bJRU
俺はわからないからアドバイスしてあげられないけど
何事も、効率の良い方法が分からないときは効率が悪かろうが自分の考えた方法で
とにかく実現させてみないとどのみち理解も成長もできないもんだと思ってシコシコやってるよ

749 :名前は開発中のものです。:2012/12/23(日) 20:22:40.07 ID:m2QJWO9N
今のアニメはむしろ昔に比べると退化してるものが少なくないからでね?
まあ、アグネスとかのエログロ規制のせいもあるんだろうけど。

750 :名前は開発中のものです。:2012/12/23(日) 20:39:54.81 ID:9hkjddBB
>>747
スクリプトの歴史の長さを舐めちゃいかんよ。

751 :名前は開発中のものです。:2012/12/23(日) 20:47:06.32 ID:fCnMZAgY
>>747
は?
そこに上がってるゲームって機械語だぞ。

スクリプトなんて使うかよ。
中間コードってんならまだわかる。

752 :名前は開発中のものです。:2012/12/23(日) 20:47:36.98 ID:fCnMZAgY
まちがったw
>>750


753 :名前は開発中のものです。:2012/12/23(日) 21:03:10.03 ID:fCnMZAgY
ああそうか。天下無敵のインタプリタ BASIC様を忘れてたわ。
BASICでアニメとか正気の沙汰とは思えないけど。

まったくなかったわけではないわ。
BASICから機械語の描画ルーチン呼び出してるアドベンチャとかあったなそういえばw

754 :名前は開発中のものです。:2012/12/23(日) 21:14:01.03 ID:+EEOGq8d
AE使えばアニメが作れると思ってるのがなんとも。
こんな初歩的なこともわからないにAE使ったところで同じだろうな。

>>744 ここに書かれてるとおりアニメの初歩から勉強すれば?

755 :名前は開発中のものです。:2012/12/23(日) 21:27:55.59 ID:fCnMZAgY
>>746
シーン制御とかアセット管理でググればそれなりの答えがあるんじゃねーの?

あんたの短い質問じゃ。ターゲット環境も縛りもわからねーから。
こういう答えになる。すまんね。

シーン(アニメ)が条件で分岐するならスクリプト言語併用が扱いやすんじゃないかとは思う。

756 :名前は開発中のものです。:2012/12/23(日) 21:30:54.25 ID:Q1zB2M99
>>754
つまり、プログラム技術云々ではなく、まずはアニメーション技術の云々を勉強しろと?
さて、どうしたものか。アニメーションなんて何処で勉強すれば良いんだろ??
作ってるゲームはRPGだけれども、フリダシに戻った気分。

757 :名前は開発中のものです。:2012/12/23(日) 21:33:30.64 ID:VS1hfmR0
>>739
DirectX前提だけど、
条件判定を手作業で追加してやらないと、ジンバルロック起きるんじゃね?

クォータニオン周りは、座標算出ではなく、変換行列を求めるのが目的じゃないか?
例えば俺は、何らかの物体を、別の球体表面から放射状に延びる様に配置する時に、
変換行列を求めるために利用してるな。

758 :名前は開発中のものです。:2012/12/23(日) 21:47:03.30 ID:lqCRwHHc
元ネタ古すぎてわからんからようつべで探してきたわ
https://www.youtube.com/watch?v=j_EgEbwANMY&feature=youtube_gdata_player

これドット単位で書き換えとかやってる気がするんだけど…

759 :名前は開発中のものです。:2012/12/23(日) 22:01:06.01 ID:fCnMZAgY
>>758
PCエンジンは比較的新しい方、PC88だのはもっとしょぼいアニメ。

それから、ドット単位というより。
一枚絵の一部分だけ、目なら目、口なら口の部分だけ書き換えるんだよ。

これは、ハードの性能の問題。
8bitCPUが4Mhzとか8Mhzで動いて、VRAMも48KBとかの時代の話だ。

この手法は
むかーしのセル画の頃のアニメに似た手法。

今ならこんなことに気を使わなくても全画面書き換えて60FPSとか余裕でしょ。
そっち使え。

760 :名前は開発中のものです。:2012/12/23(日) 22:10:26.57 ID:fCnMZAgY
>>739
ゲームで連続的に使うならシンバルロックは致命的だけど。
起きないんならいんじゃね?

俺は、Quaternion使う利点は演算コストだと思ってる。
あと、3DCGソフトの多くがQuaternionを使ってることが多いので再現性が高い。誤差が少ない。

こんなもんかな。

761 :名前は開発中のものです。:2012/12/23(日) 22:36:23.29 ID:fCnMZAgY
>>758

https://www.youtube.com/watch?v=YtLsvH7BOcI
https://www.youtube.com/watch?v=Wu5Yd0lfmVY

こんな世界だろw

762 :名前は開発中のものです。:2012/12/23(日) 22:45:15.42 ID:DyE9bJRU
リンクにあるエロゲのE-moteのほうが関心事かもしれん
つかこれLive2Dとどう違うんだ

763 :名前は開発中のものです。:2012/12/23(日) 22:53:22.31 ID:2cUIkdIX
>>762
Live2DはLive2D用のモデル、E-moteは既存のイラストと聞いた。
詳細はシラネ

764 :名前は開発中のものです。:2012/12/23(日) 22:55:48.54 ID:fCnMZAgY
>>762
Live2Dなるもの知らないんで、チラ見してきた程度の知識で答えると
やってることは似たようなことだけど。

昔:一枚一枚手書き
今:画像を自動生成

くらいのちがいじゃねーの?

765 :名前は開発中のものです。:2012/12/23(日) 23:23:45.64 ID:OBn/EF8o
CrazyTalkと何が違うんだ?
ttp://www.nicovideo.jp/watch/sm10465664

766 :名前は開発中のものです。:2012/12/23(日) 23:25:09.97 ID:wbF7QO76
ぱっと見はモーフィングとか自由変形みたいだな
すごい技術なんだろうけど、違和感ありありでフラッシュアニメみたいだな

767 :名前は開発中のものです。:2012/12/23(日) 23:25:12.37 ID:Q1zB2M99
>>759
>今ならこんなことに気を使わなくても全画面書き換えて60FPSとか余裕でしょ。
>そっち使え。

絵がデカければデカいほど、描く人が大変だと思うんだな。
昨今のアニメには繊細さが足りないと思うの。

768 :名前は開発中のものです。:2012/12/23(日) 23:34:05.45 ID:fCnMZAgY
>>767

じゃあ、作画のコスト考えて昔の手法使えばいいじゃない。
別にできないわけじゃないよ。

つーか、今なら3Dモデル作ってモーションやモーフ使って2Dっぽくレンダリングしたほうが
全体的にコストが少ないと思うけど。

>昨今のアニメには繊細さが足りないと思うの。
昨今のアニメはいちいち手書きなんかしてねーYO!

769 :名前は開発中のものです。:2012/12/24(月) 00:14:56.57 ID:r0oEJweN
>>761
 88で横1ドットスクロールだとか、気合入りすぎ(^^;;;
 88は1バイトずれると8ドットお隣りだからなあ。

 このタイトル、8MHzの頃だったよね?
 それでも2Dドライブ2基&メモリ32KBでよく動かしたもんだ。

770 :名前は開発中のものです。:2012/12/24(月) 00:47:14.97 ID:ioB4Qyhc
>>769
1バイトで8ドットって色の情報はどこにあんの?

771 :名前は開発中のものです。:2012/12/24(月) 01:28:32.10 ID:f5+76g41
RGBの3プレーンの合成

772 :名前は開発中のものです。:2012/12/24(月) 01:54:00.75 ID:TxWJUPMu
Cを0から勉強して普通の2D縦シュー作れるようになるまでどのくらい時間かかる?

773 :名前は開発中のものです。:2012/12/24(月) 02:10:18.57 ID:vm2H/Rae
本人のやる気と素質次第。
そもそも「普通の2D縦シュー」ってどんなものだ?
少なくとも、手を動かさない限りは100年かかってもできない。

774 :名前は開発中のものです。:2012/12/24(月) 02:42:25.80 ID:kLWcgfM3
>>772
大学1年でCを0から学習して19年
今年初めてゲーム1本作り上げた

775 :名前は開発中のものです。:2012/12/24(月) 02:58:07.25 ID:TxWJUPMu
>>774
そんなにかかるのか

776 :名前は開発中のものです。:2012/12/24(月) 03:05:15.48 ID:ioB4Qyhc
STGなら竜神録のなんとか見ながら作れば意外とすぐ作れるんじゃない
親切にアルゴリズムの説明からソースまであるみたいだし

まあコピペが勉強になるかどうがはわからんけど

777 :名前は開発中のものです。:2012/12/24(月) 07:29:45.46 ID:Db8KRA4+
>>768
だからガンダムAGEみたいなゴミが出現するのか……

なんか昨今はコストコストで何処の会社もまともに作れないみたいやね。

778 :名前は開発中のものです。:2012/12/24(月) 11:02:35.19 ID:jHF1xP0w
>>772
縦シューって背景スクロールとかまでやるの?
0から勉強のつもりなら、もっとシンプルなやつから始めた方がいい。
例えばインベーダーの真似とか。
移植でなく勉強のつもりなら全く同じでなくてもよく、例えばUFOなしとかシェルターなしでもいいから
1つゲームを完成させる事を目標にすればCのスキルは自然に上がるはず。
それで物足りなくなったら、新しい事を勉強、もしくは研究するといい。
最初からスクロールだ弾幕だ拡大縮小回転(流石にここまでは考えないか?)だと欲張ると挫折の元。
自機の表示、移動とかは苦労しないけど、敵を出すと苦労する気がする。
更に進んでギャラクシアンの真似くらいのレベルになれば、敵の動きで悩むようになるだろうし。

779 :名前は開発中のものです。:2012/12/24(月) 11:12:32.28 ID:aelXXfq3
俺が小学生の時に作った一番最初のゲームは、
UFOが左から右に飛んできて、スペース押すと
砲台から弾発射するって感じだった。
弾が移動中はUFO止まっちゃうみたいなw
フレームupdateの概念知らんかったし。
ただ文字が動いただけで大興奮してたなぁ。

780 :名前は開発中のものです。:2012/12/24(月) 12:21:46.39 ID:Db8KRA4+
>>779
自分が作った通りにコンピュータが動くのが楽しい。
はじめはそんな所から入るんだよな。

今みたいにツクールだのノベルツールだのがある世代には理解出来ないかもしれないが。

781 :名前は開発中のものです。:2012/12/24(月) 12:32:37.68 ID:ii+VwrqZ
最近のツクールはRubyで動かせるらしいから
デフォ機能に満足できなくなってプログラム始めてみる人もそれなりにいるんじゃないか

ほとんどの人がGUIとの難易度差の壁で挫折するような気もするが

782 :名前は開発中のものです。:2012/12/24(月) 13:34:28.97 ID:Db8KRA4+
>>781
入門書が無いから、かなり難しいんじゃね?変数やら、ループやら、条件分岐やら、
関数やら、プログラムの素養も無い状態からいきなりスクリプトを組むんだぜ?
俺も昔は、i=i+1が理解出来なかった。

783 :名前は開発中のものです。:2012/12/24(月) 13:38:01.90 ID:Db8KRA4+
>俺も昔は、i=i+1が理解出来なかった。

ちなみにファミリーBASICの頃な。

784 :名前は開発中のものです。:2012/12/24(月) 15:25:24.33 ID:qY+wT+GB
ttp://www.shiftylook.asia/common/img/twitter/twitter-wondermomo-bg.jpg

785 :名前は開発中のものです。:2012/12/24(月) 15:49:31.32 ID:kp1KHpvu
>>782
Rubyの入門書なんていくらでもあるが

786 :名前は開発中のものです。:2012/12/24(月) 16:03:26.77 ID:Db8KRA4+
>>785
彼らに必要なのは、Rubyの入門書じゃなくて、RGSSの入門書だと思うんだ。
微妙な違いだが。内容は、ほとんどRubyの入門書でかまわんけどな。

787 :名前は開発中のものです。:2012/12/25(火) 03:33:19.88 ID:zF0QY+1h
というか平でRuby叩けるなら自分でライブラリ作れるよね

788 :名前は開発中のものです。:2012/12/25(火) 07:17:01.41 ID:jkoqGqnQ
>>786
出たら出たで値段が高いと言われる悪寒
専門書の値段は一般書籍よりも高いからなぁ……

789 :名前は開発中のものです。:2012/12/25(火) 08:40:57.90 ID:jkoqGqnQ
>>787
作業量を考えると、とてもやる気になれん

790 :名前は開発中のものです。:2012/12/25(火) 14:57:24.64 ID:IWHX/F4T
凄い時間食うしそれだけ使って自作しても満足な性能にはならんし
人生がもっと長いものならライブラリ自作もいいだろうけど

791 :名前は開発中のものです。:2012/12/25(火) 21:25:35.94 ID:BbX+fPM4
セーブデータ作るのマジで難しいな、頭痛ええええ

792 :名前は開発中のものです。:2012/12/25(火) 23:38:52.22 ID:bQPzlvmK
>>791
メモリの領域そのままファイルにしちまえ!

793 :名前は開発中のものです。:2012/12/26(水) 00:22:20.80 ID:+G98OIdE
一時的なアドレスをファイルに記録しも何の意味もないだろう。
ストレートにデータだけが密集しているなんてあり得ないし。
本当に頭が悪いな。

794 :名前は開発中のものです。:2012/12/26(水) 00:24:49.79 ID:ZZjI3Uyb
msgpackでも使え

795 :名前は開発中のものです。:2012/12/26(水) 00:25:08.92 ID:uxJ2SIgl
密集していないなら密集させればいいじゃないw

796 :名前は開発中のものです。:2012/12/26(水) 00:53:00.86 ID:z9DtBYYo
セーブデータパックという保存したい全てのデータをメンバに持つクラスを作る
セーブデータパックのメンバに保存したいデータを代入する
セーブデータパックのwrite()関数は自身が持つメンバをファイルに書き込む

797 :名前は開発中のものです。:2012/12/26(水) 01:05:30.80 ID:+G98OIdE
セーブデータが増えるごとに、作る必要のないメンバを増やさないといけない糞設計。

798 :名前は開発中のものです。:2012/12/26(水) 01:12:44.91 ID:tD+sqmHM
ぼくiniファイルに突っ込んでる

799 :名前は開発中のものです。:2012/12/26(水) 01:34:12.97 ID:z9DtBYYo
>>797
ケチばかりつけてないで自分の実装を書きたまえ

800 :名前は開発中のものです。:2012/12/26(水) 01:35:58.62 ID:ns+2wKhF
キチガイはNGしとけ

801 :名前は開発中のものです。:2012/12/26(水) 01:46:32.61 ID:v7JyF2G2
792をネタとして捉えないお前らが怖い

802 :名前は開発中のものです。:2012/12/26(水) 02:06:55.96 ID:N8fjmAXd
マジレスするまでがネタだって小学校で教わりました!

803 :名前は開発中のものです。:2012/12/26(水) 07:08:02.81 ID:VtbobTUb
なんか最近壊れてる人間が多いな
コミケ前で気がたってるのか?

804 :名前は開発中のものです。:2012/12/26(水) 07:24:39.32 ID:VtbobTUb
ああ、シングルベルで荒れているのか
プログラマーって、一人でプログラム組んでいるのが幸せな人種だと思ってたんだが、最近は違うのか

805 :名前は開発中のものです。:2012/12/26(水) 10:22:41.01 ID:TnmRDKGA
お、嘆きだったのにわざわざネタもアドバイスもサンクス
Boost使っても基本的にシリアライズするメンバを手動で記述しないといけないのと
やっぱりポインタ関連が辛いわあ

806 :名前は開発中のものです。:2012/12/26(水) 11:23:54.88 ID:l3KMI7x7
僕はmementoちゃん

807 :名前は開発中のものです。:2012/12/26(水) 12:19:04.74 ID:QfZWs8vU
嫌味言いたいだけなのか構われたいだけなのか

808 :名前は開発中のものです。:2012/12/26(水) 13:38:03.78 ID:wwQ2BSTL
map<string,Data>にすれば別にメンバ追加とか要らんやろ

809 :名前は開発中のものです。:2012/12/27(木) 01:27:25.81 ID:S9bahyte
セーブデータ読み書きクラスとそこから呼び出す仮想クラスを作る。
セーブに書き込むデータのクラスは全部この仮想クラスを継承してセーブ読み書きクラスに登録する。
セーブ読み書き時に仮想クラスのリストを全部呼び出す。
俺の場合はこうしてる。

810 :名前は開発中のものです。:2012/12/27(木) 01:39:04.42 ID:7kVW3PcF
仮想クラス(笑)

知的下層民が考えそうなアイデア。かそうだけに。

811 :名前は開発中のものです。:2012/12/27(木) 09:36:22.37 ID:dt6EqIEd
ゲームプログラマって気持ち悪いの多い印象

812 :名前は開発中のものです。:2012/12/27(木) 13:28:05.29 ID:xewIKOnN
2chの利用者って非リア充なイメージ

813 :名前は開発中のものです。:2012/12/27(木) 18:59:55.85 ID:240484A6
仮想クラスだと読み取りメソッドがファクトリとくっ付いちゃうよね。仕方ないか

814 :名前は開発中のものです。:2012/12/27(木) 20:14:25.55 ID:H/w8YAhc
>>792が完全にネタ扱いされてるけど、メモリプールをそのまま保存するのは普通にありじゃね?
ポインタはメモリプール内への参照なら先頭アドレス持っとけば簡単に再構築できるよね?

815 :名前は開発中のものです。:2012/12/27(木) 20:25:14.41 ID:BtDQOrjJ
>>814
俺も何でネタレス扱いされてるか疑問だった。
もちろん有効な場面とそうでない場面があるのは確かだろうが。

816 :名前は開発中のものです。:2012/12/27(木) 21:30:06.51 ID:240484A6
ポインタの再構築用のマップみたいなの作るとして、アドレスの値って
ポインタのままじゃなくなんらかの整数型にキャストしといたほうが安全かな?

817 :名前は開発中のものです。:2012/12/27(木) 22:29:41.05 ID:41X4GpHb
シリアライザを自作するの?おじさんゲ製板久々だから浦島発言するかもだけど
学習目的でなければboost::serializationとか使ってもいいんじゃないの、って思うよ

818 :名前は開発中のものです。:2012/12/27(木) 23:20:56.02 ID:BtDQOrjJ
エンディアンとかの類って吸収してくれるんだっけ?

819 :名前は開発中のものです。:2012/12/27(木) 23:33:18.43 ID:yklx1IPe
>>817
friend指定してポインタ含めてオブジェクト構造まで再生する
って言う仕様が生理的に無理。キモス

820 :名前は開発中のものです。:2012/12/27(木) 23:56:35.74 ID:pK5zNzT+
セーブごときで躓いていたらいつまでたっても完成しないよ

821 :名前は開発中のものです。:2012/12/28(金) 05:29:03.46 ID:jBk7TE7Z
複雑に考えすぎ
ファミコンとか単にロードに必要なデータを抽出して、
バイナリデータとしてメモリに詰め込んでただけだろ
機能を実現することが目的じゃなくて、
なんかスマートにやらないと駄目だみたいな強迫観念があるよね
ゲームを作ることが目的なんじゃないのって思うね

822 :名前は開発中のものです。:2012/12/28(金) 08:17:57.07 ID:6lI/2Omb
結局スマートにしないと後で苦労するからだよ

823 :名前は開発中のものです。:2012/12/28(金) 08:30:09.99 ID:HGUovUqb
>>816
安全かどうかはともかく、計算あるから整数型の方が扱いやすそうだけど

824 :名前は開発中のものです。:2012/12/28(金) 10:21:54.18 ID:40wf7UCg
>>821
そんな単純なモンじゃない。ジャンルによって大きく変わると思うけど、
結局、オブジェクト構造の再生で躓くんだと思う。

825 :名前は開発中のものです。:2012/12/28(金) 10:43:19.82 ID:tFIUuGUz
セーブに凝るより、ゲーム内容に凝れよ
だからお前らのゲームはつまんねえんだよ

826 :名前は開発中のものです。:2012/12/28(金) 11:02:44.63 ID:83NITVkY
煽るよりゲーム作れよ

827 :名前は開発中のものです。:2012/12/28(金) 11:09:49.80 ID:I387UXuf
セーブは是非ともクリアしたい課題なんで色々な意見聞けて助かります

828 :名前は開発中のものです。:2012/12/28(金) 12:40:36.61 ID:40wf7UCg
凝るってレベルの話じゃないだろ。

829 :名前は開発中のものです。:2012/12/28(金) 13:03:38.48 ID:C41enKH0
ゲ制作技術はワナビーが多すぎなんだよな。

830 :名前は開発中のものです。:2012/12/28(金) 16:46:57.35 ID:MWZYB7RZ
セーブってもピンからキリがあるじゃん。
復活の呪文ってのは、昨今では下の下だよな。
やっぱ、ホットキーでのクイックセーブ&ロードって重要だと思うぜ。
再現するのは難しいがな。

831 :名前は開発中のものです。:2012/12/29(土) 00:35:11.35 ID:JDodDboA
クイックディスクにセーブ&ロード

832 :名前は開発中のものです。:2012/12/29(土) 16:32:55.81 ID:7Q5N8eP4
型推論のautoって使わないほうが良いっていう意見をよく見るけど
あれってタイプがラクなだけじゃなくて修正・変更を見越してtypedefを使うときみたいに
ちょっとした修正に自動で対処してくれるからかなり良いと思うんだけど、何か致命的な部分とかあるの?

833 :名前は開発中のものです。:2012/12/29(土) 17:31:26.41 ID:zgKZrPop
処理が重い&遅くなるんじゃん?

834 :名前は開発中のものです。:2012/12/29(土) 18:06:01.14 ID:bpd6cCoW
型推論で処理が遅くならんだろ

IDEのインテリセンスやコンパイルが遅くなるのはあるだろうな

835 :名前は開発中のものです。:2012/12/29(土) 19:08:33.71 ID:ex2HQDNV
auto使わないほうがいいって意見は
 (1)「変数の宣言を見ただけでは型が分からなくなる」
 (2)「動的型みたいで嫌い」
って2種類をよく見る印象。
特に後者は、VBのVariant型と混同してる奴がたまにいる。

「そういう考えもある」程度の意見だと思っていいと思うよ。

836 :名前は開発中のものです。:2012/12/29(土) 21:19:15.92 ID:2M5ZordY
あれってコンパイル時(プリコンパイル?)に解決すんだよね?
なら実行速度は変わらん気がするけど

837 :名前は開発中のものです。:2012/12/29(土) 21:21:04.86 ID:mVdZ1gen
Visual Studio使ってるならマウスカーソル乗せたら型表示されるんだからガンガンauto使えでFA

838 :名前は開発中のものです。:2012/12/29(土) 21:46:53.72 ID:piXe5Z2O
2008までしかProライセンスないからauto使ったコード書きにくい
2012のGPUデバッグ欲しいけど高いんだよな

839 :名前は開発中のものです。:2012/12/29(土) 21:52:47.85 ID:gOlkM7He
ほぅ…

840 :名前は開発中のものです。:2012/12/29(土) 22:13:57.83 ID:7Q5N8eP4
良かった。autoに調教されすぎて今さらイテレータなんてタイプできない身体にされてしまったからな・・・

841 :名前は開発中のものです。:2012/12/30(日) 00:26:20.09 ID:G0KUQArr
孫の孫の孫の・・子のクラスでtemplate使いまくりで
ビルド時間中にゲームの腕前が上がりまくり

842 :名前は開発中のものです。:2012/12/30(日) 13:08:16.53 ID:ORqRyWcf
テンプレートから型を限定して継承したりするとすごいテクニシャンになった気分になる

843 :名前は開発中のものです。:2012/12/30(日) 20:07:50.55 ID:Z7980Zcb
scalaの本に型推論の使いどころと使わないよう注意する点が
書いてあったけど捨ててしまった

844 :名前は開発中のものです。:2012/12/31(月) 13:20:38.79 ID:oVNqd4ZE
記述性と可読性が両方向上する場面なら使っても文句は言われないと思う

ただ単に「型をタイプするのが面倒だったから」って理由が先行してる
auto乱用コードも、世間の目に触れさえしなければ文句は言われないと思う

他人に読ませる予定が無い書き捨て作り捨てコードなら(他人にとっての)
可読性なんて気にするだけ無駄とも言えるから好きなようにやればよし

845 :名前は開発中のものです。:2012/12/31(月) 15:11:01.93 ID:SFGr5ssC
forループのイテレータなんかは、autoの方が読みやすいよね

846 :名前は開発中のものです。:2013/01/01(火) 08:16:31.18 ID:HH+7aOSA
>>843
自炊しなかったんだ

847 :名前は開発中のものです。:2013/01/01(火) 23:18:32.63 ID:mzm+Ub90
基本的なことだと思うんだけど、予想外の動きをするので教えて欲しい。

あるインスタンスの関数から、そのインスタンスを消す関数を呼んだあと、どうして元の処理に戻ってこられるんだろうか?
てっきりこういうやり方は、戻るべき関数がなくなってしまってエラーが起きるんだと思いながら、(あぁ、これは出来ないんだろうなぁ・・・出来たら楽なのになぁ)と実行してみたら動いてしまった。

848 :名前は開発中のものです。:2013/01/01(火) 23:23:21.74 ID:YMXlwyFQ
呼び出すときに戻り番地をスタックに格納してるから

849 :名前は開発中のものです。:2013/01/01(火) 23:44:49.74 ID:9IVaoQQW
削除フラグを立ててるだけで実際に削除はされない。

850 :名前は開発中のものです。:2013/01/02(水) 00:07:11.47 ID:Pn1kCNDL
deleteで消えるのはインスタンスに含まれる変数共で関数は消えないだろ

851 :名前は開発中のものです。:2013/01/02(水) 00:16:20.10 ID:yyEVKNgm
>>847
>てっきりこういうやり方は、戻るべき関数がなくなってしまって

実行コードがインスタンスのデータじゃないので自殺(delete this)しても
消えない。戻り番地についても>>848の言う通り

>エラーが起きるんだと思いながら、(あぁ、これは出来ないんだろうなぁ・・・

自殺(delete this)した後にインスタンスのデータにアクセスしなければ
エラー(メモリアクセス違反)は出ない。試しにエラーを出してみたければ
メンバ変数にアクセスするとか仮想関数を呼び出すとか

デバッガでアセンブリ言語レベルでステップ実行すれば動く理由が
手に取るように分かるんじゃないかな。MSのVisualStudioなら
混合モードでステップ実行みたいな

>出来たら楽なのになぁ)と実行してみたら動いてしまった。

自殺(delete this)は一般的な御作法のお話としては非推奨なので
やるなら個人の範囲に留めたほうが無難なんじゃないかな

852 :名前は開発中のものです。:2013/01/02(水) 00:16:55.71 ID:yyEVKNgm
>>850
かぶっちゃったごめん

853 :名前は開発中のものです。:2013/01/02(水) 00:52:56.97 ID:phtBlWX9
そもそもRAIIオブジェクト使うから自分でdeleteしなければならない場面なんてほぼない

854 :名前は開発中のものです。:2013/01/02(水) 01:26:03.61 ID:dAbJQ4X3
それでも循環参照は怖い。
包含にはshared_ptr、参照目的の依存関係にはweak_ptrを心がけてるけど
ObserverやMediatorあたりは頭が痛い

855 :名前は開発中のものです。:2013/01/02(水) 01:30:17.76 ID:yyEVKNgm
この板の名前から推測するに
インスタンスに自殺(delete this)させたいという願望にありがちな背景事情は
「ゲーム上の死」と「リソース上の死(メモリ解放)」の区別をしていない
(or混同してる)場合が多いんじゃないかと

いずれにせよリソースレベルの自殺願望というのは何かしら設計に難があるよね

856 :名前は開発中のものです。:2013/01/02(水) 01:46:11.28 ID:dAbJQ4X3
タスク処理だとリストからの削除(ゲーム上の死)と同時にdelate(メモリ開放)することも多いし
自殺じゃないにしろ削除する対象が結果として自分になることはあるかもね。
StatePatternみたいなのは維持(スタック)と退場(再初期化)とメモリ開放の区別が難しいかもしれない

857 :名前は開発中のものです。:2013/01/02(水) 07:59:56.81 ID:HkdDTeES
>>848-856

ありがとう。
個人制作なのでまぁ、しばらくこれでやってみて、ちょっと雲行きが怪しくなったら一手間かけてみようと思う。
すっきりしたよ!

858 :名前は開発中のものです。:2013/01/02(水) 12:46:39.51 ID:64vLBiFm
敵、弾、エフェクトなどの物体1つを1インスタンスとした場合、
ゲーム上での生成/消滅にあわせてnew/deleteしたいときは多いなあ。

自殺するか、自殺願望フラグを立てて管理クラスからdeleteしてもらうか、
あるいはゲーム上での消滅判定も管理クラス側で全てやってもらうようにするかは設計次第としても。

859 :名前は開発中のものです。:2013/01/02(水) 12:55:27.44 ID:mUVlUZlw
>>858
今のPCならいちいちnew/deleteしても無問題だけど、
ゲーム制作のセオリーとしては推奨されない。
モバイル機だとその設計はオーバーヘッドが多過ぎ。
使われなくなったインスタンスは未使用フラグを立てて、
また再利用すべし。

860 :名前は開発中のものです。:2013/01/02(水) 13:15:04.81 ID:dAbJQ4X3
>>858
自殺以外のイベントも自分でやるか管理クラスでやるかは悩みどころだよね。

>>859
極端に言えばファクトリが実体をvectorで保持しておいてそれの参照を返すとか?
deleteの代わりにファクトリに返却すると勝手に初期化して再利用するのか

861 :名前は開発中のものです。:2013/01/02(水) 13:33:08.28 ID:AKjNTxJw
無駄な労力使う奴が馬鹿

862 :名前は開発中のものです。:2013/01/02(水) 13:46:35.03 ID:sP5sg6ui
>>859に同意だな。
アクション系アクタをプレイ中にnew/deleteするとか、ぬるすぎるぞw
ヒープ領域のメモリ確保は時間がかかるってのは常識だぞw
業務用アプリじゃあるまいし

863 :名前は開発中のものです。:2013/01/02(水) 14:26:45.89 ID:npo9IBrt
でもnew/deleteがオーバーロードされてるかもしれない

864 :名前は開発中のものです。:2013/01/02(水) 14:55:42.95 ID:sP5sg6ui
当初の流れはデフォルト動作を前提としていたみたいだよ。
メモリ解放とか言いだしていたから。
デフォルトのnew/deleteをプレイ中に実行するとか、
板的にテンションが盛り下がりまくりじゃね?ww
俺は許せねえよ!

865 :名前は開発中のものです。:2013/01/02(水) 15:25:40.93 ID:Pn1kCNDL
そもそもモバイル機の話だったのか?

866 :名前は開発中のものです。:2013/01/02(水) 15:51:26.80 ID:sP5sg6ui
>>853
シーンの切り替わり(例えばシューティングゲームのステージ間)でもdeleteはせんの?

867 :名前は開発中のものです。:2013/01/02(水) 18:18:26.51 ID:phtBlWX9
本物のC++erは可能な限りdeleteしないし、デストラクタも書かない

868 :名前は開発中のものです。:2013/01/02(水) 18:43:48.01 ID:dcn5+QuE
テクスチャや頂点データのリソースを使い回しているのが前提なら、
newやdeleteを使おうが使うまいが1FPS以内の測定不可能レベルの誤差にしかならない。
ヒープの確保などモバイルでさえ、影響が全く見えないというレベルにしかならない。

こういうところでどや顔でヒープとか言い出すやつは、
脳内リソースで最低限のベンチマークもとっていないアホ。

869 :名前は開発中のものです。:2013/01/02(水) 18:46:35.91 ID:sP5sg6ui
ttp://ja.wikipedia.org/wiki/RAII
↑典型的なRAIIに則った例でデストラクタを書いてるみたいだが?

870 :名前は開発中のものです。:2013/01/02(水) 18:56:22.81 ID:phtBlWX9
deleterで解放できない場合は仕方ないので自分で書くしかないが
FILEならstd::unique_ptr<FILE, decltype(&fclose)>とかを使えばデストラクタ書かずに済む
そのページもスマートポインタ使えるときは使えという風に書いてるように見える

871 :名前は開発中のものです。:2013/01/02(水) 19:00:14.11 ID:sP5sg6ui
>1FPS以内の測定不可能レベルの誤差
↑これ非常に誤差がデカイってことだよな?

872 :名前は開発中のものです。:2013/01/02(水) 19:52:46.91 ID:sP5sg6ui
新年早々、触れちゃいけない子だったかw
ヒープのデメリット無視とかあり得んわww

873 :名前は開発中のものです。:2013/01/02(水) 20:11:49.28 ID:Pn1kCNDL
興味あるわー>ヒープのデメリット
確保も解放も0.1ms以下だし
断片化の影響は考えられないメモリあるし

874 :名前は開発中のものです。:2013/01/02(水) 20:48:42.58 ID:dcn5+QuE
簡単な検証方法

1 足し算を一回させるものと、newとdeleteを一回させるものを用意(断片化させるためにnewを多くしても可)
2 ループで1万回回す
3 命令が削除されないようにコンパイラの最適化は必ず切ること

結果、どちらも早すぎて測定不能

こういう話をするときに、じゃあデメリットの発生するソースを用意しろといっても、
グダグダ言い訳をして絶対に出してこない。
毎度毎度、お決まりのパターンなんだよね。

875 :名前は開発中のものです。:2013/01/02(水) 21:56:32.25 ID:sP5sg6ui
本当に検証したのならコードを出すべき

>>873
>確保も解放も0.1ms以下だし
60FPSとすれば、上記では利用可能な時間のうち、最悪1/166もの時間が消費されることになるな。
にもかかわらず「ヒープのデメリットに興味あるわ」なんかな

876 :名前は開発中のものです。:2013/01/02(水) 23:16:23.06 ID:Pn1kCNDL
結局時間だけか
ゲーム中1f辺りのオブジェクトの生き死になんて多くても10個程度
フレーム落ちしないレベルだからコーディングコストを考えて無視してる

断片化でどんどん重くなるとか全体のヒープメモリが肥大化して他を圧迫するとか
そういうデメリットがあるのかと思ったんだが

877 :名前は開発中のものです。:2013/01/02(水) 23:26:01.39 ID:dcn5+QuE
>>875
手順を書いてあるんだからその程度作れるだろう、恥ずかしいやつだな。
Releaseで最適化を切った状態で、超ナイスタイミングで無い限り0になるはずだ。

#include <Windows.h>
#include <stdio.h>
#pragma comment( lib, "winmm.lib" )
int main()
{
timeBeginPeriod(1);
DWORD t = timeGetTime();
char* c;
int i;
for(i=0;i<10000;i++)
{
c = new char[100];
delete c;
}
t = timeGetTime() - t;
printf("%u",t);
return 0;
}

878 :名前は開発中のものです。:2013/01/02(水) 23:26:48.81 ID:dcn5+QuE
delete[] c;
にし忘れたが、出力コードに変化はなし。

879 :名前は開発中のものです。:2013/01/02(水) 23:28:35.18 ID:fq5uOZJv
検証したならコードを出せとか、結局このままグダグダ難癖つけて
自分じゃ何一つ根拠を提示しない今後の展開が透けて見えるな

880 :名前は開発中のものです。:2013/01/02(水) 23:28:51.13 ID:dcn5+QuE
こうやって断片化させても変化なし。
c = new char[rand()%100+1];
new char[rand()%100+1];
delete[] c;

881 :名前は開発中のものです。:2013/01/02(水) 23:31:23.06 ID:dcn5+QuE
で、こうやってこちらがコードを提示しても、
絶対にヒープのデメリットを示すソースは出ない。
まあ、毎度お馴染み。

882 :名前は開発中のものです。:2013/01/02(水) 23:55:17.48 ID:sP5sg6ui
おう、お疲れ。
10000回ループさせる試行を100回繰り返した時の平均時間はどうなる?

883 :名前は開発中のものです。:2013/01/02(水) 23:58:03.52 ID:dAbJQ4X3
0~100バイトのデータを1万回 new と delete 繰り返しても1msの間では
測定不能なくらい時間がかからない、って認識で合ってる?とにかくありがたい

884 :名前は開発中のものです。:2013/01/03(木) 00:00:10.15 ID:yZFe3IBd
>>866
それスマートポインタの類を使えない状況には思えないんだけど

885 :名前は開発中のものです。:2013/01/03(木) 07:31:45.96 ID:KywQEqe4
>>883
PCならいんじゃない?

スマホだとメモリ限られてる上に限界超えた時点で
アプリが落ちるっていうクソ仕様だから、ゲーム中に
newするのは危険。必要最大限のヒープを先に確保しとくべし。

886 :名前は開発中のものです。:2013/01/03(木) 07:45:34.48 ID:Qmf3rDAa
結局、ソースは出なかったね。

887 :名前は開発中のものです。:2013/01/03(木) 08:01:40.53 ID:tOEHCTsJ
まあ実際に動かして出た結果が正義だしな
ちなみにこれってnewだけ繰り返しても同じ結果になるの?
いま開発環境手元にないから調べられないんだけど

888 :名前は開発中のものです。:2013/01/03(木) 09:25:50.81 ID:BC6tD7as
>>883
for(j=0;j<100;j++) {
//計測開始
//1万回new/delete
//計測結果出力
}
こうしてみたら測定不能ということはない。
手順は書いたんだがな。

889 :名前は開発中のものです。:2013/01/03(木) 10:12:04.39 ID:Qmf3rDAa
>>888
それじゃ出力命令が重いという実証結果が得られるだけだろう。
単純な測定すら書けないとは、本当に酷いな。

890 :名前は開発中のものです。:2013/01/03(木) 10:20:43.12 ID:onhCnTOJ
そもそも分解能未満の計測を繰り返す意味ないよね
やるなら100万回実行でいいんじゃないの

891 :名前は開発中のものです。:2013/01/03(木) 10:28:03.17 ID:BC6tD7as
>>889
は?何言ってるんだ?

for(j=0;j<100;j++) {
//計測開始
DWORD t = timeGetTime();

//1万回new/delete

//計測結果出力
t = timeGetTime() - t;
printf("%u",t);
}

こうするんだよ?
頼むからROMっていてくれないか。

892 :名前は開発中のものです。:2013/01/03(木) 10:36:12.59 ID:Qmf3rDAa
ちなみに>>888だと加算に命令を置き換えても出力命令の重さに引っ張られて、結果が変わらない。
せめて測定結果をためておいて、後から出力するようにしないと話にならない。

ちなみに一度に数億回とかやっても実は関数を呼び出す負荷が大きいだけで、
適当な関数を二回呼び出すのと結果は大して変わらない。

893 :名前は開発中のものです。:2013/01/03(木) 10:37:20.64 ID:ADeGFW0Z
アセンブラのソースだせ。こんなに見ても意味ない

894 :名前は開発中のものです。:2013/01/03(木) 10:40:44.85 ID:onhCnTOJ
>>893
自分でコンパイルして出したらいいだろw
コードがどうのじゃなくて反証あげればいいだけの話っしょ

895 :名前は開発中のものです。:2013/01/03(木) 10:42:25.84 ID:ADeGFW0Z
つーか、ここの奴らの標準コンパイラは何なんだ?

896 :名前は開発中のものです。:2013/01/03(木) 10:43:02.29 ID:ADeGFW0Z
プラットフォームは?

897 :名前は開発中のものです。:2013/01/03(木) 10:50:00.33 ID:TASQia0Q
>>895
ないなそんなもの、スマホって言ってみたり貼られてるソースはwindowsだったりばらばら

898 :名前は開発中のものです。:2013/01/03(木) 10:52:44.17 ID:onhCnTOJ
まあVC++ or gccってところになんじゃないの
バージョンはまちまちだと思うけど

899 :名前は開発中のものです。:2013/01/03(木) 10:53:15.36 ID:ADeGFW0Z
>>897
あほくさ
バラバラの環境で性能周りの話しをして何が楽しいのだ?
パソコンだけでもバラバラだってのに

900 :名前は開発中のものです。:2013/01/03(木) 10:56:30.15 ID:TASQia0Q
知らんがなww

901 :名前は開発中のものです。:2013/01/03(木) 11:03:32.55 ID:Qmf3rDAa
>>899
普通のプログラムではあり得ないような短時間で局所的に1万回という馬鹿な回数をこなしても、
測定不可能な程度の負荷しかかからないという結果は出せる。

いいたいことがあるのなら、逆に環境が変わることによって、
これが覆る結果を提示すればいいだけの話。

902 :名前は開発中のものです。:2013/01/03(木) 11:06:53.28 ID:onhCnTOJ
だから「こういう環境だと不都合がある」って提示すればいいだけ
その一つとしてモバイルって上がってるし
PCでも「こういうときは不都合がある」ってのを提示すればいい

環境がバラバラだから意味ないなんて事はないよ

903 :名前は開発中のものです。:2013/01/03(木) 11:10:46.86 ID:ADeGFW0Z
提示してから言ってくれ。
そもそもソースだけ出して測定結果も出さないことになんか意味あんのか?
環境が違うんだから環境をさらして測定結果出さなきゃ集計もできんでしょ

904 :名前は開発中のものです。:2013/01/03(木) 11:17:44.77 ID:Qmf3rDAa
>>903
測定結果0

何度もやっていれば1が出る可能性はある。
で、人に要求するだけで自分の測定結果は出さないの?

まずは要求する前に自分の手を動かせ。
もう一度いうが、余計はことをぐだぐだ言う前に自分で作ったソースを提示しろ。

905 :名前は開発中のものです。:2013/01/03(木) 11:18:46.21 ID:onhCnTOJ
>>903
「newとdeleteのオーバーヘッドが無視できる程小さい」って意見に対する反証提示すればいいだけなんじゃないの?
ソースあれば十分な気がするけど

906 :名前は開発中のものです。:2013/01/03(木) 11:20:01.22 ID:BC6tD7as
ちなみに俺の環境6コアCPU、Windows、VC++、x64、Releaseビルド(最適化無効)では、
>>891を走らせた場合、目視平均で10ms程度だ。
最初の1回は0msになるがな。
一方、new/deleteの部分をk++;などのインクリメントに置き換えると、殆ど0ms。

907 :名前は開発中のものです。:2013/01/03(木) 11:25:01.81 ID:TASQia0Q
一人痛いのがいるな
正月に嫌なことでもあったのか?落ち着け
明日から仕事だろ?

908 :名前は開発中のものです。:2013/01/03(木) 11:31:51.22 ID:Qmf3rDAa
#include <Windows.h>
#include <stdio.h>
#include <math.h>
#pragma comment( lib, "winmm.lib" )
#define CA {c = new char[100];delete[] c;}
#define CA2 CA CA CA CA CA CA CA CA CA CA CA
#define CA3 CA2 CA2 CA2 CA2 CA2 CA2 CA2 CA2 CA2 CA2 CA2
#define CA4 CA3 CA3 CA3 CA3 CA3 CA3 CA3 CA3 CA3 CA3 CA3
#define CA5 CA4 CA4 CA4 CA4 CA4 CA4 CA4 CA4 CA4 CA4 CA4
int main()
{
timeBeginPeriod(1);
char* c;
int i;
for(i=0;i<100;i++)
{
DWORD t = timeGetTime();
CA5
t = timeGetTime() - t;
printf("%u\n",t);
}
return 0;
}
ちなみに1万回展開バージョンね
序盤しばらく0で、途中から1使うようになるけど、これはコード領域がでかすぎて、
キャッシュからはみ出しているせいだと推測される。
rand()とか適当な関数に置き換えても同じ動きをする。

909 :名前は開発中のものです。:2013/01/03(木) 11:36:59.33 ID:Qmf3rDAa
ちなみに結果が安定しない場合は、CPUの省電力設定を切ることを推奨。

910 :名前は開発中のものです。:2013/01/03(木) 11:42:16.56 ID:onhCnTOJ
vaio p(atom)で試してみたけど、15~30だった
デスクトップに比べて目に見えるほど遅いってのはちょっと意外かも
ちなみにVS2005使った

911 :名前は開発中のものです。:2013/01/03(木) 11:56:41.30 ID:onhCnTOJ
cの型をクラスにしたら倍時間かかるようになった
ちなみにintひとつとなにもしないコンストラクタのクラス
これほんとにモバイルで試しても速いのか?

912 :名前は開発中のものです。:2013/01/03(木) 12:02:02.36 ID:Qmf3rDAa
後はヒープを使わずに、使用済みフラグで管理するデータとベンチをとればいいんだけど、
これは後者を推奨する人間が作るべきだろう。
そもそもヒープの利用を禁止するような差が発生するコードが思いつかない。

913 :名前は開発中のものです。:2013/01/03(木) 12:08:34.84 ID:Qmf3rDAa
>>911
最適化を禁止した状態でクラスを作ると無駄な命令が大量に発生するので、
生成される実行ファイルのコードが5倍ぐらいに膨らむ。
1万展開ソースに組み込むと、コンパイルに偉い時間がかかるよ。

914 :名前は開発中のものです。:2013/01/03(木) 12:16:50.68 ID:HmYkyHnc
案の定デメリットの根拠の提示がなされることはなかったな
聞きかじった知識の口だけ番長なんてこんなもんか

915 :名前は開発中のものです。:2013/01/03(木) 12:19:49.27 ID:Qmf3rDAa
>>914
煽りに参加したいのなら、せめて何かソースなり検証結果なりを出せ。
それじゃやっていることはデメリット野郎と同じだぞ。

916 :名前は開発中のものです。:2013/01/03(木) 12:33:33.88 ID:nl85aWlA
そもそもnewをオーバーロードしてメモリプールから取ってくるようにすればデメリット皆無になる木がするんだが

917 :名前は開発中のものです。:2013/01/03(木) 12:42:25.52 ID:Qmf3rDAa
>>916
そういう話をするのは、ベンチマークを取って測定してからにしようねって流れなんだけどさ。
本当にスレからも歴史からも何も学ばないよなあ。

918 :名前は開発中のものです。:2013/01/03(木) 13:17:28.31 ID:Q7SzNsAG
new deleteが遅すぎて開発が破綻した経験のあるやつっているの

919 :名前は開発中のものです。:2013/01/03(木) 13:32:51.20 ID:nl85aWlA
>>917
原理的に考えるとそうでしょう?
ヒープを触るのが遅い原因で、メモリプールを使うことでそれを触らないようにしてるなら問題は解消してるよね?
これ以上何のベンチマークを取るというのか

920 :名前は開発中のものです。:2013/01/03(木) 13:49:29.18 ID:BC6tD7as
#include <Windows.h>
#include <stdio.h>
#include <iostream>
#pragma comment( lib, "winmm.lib" )
classtest {public:charbuf[40];};
int main() {
  int i;
  char* c;
  //test*c;
  //int k=0;
  for (int j=0 ; j<100 ; j++) {
    timeBeginPeriod(1);
    DWORD t = timeGetTime();
    for(i=0;i<100000;i++) {//1万回ではなく10万回
      c = new char[100];
      //c = new char[(rand()%32+1)*8];//※
      delete [] c;
      //c= new test();
      //delete c;
      //k++;
    }
    t = timeGetTime() - t;
    printf("%u\n",t);
  }
  std::cin >> i;
  return 0;
}

921 :名前は開発中のものです。:2013/01/03(木) 13:51:09.12 ID:BC6tD7as
↑を、さっきのと同じ6コアCPU、Windows、VC++、x64、Releaseビルド(最適化無効)で
5〜6ms程度だ。testクラスなら7〜8ms。new/deleteをやめてk++にすると大方0msになる。
つまり1万回ではその1/10程度ということだ。
テストで生成しているオブジェクトの構造が単純であることを加味すると、十分に遅いだろ?
なお※の様に配列の領域のサイズを不規則にしてやると、38〜40msかかる。

ちなみにコンソールアプリを空プロジェクトとして生成して、main.cppを追加して記述している。
確認方法は、デスクトップ環境でexeファイルをダブルクリックにより実行。

>>906の「目視平均で10ms程度」はいい加減だった。

922 :名前は開発中のものです。:2013/01/03(木) 14:10:16.45 ID:Qmf3rDAa
つまりnewとdeleteとループ処理併せて一組0.00004ms=40ナノ秒
弾幕ゲーのように数フレームごとにオブジェクトの生成や消滅や数十個レベルで起こるとして、
それは使うとまずいレベルなのか?

結局自前で利用の有無をフラグの管理をするにしても、
ヒープからメモリを確保する場合と、利用有無フラグ捜索してポインタを返す場合と、
誤差以上の差が発生するプログラムが全く思いつかない。

923 :名前は開発中のものです。:2013/01/03(木) 14:36:33.04 ID:Hs6nIL6e
PCの場合、例えば平凡なDoug Lea Malloc(の亜種)を使うことについて
処理速度上の問題で難癖を付けるには、意図的に相当に意地悪な(過酷な)状況設定を
引っ張ってくる必要があると思うなぁ

例えば3D視点のゲームで、視覚効果に使う粒子状の短命オブジェクトが盛り盛り
無数に画面上に散りばめられてて、それらが何と一粒一粒馬鹿正直にヒープから
メモリ割り当てされてて何の工夫もない線形リストに挿入されてて、毎フレーム
線形リストを馬鹿正直に巡回して一粒一粒更新したり削除即時解放したりとか

924 :名前は開発中のものです。:2013/01/03(木) 14:41:32.78 ID:Qmf3rDAa
座標計算だけならいけそうだが、粒子の描画に処理が持って行かれるだろうね。

925 :名前は開発中のものです。:2013/01/03(木) 14:45:10.24 ID:Hs6nIL6e
描画関数に渡すパーティクル用のデータ構造と明らかに違う状態だから
そのセットアップもあるしね。まぁ、いずれにせよ、何でそんな馬鹿な
想定を持ち出すんだと閉口するような話に持っていかないと処理速度上の
問題で横槍いれるのは難しいと思う

926 :名前は開発中のものです。:2013/01/03(木) 15:20:02.10 ID:BC6tD7as
>弾幕ゲーのように数フレームごとにオブジェクトの生成や消滅や数十個レベルで起こるとして、
>それは使うとまずいレベルなのか?
そういったありきたりの仕様だけを想定するなら、都度new/deleteもあつらえ向きだろうな。
しかし熱望する仕様を満たす可能性を最大化する作法には程遠い。

927 :名前は開発中のものです。:2013/01/03(木) 15:29:26.43 ID:Qmf3rDAa
認めはしたものの悔しいから含みを残す言い方で跡を濁す。
これもいつものパターン。
お疲れ様。

928 :名前は開発中のものです。:2013/01/03(木) 15:36:21.98 ID:1qjfamGg
お疲れー、次誰かデザインパターン講座オナシャス

929 :名前は開発中のものです。:2013/01/03(木) 15:41:51.72 ID:hxpfY6De
趣味でPCで作ってるならなんでもいいよ。
自分のPCで動けばいいんだから。

でもプロ目指すなら他のプラットフォームに
移植しやすい設計にしとけって話。

930 :名前は開発中のものです。:2013/01/03(木) 15:43:19.76 ID:BC6tD7as
>>927
お前誰だよ?w、パターンて何だよ?
認めていないんだが。
仕様の話に向かわせているのはそっちだろ?
俺の時間を返せ。
新年早々、やれやれだぜ

931 :名前は開発中のものです。:2013/01/03(木) 15:52:10.66 ID:Qmf3rDAa
>>930
ヒープの使用が駄目だというのが分かる、自前のフラグ管理とやらのコードを提示すれば解決するよ。
本当に出たら間違いだったと認めるし、非礼を詫びもするよ。
ほら時間がもったいない。

と、こう煽るのもいつものパターンで、絶対に出てこないのもいつものパターン。
だいたい2chにいる人間ならこのパターンは見ているだろう。

ここであきらめの悪い人間のパターンは、コードを提示せずに延々と認めずにいいわけを繰り返すんだよね。
同一人物では無いと思うんだけど、なんでこうも同じテンプレートなんだろう?

932 :名前は開発中のものです。:2013/01/03(木) 16:19:06.79 ID:BC6tD7as
お前に礼儀など期待していない。思いあがるな。
同一人物とやらによろしくな。

933 :名前は開発中のものです。:2013/01/03(木) 16:27:39.34 ID:Qmf3rDAa
>>932
私は間違いだと証明されたら認める用意はあるってだけだよ。

でも君は何があろうと絶対に認めるつもりは無いんだろう。
かといって対抗するソースを出すわけでも無く、
認めたくないからいいわけを繰り返す。

最初の方で言った通りのパターンになっただろう?
君は見事にそのテンプレートにはまった人間なんだよ。

これもお決まりパターンなんだけど一応。
断言する、いいわけは出ても絶対に実働するソースは出ない。

934 :名前は開発中のものです。:2013/01/03(木) 16:41:15.40 ID:1RVPLY2V
説明してることはまともそうなのに、余計な煽り語を入れて損するパターン。

935 :名前は開発中のものです。:2013/01/03(木) 16:47:17.14 ID:fDDq8dLI
どっかのチャットで二人で話し合ってろよマジ迷惑

936 :名前は開発中のものです。:2013/01/03(木) 16:49:48.18 ID:Qmf3rDAa
ろくに検証しもせずに、脳内ソースで嘘偽りを並べ立ててる人間を見ると
すぐにカッとなるのはその通り。
得をすることは無いだろうね。

937 :名前は開発中のものです。:2013/01/03(木) 16:56:04.75 ID:BC6tD7as
>>933
ソース出さなきゃ認めないって、ちょっと違うんじゃねえの。
しかもお前の提示したソースの原型は、非常に単純な例だったよな?
実際には継承もあれば包含もある。コンストラクタ・デストラクタも走る。
「想定範囲内の環境で、想定範囲内の仕様が満たせるから正しい」ってのは、
デメリットの及ばない範囲にとどめましょうってしてるだけだろ?
つまりデメリットを認めてデメリットから逃げた仕様に収まってるんだよ。

938 :名前は開発中のものです。:2013/01/03(木) 17:04:02.50 ID:Hs6nIL6e
俺はこういう殺伐とした流れ好きだな。ノスタルジックな香り

939 :名前は開発中のものです。:2013/01/03(木) 17:10:10.03 ID:1qjfamGg
こういう俺にもわかるような話なら良いんだけど
たまに自分には理解できないようなレベルが高そうな内容でドンパチやられると置いていかれる
勉強のチャンスでもあるから良いんだが

940 :名前は開発中のものです。:2013/01/03(木) 17:15:03.03 ID:Qmf3rDAa
>>937
ほら、ソースを出さずにいいわけパターンでしょ。
なんでそんなに期待通りなんだろう。

これだけ何度も今後の行動を書いてあったのに、
その通りにしか動けない悲しさ。

941 :名前は開発中のものです。:2013/01/03(木) 17:17:35.51 ID:Hs6nIL6e
>>937
>「想定範囲内の環境で、想定範囲内の仕様が満たせるから正しい」ってのは、
>デメリットの及ばない範囲にとどめましょうってしてるだけだろ?
>つまりデメリットを認めてデメリットから逃げた仕様に収まってるんだよ。

PCの場合、そのデメリットが及ぶ状況を引っ張ってくるのは難しいと思うなぁ
特にこのスレの場合、ざーっと流し読みしてみた限り、個人制作の学生さんが
ターゲットぽいし。UEとか重量級のゲームエンジンを使わない古風というか
こじんまりした素朴な組み方してそうなのが多いみたいだし

942 :名前は開発中のものです。:2013/01/03(木) 17:34:59.31 ID:WKW52K/b
>>941
逆に言えば個人製作程度のものならそんな意識する必要ないのかな
パッケージで出すならパフォーマンスを最大限出す方法を使わない理由はないんだろうけど

943 :名前は開発中のものです。:2013/01/03(木) 17:36:35.46 ID:ADeGFW0Z
お前らまだやってたのか。
流し読みしたが話もかみ合ってねーし。

ほんと無駄に一日過ごしてしまったな

944 :名前は開発中のものです。:2013/01/03(木) 17:46:53.13 ID:lNTqjEnd
なんか、正月早々荒れてるなー。
まぁ白味噌のお雑煮でも飲んで落ち着け。

945 :名前は開発中のものです。:2013/01/03(木) 17:48:16.32 ID:1qjfamGg
>>944
雑煮が味噌汁とかwww そっちの方が荒れるわ

946 :名前は開発中のものです。:2013/01/03(木) 17:50:27.42 ID:Qmf3rDAa
>>941
重量級のゲームエンジンなんか使ったら、
それこそヒープの確保なんて大海の米一粒になってしまうから、
あえてそういう想定にしたんだけどね。

947 :名前は開発中のものです。:2013/01/03(木) 17:56:03.83 ID:BC6tD7as
>>941
確かに難しいみたいだな。

>>940
ああ、全くだ。

948 :名前は開発中のものです。:2013/01/03(木) 18:16:40.33 ID:BC6tD7as
リンク間違えたwww
>>940>>943ねwww

949 :名前は開発中のものです。:2013/01/03(木) 18:53:17.89 ID:WKW52K/b
とりあえず断片化の弊害をひとつ
int1億個分の配列用意して添字0~10万までインデントするプログラムと
添字を1000ずつ増やして10万回インデントするプログラムを比べると
断片化したときにどれくらい実行速度おそくなるか見れる

かなり極端な例だけどねw

950 :名前は開発中のものです。:2013/01/03(木) 19:09:21.48 ID:lNTqjEnd
>>945
ほざきやがれ。白味噌こそ至高。超はんなり。

951 :名前は開発中のものです。:2013/01/04(金) 17:45:46.76 ID:oXJzELqx
インデント・・・?

952 :名前は開発中のものです。:2013/01/04(金) 18:50:01.70 ID:/Y1k54OE
かなり極端なインクリメントだけどねw

953 :名前は開発中のものです。:2013/01/04(金) 20:21:35.41 ID:1LQvHzZA
>>951
素で間違えたわw

954 :名前は開発中のものです。:2013/01/05(土) 05:55:13.90 ID:blAJcoX/
#include <iostream>
class Inner{
public:
void delete_self(){
//delete this; //自身をdelete
//this = NULL; //自身をNULL(左はエラー)
};
};
class A{
public:
A(){obj = NULL;};
Inner* obj;
};
int main(){
A a;
a.obj = new Inner;
//delete a.obj; //a.objをdelete
//a.obj = NULL; //NULLを代入
a.obj->delete_self(); //a.obj内で自信をdelete,更にNULLを代入したい
return 0;
}

クラスAのメンバInnerクラスをInnnerクラス内部からdeleteしてNULLを代入したいのですが
そういったことはできるのでしょうか?
できるのであれば記述方法を教えていただきたいです。

955 :名前は開発中のものです。:2013/01/05(土) 07:07:27.25 ID:jKk56rfs
>>954
thisは自身のアドレスだから変更出来ないし、仮に出来たとしてもobjの値は変わらないから意味がない
innerに**selfでも定義してobjのアドレス渡せば出来なくもないと思うけど

普通にA内でやればいいんじゃないの?

956 :名前は開発中のものです。:2013/01/05(土) 10:39:03.29 ID:PaEmLOIH
>>954
俺も>>955に同意だなぁ
文法的には可能だけど、人の道に外れてる

957 :名前は開発中のものです。:2013/01/05(土) 10:40:40.98 ID:DL/1aMkT
スマートポインタにしない理由が無い

958 :名前は開発中のものです。:2013/01/05(土) 23:36:14.70 ID:6cav/N/u
>>954
まずはメンバ関数名をgedatsu()にするんだ

959 :名前は開発中のものです。:2013/01/06(日) 11:08:11.14 ID:gKY4QWAo
>>954
その為のスマポじゃ?

960 :名前は開発中のものです。:2013/01/06(日) 11:41:48.27 ID:wNZdSJOn
スマートポインタっていうのは知らなかったです
調べてみますありがとうございました。

961 :954:2013/01/06(日) 11:43:32.66 ID:wNZdSJOn


962 :名前は開発中のものです。:2013/01/06(日) 15:11:40.22 ID:jfHdCFct
>>949
確かに3ms程度が計測出来た。

>>954
解決したのか。
>Innnerクラス内部からdeleteしてNULLを代入
って意図がよく分らんな。
親の変数を、子が直接いじれるとか、なんというか発想が「次世代型高級言語」だなw
しかし、そもそもその例でも外部からトリガしてるじゃん。

963 :名前は開発中のものです。:2013/01/07(月) 12:37:52.55 ID:Ypj77PMX
DWMに詳しい方いらっしゃいましたら教えてください。
DwmFlush()にて同期を取っているのですが
ウィンドウサイズが一定以上になるといきなり30FPSに落ちてしまいます。
PCの性能的には余裕で60FPS出そうなのですが
なぜこのように制限されてしまうのでしょうか?

964 :名前は開発中のものです。:2013/01/07(月) 20:49:43.13 ID:McpttzCQ
スマポは自殺したい場合の根本的解決にはならん気がするのだが
サンプルソースからはなんで自殺したいのかがわからんから
そもそも自殺する必要あるのかもわからんけど

965 :名前は開発中のものです。:2013/01/07(月) 20:57:58.06 ID:0sh5Q82W
外部からメソッド呼んでるし自殺の意味が無いから管理をスマポに任せろて事だろ

966 :名前は開発中のものです。:2013/01/07(月) 21:22:23.82 ID:l3WjGBS1
よう分からんけど、難しそう

967 :名前は開発中のものです。:2013/01/08(火) 09:00:27.88 ID:z802fMcU
難しい

968 :名前は開発中のものです。:2013/01/08(火) 09:52:47.14 ID:kZxqHJAA
sharedとweakで安全に自殺出来ないかね?
自分自身のshared持っといて参照側はweak使うとか

969 :名前は開発中のものです。:2013/01/08(火) 14:06:16.49 ID:ubaFj8tR
thisをshared_ptrに変換できるクラスを作るには特殊な手順が必要だった気がする

970 :名前は開発中のものです。:2013/01/08(火) 20:56:20.18 ID:qf9zAEDF
C言語でゲームを作ってみようと思ってるんですが、
おすすめのゲームプログラムの本はありませんか?
私は8年くらい前にプログラムを少しだけやっていたレベルです。
今ではほとんど忘れてしまったので、
もう一度、初めからやろうと思っています。

971 :名前は開発中のものです。:2013/01/08(火) 21:05:48.29 ID:fs6IBqjX
初めからやるゲームプログラミングの本なんてない。
C言語本からやりなさい。

972 :名前は開発中のものです。:2013/01/08(火) 21:10:40.95 ID:uboPdkfh
14歳からはじめるわくわくゲームプログラミング

973 :名前は開発中のものです。:2013/01/08(火) 21:14:23.55 ID:ubaFj8tR
昔やってたならどうかわからないけど
CとC++の区別もわからない状態で「C言語でやる」って言ってるのであれば
C++の概要を把握してもう一回どちらの言語でやるか考え直すべきだと思う

それとは別の問題で、スキルアップや勉強目的ではないのに
プログラミングやろうとするのは止めたほうがいいような気がする。
ただ単にゲームを作りたいだけならエディタを漁ってプログラミングにかける時間を
ゲームデザインの勉強に割いたほうが良いと思われる。
その場合、プログラミングするにしても最悪C#にすべき

974 :名前は開発中のものです。:2013/01/08(火) 21:23:35.20 ID:Ko64W/I0
ゲームプログラミングにもよるからなぁ。
まさかコマンドラインでは満足しないだろうから、
基礎を固めた後にDirectXとか最低でもWindowsSDKとか。
或いはC++/CLIとかUnityとか。
そう考えればルート選択が昔と比べて随分複雑になったなぁ。

975 :970:2013/01/08(火) 21:49:19.65 ID:qf9zAEDF
皆さんありがとうございます
>>973の言った通り、一度言語の概要を把握してから考えて見ます。
私は資格を取るため勉強し、尚且つ趣味で新しく始めようと考えていました。
考えてる時、過去にC言語やってたからそれで行こうと軽い感じで思い今に至りました。
自分が考えてるより難しいこととは思ってもいませんでした。

976 :名前は開発中のものです。:2013/01/08(火) 22:14:46.98 ID:Ns3Bg3Mj
自殺するという手段にそれほどの合理性というか、価値があるとも思えないんだけど

例えばCOMなんかではそな仕組み上、delete thisは頻出のフレーズだったけど
このスレであがってる自殺したいケースというと、例えば>>856あたりかな?

あえて自殺するのは単に美醜の感覚なのかな

977 :名前は開発中のものです。:2013/01/08(火) 22:18:08.22 ID:Ns3Bg3Mj
ごめん>>976はアンカー忘れ。>>968宛て

978 :名前は開発中のものです。:2013/01/08(火) 22:50:34.51 ID:OVw8/7Oj
実はフレームごとに生成・消去(自殺)するとか、
どういう構造で管理してるのかイマイチよくわからんかったんだが、
オブジェクトをdeque構造で管理しているならあり得るかとも思った。
それとも配列で、入れ替え&ループカウンタずらしでもしてるんかな。
マシン性能に依存したタスクシステムってわけだな。

979 :名前は開発中のものです。:2013/01/08(火) 23:01:47.84 ID:dU9PHmtG
C言語ってことは組み込み系で働きたいの?

980 :名前は開発中のものです。:2013/01/09(水) 03:22:46.66 ID:cCOUD0pQ
>>975
趣味でやるならCとDXライブラリ使って
>>972にもでてる本(昔のは誤植が多い)で
とりあえずゲームを作ってみるのがいいと思う
作ってあとで
>>974の言うようにいろいろある選択肢を選んでもいいし
>>973のようにエディタを使うでもいいし
難しく考えるとなかなか前に進まず飽きてやめてしまう気がする
足りないと思った所をその都度足していけばいいと思う

981 :名前は開発中のものです。:2013/01/09(水) 15:07:42.84 ID:1AzVNy17
>>979
あまり一般に知られてないけど、Unix系の業務インフラかもしれん

982 :970:2013/01/09(水) 21:42:18.38 ID:+PQ0+evL
>>959
趣味にしようと思っています。C言語を選んだのは、
昔、本屋でC言語の本を見つけ興味が沸き購入し、
C言語を少しやったからです。
>>980
とりあえず>>972の本を読んでみようと思います。

983 :名前は開発中のものです。:2013/01/09(水) 21:46:19.84 ID:FusMjSdm
>>982
その本は俺もオススメだけど
ポインタや構造体がわからないレベルなら入門書を買うべきだと思う

984 :名前は開発中のものです。:2013/01/09(水) 21:50:40.72 ID:JGxAWztX
ブックオフとか古本屋に200円とか300円とかでC言語の本売ってるよ

985 :名前は開発中のものです。:2013/01/09(水) 22:17:23.62 ID:KXkEtFhK
おや、こんなところに105円で入手したリッチなカニチャーハン本が。

986 :名前は開発中のものです。:2013/01/09(水) 22:19:39.47 ID:SHei6O4/
>>976-978

>>856のタスク処理ってのはよく知らんので、適当に当てずっぽうで敵とか弾とか
自機みたいなもの、ゲーム内のエンティティをC++で記述する話と推測してみると
恐らくゲーム内での外部入力(押し倒されただの何かぶっかけられただの)に対する
ゲーム内での応答(振る舞い)を記述する部分だと思うんだけど、こういう部分って
自身のメモリ操作とか詳細な手続きにはあんま関心ないと思うんだよね

例えば、自身が生成された時にどのようにメモリを割り当てられたのか
とか、どういうコンテナにどういう目的で自身が格納されたのか、とか
自身が役割を終える時はどういうコンテナから自信を削除するのか、とか
自身が割り当てられてるメモリは自身で開放してから処理返せよな、とか

裏方の仕事に深く関与→外部の仕組みを詳細に知りすぎ(アクセス権が強すぎ)
何でも詳細に記述できる代わりに、機能や責任が交錯・混乱してそうな予感は
するね。もう少し機能分割(責任分担)できるんじゃないかなとは思うね

987 :名前は開発中のものです。:2013/01/09(水) 23:57:51.86 ID:n2uU3mE6
削除する対象が結果として自分になるとか言ってるし
わりと特殊なスタイルなんじゃないかなぁ

988 :名前は開発中のものです。:2013/01/10(木) 03:02:30.39 ID:JHYtLrYV
>>983

いやぁ、ポインタや構造体を理解するよりまず動くものを作れるようになるほうが
モチベーションは保てると思う。

そこで満足しちゃうと俺みたいに成長しないけど。

989 :847:2013/01/10(木) 09:47:57.02 ID:PPN997+E
私の質問がまだ話題に残ってしまってるようなので、軽く事情を説明しといた方がよかったかな。

どういうときに自殺したくなるのかという話なんだけど、リストアップのときに必要になったんだ。
SLGで、世界がいくつかの地方に分割されている。各地方にはたとえば戦士、魔法使い、僧侶なんかの職業の人がいる。
ただしその地方にはある職業の人がいないかもしれないし、100人いるかもしれない。
で、その地方の詳細データを確認しようと思ったときに、各職業毎にまとめて一覧を表示したかった。
もちろん、その地方にその職業の人が何人いるかを確認して、結果を予測してからウィンドウを作り始めてもいいんだけど、それはちょっと気持ち悪い。
だから、とりあえず、「何人いるか知らないし、もしかしたらだれもいないかもしれないけど、適当に作り始めちゃってよ」ということにした。
それで、該当者が誰もいなかった場合にはその欄自体を消したかった。
もっと別な方法はあるだろうけど、該当者が多すぎた場合は新しい小ウィンドウつくって行を分けて表示したりとかの都合上、私の技術力だとちょうどいいレベルの方法だったんだ。

990 :名前は開発中のものです。:2013/01/10(木) 18:18:19.92 ID:+tuKUmyj
ゲーム内のキャラクターに対応したオブジェクトに処理詰め込んでるような設計だと自殺したいこともあるんじゃないかな
例えば被弾して削除したいときに、被弾の処理をそのオブジェクト自身がしてたらそのまま自分消したいよね

でも管理するクラスちゃんと作り込んでたら自殺する場面ってなさそうだな

991 :名前は開発中のものです。:2013/01/10(木) 18:57:49.60 ID:nRd29hG1
管理クラスがリストで保持してるアクターの位置を1つずつ更新して
終わったら1つずつ衝突判定して衝突があったら衝突イベントを
衝突イベントキューに予約しておいて全部の判定が終わったら
予約したイベントの中で重複したり無意味になるものを排除してから
キューのイベントを1つずつこなしていって消滅するやつがいるなら
消滅フラグをたててキュー内のイベントが全部終わったら消滅フラグが
立ってるやつを消滅させるとすると自殺させる暇がないな

992 :名前は開発中のものです。:2013/01/10(木) 22:03:08.63 ID:NUTO9jIe
どうでもいいが「自殺したい」とか読むとドキッとするw

993 :名前は開発中のものです。:2013/01/11(金) 12:11:15.33 ID:pXVVNmWd
俺もビックリした、自キャラがか
プログラミング切羽詰まって死にたくなっちゃったのかと

994 :名前は開発中のものです。:2013/01/11(金) 13:33:24.75 ID:T8efEkTC
正確には自殺させたいだよな。

995 :名前は開発中のものです。:2013/01/11(金) 14:03:00.02 ID:1OLgzzOv
それもイジメみたいで嫌だな

996 :名前は開発中のものです。:2013/01/11(金) 14:15:12.07 ID:yWv9+M/A
クラスのメンバーが自分の子を殺す、とか定番ジョークだよね

997 :名前は開発中のものです。:2013/01/11(金) 18:22:09.14 ID:pM3KIWAz
で、次スレは?
携帯で立てるのは面倒なんだな

998 :名前は開発中のものです。:2013/01/11(金) 19:12:00.91 ID:xdIUMDA+
しょうがないにゃあ

http://toro.2ch.net/test/read.cgi/gamedev/1357899040/

999 :名前は開発中のものです。:2013/01/11(金) 19:58:36.60 ID:TAS2BFVS
ありがたいにゃあ

1000 :名前は開発中のものです。:2013/01/11(金) 20:07:19.81 ID:niGMKkbJ
1000ならC++が廃れてもう少し普通の人間に扱い易い言語に置き換わる

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

237 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)