ゲームプログラムなら俺に聞け5
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/02/28(日) 02:00:18一応質問も受け付けます。
【前スレ】
ゲームプログラムなら俺に聞け4
http://pc12.2ch.net/test/read.cgi/tech/1255833802/
【過去スレ】
ゲームプログラムなら俺に聞け
http://pc12.2ch.net/test/read.cgi/tech/1230890476/
ゲームプログラムなら俺に聞け2
http://pc12.2ch.net/test/read.cgi/tech/1247292664/
ゲームプログラムなら俺に聞け3
http://pc12.2ch.net/test/read.cgi/tech/1251324391/
0002デフォルトの名無しさん
2010/02/28(日) 02:07:590003デフォルトの名無しさん
2010/02/28(日) 02:46:58ポリシークラスとか共通のメソッドを関数化とか
テンプレート使えば解決するけどまだ先の話じゃね
今は研究より動くの作ってほしい
0004デフォルトの名無しさん
2010/02/28(日) 02:48:34>>作りがいのあるプログラミング初級者向けのゲームって無い?
パイプドリーム(水道管ゲーム)は、作るのが難しくなくて、自分で
プレイしてもそこそこ面白いのでオススメ
http://members.chello.at/theodor.lauppert/games/pipe.htm
ここにも、初心者でも作れるみたいなことが書いてあるし
0005デフォルトの名無しさん
2010/02/28(日) 03:31:040006デフォルトの名無しさん
2010/02/28(日) 03:35:440007デフォルトの名無しさん
2010/02/28(日) 08:27:52懐かしいなw
0008デフォルトの名無しさん
2010/02/28(日) 09:47:130009デフォルトの名無しさん
2010/02/28(日) 10:21:100010デフォルトの名無しさん
2010/02/28(日) 11:27:37それらの知識が皆無で、どの順に習得していけばいいか教えて下さい
0011デフォルトの名無しさん
2010/02/28(日) 11:48:310012デフォルトの名無しさん
2010/02/28(日) 12:06:100013デフォルトの名無しさん
2010/02/28(日) 12:39:32おまいら最強の将棋プログラムしてみろよ part7
http://pc12.2ch.net/test/read.cgi/tech/1219297117/
0014デフォルトの名無しさん
2010/02/28(日) 12:57:33Winsock2
0015デフォルトの名無しさん
2010/02/28(日) 13:09:56ネットワークプログラミング相談室 Port25
http://pc12.2ch.net/test/read.cgi/tech/1255459388/
0016デフォルトの名無しさん
2010/02/28(日) 13:49:20NPCは案内役とイベント役だけ
武具を作るジョブとか消費アイテム作るジョブ
各プレーヤーはそれらを作るための素材を集める
モンスター倒すなり拾い集めるなりして
ただ、通常のプレーヤーは素材が材料として使えるか判断できなくて
鑑定専門のジョブとか用意して
各ジョブはジョブレベルが設定されていてレベルが上がらないといい物作れない
また、自由に何度もジョブを途中変更できる
戦闘のプロとして戦士とか魔法使いのジョブがあって
0017デフォルトの名無しさん
2010/02/28(日) 13:53:44ただ各ジョブを極めるためにはかなりの修練が必要で
ちょくちょくジョブ変えてると結果的にどれも中途半端なものになってしまうくらいの修練
商人のジョブも用意して
武具ややアイテムを買い取ったり売ったりできたり
盗賊ジョブでダンジョンのトラップ解除や鍵開けとかできたり
戦闘で功績をあげると、国の騎士とかになれたり
国の騎士のイベントとして、国対国の騎士同士の乱戦イベントとかあったり
0018デフォルトの名無しさん
2010/02/28(日) 13:57:190019デフォルトの名無しさん
2010/02/28(日) 14:02:480020デフォルトの名無しさん
2010/02/28(日) 14:12:360021デフォルトの名無しさん
2010/02/28(日) 14:55:45最高のゲーミングマシンを組んでも実現不可能だから諦めろ
おまえはまるでセガの様に時代を先取り過ぎるんだよ
0022デフォルトの名無しさん
2010/02/28(日) 14:58:060023デフォルトの名無しさん
2010/02/28(日) 17:46:16完全なロールプレイなら、ジョブとか必要なくて各人のプレイに任せればいいのでは?
0024デフォルトの名無しさん
2010/02/28(日) 17:55:34「戦士です」
ありえねーwww
0025デフォルトの名無しさん
2010/02/28(日) 18:01:19何日くらいでプログラム習得しました?
0026デフォルトの名無しさん
2010/02/28(日) 18:11:43つまりゲームプログラムなんて要らんかったんや!
0027デフォルトの名無しさん
2010/02/28(日) 18:19:282週間で言語の基本的な構文を覚えて、更に1週間で2Dの簡単なゲームを作った。
どのレベルまで習得するのかにもよるけど最初はこんな感じだった。
0028デフォルトの名無しさん
2010/02/28(日) 18:26:07ありがとうございます
もう2週間たつけど難しいっすね・・
0029デフォルトの名無しさん
2010/02/28(日) 18:28:243日
0030デフォルトの名無しさん
2010/02/28(日) 18:35:33やっぱ理系っぽいほうがいいのかな
0031デフォルトの名無しさん
2010/02/28(日) 18:41:300032デフォルトの名無しさん
2010/02/28(日) 20:05:20コンパイラインストールしてhello world実行したときから始まるんだ。
0033デフォルトの名無しさん
2010/02/28(日) 20:33:131日目の締めの定番はじゃんけんゲームだよな
0034デフォルトの名無しさん
2010/02/28(日) 20:59:30脳味噌の期限が切れてるな
0035デフォルトの名無しさん
2010/02/28(日) 21:07:36そんなに簡単に作れたのか?
羨ましいw
0036デフォルトの名無しさん
2010/02/28(日) 21:13:56友達いないでしょ
0037デフォルトの名無しさん
2010/02/28(日) 21:39:13多少の適正はあるかもしれないけど初級レベルならほとんど関係ないよ。
2Dのミニゲーム程度なら誰にでも作れる。
HSPプログラムコンテストで最優秀小学生賞というのが用意されているくらいなので・・・
0038デフォルトの名無しさん
2010/02/28(日) 21:42:44さては小学生のふりをして応募したなw
0039デフォルトの名無しさん
2010/02/28(日) 21:46:220040デフォルトの名無しさん
2010/03/01(月) 00:47:47小学生がBASIC +Z80マシン語でゲームプログラミングというのはわりと逸般的だった。
0041デフォルトの名無しさん
2010/03/01(月) 00:52:130042デフォルトの名無しさん
2010/03/01(月) 00:54:54小学生でタイニーゼビウスっていうのはたしかに逸般的かもw
0043デフォルトの名無しさん
2010/03/01(月) 01:08:200044デフォルトの名無しさん
2010/03/01(月) 03:28:480045デフォルトの名無しさん
2010/03/01(月) 05:20:330046デフォルトの名無しさん
2010/03/01(月) 08:05:15ひとまずなんかプログラムしたって感じがした。
今頃の人で C から始めると、構造体やってポインタやって、って、
なんの役に立つのかも分からず達成感が得にくそうに思う。
俺が小学生の頃にアセンブラやったときが、そんな感じだった。
「一通りニモニック使ってみたけど、そんでどうやって画面に何か描くの?」
って。
VDP なるものを知るのは高校に入ってからだった。
0047デフォルトの名無しさん
2010/03/01(月) 08:16:41PC-9801 なら BASIC 側で初期化して VRAM に何か書いてやれば絵が見えたな。
あの敷居の低さは良かったと思う。
0048デフォルトの名無しさん
2010/03/01(月) 10:42:01むしろ今の時代のほうが情報が簡単に手に入るから昔よりずっと楽
0049デフォルトの名無しさん
2010/03/01(月) 11:00:340050デフォルトの名無しさん
2010/03/01(月) 11:08:03>>49
なんで、俺は今でも結構本買うよ。よくも悪くも取っ掛かりになるからね。
後で悪例だったと知るのもまた勉強。
0051デフォルトの名無しさん
2010/03/01(月) 11:55:39それなりの規模の2Dシューティング作るには半年くらいかかった
0052デフォルトの名無しさん
2010/03/01(月) 12:37:14各オブジェクトがすべてのオブジェクトのリストへの参照を持ってるの?
それとも管理者か何か用意して、今ゲームルール的に通信可能なオブジェクトを毎回検索してイテレータで返すとかしてるの?(シューティングだったら接触しているのを検索、とk)
0053デフォルトの名無しさん
2010/03/01(月) 13:24:27Cと画面周りを同時に始めるのは敷居高いわ
0054デフォルトの名無しさん
2010/03/01(月) 19:55:08お年寄りの偉そうな態度は禁止です
0055デフォルトの名無しさん
2010/03/02(火) 20:58:130056デフォルトの名無しさん
2010/03/02(火) 21:25:010057デフォルトの名無しさん
2010/03/02(火) 21:50:03そこ辿ってくる光の玉(サイバーテロ)がやってくるから
目標位置のとこのパソコンに撃退プログラムをセットするとか
0058デフォルトの名無しさん
2010/03/02(火) 22:12:22どっちでもいいよ。
ただ、リストに登録されている順番によって結果が変わるような処理に
なってると後々面倒だったりする。
だから、システム側がオブジェクト間のインタラクションを一括で調べて、
その結果をオブジェクトに通知するような感じのほうが良い。
0059デフォルトの名無しさん
2010/03/02(火) 22:49:56オブジェクトが他のオブジェクトを直接参照するのは止めた方が良い。
依存関係が増えると複雑になってバグの原因になり易いので。
0060デフォルトの名無しさん
2010/03/03(水) 00:42:060061デフォルトの名無しさん
2010/03/03(水) 00:49:25オブジェクト指向ってやっぱ便利?昔より作りやすい?
あ、でもそんなに昔からプログラミングしてる人って稀少か
オブジェクト指向ってもう20年以上ありそうだし
0062デフォルトの名無しさん
2010/03/03(水) 01:29:41コンシューマー機でC++が浸透したのは10年前くらいからだと思う。
CからC++に移行して便利になったか?おれはかなり否定的。
0063デフォルトの名無しさん
2010/03/03(水) 02:39:27まあ出来ること増えてんだから間違った使い方しなきゃ普通に便利になるよ
0064デフォルトの名無しさん
2010/03/03(水) 03:43:270065デフォルトの名無しさん
2010/03/03(水) 07:36:350066デフォルトの名無しさん
2010/03/03(水) 07:51:540067デフォルトの名無しさん
2010/03/03(水) 08:15:12今でもC言語で始めてC++に移行する人は多いよ。
オブジェクト指向は理解するのに時間かかるけど、一度覚えてしまえばもうC言語に戻ろうとは思えないよ。
0068デフォルトの名無しさん
2010/03/03(水) 10:14:030069デフォルトの名無しさん
2010/03/03(水) 10:24:430070デフォルトの名無しさん
2010/03/03(水) 10:39:35SDLとOpenGL?を使うのが一般的なのか? もうちょっと楽なライブラリとかあれば。
0071デフォルトの名無しさん
2010/03/03(水) 10:43:530072デフォルトの名無しさん
2010/03/03(水) 10:48:09まずフレームワークの意味が違う
0073デフォルトの名無しさん
2010/03/03(水) 11:01:48一般的って意味が判らない
需要ってことなら普通はVisualStudioで開発すんじゃないの?
gccなんてドマイナーな非MS-OSの組み込み用途ぐらいしか出番ないっしょ
動画とか扱い出したらSDLなんか使ってられんよ
0074デフォルトの名無しさん
2010/03/03(水) 11:04:11gccがドマイナーって、よほどのド素人だな
0075デフォルトの名無しさん
2010/03/03(水) 11:07:44べつにgcc自体がドマイナーとは言ってないけど
gccで使えそうな環境見つけられないんだろ?
gccじゃ誰もやってないんだよ
0076デフォルトの名無しさん
2010/03/03(水) 11:10:22OSは何なの?
非VisualStudioってことはウィンドウズじゃないってこと?
0077デフォルトの名無しさん
2010/03/03(水) 11:11:29お前の世間は狭いな、無知とは恐ろしい
お前はどうせC#しかできないカスなんだろうけど
0078デフォルトの名無しさん
2010/03/03(水) 11:12:43知らんよ俺は
0079デフォルトの名無しさん
2010/03/03(水) 11:21:070080デフォルトの名無しさん
2010/03/03(水) 11:23:46OSは窓だけどIDEがnetbeansとかeclipse。
こーいう環境で開発するにゃどーいうのをそろえればいいのやら。
0081デフォルトの名無しさん
2010/03/03(水) 11:30:30コンパイラとエディタ用意すりゃいいだろ
0082デフォルトの名無しさん
2010/03/03(水) 11:40:26窓なら素直にVS使っとけよ
gccで何週間掛かっても無理なことが一瞬で終わるから
0083デフォルトの名無しさん
2010/03/03(水) 11:43:590084デフォルトの名無しさん
2010/03/03(水) 12:37:42VisualC++の問題点はx64でインラインアセンブラを使えない事
どちらもゲーム開発分野であまり問題になるとも思えない
最適化は得手不得手があるのでintelC++等も含めて使い分けるといい
0085デフォルトの名無しさん
2010/03/03(水) 12:48:01みたいな頃があったな
アンチMSな俺カッケー
0086デフォルトの名無しさん
2010/03/03(水) 12:51:200087デフォルトの名無しさん
2010/03/03(水) 14:27:020088デフォルトの名無しさん
2010/03/03(水) 14:36:510089デフォルトの名無しさん
2010/03/03(水) 15:15:310090デフォルトの名無しさん
2010/03/03(水) 15:21:220091デフォルトの名無しさん
2010/03/03(水) 15:22:080092デフォルトの名無しさん
2010/03/03(水) 15:25:330093デフォルトの名無しさん
2010/03/03(水) 15:27:18良い出来のものはフリーで公開したいくらいです
しませんが
0094デフォルトの名無しさん
2010/03/03(水) 15:27:28いろいろあって何が何だか
0095デフォルトの名無しさん
2010/03/03(水) 15:36:370096デフォルトの名無しさん
2010/03/03(水) 15:44:40どんな妄想ライセンスに同意したんだ?
0097デフォルトの名無しさん
2010/03/03(水) 15:46:000098デフォルトの名無しさん
2010/03/03(水) 15:56:14ライセンス無視するような奴は許せない
0099デフォルトの名無しさん
2010/03/03(水) 15:56:220100デフォルトの名無しさん
2010/03/03(水) 16:43:43グラフィックAPIはWindowsではDirectX、それ以外ではOpenGLが主流。
ゲームライブラリは海外ではIrrlichtとOrgeが人気らしい。
国内では自作してる人が多いので主流と呼べるものは無いけどDXライブラリとSeleneが頑張ってるかな。
何か勘違いしていそうだけどどのIDEでも使えるよ。
ちなみにIDEはVisualStudioが主流です。
0101デフォルトの名無しさん
2010/03/03(水) 16:49:160102デフォルトの名無しさん
2010/03/03(水) 16:49:570103デフォルトの名無しさん
2010/03/03(水) 16:59:170104デフォルトの名無しさん
2010/03/03(水) 19:51:290105デフォルトの名無しさん
2010/03/03(水) 21:36:37dxlibは信者が必死に布教してるからどこでも名前見るけど
0106デフォルトの名無しさん
2010/03/03(水) 21:47:32GDIの代わりなんでしょこれ?
0107デフォルトの名無しさん
2010/03/03(水) 22:25:320108デフォルトの名無しさん
2010/03/03(水) 22:27:180109デフォルトの名無しさん
2010/03/03(水) 22:48:350110デフォルトの名無しさん
2010/03/03(水) 22:56:04ゲーム性で勝負ですよ
0111デフォルトの名無しさん
2010/03/03(水) 23:54:32star trekを復刻するのかYo!
0112デフォルトの名無しさん
2010/03/04(木) 00:47:57あれをVisualStudioからVisualC++で使う。
Windowsはそれで万全。
0113デフォルトの名無しさん
2010/03/04(木) 09:36:39他の言語やOSに移行することを考えるとその選択肢はないし、
逆に移行しないならDirectXの機能をバリバリ使ってるようなものを選んだほうがよいような
要するに半端モノ
0114デフォルトの名無しさん
2010/03/04(木) 11:06:490115デフォルトの名無しさん
2010/03/04(木) 11:20:310116デフォルトの名無しさん
2010/03/04(木) 11:40:50> 他の言語やOSに移行することを考えるとその選択肢はないし、
他の言語という事を考えた時には、VB.NETやC#という選択肢もでてくる。
他のOSに移行する事を考えても、ソースコードレベルで互換性を維持できる。
十分ありうる選択肢だよ。
0117デフォルトの名無しさん
2010/03/04(木) 13:29:24意味わからんnull指定が多いこと
自分で全てまかないたいならGLがいい
面倒だからdirectxで始めたけど、結局ほとんど自分で用意してしまったわ
0118デフォルトの名無しさん
2010/03/04(木) 13:38:520119デフォルトの名無しさん
2010/03/04(木) 13:49:47あるあるw結局理解できる形にWrrapしたり、独自関数を作ってしまう
0120デフォルトの名無しさん
2010/03/04(木) 13:59:110121デフォルトの名無しさん
2010/03/04(木) 14:11:07すっとろいかどうかは結局GPUに依存しちまうのであんまり議論する意味は無い。
0122デフォルトの名無しさん
2010/03/04(木) 14:33:34じゃあ移植性の低いDirectXを皆が使う理由は何なの?
0123デフォルトの名無しさん
2010/03/04(木) 14:37:17情報やサンプルの量、ドライバの対応度、他諸々でd3dが全て勝ってる
今時ゲームにglを使うのは老害と極度のc++アレルギー持ちと俺みたいな変態だけ
0124デフォルトの名無しさん
2010/03/04(木) 14:42:34オーサリングソフトとかで作ったモデルを直読みできるAPIが無いからだな…
directXはそこらへん優秀というか便利なAPIが沢山あるから、普通の開発者はDX選ぶ。
0125デフォルトの名無しさん
2010/03/04(木) 15:12:08だが環境依存する
生のポインタ渡したくない人はDXは向いてない
ストレスが溜まる
0126デフォルトの名無しさん
2010/03/04(木) 15:19:49もはやC言語扱うのに支障が出るレベル
0127デフォルトの名無しさん
2010/03/04(木) 15:23:34こうなったらバグ、ああなったらバグで心労が半端ないんです
0128デフォルトの名無しさん
2010/03/04(木) 15:37:27極度のc++アレルギーだからといってOpenGLを使う理由は何も無い
->lpVtbl->
0129デフォルトの名無しさん
2010/03/04(木) 16:02:49エラー privateを参照できません
0130デフォルトの名無しさん
2010/03/04(木) 16:16:59C/C++には標準の描画機能は無いので何かしらの描画APIが必要になる。
必然的にDirectXもしくはOpenGLを覚えながらゲームを作ることになるよ。
一昔前まではC++/DirectXの組み合わせが定番だったけど、最近はiPhoneやブラウザゲームも普及してきて状況は少し変わってきた。
WindowsでもC++では生産性が悪いということで他の言語が使われたり、ゲームエンジンが使われることも増えてきたし。
0131デフォルトの名無しさん
2010/03/04(木) 17:19:070132デフォルトの名無しさん
2010/03/04(木) 20:17:12ポトペタで最初のプログラムが出来上がればいいのに・・・・
どれもこれも関数ばっか増やしてわけわからん
0133デフォルトの名無しさん
2010/03/04(木) 21:04:07次々にAPIをフルモデルチェンジしちゃうところかなー
>>132のいうところも同じだろうし
確かに、GLのような変えないことによる弊害もよくわかるんだが・・
ああでも、XP+D3D9は寿命長くて良かったかな
こんぐらいのペースならいいかなぁ
0134デフォルトの名無しさん
2010/03/04(木) 21:17:53その要求を叶えてくれるのがゲームエンジン。
UDK、Unity、TorqueGameEngine、Gamebryo、CryENGINE、etc...
あとFlashで作るという手もあるな。
0135デフォルトの名無しさん
2010/03/04(木) 21:21:220136デフォルトの名無しさん
2010/03/04(木) 21:23:22そうです。
0137デフォルトの名無しさん
2010/03/05(金) 01:00:280138デフォルトの名無しさん
2010/03/05(金) 01:31:130139デフォルトの名無しさん
2010/03/05(金) 06:12:020140デフォルトの名無しさん
2010/03/05(金) 08:25:24C#>Java>>>>>>>>>>C++
使い易さの比較はこんな感じかな。
Javaが使い易かったと言うよりはC++の生産性の悪さを再確認した。
選択肢としては十分ありだとは思うけど少し注意しないといけないこともある。
・パフォーマンスはVMの性能に大きく左右されるので注意。(最近はどの環境でもかなり高速化しているが)
・PureJava環境では当然ながらC++のライブラリは使えないので注意。
・ガーベージコレクションの扱いには慣れが必要。
・演算子のオーバーロードがサポートされていない。
・Windows環境ならJavaよりもC#の方が良い。
0141デフォルトの名無しさん
2010/03/05(金) 08:26:29C#は糞
http://pc12.2ch.net/test/read.cgi/tech/1246520657/
0142デフォルトの名無しさん
2010/03/05(金) 08:50:030143デフォルトの名無しさん
2010/03/05(金) 09:07:49それ以外はあまりいいともいえない。速度は気にならない状況も多い。
0144デフォルトの名無しさん
2010/03/05(金) 10:28:53Cでもオーバーヘッド、速度あげるところはインラインアセンブラ使用するだろ
C++はCよりオーバーヘッドでかいし、C++とか言ってるやつは素人
0145デフォルトの名無しさん
2010/03/05(金) 10:33:510146デフォルトの名無しさん
2010/03/05(金) 10:39:16今時C++なんか使ってるのはマヌケだけw
0147デフォルトの名無しさん
2010/03/05(金) 10:42:190148140
2010/03/05(金) 10:46:30ベンチマークによるとC/C++より5〜15%ほど遅いらしいけど、経験上ではJavaが遅いと感じたことは一度も無いよ。
その程度のオーバーヘッドで問題になるようだとほとんどのPCで動かなくなってしまうので。
それにゲームでボトルネックになり易いのは描画部分なので言語よりもGPUの方が重要になる。
0149デフォルトの名無しさん
2010/03/05(金) 10:50:10マルチプラットフォームで考えればJavaもいいだろう
0150デフォルトの名無しさん
2010/03/05(金) 10:54:000151デフォルトの名無しさん
2010/03/05(金) 11:55:47Cでオーバーヘッド?何が?
C++がCより遅い?なんで?
使い方間違ってるか、うまいコードの書き方を知らなくて
遅くなってるのを言語のせいにしてるだけだろ。
0152デフォルトの名無しさん
2010/03/05(金) 12:01:110153デフォルトの名無しさん
2010/03/05(金) 12:01:160154デフォルトの名無しさん
2010/03/05(金) 12:16:10テンプレートによるインライン化が効果的だから。
でもコードがどうアセンブラに落ちるのかを想像できない奴が結構いる。
自分のコードが遅いのを、C++のせいにするのがいつもの奴らのパターン。
あいつらコピーコンストラクタがいつ呼び出されるのかも把握せずに書いてるからな。
0155デフォルトの名無しさん
2010/03/05(金) 12:21:20ゲーム開発したことない奴ばっかだな
T10000においてPS2の開発ならCのが断然効率いい
まさか素人共はDirectXなんかをあてにしてんじゃないだろうw
0156デフォルトの名無しさん
2010/03/05(金) 12:24:090157デフォルトの名無しさん
2010/03/05(金) 12:28:320158デフォルトの名無しさん
2010/03/05(金) 12:29:160159デフォルトの名無しさん
2010/03/05(金) 13:06:25ネタじゃないなら「Cのが断然効率いい」理由を教えてください。
0160デフォルトの名無しさん
2010/03/05(金) 13:08:38それはそれで苦労人(くろうと)ではあるだろうな
0161デフォルトの名無しさん
2010/03/05(金) 13:48:21詳しくは書けないけど某大手の社内用エンジンもC++だったし。
CEDECでもC++で書かれたスライドがばんばん出てくる。
0162デフォルトの名無しさん
2010/03/05(金) 13:55:280163デフォルトの名無しさん
2010/03/05(金) 14:12:210164デフォルトの名無しさん
2010/03/05(金) 14:18:44(完成が)早い。(実行速度が「速い」わけではない。)
こうですかね!?わかりますん。
0165デフォルトの名無しさん
2010/03/05(金) 14:30:230166デフォルトの名無しさん
2010/03/05(金) 14:39:370167デフォルトの名無しさん
2010/03/05(金) 14:53:060168デフォルトの名無しさん
2010/03/05(金) 14:55:11昔から 60 fps 出そうと思ったら 16 ms しかなかったと思うんですが、最近は違うんですかね?
0169未来人
2010/03/05(金) 14:56:520170デフォルトの名無しさん
2010/03/05(金) 15:03:07スタンドの技みたいですね
0171デフォルトの名無しさん
2010/03/05(金) 15:09:460172デフォルトの名無しさん
2010/03/05(金) 15:15:25いちいち相手にしてるお前も、低能稚拙でどうしようもないカスだな
0173デフォルトの名無しさん
2010/03/05(金) 15:17:010174デフォルトの名無しさん
2010/03/05(金) 15:22:090175デフォルトの名無しさん
2010/03/05(金) 15:23:09他環境に興味ないって時点で終わってるね
低能は底が浅い
0176デフォルトの名無しさん
2010/03/05(金) 15:25:14俺もC++は遅いんじゃないかという偏見が最初はあったけど、
1年くらい使ってみて、C++の特性をちゃんと理解していなかっただけだったということが分ってきた。
ちゃんと特性を理解すればCに劣るところは何もない。
STLが使えるようになったのはここ数年だけど、STLはマジですごい。
機能が強力な上に高速でビビる。
しかし高速化が必要なのは全体ではごく一部。
そういうところだけアセンブラで書くけど、
大半はスピードより開発効率とか、流用性とかの方が重要。
だいたいスクリプト使ってる時点でパフォーマンスがたおちだし。
そういうわけでC言語を使う利点が1つも見いだせない。
速度が遅くて開発効率が悪いんだからいいところがない。
0177デフォルトの名無しさん
2010/03/05(金) 15:32:18大型客船に無断乗船してその後麻薬でも逮捕された某元プログラマーがいてな・・・・
彼が健在なら今頃凶速OSとかコンパイラくらい世に出してただろうなぁ
0178デフォルトの名無しさん
2010/03/05(金) 15:38:33仕事で鬱憤でも溜まってるの?
0179デフォルトの名無しさん
2010/03/05(金) 15:51:35があるのに、このスレってなんであるの
0180デフォルトの名無しさん
2010/03/05(金) 15:56:160181デフォルトの名無しさん
2010/03/05(金) 16:00:130182デフォルトの名無しさん
2010/03/05(金) 16:03:020183デフォルトの名無しさん
2010/03/05(金) 16:38:260184デフォルトの名無しさん
2010/03/05(金) 16:50:13コード保守なんか知ったことじゃ無い
0185デフォルトの名無しさん
2010/03/05(金) 17:37:450186デフォルトの名無しさん
2010/03/05(金) 17:40:06保守しないってこたぁねぇな。
0187デフォルトの名無しさん
2010/03/05(金) 17:51:580188デフォルトの名無しさん
2010/03/05(金) 17:57:450189デフォルトの名無しさん
2010/03/05(金) 17:59:200190デフォルトの名無しさん
2010/03/05(金) 17:59:470191デフォルトの名無しさん
2010/03/05(金) 18:07:430192デフォルトの名無しさん
2010/03/05(金) 18:15:240193デフォルトの名無しさん
2010/03/05(金) 18:16:140194デフォルトの名無しさん
2010/03/05(金) 18:17:25Wiiなら持ってる
0195デフォルトの名無しさん
2010/03/05(金) 18:18:410196デフォルトの名無しさん
2010/03/05(金) 18:24:340197デフォルトの名無しさん
2010/03/05(金) 18:30:480198デフォルトの名無しさん
2010/03/05(金) 19:32:23使えません。
0199デフォルトの名無しさん
2010/03/05(金) 20:35:02state_base *state = new state_a;
〜
state_a->update(this);
〜
ってやつ
これを使ってて思ったんですけど状態が重複する場合ってどうやってるんですかね?
例えば混乱状態と毒状態があったとして、混乱かつ毒を表現するにはどうするのか
愚直に「混乱かつ毒」という状態を新規につくるのか、それとも何らかの方法を使って混乱と毒を合成するのか・・・
0200デフォルトの名無しさん
2010/03/05(金) 20:50:47フラグが立ってたら追加処理入れる感じで
混乱毒以外にも加速とか凶暴化とか石化とか状態後付けもありえそうだし
0201デフォルトの名無しさん
2010/03/05(金) 21:05:110202デフォルトの名無しさん
2010/03/05(金) 21:41:23ステートマシンで管理したら状態が膨れ上がる
0203デフォルトの名無しさん
2010/03/05(金) 23:29:280204デフォルトの名無しさん
2010/03/05(金) 23:33:280205デフォルトの名無しさん
2010/03/05(金) 23:34:440206デフォルトの名無しさん
2010/03/06(土) 01:23:20わかったふりして他人をアホ呼ばわりしてるけどさ、あんたじゃあ今まで何作ったの?
そんなに人に偉そうに言えるぐらいすごいゲーム作ったの?
ど゜うせ理屈ばかりで全くゲーム作ったことがない、技術はあるけどやる気ない、アイデアない
でゲーム作れないとか、そんなやつばかりなんだろ?
ほんと、つまらない人間ばかり集まってるよな。
と、ゲーム開発の素人は思いましたよっと。
0207デフォルトの名無しさん
2010/03/06(土) 01:27:25会社に入れば自分の手がけたゲーム名は出せないってことがわかるぜ
0208デフォルトの名無しさん
2010/03/06(土) 01:45:020209デフォルトの名無しさん
2010/03/06(土) 02:18:58いや、契約なんてあってないようなもんだぜ
こればっかりは入らなきゃわからないだろうなぁ
とにかく自分の一存でこういう情報をどうにかできないってことだけはガチ
0210デフォルトの名無しさん
2010/03/06(土) 02:26:500211デフォルトの名無しさん
2010/03/06(土) 02:50:08DQNはこれだから
0212デフォルトの名無しさん
2010/03/06(土) 02:50:51そういうのはオートマトンの状態にしない。
『特定の状態の時はこの操作でコレが出るが、そうでないときは出ない』というようなのの時に使う。
呪文詠唱中とかダメージモーション中とか、この状態には移行できるけど、他には駄目、みたいなのをやる。
毒や混乱は、一般的にフラグで実装するべきだろう。
必要な時にフラグを見に行く。
行動決定の時に麻痺や混乱のフラグを判定し、一定時間毎(とかターンの切れ目とか)に毒のフラグを判定して、フラグに応じた処理を行う。
0213デフォルトの名無しさん
2010/03/06(土) 07:41:01call時のthisポインタ分のレジスタがもったいないと思う事はたまにある
0214デフォルトの名無しさん
2010/03/06(土) 09:36:24実装方法やコンパイラの最適化性能によって変わってくるので一概には比較できないけど、一般的に低水準言語であるほど速いコードが書ける。
マシン語>アセンブラ>C>C++>Java
CとC++のベンチマーク比較
http://shootout.alioth.debian.org/u32/c.php
C++がCより遅くなる原因としてはクラス化によるオーバーヘッドが大きいと思われる。
例えばスマートポインタは生ポインタよりも遅くなる。
http://hp.vector.co.jp/authors/VA022575/c/e/smtptr2.html
>>144とは別人なので同じ意図かどうかは分からないけど、簡単に説明するとこんな感じです。
0215デフォルトの名無しさん
2010/03/06(土) 10:00:430216デフォルトの名無しさん
2010/03/06(土) 11:42:23邪魔。
言語なんてそいつが使いたい言語使えばいい、それだけの話。
0217デフォルトの名無しさん
2010/03/06(土) 12:01:24C++にしかできないことやJavaの言語仕様から来るメリットはある。
0218デフォルトの名無しさん
2010/03/06(土) 12:23:10アセンブラが優位だったのは、Pentium以前の話。
インライン以外でアセンブラを使うやつは素人。
0219デフォルトの名無しさん
2010/03/06(土) 12:49:310220デフォルトの名無しさん
2010/03/06(土) 12:52:590221デフォルトの名無しさん
2010/03/06(土) 12:55:300222デフォルトの名無しさん
2010/03/06(土) 12:58:01それで一生懸命作るってかんじではないの?
知らないけど
0223デフォルトの名無しさん
2010/03/06(土) 13:07:40会社を説得できれば話は別だけど
0224デフォルトの名無しさん
2010/03/06(土) 13:45:03お前なんでまだそんなことやってんの?進捗遅れてるじゃんって言われた奴、
こっちの方が3クロック速いんですよwwとか答えて
ふざけんな、そんなことに何日も潰してないでとっとと作業進めろ!って怒られてた
最終的に辞めていったけど
0225デフォルトの名無しさん
2010/03/06(土) 14:33:28http://shootout.alioth.debian.org/u32/benchmark.php?test=binarytrees&lang=gpp
テンプレートもSTLも使わず、malloc、free、sprintf使ってるやる気のないコードだな。
これはC++のコードだとは到底認められない。意図的に遅くしようという悪意が見える。
普通はC++の方がインライン展開が効くから早い。
http://theory.stanford.edu/~amitp/rants/c++-vs-c/
http://unthought.net/c++/c_vs_c++.html
スマートポインタは生ポインタよりオーバーヘッドがあるし、
仮想関数もそれ単体ではオーバーヘッドがある。
しかしCでもきちんと状態や条件を見てfreeするとなればfreeする前にオーバーヘッドが生じる。
多態を使えばswitchが減るし、アルゴリズムも最適化できる傾向がある。
アプリのパフォーマンスを比べるべきなのにミクロな部分だけを切り取ってそこだけ比べるのはフェアとは言えない。
例えばCでC++のmapと同じものを同じパフォーマンスで書くのはかなり難しいだろうね。
0226デフォルトの名無しさん
2010/03/06(土) 15:24:01あとmapの機能がすべて必要な状況というのはどの程度現れるものですか?
0227デフォルトの名無しさん
2010/03/06(土) 15:34:40こんな基地外スルーしたほうがいい
0228デフォルトの名無しさん
2010/03/06(土) 15:43:500229デフォルトの名無しさん
2010/03/06(土) 15:45:50お前頭大丈夫か?
0230デフォルトの名無しさん
2010/03/06(土) 15:50:18>普通はC++の方がインライン展開が効くから早い。
Cでもインライン展開は可能ですが?
>アプリのパフォーマンスを比べるべきなのにミクロな部分だけを切り取ってそこだけ比べるのはフェアとは言えない。
CよりもC++の方が全体のパフォーマンスが良いことを示す客観的なデータはありますか?
0231デフォルトの名無しさん
2010/03/06(土) 15:52:430232デフォルトの名無しさん
2010/03/06(土) 15:55:13煽りはいいから答えてね
0233デフォルトの名無しさん
2010/03/06(土) 16:43:12ゲームの処理だけのクラスつくって
そのクラスから情報引き出して描写する
描写用のインターフェースつくって
ゲーム処理用のクラスに描写クラス渡して
描写する
ゲーム作りわからん
オブジェクト指向ってむつかしい
0234デフォルトの名無しさん
2010/03/06(土) 16:43:58例えばCでは関数ポインタはインライン化されないけど、C++では関数オブジェクトを使えばインライン化される。
これで数倍差が付く。客観的なデータは>>225参照。
0235デフォルトの名無しさん
2010/03/06(土) 16:48:25オブジェクト間の関連を整理することこそがオブジェクト指向設計の要だから。
しかしC++でそれなりにオブジェクト指向で書かれてあるだけでも違うよ。
同僚がいまいちな設計と実装のクラスを作ったけど、
それでも意外とすんなり仕様変更に対応できたり、派生できたりする。
C言語だったらよほど上手く作られてないとこういう流用は難しい。
0236デフォルトの名無しさん
2010/03/06(土) 16:52:06switch は整数値を元に分岐先アドレスを求めることになる。
これを置き換える仮想関数呼び出しでは、だいたいポインタを2段ほど
間接参照した先に分岐先アドレスが置いてある。
この違いのために、速度についてそれぞれに有利な状況というのが
あるだろうが、極端な状況じゃなければ大きな差が生まれることはない。
switch 対仮想関数の一番大きな違いは速度じゃなくて、コードの
可読性・保守性のほうだろうね。
0237デフォルトの名無しさん
2010/03/06(土) 16:57:14具体的に何がよくなって、C言語で作ってたときより工数どのくらい減らせる?
0238デフォルトの名無しさん
2010/03/06(土) 17:03:550239デフォルトの名無しさん
2010/03/06(土) 17:08:48ソース10個ぐらいで済む小さいプロジェクトでもなければソースに書いとけ。
再コンパイルの可能性は最小限に抑えといたほうがいい。
インライン展開はボトルネックを見極めてから考えればいい。
0240デフォルトの名無しさん
2010/03/06(土) 17:23:12毎回リストを組んでデバッグする手間がゼロ。
STLを使うためだけにC++を導入しても十分な利点があるでしょ。
まずはソースコードの拡張子をcppに変えるところから始めて、
わかりやすいところだけ、利点のあるところだけつまみ食いすればいいよ。
極端な話、最初はクラスも使わずにvectorとlistだけ使ってりゃいいよ。
そのうちだんだん欲が出てきていろいろ覚えて、少しずつ効率上がるから。
…という話を10数年前にも業界内の知人に言って回ったものだよ。
そして今では少なくとも俺の知っている範囲では全員C++使ってる。
0241デフォルトの名無しさん
2010/03/06(土) 17:35:060からコード書き起こす奴なんて居ないだろう?
0242デフォルトの名無しさん
2010/03/06(土) 17:36:320243デフォルトの名無しさん
2010/03/06(土) 17:37:260244デフォルトの名無しさん
2010/03/06(土) 17:39:01Cで再利用可能なリストって言ったら、マクロや void* で型安全性を壊したうえで
なお利用者側に奇怪な記述を要求するようなものしか作れないと思うんだけど、
なんかキレイにまとまってたりするの?
0245デフォルトの名無しさん
2010/03/06(土) 17:39:420246デフォルトの名無しさん
2010/03/06(土) 17:40:340247デフォルトの名無しさん
2010/03/06(土) 17:50:50この前なんか構造体のメンバを1つ1つmemcpyでコピーして、
しかも変数のサイズ指定を間違えてメモリを壊してる奴がいた。
こういうのは言語じゃなくて本人の問題だな…。
0248デフォルトの名無しさん
2010/03/06(土) 17:53:45たったそれだけ?
C言語で似た様な機能のライブラリあるときは導入する意味無し?
0249デフォルトの名無しさん
2010/03/06(土) 17:56:190250デフォルトの名無しさん
2010/03/06(土) 18:02:58いちばん大きいのはやはりオブジェクト指向。
コードがわかりやすくなって不具合が減るし、
流用や拡張もしやすくなり、仕様変更にも柔軟になる。
しかしC++を導入したからすぐにそれが実現できるわけではない。
オブジェクト指向ってのは結局本人のスキル。自分で時間をかけて磨くしかない。
ただ、C++を使っていくうちに、矯正ギプスのように身についてくる。
0251デフォルトの名無しさん
2010/03/06(土) 18:07:45ミドルウェアはそのまま使うか、ラッパークラスを作って隠蔽する。
多態の利点が分ったら社内開発のゲームエンジンなんかは作り直したくなる。
0252デフォルトの名無しさん
2010/03/06(土) 18:10:21もう、このスレ次スレいらんから立てんなよ。
0253デフォルトの名無しさん
2010/03/06(土) 18:10:25仮に自分の場合を考えたときにC言語で見積もった工数のどのくらいの工数を減らせる?
0254デフォルトの名無しさん
2010/03/06(土) 18:17:02250 じゃないけど
Cでも今なら設計はオブジェクト指向にして組むだろうから、減るのは言語のサポートが
無いぶんの余計な記述量と、型チェックが緩かったりコンストラクタ・デストラクタが無い
ための実行時エラー発生とその修正のぶんかな。
前者は全体の 5 % にもならないだろうけど、後者は 10 % ぐらい超えそうに思う。
0255デフォルトの名無しさん
2010/03/06(土) 18:17:41ずっとコーディングばっかりしているわけじゃねーから納期はそんなに縮まらないけど…。
0256デフォルトの名無しさん
2010/03/06(土) 18:22:17じゃあ、工数そんだけ削るけどホントに大丈夫?
0257デフォルトの名無しさん
2010/03/06(土) 18:26:25vtblを再現すれば簡単なんじゃないかと思ったけど甘かった。
コンストラクタとかコードが複雑になってとても同僚に見せられない。
実務レベルで考えたらせいぜいカプセル化程度が限界だな。
0258デフォルトの名無しさん
2010/03/06(土) 18:27:40・設計さえしっかりできればコーディングに時間はそんなにかからない
・C言語とC++で設計は変わる?(変わるはずもない、言語によって変わる設計ってなんだよ)
・C言語でかかる工数、C++でかかる工数
・C言語で作れるプログラム、C++で作れるプログラムの質(それは定義した仕様以外の要素で変わるか?)
何をとってもC++であることの利点は見つからない
まともな技術者ならこれがわかる
0259デフォルトの名無しさん
2010/03/06(土) 18:28:290260デフォルトの名無しさん
2010/03/06(土) 18:28:47トータルで高品質なものを最短でつくれるものをチョイスする。
0261デフォルトの名無しさん
2010/03/06(土) 18:28:54NGな脳みそ
多態を実現するのが目的ではなくて
あくまで仕様を実現することを目的にするべき
0262デフォルトの名無しさん
2010/03/06(土) 18:29:57普段どうコンパイルされているか意識が足りないのでは?
面倒だが普通に見せられるレベルでかけるぞ。
0263デフォルトの名無しさん
2010/03/06(土) 18:30:150264デフォルトの名無しさん
2010/03/06(土) 18:30:55ベテランに任せるなら大丈夫。
C++初心者でもCより工数が伸びることはない。
0265デフォルトの名無しさん
2010/03/06(土) 18:30:59まて、>>257はすでに道を間違えている
そっから話を広げるんじゃねーよ
お前のいうことがあってるとかまちがってるとかそういう話はいいから
0266デフォルトの名無しさん
2010/03/06(土) 18:31:05申告した納期を遅延したら評価下げるよ
0267デフォルトの名無しさん
2010/03/06(土) 18:31:52技術論にもっていきたくないんだね
0268デフォルトの名無しさん
2010/03/06(土) 18:32:41大丈夫?って>>254-255に聞いてる
0269デフォルトの名無しさん
2010/03/06(土) 18:33:59そうでなくて具体的な仕様もないのに多態を実現する話にもっていきたくない
俺の検証では多態を実現することで削れる工数など1hすらない
0270デフォルトの名無しさん
2010/03/06(土) 18:34:58なるほど。
0271デフォルトの名無しさん
2010/03/06(土) 18:36:37> ・C言語で作れるプログラム、C++で作れるプログラムの質(それは定義した仕様以外の要素で変わるか?)
C++ のほうがコンパイラで自動的にチェックできる問題が多いんだから、
客観的な信頼性という質においては C++ で組んだほうが上になるんじゃないの?
0272デフォルトの名無しさん
2010/03/06(土) 18:37:12仕様変更とか、流用とか、そういうところで悩むことがないなら、
新しいことに手を出す必要はない。
0273デフォルトの名無しさん
2010/03/06(土) 18:37:39じゃないの?って以上の要素でないっしょ?
0274デフォルトの名無しさん
2010/03/06(土) 18:39:04>仕様変更とか、流用とか、そういうところで悩むことがないなら、
本当にC++は仕様変更や流用に強いの?
そしてそれは設計の話ではなくてコーディングレベルの仕様変更や流用の話でいいの?
コーディングはそんなに工数を食うの?
0275デフォルトの名無しさん
2010/03/06(土) 18:40:06多態ができればベースクラスを流用できるし、
1つのアルゴリズムや関数をいろいろな派生オブジェクトに適用できるだろ…。
つまり多態があれば単純にコード量は減る。
もちろんどんな場面でもというわけにはいかないけど。
0276デフォルトの名無しさん
2010/03/06(土) 18:40:58いや、おれは「信頼性という質においては C++ で組んだほうが上になる」という結論を
根拠も添えて示している。そのうえであんたはそう考えられないのか?という問いかけ。
0277デフォルトの名無しさん
2010/03/06(土) 18:41:01お前らの議論は浅すぎると思うんだが。
0278デフォルトの名無しさん
2010/03/06(土) 18:42:56本当に?検証した?
0279デフォルトの名無しさん
2010/03/06(土) 18:43:010280デフォルトの名無しさん
2010/03/06(土) 18:44:15じゃあ、その信頼性はC++のなんのチェックが入るから上がるもんなの?
C言語とC++との違いになにがあるの?
俺はなんの違いもないって結論な
0281デフォルトの名無しさん
2010/03/06(土) 18:45:13他部署で別のゲームのために作られたライブラリを、全く手を加えずに派生させるだけで、
元の開発者の想定外の実装を無理なく実現できてしまうくらい。
0282デフォルトの名無しさん
2010/03/06(土) 18:46:210283デフォルトの名無しさん
2010/03/06(土) 18:46:51C++とC言語で設計は変わるっていってる?
ちょっとお話できないレベルになるんだけど
0284デフォルトの名無しさん
2010/03/06(土) 18:46:54>254 にもあるが、厳格な型チェックやコンストラクタ・デストラクタの強制があるだろ。
これだけでも十分だ。
0285デフォルトの名無しさん
2010/03/06(土) 18:49:360286デフォルトの名無しさん
2010/03/06(土) 18:51:17C使いでもコンパイラはC++と共通のもの使ってるでしょう。
コンストラクタデストラクタはあってもびっくりな使い方する奴後がたたないけどなw
0287デフォルトの名無しさん
2010/03/06(土) 18:51:45型チェックに関していうけど
それは仕様としてなんの機能を組むときに必要になるわけ?
そもそも型チェックなんてベタで組んでればおきるはずもないこと
わざわざ型変換して妙なことしてるからだろ
んでもってそれはC言語でもC++でも余計なことしなければ発生さえしないもの
君の言っていることはまったく関係ない
コンストラクタデストラクタは発生することで逆にバグる可能性も増えるよね?
単純にいいとはいえないなチェック増えるだけだし
そしてそれだったら言語の機能なんかじゃなくてあらためて初期化や終了関数を作ったほうがいいんじゃないか?
0288デフォルトの名無しさん
2010/03/06(土) 18:53:480289デフォルトの名無しさん
2010/03/06(土) 18:54:28いや、関係ないからもういいよ
0290デフォルトの名無しさん
2010/03/06(土) 18:55:230291デフォルトの名無しさん
2010/03/06(土) 18:56:220292デフォルトの名無しさん
2010/03/06(土) 18:58:130293デフォルトの名無しさん
2010/03/06(土) 18:58:33C++で構造化設計することもできるしCでオブジェクト指向することもできる。
論理的に可能かどうかではなくて、実際の運用として現実的かどうかを考えないといけない。
Cでデザパタを実現しようと思ったら相当にめんどいぞ。
0294デフォルトの名無しさん
2010/03/06(土) 18:58:59struct S* 受け取る関数に int* 渡すとかいうくだらないミスが
コンパイルできてしまうかコンパイルエラーになるかという違いがある。
仕様だとか意図的な変換とか、そういうのは関係ない。当たり前だが。
コンストラクタ・デストラクタの存在で逆に発生するバグってどんなの?
で、仮にそういうのがあるとして、それは誰でも経験しているだろう初期化や
終了関数の呼び忘れより頻度や重大性の大きいものなの?
0295デフォルトの名無しさん
2010/03/06(土) 18:59:280296デフォルトの名無しさん
2010/03/06(土) 18:59:44オブジェクト指向での実務経験は? まさか経験がないのに想像で語っている訳じゃないよね?
つーか話を聞いてると全然経験がないように見えるけど。
0297デフォルトの名無しさん
2010/03/06(土) 19:00:01完全手動でのnew/deleteとすらあまり違いが内容に思うんだけど。
0298デフォルトの名無しさん
2010/03/06(土) 19:01:11>>296さんは?
0299デフォルトの名無しさん
2010/03/06(土) 19:01:590300デフォルトの名無しさん
2010/03/06(土) 19:02:02仮にそうだったとしてそれが大局に本当に影響あると思ってるの?
ってレベルだし
結局C++の利点って聞くといつもこんな感じだよね
0301デフォルトの名無しさん
2010/03/06(土) 19:03:25俺は17年だ…
フルアセンブラ時代からの生き残りだよ。
0302デフォルトの名無しさん
2010/03/06(土) 19:03:45いやいやゲームでC++の話だから。
0303デフォルトの名無しさん
2010/03/06(土) 19:05:21あぁ、ゲームでC++ならもう12〜13年くらいじゃないかな。
PlayStationの時代からやってる。メモリがなかったのでテンプレート無しだったけど。
0304デフォルトの名無しさん
2010/03/06(土) 19:06:54仮にそうだったとしてそれが大局に本当に影響あると思ってるの?
ってレベルだし
結局Cの利点って聞くといつもこんな感じだよね
0305デフォルトの名無しさん
2010/03/06(土) 19:07:040306デフォルトの名無しさん
2010/03/06(土) 19:08:34そりゃ正直どうかと思うわ。
C++で分断化のフレームワークがしっかりしてない限り
チーム開発でライブラリ含めて2MBを安全に使うのは困難。
どんなメモリ管理にしてたの?
0307デフォルトの名無しさん
2010/03/06(土) 19:12:38PSとかDCとかmalloc差し替えられるでしょ。
それ以外にも断片化についてはいろいろノウハウがあった。
mallocはねぇ、俺も懐疑的だったんだよ。
そもそもCで固定アドレス派だった。
若い人がmallocを使って美しいコードを書いているのを見て
衝撃を受けてからmallocを使うようになった。
しかしやはり断片化が問題になったので、
丸ごと自作して差し替えた上に、メモリ配置分析ツールも自作してた。
それがすでにあったからC++への移行でそこが問題になったことはなかった。
0308デフォルトの名無しさん
2010/03/06(土) 19:14:30逆にコアな部分はGLのシェーダしかなかったりとかで言語はそれほど重要じゃないと思うのだが。
0309デフォルトの名無しさん
2010/03/06(土) 19:15:12ひとつの強力なノウハウでほとんど乗り切ってるかくらいしかイメージできない。
0310デフォルトの名無しさん
2010/03/06(土) 19:16:400311デフォルトの名無しさん
2010/03/06(土) 19:19:00寝てる間に勝手にイベントとか組み込んでくれるんだよ。
0312デフォルトの名無しさん
2010/03/06(土) 19:27:190313デフォルトの名無しさん
2010/03/06(土) 19:28:36デバッガや完成度やバグの可能性考慮してるか?
つーか煽りか・・・
0314デフォルトの名無しさん
2010/03/06(土) 19:31:34スクリプタを作るための苗床と時間(20年くらい)が必要だからな……
自作するのは割に合わんよ。
0315デフォルトの名無しさん
2010/03/06(土) 20:28:01自分で工数増やしてんじゃしょうがねーよな。
ライセンスの問題で、どうしても自力実装が必要ならわかるが。
データはもう外出しで一切ハードコーディングしないのが普通じゃないの?
イベントもスクリプトで組んで、どうしても処理コストがかかるところはハードコーディング
して。
本体は3Dエンジンとか、サウンド再生とかコア機能だけ。
これを突き詰めていくと...あれ?ツクールじゃんwwwwwwww
なんだ、ツクールがあれば全てのゲーム作れるじゃん(笑)
0316デフォルトの名無しさん
2010/03/06(土) 20:36:21そういうのが当たり前なんじゃないの?
0317デフォルトの名無しさん
2010/03/06(土) 21:26:210318デフォルトの名無しさん
2010/03/06(土) 21:28:30プログラマ以外にスクリプトを書いてもらう為にDSLはよく組むよ
luaとかは汎用的過ぎるので結局プログラマがスクリプト書くでしょ?
0319デフォルトの名無しさん
2010/03/06(土) 21:31:240320デフォルトの名無しさん
2010/03/06(土) 23:11:15レスありがとうございます。
>>225のサイトにあるコードを自分のPCで検証してみました。
Sorting in C++ vs. C
C, library qsort 1.09〜1.13 0.27〜0.31
C, hand-coded quicksort 0.31〜0.33 0.11〜0.14
C++, STL sort, C arrays 1.25〜1.328 0.14〜0.157
C++, STL sort, C++ vectors 50.11〜52.047 0.14〜0.188
※VisualC++2008EE, WindowsXP(32ビット版), N=1000000, TYPE=int, ビルド=Debug/Release
Cの方が速いという結果になりましたが・・・
0321デフォルトの名無しさん
2010/03/06(土) 23:18:56汎用的すぎるからだめとかよく分からないな
素人でも間違えないような関数だけ公開すればいい話じゃん
0322デフォルトの名無しさん
2010/03/06(土) 23:19:310323デフォルトの名無しさん
2010/03/06(土) 23:23:370324デフォルトの名無しさん
2010/03/06(土) 23:56:18そう思うだろう?
凄く甘い考えだぞ〜 orz
0325デフォルトの名無しさん
2010/03/07(日) 00:02:09まわりもレベル低いんだろうな。
0326デフォルトの名無しさん
2010/03/07(日) 00:06:350327デフォルトの名無しさん
2010/03/07(日) 00:27:590328デフォルトの名無しさん
2010/03/07(日) 00:35:42その結果からどうして「Cのほうが速い」なんて話になるんだ?
もしかしてデバッグ版の速度を比較して意味があるとでも思ってるのか?
0329デフォルトの名無しさん
2010/03/07(日) 00:37:280330デフォルトの名無しさん
2010/03/07(日) 01:38:21なるほど、もっと的を絞ったいわば簡易版を作るわけか、納得。
0331デフォルトの名無しさん
2010/03/07(日) 01:41:01入力させるとかあったかな。
XinputはX360コンだけなので、デバイスがない場合はDInputで他のデバイスから
入力を取るとか。
0332 [―{}@{}@{}-] デフォルトの名無しさん
2010/03/07(日) 01:52:08JavaやC#など実行時コンパイルする言語が、Cなどのネイティブ言語より
早いようなコードを書くことだってできる。
コードや言語の特性も考慮に入れずに論じても誤解を生むだけ。
0333デフォルトの名無しさん
2010/03/07(日) 02:16:06仮にそうだったとしてそれが大局に本当に影響あると思ってるの?
ってレベルだし
結局C++の利点って聞くといつもこんな感じだよね
0334デフォルトの名無しさん
2010/03/07(日) 02:23:13仮にそうだったとしてそれが大局に本当に影響あると思ってるの?
ってレベルだし
結局Cの利点って聞くといつもこんな感じだよね
0335デフォルトの名無しさん
2010/03/07(日) 02:59:44オウム返しが成立してないのに見苦しいなw
0336デフォルトの名無しさん
2010/03/07(日) 03:02:020337デフォルトの名無しさん
2010/03/07(日) 03:02:37は?幻覚でもみたの?w
0338デフォルトの名無しさん
2010/03/07(日) 03:03:450339デフォルトの名無しさん
2010/03/07(日) 03:07:05ホントだよ
設計云々いってたのに
蓋を開けたら
>struct S* 受け取る関数に int* 渡すとかいうくだらないミスが
こんなくだらないことの回避のために
オブジェクト指向導入したんですってw
馬鹿じゃないのw
自分が何を説明しようとしてるのかそれすら行方不明で
こんなこと口走っちゃうあたりもう末期だよね
技術者としても終わってると思う
メリットが説明できないものを役立つなんていっちゃう人は技術者じゃなくて詐欺師っていうんだよ
0340デフォルトの名無しさん
2010/03/07(日) 03:12:440341デフォルトの名無しさん
2010/03/07(日) 03:16:27関係なくていいの?
C言語からC++にして使ってるのは言語の珍妙な機能だけ?
こりゃいいわw
0342デフォルトの名無しさん
2010/03/07(日) 03:19:120343デフォルトの名無しさん
2010/03/07(日) 03:22:09いや、単純にC言語からC++にしてなんの利点のがあるの?
って話が本題だよw
ここでオブジェクト指向が関係ないなんてでちゃうのはおかしいな
なんか議論してる方向間違ってるからオブジェクト指向関係ないなんてセリフがでちゃうんじゃなーい?w
まあ、君は技術者やめちゃったほうがいい人だから
そういう目的を見失っちゃうこともあるだろうねw
0344デフォルトの名無しさん
2010/03/07(日) 03:28:53会話するつもりがあるならアンカーたどって流れ読み直せ。 >>280 で同じ話が出てる。
そのからの流れで >>294 への答えが聞いてみたいところだ。
0346デフォルトの名無しさん
2010/03/07(日) 03:32:270347デフォルトの名無しさん
2010/03/07(日) 04:25:200348デフォルトの名無しさん
2010/03/07(日) 04:29:450349デフォルトの名無しさん
2010/03/07(日) 04:31:21俺のPCではこんな結果だったぞ。
何度もやったけどC++の方が早かった。
C, hand-coded quicksort 0.16〜0.19
C++, STL sort, C arrays 0.15〜0.18
C++, STL sort, C++ vectors 0.15〜0.17
※VisualC++2008EE, WindowsXP(32ビット版), N=1000000, TYPE=int, ビルド=Release
※IDEからではなくコマンドラインから実行。
C, hand-coded quicksort 1.76〜1.81
C++, STL sort, C arrays 1.54〜1.57
C++, STL sort, C++ vectors 1.57〜1.60
※VisualC++2008EE, WindowsXP(32ビット版), N=10000000, TYPE=int, ビルド=Release
※IDEからではなくコマンドラインから実行。
コンパイルオプション、最適化は全部デフォルト。
俺のPCがショボイ、というのは認めざるを得ない。
0350デフォルトの名無しさん
2010/03/07(日) 04:33:31可能です。頑張ってください。
0351デフォルトの名無しさん
2010/03/07(日) 04:34:47私ほどの実力なら作れますが、あなたには到底無理です。諦めてください。
0352デフォルトの名無しさん
2010/03/07(日) 04:36:44すでに時代遅れです。諦めてください。
0354デフォルトの名無しさん
2010/03/07(日) 05:24:22実験装置用のプログラム新しいの作れる人がいないらしい
悲しいな
0355デフォルトの名無しさん
2010/03/07(日) 06:38:53C覚える暇があれば十分覚えられる。
ただ、スパゲッティプログラムになり易いから綺麗な書き方の練習は必要だけど。
0356デフォルトの名無しさん
2010/03/07(日) 06:38:57ありがとうございます。
参考になります。
>>320もコンパイルオプション、最適化は全てデフォルトです。
STLのDebug版がRelease版と比較して大きく落ち込んでいますが、これは改善できるものなのでしょうか?
リリース版の結果が重要とは言ってもやはり開発時はデバッグ版を使用したいのですが。
C, library qsort 1.09〜1.13 0.27〜0.31 ⇒ 24.7〜27.4%
C, hand-coded quicksort 0.31〜0.33 0.11〜0.14 ⇒ 35.4〜34.0%
C++, STL sort, C arrays 1.25〜1.328 0.14〜0.157 ⇒ 11.2〜11.8%
C++, STL sort, C++ vectors 50.11〜52.047 0.14〜0.188 ⇒ 2.7〜3.6%
0357デフォルトの名無しさん
2010/03/07(日) 06:48:15JITなしのJavaは遅くて使い物にならないと主張してるのと変わらんよなw
0358デフォルトの名無しさん
2010/03/07(日) 07:21:17全然関係ないじゃん
だってそれって細かい実装技術だろ
工数なんてちっとも削れやしないw
そもそも型変換なんてしなけりゃいいじゃん
0359デフォルトの名無しさん
2010/03/07(日) 07:23:49C言語とC++との違いって主張する奴はなんなの?
オブジェクト指向が入って違いが出たんじゃないの?
0360デフォルトの名無しさん
2010/03/07(日) 07:27:47これコンパイラでひっかかるよね
0361デフォルトの名無しさん
2010/03/07(日) 09:07:56それこそクラスなんぞ使わず、betterCとして利用する事もできる。
0362デフォルトの名無しさん
2010/03/07(日) 09:20:380363デフォルトの名無しさん
2010/03/07(日) 10:06:03それはメリットでもなんでもないな
0364デフォルトの名無しさん
2010/03/07(日) 10:16:140365デフォルトの名無しさん
2010/03/07(日) 10:20:04本筋より付属物なんか人に薦めてるあたり使えないのバレバレだなお前w
0366デフォルトの名無しさん
2010/03/07(日) 10:21:270367デフォルトの名無しさん
2010/03/07(日) 10:29:480368デフォルトの名無しさん
2010/03/07(日) 10:50:520369デフォルトの名無しさん
2010/03/07(日) 11:02:31胸を張って「使いこなせる」
と言えなくなっていく
それがC++
0371デフォルトの名無しさん
2010/03/07(日) 12:13:45ここはCとC++の優劣を決めるスレですか
0372デフォルトの名無しさん
2010/03/07(日) 13:21:05春休みなんだろ
0373デフォルトの名無しさん
2010/03/07(日) 13:31:20C++ではコンパイルエラーにできるところがCでは実行時エラーとなるまで
気づかない可能性がある。C++で強制されるコンストラクタもデストラクタの
呼び出しもCでは明示的な初期化と終了関数を呼び忘れる可能性がある。
これによってコンパイルできたコードの信頼性が向上すると言えるし、それに
伴ってテストフェーズにかかる工数が減るとも言える。
意図的な型変換は関係ないと >>294 にも書いたはずなんだが。
0374デフォルトの名無しさん
2010/03/07(日) 13:58:020375デフォルトの名無しさん
2010/03/07(日) 13:59:56ウォッチドッグタイマ使えばいいんじゃね
0376デフォルトの名無しさん
2010/03/07(日) 14:45:50CとC++なんて本質的にそれほど差があるわけじゃないだろ
なんでこの兄弟言語で喧嘩する必要があるんだか
0377デフォルトの名無しさん
2010/03/07(日) 15:18:560378デフォルトの名無しさん
2010/03/07(日) 17:33:270379デフォルトの名無しさん
2010/03/07(日) 17:50:200380デフォルトの名無しさん
2010/03/07(日) 19:44:29Managed?は終わったんだっけ
0381デフォルトの名無しさん
2010/03/07(日) 20:04:15全然いける。
0382デフォルトの名無しさん
2010/03/07(日) 20:43:40まだ関係ないところこだわってるんだ?w
0383デフォルトの名無しさん
2010/03/07(日) 21:14:450384デフォルトの名無しさん
2010/03/07(日) 21:25:500385デフォルトの名無しさん
2010/03/07(日) 21:29:02同意
使えることは増えていくけど終わりが見えない
0386デフォルトの名無しさん
2010/03/07(日) 21:29:560387デフォルトの名無しさん
2010/03/07(日) 21:36:14それ以外もあるけど強くプッシュできない。
0388デフォルトの名無しさん
2010/03/07(日) 21:41:080389デフォルトの名無しさん
2010/03/07(日) 21:41:26むしろジェネリックプログラミングじゃね
0390デフォルトの名無しさん
2010/03/07(日) 21:51:090391デフォルトの名無しさん
2010/03/07(日) 21:51:490392デフォルトの名無しさん
2010/03/07(日) 22:18:06private宣言するだけだから
0393デフォルトの名無しさん
2010/03/07(日) 22:20:35インスタンスのコピーするのがやたらと面倒だけど
これはなんで面倒にしてるの?
0394デフォルトの名無しさん
2010/03/07(日) 22:30:44安全のために
0395デフォルトの名無しさん
2010/03/07(日) 22:31:100396デフォルトの名無しさん
2010/03/07(日) 22:31:35何がどうして面倒なのか
0397デフォルトの名無しさん
2010/03/07(日) 22:36:030398デフォルトの名無しさん
2010/03/07(日) 22:55:43今までmemcpyで済んでたのにどうしてメンバいっこいっこ代入するんだよ〜
とかそんな程度だろ
0399デフォルトの名無しさん
2010/03/07(日) 23:25:55そうだそれだ
すげー手間じゃね?
0400デフォルトの名無しさん
2010/03/07(日) 23:29:02状況を具体的にして初心者スレに行くのがいいと思いますよ。
0401デフォルトの名無しさん
2010/03/07(日) 23:40:25春厨乙
0402デフォルトの名無しさん
2010/03/08(月) 01:46:38全部のメンバのコピーコンストラクタが勝手に呼ばれる。
ポインタはコピーされるとまずいのでそこだけラップしておけばいい。
例えばchar *を使わずにstringを使うとか。
0403デフォルトの名無しさん
2010/03/08(月) 02:16:290404デフォルトの名無しさん
2010/03/08(月) 02:18:12アセンブラ使ってるBASIC投稿もあるがマシン語とかさっぱりだぜ(笑)
0405デフォルトの名無しさん
2010/03/08(月) 02:40:54昔を思い出しつつマシン語を直読みしてって、同じ処理を普通に記述していけばいいだけでは?
0406デフォルトの名無しさん
2010/03/08(月) 02:46:43ゲームコードがのってる雑誌って他に有る?
0407デフォルトの名無しさん
2010/03/08(月) 02:47:350408デフォルトの名無しさん
2010/03/08(月) 03:04:50読者の投稿プログラムが掲載されていた
もっぱらゲームだが
電波新聞社のベーシックマガジン、通称ベーマガ。ベーシックってのはBASIC言語のことだ
休刊して7年くらい経つ
0409デフォルトの名無しさん
2010/03/08(月) 03:30:33http://pc12.2ch.net/test/read.cgi/tech/1103375399/
0410デフォルトの名無しさん
2010/03/08(月) 04:01:04プログラミングへの意欲は大きく減ってしまった
0411デフォルトの名無しさん
2010/03/08(月) 04:05:390412デフォルトの名無しさん
2010/03/08(月) 04:11:160413デフォルトの名無しさん
2010/03/08(月) 04:14:050414デフォルトの名無しさん
2010/03/08(月) 04:16:440415デフォルトの名無しさん
2010/03/08(月) 04:19:550416デフォルトの名無しさん
2010/03/08(月) 04:26:070417デフォルトの名無しさん
2010/03/08(月) 04:30:140418デフォルトの名無しさん
2010/03/08(月) 04:40:16環境自体を移植すればいいのさ!
0419デフォルトの名無しさん
2010/03/08(月) 06:33:00はぁ?面倒臭ぇことにはかわらねーだろ
馬鹿?
0420デフォルトの名無しさん
2010/03/08(月) 06:39:270421デフォルトの名無しさん
2010/03/08(月) 07:51:29C++はスマポやコンテナを使えばデフォルトでも問題ない
浅いコピーはスマポ
深いコピーはコンテナで
てかここはC++初心者スレじゃないぞ
0422デフォルトの名無しさん
2010/03/08(月) 07:56:070423デフォルトの名無しさん
2010/03/08(月) 10:48:16ある意味昔のゲームプログラマとは別の領域のレベルは伸ばしてるんじゃねえかと思う。
そいつらがマップの衝突判定とかが出来るかどうかは別として。
0424デフォルトの名無しさん
2010/03/08(月) 14:49:23wonderflは割りと近い気がするな
あれのC版とかC++版とか・・・は考えたくも無いが
0425デフォルトの名無しさん
2010/03/08(月) 15:30:06昔はゲームの作り方を教えてくれたけど
今はゲームの見た目を良くする方法を教えてくれる所だと思ってる。
0426デフォルトの名無しさん
2010/03/08(月) 17:34:37プログラムの中身の質なんてそう分かるものじゃないが
CGだと素人が一瞥しただけで糞だとバレてしまう悲しい現実
0427デフォルトの名無しさん
2010/03/08(月) 19:06:01はぁ?
クラス使わないで構造体で組めばなんの問題も起きないんだけど
余計なことして余計な時間かけて馬鹿じゃないの?
仕事しないで遊んでるの?
0428421
2010/03/08(月) 19:33:100429デフォルトの名無しさん
2010/03/08(月) 19:46:190430デフォルトの名無しさん
2010/03/08(月) 20:11:30すべてパブリックなpythonがお勧めですね
0431デフォルトの名無しさん
2010/03/08(月) 20:38:45今2010年においてもっとも重要なのはゲームデザインとシェーダプログラミングじゃ。
つうかゲームデザインの話しようぜ。
オンライン前提のゲームバランスについて語ろうよ。俺TUEEEEE野郎をどうやって隔離するか、とか。
0432デフォルトの名無しさん
2010/03/08(月) 20:48:190433デフォルトの名無しさん
2010/03/08(月) 21:26:24ソフトが弱いし
どんだけ廃人になっても才能ないと勝てないし
0434デフォルトの名無しさん
2010/03/08(月) 21:55:22ようするにお前みたいなバカはプログラムなんか作るなってことだ
ユトリは大人しくオナニーでもしてろ
0435デフォルトの名無しさん
2010/03/08(月) 22:44:27アレアレ?
説明できなくなってキレちゃった?(笑)
0436デフォルトの名無しさん
2010/03/08(月) 22:56:07本当のアホだな
0437デフォルトの名無しさん
2010/03/08(月) 23:33:53そういうのはしっかりと説明できてからいってねw
いまだにC++のメリット説明できた人間ってみたことないんだ俺w
0438デフォルトの名無しさん
2010/03/08(月) 23:50:530439デフォルトの名無しさん
2010/03/08(月) 23:55:240440デフォルトの名無しさん
2010/03/08(月) 23:57:430441デフォルトの名無しさん
2010/03/09(火) 00:02:220442デフォルトの名無しさん
2010/03/09(火) 00:22:32読みやすいじゃん
0443デフォルトの名無しさん
2010/03/09(火) 00:23:410444デフォルトの名無しさん
2010/03/09(火) 00:24:290445デフォルトの名無しさん
2010/03/09(火) 00:25:50価値観の相違だな
0446デフォルトの名無しさん
2010/03/09(火) 00:26:45インクルードガードはもちろんやってんだよな?
設計を紙に落として階層分けてみたら意外なこと発見するかもよ
0447デフォルトの名無しさん
2010/03/09(火) 00:36:580448デフォルトの名無しさん
2010/03/09(火) 00:53:040449デフォルトの名無しさん
2010/03/09(火) 01:03:46状況を具体的にして初心者スレに行くのがいいと思いますよ。
0450デフォルトの名無しさん
2010/03/09(火) 01:15:43まじめに主張している奴も世の中にはいるからな。
思い込みの激しい奴に何を言っても無駄だろう。
0451デフォルトの名無しさん
2010/03/09(火) 01:38:240452デフォルトの名無しさん
2010/03/09(火) 01:41:36進化論が科学だとすると、進化論の進化を再現してみせないと
0453デフォルトの名無しさん
2010/03/09(火) 02:01:06交配できないほどじゃないけど、似たような話は琵琶湖にもある。
進化ってのは、条件さえ整えば、そんなに時間がかかるもんじゃない。
0454デフォルトの名無しさん
2010/03/09(火) 02:02:230455デフォルトの名無しさん
2010/03/09(火) 02:27:02はい
0456デフォルトの名無しさん
2010/03/09(火) 02:37:35シュミレーションゲームか?
0457デフォルトの名無しさん
2010/03/09(火) 02:45:56GUIアプリとか、ネットのアプレットとか、携帯端末のMIDletとか、で
相互に移植しやすく作るには
入出力系統を分離して設計すればOK?
0458デフォルトの名無しさん
2010/03/09(火) 03:45:340459デフォルトの名無しさん
2010/03/09(火) 03:57:000460デフォルトの名無しさん
2010/03/09(火) 04:04:010461デフォルトの名無しさん
2010/03/09(火) 04:04:44Javaでゲームは作れないですよ。
0462デフォルトの名無しさん
2010/03/09(火) 04:06:440463デフォルトの名無しさん
2010/03/09(火) 04:06:530464デフォルトの名無しさん
2010/03/09(火) 04:23:180465デフォルトの名無しさん
2010/03/09(火) 04:27:58「本格的な」という単語が抜けているだけですよ。
本格的なゲームを作りたいなら、Javaはやめておけ
0466デフォルトの名無しさん
2010/03/09(火) 06:31:42「本格的な」が今あるリソースの限界まで使うような物を指しているなら同意する
0467デフォルトの名無しさん
2010/03/09(火) 06:34:290468デフォルトの名無しさん
2010/03/09(火) 07:33:320469デフォルトの名無しさん
2010/03/09(火) 08:22:27javaだとグラフィックやサウンドをnativeと同じようにさわるのは敷居が高いって事じゃろ
でもjavaでゲーム作るの向いてないとか言う子はjake2位は見ておくべきだとおもうな
0470デフォルトの名無しさん
2010/03/09(火) 09:34:51Javaに限った話じゃないけどインターフェースを共通化したクラスを用意しておけばいいよ。
最近、Javaアプレットは使われなくなった気するけど・・・
0471デフォルトの名無しさん
2010/03/09(火) 09:37:37インターフェースを共通化ってwww
とりあえず、インターフェイスの概念でも勉強したらどうかね?
危険が危ないみたいなもんだよwシロウトクン
0472デフォルトの名無しさん
2010/03/09(火) 10:34:130473デフォルトの名無しさん
2010/03/09(火) 10:36:51自演乙
0474デフォルトの名無しさん
2010/03/09(火) 10:44:540475デフォルトの名無しさん
2010/03/09(火) 10:49:08>>457 ↓こっち池。これが素人向けのスレだ
Javaゲーム作成総合スレ
http://pc11.2ch.net/test/read.cgi/gamedev/1225185820/
0476デフォルトの名無しさん
2010/03/09(火) 10:50:490477デフォルトの名無しさん
2010/03/09(火) 10:52:22あらゆる質問はまずすれ立てるまでもない質問はここでスレにしてください。
その他、お勉強ページへのリンクスレ、
推薦図書・必読書スレ
もあります。
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
Javascript は Web 制作板、CGI は Web プログラミング板へ。
業界談義、愚痴はプログラマ板へどうぞ。
ゲーム関係の話題はゲーム製作板へどうぞ。 ←★
ネタ、板とは関係の無い話題はご遠慮ください。
ローカルルール無視したスレ立てんなよ
0478デフォルトの名無しさん
2010/03/09(火) 10:52:35お前みたいなもんだな
役立たず
0479デフォルトの名無しさん
2010/03/09(火) 10:53:33ローカルルール無視したスレ立てんなよ
この板はプログラムを作る人のための板です。
あらゆる質問はまずすれ立てるまでもない質問はここでスレにしてください。
その他、お勉強ページへのリンクスレ、
推薦図書・必読書スレ
もあります。
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
Javascript は Web 制作板、CGI は Web プログラミング板へ。
業界談義、愚痴はプログラマ板へどうぞ。
ゲーム関係の話題はゲーム製作板へどうぞ。 ←★
ネタ、板とは関係の無い話題はご遠慮ください。
0480デフォルトの名無しさん
2010/03/09(火) 12:36:39って意味がわかった。
オブジェクトはデータの構造であり、普通はデバイスにより描画方法が異なるんだから
描画メソッド持たせてたら端末ごとにクラス作り直しじゃんかバーカ、ってことに気付いた。
で、代わりにインターフェースだけ持たせておいてそのインターフェースを実装するクラスの中身だけ端末によりけり…
って方法がいいらしい。多分。
0481デフォルトの名無しさん
2010/03/09(火) 16:55:100482デフォルトの名無しさん
2010/03/10(水) 01:49:50http://pc11.2ch.net/test/read.cgi/gamedev/1107928429/
これはヤバイお
0483デフォルトの名無しさん
2010/03/11(木) 00:37:580484デフォルトの名無しさん
2010/03/11(木) 01:23:50おい俺にも納得の行くチラシの裏にしてくれ。
>普通はデバイスにより描画方法が異なるんだから
これは分かるし、同じデバイスでも状況によって描画方法を変える場合もある。
が、
>「オブジェクトにグラフィックコンテキストとか引数に持つインターフェース付けんな」
これって、Javaでいうvoid paint(Graphics g)なインタフェースを
否定しているように聞こえるんだけど、そうなのか?
もしそうならその理解は間違っていると思う。
JavaのGraphicsクラスは基本的な描画機能を抽象メソッドとして定義していて、
その実装は派生クラスで行うことになっている。その派生クラスで、
先の例でいうデバイス毎の描画方法の違いを吸収してしまえるわけだから。
以上反論終わり。
>代わりにインターフェースだけ持たせておいてそのインターフェースを実装するクラスの中身だけ端末によりけり…
まあこれがもしかしたらGraphicsクラスのことを表しているのかなとも思ったが、知ーらね。
0485デフォルトの名無しさん
2010/03/11(木) 01:41:540486デフォルトの名無しさん
2010/03/11(木) 01:53:24それだけの話
class Mesh {
void draw(); // ←NG !!
};
0487デフォルトの名無しさん
2010/03/11(木) 01:59:120488484
2010/03/11(木) 03:27:11だから何?JavaのGraphicsクラスは実装例として出しただけ。
他の言語でも同様に組めるだろ。Javaの話を持ち出すのは
頓珍漢みたいなそのツッコミの意図が理解できん。
>>486
そういった風に単純化してもらえるととても理解しやすい。
が、「オブジェクト」と意味ありげに書かれていたものが
そういったデータクラスを指すとは思わなかったんだ。
じゃあこの場合、
>代わりにインターフェースだけ持たせておいてそのインターフェースを実装するクラスの中身だけ端末によりけり…
の実装例はIDirect3DDeviceなどということで合っているかな。
>>487
大昔はあれでしょうがなかったのかも知れんが、
今にしてみれば悪い仕様でしかないな。
俺は端末性能がほどほどになった頃に
キャリア間移植性向上のために
抽象Graphicsクラスをわざわざ作ったが、
大元の基本クラスが非抽象だったせい等で
歪で冗長なクラスに仕上がった。
牛乳飲んで寝るわ。
0489デフォルトの名無しさん
2010/03/11(木) 05:58:10なんで?
デメリットってあるの?
0490デフォルトの名無しさん
2010/03/11(木) 06:24:16組んでみればわかるけどMeshに必要なデータ以外のものが超多くなって
このクラス何?ってなるよ
描画クラス(超大型クラス)丸ごと一個内包しなきゃいけなくなって
Meshが十得ナイフ的ウンコクラスになってしまう
0491デフォルトの名無しさん
2010/03/11(木) 06:38:54描画コール前後にbind()/release()メソッドでデバイスに一括登録/解除してるんだけど
これはあり?
0492デフォルトの名無しさん
2010/03/11(木) 08:10:10依存性低くなっていいかなーと
別にmesh.draw(xxx) でも問題ないんだけど
これだけじゃ事足りないかなーってときに描画処理の為にメッシュクラスを
いじるのはあんまりよくないなってね
0493233
2010/03/11(木) 14:07:00だからアレンはサラを殺したってわけね。
0494デフォルトの名無しさん
2010/03/11(木) 14:07:400495デフォルトの名無しさん
2010/03/11(木) 19:28:11描画はシーンを描画するべき
他のオブジェクトはデータを渡すのみ
0496デフォルトの名無しさん
2010/03/11(木) 21:13:180497デフォルトの名無しさん
2010/03/11(木) 22:43:24どうしても最適化してないC++と勝負したいようですww
0498デフォルトの名無しさん
2010/03/11(木) 22:56:44には笑ったわ
0499デフォルトの名無しさん
2010/03/11(木) 23:00:250500デフォルトの名無しさん
2010/03/12(金) 04:18:1210倍遅くなるからw
0501デフォルトの名無しさん
2010/03/12(金) 04:53:270502デフォルトの名無しさん
2010/03/12(金) 06:22:31あのアフォな文字列クラスといい人的要因でいくらでも遅くなる罠が多いのがjava
0503デフォルトの名無しさん
2010/03/12(金) 06:30:46もう5年かそれ以上前から
「いやJavaは速い」って言われるようになってないか
VM噛ませるんだから起動が遅いのは仕方ないにせよ
0504デフォルトの名無しさん
2010/03/12(金) 06:41:26一番イラっとくる起動時間と
一番ムカっとくるゴミ収集機能が健在なのに
javaはこのどうにもならないシステムがウンコ
0505デフォルトの名無しさん
2010/03/12(金) 06:42:13これ、どうみてもJavaに対する皮肉としてわざと書いてるわけだが。
0506デフォルトの名無しさん
2010/03/12(金) 06:49:270507デフォルトの名無しさん
2010/03/12(金) 13:55:03「最適化する必要があるのか?」と逃げ出すところがいいなw
0508デフォルトの名無しさん
2010/03/12(金) 14:54:410509デフォルトの名無しさん
2010/03/12(金) 15:14:230510デフォルトの名無しさん
2010/03/12(金) 15:34:00悪意があればそれはないな
0511デフォルトの名無しさん
2010/03/12(金) 18:05:54FPSに合わせて実行するのはどっち?
俺は更新だと思うんだけど・・・逆?
0512デフォルトの名無しさん
2010/03/12(金) 18:10:590513デフォルトの名無しさん
2010/03/12(金) 18:33:070514デフォルトの名無しさん
2010/03/12(金) 19:11:320515デフォルトの名無しさん
2010/03/12(金) 19:26:04シレンみたいに攻撃するときは一体ごと順番に
移動するときはみんな同時に移動
ってのはどうやんのがスマートですかね?
0516デフォルトの名無しさん
2010/03/12(金) 19:46:49rogueしかやったことないから知らんが
0517デフォルトの名無しさん
2010/03/12(金) 20:18:16順番に移動/アクションしてるだけだよ。ゲームやってればわかるじゃん。
0518デフォルトの名無しさん
2010/03/12(金) 21:13:130519デフォルトの名無しさん
2010/03/12(金) 21:46:40516の言うとおり、移動フェーズと攻撃フェーズに分けりゃいいんじゃねえの。
0520デフォルトの名無しさん
2010/03/12(金) 22:09:320521デフォルトの名無しさん
2010/03/12(金) 22:43:17�Aシレンの移動先座標を求める(まだ移動先計算だけでキャラの移動はしない)
�Bシレンの移動先を目標に敵の行動を決定(ここも移動先決定のみでキャラ移動はしない)
�Cシレンと敵を移動先に移動させる(ここが目に見えるので一緒に移動してるように見える)
こんな感じだろ
0522デフォルトの名無しさん
2010/03/12(金) 23:19:210523デフォルトの名無しさん
2010/03/13(土) 02:30:300524デフォルトの名無しさん
2010/03/13(土) 02:39:52ただこれ見た目のテンポを良くするためのシステムなのに
一部のテクに使えてしまうんだよな
見た目とゲーム性は切り離したいが、これはなかなか上手くいかない
0525デフォルトの名無しさん
2010/03/13(土) 03:08:350526デフォルトの名無しさん
2010/03/13(土) 04:26:210527デフォルトの名無しさん
2010/03/13(土) 05:49:42出直してきます・・・
0528デフォルトの名無しさん
2010/03/13(土) 08:54:19その点を意識できれば実装方法は自ずと見えてくる。
0529デフォルトの名無しさん
2010/03/13(土) 09:55:05再描画するだけだろう。シレンも同じさ
0530デフォルトの名無しさん
2010/03/13(土) 13:40:22rogueを作ってみたらどうだろーぐ?
0531デフォルトの名無しさん
2010/03/13(土) 13:46:470532デフォルトの名無しさん
2010/03/13(土) 16:32:270533デフォルトの名無しさん
2010/03/13(土) 16:54:000534デフォルトの名無しさん
2010/03/13(土) 17:39:54そうしているところもあるし、Zバッファでコントロールしているところもあると思うけど。
0535デフォルトの名無しさん
2010/03/13(土) 18:22:390536デフォルトの名無しさん
2010/03/13(土) 18:29:590537デフォルトの名無しさん
2010/03/13(土) 18:30:520538デフォルトの名無しさん
2010/03/13(土) 18:41:350539デフォルトの名無しさん
2010/03/13(土) 18:43:510540デフォルトの名無しさん
2010/03/13(土) 18:44:17タラコも出てたような
0541デフォルトの名無しさん
2010/03/13(土) 18:45:49Webカメラで画面映すだけだろ
0542デフォルトの名無しさん
2010/03/13(土) 18:48:19でも映画を流すと逮捕されるから注意しろ!
0543デフォルトの名無しさん
2010/03/13(土) 18:51:480544デフォルトの名無しさん
2010/03/14(日) 00:06:200545デフォルトの名無しさん
2010/03/14(日) 14:16:19java.awt.ContainerとかSystem.Windows.Forms.Control
みたいに表示オブジェクトを入れ子(階層)にして管理するってことでしょ?
私はその組み方で作ってきたけど、レイヤ内の特定オブジェクトだけ
表示順位がレイヤを跨いで動的に変化するようなゲームの場合は
ちょっと綺麗な解決が出来なかった。
逆に言えば表示順位はレイヤ内だけで変化するようなゲームや
UIコントロールの管理にはうってつけだしスタンダードだと思う。
ちょっと調べてみたんだけど、FlashのMovieClipって
階層構造だけで作れるし、Z値の直指定もできるみたいだね。
こういうハイブリッドなインタフェースにしておけば、
どんな風にも組めて良いだろうね。
ところで階層構造の表示オブジェクト管理方法って何か名前はついてるのだろうか。
0546デフォルトの名無しさん
2010/03/14(日) 15:00:320547デフォルトの名無しさん
2010/03/14(日) 17:51:39実際プロからしてみてあんな人材は存在するもんなの?
思うに、日本中を探しても片手で数えられるくらいしかいないと思うんだけど。
0548デフォルトの名無しさん
2010/03/14(日) 18:02:130549デフォルトの名無しさん
2010/03/14(日) 18:06:56俺の大好きなフロントミッションdisってんのかゴルァ
0550デフォルトの名無しさん
2010/03/14(日) 18:07:17PGは厳しいな
でも数年やってりゃなるんじゃね?
逆に近年スクエニより見た目劣ってるようなクオリティで出す会社ねーじゃん
ってことは誰でもできるようになっちゃうってことさ
俺は途中で業界やめちゃったけど学生終わる頃にはスキニングやバンプ辺りのシェーダは
組めたし、会社辞めるころは結構できないことはなにもないぐらいの感じはあったけどな
(でもどこも給料低すぎて続けてられなかったけど)
0551デフォルトの名無しさん
2010/03/14(日) 18:23:000552デフォルトの名無しさん
2010/03/14(日) 18:54:24うるさい!
0553デフォルトの名無しさん
2010/03/14(日) 20:48:28習うモンなのか
0554デフォルトの名無しさん
2010/03/14(日) 21:26:080555デフォルトの名無しさん
2010/03/14(日) 21:33:27むしろ、それっぽい資料や教材作って「これからはパソコン教室運営が儲かりますよ」と
教材とパソコンセットにして販売する商売の方が楽に儲かる。
0556デフォルトの名無しさん
2010/03/14(日) 22:28:410557デフォルトの名無しさん
2010/03/14(日) 22:38:410558デフォルトの名無しさん
2010/03/14(日) 22:56:560559デフォルトの名無しさん
2010/03/14(日) 23:00:11WORDの使い方に関してはおそらくその辺のOLレベル
Excelとパワポはそれなりに詳しい程度
よって
PG→パソコン教室はそのままでは無理
0560デフォルトの名無しさん
2010/03/14(日) 23:06:40ビジュアルプログラミング言語を使えば、おばちゃんでも盛り上がるだろ、きっと
ビジュアルでもプログラミングの概念は同じなんだから、
おまえでも教えられるし
0561デフォルトの名無しさん
2010/03/14(日) 23:09:110562デフォルトの名無しさん
2010/03/14(日) 23:14:53って思わせるんだよ。
0563デフォルトの名無しさん
2010/03/14(日) 23:35:220564デフォルトの名無しさん
2010/03/15(月) 03:27:52はいはい┐(´Д`┌
0565デフォルトの名無しさん
2010/03/15(月) 12:00:41カッコイイ
0566デフォルトの名無しさん
2010/03/15(月) 12:05:15座標やアニメパターンとポリゴンデータを持つクラスつくって
クラスの中で自機や味方や敵や弾を仕分けすればいいのか(従来どおり?)
自機クラス、味方クラス・・・別個に作ってやればいいのか
でもポリゴンデータだけ違うだけでクラス分けるのって逆に煩雑で融通利かなくなる気が・・・
0567デフォルトの名無しさん
2010/03/15(月) 12:07:44まず、機体ってsuper class作ればそこから自機なり敵機なり拡張できるでしょ
オブジェクト指向を勉強したいなら、この程度でいいでしょう
0568デフォルトの名無しさん
2010/03/15(月) 12:13:520569デフォルトの名無しさん
2010/03/15(月) 12:15:240570デフォルトの名無しさん
2010/03/15(月) 12:22:32・bullet(弾)
・cannon(砲台)
・enemy(敵)
・shot(自機の弾)
・player(自機)
ってのを用意するって覚えるといいよ。
0571デフォルトの名無しさん
2010/03/15(月) 12:26:12抽象なら弾は一つで事足りる
0572デフォルトの名無しさん
2010/03/15(月) 12:42:450573デフォルトの名無しさん
2010/03/15(月) 12:44:450574デフォルトの名無しさん
2010/03/15(月) 12:49:25少なくともインターフェイスを知らないんだろう
全て抽象クラスで実現しようとした結果、冗長となっている
0575566
2010/03/15(月) 12:50:00じゃぁ画面内外の弾の配列を、このクラスに持たせて描画とか移動処理を任すの?
それともこのクラスごと配列にしてループさせるの?
0576デフォルトの名無しさん
2010/03/15(月) 12:52:08なんでそこでインターフェースが絡んでくるかイミフだろ。
全部データ構造持つのに。
0577デフォルトの名無しさん
2010/03/15(月) 12:56:54少なくとも俺はenemyがcannonをN個持ってる、って構造にしてる。
(enemyには移動パターンとか耐久力情報、cannonには弾幕パターンを保持)
こうするとcannonを入れ替えるだけで弾幕パターン変えられるし。
>>575
bullet=スプライト1個分の情報と捉えれ。
普通はbullet[]で処理する。
0578デフォルトの名無しさん
2010/03/15(月) 12:57:31弾、機体でインタフェースきっといた方が楽だろ
データ構造なんてその先だぞ?
そもそも抽象クラスでなんでそんなん出てくんの?低能を露呈するだけだからやめときなさい
0579デフォルトの名無しさん
2010/03/15(月) 12:59:22どっちが正しいとかより、効率を考えればどっちかはすぐ分かるはずだが
素人さんが多いようじゃな
0580デフォルトの名無しさん
2010/03/15(月) 12:59:32user : entity
enemy : entity
bullet : entity
0581デフォルトの名無しさん
2010/03/15(月) 13:02:35プロの書いたコードとかすごい興味あるんだけど
0583デフォルトの名無しさん
2010/03/15(月) 13:19:230584デフォルトの名無しさん
2010/03/15(月) 13:21:50凸凸凸
魚魚魚魚魚魚魚魚魚魚魚魚魚魚
夫夫夫夫夫夫夫夫夫夫夫夫夫夫
然然然然然然然然然然然然然然
/ ̄ ̄\ / ̄ ̄\ / ̄ ̄\
| | | | | |
|_.| ̄|_| |_.| ̄|_| |_.| ̄|_|
凸
どんなゲームでも記述できる構造を探すんじゃなくて、
どんなゲームを記述しようとしてるのかを決めるのが先じゃね
動く敵しか出てこないゲームなら、動かない敵を想定する必要は無いし、
地上と空中の敵を区別するのかしないのかとか、
そういう条件によっても適切な設計は変わってくるよ
0585デフォルトの名無しさん
2010/03/15(月) 13:25:13他人に迷惑かけるだけだし、同じプロジェクトにいた日にゃ尻ぬぐい
まずは己を高めることが、最優先かと
0586デフォルトの名無しさん
2010/03/15(月) 13:26:11public interface updatable{
public void update();
}
public abstract class position{
public position(int x,int y){
this.x=x<<10;this.y=y<<10;
}
int x,y;
public int getX(){
return this.x>>10;
}
public int getY(){
return this.y>>10;
}
}
public class bullet extends position implements updatable{
int vx,vy;//1フレームで移動する量
public bullet(int x,int y,int vx,int vy){
super(x,y);
thix.vx=vx;this.vy=vy;
}
public void update(){
this.x+=vx;this.y+=vy;
}}
こんな感じ。
0587デフォルトの名無しさん
2010/03/15(月) 13:28:410588デフォルトの名無しさん
2010/03/15(月) 13:29:56ゲームループの中でnewさせるとかありえないから、bulletはbulletで既にfinalです。
面倒くさいから省略してるけど、本当はパラメータの中にax,ay(加速度)とか含みます。
0589デフォルトの名無しさん
2010/03/15(月) 13:31:13最初に発射された弾から順に画面外や、衝突によって消えていくとすれば、
bullet[]をリングバッファの様に使うのもアリだと思う
0590デフォルトの名無しさん
2010/03/15(月) 13:33:43よく分からんが、使用させるメモリサイズを固定&処理時間をある程度固定させるために
あえてリストにはしないらしいぞ。
0591デフォルトの名無しさん
2010/03/15(月) 13:37:360592デフォルトの名無しさん
2010/03/15(月) 13:46:26public abstract class drawer{
public drawer(Graphics g,Image[] useimages)
this.g=g;
this.images=useimages;
}
private Graphics g:
public void blt(position p,int id){
g.drawimage();
}
private Image[] images=new Image[];
}
bullet[] bullets;
void render(){
for(int i=0;i<bullets.length;i++)
drawer.blt(bullets[i],DRAW_BULLET);
}
みたいにするのがいいと達した。異論は認める。
0593デフォルトの名無しさん
2010/03/15(月) 13:54:190594デフォルトの名無しさん
2010/03/15(月) 14:57:470595デフォルトの名無しさん
2010/03/15(月) 15:02:200596デフォルトの名無しさん
2010/03/15(月) 15:03:060597デフォルトの名無しさん
2010/03/15(月) 16:43:17キャラクターなんかをモデラーで作ったとして
それをDirectXやOpenGLから扱うためにどうするのが一般的ですか?
色んなソフトで使われる一般的なフォーマットがあって
それに変換してからプログラムで読み込むんでしょーか?
それとも、たとえばメタセコイアで作ったとしたらmqoファイルが出来ると思いますが
みなさんこういう個別のソフトの形式のコンバータを自分で書いてるんでしょうか
0598デフォルトの名無しさん
2010/03/15(月) 16:45:53directXならxファイルとテクスチャ
0599デフォルトの名無しさん
2010/03/15(月) 17:01:030600デフォルトの名無しさん
2010/03/15(月) 17:11:260601デフォルトの名無しさん
2010/03/15(月) 17:26:340602デフォルトの名無しさん
2010/03/15(月) 19:15:340603デフォルトの名無しさん
2010/03/15(月) 19:58:490604デフォルトの名無しさん
2010/03/15(月) 20:09:520605デフォルトの名無しさん
2010/03/15(月) 20:37:140606デフォルトの名無しさん
2010/03/15(月) 21:00:08もちそんな感じ。
ただ、賢いゲームだと足首のあたりとか膝とかスカートとかが
地面/肌に吸いつくように動くものもある。
0607デフォルトの名無しさん
2010/03/15(月) 21:13:12じゃあプログラマーの査定下げておきますね
0608デフォルトの名無しさん
2010/03/15(月) 21:34:090609デフォルトの名無しさん
2010/03/15(月) 22:37:530610デフォルトの名無しさん
2010/03/15(月) 23:10:49http://www.4gamer.net/games/032/G003263/20100315009/
[GDC 2010]「EyefinityとCrossFireXをご贔屓に!」。AMDが両技術実装上のポイントを解説し,サポートを呼びかけ
http://www.4gamer.net/games/085/G008506/20100315027/
0611デフォルトの名無しさん
2010/03/16(火) 02:13:48冗談なので安心してくださいね^^
0612デフォルトの名無しさん
2010/03/16(火) 04:10:43いやだ
0613デフォルトの名無しさん
2010/03/16(火) 18:17:110614デフォルトの名無しさん
2010/03/16(火) 18:23:150615デフォルトの名無しさん
2010/03/16(火) 23:36:07プログラムを使って簡単なゲームを作りたいと思っています。
まず、プログラム言語はどれから覚え始めれば効率が良いでしょうか?
0616デフォルトの名無しさん
2010/03/16(火) 23:39:340617デフォルトの名無しさん
2010/03/16(火) 23:42:590618デフォルトの名無しさん
2010/03/16(火) 23:49:03HSPが一番簡単。本当に簡単なゲームならすぐに作れるようになる
VBやC++は汎用的で少し敷居が高い。あと導入直後の画面がごちゃごちゃしすぎ
C++は覚えれは最強だけどかなりしんどい。俺も覚えたけど結局VB使ってる
最終的にはC#ぐらいがちょうどいいんじゃね
最終的にやることは同じだし、言語ごとに記述方法や決まりが違うぐらいなので
最初は使い易い奴が一番いいと思う
0619デフォルトの名無しさん
2010/03/16(火) 23:56:32ありがとうございます。
早速じゃんけんゲームとやらを作れるまでやってみようと思います。
もう一つ、質問なのですが
なでしこはゲーム等には向いてないのでしょうか?
全て日本語なので分かりやすいんですが・・・
0620デフォルトの名無しさん
2010/03/17(水) 00:44:24イライラするより、ゲームを作ることに集中できた方がいい
他の言語に手を出すのは限界を感じてからでも遅くない
0621デフォルトの名無しさん
2010/03/17(水) 00:53:060622デフォルトの名無しさん
2010/03/17(水) 01:27:060623デフォルトの名無しさん
2010/03/17(水) 01:29:34本当に中学生なら「なでしこ以外」でおやり。
小学生でBASIC&マシン語を始めた俺の経験だと、英単語への抵抗も薄れるし。
0624デフォルトの名無しさん
2010/03/17(水) 01:44:18全部アルファベットの方がプログラムに独特の書き方も「そんなもんか」で済む。
つーか、表示が日本語のソフト作る気なら、周りがアルファベットの方が読みやすい。
漠然とゲーム作るというだけならC#あたりがいいんじゃないかね。
とりあえずググって情報収集しやすい言語を選ぶべきだと思う。
0625デフォルトの名無しさん
2010/03/17(水) 01:51:340626デフォルトの名無しさん
2010/03/17(水) 02:04:510627デフォルトの名無しさん
2010/03/17(水) 02:31:07stdみたいなやつってチョベリバ的な略し方なんじゃないの?
0628デフォルトの名無しさん
2010/03/17(水) 04:50:330629デフォルトの名無しさん
2010/03/17(水) 04:53:42スタンダードをstd
メッセージをmsg
ってのはどういう法則なんだろうか?
0630デフォルトの名無しさん
2010/03/17(水) 04:57:01連続してるのは1つに
先頭3文字
0631デフォルトの名無しさん
2010/03/17(水) 05:01:22stnじゃないの?
向こうはnは母音なの?
0632デフォルトの名無しさん
2010/03/17(水) 05:05:170633デフォルトの名無しさん
2010/03/17(水) 05:56:390634デフォルトの名無しさん
2010/03/17(水) 06:38:47個人的にはC言語(DXライブラリ)かHSPがお勧め。
>なでしこはゲーム等には向いてないのでしょうか?
向いていないことはないかもしれないがマイナーな言語なので情報量が少ない。
なでしこで作られたゲームって見たことないし。
0635デフォルトの名無しさん
2010/03/17(水) 09:02:46C++よりはましかもしれんが
0636デフォルトの名無しさん
2010/03/17(水) 09:28:590637デフォルトの名無しさん
2010/03/17(水) 10:11:240638デフォルトの名無しさん
2010/03/17(水) 10:48:530639デフォルトの名無しさん
2010/03/17(水) 10:52:540640デフォルトの名無しさん
2010/03/17(水) 10:53:47初心者の最大の敵は三日坊主だと思う。
モチベーションを保つ特別な条件(友達とか)があるのでなければ、
その点を考慮すべきだと思う。
C++ や C# は独学が難しい部類に入ると思う。
最初の言語がそれらで挫折しなかった人は、特別優れた人だと思う。
ROM-BASIC でさえ、俺の周りでは、投げ出さないのは五人に一人くらいだった。
俺は消極的に javascript を推しておく。
最後に、効率云々というのは、努力を嫌がっているように見える。
経験こそが君に力を与えるから、目の前のことを頑張れ。
0641デフォルトの名無しさん
2010/03/17(水) 14:08:43フリーで環境作れるし、スプライト出して動かすくらいなら5秒で出来る。
成果がすぐにみえるってのは初学の段階では重要な点だと思う。
それなりに歴史があるからネットに転がってる情報量も多いしね。
0642デフォルトの名無しさん
2010/03/17(水) 14:18:26すまなかったな。
0643デフォルトの名無しさん
2010/03/17(水) 15:49:46なんで怒ってるかわかんない
0644615
2010/03/17(水) 18:03:00まずはHSPから始めてみます
またお世話になるかもしれませんが
宜しくお願いします・・・
0645615
2010/03/17(水) 18:08:57すいません
0646デフォルトの名無しさん
2010/03/17(水) 18:14:32○上げ
何度も連投すいません
あぁ恥ずかしい
0647デフォルトの名無しさん
2010/03/17(水) 18:26:02wonderfl使えばブラウザだけで始められるな。
さらに人のソースの改造からスタートできるし学習にもいいと思う。
0648デフォルトの名無しさん
2010/03/17(水) 19:52:25HSP を始めるなら、次はこのスレではなく HSP スレに行きなさい。
それと、2ch 以外の HSP コミュニティに打ち解けなさい。
最後に、ム板では質問の時に age て良いし、むしろその方が良い。別に怒られないし、回答が早くなる可能性が少しだけある。お礼の時は sage ると夏とか冬とか言われなくていいかも。
0649デフォルトの名無しさん
2010/03/17(水) 22:55:34おまえ面白いな
0650デフォルトの名無しさん
2010/03/18(木) 04:33:09HSPはその点だけみても他を圧倒してるな
0651デフォルトの名無しさん
2010/03/18(木) 11:01:12一行目と二行目の間で何が起こったの?
0652デフォルトの名無しさん
2010/03/18(木) 11:52:13上の場合に限らず、キャラクタ同士が衝突した場合に互いが及ぼし合う影響の表現なんだけど。
ベタな書き方だとif文の嵐になるよね。
0653デフォルトの名無しさん
2010/03/18(木) 11:55:110654デフォルトの名無しさん
2010/03/18(木) 12:12:26攻撃力とHPだけでは駄目じゃない?
アイテム系と敵キャラで明確に分けて処理してればいいかもしれんけど。
それに敵に接触した場合に特別な効果を与えたいときない?
0655デフォルトの名無しさん
2010/03/18(木) 12:40:060656デフォルトの名無しさん
2010/03/18(木) 12:47:41環境クラスをひとつ作る。
敵や自機、弾、アイテムなどが時刻 t においてある場所に存在するということは、
それらが環境のその位置に何らかの影響を及ぼしているはず。
なので、敵クラスは環境クラスに対して、自分がいまいる位置と及ぼしている影響を教える。
(たとえば、自機だけに対してダメージを与える、という影響)
自機クラスも環境クラスに対して、自分がいまいる位置と及ぼしている影響を教える。
(たとえば、接触したアイテムを自分のものにする、という影響)
環境クラスは敵クラスや自機クラスなどから及ぼされた影響を合成し、
敵クラスや自機クラスなどに対して、結果として変化した環境の状態を教える。
敵クラス、自機クラスは環境から伝えられた情報に応じて自分のステータスを変更する。
0657デフォルトの名無しさん
2010/03/18(木) 12:50:05オブジェクト指向とは関係ない気がするが。
http://www.google.co.jp/search?q=%E3%83%80%E3%83%96%E3%83%AB%E3%83%87%E3%82%A3%E3%82%B9%E3%83%91%E3%83%83%E3%83%81
0658デフォルトの名無しさん
2010/03/18(木) 13:08:49それだと各キャラクタクラスが他のクラス(影響を与える対象)を知っていることになるよね。
キャラクタを追加するとき大変だよ。
全キャラクタクラスに手を入れなきゃ。
0659デフォルトの名無しさん
2010/03/18(木) 13:53:18そんなワケない。
class Element {};
class Ship : public Element {};
class MyShip ; public Ship {};
class Enemy : public Ship {};
class World {
std::list<Element*> elements; // myship, enemies, bullets, etc...
MyShip myShip;
std::list<Enemy*> enemies;
public:
void update( float t );
};
みたいにして、World::update() の中で、個々のキャラクタを見て、一括で解決するの。
自機とか個別の敵が細かいルールを把握してたら変だろ?
例えば RPG で武器に色々な属性がある。
ある武器に毒の属性が付いているとして、その毒の処理は武器毎に実装されたルーチンを呼ぶわけではなく、武器のフラグを見て戦闘解決ルーチンが処理する。
それと一緒。
0660デフォルトの名無しさん
2010/03/18(木) 15:12:18ところでWorld::updateではif文中心になるの?
>>657のダブルディスパッチの応用で上手くまとまりそうな気もするけど。
0661デフォルトの名無しさん
2010/03/18(木) 16:14:55struct command
{
virtual ~command(void) {}; virtual void operator () (Jiki &) {}; virtual void operator () (Tekki &) {};
}
っていうファンクタベースを用意して
struct add_speed : public command // 自機ならスピードアップ、敵機なら何もしない
{
void operator () (Jiki &e) {e.add_speed(m_val);}; private: int m_val;
};
みたいなサブクラスを沢山作る
敵機やアイテムはサブクラスを生成して当たり判定と関連付けてフレームごとにどこかに登録して(ついでに空間分割とか)
そんで弾や機体と衝突判定する代わりにこのコマンドと衝突判定して当たってたらダブルディスパッチで実行
例外的な挙動は自機・敵機クラスのサブクラスでポリもって解決する
これでカプセル化されてて汎用的で拡張しやすい構造になる・・・と思う
0662デフォルトの名無しさん
2010/03/18(木) 16:25:12@は短剣を投げた、
A. オークは3のダメージ
B. スライムは3のダメージ
@はポーションを投げた、
A. オークは3のダメージ
B. スライムに当たって跳ね返った
この「跳ね返った」の処理はポーションクラスが敵の種類を見て
if文で特別な処理を実装すればいいのですか?
それとももっとスマートな実装がありますか?
0663デフォルトの名無しさん
2010/03/18(木) 17:04:47敵と弾のあたり判定とか、相互関係にある部分は?
そして誰がそのクラスを生成するの?
それ用のサブクラスを作りまくって具体的な実装をするなら、あまりにも密接な関係になるし
何より関数群作るのと効果がかわらん気がするのだが
0664デフォルトの名無しさん
2010/03/18(木) 17:33:09キャラクタにはA,B,Cの三種類がある。
これらが他者と衝突した場合には、それぞれ異なる処理を行う。
例えば、AとBが衝突した場合、AにはBに設定された値分の点数を与え、Bには削除フラグを立てるなど。
0665デフォルトの名無しさん
2010/03/18(木) 17:38:43当たり判定はそれ用の管理者クラスで
生成は任意のゲーム内要素が
ファンクタはインターフェースしか知らないから密接な関係にはならない
パラメータと処理をカプセル化して時間をおいた後でも使えるのが関数より便利(function、bind使うと良さがわかるとおもう)
0666デフォルトの名無しさん
2010/03/18(木) 17:48:36そこがずれてるんではなくて、誰がどうやって管理しあうのかで意見が分かれてるだけ
統括的に管理する方法
・巨大なクラスになる
・拡張性が低い(何度も書き直すことになる)
ボリモー、ダブルディスパッチの方法
・上の方法よりは拡張性が高い
・全てのパターンをクラス化しなくてはならない
・このクラスを管理するクラスも作ることになるが、管理はまあ楽
普通に考えればどっちも合わせて使うかね
0667デフォルトの名無しさん
2010/03/18(木) 17:53:00キャラクタを種類ごとにA,B,Cの3つに分ける。実装上はそれぞれの抽象クラスを作る。
各種類ごとに具体的な敵のクラスa,b,cを作る。それぞれA,B,Cから派生させておく。
A,B,Cについては衝突時の処理を全パターン書いておく。
新しいキャラクタdを追加しようとした際に、dの扱いがaと同じであればAを継承すれば済む。
今あるA,B,Cのどれにも当てはまらない挙動が必要ならば、新しくDを作って、
衝突の処理を書き足す。
STGなら自機、敵機、自弾、敵弾くらいの種類を作ればいいんじゃないかね。
ステージ上の障害物も必要かもしれんが、これは別の扱いをするのも手。
0668デフォルトの名無しさん
2010/03/18(木) 18:25:01なるほどね
ただ、俺だったらスピード操作とかpublicな関数にしたくないから継承使うけど
0669デフォルトの名無しさん
2010/03/18(木) 18:46:32多重ディスパッチする方法を紹介してるね
0670デフォルトの名無しさん
2010/03/18(木) 18:47:460671デフォルトの名無しさん
2010/03/18(木) 18:49:32テンプレートテクニックにも仮想関数テーブルの作成方法がのってたな
0672デフォルトの名無しさん
2010/03/18(木) 19:21:39コンパイル時に頑張ってるのに実行時で遅くなるとかアホかと
0673デフォルトの名無しさん
2010/03/18(木) 20:21:160674デフォルトの名無しさん
2010/03/18(木) 20:23:41その衝突時の処理は何処に書くかだよね。
各クラス内だとキャラクタの種類を増やしたときに全キャラクタクラスに追加するキャラクタに
対する処理を追加しないといけない。
出来るだけ既存のクラスには手を入れたくないよね。
0675デフォルトの名無しさん
2010/03/18(木) 20:41:19敵クラスはその衝突判定クラスを持つというやり方もある
0676デフォルトの名無しさん
2010/03/18(木) 21:58:490677デフォルトの名無しさん
2010/03/18(木) 23:34:45なぜバグを仕込みたがるかね。
0678デフォルトの名無しさん
2010/03/18(木) 23:37:000679デフォルトの名無しさん
2010/03/18(木) 23:42:510680デフォルトの名無しさん
2010/03/19(金) 00:18:39種類によって判定方法がいくつかあるのをどうするかって話じゃないの?
0681デフォルトの名無しさん
2010/03/19(金) 00:28:210682デフォルトの名無しさん
2010/03/19(金) 00:29:22virtual void OnCollide(自分, 相手) = 0;
};
class A : public Base {
void OnCollide(自分, 相手){実装する.}
};
class B : public Base {
void OnCollide(自分, 相手)実装する{}
};
if(AとBが衝突){
0683デフォルトの名無しさん
2010/03/19(金) 00:29:260684デフォルトの名無しさん
2010/03/19(金) 00:30:21A->OnCollide(A, B);
B->OnCollide(B,A);
}
みたいんじゃだめ?
0685デフォルトの名無しさん
2010/03/19(金) 00:32:250686デフォルトの名無しさん
2010/03/19(金) 00:39:05Collision.Add(A);
Collision.Add(B);
Collison.Update() この中でif文→コールバックされる
0687デフォルトの名無しさん
2010/03/19(金) 00:48:23暇なときにでも立ち読みするといい。
0688デフォルトの名無しさん
2010/03/19(金) 00:57:03なるほど、Moreじゃない方しか持ってないんだよなあw
0689デフォルトの名無しさん
2010/03/19(金) 01:12:25なんで引数に自分のアドレスわたしてるの?
0690デフォルトの名無しさん
2010/03/19(金) 01:15:400691デフォルトの名無しさん
2010/03/19(金) 01:32:44引数に相手が必要ってことは
関連しあうオブジェクトのクラスが動作に必要ってことだろ?
コンパイルするだけでもそいつ必要になんじゃん
切り出して単体テストできねーよ
あんまりうまくない設計だな
基本的にAとBの関連しあうものが存在するときは
それを包括するCが必ず必要になる
それはゲームによってシーンだったりステージだったり・・・
AにBを持たせるのもBにAを持たせるのもよくない
2つの関連するものがあるときは必ず別のクラスを用意すると綺麗にいく
覚えておくと便利だぞ
0692デフォルトの名無しさん
2010/03/19(金) 01:37:560693デフォルトの名無しさん
2010/03/19(金) 01:50:49virtual void SetDamage(int) = 0;
virtual int GetAttack() = 0;
};
class A : public Base {
void OnCollide(相手){ SetDamage(相手->GetAttack());.}
};
みたいにすれば相手のこと知らなくてもいいんじゃない?
(Baseを継承した何かとだけ知っている)
0694デフォルトの名無しさん
2010/03/19(金) 01:58:48何かに当たってダメージがいくつ入るかだけ分かればいいなら、それでいいと思う
シューティングとかね
0695デフォルトの名無しさん
2010/03/19(金) 01:59:510696デフォルトの名無しさん
2010/03/19(金) 02:10:58class Base {
virtual bool IsEnemy() = 0;
};
class EnemyBase : public Base { bool IsEnemy() { return true; } }
class EnemyA : public EnemyBase{}
class EnemyB : public EnemyBase{}
class A : public Base {
void OnCollide(相手){
if(相手->IsEnemy()){
EnemyBase *e = static_cast<EnemyBase *>(相手);
e->...
}
};
とかすればEnemyBaseは必要になってしまうけど、EnemyAなのかEnemyBなのかまでは知らなくて済む。
0697デフォルトの名無しさん
2010/03/19(金) 03:22:05衝突判定用関数ポインタ入れた2次元マップから、
2つのオブジェクトの型IDで関数ポインタ取得してそれに突っ込むってのはだめ?
衝突用以外の用途にもそれ用の型ID持たせておけばいいような。
オブジェクト指向的には、用途ごとの基底抽象クラスを用意して、
複数継承するのかな?
excelとかで管理しといて、コード生成とかさせておけば
継承構造とかなくても見通しはいいと思うなぁ。
0698デフォルトの名無しさん
2010/03/19(金) 03:33:460699デフォルトの名無しさん
2010/03/19(金) 04:41:13こまけぇこたぁいいんだよ
0700デフォルトの名無しさん
2010/03/19(金) 04:51:29EnemyCだけ特殊な処理したいときはIsEnemyCを用意するの?
0701デフォルトの名無しさん
2010/03/19(金) 06:41:45そうやって無駄に回避することになんの意味があるの?
結局、その関数内でそいつの情報が必要なら
強制的にインターフェースを固定したところでそれはvoid*と変わらないじゃない
ようはそういう言語レベルの小手先の回避を言いたいんじゃなくて
動作に相手が必要になっちゃうその設計の糞さについて考えてほしいわけよ
ぶっちゃけカプセル化できてないじゃない
ちゃんと閉じた世界を構築しなきゃダメよ
0702デフォルトの名無しさん
2010/03/19(金) 08:45:41同意
実はこの問題ってなんだかんだで上手い実装方法ないんだよな
だから面白いんだけど
ベースクラスはいるとしても、特殊な動作やインターフェースクラスを用意してやるのもいいかもしれない
struct EmemyInterface : public Enemy
{
// 毒操作
// collision用データを返すとか
};
c++ならテンプレート使ったらもっと汎用的にできる
0703デフォルトの名無しさん
2010/03/19(金) 08:47:400704デフォルトの名無しさん
2010/03/19(金) 08:58:52くらだんところで悩むとゲーム完成しないぞ
0705デフォルトの名無しさん
2010/03/19(金) 09:01:04privateなメンバ変数やfriendを使用しないクラス化を行うこととある
極力修正しなくていいように設計する
そうすることで単体でテストも可能だし
その作成したクラスをミドルなライブラリとして使い回しできる
もし修正が必要になったら、直接修正するのではなく
継承先で処理を追加するようにしていく
これだけでもかなり効率があがるし
凡ミスもかなり減る
だからコピペ実装はしない
0706デフォルトの名無しさん
2010/03/19(金) 10:49:29それじゃあ新しいキャラクタを追加するときに全キャラクタクラスを修正しなきゃいけないから駄目では?
0707デフォルトの名無しさん
2010/03/19(金) 18:31:250708デフォルトの名無しさん
2010/03/19(金) 20:13:07だから小手先の技術についての話はしてないってば
あっちいってろばーか
0709デフォルトの名無しさん
2010/03/19(金) 23:53:39重要な設計要素だろ。UMLにもあるぞ。
0710デフォルトの名無しさん
2010/03/20(土) 01:23:10面倒なことするなあ(笑)
0711デフォルトの名無しさん
2010/03/20(土) 01:23:520712デフォルトの名無しさん
2010/03/20(土) 01:26:08十二分に開発した経験があるならな
ないならスパゲティの出来上がり
0713デフォルトの名無しさん
2010/03/20(土) 01:26:40お前が誤解してるだけじゃ
0714デフォルトの名無しさん
2010/03/20(土) 01:33:54なんないよ
結局はそのクラスで抱え込むかどうか
インターフェースなんぞあろうがなかろうが設計の本質には微塵も影響しない
0715デフォルトの名無しさん
2010/03/20(土) 01:37:380716デフォルトの名無しさん
2010/03/20(土) 01:37:51JAVAで言うインターフェースが重要なんじゃなくて、仕様変更で入出力の設計を大幅に
変えなきゃいけないようなのはダメだし、頭の中だけでも拡張性を考えておくのは当然だな。
0717デフォルトの名無しさん
2010/03/20(土) 01:40:13拡張性や汎用性なんか考えて組むのは素人
必要なものを必要なだけ組むのが真のプロ
0718デフォルトの名無しさん
2010/03/20(土) 01:47:15それは工場のラインを支えてるような熟練工だな。
分野が違うんだろうけど、ゲームにおいてはそんなPGは長くやれない。
0719デフォルトの名無しさん
2010/03/20(土) 01:54:15馬鹿じゃねぇの
もう10年近くPGやってんすけど?
納期残り1ヶ月、あ、このマップ2D→3Dにします
の変更を人生で3回ぐらい経験します他w
はっきりいうけど自分が想定してる範囲の仕様変更なんざ仕様変更に入らない
最小限で作る→仕様変更→関係部分の組んだコードは思い切ってすべて捨てる→新しく組む
のが絶対速い
0720デフォルトの名無しさん
2010/03/20(土) 01:57:150721デフォルトの名無しさん
2010/03/20(土) 01:57:22XPって流行ったよね。あれなかったことにされてる気がする。
0722デフォルトの名無しさん
2010/03/20(土) 01:59:47そりゃその方が速いさ。自分一人ならな。
どのような仕様変更がある可能性があって、それが他の人でも対応できるかどうかを
考えたら、そんな「俺様最強」なことは言えないよ。君は優秀なんだろうけど、あと10年
くらいやればわかると思うよ…
0723デフォルトの名無しさん
2010/03/20(土) 02:00:26・変化を抱擁せよ
・You Aren't Going to Need It(今必要なことだけ行う)。
という開発手法が存在する。
0724デフォルトの名無しさん
2010/03/20(土) 02:05:20一つは複数のオブジェクトの共通の性質という設計上の概念。
もう一つはC++やJavaなどで使う基底クラスとかの意味での(実装レベルの)インタフェース。
>>714の言うように、実装レベルでどのようなインタフェースクラスを使うかは設計とは関係ない。
一方で、設計上オブジェクトがどのような共通の性質を持っているべきかを定義しておくことで
オブジェクトの責任範囲を明確化することができる。これは>>709の言うように重要な設計要素。
0725デフォルトの名無しさん
2010/03/20(土) 02:08:45黙れ
上の例でもそうだけど
こんな1つのキャラを動作させるのに別のキャラのソースが必要みたいな
汚く粘ついたクラスなんて言語道断なんだよ
こういうのはいざ捨てるときに綺麗に捨てられない
カプセル化をやるなら極限までやれ
自機のクラスのメソッドの引数に敵のクラスなんてついてるようなのは設計うまくない変更に弱い
いざその敵捨てたときに全然関係ない自機までいじってるとか存在自体が邪魔なPG
0726デフォルトの名無しさん
2010/03/20(土) 02:10:00俺もそう思う。
かっこいい仕様のインターフェース作るのは、
それを売りにしたライブラリ作ってる人ぐらいでいいと思う。
で、思い切って捨てるっていっても、本当にゴミ箱行きじゃなくて、
どっかに保存はしておいて、いずれ必要になったら参考にするっていう
再利用の仕方でもいいと思う。
0727デフォルトの名無しさん
2010/03/20(土) 02:12:030728デフォルトの名無しさん
2010/03/20(土) 02:17:01いや、その個別のケースについてどうこう言ってるわけではないんで気にしないでくれw
敵であるか自機であるか、ってのは本来ゲームプログラミングにおいて別のクラスにする
必要も無いわけだからw
まあ別にしてもいいけど、共通化されたオブジェクトを継承する形とかにしないと自機をCPUに
切り替えて眺めるなんてオプションも簡単に出来ないわけで…
0729デフォルトの名無しさん
2010/03/20(土) 02:18:060730デフォルトの名無しさん
2010/03/20(土) 02:20:37危なげない結論に落ち着きそうだな。
「適切なレベル」って言葉に全ての問題を押し込めただけなんだがw
0731デフォルトの名無しさん
2010/03/20(土) 02:21:400732デフォルトの名無しさん
2010/03/20(土) 02:25:18存在する価値なし
0733デフォルトの名無しさん
2010/03/20(土) 02:27:240734デフォルトの名無しさん
2010/03/20(土) 02:28:400735デフォルトの名無しさん
2010/03/20(土) 02:29:31君はJAVAプログラマーかも知れないが、じゃあそれをCでどう書くのってのも考えて置いた方が幅が出るよ。
>>730
その危なげない結論に至る過程で、みんな考えるんじゃないの?
同じ環境・スタッフでやってるわけじゃないから。
>>732
その通り。結果がすべて。だが、それを続けるためには、それだけではない。
俺の屍を越えて行け、ってやつ?w
0736デフォルトの名無しさん
2010/03/20(土) 02:54:32> 君はJAVAプログラマーかも知れないが、じゃあそれをCでどう書くのってのも考えて置いた方が幅が出るよ。
今はC++使えばいいわけで、あんまり意味無い気がする。
0737デフォルトの名無しさん
2010/03/20(土) 03:17:59Cと言ってる。古臭くてどうにかしろよ!とか言っても、パチスロ系やらキッズ向けとかの端末では、
C++じゃダメってのも、かなりあるみたいだよ。俺はその分野はやったこと無いけど。
まあ少なくとも、単一プラットフォーム(日本ではゲームコンソールが極端に発達したからね)で商売になるから
いいや、って時代は終わった。想定しうるすべてのプラットフォームを考えると、基礎的なライブラリをCで書いて
置くのが、一番融通が利くってのは皮肉な話だね…
0738デフォルトの名無しさん
2010/03/20(土) 03:42:550739デフォルトの名無しさん
2010/03/20(土) 03:57:32テンプレートなんてそもそも動かないしなw
標準〜とか書いてあるもん大抵ダメだしw
0740デフォルトの名無しさん
2010/03/20(土) 04:19:22> C++じゃダメってのも、かなりあるみたいだよ。俺はその分野はやったこと無いけど。
ねーよ。だって最悪 gcc で済むんだぜ?
糞コンパイラベンダを生き長らえさせるためにC縛りを強要されるってんなら
ご愁傷様としか言えないが、それが世間一般だと思われては困る。
0741デフォルトの名無しさん
2010/03/20(土) 04:37:00俺は関係無いが、gccで何でも済むと思ってるのが間違いだし、それでIO周りが書けるなら、
世話ないだろw 悪いがキャリアのあるゲームPGとは間違っても思えないな。
糞コンパイラベンダでも何でもいいが、そんなのは君のオナニーであって、君の理想が何の
言語だか知らんが、その理想の言語でGPUプログラミングしたらいいんじゃねえの?w
0742デフォルトの名無しさん
2010/03/20(土) 04:45:340743デフォルトの名無しさん
2010/03/20(土) 05:05:03gccで何でも済むと思ってるのも間違いだし、Cしか使えないのが当然だと思ってるのも間違い。
0744デフォルトの名無しさん
2010/03/20(土) 05:57:24名前空間じゃ駄目?
0745デフォルトの名無しさん
2010/03/20(土) 06:48:44駄目!
0746デフォルトの名無しさん
2010/03/20(土) 14:01:390747デフォルトの名無しさん
2010/03/20(土) 14:09:44その点が閉じた図形の中になかったら再発生させる。
これをN回繰り返す。
0748デフォルトの名無しさん
2010/03/20(土) 14:24:51図形にあわせて角を変形させる。
位置がいまいち?シラネ。
0749デフォルトの名無しさん
2010/03/20(土) 14:28:310750デフォルトの名無しさん
2010/03/20(土) 14:32:100751デフォルトの名無しさん
2010/03/20(土) 14:37:15>>748
>>749
>>750
みなさん素早いレスありがとうございます。
もう少し具体的に言うと、閉じた図形は辺で構成されていて、各頂点の座標は既知です。
最初は747さんのような方法をやろうと思ったのですが、一発でやる効率的な方法はないかと思いまして。
0752デフォルトの名無しさん
2010/03/20(土) 14:55:450753デフォルトの名無しさん
2010/03/20(土) 14:56:24調べたい座標の色を取得
黒なら図形内
デメリット:裏の図形のメモリおよび描画のコストが掛かる
0754デフォルトの名無しさん
2010/03/20(土) 15:01:330755デフォルトの名無しさん
2010/03/20(土) 15:41:00自前でPolyline+Fill、またはPolygonする処理を書く必要があるんじゃねーの?
胸が暑くなるな
0757デフォルトの名無しさん
2010/03/20(土) 16:10:56まず図形を三角形の集まりに分解する
ランダムに図形内の点を選ぶ場合はまずそれらの三角形のどれかをランダムに選ぶ
選び方としてはそれぞれ等しい確率で選ぶか、あるいはその三角形の大きさに比例した割合で選ぶのもいいかもしれない
次にその三角形内のランダムな点を選ぶわけだが
仮にその三角形をOAB、ベクトルOA=a、OB=b、
三角形内の点をPとすると
OP=s(1-t)a + stb ただし 0 ≦ s ≦ 1、0 ≦ t ≦ 1、
ゆえにランダムな点Pを求めるというのは
s, t を 0 ≦ s ≦ 1、0 ≦ t ≦ 1 の範囲でランダムに決めるということに帰着できる
0758デフォルトの名無しさん
2010/03/20(土) 16:26:170759デフォルトの名無しさん
2010/03/20(土) 16:30:38インターフェースしっかりしとけば全部書き直す必要もない
君は実に馬鹿だなあ
0760デフォルトの名無しさん
2010/03/20(土) 16:32:57それが嫌なら大分複雑になる
0761デフォルトの名無しさん
2010/03/20(土) 16:36:08一部が円とかね
0762デフォルトの名無しさん
2010/03/20(土) 16:42:06単純に背景描画を3Dにするだけなら楽じゃね?
インタラクションがあるなら手間かかると思うけどね。
0763デフォルトの名無しさん
2010/03/20(土) 16:45:29ぴったりN個じゃなくてもいいならこれでいいんじゃね?
コードが簡単にかけて、写像計算も棄却チェックも要らないからその分速いだろうし
0764デフォルトの名無しさん
2010/03/20(土) 18:16:07素晴らしいですね!!ありがとうございます!!
0765デフォルトの名無しさん
2010/03/20(土) 18:17:07ぴったりN個必要だったのでそれができなかったんです
0766デフォルトの名無しさん
2010/03/20(土) 18:25:420767デフォルトの名無しさん
2010/03/20(土) 19:54:550768デフォルトの名無しさん
2010/03/20(土) 19:58:430769デフォルトの名無しさん
2010/03/20(土) 20:02:170770デフォルトの名無しさん
2010/03/20(土) 20:03:310771デフォルトの名無しさん
2010/03/20(土) 20:34:260772デフォルトの名無しさん
2010/03/20(土) 20:53:580773デフォルトの名無しさん
2010/03/20(土) 21:01:06そんなことない
なんでもできるじゃん
背景無駄に3Dで操作性だけ2Dとかあるじゃない
0774デフォルトの名無しさん
2010/03/20(土) 21:54:29全体の構造がつかめなくなってきて
2重構造、3重構造なんてあたりまえで
4重構造とかになっていくんだけど
どうやって、仕様把握してる?
0775デフォルトの名無しさん
2010/03/20(土) 22:03:33仕様を把握してるからソースを書いてるんじゃないの?
0776デフォルトの名無しさん
2010/03/20(土) 22:16:470777デフォルトの名無しさん
2010/03/20(土) 22:17:17ゲームの仕様って、プログラム的な構造まで決める物じゃないでしょ?
プログラムの仕様ってなら、そんなの知らんw
お前さんの腕が無いんじゃね?
0778デフォルトの名無しさん
2010/03/20(土) 22:41:19うざい
0779デフォルトの名無しさん
2010/03/20(土) 22:58:50でも知識ゼロ。
どこから覚えて言ったらいいだろう……?
パソコン知識も豊富とは言えないんだ。
0780デフォルトの名無しさん
2010/03/20(土) 23:03:360781デフォルトの名無しさん
2010/03/20(土) 23:11:490782デフォルトの名無しさん
2010/03/21(日) 00:07:19直線の図形であればどんな形であれ三角形に分割できるだろ
あと三角形内の密度に偏りが出るというけど
Oを3つのなかからランダムで選ぶことである程度は解決できないだろうか
0783デフォルトの名無しさん
2010/03/21(日) 00:14:130784デフォルトの名無しさん
2010/03/21(日) 00:14:45それなら確かに凸の方が計算しやすいだろう
でも俺が言いたいのは何でもかんでもプログラムで出す必要はないというわけ
別に三角形の分割位なんて自分で与えるのもそう難しいことじゃないから自分で与えればいいというわけ
大体どうとでも分割できるでしょ
そこは自分で適当に与えましょうよ
0785デフォルトの名無しさん
2010/03/21(日) 00:24:310786デフォルトの名無しさん
2010/03/21(日) 00:24:480787デフォルトの名無しさん
2010/03/21(日) 00:28:54自分で簡単にできることでもわざわざ手間暇かけてプログラミングするPGの方がどうかと思うよw
>多角形の形が実行前にわかってるとは限らないだろ
>各頂点の座標は既知
0788デフォルトの名無しさん
2010/03/21(日) 00:31:50楽するために苦労しようぜ
0789デフォルトの名無しさん
2010/03/21(日) 00:36:14それをいくつか分割した三角形与えるのと似たようなもんだろw
0790デフォルトの名無しさん
2010/03/21(日) 00:36:19実行時には乱数生成とデータ読み込みのコストしかかからない
俺は天才かもしれない
0791デフォルトの名無しさん
2010/03/21(日) 00:39:040792デフォルトの名無しさん
2010/03/21(日) 00:43:54適当なレスだなぁw
0793デフォルトの名無しさん
2010/03/21(日) 00:48:35どうやんの?
データは点の座標と順番だけでできるもんなのかな
0794デフォルトの名無しさん
2010/03/21(日) 00:58:39例えば、
1000. // 問題数
10, // 問題0の頂点数
0, 0 // 頂点0
....
みたいなフォーマットで与えられたらアウトじゃね?
0795デフォルトの名無しさん
2010/03/21(日) 01:10:090796デフォルトの名無しさん
2010/03/21(日) 01:17:52人間がやるんじゃ一旦絵にしてみないといけないだろうし
0797デフォルトの名無しさん
2010/03/21(日) 01:32:06そっから適当に頂点繋げるだけでしょ
あるいは適当な内点と頂点繋いだり
多角形1000個作るのと大差ないよ
0798デフォルトの名無しさん
2010/03/21(日) 01:34:50自分の作ったものでも単なる数値の羅列になる可能性はある。
0799デフォルトの名無しさん
2010/03/21(日) 01:38:230800デフォルトの名無しさん
2010/03/21(日) 01:46:550801デフォルトの名無しさん
2010/03/21(日) 01:47:49手で三角形分割するんなら、N個の点も手で打てばいいんだよw
0802デフォルトの名無しさん
2010/03/21(日) 01:47:510803デフォルトの名無しさん
2010/03/21(日) 01:57:460804デフォルトの名無しさん
2010/03/21(日) 01:58:15N個の点はランダムで与えるものだから全く話が違うでしょw
0805デフォルトの名無しさん
2010/03/21(日) 02:00:21パターンを網羅してランダムに一つ選ぶんだよ
0806デフォルトの名無しさん
2010/03/21(日) 02:07:13n個とか気にしちゃいけないんだよ
文句言ってきたら殴れ
0807デフォルトの名無しさん
2010/03/21(日) 02:12:570808デフォルトの名無しさん
2010/03/21(日) 02:17:17てめえが質問者じゃねえだろ
俺は質問者の意図を汲み取ってそれに対する答え出しただけで
てめえの意図する質問に答えてんじゃねえんだよwww
0809デフォルトの名無しさん
2010/03/21(日) 02:20:13て
俺
て
0810デフォルトの名無しさん
2010/03/21(日) 02:24:30め
は
め
0811デフォルトの名無しさん
2010/03/21(日) 02:27:53手で分割して、最後は殴る。
0812デフォルトの名無しさん
2010/03/21(日) 02:32:48ピクセルでラスタライズ(だっけ)したときに、ピクセルシェーダでランダム点作成すればできないこともない
0813デフォルトの名無しさん
2010/03/21(日) 02:34:140814デフォルトの名無しさん
2010/03/21(日) 02:37:15描画するだけならいいかもな
0815デフォルトの名無しさん
2010/03/21(日) 02:38:050816デフォルトの名無しさん
2010/03/21(日) 02:39:29いってる意味がわからない
相互的に作用してるから何重構造とかいってんの?
0817デフォルトの名無しさん
2010/03/21(日) 02:40:37ピクセルシェーダ自体で数えさせて取得すればいいじゃん
で、も一つのシェーダで描画
0818デフォルトの名無しさん
2010/03/21(日) 02:42:07並列に動作しているから排他制御とかしてやらないとカウントできなくないかな?
0819デフォルトの名無しさん
2010/03/21(日) 02:46:430820デフォルトの名無しさん
2010/03/21(日) 02:51:11そんなに詳しくないからわからんが
一つのメッシュで一つのカウント格納先にすればいいんじゃないの?
同じようなカウントアップ処理作ったことあるけど
普通に個別にカウントしてたが、もしや処理系依存?
数えるピクセルシェーダやって
次にピクセル1000個なら最初の点は確率1/1000
つぎは1/999...とやってけばまあ理屈上は完全ランダムだ
さっきもいったが、厳密な座標データは作成できんがね
0821デフォルトの名無しさん
2010/03/21(日) 02:52:590822デフォルトの名無しさん
2010/03/21(日) 02:53:54中でランダム点、内包すれば次へってのは偏りがでるからな
0823デフォルトの名無しさん
2010/03/21(日) 02:56:56ピクセルシェーダは並列に動いているから、全員で1つの格納先を排他制御しながらカウントアップするのができないんじゃないか
と思って。
0824デフォルトの名無しさん
2010/03/21(日) 02:58:06静的確保と動的確保の違いがわかっていってんの?
0825デフォルトの名無しさん
2010/03/21(日) 03:12:29??
ポリゴンがいくつあろうと、格納先は一つでよくね?
シェーダではカウントアップするだけだし
格納先はプログラム側のデータなわけだし
もし2つメッシュを同時に描画するなら、カウントアップの格納先は2つにすればよくね?
何を疑問にしてるのか具体的にいってもらえないか?
0826デフォルトの名無しさん
2010/03/21(日) 03:17:190827デフォルトの名無しさん
2010/03/21(日) 03:19:59ない
0828デフォルトの名無しさん
2010/03/21(日) 03:24:33ピクセルシェーダの格納先ってテクスチャしか無理じゃないかと思ったが、
GPGPUならできるか。
0829デフォルトの名無しさん
2010/03/21(日) 03:33:34想定上限は決める必要があるが。
0830デフォルトの名無しさん
2010/03/21(日) 03:43:03いや、シェーダ自体にもたせるんじゃなくて
ハンドル通してC++側なりで保持しろっていってんだが
0831デフォルトの名無しさん
2010/03/21(日) 03:55:05シェーダ知らないんだろ
0832デフォルトの名無しさん
2010/03/21(日) 05:39:24月が昇れば口笛吹いて
次の冒険夢見よう
0833デフォルトの名無しさん
2010/03/21(日) 06:21:44少なくともお前よりは詳しいよ
0834デフォルトの名無しさん
2010/03/21(日) 06:37:20ttp://pc12.2ch.net/test/read.cgi/tech/1233076902/
こいつだろ
0835デフォルトの名無しさん
2010/03/21(日) 12:04:38シェーダで並列処理する旨みがなくなるな。
シェーダごとにカウンタを用意して最後にカウンタを合計するのがいい。
だが、そもそも三角分割が求められてないと重複しないように塗りつぶすことができない。
三角分割はできるが実装が面倒。
二次元の多角形の内外判定は簡単にできるから>>747の方法が一番簡単だろうな
0836835
2010/03/21(日) 12:06:39「全部のシェーダが同じカウンタに読み書きすると、読み書きする度に同期しないといけないから」
ということで。
0837デフォルトの名無しさん
2010/03/21(日) 12:16:530838デフォルトの名無しさん
2010/03/21(日) 12:32:31Triangulationは計算機幾何学とかいう分野で研究されてて
アルゴリズムも確立されてるんだが実装がとても面倒くさい。
最初から三角分割済みのデータがあるならいいんだが。
(>>757の方法だと三角の中での確率密度が偏ってるが)
0839デフォルトの名無しさん
2010/03/21(日) 12:47:28直交する 底辺,垂線 に比率を掛ければ偏らないのよ。
0840デフォルトの名無しさん
2010/03/21(日) 12:54:33図形の総ドット数を数え一次元と考えて配列を作り
その個数を上限とした重ならない値のランダムな位置を作りフラグを立て
それに従い点を貼る
これなら問題無いかな?
0841デフォルトの名無しさん
2010/03/21(日) 13:01:37・図形を三角形に分割して各三角形に対し内外判定
・図形のビットマップマスクを使って判定
くらいしか思いつかないからそれに準じた処理しかないと思う。
0842デフォルトの名無しさん
2010/03/21(日) 13:01:400843デフォルトの名無しさん
2010/03/21(日) 13:04:47内外判定
typedef complex<double> C;
double cross(const C&a,const C&b){return a.real()*b.imag()-a.imag()*b.real();}
vector<C> v;//入力
bool inside(vector<C>&v,C p){
int dir=cross(v[1]-p,v[0]-p)>=0?1:-1;
for(int i=1;i<v.size();++i){if((cross(v[i]-p,v[i-1]-p))>=0?-1:1)!=dir)return false;}
if((cross(v[0]-p,v[v.size()-1]-p)>=0?1:-1)!=dir)return false;return true;
}
0844デフォルトの名無しさん
2010/03/21(日) 13:07:550845デフォルトの名無しさん
2010/03/21(日) 13:10:440846デフォルトの名無しさん
2010/03/21(日) 13:16:200847デフォルトの名無しさん
2010/03/21(日) 13:20:13でも直線は任意に取れるから軸平行に取れば意外と計算・判定少ないか?
0848デフォルトの名無しさん
2010/03/21(日) 13:27:32さあ・・・
0849デフォルトの名無しさん
2010/03/21(日) 14:01:520850デフォルトの名無しさん
2010/03/21(日) 14:43:310851デフォルトの名無しさん
2010/03/21(日) 18:14:40見積もれないと見積もっております
0852デフォルトの名無しさん
2010/03/21(日) 21:03:36http://jbbs.livedoor.jp/bbs/read.cgi/news/4988/1269162939/
ICO - 国際著作権機構
ttp://warezer.net/search/user/3512
割れてる人は気をつけて
現在ロリコン校長祭り中
0853デフォルトの名無しさん
2010/03/21(日) 21:38:540854デフォルトの名無しさん
2010/03/21(日) 23:30:190855デフォルトの名無しさん
2010/03/22(月) 08:34:470856デフォルトの名無しさん
2010/03/22(月) 09:40:130857デフォルトの名無しさん
2010/03/22(月) 21:03:48せっかく計算機科学の第二版がでたから線分とか面とかに関わっちゃうゲームプログラマは読みこなしておくのがいいんじゃないの?
0858デフォルトの名無しさん
2010/03/22(月) 22:06:100859デフォルトの名無しさん
2010/03/22(月) 22:12:240860デフォルトの名無しさん
2010/03/22(月) 22:13:33参考までにISBN番号教えてよ
0861デフォルトの名無しさん
2010/03/22(月) 22:46:16つーか、三角形分割の章はネットで公開されてるだろ。
0862デフォルトの名無しさん
2010/03/22(月) 23:11:46ttp://warezer.net/search/user/3871
0863デフォルトの名無しさん
2010/03/23(火) 20:43:410864デフォルトの名無しさん
2010/03/23(火) 20:51:04余裕で取れる程度のスキルは持ってください
0865デフォルトの名無しさん
2010/03/23(火) 21:08:13じゃあとりあえず資格をとってからアルバイト探すか
0866デフォルトの名無しさん
2010/03/23(火) 21:17:190867デフォルトの名無しさん
2010/03/23(火) 21:18:28分かります
0868デフォルトの名無しさん
2010/03/23(火) 21:25:040869デフォルトの名無しさん
2010/03/23(火) 21:31:50ゲームプログラミングテクニックライセンス 準1級
ゲームクリエイターズスキル 1級
0870デフォルトの名無しさん
2010/03/23(火) 22:55:13輝度を抽出するのにはどうしたらいいでしょうか?
[+0.2125f, +0.7154f, +0.0721f]との内積では崩れるんです。
0871デフォルトの名無しさん
2010/03/23(火) 23:07:270872デフォルトの名無しさん
2010/03/23(火) 23:14:060873デフォルトの名無しさん
2010/03/23(火) 23:18:12とりあえずバッファから読もうとしてる値が読めてるか確認してみればいいんじゃね?
0874デフォルトの名無しさん
2010/03/23(火) 23:24:150875デフォルトの名無しさん
2010/03/23(火) 23:30:41[+0.2125f, +0.7154f, +0.0721f]との内積で輝度を求める方法は
やってみたらそれっぽくなった的な、結構適当なもので
多分RGBがそれぞれ1.0以内で有効なのだと思います。
浮動小数点カラーは1.0以上になりうるので、うまくいかないんだと
考えています。(10.0とかにすると黄色っぽくなるような?)
代わる良い方法はないかと探しています。
0876デフォルトの名無しさん
2010/03/23(火) 23:56:37たいてい輝度の変換には
Y = 0.299 * R + 0.587 * G + 0.114 * B
の式を使う。
RGBチャンネルと輝度のとりうる値の範囲が同じなら
8bitカラーだろうと16bitカラーだろうと浮動小数だろうと同じ式でいい。
0877デフォルトの名無しさん
2010/03/24(水) 00:21:280878デフォルトの名無しさん
2010/03/24(水) 01:08:22ググった結果をここで教えて下さい。
0879デフォルトの名無しさん
2010/03/24(水) 01:55:56ttp://www.google.co.jp/search?hl=ja&safe=off&q=%E3%83%88%E3%83%BC%E3%83%B3%E3%83%9E%E3%83%83%E3%83%97+HDR&btnG=%E6%A4%9C%E7%B4%A2&lr=&aq=f&aqi=&aql=&oq=&gs_rfai=
0880デフォルトの名無しさん
2010/03/24(水) 13:36:470881デフォルトの名無しさん
2010/03/24(水) 13:37:590882デフォルトの名無しさん
2010/03/24(水) 13:43:40これは俺もわからん
0883デフォルトの名無しさん
2010/03/24(水) 16:30:570884デフォルトの名無しさん
2010/03/24(水) 16:35:000885デフォルトの名無しさん
2010/03/24(水) 17:04:470886デフォルトの名無しさん
2010/03/24(水) 17:18:510887デフォルトの名無しさん
2010/03/24(水) 18:25:520888デフォルトの名無しさん
2010/03/24(水) 19:28:31フレームレートとは画面書き換え頻度のこと。
レースゲームのフォルツァのように、フレームレート以上の頻度で更新しても構わない。
逆に更新時間が予定フレームレートに間に合わない時は、描画しても前回と同じ絵を描くことになるのでフレーム落ち確定。
更新時間は大丈夫だけど描画時間が予定フレームレートに間に合わない時は、処理落ちさせるかどうかということになる。
させない場合、ティアリングをさせるかどうかという話になる。
更新時間と描画時間は、それぞれ平行に実行できる場合の話。
コンシューマ機では普通だけど、DirectX では描画スレッドを別に立てた時の話になる。
0889デフォルトの名無しさん
2010/03/24(水) 19:29:06そう言った生成や管理を担当するクラスはシングルトンとかにしちゃうと
どこからでもアクセス出来るグローバル変数を作りまくってることになりますよね
これってあまりよくないかと思うのですが
他に解決する方法はありますか?
0890デフォルトの名無しさん
2010/03/24(水) 19:33:55>ゲーム上必要な自機クラスや敵クラスの生成なんかを統括的に管理するクラスは必ず必要ですよね
別に
0891デフォルトの名無しさん
2010/03/24(水) 19:40:13分けたとしても、どこかで生成クラスを実行するクラスが必要になりませんか?
0892デフォルトの名無しさん
2010/03/24(水) 19:50:29衝突判定とかで他のクラスの情報がほしい場合
その統括して管理しているクラスから
敵クラスなりの情報を取得しないといけないし
だからと言ってこのままで良い物なのかも疑問なんですよね
解決策も思いつきませんし
0893デフォルトの名無しさん
2010/03/24(水) 19:54:43シーンクラスに全部おいとけばいいじゃん
0894デフォルトの名無しさん
2010/03/24(水) 19:57:38統括的に管理するクラスのことですよね
巨大クラスになるじゃないですか
だからと言ってシングルトンで分けるのもどうかと思ってるんです
0895デフォルトの名無しさん
2010/03/24(水) 19:58:10生成を統括するクラスを作る必要はないだろ
シーンクラスに直接おけばいいんじゃないの?
0896デフォルトの名無しさん
2010/03/24(水) 20:02:36なるよ
実際なるんだからしょうがない
ここは認めないとダメだ
でもシングルトンなんて使う必要ないじゃん
直接シーンクラスにおけばいいじゃん
自機:1、敵:30種xN体、弾:30種xN個・・・
全部普通に書けばいいじゃん
統括なんてしないよ
JIKI jiki;
TEKI_A tekia[MAXTEKI_A];
TEKI_B tekib[MAXTEKI_B];
TEKI_C
・
・
・
TAMA_A tamaa[MAXTAMA_A];
以下略
って普通にかけばいいじゃん
0897デフォルトの名無しさん
2010/03/24(水) 20:04:02すみません
もう少し詳しく教えていただけませんか?
シーンクラスで敵や背景の生成なんかをnewしながらシーンを繋げるということですか?
そうなると、そのシーンクラスを取得し、敵クラスと情報を取得できないと
衝突判定を独立させられませんよね
0898デフォルトの名無しさん
2010/03/24(水) 20:10:19そこに疑問を感じてるんです
そこで生成するクラスを上手くまとめても
直に管理してるのって何か嫌だと思ってるんです
仕方ないんですかね
0899デフォルトの名無しさん
2010/03/24(水) 20:20:52どれのほうがゲーム向き?
●1
String[] namelist={"ゴブリン","ドラキュラ",....,"サタン"};
●2
String namelist(int index) {
switch (index) {
case 0: return "ゴブリン";
case 1: return "ドラキュラ";
....
case 30: return "サタン";
default: return null;
}}
●3
String namelist(int index) {
String[] list={"ゴブリン","ドラキュラ",....,"サタン"};
return list[index];
}
0900デフォルトの名無しさん
2010/03/24(水) 20:31:10どれも微妙くないか
追加するとき手加えないといかんよ
0901デフォルトの名無しさん
2010/03/24(水) 20:31:17まとめる必要が無い。
まとめたクラスを使う側がいるだろ?
そいつは何を生成するか分かってて呼ぶんだろ?
なら直接呼べばよい。
その生成ルーチンを必要としているのはひと握りなので、そいつらにだけ便利に作ればよい。可能なら他から見えないともっと良い。
>>899
3が良い。
例えばユーザー定義モンスターの追加とかの時に、呼び出し側を変える必要が無い。
0902デフォルトの名無しさん
2010/03/24(水) 20:42:28なるほど
ここらへんは仕方ないみたいですね
詳しい説明ありがとうございました
0903デフォルトの名無しさん
2010/03/24(水) 20:46:39{
public:
void update(void) { user->update(); for_each(mobs, Update()); }
private:
User *user;
list<Mob *> mobs;
};
//---
manager
{
public:
void update(void) { user->update(); for_each(mobs, Update()); }
private:
User *user;
list<Mob *> mobs;
}
Stage
{
public:
void update(void) { manager.update(); }
private:
Manager manager;
};
どっちでもいいんじゃない
後でいろいろ付け足していくんなら下がいいと思う
0904デフォルトの名無しさん
2010/03/24(水) 21:07:17作っちゃうよね
0905デフォルトの名無しさん
2010/03/24(水) 21:07:54形は少し違いますが、現在下みたいな管理方法を取ってます
他にディスパッチできる所を作って見ます
ありがとうございました
0906デフォルトの名無しさん
2010/03/24(水) 21:08:59マネージャクラスたくさんあるんですが…
いけないんですか??
0907デフォルトの名無しさん
2010/03/24(水) 21:14:070909デフォルトの名無しさん
2010/03/24(水) 21:17:00あくまで同一クラスのインスタンスを管理するサブルーチン的なもんならいいけど
そこに数種類のクラスをぶち込んで〜っていうのはいやなにおいがするね
0910デフォルトの名無しさん
2010/03/24(水) 21:21:01その中にゲームの全てのコードを詰め込んだって「ゲーム管理」には違いないわな
0911デフォルトの名無しさん
2010/03/24(水) 21:45:28読み込んだステージデータをもとに
mana.registerEnemy(Enemy *p);
とかでゲームに登録して、さらにpにmanaへのポインタか参照を持たせる
pがゲームの状況(たとえばプレイヤーの情報)を知りたければ
pmana->getPlayerInfo(void);
として返されたプロクシを使って作業する(直接playerの参照を返すことは避ける)
弾丸を打ちたければ
Enemy::shot(param pa){ pmana->registerEnemyBullet(bullet::create(pa)); }
みたいな感じで
循環参照にさえ気をつければ、今のところ別に変な問題も起こってないけど・・・なにがだめなのかなぁ
0912デフォルトの名無しさん
2010/03/24(水) 21:47:10それって使う側はたまったもんじゃないからやめてほしいんだよね
0913デフォルトの名無しさん
2010/03/24(水) 21:48:18アクセス方法が悪夢にしか見えない
0914デフォルトの名無しさん
2010/03/24(水) 21:56:150915デフォルトの名無しさん
2010/03/24(水) 21:56:550916デフォルトの名無しさん
2010/03/24(水) 22:33:15お前のゲームは面白くないけどな
0917デフォルトの名無しさん
2010/03/24(水) 22:44:410918デフォルトの名無しさん
2010/03/24(水) 23:17:20G型のオブジェクトを検索してイテレータを返すメソッドをマネージャーに持たせればいいだけでは?
G型だけじゃなくてもテンプレート使えば簡単に実装できるよね
マネージャーがなくてもG型を検索するサブルーチンなりなんなりは
どうせ書くはめになるんだからマネージャーに一任させてしまった方が安全でわかりやすくていいと思うけど
0919デフォルトの名無しさん
2010/03/24(水) 23:24:380920デフォルトの名無しさん
2010/03/24(水) 23:27:150921デフォルトの名無しさん
2010/03/24(水) 23:40:180922デフォルトの名無しさん
2010/03/24(水) 23:49:32ではレベルの高いレスをお願いします
0923デフォルトの名無しさん
2010/03/25(木) 00:47:10>マネージャーがなくてもG型を検索するサブルーチンなりなんなりは
なんねーよ
俺は>>896方式だもん
だいたいその検索すりゃいいやってそこしか見えてないからそういうんだろ
更新順番が違うとかここだけは引数から渡さないと問題多すぎて対処しきれないんだよ
生成したばかりのオブジェクトは引っかからないとか更新状態が一つ遅いとか
そういう目に見えにくい不具合を全部こっちに押し付けるから
マネージャ作る奴って嫌いなんだよ俺は
同じフレームで生成した敵オブジェクトは帰ってこないとか頻繁にあるだろ?
0924デフォルトの名無しさん
2010/03/25(木) 00:49:57お前らにチーム開発は無理。
0925デフォルトの名無しさん
2010/03/25(木) 00:50:160926デフォルトの名無しさん
2010/03/25(木) 00:56:460927デフォルトの名無しさん
2010/03/25(木) 00:59:370928デフォルトの名無しさん
2010/03/25(木) 01:04:250929デフォルトの名無しさん
2010/03/25(木) 01:07:44このユーモアのなさがたまりません
0930デフォルトの名無しさん
2010/03/25(木) 02:24:040931デフォルトの名無しさん
2010/03/25(木) 02:47:07まあそれは極端だが、その方がバグ取りが早かったりするのは皮肉だw
0932デフォルトの名無しさん
2010/03/25(木) 03:13:120933デフォルトの名無しさん
2010/03/25(木) 03:18:390934デフォルトの名無しさん
2010/03/25(木) 03:52:24ねーよw
0935デフォルトの名無しさん
2010/03/25(木) 06:33:54ひとつは慣れ。一つはアーティストが使うツールとの整合性。
PS1 やサターンの頃は、スクリーン座標を[-1..1]ではなくフレームバッファサイズになるようにしていた。
その時、中学で習ったのとは反対に、スクリーン座標の下が + になるのが都合が良かった。
その名残りだったりもする。
0936デフォルトの名無しさん
2010/03/25(木) 07:00:310937デフォルトの名無しさん
2010/03/25(木) 10:54:29単に習慣として決まっているだけなので、特に深い理由はない。
右手系を使うのと、左手系で使うのがどっちがいいかというと、正直どっちでもいいと思う。
変換も単にz座標に-1を掛けるとか、その程度の話なので使いやすい方を使えばいい。
ただ、混在させるのは良くないので、通常はどっちを使うかははっきり決めないとダメ。
0938デフォルトの名無しさん
2010/03/25(木) 14:08:49ボールの速度が速いとブロックやバーを飛び越えちゃうし
衝突後の跳ね返りも違和感ありまくりで不気味な動きに見えちゃうし
ナニコレwwww
テトリスのほうがまだ簡単じゃねえかよwww
orz
0939デフォルトの名無しさん
2010/03/25(木) 14:12:29pos.y -= idouryou;
じゃなくて、
for(int i=0; i<idouryou; i++)
{
pos.y--;
if(atari()) break;
}
しろといってるだろ
0940デフォルトの名無しさん
2010/03/25(木) 14:17:130941デフォルトの名無しさん
2010/03/25(木) 14:20:150942デフォルトの名無しさん
2010/03/25(木) 14:20:30idouryou = - speed.y;
step = -1;
}else{
idouryou = speed.y;
step = 1;
}
for(int i = 0; i < idouryou; y++){
pos.y += step;
if(atari()){
atatta = true;
break;
}
}
if(atatta){
speed.y *= -1;
atatta_toki_no_shori();
}
とかいう感じでも。
0943デフォルトの名無しさん
2010/03/25(木) 14:23:400944デフォルトの名無しさん
2010/03/25(木) 14:25:090945デフォルトの名無しさん
2010/03/25(木) 14:25:25ここでわざわざする質問でもないな
ググればブロック崩しのソースコードくらい出てくるだろ
>>938 ggrks
0946デフォルトの名無しさん
2010/03/25(木) 14:29:010947デフォルトの名無しさん
2010/03/25(木) 14:30:05ググれば作り方くらい紹介してるサイトとかたくさんあんだろ
0948デフォルトの名無しさん
2010/03/25(木) 14:31:49Class Ball
Class Block
Class Bar
こうなる
0949デフォルトの名無しさん
2010/03/25(木) 14:34:54ボールが貫通弾になったり
ブロックだって壊れないのとか2〜3発目で壊れたりするのがあったり
バーも伸びたり縮んだり分裂したりとか
0950デフォルトの名無しさん
2010/03/25(木) 14:36:270951デフォルトの名無しさん
2010/03/25(木) 14:37:190952デフォルトの名無しさん
2010/03/25(木) 14:40:240953デフォルトの名無しさん
2010/03/25(木) 14:41:260954デフォルトの名無しさん
2010/03/25(木) 14:42:350955デフォルトの名無しさん
2010/03/25(木) 15:03:190956デフォルトの名無しさん
2010/03/25(木) 15:07:440957デフォルトの名無しさん
2010/03/25(木) 15:17:45で、ゲームプログラマって今までやってきた方法が正当だと勘違いしてるから他のジャンルで仕事するとすごいウザがられる
0958デフォルトの名無しさん
2010/03/25(木) 15:21:100959デフォルトの名無しさん
2010/03/25(木) 15:38:07おまえには向いてないから諦めろ
0960デフォルトの名無しさん
2010/03/25(木) 16:17:06速度速くするのは初心者脱してからでもいいかも
俺なら軌道の交差判定行うけどな
0961デフォルトの名無しさん
2010/03/25(木) 17:14:040962デフォルトの名無しさん
2010/03/25(木) 19:09:13跳ね返せばいいだけっしょ?
0963デフォルトの名無しさん
2010/03/25(木) 19:15:330964デフォルトの名無しさん
2010/03/25(木) 19:22:110965デフォルトの名無しさん
2010/03/25(木) 19:50:44わざわざボール速くして難しくするのは意味ないと思うのだが
0966デフォルトの名無しさん
2010/03/25(木) 19:53:06まあ、色々試しながら成長するもんだし
そこら辺はわかってるしょ
何も俺らだって達人なわけでもなし、気長に勉強していけばいいさ
0967デフォルトの名無しさん
2010/03/25(木) 21:05:20だな
0968デフォルトの名無しさん
2010/03/26(金) 07:13:58プロでも数学嫌いな人は作れない
特にブロックの角に当たって綺麗に跳ね返るようにするには
移動前、移動後の2点を始点終点にした線分と壁との2直線の交点の計算が必要になる
まあ、それだけなんだけどねw
0969デフォルトの名無しさん
2010/03/26(金) 07:24:11どうせなら、バーに玉が当たった時のバーの速度も考慮しようよ。
アルカノイドですら、それなりにやってることだ。
0970デフォルトの名無しさん
2010/03/26(金) 10:03:24接触した位置を計算してその位置の法線ベクトルだけ反転させるのかな
0971デフォルトの名無しさん
2010/03/26(金) 10:07:050972デフォルトの名無しさん
2010/03/26(金) 10:15:36内積、外積、クォータニオン、何でも自由自在に使えるようになるまで頑張らないと
0973デフォルトの名無しさん
2010/03/26(金) 11:57:37>>970
頭固い連中ばっかだな
単にX方向移動量そのまま
Y方向移動量そのままで反転 だけじゃねーか
移動量・角度変化は+αしてるだけ
0974デフォルトの名無しさん
2010/03/26(金) 12:11:100975デフォルトの名無しさん
2010/03/26(金) 12:12:08運動量も運動エネルギーも位置エネルギーも保存されます。
0976デフォルトの名無しさん
2010/03/26(金) 12:19:27いや、それはそれで面白いゲームになるのかも分からんが
0977デフォルトの名無しさん
2010/03/26(金) 12:20:47あれ面白かった
0978デフォルトの名無しさん
2010/03/26(金) 12:30:15高校出てる?
完全弾性衝突で変形はしないとしても円と角との衝突は突入角度や位置によって力積の大きさも方向も変わるだろ
どう考えたらx,yを反転させるだけなんて答えが出るんだよ
0979デフォルトの名無しさん
2010/03/26(金) 12:33:04てか突っ込みどころはそこじゃないw
0980デフォルトの名無しさん
2010/03/26(金) 12:35:160981デフォルトの名無しさん
2010/03/26(金) 12:35:27ブロックによっては加速したり減速したりするんだよ
0982デフォルトの名無しさん
2010/03/26(金) 12:35:42初心者ならそれもありじゃね
てかシューティングのが簡単じゃね
0983デフォルトの名無しさん
2010/03/26(金) 12:38:090984デフォルトの名無しさん
2010/03/26(金) 12:39:050985デフォルトの名無しさん
2010/03/26(金) 12:42:260986デフォルトの名無しさん
2010/03/26(金) 12:51:000987デフォルトの名無しさん
2010/03/26(金) 12:54:02頭固い上にファビョッタか?wwwww
0988デフォルトの名無しさん
2010/03/26(金) 12:54:55だがそれすら知らない全くの初心者がオブジェクト指向使わないから作れないというわけでもなかろうて
0989デフォルトの名無しさん
2010/03/26(金) 12:55:100990デフォルトの名無しさん
2010/03/26(金) 13:00:480991デフォルトの名無しさん
2010/03/26(金) 13:02:110992デフォルトの名無しさん
2010/03/26(金) 13:04:280993デフォルトの名無しさん
2010/03/26(金) 13:06:320994デフォルトの名無しさん
2010/03/26(金) 13:07:160995デフォルトの名無しさん
2010/03/26(金) 13:22:500996デフォルトの名無しさん
2010/03/26(金) 13:26:46暇なら外回れYO
営業いけ営業
俺は死ぬほど忙しいわ!
給料少ないくせしてふざくるな!!!!
0997デフォルトの名無しさん
2010/03/26(金) 13:34:180998デフォルトの名無しさん
2010/03/26(金) 13:41:24http://pc12.2ch.net/test/read.cgi/tech/1269578438/
0999デフォルトの名無しさん
2010/03/26(金) 14:05:561000パイ ◆3.14/ZiLFY
2010/03/26(金) 14:53:5110011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。