1 :
デフォルトの名無しさん:
※注意
ここはム板です
適切な煽り入れようとするとマ板の方はネタが高度なぶんお子様にはツライいんだよね
4 :
デフォルトの名無しさん:2010/08/15(日) 23:23:56
市販のPCゲームソフトでJavaで書かれているものはどれくらいありますか?
皆さんに質問ですが、
最初プロジェクト名にMyGameと書いてプログラミングを始めて、
完成してから名前をHogeHogeに変えたいなと思ったら、
プロジェクト名からクラス名から何から何まで書き直しますか?
>>4 Windows用ゲームのパッケージソフトか?日本には無い。
>>5 プロジェクト名はいわゆる一つのコードネームだから変えない。
だからもともとそのゲームを表すような固有の名前は付けない。(Act, Rpg1などでいい)
他人に渡すものでも実行形式のファイル名だけ変えればいい。
>>6 オープンソースにしようと思うんですが、その場合は?
完成してから名前を書き換える事に何かメリットがあるんだろうか
コードネームの意味が分かってないんじゃないか
9 :
4:2010/08/16(月) 00:18:54
>>6 ありがとうございます。
やっぱりC/C++とかが多いんでしょうか。
Javaを覚えれば携帯電話のアプリも作れると聞いたので
C/C++よりJavaをやってみようと思ったんですが…。
>>7 そんな細かいことは自分で決めろ。
後から変更するのは迷惑だろうから、それを考えてどうするか決めたらいい。
>>8 1行目
利用者のこと考えたら人として分かりやすくしてあげるのが普通だわな
2行目
お前には何が見えてるんだ?
>9
携帯電話のアプリ作るんだったら専用の勉強しなきゃだよ
言語さえあってれば即作れるわけじゃない
Javaでもゲーム作れるんだから市販とか関係なくやればいいじゃない
ついでに言えば市販のPCゲームソフト市場なんてエロゲ以外ほぼ死滅してる
正式タイトルとは関係なくユニークなコードネームを付けて
適切な名前空間や命名規則を決めておくのが普通だろう。
もっと言うと、タイプしやすい3文字ぐらいに省略できるようなコードネームが良い。
Javaで作ったソフトを市販すると客からランタイム関係で質問たくさん来そうだな
直接関係のないことまで聞いてくる客もいるだろうな
コードネームなのは分かってるけど、ついこだわっちゃうw
とりあえず携帯アプリが作りたいならJavaでいいんじゃない?
時期が来たらそれまでにJavaで作ったものを携帯用にアレンジして……ということもやりやすいだろうし。
>>13 あまり使われないということは何か使ったらまずい事があるんじゃないか、と思わない?
アリも寄り付かないアイスクリームは毒入りかもしれないじゃない。
あえて未踏の地を進むのはそれ相応のメリットがあるからで
Javaでのゲーム開発にそれがあるかと言われると…
市販ゲームの一般的な開発環境って何?
C++
未踏?アプレットでもアプリでもJavaゲー自体は世の中に腐るほどあるわけだが
PC用のJavaアプリゲーはレアだが
市販ゲームってなんのことなんだ?
WiiとかPS3のゲームを指してるのか?
C++でOpenGLで、日本語入力のライブラリとかってありますか・・・?
一応DirectX SDKのCustomUIを参考に自分で作ろうと四苦八苦してるとこですが、
普通にネトゲーとかでは実装してそうなので、公開されているライブラリがあったら
便利だな~と思ったのですが・・・。
無ければショボいものでもオープンにしてみようかな。
ムービーシーンってどうやって作りゃいいの
何がわからないのかまったくわからない
ムービーを再生すればムービーシーンの出来上がりだ
29 :
4:2010/08/17(火) 01:06:13
>>11 >>13 >>15 >>17-19 >>22 ありがとうございます。
やっぱりC++を中心に勉強して、Javaもやろうと思います。
DirectXよりOpenGLを使うのが良いのでしょうか。
言語とあわせて勉強してみます。
30 :
24:2010/08/17(火) 01:24:52
>>29 そうだね、携帯とかJavaも考えてるなら、OpenGLの方が合ってるだろうと思う。
Winのみで考えてるならDirectXの方が良いだろうけど、
OpenGLならクロスプラットフォームのゲームも作りやすいしね。
いまどきWindowsでゲームって
>>24 WindowsならIMEなんたらのウインドウメッセージを処理すれば文字と位置は得られる。日本語の解説もあちこちにあるよ。
OSXは10.5以上でいいならNSTextInputを基礎として某所のFunTextFieldを参考にするといい、10.4系はよくわからない。
Linuxは知らない。
34 :
24:2010/08/17(火) 08:58:06
>>33 ありがとうございます。^^
TSFを使ってある程度カスタマイズも可能な形で作ろうと考えています。
C++は勉強中なので、ドキュメントが豊富なのは助かりますね。
OSXにも対応させたいので、NSTextInput調べてみます。
35 :
4:2010/08/18(水) 01:02:23
>>30 そうなんですか。
今度の週末あたりからいろいろ調べてみます!
>>32 360とかで売り出そうと思ってるわけじゃないですけど
余裕があったらDirectXも勉強するようにします。
36 :
4:2010/08/18(水) 01:36:13
あっ、OpenGLって3Dに強いやつなんですね。
2Dも扱えるとのことですけど、2Dしか使わないなら別のものを使ったほうがいいんですかね・・・?
3Dで2Dやればいいじゃん
色々と落ち目っぽいJavaだけど運が良ければBD-PGで化けるかもしれんから頑張ってくれ
DVD-PGですら化けなかったのに?
SDLがいいんじゃない?
SDLはハードウェア支援使ってないからwin32apiで書くのと変わらんぞ
インテルマック以来SDL等のマルチプラットフォームライブラリの影が
薄くなっちゃって寂しい限りだよ
>>41 SDL1.3はハードウェア支援に対応してるんじゃなかったっけ?
マルチっつってもどうでもいいプラットフォームに対応してても反応しにくいわ
45 :
デフォルトの名無しさん:2010/08/18(水) 20:27:52
WindowsとXbox360のマルチプラットフォームなXNAの圧勝だろ。
LinuxやMacやドリームキャストに対応している事と比べて情熱が熱い。
いやいや、WindowsでXNAは無いわ
普通にDirectXで360で動かせばいいやん
業界関係者は名前にプって入れておいてくれ
知ったかのアマチュアは名前にペって入れておいてくれ
適当なことを書かれると読み手が混乱するだろうから
48 :
デフォルトの名無しさん:2010/08/18(水) 20:32:58
え?
>普通にDirectXで360で動かせばいいやん
え?まさか○箱はXNAで作らないといけないとか思ってる人いるの?
それはないやん?
>50
アマでもXNA使わなくても作れるの?
開発は制限されてないから作れるだろうよ
発売まで漕ぎ着けられるかはお前さんの営業力しだいじゃないか?
アマだとあの黒い奴が手に入らないだろ
あれなしで開発するのは至難の業じゃね?
いやしくもこのスレに書き込んでるような人間なら糞箱なんて
選択肢にも入らないというのは常識だと思うのだが
PS3も普及の兆しが見えてきたし、糞箱の日本市場撤退は秒読み段階だろ
ゲハにお帰りください
PS3はもう開発できないんじゃね?
58 :
デフォルトの名無しさん:2010/08/19(木) 14:16:05
黒ステが欲しい
ネットやろうぜ
>>55 マジレスすっとこのスレに書き込んでるほとんどの人が
上が決めたプラットフォームで作るだけで
選択肢なんて無いよ
アマチュア開発の話してるんじゃなかったのかよ!
アマチュア開発ならなおさらPS3はないだろw
おまえら面白いな
PS3Linuxはどうなったの?
RSX叩けないからうんこ
新しいファームだと動かないしな
モンスターファームのホリィは可愛い
○○ファームの○○に入る文字で何か目新しいものない?
ストロベリーファーム
モンスターファームはすでにあるから
ゆうしゃファームとか
人間ファーム
海底ファーム?
パファーム
リコンファーム
C#ってゲーム作りに向いてますか?
RPGを作ってみたいです。
ゲームアイデアを出すスレ?
ゲームアイデアを実現するためのアルゴリズム等のアイデアを出すスレだと思ってた
ゲームが作れない言語は無いから、まず得意な言語で作ってみればいい
PS2レベル以下のコンシューマ機ではJavaやC#のような言語じゃ絶対開発したくなかったが
(そんな選択肢が現実にあったかは別として)
PS3/360レベルじゃ商品レベルのものも問題なく開発できてる事例あるのかな
>77
COBOLで作ってみてくれ
そもそもC++差し置いてJavaとかC#選ぶ理由がない
個人の趣味プロジェクトならいざしらず
言語がC++よりシンプルなのはいいと思う。
しかしGC必須なのは致命的。
C++こそ速度以外に選ぶ理由がないと思うが
速度はネイティブコンパイラあれば問題ないと思うが
C++以外だとどこかで躓いた時の情報量の少なさがヤバイ
>>79 制作依頼か?
1タイトル3000万から受け付けてやるぞ
お前口先だけで一人じゃゲームつくれないじゃん
3000万(笑)
>>79 ゲームによるけど別に作りづらい言語じゃないぞ
数値型の精度も高いしオブジェクト指向言語に生まれ変わってるしな
知識ゼロから始めるならCOBOLのほうがモノになるのは早いと思う
今までの積み重ねや開発環境の差で実際にはCしか選択肢はないだろうけど
3000 万とか超大作なんだろうな。
俺ならコンソール向けジャンケンゲームでも作って2,3円貰えればいい。
それで COBOL でもゲームが作れることくらいは十分に証明できる。
開発委託って例えばその金額だけ支払えばいいの?
ゲームを実際に売ってどれだけ売れてもそれ以上
開発委託したとこには金はいかないってこと?
開発費用分売れなかったら損だけど
めちゃくちゃ売れた場合、開発委託受けた側は何も恩恵無し?
(あそこに委託すれば売れる……ゴクリ)
92 :
デフォルトの名無しさん:2010/08/20(金) 09:23:30
数値型の精度て
>>90 契約次第。いっぱい売れたらボーナス出るような契約が多いんじゃないかな
まぁ3000万だとしょぼいゲームになりそうだけど
1位 グランド・セフト・オート4 1億ドル(92億円)
2位 グランツーリスモ5 8000万ドル(73億円)
3位 シェンムー 7000万ドル(64億円)
4位 TOO HUMAN 6300万ドル(57億円)
5位 メタルギアソリッド4 6000万ドル(55億円)
6位 Halo3 5500万ドル(50億円)
7位 LA Noire 5000万ドル(46億円)
7位 APB: All Points Bulletin 5000万ドル(46億円)
9位 ファイナルファンタジー12 4800万ドル(44億円)
10位 Killzone 2 4500万ドル(41億円)
圏外 ファイナルファンタジー13 4000万ドル(36億円)
気になってちょっと調べてみたら、開発費ってめちゃくちゃかかってるんだな・・・
下請けなんて制作費貰ってその範囲内で作って利益だすだけだよ
いっぱい売れたらボーナスなんて無い無い
最大の報酬は「次の仕事をくれる事」じゃないか?
仕事を切らさないことが生命線の中小にとっては一番大事なことだが・・・
その会社の独自技術を使ってたり
付き合いも長くある程度の販売数が見込めてるときは
例えば50001本目から1本当たり幾ら幾ら とかのロイヤリティが発生する契約が結ばれる時もあるけど
大ヒットでもしない限り大きな利益にはならないよ
>>95 >例えば50001本目から1本当たり幾ら幾ら とかのロイヤリティが発生する契約が結ばれる時もあるけど
ごめん、これのことをボーナスって書いてた
多いと思ってたけどそうでもないんだ
>94
今時の据置機ならグラフィックだけで費用かかりまくって当然だからな
DSやPSPに絞ってのランキングも見たい
開発者の上に立ってる奴が無駄に高給取りだから開発費膨らむんだよな
しかし金がかかってるランキングを見て「金かかってる!」って言うのはどうなんだ
DSだったら1本1500万くらい
上ばっかみてもしょうがない
>>100 それ、DSの中でもかなり安いほうだろ。
普通は3,000万円ぐらいはかける。
ゲームプログラミングに有用なメールマガジンとかってある?
P/ECEというハードで作れ
正直、宝くじ当たったぐらいじゃ今時のゲームは全然作れないよ
test
ワンダースワンで作れ
ワンダースワン用ゲームってどうやって作るの?
それはアスカに聞いてください
l ヽ. | | | |
. | __| | __ | |^)_ | ,-、
_ | | | | .|ノ |. i ヽ
i'i. ヽ. -‐、 ! !-! ‐- ヽ. 〉、 l
/ _ ノ.ヽ. `' (ノo(ヽο/ ヽノ (ノ |
ヽ. ,`ヽ,ソ )ノ ノ/o |
\ ' / / l ()ヽ l
ヽ. ' | (⌒ヽ |
ヽ. | しノ /
児ポ法違反じゃないの?
エバ厨死ね
アフラック
ワンダースワンやネオジオポケットにも改造ツール入れるやつってあったの?
114 :
デフォルトの名無しさん:2010/08/21(土) 21:03:16
もっと勉強してこい
115 :
デフォルトの名無しさん:2010/08/21(土) 23:52:52
今年で24才の高卒のアホなんだが今、基金訓練でJavaのSJC-P資格を目指し
個人でC言語の1級と国家資格の応用情報取ろうと考えてる
これだけで次世代のゲーム製作会社に入れるけ?
いけるいける
あげてたね、ごめんよ
頑張ってみる!!
廃人になろうが昔の夢実現させるよ、ありがとう
えっ、誰も突っ込まないのか・・・
ゲーム会社では資格なんか糞の役にも立たない
そんなものを取る暇があるなら提出用にゲームの一本でも作るか
もしくは業務系に行け
お前ら異名つけるならドリームクラッシャーだな
ゲームクリエイターじゃなくてプログラマーになりたいのか・・・可哀想な子
ゲームクリエーターっていい印象ないわ。
おれはプログラマーのほうがいい。
開発の現場がわからない人間のゲームはいやだな。
現実問題、スキル無し24才無職がゲーム業界は絶望的だから
そのまま資格をとってIT奴隷を目指したほうが自分の為になると付け加えとく
ひとりでゲームつくれるレベルなら
会社選ばなきゃ24ならぎりぎりありだと思う。
あぁ…つまり来世に夢をたくした方が良いって事だね
意見ありがと
もはや夢を見る価値がある程の業界でもないから安心して諦めていい
同人ゲーでいっぱつ当てろや
適当に女キャラたくさん出してニコニコで宣伝しまくればクソゲーでも売れるぞ
資格なんて置いといて今から作品作ってどっか中小に潜り込んで
3年実務経験積んでから本当に行きたい会社への転職を目指せばギリ行ける気もする
今現在自分で何かしらのゲームを作れるレベルじゃないならアウトだと思われ
129 :
デフォルトの名無しさん:2010/08/22(日) 01:11:23
モバイルゲーム系で旧世代のゲームの移植が進んでるからヤバイな
多少のゲーム作れる程度で本当に雇われるんか?
ゲームまともにつくれない奴が多いのも事実
他者との共同開発経験とか無くても大丈夫なんかい?
人間性がまともなら問題ないんだがこれがまたいないんだな
でも実際ひとりでまともにゲーム作れる即戦力レベルの新人なんて今時いないと思うんだけど
新卒なら作れなくても問題ないが24-25ともなるとそうは行かない
26以上だと中途以外は有り得ない
いやいや、シナリオとグラフィックとサウンドまで全部自前で作れとかならともかく
今の時代に1人でゲームが作れませんなんてプログラマが業界に入れるわけ無いだろ
未経験者でもgoogle駆使すりゃ1日で作れる
GUIのゲームとCUIのゲーム両方つくれたほうがいい
138 :
135:2010/08/22(日) 01:28:12
オープンソースのゲームパクって来るって意味じゃなくて
ライブラリの使い方とゲームシステムプログラミングのTIPSをググればって話だからな?一応
1日ねぇ
1日で作れるようなもんはゲームとは言わねぇ。ゲームの出来損ないだ
ジャンケンをするだけのゲームなら1日かければ作れるかもしれん
コンソールのジャンケンゲーを作ってそれでゲーム作れますよって言われてもね
東方弾幕程度のものは自力で作ってほしいね
>>139-142 お前らどんだけレベル低いんだよ…
マ板の業界人スレじゃないからワナビーの学生ばかりなんだろうけど
素人はVSやライブラリのインストールと設定だけで1日くらい余裕でかかるのを知らないワナビがいる
この業界で未経験っていうと業務経験無しって意味だから実力はそれなりにないとだめなんだよね
だからさすがに環境整えるだけで1日は問題外
意思疎通能力に難があると業界人ぽく見えるな
プログラムの話してんのに環境構築に一日とかよくそんな詰まらん考えが出来るな
環境構築抜きにしても言語を最低限使えるとかちゃんとビルド出来るようになるとかで
とてもじゃないけど1日じゃ済まないんだけどね
ム板なんだからプログラム未経験は文字通り論外だろ
あと今時VSやら言語の知識やらが無きゃゲームを作れないという発想の時点で遅れてる
そろそろ1日で作るゲームの具体例を出してもいいんじゃない
コンソールのジャンケンゲー
>>150 言語の知識抜きでゲームを作るというとツクールの類ですかね
プログラムの話をするム板にふさわしい発想でとてもいいと思います
>>150 それで作れるワケが無い。ただのコピペじゃ限界が直ぐに見える。
ちょっとコピペ元と違うことするだけで使い物にならない。
そんなもん作るくらいならちょっとしたコンソールゲーム作れる方がまだマシ。
>>152 最強のジャンケンゲーでも作るなら 1 日かもしれないが。。。
おまえら容赦無いなw
一日がどうかって別にどうでもいいが
>今の時代に1人でゲームが作れませんなんてプログラマが業界に入れるわけ無いだろ
これは確実。新卒ならまだしも
また確実とか適当なことを
ひとりでゲーム作るってどの程度のゲーム指してるのか全然わからんよね
新卒だったら言語の知識がある程度ありゃこっちで仕込んでやるって会社はごく普通だろ。ただしブラックを除く
>>156 ゲームじゃなくてツール専門で作りたいって言って入ってる人もたまにいるんだぜ
今の時代に1人でゲーム作れるような優秀な学生はゲーム業界なんてこねーよ。
そもそもプログラマにならない。情報系の学部どこもボロボロじゃないか。
ベーマガやらMSX-FANやらOh!Xやら出てた頃とは違うんだ。
優秀な若者が自分の業界に来なくなったのを「最近の若者は」という人がたまに居ますがね。
他にもTwitterでゲーム業界行くか迷ってる学生に絡んでたどこぞの企画とか。ちょっと勘違いしている。
俺ら斜陽産業なんだから。
この業界なんでこんな暗いイメージしかでてこないん?
他業種でプログラマは活躍できるよ。
いまどきコンピュータを使わない分野なんかどこにも無いしね。
プログラマはあらゆる分野でエキスパートになれる。
ゲーム以外のプログラマは技術職じゃない。
チラシの裏にでも書いてろ
ITのプログラマは1年に5000行もプログラムを書かない
1行100円
仕様を考えたりする人って神なの?
うん
そして同時に悪魔でもある
業務系は
クライアントから聞き取りをして(←実はココが一番時間がかかる)
仕様書を書いてそれにOKを貰った時点で仕事の9割が終わってる
あとはその仕様書にしたがってコードを打ち込むだけ
後で仕様書外のことをクライアントが言い出したら別期間別料金を発生させればいい
業務系じゃなくてゲームだけど・・・
さっきから誰も聞いてないのに業務語りしてる子はなんなんだ
最近基本情報を取得した高校3年生です
なんか情報処理試験って内容が業務系に傾いてるよな・・・
やっぱ中の人がNTTデータとか出身の人なんだろうか?
経産省だと富士通からの天上がり多そうだw
どっちかっていうとゲームプログラムのほうが特殊
業務系ってプログラミングというよりただの作業って感じじゃん。
だから業務系はプログラミングに含めるべきじゃないと思う。
必要なプログラマの数は業務系の方が圧倒的に上
本職のマかどうかは別として
だが世の大半のプログラミングは業務系なので
書籍とかも業務を意識してる物がほとんどだ
業務系は学ぶことが少ないので多くの書籍を必要としない。
ここって具体的なゲームプログラムの話になるとあんま盛り上がらないyおな
オンラインゲームのプロトコルにMessagePackってどう思う?
ゲームプログラミングってクラス間の結合強すぎ
「これをやったらゲームプログラム」なんて定義があるわけじゃないからなぁ
ゲームプログラムなんて
手元にあるリソースと求められてる結果を
どんなインチキを使ってでも結びつければいいだけの物だ
ある程度のノウハウは有るにはあるが
一回作ったクラスを別のゲームのプログラムに流用することがないんだからそれはべつにいいんじゃね
クラスの独立性を高めるのってライブラリ的に使えるようにするためでしょ
>>185 それは設計がヘボだからだよ
とは言ってもゲームプログラムってどういう仕様が入るか分からんから適切な設計をするのって難しいけどな
>>187 ゲームプログラムに関して言えば、結合を弱く作るのは変更に強くするためだなあ
>156
どんなゲームを作れればいいんだ
パックマンやスペースインベーダーじゃダメだろ
かといって最新のマリオやゼルダを個人で作れるようになってから就職しようなんて思ってたら10年単位でかかるぞ
オプーナ
>>189 その中間でいいじゃん 初代マリオやスーファミマリオレベル
まあ後は会社が選ぶけど
>パックマンやスペースインベーダーじゃダメだろ
このセリフはパックマンやスペースインベーダーを作ってからなら言える
既存のゲームのパクリだったら
どうしても比べられちゃうしよっぽど出来がよくないと評価されない
単純なものでいいからちゃんとゲームとして成立してるものの方が良い
よくFlashゲームでルールは簡単でグラフィックもしょぼいのにやけに中毒性のあるゲームあるだろ?
そいうのを自分で考えられて形にできる人なら大手は無理だけどそこそこの所ならいける
オリジナルゲームが作れるかはプログラマじゃなくてクリエイターの分野じゃね?
プログラマなら既存のゲームの模倣品を作れるかどうかだけじゃね?
まさかゲーム会社入社後も1人で全工程作るわけじゃあるまいし
プログラマが勝手にゲームにオリジナル要素加えるなんてありえないだろ
模倣品作れる程度なら新卒と派遣で十分ですから
言われた事だけしかできないゲームプログラマなんて要らない
それって誰でも良いってことじゃん
お前らみたいな手を動かさないゲームプログラマはいらない
198 :
デフォルトの名無しさん:2010/08/22(日) 17:06:33
模倣品もちゃんと作れない人は多いよ。
むしろ仕様も無いのに同じものが作れるのはある意味で天才。
言われたものを100%作れるのも実は天才の部類だと思っている。
オレも含めてだいけど、言われたミッションを
100%守れる人はどのくらいいるのであろうか。
仕様と素材は与えられてひとりで作れれば十分優秀だよねぶっちゃけ
作れる作れないの前に
会社にいきたくない
じゃあゲームの前に会社を作ろうか
202 :
デフォルトの名無しさん:2010/08/22(日) 17:47:41
気が合いますね、俺もだよ。
いま会社だけどなw
おれならパックマン作らせてコード見るね。
3Dの適性以外は大体わかる。
コードはさほど重視しないなぁ
どんなにきったなくても1つのゲームとして完成してるかどうかを見る
解説がないと分からないような中途半端な未完成品を持ってきたら
問答無用で蹴るかしょうがないから中身を見て判断するが
イミフw
おまえらゲームプログラム関連の記述情報どこから集めてる?
正直、本とかWebとかってあんま実用的な情報載ってないような気がする
XNAで1000個の球を表示しただけでカクカクなんですが、
どういうテクニックを使えば軽くなるんでしょうか?
球を全部板ポリにしろ
やってみましたが、やはり軽くなりません。
JigLibXの衝突検出が重いようです・・・
なにが「表示しただけでカクカク」だ、嘘こくんじゃねーよ
少なくとも計測して何が重いのかちゃんと調べろ
めんどくさいのでやりません
住人が偉そうなのでもうきません
さようなら
計測もせずに最適化なんてバカのやることだよなー
20%がうんたらかんたら
○○の言うところの埋蔵金か
XNA使うような低脳にあまり多くを求めるなよ
シューティングみたいに弾を出すのって
球を出す度消す度に子クラスを作るよりも
初めから数十個作ってそこの座標を入れ替える方式の方がメジャー?
ドドンパチ系を作るのに、弾を発射されるたびにインスタンス作ってたら、すっごい負荷がかかりそうだな。
球を出す度消す度にクラスを作るが
あらかじめ最大数分確保してあるメモリに割り当てる
ゲームとして遊べればそれでよい
某言語だと配列使う以外に手がない
N88BASIC?
224 :
デフォルトの名無しさん:2010/08/25(水) 15:42:09
>>219 小物を作ったり壊したりを1フレー中に数をこなしたい場合は、
メモリアロケーターを自前で作成してやるのが王道。
簡単に2枚以上の速度でアロケートできるようになるよ。
いまのPCならドドパチレベルの弾撃ちだと、
毎フレーム作ってもぜんぜん平気。
作るっても画面内に1024発が上限として、
1フレームに128発も撃てれば十分でしょ。
ぜんぜん余裕だよ。
まあ、速度を気にする人たちはキャッシュ型にするとおもう。
容量可変のフレキシブルなキャッシュをテンプレートで作っておくと
色んなところで使いまわせてべんりなんじゃないかな?
むしろ毎フレームインスタンス作るメリットなんてなんにも無いと思うけどな
226 :
デフォルトの名無しさん:2010/08/25(水) 23:11:03
リサイクルメソッド書かなくてすむことじゃない?
毎回新鮮でうれしいじゃないw
どっちにしろ初期化は必要なんだからいっしょじゃね?
228 :
デフォルトの名無しさん:2010/08/25(水) 23:18:34
リサイクルは機を使うでしょ。
破壊してもとに戻らないデータなんか初期状態のものを、
別途保存しておかなきゃならないしさ。
そういう気を使わなきゃいけないコードが増えるのはバグの元だとおもう。
メモリ確保とタスクへの割り当てって別処理じゃね?
もう全部配列で管理しとけばいいんじゃね
231 :
デフォルトの名無しさん:2010/08/25(水) 23:34:57
もちろんべつだけど、newが重たいから同一フレーム内でいっぱい
newしたい場合は。アロケーターを自前で作りましょうってはなしだけど・・・。
それに付随してキャッシュ型はちょっと面倒を見てあげなきゃならないことが増えるよねって話だよ。
232 :
デフォルトの名無しさん:2010/08/25(水) 23:38:13
>>230 配列とまではいわないけど、メモリをフレキシブルに使わなくてもいいなら、
使用する上限個インスタンスを用意してあげて、それらをリンクリストで
つなげて管理してあげるのも一般てきだよね。
多次元配列が使えるならわざわざポインタを使ってリストを作る必要もないよな。
下手にポインタ使うと最適化されないから処理速度の観点からもポインタを
使うような富豪的プログラミングは自重すべき。
ポインタを使うとバグの温床にもなりソースの可読性もうんぬんかんぬん以下略
インスタンス作り置きじゃ全然メモリ足りないってんなら
ある程度動的に管理する仕組みを作らなきゃいけないけど
シューティングの弾ごときでそんな事態に陥ることはまずない
ていうかいまどきのPCでnewの重さなんて気になるのか?
描画のほうがよっぽど重いと思うが
固定長でいいから最初に必要なだけメモリ領域をだーっと確保
newtとdeleteをオーバーロードして
newは開いている領域のアドレスを返して連結リストとかに登録するだけ
dleleteはリストから削除
デフォルトのnew,deleteを使うのは用途的に拙いでしょ
あんまnewとかdeleteの裏で色々やるのは良くないけどな
弾しかnewしないわけじゃないだろうし、いちいちヒープ設定の手間考えたらnewとかdeleteとかの見た目にこだわるのはよくない
配列だけでやってたら途中の抜き差しなんかやると面倒な処理で重くなるような気がするんだけど
STLでcapacityを確保せずにベンチとってみたら200体ぐらいで処理落ちした。
でもnewが原因で処理落ちしそうな気配はないぞ。
理屈で遅いのは知ってるが実例出すのは難しそうだな。
いわゆるタスクシステムを使えば最初にメモリ確保しちゃっても
固定長だから大丈夫なんだろうが今どきはクラス使ってるだろうから
最初に確保しちゃうのは難しいんじゃないか?
クラスの種類毎に使用予定数の最大値まで確保しなきゃいけないから
無駄が多すぎて計算上はメモリが足りててももったいないお化けがでそうな気がする。
>クラスの種類毎に使用予定数の最大値まで確保しなきゃいけないから
んなことない
1つの領域をクラスのサイズに合わせる必要はないぞ
まぁ最大サイズのクラスよりは大きくする必要があるから無駄は出るが
>>239 やる事はポインタを使う場合と一緒だよ。
ゲ製作でHSPの例を提示したことあるけど避難所と一緒にソースも消えちゃったorz
というかぶっちゃけ未使用タスクはKILLフラグたてて配列全ループでも大して問題にならない。
抜き差し以外の所で問題になるかもしれんがそれはまた別の話だな。
Game Programming Gemsの日本語版を読んで
どうしても著者の言いたいことが判断しかねるところがあるので原著が見たいんだけど
pdfとかないんでしょうか。買うしかないのか。
torrent
敵が死んだりした時の爆発のエフェクトはどうしてんの?
昔は爆発グラフィックなんて共通で、せいぜいサイズ別に3種類くらいだっただろうけど、
今はしっかり『その機体が炎上するアニメーション』が必要になるから、
攻撃モーションとかと同様に炎上モーション作って切り替えじゃないかな。
ああ、その都度インスタンスを作るようなやり方で爆発も作ってたらさすがに重くないかって意味
別に重くないけどなんでそう思ったわけ?
描画に圧倒的な時間を取られるゲームにおいてそんな細々しいこと気にしても無駄
とりあえず適当に実装して、重かったら考える。
地球防衛軍みたいなFPSが作りたいのですが、
フルスクラッチから書いてどのぐらいの制作期間と人数があればいいでしょうか?
当方プログラマーです。
さしあたってプログラマー1名(私)、モデラー1名(募集)で
フィールド上を動き回れるだけのものを作ろうと思うのですが、
これでプロジェクトをぶち上げてしまっていいものかどうか
>>251 企画書と仕様書をちゃんと書けば誰か手伝ってくれるかもよ
>>251 FPSを嗜む身として地球防衛軍はTPSだと言いたいw
爆発とかのエフェクトが3でも酷いことになってるから上手いことできるといいね
>>251 それで行ける。ただ、出来ればそのモデラーは身内であるか、自分でもある程度モデリングが出来たほうがいいね。
サンプルを先行して作っていけるようならいつか完成する。
そういやセガの本見てみたけど、
これって明らかに駄目専門学生にゲームが作れたと思い込ませるための駄本じゃないか。
ライブラリ()が叩かれる理由もそれだろ。
理論ばかり詰め込まされてる大学生にとっては気楽に作れるいい本だよ
しかしこのスレは平日の真昼間でもレスがよく付くな
おれたちの夏休みはまだはじまったばかりだ(完)
>>256 京大ですが、大学では理論すらまともに教えてくれませんw
理論も実践もクズ学生レベルに合わせられているので、
高度なことを勉強したいなら独学するしかありません。
何しに大学来たんだろう、と欝欝とした毎日を送っています。
京大なら、教授の陣容から考えてそれはありえないな。
>>260 留年率も高いから、簡単に受からせてやろうという努力なんだろ。
はた迷惑なことだ。
だいたい、学生が大学は遊ぶところだとか言ってナメるようになったのは
全共闘世代のカスどものせいのような気がする。
大学って頭いいとこでもプログラミングはほとんどやらんよ?
>>262 戦前世代のジュニアどもが80年代に遊びまくってたことは都合良く忘れるバカウヨであった。
会社に入っても上の会社ほどプログラミングやらんよ。ゲーム、ITかかわらず。
>>265 どうせ調整調整調整でしょ。
無駄な人材ばっかりだよね。
そしてソニー・エリクソン()みたいに日本の企業は自力で何も作れなくなりました
技術者を軽く見すぎなんだよ。
Blizzardみたいな会社もプログラミングは下請け丸投げとかやってんの?
アウトソーシング化のせいで日本のソフトウェアは全部ダメになっていってると思う
去年辺りからオフショアがさらに流行りだしたよIT
>>268 仕様考えられるなら、作れるも同じだろ。
実際に手動かすのは下請けで十分。
実際に作りながら気づくようなこともあると思うんだよな。
会社が分かれてるとコミュニケーションが取り辛くなるからそういうのも反映されにくくなる。
開発しているゲームに愛着もないからモチベーションも上がりにくい。
クオリティが低かろうが開発費分しか仕事やりませんよ?って感じになる。
結果ゲームの質は下がる。客も労働者も満足度が下がって経営者だけが得をする。
てか、ゲーム制作会社がアウトソーシングする意味ってあるの?w
アウトソーシングって専門技能がない会社が専門技能を売る会社にお願いすることだよね?
それって外注となにがちがうの
外注=アウトソーシングw
必要なときだけ必要な人員を確保できるから人件費カットに繋がるってことじゃねえの?
つーか内製化しろよ。お前ら経営者は良いゲームを作りたいんじゃなくて目先の利益を追求してるだけだろ。存在価値ねえから
>>276 簡単に会社が潰せて、簡単に会社が作れて、
簡単に無能な労働者をクビにできて、簡単に転職できる社会
を作ることが出来ればいいんだけどね。
そうすれば無能な経営者の会社からすぐに逃げ出して満足のいく会社を自分で立ちあげられるのに。
海外は割りとそうだけどね。プロジェクト仕上げた後に分解して、無能な奴だけ消えて再結成とか良くある話
日本はダメだね
世界最悪の労働環境と奴隷洗脳教育があるかぎり無理だろ
つか日本人って0から1を生み出すことがとにかく苦手だし
8から9を生み出すのは得意なのにな。
>>279 日本の労働法に問題があるんだと思うよ。
一応日本でもサビ残は違法らしい
そういう話じゃないだろw
マ板?
285 :
251:2010/08/26(木) 20:03:16
>>252-254 基本路線は悪くないんですね。
作れるかなぁ、正直微妙。
現在はアニメーション付きのモデルをロードして再生するところまではできました。
あとは水平な床の上を'2','4','6','8'で移動できるようにして、弾を打てるようにして、
敵キャラクターが自動で動くようにして。
って作っていけば地球防衛軍にはなりそうですが……
まだまだ遠いよなあ。現在位置と比べて作りたい物がはるか先にある。
プログラムは自分でやるしかないとして、モデリングとモーションだけ誰か手伝ってほしい。
自分で作るのはムリポ
>>285 MikuMikuDance のデータをインポートできるように作っておけば
仮素材、仮モーションには困らないぞ
探すのが面倒&本番どうするか途方にくれるけどw
>>285 メンボなら他所でやれ
お前の個人的なプロジェクトの話もスレ違い
スレチなクズは置いといて地球温暖化についての話に戻そうか
289 :
251:2010/08/26(木) 21:19:48
どのくらいまで作ったらメンバー(モデラー)を募集すべきですかね?
何となく動くものができたら?
そんなもんは要るときになったらだろ。
そのくらいは自分で考えなよ。
ゲームなんて細かいクオリティ気にせずに、核になる面白さだけ仕上げるならそんなに人ではかからんもんだよ
ただ商業ベースだと見た目が酷いと全くうれないから、そんなことができないってだけで
あんたの話には信憑性が無い
細かいクオリティ気にしないってのは要するにプロトタイピングに毛の生えた用なもんだからな
また口だけ野郎か
いや、それはそうだろw
今のゲーム開発がなんで大規模化してるか分かってないのかw
でみんなでぐだぐだと
>>295 大規模なふりしとかないと参入させないから。
これいけるだろってレベルにして売ればいい。
まあできないけど。
こりゃまた頭の悪い
また自己紹介か
やたらと偉そうないつもの彼はひどく抽象的なことや小学生でも分かることをキリッと言っちゃう頭の弱さ
(キリッ
(キリン
(サリン
(サソリ
rowが行数
colが列数
英単語的な意味でこれって逆か?
>>306 「英単語的な意味」の意味が分からん
全く問題ないと思うが、何かおかしいか?
偉そうな人を見ると叩かずにはいられない
しょっぱいですねー
>>306 ググった方が早いのに・・・。
columnは縦列
rowは横列==行
フロントロウという言葉を知らなかったらいまだにわからん
メモリアロケーターで悩むのはアラインメントなんだけど
クラスごとのアラインメントはメタプログラミングで求められるからいいけど
型情報が無い汎用アロケータの場合は情報がsizeのみだからいったいどうすればいいのか悩む
312 :
デフォルトの名無しさん:2010/08/28(土) 14:19:34
要求されたサイズ毎に必要アライメント数分わりあててやればいいでしょ。
もちろん多少の端数には目をつぶることが前提。
アライメントもそんなに大きな値じゃないから別に目くじらたてることでもないよ。
これでたしかアライメントを1バイト境界にできた
実行速度なんてぶっちゃけもうどうでもいいわ
#pragma pack(1) // 1バイト境界に設定
構造体を記述
#pragma pack() // アライメンとをデフォルトに戻す
1バイト境界とかやるなよ・・・・
>>313 push pop 使うともっと安全になるよ
複合型のアラインメントは組み込み型のどれかと一致する
すべての型を持ってるunionはそのすべての型のアラインメントに一致する
だからそのunionのアラインメントにあわせてアロケートすれば問題は起こらない
たぶん
RPGにありがちな金魚の糞みたいにプレイヤーの後ろをぞろぞろ歩くアルゴリズムの定番を教えろ
数フレーム前のプレイヤーの座標を記憶して画像だけ差し替え
昔のRPGみたいにマスごとにしか動けないのか
3Dっぽくある程度自由に動けるかで違うかと
そうか? 単に位置の記録がマス目単位なのかドット単位なのかと、
1移動前の位置なのか何ドット移動前の位置なのかって違いがあるだけじゃないか?
321 :
デフォルトの名無しさん:2010/08/29(日) 19:17:01
>>318 それはどっちかっていうとグラディウスのオプションだな。
最も少ない行で済ます方法を考えてるとキリがない
けど英語版でもいいからそういうのの定番となる本が欲しい
とりあえず作って遅かったら考える
そういやこのスレで自作ゲーム晒した奴いんの?
いつもの偉そうな奴のは見てみたいな
そんな特定のゲームの何かを実装する方法とか解説されても
既存と同じもの作るんだったらツクールで良いじゃんって感じ
まあソースが見てみたいって意味なら単純に興味あるけど
宣伝乙
>>320 いや、操作キャラの足跡を正確にトレースする必要がないなら
一定間隔以上開いたら操作キャラ方向に距離をつめるだけで済むじゃん
質問者は経路探索問題の解法をきいているのかもしれない
>>322 みんなでネタ出し合ってまとめサイトでも作ってみるか?
>>317ぐらいの質問なら答えられるし
例えば俺が回答として出したソースをたたき台に
あれこれ言ってもらえれば改良していける
ちなみに
>>317は
>>319が指摘してる通り2種類パターンがあって
1. 先頭キャラへの最短ルートを直線的に動く
2. 先頭キャラが移動した経路をトレースする
でこの話のオチになってるのが
>>321 初代グラディウスのオプションは2の動きをして
それ以外だと1の動きをする
>>324 ゲ製作で100本以上出してる
完成品、未完成品や
>>317を実装した程度のサンプルまで含めてだけどな
このスレで晒したら批評とかしてくれるのか?
>>325 ゲ製作だとそうなるかもしれんがここはプログラム板
人生のどんな困難でさえもプログラムでしか解決できない
不器用な奴らの集まりなのさ
>>328 たしかにどういう場面で使いたいのかわからないと適当な答えが出せないな
経路探索は全探索ならパックマンスレ見ればいいけどA*だとGEMSぐらいしか
日本語の解説がないよな・・・、って最近の事情は知らないけどな
初代グラディウス以外は、オプションが自機への最短ルートで動くの?
オリジナルパックマンは経路探索なんてしないのにな
ゲ制板って過疎りすぎてなくなったと思ってたらまだあったのか
まあなんにせよ行動力ある人がいると活性化するよね。いいと思う
ここでは評判最悪の龍神録よりまともなの作ろうと思うと難しいだろうね
なんだかんだでセガの糞本より本人のためになるよあれは。
あと人工知能の人のページでPythonとJAVAでインベーダーマリオRPGと幅広く作ってるけど、
C+で分かりやすいのってないかもね。
文法等を一通り勉強し終えた人の次の一手として有益なものがあればいいかもな。
killar game programing を途中で投げた俺だが、
我流で書いてるのがひどく気になるから雛形が知りたい
なんでも糞ってつける奴にろくな奴はいない
サイト立ち上げる→→
↓ ↓
管理人逃亡 管理が大変という名目でアフィ始める
↓ ↓
消滅←←←←←←アフィ叩きが始まる
338 :
デフォルトの名無しさん:2010/08/29(日) 22:00:36
>>334 C++やってればJavaならよめるだろ。
流し読みしてわからないシンタックスがあるならググレばいいよ。
人のテンプレート覗くよりぜんぜんらくだって。
2ちゃんでコミュニティ作ろうというのが無謀
>>339 mona-OSは成功?したよね 一応・・・
可能ではあるがム板の奴らが集まってもまず無理だな
つうか業務で覚えたコードとかテクを晒してもいいもんなの?
ゲ製作板で既に何回か失敗してるよね
ゲームプログラマって基本みんな一国一城の主だから
仕事でもないのにみんなで協力して、とか無理な気がする
ばれるようなのはダメ。
でも業務上で教えてもらったモノなんてほとんどない。
ほとんどが編み出したか仲間うちの情報か本・ネットの情報か。
一国一城の主にはメリット薄いし下っ端プログラマにそんな能力ないしね。
しかに日本には健全なゲームプログラムコミュニティがないのが遅れをとってる原因だと思う。
英語ほとんどわからないけどw
>>342 良いも悪いも、オープンソースのコード見ればいくらでもテク晒されてるだろ。
ではおすすめのオープンソースのゲームを教えてください
そんな質問が出る程度のレベルじゃ
読み始めて1分で「何やってるのか解からん」と投げ出すのがオチ
誠意がたりんね
業界用語で金のことだろw
haskellかw
結構勉強になるな。
>>330 そういうこと。細かい話は知らんが昔ゲ製作でも話題になった
ググって裏づけとれたから
>>329で取り上げてみた
>>331 マジか!どうやってるのか気になる・・・
ちなみにゲ製作のパックマンスレは旧ろだの引退に伴い
ソース類はほとんど消えた模様orzガックシ
>>332 ゲーム作ってるやつってどこ行ったんだろうな
最近は動画製作やニコ生に流れちゃってるのかもしれん
ニコニコやブログが便利だから文字だけの2chは不便ってのもあるんだろうけど
>>334 既存の解説サイトのテクニックを叩き台にしてあれこれ改良していくのもおもしろいかもしれんな
>>335 これどんな内容?日本語版でてるの?
>>337 おもしろくなかったら消えるべき
おまえらはそこがわかってない
>>339 9スレも消費しておいて言う言葉かよw
>>342 社外秘かどうかぐらい自分で判断しろよ、社会人だろ
会社毎に文化や契約が違うんだから模範解答はない
公開する事で自分の会社が不利になると思ったらやめとけ
>>353 googleパックマンのコードはオリジナルパックマンのアルゴリズムと同じ
>>353 Killer Game Programming in Java ね
日本語訳は出てないけど、オライリーだし海外では有名らしいよ
ただし2005年と古い
米国のアマゾンで今改めてGame Coding Completeを検索したら思ったよりも売れてるみたいね。
Killer Game Programming in Java って有名なの?
前から気になっていたけど日本人で読んだことある人は居なさそう。
最後まで読んだ人感想聞かせてくれ
>>343 その過程で得るものがあれば成功
>>345 その話をすると「英語嫁」ってことになるけど
逆に英語圏でいいとこあるの?って話になるとみんな黙り込む
俺もせいぜいflip codeを追いかけてた程度だけどな
閉鎖されてから海外は全然見てないや
>>347 そこでQuake2とか挙げると規模が大きすぎて引いちゃうんだよな
ゲ製作で公開されるゲームは基本的にみんなソースを添付してた(最近はそうでもないけど)
だからこそ活発になった時期が一時的にあった
やっぱみんな自分と同じようなレベルの人のソースを見てみたいしそのほうが勉強になると思う
>>350 金貰う側がそんな口きいてどうすんだよw
で、結局自分が先頭には立ちたくないんでしょ?
夏休み最後の現実逃避
>>360 ちらっと見たけどAIだけじゃなくてゲームの作り方やシステムサンプルとかあって面白いな
>>317 void Move(X,Y) {
for(i=1;i<4i++){
player(i).X=player(i-1).X;
player(i).Y=player(i-1).Y;
}
player(0).X=X;
player(0).Y=Y;
}
どや!
C言語初歩からやり直してこい
誰がCだと言った
class Player {
public int X,Y;
}
Player[] p=new Player[4];
Player player(int n) {
return p[n];
}
とすれば
どこからつっこんで良いかという感じだが
とりあえず一回MoveすればPlayer1~3まで同じ座標になるぞ
>>363 void Move(X, Y) {
for (int i = 3; 0 < i; i--) {
player[i].X = player[i - 1].X;
player[i].Y = player[i - 1].Y;
}
player[0].X = X;
player[0].Y = Y;
}
こうじゃない?C#だけどさ
ボンバーマンみたいにブロックの間を移動させるので
32ドットずつブロックを配置。
このときMOD(座標Y 32)が+-3のときに左右を入力すればY座標の調整後(移動後)横移動開始。
ってな方法以外にいい方法とかメジャーな方法ない?
動いてるからいいっちゃいいんだけど、賢くないよなあと。
おまえらMAKEFILE派?総合環境派?
VS派
メジャーなゲームをプレイしてその通りないしそれを参考に仕様を決めるのは
CW派
お前らこんな時間にひっでえな
>>375 今日は8月30日だぞ
休んでる奴多いんじゃね
377 :
デフォルトの名無しさん:2010/08/30(月) 16:37:41
CWは諸悪の根源だろw
378 :
デフォルトの名無しさん:2010/08/30(月) 16:59:18
CWって何だ
ちょい悪 じゃないか?
380 :
デフォルトの名無しさん:2010/08/30(月) 17:04:41
トイレだろ
>>370 Makefileはもう古いぞ。
今はCMakeが普及しだしてる。
コードうりゃあああ!
ニコルさんの悪口はやめろ
>>369は実体(ボンバーマン)を小さくする(描画はそのまま)って方法が一般的か
ボンバーマンやったことないけど
キーを押してる間中リニアに1ドットずつ移動してるんじゃなくて
描画自体は1ドットずつ移動するけど
移動量は半ブロックとか1/4ブロックずつとか固定で決めてるんじゃないの?
>描画自体は1ドットずつ移動するけど
>移動量は半ブロックとか1/4ブロックずつとか固定で決めてるんじゃないの?
そうなの?
てかそんなやり方もあるか。
ゲームってマジックナンバー多すぎじゃね?なんか鳥肌たっちゃうんだけど
>>387 わかる、なんか気持ち悪いよね。仕方ないことだけども。
マジックナンバーって何?
ロトシックスとかそんな感じ
391 :
デフォルトの名無しさん:2010/08/30(月) 22:36:13
>>387 演出部分とかマジックナンバーでほったらかしは良くあるな。
目で見て直感的に動きの気持ちの良い値をみつけるのに
補正値を変数で持ってデバッカで動かしながら値きめたらそのままほったらかしなんてよくあること
調整用の変数はリソースで持つのが普通じゃないだろうか
本来ならそうするべきだし、外部に調整を投げるときはそうするけど
そこまで大げさじゃない調整の時はやっちまう
>>393 最近、そうは思わなくなった
そこに動作に必要な処理が書いてあるのにわざわざデータと分離する利点ってなによ?
って思うようになった
結局、調節するときは処理みなきゃわかんねぇんだから数字だけ弄って済む場面なんて
ほぼ0といっていい(経験則)→だったら処理がある場所に数字もおいておけよ理論
#define 定数 とかもわざわざ処理と遠く離れたところにおいてバグ増やして馬鹿みたい
と思うようになった(俺、経験10年目PG)
敵の配置とかわかりやすいのは別ファイルとかでいいんだけどね
こまけー値は処理の近くに直書きでコメント振っておくのが一番いい・・・と思う
全部スクリプトでおk
>>395 そこまで処理がふわふわした状態で数字だけ弄って調整なんてそりゃ無理だろう
ある程度処理が固まってあとはパラメタの微調整って時にリソースにするから良いわけで
どうでもいいけど定数をdefineはいただけない
そんな状況で何を調整するんだ?
アクションゲームにおける重力や操作感なら直接入れて調整してもコンパイルに大して時間かからんし、
敵パラメータやアクションなら元々外に出してるだろうし
プログラマが調整するような値は処理の上の方にまとめるくらいでいいんじゃね?
ゲームバランスとかプログラマの仕事じゃない部分はコンパイル無しで
調整できるようにしないといけないから処理と分離しておく必要がある
最近はスクリプトで処理ごと分離するのが流行ってるみたいだけど
define とか const は処理と近くに置けばいいんじゃないの
場合によりけりだけど
401 :
デフォルトの名無しさん:2010/08/31(火) 01:40:15
趣味で個人で素人でゲーム作ってる俺から見れば
もうこのスレ意味不明
勘違いするなよ皆の衆
>>401氏は意味不明なほど稚拙だと仰っているのだ
つーか、しっかり仕組みつくっときゃ、const宣言するのもリソースに組み込むのもほとんど手間変わらんし
あえてマジックナンバーにする意味は無いわな
一人でシコシコゲーム作ってるんだけど
VSで自分のコードを実行ファイルとライブラリにわざわざ分ける必要ってないよね?
全くない
ゲームと別にソース流用してツールとか作りたくなったときには
ライブラリ化してないと少し手間かもな
>400
ソースコードとしては別の場所にまとめて書いておいて、
開発環境IDEの機能として変数名にマウスカーソル当てると
定義を表示してくれるのがいい。
レベルエディターというのがよく分からないのですが機能的には、
1。 オブジェクトをインポートして1つのシーンにまとめる
2。 オブジェクト間のイベントを定義する。
の2つがあればいいですか?
これを何らかのフォーマットで出力してゲームでロードした場合、
2番のイベント情報はオブジェクトに埋め込まれるのでしょうか、
それともオブジェクトとは別のファイルに出力されるのでしょうか。
定数取得も全部クラス化か関数化して
調整ビルドの時は動的に読んで
リリースの時はプリプロセスでソースに埋め込んでビルド
レベルエディッタ
ステージクリア形式のゲームだとして、
ゲームエンジン、レベルデータ、シナリオデータ
この3個のファイルがある。
エンジンは実行プログラム、レベルはステージ1個分、シナリオは各ステージの順番などをコントロールする。
レベルデータはチャンクで圧縮されており、展開すると
マップ、イベントデータ、モデル、サウンド、などのデータが含まれる。
レベルエディッタは、レベルデータの内部データを編集するもので
其々のデータを人間の解りやすい形で編集してゆく。
データをインポートして組み込むのも役目である。
以上は、あくまでも一般的な例であって決まった形がない、
であるから、ゲームによってツールによって色々な設計がある。
なんでレベルデータって言うの?ステージデータって言えばいいのに紛らわしい
うん、名前は設計者が決めたからそうなってる。
理解してもらえればどの名前を使ってもよいのでは
理解されないことがあるかも、という想像力はないのか?
シュレーディンガー方程式とか自分の名前付けないだけましだよね
>>411 主にステージの難易度を調整するためのものだからじゃね
日本人素人ゲーマーはステージがわかりやすいかもしれないが、
業界の英語ではレベルが一般的、英語の文献は全部がそうなってる
昔はラウンドだったよね
いつからステージのほうが主流になったんだろ
>>417 暴力ゲーム→ラウンド
その他→ステージ
ボクシング等の影響じゃね
>>411 レベルとステージは意味が違う
洋ゲー未経験者に理解してもらうのはたぶん無理
419 :
デフォルトの名無しさん:2010/08/31(火) 14:00:32
>>417 なにが昔はラウンドだよ、格闘ゲーのやりすぎかよw
マリオブラザーズ(非スーパー) : フェイズ
バブルボブル : ラウンド
これらの時代に『ステージ』という単位を使ってたゲームは思い当たらない
直接な理由が何かは知らんが、和製英語がたまたま浸透しただけでは?
基本的に子供か低学歴の大人向けの商売だし
アクションパズル(普通のパズル含む)のシステムを発案するのがプログラムを書くのの10倍時間が掛かる。
ミスタードリラーとかヨッシーのクッキーは面白かったなあ。
落ち物ゲーがテトリスかぷよぷよに似ちゃうのが悔しい。
倍プッシュ
高学歴の大人ってゲームやらないの?
マネーゲームとかパワーゲームとかやってるんじゃね?
高校の時点で頭のいい奴はテレビなりゲームなり娯楽とは離れる。
というか地方の公立上位校にありがちだけど、1日12時間チャート詰めみたいな感じ。
受験勉強も2年の夏から始まるし、
ゆとり教育()のおかげで足手まといな学校と簡単すぎる授業に拘束されなくなるが、結局勉強。
んで3年になると家で勉強するために学校をサボる輩が出てくるような状況、当然童貞が9割5分。
ただし大学では萌えに目覚めてそっちに金使う奴がちらほら出てくる、
そして社会人()になると日本人は働くために生きてるからそれどころじゃなくなる。
つーか高学歴(特に理系)って基本なくてもいいものに金を使わない。
萌えってなくてもいいものじゃないの?
十字キーで斜めが押された場合ってどうやってんの?
高学歴というか頭のいい奴は何か買うときでも自分のカネは使わないだろう。
少なくとも慶理の俺と東理三の友人はゲームやってるよ
格ゲーの世界大会にでるような東大生とか普通にいるし
ほんと日本人は働くために生きてるよな。ふつう食うために働くんだろ。
御社の製品に心を動かされるとかこの業界ならまだしも頭が湧いてると思う
高学歴って、高校卒業ってことでしょ。
>>428 キー4つ分を上から時計回りに0.5、0、-0.5、1にして、
例えば左と上が押されたら(1+0.5)/2=0.75という感じに計算して
ラジアンを取るようにするんだよ。
それだと左右同時とか上下同時に押された場合が認識できなくね
>>422 落ちゲーのルールを複雑にすると難しくなりすぎちゃうんだよな
クロックスおもしろいのに・・・・
>>426 残り12時間は何してるの?
>>431 どの世界でも上位は高学歴だよな
>>433 犯罪者ですら食うに困らないんだからもうそういう時代は終わったんだよ
スタートレックの世界は仕事=趣味みたいになってるよな
生産性があがりまくればそういう世界が来ると思うよ
つまり、ゲームこそ未来の花形産業なんだよ!!
>>434 酒を飲めないヤツのほうが酒を売るのに向いてるって言うよな
日本人はみんなゲームが好きだから作るの下手なんだよ
>>428 誰でもわかるように質問する能力がこの業界で一番大事なんだと思う
アイスクライマーやワリオの森みたいな発想が出来ればな
443 :
408:2010/08/31(火) 20:38:44
>>409-410 ありがとうございます。でもやっぱりわからない。
一応YAMLみたいなものでパラメーターをテキストファイルに全部書き出して
エンジン側で読み込んで使うみたいなものを想定してますが
いったいみんなどうやってるんだ。泣きながら自分で試行錯誤するしかないのか・・・
>>442 どこで学生と思ったか後学の為にもご教示ください。
たぶん4つ目
学生の期間が終わったら人生終了するのが日本
>>443 具体的に書かず、隠し立てするのなら無駄だから誰も答えない
FPSゲームだとして
Quakeゲームエンジン相手だと
レベルエディターはこのようなのがある。
QuakeED
GTKRadiant/QERadiant/ZeroRadiant
QuArK
>>443 大雑把に言えばセーブの作り方と一緒
エディタでセーブしてエンジンでロードすればいい
ロスプラ2のセッションみたけど、訳わかんねぇ…
どこで困ってるのかわからない
十字キーだから左右同時とか上下同時に押されることはあり得ないってことじゃね
ジョイボールさして1コンは上、ジョイボールは下を押したらどうなるの?
予め優先順位を決めておくか無効な入力として無視
ちなみに
>>436は間違いだったとあとで自分で気づいたことは内緒な。
常識的に考えて迷うようなことじゃないだろ
ifを並べるからそんなバブを作りこむんだよ!!
else ifを使うか素直にswitchを使えばいいよ
int x = 0, y = 0;
if (left) x--;
if (right) x++;
if (up) y--;
if (down) y++;
if (x * y != 0) {
x *= cos(PI / 4);
y *= sin(PI / 4);
}
player.Location.X += x;
player.Location.Y += y;
せめてdxdyで書けよ
お金が無くてWindowsを買えないのでLinuxで開発しようと思うんですが
Linuxでゲームを作るとしたらGCC+OpenGLが一般的なんでしょうか?
DxLibみたいな簡単な2Dライブラリとかあったら教えてください
SDL
バイトでもしてウインドウズ買ったほうがいい
作ったところで遊ぶ奴がいるのか?
Javaでいいじゃん。2Dなら動くでしょ。
音ゲーのプログラムって簡単だったりする?
うん
ヴォルフィードみたいに線分に囲まれたエリアの判定ってどうやってんの?
シードフィルで塗るんじゃね?
悩む所なんてあるか?
何が分からないのか解からない
>>469 >何が分からないのか解からない
この部分が説明できる奴は質問なんてしねぇよw
¶ バッサリ
∵ ○ ノ
○ ':。 | ̄
i⌒>> / >
もうマ板全域で↑こういう感じのレスやめねぇ?
471 :
デフォルトの名無しさん:2010/09/02(木) 01:09:01
ここム板
おれがマ板によく言って聞かせるわ
ミ板とかメ板とか作ってそこに隔離しようぜ
じゃあ、エスパースレに誘導すればいいんだな
モ板は?
なんかスペイン語っぽい
bordo de programmo?
>>470 ってことはお前は
>>467から質問の意図を正確に読み取って答えられるってことだな
是非回答してくれ
ペイントのバケツか
480 :
479:2010/09/02(木) 07:59:25
誰だよお前
どうでもいいがなぜ例に挙げたのが元祖QIXや一番有名なギャルズパニックではなくヴォルフィードだったのだろうか
テディベアに”相談”する方法を紹介したのはカーニハンだっけ?
スレなら相手は人間だから、テディベアより効果的かもしれん
多分、スプライトベースで考えてるんじゃね?
だから線を引く段階から理解してないような気がする
下手したら1ピクセル1スプライトでやってるかもしれんけど
こうやって質問者の意図を予想するところから始めなくいけなくなって
答えの無いところで議論ばっかり先行しちゃうからちゃんと説明する努力はしろってことじゃないの?
プログラ・む (マ行五段活用/自動詞)
そんなことより経路探索の話しようぜ
桃鉄の「いけるかな?」みたいな?
まずはグラフを用意します
ケロケロ
2分木なら簡単そう
事実上隔離スレなのは分かるが、あからさまに昼の書き込みが多いな
>>485 基準となる点は結局スプライトじゃないのか?
でもとりあえず「ヴォルフィード」を知らない人にはよく理解できない質問だよね?
よく○○みたなシステムでと××みたいな演出で
とかゲーム名指定で書いてくる企画屋いるけど
わかりやすいっちゃわかりやすいが、なんだかなぁって思ってしまう
>>496 でもそれって何が悪いの?
建前:マリオみたいなゲームっていえるのは先人がマリオを作ってくれたからいえる
いわば業界全体の資産と言っていいと思うよ
そんなの否定して1から何がつくりたいの?
ハードのトランジスタから作らないと俺のゲームじゃないとか言いたいの?
本音:企画なんて馬鹿なんだからそのほうがわかりやすいならそう言ってもらえよ
奴等に自分の言葉で仕様なんて説明できるわけないだろ現実みろ馬鹿
そういう企画って下の人間からは受けがいいけど
上に人間からはあまり好かれてないよね
まだまだ上に乗っかってるのは古い人間が多いからそんな説明されてもわからんみたいだ
つまり自分の言葉で質問を説明できないやつは馬鹿認定でOKってことですね
なんで答える側がわざわざ検索せねばならん
知らないことまで無理に答えなくていいんじゃない?
ほんと隔離スレとして機能してるなこのスレ
でもどうせ隔離ならゲ制作技術に行ったほうがよくね
あの板の過疎ぶりはひどい
ちょい気になったんだけど、Crystal Spaceをコンパイル中にAvast!が
conftest.exeがマルウェアだということで反応したんだけど、これって安全なの?
原因を見ればいいじゃないか
答えたい奴が検索すればいいんでね
質問する側も答えて貰う確率上げるんなら検索しなくてもいいような質問すればいいだけだし
答えられない奴が
>>506みたいなことを言わなきゃ全て解決
↑答えられない奴
俺に聞けっていうスレタイなのに自分で調べろって
おまえこそスレタイ嫁って思う。
ゲ製作のほとんどのスレはそんな状態。
知恵遅れ最低学歴のゲーム系の専門学生はあれだし
所詮ゲーム()製作ってなっちゃうんだよな
質もお察し
懸命に聞こうとする態度なら、答えようと思う。
素人が専門用語が解らないとしても、文章で10行以上書いて、
具体的なデータなりコードなり、URLを示していれば、質問者の誠意があると思う。
一行のあいまいな質問って、暇人のひまつぶしだと思う。
ちょっと前に質問するなら余計なこと書くな、3行でまとめろってプロ様()がおっしゃってたぞ
左様。スパゲティ質問は許可しない
3行で「まとめろ」よ
せめて必要最低限の情報は書こうな
脳は使わないと腐っていくぞ
>>510 結局何も出来ない奴か情報出したくないハイエナだけがいるって感じかね。
ゲーム制作プロジェクトとかがバンバン出てくれば面白いんだろうけど、
所詮匿名で頑張っても誰かに成果を横取りされるんじゃないかという不安があって思い切り参加できない。
プロ様今は平日の昼っすよ?
×情報出したくない
◯情報出したくても腕も頭もないので出せない
わかりやすい質問を作成する為のウィザードやテンプレがあれば教えてください。
具体的に書け。 曖昧に書くことはひまつぶしと認識する。
お前ら平日の昼から喧嘩すんなよ
というわけで自分が考えたお、これは凄い、うはwっていうアルゴリズム教えろ
具体的にはどういう事なのか具体的に書いてください。
平日昼間言うが
休日とかフリーな時間にワザワザこんなとここねぇよ
わかるだろ?
具体的に例を示したら示したで
俺の知らないゲームを例に出すなとごねるバカが居たばっかりじゃん
何々『みたいな』、と言った時点でそれはもう抽象的なんだが…
FFみたいな戦闘システムにしたいんだよね→ハァ?
FFと同じ横対峙型の戦闘画面にしたんだよね→わかりました。(でもそれってパクリじゃね…?)
もう分かったからお前は黙ってろよ
えっ
タイトルからプレイ画面等の状態遷移について
enum{
TITLE,
PLAY,
};
int g_state = TITLE;
int main(void)
{
if(g_state == TITLE){ title_func(); }
else if(g_state == PLAY){ play_func(); }
return 0;
}
void title_func(void)
{
if( ... ){
g_state = PLAY;
}
}
JAVAってゲーム開発に向いてないの?何故?
ガベコレに気をつければJAVAでもいいんじゃね?
andoroidでゲーム作ってるgoogleの人が言ってた。
>>528 具体的にできないのに具体的にしろっておかしくね?矛盾じゃね?
そういやオブジェクティブCだかなんだかの話題が出ないな
>>531 せめて、こうじゃね?
enum{
TITLE,
PLAY,
};
int g_state = TITLE;
void title_func(void)
{
if ( start_button )g_state = PLAY ;
}
void play_func(void)
{
if ( game_over )g_state = TITLE ;
}
void (*Scene[])(void) = {
title_func,
play_func,
} ;
int main ( void )
{
for(;;){// ゲームループ
Scene[g_state] ;
}
return 0;
}
前に俺が関数ポインタ使えばって言ったら引数が変わったときに面倒とか言っただろうが。ksg
functionに引数バインドしてうんぬんでいいじゃん
なんの引数が変わるんだ?
具体的に
void title_func(char str, int val);
int play_func(double val);
みたいなことじゃねえの?俺はいちゃもんつけられた側だから知らんが。
>>532 気をつける事柄が多いので大規模開発には不向き。
本来は大規模開発で実力を出す言語なので結果的にゲームには不向き。
携帯端末での実績を考えれば小規模なら適してる気がする。
>>534 具体的にできないなんて言ってない。
質問の雛形など無いと言っている。
内容によって書く必要のあることは違う。
何が分からないのか、どこまでやってみたのか、本当の目的はなんなのか、このくらいは明らかにしておくべきだろう。
JavaでGUIゲーム作ってる素人でゴメンお
>>543 GUI以外でゲーム作ってるほうが驚きだわ
Android?
わざわざそんなことする位ならこれでよくね
void (*scene_func)(void);
void title_func(void)
{
if ( start_button ) scene_func = play_func;
}
void play_func(void)
{
if ( game_over ) scene_func = title_func;
}
int main ( void )
{
for(;;){// ゲームループ
scene_func();
}
return 0;
}
前に俺が関数ポインタ使えばって言ったら引数が変わったときに面倒とか言ったろうが。ksg
>>546 に賛成なんだけど、可読性が落ちるからやめろって言われたことある。
ポインタ経由で呼んでることをわかりやすくするために
(*scene_func)(); って書けばいいんじゃない?
>>531をswitchにしてるわ俺
関数ポインタは確かに可読性が落ちるし、その必要性もないだろ
いまどき、仮想関数だろjk
せめてシーンはクラスにしろよ
それと
>>546が良くないのは可読性じゃなくて、
自分が次のシーン関数の存在を知ってないと遷移できない所
結合が強すぎる
じゃあどうすんだよ
とりあえずシーンの実装と、シーン遷移の流れを完全に分離しろ、話はそれからだ
シーンって何?
正解はステートパターン
FSMとかステートパターンとかセンス悪いやつのための単語だよな
>>557 がセンスの良い解決法を披露してくれるそうです。
関数ポインタなんてやめろ
ちゃんとステータスを示す変数もって明示的(←ここ超重要!)に変えろよ
読み手に「じゃあ、シーンの変更しますからね!ね!ね!ね!・・・ね!」って気持ち悪いぐらいアピールしまくれといいたい
なんでそう隠すっぽいトリッキーな組み方するのかわからない
ステータスを示す変数の型が関数ポインタになったからといって、隠すようなことにはならない。
関数ポインタでもステートオブジェクトでもいい。
関数ポインタに拒否反応示す奴は単に見慣れてないだけなんじゃねーの
シーンを変更する時は専用の関数を呼び出すだろ?
それで十分明示的じゃね
関数ポインタを推す理由が分からん
シーンクラスにはしないの?
選択肢のひとつではあるだろ
シーン作ってからイチイチEnum追加したりしなくていいいから
個人でコーディングするならそれなりに実用的。
しかも、存在しないシーンを指定したらコンパイル時にエラーが出るので、間違いが起こりにくい
enumだって存在しないの指定したらコンパイルエラーじゃん
どっちにしろ結局の所は自分とは違うやり方を認めたくないだけなんだろ?
>>568 ・シーンオブジェクトが存在しない
・特定のEnumに対する実装が用意されてない
少し意味合いが違う気がするが。
自分の選んだ方法と違うのが紹介されたからってなんで否定したがるのかね
tim today!
否定しなきゃ技術力あがらないじゃん
enum定数の変わりに関数名使えばいいだけじゃん
Res (*f)(void) = Title;
while(f)
{
Res res = f();
if(f == Title) { f = GameMain;}
else if(f == GameMain && res.is_kuria()) { f = Ending; }
else if(f == GameMain && res.is_sibou()) { f = GameOver; }
else if(f == GameOver) { f = 0; }
}
みたいな感じで
これでシーン実装と遷移図は完全に切り離せるだろ?
わざわざ定数経由してタイプ増やす意味ないっしょ
意味もないのにいまどきアドレスジャンプ(関数ポインタ)なんて使おうとする化石がいるから
思いっきり馬鹿にしてみた
正直、ゲームPGのレベルを無駄に下げてるし業界的に邪魔だと思う
と関数ポインタの使い方がわからないゆとりが申しております
これ、業務系とかいってコードレビューしたときに
「なんでこんな組み方したの?」
って聞かれたときにまともな返答返せるんだろうか?
関数ポインタでなければいけない理由を話してもらうことになるけど・・・
enum定数じゃないとだめな理由のほうが無いよね常識的に考えて
C#がスタンダードになったあらデリケートな部分ですから、とか言えるんだけどな
関数ポインタ理解できませんごめんなさいって言えやwwww
delegateと掛けたんじゃないか?
関数ポインタ否定してるやつはコールバックとか使わないんだろうか
いったいどんな設計してるんだろう
まあどう見ても釣りな件。マって沸点低いよね
関数ポインタ使う意味がわからない
swtich caseでかけるよね?
なんでそんなメリットないことしたいの???
ってか、それで自分がプログラム上手いつもりなの?
習いたての初心者のオナニーみたいで気持ち悪い
わざわざ関数ポインタなんて使ってバグ増やすようなことして何がうれしいのかわからない
定数経由する分コードが無駄に増えてバグの確率があがることが理解できないんだろうか
プログラマってのは美しさを求める生き物だからさ
そして美しさの定義は人それぞれ違う
可読性とかバグの誘発とか後付の理由であって
ぶっちゃけ別にメリットとかどうでもいいんだろ?
swtich caseがダーっと並んでるのっを美しいと感じるか
関数ポインタで1行に纏められてるのを美しいと感じるかただそれだけの違いでしかない
シーン分岐だけなら良いけど、
それ以外でswitch文がだーっと並んでたら
実行速度にも響いてこないか?
美しいコメントを書けるコーダーが優良。
でもそんなの関係ねぇ!
switchは最適化されると早いよ
こまけえことなんざ現場ごと好き好きにやってればいい
趣味でやってる素人にゃあ関係ねえ
ほんとレベル低いな。
クラスとか必要ないと思ってる奴多そう。
関数ポインタの勝ち
全部グローバル変数にしたらどこからでもアクセスできて便利なのに、わざわざカプセル化する意味がわからない
みたいな
関数ポインタはステータスの初期化・終了処理を別にやる仕組みが必要なのと
現在のステータスを取得する必要があるときに結局ステータス変数にあたるもんが
どうせ必要になるんじゃね?ってところが無意味だと思った
上からの指示に従って組んでリャそれでいいのよ
某読み物より引用
>プログラマは成果物以上に、その過程に美的感覚を注ぐ。
>プログラマはそれを、「美しいコード」 と例える。
>これらの美しさは、どんな芸術品より彼らの心を強く引き付ける。
>しかし、困っちゃうのが、プログラマ以外にはこの感覚がサッパリ分からないことだろう。
>美しい設計と仕様くらいなら、SEクラスならまだ理解できるが、美しいコードなんか本気で分からない。
>機会があれば、プログラマに美しいコードと汚いコードを見せて貰うといい。
>理解できないどころか、
>「こんなので汚いだ美しいだ……こいつら頭おかしいんじゃないのか!?」
>と思うことだろう。
>美しいプログラムは、変更に強く、バグも少なく、スピードも速いという。
>しかし、これも周りの人間には、どうでもいい話だったりする。
>実際にどうでもよいはずがないのだが、繰り返すようにプログラマが向かい合っているのは「コード」。
>それを見る人は、コードが制御する「結果」を見ている。
>コンピュータが処理速度ぎりぎりの戦いを挑まれない限り、「コード」を美しく改良しても、「結果」が美しくなるわけではない。
「コード」を美しく改良しても、「結果」が美しくなるわけではない。
「コード」を美しく改良しても、「結果」が美しくなるわけではない。
「コード」を美しく改良しても、「結果」が美しくなるわけではない。
ギリギリの戦いもしたこと無いぺーぺーが何かを知ってるように語ってんじゃねーよ。しかもこぴぺで
>>597 コード綺麗に整理してかけてたらバグ減るし変更に強いし、
最終的な最適化も綺麗に書いたかどうかでやりやすさが雲泥の差だよ。
そのへん全部度外視して結果が同じなら何でも良いと思うなら勝手にデバッグで苦労すれば良いけどさw
そういや生産性を重視するプログラマって少数派だな
たしかゲ製作板で同じ議論をしたときは
「関数ポインタよりswitchのほうが最適化が効くよ」で完結した覚えがある。
今ではクロスプラットフォーム開発が普通だからそうでもなくね?
シーン関数の呼び出しなんて1フレームに一回しか起こらないのに
そんなものどれだけ最適化した所で大した恩恵なんて無いのにな
ゲームで難しいのは綺麗なコードを書きすぎると想定外の仕様変更で痛い目を見ることだな
せっかく書いたのをバッサリカットされることもあるし、
そう考えると考えなしに適当に定数使いまくるとかそういうぐちゃぐちゃのうんこったれコードでもさっさと出来上がるほうがいいのかも
クロスプラットフォーム開発でポインタなんて使ってハマったらデバッグ大変じゃね?
最近だとアドレス長が違ったりするし
>>604 それは綺麗なだけで整理できてないコードだから痛い目みてるだけだ
関数ポインタ派は「シーン切り替え」と「シーンに影響を受ける処理」をどうやって分離するの?
1フレームの中途でシーン切り替えがあった場合、それ以前と以後のタスクが違う処理をする矛盾がでるけど
そんなものはシーンじゃない
綺麗なコードとは可読性が高く仕様変更に強く高速処理を行うコードの事である。
プログラマ間で議論する場合、どれを重視するかのバランス感覚の相違による所が大きい。
>>610 シーン関数てのはそもそも、そのフレーム内の処理を全部やる関数だから
1フレームに一度しか呼ばれません。
どうせ答えなんて出ないんだから自分がやりやすい方法でやればいいんじゃね?
関数名で検索するとアドレスとして使われてる箇所がたくさん出てくるコードとか嫌過ぎるな
超読みたくないよ
オナニーコードもここまでくると限度があるよね
必要もないのにコールバック関数みたいなの読みたくないよ
ま、どうせやねうらおだろw
こんな馬鹿なこと考えて悦にいってるのってw
お前、そんなだからいつまで経っても3Dできないんだぞ
まあ普通はシーンのクラス作って、インスタンス切り替えだろうし
どっちかっていうと関数ポインタの方が近いよ
クラス作るっていうのは何の答えにもなってないぞ
>>611 そうだな
なにも矛盾してないぞ
さぁ、続けろ
ステートパターンでFAだろ?「馬鹿でごめんなさい」って言えよwwww
ああ俺もそんなようなパターンで実装することも考えたわ
結局クラスポコポコ作るの面倒だと思って1つのゲームクラス内のメンバ関数内の盥回しにしたけど
ステートパターン自体は悪くないんだが
ゲームプログラムをデザパタで語ろうとするやつはほとんどが口だけ野郎
611は敗北宣言か?
それとも本当にわからないのか?
自分を自慢し、誉めてもらいたがっている。 たいした男じゃないわ。
まだ起きてたのか
おまえら
話に決着をつけないと寝られないじゃないか。
明日になったら脳内のコードも消えてるだろうし。
っていうか611は勘違いでいいんだな?もう寝るぞ?
この手の話題で決着なんてついたことない
時間の無駄だからさっさと寝ろ
うわあ乗り遅れたぜ
一つだけ言わせてもらえれば、switch厨はそこがボトルネックになるほど
カリカリに全コード最適化してんの?って感じ
昔ゲ製でもタスクシステムのスレは無駄に伸びてたな
てst
>>626 switchがボトルネックになったとき、どうやって対処したのか聞きたいな。
ならねーだろ普通に
それよか関数ポインタなんて初っ端から引数使わない気満々の設計思想とか頭どうかしてる
>>627 全部引数で渡さなきゃ駄目って奴がいた記憶がある
オブジェクト指向を全否定してた
>>630 何を言っている、関数ポインタでも普通に引数使えるだろ。どこを指摘してるんだ。
どうせ関数ポインタが先に出たらswitchが良いとか言い出すんだろお前ら
>>632 各シーンで必要な引数が違うときの話だけど
君はどうせvoid*しか使わないからそんなこと頭に無いよね?
ゲームなんだから全部グローバル変数でいいだろ
>>634 苦し紛れのこと言うなよ。俺は関数ポインタは引数使えるぞって言ってるだけだぞ。
おお、引数君かw
ゲーム作るような知恵遅れは現実見えてないな
要するにシーンもタスクシステムみたいなノリで使いたいのか?
そもそも
シーンごとに違って、毎ループごとに渡す必要があって、しかもローカルにしかスコープが無い引数って何よ?
具体的に
なんだ、シーン関数は1フレームに一度しか呼ばれないから
1フレームの途中でシーン切り替えなんて事は起こらないつってんのに
そんなこともわからんバカがいるのか
>>642 switch厨ってどういう意図で使ってるんだ、自分の文章見直してみ。
何でお前らそんなにくっだらないことでムキになってんの?日本人なの?
無限ループって怖くね?
breakすれば良くね?
今時ステートパターンの派生型ぐらいしか使わないのに
switchだの関数ポインタだの、OOPぶち壊し設計ばっかり盛り上がるこのスレのレベル
>>647 こうなってるんじゃね?
for(;;){
for(;;){
break;//←
}
}
>>641 誰もそんな事いってないだろ
あと100回読み直して来い
現実的に考えると引数をバインドしたfunctionを使うから引数の心配は無用
>>648 関数ポインタもひとつのオブジェクトだよ
>>653 シーンがグローバル関数って時点で設計が崩壊してると言っている
>>648 ステートパターンを実装する為に関数ポインタとswitchのどっちを使って実装しようかって話だろ?
わかった、こいつデザパタを実装レベルでしか理解してないのか。
これだからプログラムバカは仕様書がかけないんだよ。
>>657 クラス使わずにデザパタ実装したって依存関係無茶苦茶になって破滅するだけだから
クラスが必要のない規模で無理にデザパタの考え導入するのは愚かしいよ
用語の解釈がそれぞれ違ってるような気がするw
ちゃんとクラス使いましょうねって意味なんだがなw なんで伝わんないんだろうなw
おれは、関数のオーバーライドでやってる。
1フレーム毎の処理をする関数、描画処理をする関数を、
タイトルシーン、メインシーンのオブジェクトごとにオーバーライドで作っておく。
後は、シーン選択クラスにいずれかのシーンオブジェクトを選択させるだけ。
クラス使う必要ないとこで無意味に使うこたない
そしてステートパターンには必要ないから関数ポインタでよい
いろいろやっても面倒臭いだけジャンw
>>531がシンプルで良いんじゃねw
シーン開始時とシーン終了時に、テクスチャとかモデルとかのデータを
読んだり破棄したりその他色々発生することを考えると、
やっぱりクラス化しておきたくなる
いや、普通
>>661だろ
シーンごとに独自の機構も作れるし
>>658 ほらな、あのソースの形にこだわってるのが理解してない証拠だよ
デザパタを非OOPLに移植しようって話じゃないんだよ
switch厨のほうがまだわかってる
>>660 クラス使用の正当性は人員のレベルや開発期間、ターゲット等により定まる
ちゃんとちゃんとの味の素じゃねーんだよ!!
外部ファイルに遷移データ置きたい時に関数ポインタ丸出しでやると困るよね
後で外部化することも考えてあらかじめ文字列か定数でマッピングするほうがいいだろう
>>666 お前の言う意味での理解はしてないよ、多分それ間違ってるからw
main(){
while(){
if(scene == SceneTitle)scene = HandleTitle();
else if(scene == SceneField)scene = HandleField();
}}
HandleTitle(){
while(){
}}
自分は、ゲーム全体のループで回さず、現在のシーンのループでのみ回す。
値などのスコープを狭くできて便利。
C系でしか使えないっぽいのが難点。
ステートパターンなんて多態性の典型例みたいなもんだし
Cでやるにしても関数ポインタ以外ありえん
switch厨ってなんだよ
基本形が
>>531な奴の方が多いだろ
クラス化しても内部で関数ポインタ使ってるしね結局のところ
始めたばかりの素人とか、組み込みっぽい特殊なのとか、超絶的に
処理速度の要求される特殊なメインルーチンを除いて、
いまどきクラス使わない選択ってあるの?
移植性という概念
問題は、次のシーンクラスを指定するのにenum使うのか否かって所だよね、そうだよね
ちょっと疑問に思ったんだけどクラスprivateな部分で次のシーンが変化する場合ってどうやってそれを外に伝えるの?
返り値で次のシーンを指定するってやり方だと、せっかく個別シーンと遷移を分離した意味ないよね
なぜなら個別シーンがほかの個別シーンと遷移図知ってないといけないから
かといってクラスから外部に情報を渡さないと遷移図は分岐できない欠陥品になってしまう
どうせ個別シーンがほかの個別シーンと遷移図を知ってないといけないならわざわざ返り値で指定しなくても
if(is_end) return change_scene(title::get_instance()); else return change_scene(quit::get_instance());
みたいに書いたほうが安全じゃないかな
>>676 「privateな部分で」の意味がよくわからんが、public: の中にアクセッサでも
付けときゃいいって話じゃなくて?
>>675 違うだろ
コールバックするわけでもないのに
関数ポインタとかキモイもん使ってる馬鹿がこの先生きのこるにはどうしたらいいか?だろ
>>676 マジレスすると、シーンがどう終了したか、と、次は何のシーンか、ってのは完全に別問題なのでそこを分離すればおk
シーン選択クラスってのを作っておいて、シーン遷移はすべてそこで行う。
SceneSelector
{
public:
void SceneChange(Scene *lpScneObj); //シーン遷移関数
private:
Scene *lpNowSceneObj; //選択されているシーンオブジェクトへのポインタ
};
このSceneChange() を呼び出すだけで、それまでに選択されていたシーンの
終了処理と、新しいシーンの開始処理を行う。これでOK。いつでも遷移できる。
なんか話が分散しているので
class SceneManager
{
>>681 でもそれだとシーンの実行関数とかpublicにおかないといけないんじゃね?
自由に実行してほしいのか?そんなもん
enumで組めば綺麗だったのにわけわからんなw
だから、クラス名に ○○Manager ってのはやめろよ
>684
もちろん実行関数はpublicに置くが、何か問題あるか?
>>686 そうなると
SceneChangeの位置づけ微妙じゃね?
こんなもんぶち込まなくても実行関数外だしされてんじゃん
そういうの触らせたくないからこそのprivateやpublicなんじゃないかと・・・
いや、別に自由にやってもらっていいっていうならいいと思うよ?(←なぜか疑問形w)
いや、実行関数はあくまでも
void SceneSelector::Excution()
{
lpNowSceneObj->Excution();
}
とかだけの実行関数だから、現在選択中のシーンの情報がprivateな意味は
あるよ。
シーン変更時には、必ずシーン終了処理とシーン開始処理が
自動的に行われて欲しいから、勝手に外から変えられないように
シーン変更関数だけをpublicにしてる。
つまり、
void SceneChange(Scene *lpSceneObj)
{
lpNowSceneObj->End(); //終了処理
lpSceneObj->Begin(); //開始処理
lpNowSceneObj = lpSceneObj;
}
とかなるのね。
最低限こんなもんでしょ
class SceneManager
{
public:
void mainRoutine()
{
mpCurrentScene = createScene(eScene_First);
for(;;)
{
mpCurrentScene->run();
if (mpCurrentScene->isFinished())
{
EScene nextScene = mpCurrentScene->getNextScene();
delete mpCurrentScene;
if (nextScene == eScene_Invalid) break;
mpCurrentScene = createScene(nextScene);
}
}
}
private:
Scene* createScene(EScene sceneID);
private:
Scene* mpCurrentScene;
};
>>688 変えてほしいものとそうでないものとがごっちゃじゃない?
シーンオブジェクトをぶち込むってことは使用者側でシーンオブジェクトさわり放題なんでしょ?
触ってほしくないのにそのシーンをぶち込む仕様は無駄じゃない?
SceneSelector無視してなんでもできるのにSceneSelector使ってくれってなんか変・・・
>>691 もちろんシーンオブジェクトが触れないと、ゲーム作れない。
タイトルシーンと戦闘シーンが全く同じシーンオブジェクトにはならない。
それを使用者側が作っていく。
いや、今のシーンで次のシーンの実態生成するのが気持ち悪いって話だろ
シーンオブジェクトを全部singletonにしてgetinstance
いや、シーン内で、他シーンのンスタンス触れるのが気持ち悪いっていう
いや、SceneSelectorのコンストラクタで、先に全てのシーンの実体を生成しておく。
こうすると、そのシーン内でずっと保持してほしい情報があるときに便利。
各シーンオブジェクトのポインタは、SceneSelectorクラスのprivateな
ポインタ変数にあるから、外からさわるのは面倒くさいはず。
確かにさわろうと思えばどこからでもシーンを直接さわれるけど、
さわれるからって電車の中で女の胸触ったりしないよな?そういうことでしょう。
普通にSceneSelectorの中で全部やってくれればいいんだけど・・・
使用者と提供者がごっちゃになってるな
うーむ、これ以上うまく説明できん。
まあ、気に入らないやり方だったら、悪い例だと思ってくれ。
>>699 っていうか何がしたいのか意味不明なクラス作るなよ
SceneManagerよりSceneSelectorの方が何がしたいか分かるだろ
SceneSelectorはシーンの切り替えしかしないの?別途SceneManagerも作るってこと?
SceneSelectorっていう名前なら、次のシーンを選ぶ以外の事はやってはいけない
Selectって動詞だからクラス名にふさわしくない
いやそれは良いだろ別にw
またくっだらない話してるな
いちいちメンド臭いだけで大してメリットのないものにこだわる人って居るよね
バグも積れば、山となる
シーンAからシーンBに移るときのフェードアウトフェードインってあるじゃん、あれって
シーンA
→シーンAの最後のフレームの絵+フェードアウトのシーン
→シーンBの最初のフレームの絵+フェードインのシーン
→シーンB
ってやってるの?
そんなの人に聞かなきゃ不安かよw
シーンA
→シーンA+フェードアウトのエフェクト
→画面真っ暗、シーンB切り替え
→シーンB+フェードインのエフェクト
→シーンB
シーンA終了 + フェードアウトタスク発生
↓
フェードアウト待ち
↓
フェードインタスク発生 + シーンB開始
こんな感じ
フェードアウトするときは画面が停止しちゃう前提だったらフェードアウト専用の処理でもよさそうだけど
JAVAで特定のスレッド以外を一時停止して、
それが終わったら再開みたいなメソッドなり方法があったら教えてください
716 :
デフォルトの名無しさん:2010/09/05(日) 16:34:14
一貫した追加方法でやれるなら何でもいいと思う。
ただ俺の場合はここに書かれたものより分かりやすく、
たとえば、RPGならフィールドPG、バトルPG、メニューPG、
イベントPG等、多人数並行開発が出来るようになっている。
シーン関連は汎用化頑張ってもあまりいいこと無い気が
お前らまだやってたのかw
こんなんだからゲームプログラマは基地外ばかりだって言われるんだよ、否定しにくい
プログラムで書けばいいものをわざわざ日本語であいまいにするやつは無能
俺が一番とただ叫んでいても意味ないんだよ。
自分や他人の手法がより優れてるから標準化しようと働きかけて
実現させていくことに意味があるんだから。
>>719 ゲーム作ってるプログラマが議論してるようには見えないけど。
ゲームプログラマに失礼じゃないか?
ぶっちゃけ変わらんよ
ゲームプログラマだろうがそうじゃなかろうがプログラマは皆頭がおかしい
以下振り出しに戻る
タイトルからプレイ画面等の状態遷移について
おまえら状態遷移図や状態遷移表って作ってる?
ん~、複雑なのはExcelでマトリクスくらい作るけど。
本格的なゲームだとすごいことになるんだろうな。
巷ではステート=シングルトンが流行ってるの?
シングルトンって単語を使うやつは信用しない事にしてる。
逆にそういうやつほど信用できない
プログラム全体でひとつのインスタンスを保障したいクラスにはシングルトンを使うべきだよ
なんでもかんでもシングルトンはだめっていうやつはちと思考停止しとるんじゃないかね?
ただ、シングルトンはグローバル変数の孕んでいる問題をそのまま継承しとるので
これを便利だからって理由で無闇に使う奴は、依存関係の整理がめんどくさいだけ、ってのがある
未だにシングルトンが理解できないんだけど
グローバル変数でクラス作るのと何が違うの?
グローバルだとそのクラスのインスタンスが同時に2つ以上存在しうる
シングルトンだとそのクラスのインスタンスはひとつに限られる
別にグローバルに置いても機能的には同じことできるとは思うけど
そんな所有者の不明瞭なインスタンスはそもそもつくるべきでないので
クラスのアクセス制限全否定だな
getInstance()を挟むか挟まないかの違いしか無いが
>>735 基本的には同じ
グローバル変数の場合、使う側が実態がひとつだということを
(暗黙的に)考慮してるけど、シングルトンの場合、普通にインスタンスをたくさん作って
使っていても、実はグローバル変数と同じように実態がひとつになってる、あるいは
そうなるようクラスの中の人が頑張ってる、って感じ
ときどき、クラスのインスタンスがひとつしか作れない、みたいな言い方が
あるけど、あれは紛らわしい
別にグローバルにアクセス可能な物だけがシングルトンではない
ほんっとにとりあえずケチつけたいだけの馬鹿が居るな
>>740のいう実態ってのがインスタンスのことだよ
void foo() {
SingletonClass* sc = Singleton::getInstance();
sc.a = 10;
}
void bar() {
SingletonClass* sc = Singleton::getInstance();
printf("%d",sc.a); // 出力は10
}
int main(void) {
foo();
bar();
return 0;
}
こういうこと?なんか違う気がするけど
なんか色々おかしいぞ
interface IScene () {
void Update();
void Render();
}
static class Game {
private static IScene currentScene;
public static IScene Scene;
public static loop() {
while (true) {
if ( /* 更新のタイミング条件 */ ) {
currentScene = Scene;
currentScene.Update();
if ( /* フレームスキップの条件 */ ) {
currentScene.Render();
}
}
}
}
}
すごく端折ってるけどシーン処理ってこれじゃダメなの?C#だけど。
>>747 いまの議論に全然関係ないコード出してなにが言いたいの?
シングルトンとはインスタンス生成メソッドを何度実行しても初回のみ有効な事。
スコープは副次的な話。
そもそもインスタンスの数把握してないような馬鹿にプログラム組ませるなよなって思う
そもそもシングルトンの設計思想が嫌いっていうか人としてやばいレベルだろって思う
マジでインスタンス数が頭にない奴がテキトーにクラス生成するの狙ってるとしたらその馬鹿に仕事させんなよって普通に思う
つうか動けばいいじゃねえか。細かいことにうだうだ言いすぎなんだよ。もっとプログラミングを気楽に楽しもうぜ
>>749 別に最初の一回だけ有効じゃなくてもおkなんだぜ。
例えば画面クラスっつーのがあるとするじゃん。普通は画面は1枚だからシングルトン的な設計にするよな?
でも、画面は時たま解像度が変わったり縦横が変わったりするじゃん。そんときは、イベントハンドラとか仕込んでおいて
こっそり画面クラスのインスタンスは破棄するようにしておいて、次にgetInstance()とかが呼ばれたときに
もう一回newしなおすってのもよくやるぜ。
動けば良いってのは、規模が小さいプログラムの話であって
ちょっと規模が増してくるととたんに複雑なバグに悩まされる羽目になるわけですよ
そういう辛い経験から、グローバル変数はやめようとか、publicフィールドはやめようとか
1個しかいらないものはシングルトンにしようとか、先人が言ってるわけ。
>>750 XML読み込みクラスとか作ると、必然とインスタンスの数なんぞ分からなくなるわけだが……
>>753 グローバル変数が駄目だって言ってる人間がシングルトンを許可するわけないじゃん
>>753 シングルトンの肝は一個しかない事であって、グローバルにアクセスできることじゃない
グローバル変数とシングルトンは全然別モンだろ
直接変数にアクセスするのと、メソッド介すのとでは雲泥の差
>>756 意味がわかんない=メリットがさっぱり理解できない
どういう人間がどういう場面で使うことを想定してるの?
誰も作らなければ1個に決まってるじゃん
その辺把握できないほど悲しい脳みそしてる人間がうっかりインスタンス作っちゃうことを想定してる設計思想なわけ?
仮にそうならそこでプログラムを落とせよ
そうでなくてインスタンスを作るタイミングが不定で~とかいうならそのいかれた脳みそをまずどうにかしろよ
とかこれがメリットになる場面がさっぱり理解できん
>>750 デザパタはJavaの文化なんだから仕方ないだろ
基本思想がこれだけ違う
C++:プログラマは全知全能の神
Java:プログラマはあらゆるミスをするバカ
起源はどこかっていうのは別としてデザパタを育てたのはJava
>>752 端折りすぎたなスマン&訂正サンキュー
話戻すけどシーン切り替えクラスってシングルトン的な役割も期待されてるよな
だからSceneSelectorってクラス名は違うと思うんだよ
>>758 数百人が開発して数年間メンテしつづける。
そんな中にはうっかりミスをするバカもいる。
そういうバカをフォローするのがシングルトン。
シングルトン不要って言ってるやつはたぶんガベージコレクションのありがたさもわからない。
>>759 >Java:プログラマはあらゆるミスをするバカ
マジか
まあ、そうだよな
javaグラマって自分で組んだプログラムをビルドもしないで
実装工程終了しましたって報告にくる超絶糞野郎だからな
そいつ曰くビルドはフェイズが別らしいが・・・w
>>758 >誰も作らなければ1個に決まってるじゃん
そりゃ、誰もバグを埋めこまなきゃデバッグなんてしなくて良いって言ってるようなもんだ
プログラムでインスタンスが一個しかないことを保証できる仕組みがあるのに
わざわざそこを手動で管理しようとする意味がよくわからん、バカなの?
>>762 イヤイヤイヤイヤイヤイヤイヤイヤイヤイヤイヤイヤ
イヤイヤイヤイヤイヤイヤイヤイヤイヤイヤイヤイヤ
イヤイヤイヤイヤイヤイヤイヤイヤイヤイヤイヤイヤ
newの数を数えてみるとかそのクラス名で検索すれば「一発」で出てくるでしょうよw
その程度のことをこんなトリッキーなコードでなにやらさらにトリッキーな動作
するようにしちゃう意味がわからないんですよ
どうですか?
>>764 シングルトンってのは、インスタンスが1個または0個なんだよ。
場面に応じてインスタンスを作ったり消したりするけど、2つ作ると困ることとかある。
そんなnew数えりゃ済むなんて単純なプログラムならシングルトン使うまでもないかもね。
>>765 >場面に応じてインスタンスを作ったり消したりするけど、2つ作ると困ることとかある。
それはまずくないですか?
ぶっちゃけ動いてほしくないコードじゃないですか?それ
実行時に2つ目が生成されようとした時点でエラーを出してプログラム落としたほうがよくないすか?
危険回避の防衛ラインがおかしいと思うんすけどどうすか?
baka
シングルトンってテストどーすんだろ?
インスタンスが作られた場所によって特定のエラーが発生するなんてバグが出たら悪夢そのものだな
>>766 それはその通り、2つ目を生成しないようにするのがシングルトンの設計なわけだが、何か問題でも?
>>769 え?それじゃなんで1つ目のインスタンスを渡そうとするんですか?
思いっきりエラーダイアログ出して止めてくださいよ
>>761 人月管理が厳しい所はそういうやり方してるね
俺ら的にはビルドエラーなんてその場で修正しろよって思うけどな
まぁ、逆にすぐ直すヤツらは修正凍結の徹底が難しいんだけどな(だからツールが重要になる)
どこかのブログのネタにもされてたけど納期が近づいた新人にデバッグは俺(上司)がやるから
コードが書けたらすぐ渡せって言ってるのに新人はビルドしてエラーを潰してて
日本語通じないってぼやいてたな
ペアプログラミングにすればこういうミスも減って効率があがりそうな気がするよ
>>770 一つ目のインスタンスを渡す?何言ってるんだ喪前は。
普通、getInstance()はスタティックなメソッドだぞ。インスタンスなしで使える。
>>770 シングルトンにすれば実行時じゃなくてコンパイル時にインスタンス1つが確定するんだよ
どっちが良いかなんて考えるまでもないでしょ
コンパイル時にインスタンス生成wwwwwwwwwwwwwwww
>>774 でもそれってアプリケーションの実行手順によってインスタンスの生成場所がかわって
違うバグが出るってことですよね?
いいですか?これ?
シングルトンにしておけば呼び出す側でチェックがいらない
だからソースがシンプルになり可読性があがる
>>776 インスタンスの生成場所を固定にしたいときは、そういうシングルトンにするよ
そんでインスタンスもってないシングルトンにアクセスしようとしたらassertかける。
デバイス関係とか生成順制御しないといかんしね。
まあ、文化がjavaだから・・・ってとこだな
奴等と比べたら俺等のやり方は石橋を叩いて~って感じ
ゲームっていうか組み込み系に合わないスタイル
メンバーに想像を絶するほどの馬鹿がいないと利点は理解できないと思うね
>>776 >>774はでたらめだから信じるな。コンパイル時にインスタンスがひとつなんて確定しねー。
プログラムは実装した通りに動くから、シングルトンっぽく作ってなきゃ
新しいインスタンスの破棄がガベコレ任せになってて一時的には2個ある、ってコードもまあある。
もちろんインスタンスの生成タイミングによるバグというものはあるけど、
それはシングルトンパターンとは無関係の話。
気になるならmain()の直下にinit()とかでインスタンス作っておけ。
想像を絶するバカなんて毎日みてるじゃないか
>>777 クラス名.getInstance().なんたらアクション();
みたいなコードの羅列が可読性高いとは思わないけどな……
コンストラクタをprivateにするだけで、コンパイラが不正なインスタンス生成を発見してくれるって意味でしょ
スマートポインタ使えば良くね?
参照カウントにして2こ目(あるいはNこ目)に例外飛ばす(あるいはnull返す)、っていう仕様ももちろんありだよね
記憶があいまいだけどEC++でもそこに言及してたと思う
複数に参照されても致命的なエラーが生じないならシングルトンで十分だし
やばいならシングルトンより例外飛ばしたほうがいい
どっちかに偏るんじゃなくて、ケースバイケースで柔軟に対応すればいい
「シングルトン」って一言書いてあるだけでそのクラスの役割や使い方が伝わる
こんな便利なことはないよ
>>784 コンストラクタをprivateにするのはシングルトンパターンだけじゃない。
newを単純に制御したいと考える人間なら、シングルトンパターンもそうだけど
ファクトリパターン(getInstance()じゃなくてgenerateInstance()とか)で作る。
ファクトリパターンのインスタンス数は不明。(一般的に、設定ファイルに拠る)
ひとつかそうでないかとコンストラクタがprivateなのはあんまり関係ないと思うが?
>>787 このスレでのやりとりを見てたらけしてすぐに伝わる魔法の言葉だとは思えなくなってきた。
もうシングルトンってキャラ作って流行らせればよくね?
>>788 別にシングルトンの実装がコンストラクタをprivateにするだけで完結するとは書いてないし
単純に実行時エラーよりコンパイル時エラーを歓迎しようって話だ
みんなに悪役あつかいされいじめられる毎日を送るしんぐるたん
でも一部の大きなお友達には擁護されかわいがられている
>>789 いやデザパタの目的はそうなんだけどね、
実際に組む時は組み合わせたりするけど、
それでもあれとあれって言えば伝わるし
おまえらデザパタはどこで覚えたの?
gof
独習デザインパターンとかいう糞本とネット
>>795 .Netとかのクラス設計を真似てたら、勝手に身についた。
シングルトンでこれなんだからまともな設計の話なんて期待できんなここはw
android+openGLでゲーム作ってるんだが、フレームバッファにレンダリングする方法が分からん。
もしかしてGL ES1.0ってオフスクリーンレンダリングとか考慮されてない?
スプライトとかどうすりゃいいのん。
>>759 > 話戻すけどシーン切り替えクラスってシングルトン的な役割も期待されてるよな
やめろやめろ。
こういうのがまさにシングルトン脳だな。恐ろしい。
http://www.aerith.net/design/Singleton-j.html > ... このデータセットが、常に1つしかロードされていない(メモリ上に
> 1つしか存在しない)というのは、アプリケーションレベルの仕様である。
> ただのデータの集まりである、データセットのクラスだけを見れば、これが
> 必ず1つしか存在してはいけない、という理由は存在しない。
>
> データセットのクラスをSingletonにしてしまう、ということは、
> アプリケーションレベルの仕様を、誤って下位レベルのクラスに組み込んで
> しまう、ということになる。この場合は、データセットの実体を、
> グローバル変数として1つだけ持たせる方が、はるかに正しい設計となる。
>なお、このクラスは、すべてのフィールドとメソッドをstaticにする、という形でデザインしているので、
>厳密にはSingletonパターンには合致しないかもしれないが、意味的には同じ。
>Singletonパターンで書き直すことも簡単である。
これモノステイトパターンだよね
何で自分の言葉で喋らないの
そういう風に脳ができてないかわいそうなこなんだよ
ループっぽさを無くそうとしてるんじゃないの
イーナム使うのっていちいち状態がタイトルですか、じゃあタイトル描画の関数へってやるから見栄えが悪い
関ポつかえばそのポインタ差す所へ飛びゃあいいだけだから見栄えがいい
イーナムは例えば状態を表すイーナム変数のタイトルとそれに対応するタイトル描画って二つ同じような名前用意セなあかんのがダサい
簡保ならタイトルならタイトル描画関数ってだけだもんなあ、わざわざそれに対応するタイトル状態って変数用意戦でもええ
エニュームって勝手に呼んでた俺が恥ずかしい
発音記号的には”エ”じゃなくて”イ”だな
どっかに予約語の変な読み方のスレあったよね
マ板の方だっけ?
charはチャラと読む。異論は認める。
VisualBasicのIntegerが2バイトなのは何故なんだ
わざと混乱させてるとしか思えん
俺はチャーと呼んでる
正式名称はキャラだっけ
それに即した文字どおりに呼ぶならキャーな気がする
ないしキャル
正式な読み方とか無いから好きに読んだんでいい
キャラとかチャーとかなら大体通じる。チャラだと通じないかもしれないけど。
会社の方針にしたがって読み方変えてる
転職のたびに確認してる
それ会社の方針じゃなくて、単に古株が個人的にどう読んでるかってだけじゃね
メンバーでの共通認識大事よ
俺enumをエヌムと読んでる
charはチャア
intはイント
shortはショアト
voidはヴォイドゥ
って読んでる
それら全部ゲームと関係ないです
それらの読み方は全部ゲームと関係ないです
途中送信しちまった
charをキャラと呼ぶならintをインテと呼ばないといけないね
マックとマクド並みにどうでもいい
シーン切り替えクラスは知らんが、
シーンを毎フレーム実行するクラスは描画もやるし2つあったら困るからシングルトンでも良い
描画しなけりゃいいだけで動いててもいいだろ
クロスフェードやるってなったらシーン2つ動いてる必要あろ?
って仕様変更が途中で加わったとき・・・って考えるとインスタンスが確実に1つってのも
アプリレベルの仕様でしかないってわかるわな
これの是非はともかくとして問題解決をする階層がおかしいってわかるだろ?
シーンを毎フレーム実行するクラスであって、シーンじゃないよ
シーンは別に2つあっても良いじゃん
1つだと思っていたものが実は2つある場合もある
なんてなったときにシングルトンで組んでしまうと大変なんてレベルじゃないな
仕様変更に弱すぎるだろ
シーンに話題逸らした奴わざとやってんだろ
むしろチャーとかキャラの話はどうでもいい
>826
シングルトンって名前だけど1個だけだとは限らないよ。
配列の添え字みたいにgetInstance()で引数を渡すようにするだけで複数のインスタンスを扱えるし、
固定長配列にも、最大個数の制限がついた可変長にもできる。
『勝手にnewで作れない』だけでしかないし、
だから単に好き嫌いのレベルで肯定派も否定派もいるんだろ。
SingletonはFlyweightの限定バージョンだったような。
>>812 >VisualBasicのIntegerが2バイトなのは何故なんだ
QuickBASICとか、昔の名残だと思われる。
それを言うならWin32APIのWORD(1語)が2バイトなのも、32ビット環境では違和感ある。
シングルなのがシングルトンであって、
勝手にnewで作れない、とかは本質じゃない
シングルトンに本質ってあるかね?
昔はディスプレイリソースはシングルトンで良かっただろうけど今はデュアルディスプレイとか普通だし
じゃあ本質的にシングルトンなものって何よって話になると
地球とか宇宙とか自我とかもひょっとしたら複数あるかも知れないけど
今はまあ1つと仮定してよさそうという程度のことなのでは
>831
DLLなり何なりのライブラリとして配布するなりチームの財産とするなりしたとき、
クラスの作成者とまったく関わりのない人間がそのライブラリを使う場合を想定して、
もともとそのクラスを作ったプログラマはそのインスタンスが不特定数作られることがなく
つねに特定の把握しうる個数しか作られない前提で作っていた場合、
それをコーディング規約などに書くまでもなくライブラリの仕様として
特定個数しかインスタンスを作れないように仕込んでおくのがシングルトンの本質だよ。
勝手に作れないことのほうが本質だ。
状態が1つしかないクラスはシングルトンにしちゃう。VTableとか
>>833 それならファクトリーパターンとかでいいんじゃね?
>>833 いや、勝手に作ることを妨げてはいないから、それは違う。
呼び出す方から見ると、好きな数だけ get だろうと new だろうと呼ぶことが出来て、
それぞれちゃんと使える値が取得できる。
ただ、見えないところで一つなり、特定個数なりに実体が制限されてるだけ
Singleton 実装する奴は Modern C++ Design くらいは読んで、そこにある特性についてはコメントに残しておいて欲しい。
で、それがゲームと何の関係があるの?
>>833 > もともとそのクラスを作ったプログラマはそのインスタンスが不特定数作られることがなく
> つねに特定の把握しうる個数しか作られない前提で作っていた場合、
そんなクラス自体が稀なはずなんだけど、仮にあったとしても、そもそもそんなクラスを
ユーザーに見えるところに公開するのが間違いだろ。
クラス自体を公開しといて「シングルトンだから勝手に作っちゃダメです」とか、ウザイよ。
もしそういったクラスが必要になったとすれば、
>>803 の DefaultC() の形で
インターフェースとしては必要十分。
実装側でシングルトンパターンなり静的変数なり、好きにしてくれたらいいよ。
まぁ実装でのみ使うシングルトンパターンなんて意味無いことに気づくだろう。
典型的なシングルトンより
>>803で静的変数使う方が複雑じゃね?
オブジェクト指向的にはシングルトンクラスをユーザーに触らせたら負けだな
>>829 そんなことどこに書いてあるの?
勝手に自分介錯でそんな都合のいいこと言って他のデザパタ信者と調整とれてるの?
全然Gof本に書いてある内容と違うじゃない
自分介錯とか物騒なこと言うなよ
Component-based Entitiesって何?
例えばトゲに刺さったり崖から落ちたりして死んだ場合、
死んでいる状態専用のシーンって実装するもんなの?
場合によるが自分はそこまで小分けにはしない
ただしゲームオーバーは別シーンとして用意する
>>845 それはゲームの状態ってよりキャラの状態で分けるかな
GoFはもう古いだろ
タイプセーフEnumって何者なの?
850 :
デフォルトの名無しさん:2010/09/06(月) 21:35:13
>>845 なんでそんなもん実装する必要があるの?
853 :
デフォルトの名無しさん:2010/09/06(月) 21:43:23
ゲ製作はもうネタないの?
で、偉そうに講釈たれてる奴は、ゲーム開発において何をシングルトンにすべきだと思ってるの?
お前らがシングルトン^^
シングルトンじゃなきゃメンドイやつ
>>855 デザパタ自体投げ捨てろ
百害あって一利ないからな
デザインパターンはバズワード
使いこなせないとそうだろうね
>>860 上のほうの話によると
インスタンスの把握もできないような馬鹿PGに触らせてナンボの奴が対象だって話だったんだけど?
で?どんだけ面白いゲーム作ったの?
シングルトンを何に使うべきかも断言出来ないくせにシングルトンについて偉そうに語ってたんですかあんたら
>>862 ミリオンに関わったのは1回だけ
そのときの一時金は30万でした
後は全部ハーフミリオン以下
最近は10万本もいかない
この業界はもうだ(ry
>>860 デザインパターンは道具じゃなくてただのサンプルだろ。
数ばっか作って中身薄いんじゃあ仕方ないよね
>>867 だからガッツリとグローバル変数をまとめたクラスをシングルトンで作ったのか?
もう死んだほうがいいなお前
せっかく流れが変わりそうだったのに戻すなよクズ
正直こんな初心者臭い雑談をしていて辛い
次のレスで超ハイレベルな話題を
>>870が披露!
↓どうぞ!
話逸らすが、どこで情報集めてる?
昔はRadium Softwareとか見てたんだが。
やっぱなんとかマネージャー系はシングルトンじゃね
ゲ専卒メインのスレ住民に英語が読めると思ってんのか?
PGで英語ができると幸せになれた時代は日本では存在しない(多分)
海外に逃げれるように英語やろうとしてるけどたぶんもう手遅れ
インド人はMSの技術者たくさんいるっていうし
やっぱりこれからは中華だろぶっちゃけ
ニーハオ!
中華は今でこそクソッタレな社会主義国だけど、
このまま発展が続けばやがて民主主義国家として国際社会から認められる国になるだろうな。
んで何食わぬ顔で情報検閲とかやっていた時代のことはすっぱり忘れちまうんだろうなw
で結局なにをシングルトンにすべきなの?
画面クラス
なんでインド人にMSの技術者たくさんいると
これからは中華になるんだろう
875によると
・全てのアプリが、全く同一の方法でこのクラスを使用する
・全てのアプリが、常にこのクラスの1つのインスタンスのみ必要とする
・このクラスのクライアントは、アプリを意識しない
が3つともYesならシングルトンにすれば良いらしいぞ
キー入力状態管理クラス
音楽再生クラス
とかは
お前らのチンポがシングルトン
アプリを意識しないってのがイミフ
ハード的な制約があるときだけ使えってこと
そのサイトではシングルトンにすべき例としてログ機能を上げているが
ログは別に複数でもいいだろ
セクション別に作りたい場合だってあるし
別にインスタンス一つでもセクション別に分けれるだろ
そういやアスペクト指向も代表例がログ機能だったな
アスペクト指向的なものはシングルトンと相性がいいとかあるのかな
>>889 ログはひとつというアプリケーションレベルの制約を云々かんぬん
ログぐらいしかないんだろうなw
なんとかマネージャ病とシングルトン病の併発か。
新人研修で何人かにゲーム作らせると1人ぐらい居るな。
javaの場合、deleteやデストラクタがないらしく
不要になったら削除、実行とよく分からないので、
シングルトンやstaticクラスを使うようになった。
頻繁に使う関数でも、関数に入ったら
必要なクラスをnew、抜ける時にdelete(デストラクタ)をしたいが、
どれだけ削除してくれているか分からない。
みんな通る道だろ、デザパタ覚えたら最初は使いたくなるもんだ
注意:デザパタはあなたのプログラムスキルを向上させてくれません!
>>896 そういう奴をどうやって治療するの?
もしかして、治療する能力が上司には無いとか?
デザパタ自習してたりするんだから、割と治療しやすいと思うがなあ
>>900 そこはこういう話をする場所じゃないだろw
905 :
デフォルトの名無しさん:2010/09/07(火) 11:34:10
>>902 名前のつけた片の問題なだけだろ。
何かを管理するものにマネージャってな。
名前付けの趣味以外に何か悪いことでもあんの?
むしろ~マネージャーはシンプルで一発でなにやってるか分かるいい名前だろ
否定派の人ってひねくれて屁理屈こね回してケチつけたいだけなんちゃうかと
いや、本当はどっちでもいいんだが
人の意見にはとりあえず反論から入ることにしてるんだ
って奴が多そうだな
同意は何も生まないから
正当化すんな
「まず否定から」はネクラオタの印
そして2chの主流
勝手に思考停止しとけよw
同意がダメなら解釈から始めればいいじゃんよ…
>>900 オススメのスレがあったら教えてください
祭りの後か
DirectXってシングルトンでいいの?
あれのスコープっていつもどうすればいいか迷う
今は引数で渡してるけど無駄に引数が増えてブサイクだし
かといってサンプルみたいにグローバルにするのも抵抗がある
構造体にラップして引数減らせばいいじゃない
グローバルやシングルトンにはしないほうがいいんじゃないかなぁ
誰がタッチしてるのかわからなくなるぞ
Unko(&dx);
これならUnko関数のなかでdxに関わるなんらかの値が変更されてることがわかるけど
Unko();
これだとdxの値が変更されてるかどうかされる可能性があるのかどうかは
Unkoの中をすべて洗わないとわからない
結果、プログラムの把握がしにくい
引数長くなるのが嫌ならせめて構造体にでも押し込んでおけ
基本だけど大事なことだぞ
楽に組もうとするその心が結果としてバグを増やす
どんな言葉も台無しだな
static変数撲滅キャンペーン
引数で渡す方法は変数のスコープが発散して困ることが無くなるって人はいうけど
引数でリレーするってことは葉のクラスや関数がその引数がほしいなって一度思ったら
その親、さらにその親、とルートまでさかのぼってその引数に依存するクラスを作らなきゃいけないってことだぞ
なんかの間違いで深いクラスに仕様変更があって引数がほしくなったら修正は面倒だぞ
>>920 大したこっちゃねーじゃん
ま、やってみればわかるよ
やらねーやつはみんな引数書くのが面倒そうっていう思い込みだけでいうんだよな
そういうときのためのシングルトン
つまりなんでもありと
デフォルト引数とかなくしてほしい
func(A a, B b, C c);
func(A a, B b)
{
C c(defaul_arg);
func(a, b, c);
}
デフォルト引数なんて無いよ
int hoge(int a) {
return hoge(a)+1;
}
何を勘違いしてるかしらんが
シングルトン=グローバルではないぞ。
親クラスの中で定義してそのインスタンスに所有させればいい
va_listの可変引数でいいやん
>>927 いや、間違いなくシングルトン=グローバルだろ
違うというならデザパタの著者から了解とってこい
そういう意見ブレを許さないためにコードまででてるんだから
いやだからって別にグローバルにする必要ないし
本のサンプルがグローバルな使い方しか載せてなかっただけのことだろ
それくらい自分で考えろよ
デザパタは、それを参考にして自分で色々考えるためのネタ本みたいなもん
そのまま使えば良いってもんじゃない
>>933 それも書いてないよね
カタログって言ってたんだから自分で考えるなんて書いてない
勝手なこというな嘘吐き
本改良しなくても読み手が応用して使えばいいだけ。
それとも本に載ってるコードしか書けないばか?
>>934 そんな全てのプロジェクトで何の変更もなく等しく使いまわせるコードなんてあるわけないだろバカか
それならデザパタ本自体存在する意味ないじゃん
>>937 だってカタログだって言い張ってたもんなw
デザパタ本はOOでプログラム書くときの「あるある本」でしかないよ
「こういう仕組みにすればこういうことがやりやすい」っていうカタログ
要するに、剥き出しで置いとくからグローバルなんだよ
包めよ。
このレベルw
ならシングルトンをクラスで隠ぺいした例とやらを見せてみろ
それはシングルトンじゃないんだから
シングルトンネオとかシングルトンリミックスとかにしろよ
フェニックスシングルトンってまるで何かの必殺技みたいだよね
一時期から登場したデザパタが混乱に拍車を掛けたのは記憶に新しい
昔からあるノウハウを無理にOOに当てはめて広めようとしたので、
わけの判らない新技術として世間に認知された
しかしおーおーにデザパタを加えても何も起きなかった
昔からあるノウハウにラベルをつけて意思疎通に使う、それだけの事だと何度も言っているのに
946みたいな解釈をしちゃう奴が後から後から…GoFも浮かばれんなぁ
いつも行くマクドの店長らしきおばちゃんが、
俺がいつもの場所で食ってると相席に座って試食を頼まれるんだけど、
何でそこまで懐かれるの?w
GoFとか言ってるけど、ただの設計サンプルの一つに過ぎないでしょ。
似てるものは全て○○パターンだと強弁するヤツも出た
また、GoFのに掲載されているのと少し違うから○○パターンではないと言うヤツもいた
ゲームプログラミングにおけるデザインパターンってないの?
>>951 ゲームプログラミングと言えどもクラス設計のレベルではあまり特徴はないよ。
デザインパターンってクラス設計の話なの?
Observer(入力/音/イベント)とStrategy(キャラ/ステージ)で大体なんとかなってる
ファミコンのドラクエやマリオはOOなんか使ってないけど歴史を変えたよね
なんで使ってないってわかるの?
>>953 狭義のデザパタはクラス設計に関することだね。
>>956 逆アセして検証するスレとかあったから
(今もあるかも)
>>958 解析してると「おまんこなめたい」という文字が空き領域から出てきたり
面白いことになってたよなw
>>956 メモリ不足でBASICすら使えない世界
別にOOしようがしまいか最終的に出来上がる物に差があるわけじゃなかろ
そこまでの過程が大変か超大変かって違いがあるだけで
じゃあ今でも組み込みなんかはデザパタ使えないの?
va_listみたいな可変引数にしとくのはどうよ?
今の組み込みといってもいろいろあるだろ
窓やOSX入ってるのだってあるし
>>902 各クラスの具体的な役割や必要性を言葉で説明させてみればいい。
たいていは「管理」よりも具体的な役割が出てくるから名前付けに反映してもらえばいいし、
シングルトンである必要性は出てこない。
>>906 > むしろ~マネージャーはシンプルで一発でなにやってるか分かるいい名前だろ
いや、わかんねぇって。エスパー過ぎるだろw
http://www.radiumsoftware.com/0603.html#060330 > 例えばこれが "Builder" であれば,何かを生成することが目的であることが
> 分かる。 "Pool" であれば,何かを蓄積することが目的であることが分かる。
> "Registry" であれば,何かを登録することが目的であることが分かる。
> それでは,これら全てをまかなうクラスだとしたら?
> それこそ "Manager" という名前が相応しいかもしれないが,それはひとつの
> クラスに機能を集約し過ぎている。
>>942 「クラスで」っていうのがよくわからんが、
>>803 で DefaultC() の実装( .cpp ファイル)に
シングルトンを置く(隠す)のは違うのか?
>>960 メモリ不足と OO の使用がどう関係するのかね?(ニヤニヤ
static変数をやたら使う人間とは仕事しません
>>967 class Cを継承させたシングルトンをわざわざ作って置くの?
つか無駄に継承させるだけで何も変わらないような
>>970 シングルトンであるクラス本体を意味無くユーザーに晒す必要が無い。
たとえばファイルローカルなただの変数で済むなら、そう変更してもユーザー側には
まったく影響が出ない。再コンパイルも必要ない。
っていうか、これで「何も変わらない」ということなら、シングルトンをインターフェースの
レベルに持ち出す必要は公開するメリットは何も無いということの証になるね。
972 :
デフォルトの名無しさん:2010/09/09(木) 02:15:30
>>969 C言語でOOのprivate用途に使う人はどうすれば・・・
>>971 メリットというか無駄に仮想関数経由なのが気になるだけだけど
シングルトンってことは別にそのインターフェースを他で使用するわけじゃないんでしょ?
変数をちょくちょく増減するような場合だと確かに有効なのかもなぁ
よく考えたらシングルトンだと他に実体が無いんだから、
変数が増減しても再コンパイルは不要なんじゃないか?
今度暇なとき試してみよう
ファイルローカルに隠蔽したいならpimplでも同じことだし
別にインターフェースを積極的に採用する理由は無いと思うけどな
まあ否定する理由もないから結局はその人の好みなんだろうけど
>>974 重要なのは、 class C& のユーザーは C がシングルトンであるかどうかに依存しないということ。
C& を受け取る同じ関数に、実デバイスに直結したシングルトンを渡してもいいし、テスト用に
ログ機能を被せたものを渡してもいいし、一時的に機能を殺すために空の実装を渡してもいい。
C 自体をシングルトンにしてしまうというのは、そういった自由度を捨ててしまうということ。
相当強いメリットや必要性が無い限り、妥当な選択にはならないでしょ。
トントンここシングルトン
画像の置場所無いからマリオのパレットを弄ってルイージにする
そんな世界の話だ
職人芸だよなほんと、
そんなあなたたちが顔グラ違うだけなのに
1枚1枚画像を用意するノベルゲーに一言!
>>981 目パチとか口パクはパーツ使うよ
設定ミスるとグロになるよw
>>977 それはシングルトン以外でインターフェースを利用するってことだよね?
実行中にテスト機能や空実装に切り替えるようなクラスであれば仮想関数経由は無駄じゃないね
ちげーよw
>>979 で、組み込みソフトであることと OO の使用がどう関係するのかね?(ニヤニヤ
OOってなんだよ ガンダムかよ
リソースの制限が厳しいならOOPは無理だわな
動的ディスパッチに追加コストがかかるのはやむを得ないというか、
OOPはそれで柔軟性を得ているわけで
>>988 動的ディスパッチのコストが受け入れられないなら静的に解決されるようにすればいいだけじゃね?
クラス使って組んでたコードがその理由だけで全部ダメになるわけがない。
>>990 pimpl じゃ、インターフェースひとつに対して実装がひとつの場合しか置き換えられないよね?
置き換えられるケースでも、どっちが良いというほどのこともないような。
むしろ pimpl->... な受け流し関数を書かないといけないぶん pimpl のほうが
面倒かもしれないぐらい。
多角形の当たり判定を作ろうとしています。
中に入れない物体を考えた時に
座標はどっち回転で指定するのが普通なのでしょうか?
自分の中で統一すればいいだけとはいえ気になってしまって。
994 :
デフォルトの名無しさん:2010/09/09(木) 16:17:15
次スレ立ててから質問しろよ・・・あと数レスでどうしろと
うめます
シングルトンはグローバルに一つっていうことだから思いっきりグローバルだよ
いきなり手を出しめるもんじゃない
>>993 理由なければ、おれはとりあえず時計回りにしてる
引数で何階層も渡していくぐらいならシングルトンにした方がはるかにわかりやすい
スタックが256バイトしかなくてローカル変数どころか関数呼び出しすらままならない。
それどころかグローバル変数ですらひたすらいろいろな用途で使い回さないとならない。
そんな環境でOOP(キリッ とか言われてもねぇ。
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。