ガスト「whileはバグの元になる。for,foreach文を使え」

このエントリーをはてなブックマークに追加
1名無しさん必死だな
http://www.gamebusiness.jp/article.php?id=6721
【スクリプトの負荷増大によるサーバダウン】
解決策:永久ループを極力回避するスクリプトを組む

while文などはミスを起こしやすいので、使用は避けた方がいいとのことです。
phpならばfor,foreach文を使用するようにします。もしwhile文を使用する場合は、
カウント変数などを使った強制離脱処理を入れるようにすればいいとのことでした。
2名無しさん必死だな:2012/12/29(土) 14:01:16.87 ID:bbwwS9zV0
ifだけにしたほうがいい
3名無しさん必死だな:2012/12/29(土) 14:02:37.07 ID:XtTbC0Sa0
あ、はい。
4名無しさん必死だな:2012/12/29(土) 14:02:54.79 ID:Z+5ND4dA0
やめなよ
5名無しさん必死だな:2012/12/29(土) 14:05:56.39 ID:4OAzVu3b0
ありえないだろこれ・・・どんだけ低レベルな事言ってるんだ
6名無しさん必死だな:2012/12/29(土) 14:07:39.87 ID:4lq1p4JE0
if(>>1 == ゴキブリ){

 scanf"捏造乙!!www";

}else{

scanf"ブヒー";

//任豚の思考アルゴリズム
7名無しさん必死だな:2012/12/29(土) 14:08:02.08 ID:lSvy7bA60
学生の話?
8名無しさん必死だな:2012/12/29(土) 14:09:32.28 ID:O/tet3l50
for(j=0;j<256;i++){
  :
  :
}
9名無しさん必死だな:2012/12/29(土) 14:10:31.98 ID:oZhemh7e0
forでもミスるやつはいるだろ……
10名無しさん必死だな:2012/12/29(土) 14:11:19.32 ID:3Kt51Enl0
何ヶ月前の話だよ
11名無しさん必死だな:2012/12/29(土) 14:14:26.95 ID:3Ms0gsB9P
専門学校の話ですか
12名無しさん必死だな:2012/12/29(土) 14:16:51.84 ID:rkDjnTpj0
いまどきのクラウドなゲームシステム作る場合は、昨今ブームの非同期処理で
スクリプト組めばかなり効率よくなるけど、この手のアホやらかす人間が修得できる
ようなレベルじゃないしな……。

で、仕方なく従来の同期処理のプロセス分離なシステムを組んで、メモリ足りなく
なってサーバトラブル……

ゲームではない高負荷システムやってるが、プログラマのレベルが落ちてる上に
要求されるスキルがあがってる現在、数年後が怖いな。 自分の負担が山のように増えそうだw
13名無しさん必死だな:2012/12/29(土) 14:19:57.86 ID:rUTOW8No0
for(;;);
14名無しさん必死だな:2012/12/29(土) 14:21:37.03 ID:/jWTzoP10
でも実際にwhileが原因のバグが(それもかなりイレギュラーな)バグがあって
現場を悩ませる会社があるのは事実

まぁそんなもん研修で教えるけどな!普通は
15名無しさん必死だな:2012/12/29(土) 14:22:15.26 ID:WU42wMkQ0
白陸 周佑 ・ バンダイナムコゲームス プロデューサー
もし開発をお願いしていたら開発費返せレベルの基本を抜かしたトラブルと対応内容でこれがCEDECの発表として成り立ってること自体がなんとも言えない気持ちに
返信 ・ 6 ・
・ 8月29日 22:06

石岡 伸晴 ・ 勤務先: バンダイナムコゲームス
素人じゃないんだから…て思いましたね。プロとして…より発売日に買った私怨がカナリありますが。絶対こことは仕事しない。
返信 ・ 2 ・
・ 8月29日 23:50
16名無しさん必死だな:2012/12/29(土) 14:23:22.40 ID:6aABb3LN0
>>12
非同期処理ってそんなに大変け?
17名無しさん必死だな:2012/12/29(土) 14:23:49.65 ID:r3qJfkd10
foreachで無限ループすることってあるのかなあ
無理矢理カウンタリセットすりゃ出来るか
18名無しさん必死だな:2012/12/29(土) 14:28:07.11 ID:qR3kRLdG0
これ、プログラムが分からない人に分かりやすく説明すると、
板前に向かって「鋼の出刃包丁や柳刃包丁は鋭すぎて怪我をする危険があるので、
どんな調理をするときでも安全のために鞘付きの果物ナイフを使いましょう」
っていうレベル
19名無しさん必死だな:2012/12/29(土) 14:28:34.52 ID:a7xki6t10
>・クラウド業者選択時には24時間サポートしてくれる業者を選ぶ
>(ゲームAPIで1時間のダウンは致命的、深夜でも早期復旧が可能な業者を選択するべき)

PSNディスるなよ。
20名無しさん必死だな:2012/12/29(土) 14:31:30.28 ID:O84Kk/Cr0
普通科出身の工業大生みたいな反省内容
21名無しさん必死だな:2012/12/29(土) 14:32:47.32 ID:J/xuFmYh0
>>16
非同期っつーかスレッド絡みでの排他制御の話かと思われ
22名無しさん必死だな:2012/12/29(土) 14:33:04.91 ID:YKSLTscC0
MSに頭下げてSQL Server+Azureで解決出来ないのが
23名無しさん必死だな:2012/12/29(土) 14:34:37.86 ID:QxoX9FCU0
>>6
printfで出力しないと…
24名無しさん必死だな:2012/12/29(土) 14:35:08.18 ID:u34QC0DuO
HSPでちょこっと遊ぶ程度の俺にさえ理解可能なプログラム技術の話を、まさかプロの現場レベルでやってるってこと?

アマチュアユーザー向けのアドバイスかなんかだよね?
25名無しさん必死だな:2012/12/29(土) 14:36:21.15 ID:a7xki6t10
foreachで無限ループ作る
ツワモノにはどう対処するのだろう。
26名無しさん必死だな:2012/12/29(土) 14:40:18.85 ID:ueu2SxtB0
gosub「フフフ…俺を使えば出口を書き損じても問題無いというのに…知らずに出た先は別のルーチンだけどな!」

>>18
その例えはおかしい。
27名無しさん必死だな:2012/12/29(土) 14:40:35.00 ID:9InR0L/F0
この手のバグの9割は>と≧を感覚的に間違っちゃうパターンだろ
28名無しさん必死だな:2012/12/29(土) 14:40:49.64 ID:4lq1p4JE0
>>23

あっ・・・
29名無しさん必死だな:2012/12/29(土) 14:43:54.01 ID:zrqj70Sy0
プログラムも酷いしSQLの使い方も酷いしテーブルレイアウトの作り方もわかってないし
ネットワーク部もレイテンシより実装が楽だからとTCPでやってるし。まあここはあのゴタゴタを見ると正解だったかも知れんが。

セミナーっていうより新人研修でとりあえずゲーム作ってみた人たちの反省会みたい。
30名無しさん必死だな:2012/12/29(土) 14:46:05.92 ID:qemvY9VR0
>>15
普段なら「お前が言うな」となりそうなもんだが
こればっかりは何を言ってもいいわ
31名無しさん必死だな:2012/12/29(土) 14:47:46.85 ID:jYXRbjNO0
異常性欲者、性犯罪者を相手に商売をして生きようなんて考える性犯罪者
それがソニーファンボーイとギャルゲーエロゲーメーカーの関係と言えるし
知性を期待する方が間違っているんだろう
32名無しさん必死だな:2012/12/29(土) 14:49:10.97 ID:57D5srBy0
でも無限ループってデバックすれば絶対気付くよね?
33名無しさん必死だな:2012/12/29(土) 14:53:32.01 ID:a7xki6t10
GPGPUのatomicCASを使ったアトミック処理で
下手に書くとおこる無限ループは
非常に分かり辛いぞ。
34名無しさん必死だな:2012/12/29(土) 14:54:00.13 ID:iVPxsgIH0
もうHAL研か任天堂に土下座して作り直してもらえば?
岩田ならギャルゲーもイケるだろうし
35名無しさん必死だな:2012/12/29(土) 14:54:19.57 ID:8mncsMAW0
あながち間違ったことは書いてないから困るw
36名無しさん必死だな:2012/12/29(土) 14:55:18.15 ID:qJzEoyBA0
for(i=0;i<100;j++)
↑無限ループの例
37名無しさん必死だな:2012/12/29(土) 14:57:41.44 ID:WNGDRogCP
>>36
iの次の変数をjにする奴はキチガイ
38名無しさん必死だな:2012/12/29(土) 14:57:43.45 ID:qJzEoyBA0
この会社、
「else ifが並ぶときはswitchを使え」とか
ドヤ顔で言ってそう
39名無しさん必死だな:2012/12/29(土) 14:59:46.44 ID:qJzEoyBA0
>>37
iの次の変数はi2だよな!
40名無しさん必死だな:2012/12/29(土) 15:00:44.94 ID:8mncsMAW0
そもそもiなんて使うなよ
41名無しさん必死だな:2012/12/29(土) 15:01:57.00 ID:qJzEoyBA0
iが足りないな
42名無しさん必死だな:2012/12/29(土) 15:03:08.06 ID:qJzEoyBA0
>>40
ちゃんと分かりやすくhensuuとかにするぞ!
43名無しさん必死だな:2012/12/29(土) 15:04:03.60 ID:zrqj70Sy0
スクリプト言語なら名前は短いほうが正義
まあ最終的にツール使って最適化すりゃいいんだけど
44名無しさん必死だな:2012/12/29(土) 15:05:36.85 ID:qJzEoyBA0
>>43
aからzまで使ったらどうしよう
PHPなら日本語使えるから
「あ」とか「い」とかでいいな
45名無しさん必死だな:2012/12/29(土) 15:05:48.57 ID:HYw1ZHss0
$array=[1,2,3];
foreach ($array as &$value) {}
foreach ($array as $value) {}
print_r($array);//配列はどうなってるでしょうか?
46名無しさん必死だな:2012/12/29(土) 15:06:01.41 ID:fg9lVB3CO
考えるのも面倒なときi→m→n→xの順で使う
なんでそうなったか自分でも分からん
47名無しさん必死だな:2012/12/29(土) 15:06:51.40 ID:qJzEoyBA0
while(1)echo 'ブヒィ!'
48名無しさん必死だな:2012/12/29(土) 15:07:24.63 ID:HYw1ZHss0
i i2 i3はいいんだけどそうなるとi1じゃないのが気持ち悪くなる
49名無しさん必死だな:2012/12/29(土) 15:09:13.43 ID:qJzEoyBA0
>>45
全部1か全部3?
50名無しさん必死だな:2012/12/29(土) 15:10:57.16 ID:qJzEoyBA0
i→iPod→iPhone→iPad
にしよう提案
51名無しさん必死だな:2012/12/29(土) 15:11:37.36 ID:HYw1ZHss0
52名無しさん必死だな:2012/12/29(土) 15:14:08.65 ID:qJzEoyBA0
>>51
おぉなるほど
PHPのこの仕様は知ってたけど
面白いな
53名無しさん必死だな:2012/12/29(土) 15:14:54.17 ID:1mgRdScu0
シェルノ持ってる人ならスタッフロールで分かるけど、この無限ループとか出来の悪い
サーバ系のプログラム組んでるの、土屋ディレクター本人だから
本人は音楽担当だが、昔からの趣味で同人ゲームのプログラムやってて、プロとして
通用すると錯覚してるような人らしい
54名無しさん必死だな:2012/12/29(土) 15:15:32.48 ID:n2U9KPhD0
>>18
普通、包丁は「鋼」とは言わず「鍛造」だ
55名無しさん必死だな:2012/12/29(土) 15:16:45.74 ID:qJzEoyBA0
サーバー系は割と適当でも動くし
後から直せるという適当さもあって
適当な人材が多いね
56名無しさん必死だな:2012/12/29(土) 15:19:59.67 ID:m2IE7N5L0
>>54
鋼は金属の種類で、鍛造は加工方法。
57名無しさん必死だな:2012/12/29(土) 15:22:37.48 ID:qJzEoyBA0
クラスというものを使うと便利です
どや
58名無しさん必死だな:2012/12/29(土) 15:23:55.71 ID:qJzEoyBA0
プログラムスレは伸びないな
ゲハのスキルはそんなもんか
59名無しさん必死だな:2012/12/29(土) 15:25:18.63 ID:tOHHGU+k0
無限ループって別に悪くなくね?(組み込み屋の感想)
60名無しさん必死だな:2012/12/29(土) 15:25:36.10 ID:ew5h8tcr0
前から無限ループばっかりネタになってるけど
・テーブルにはインデックスを付ける、処理速度が超改善!
・結合対象のテーブル同士を別のサーバに置かずに1つのサーバにまとめた
とか十分痛い
正しい、間違ってるとかじゃなく、業界人限定のセッションで発表したらダメだわw
新人(未経験)向けの研修ならまだしも
61名無しさん必死だな:2012/12/29(土) 15:25:52.65 ID:Z+5ND4dA0
こんな古い話題で盛り上がるわけもないだろう
62名無しさん必死だな:2012/12/29(土) 15:26:00.83 ID:rkDjnTpj0
>>16
コーディングのフローが直列でなくなるのでコードを負うのが面倒になる。
何度もバトンタッチするようになると、言語によってはインデントが極端に
深くなるか、スパゲティー …… ではなくマカロニの連鎖という表現がいい
かもしれんが、コーディングもトラブルの追っかけも面倒になる。
デバッガ使ってのステップですら、途中で迷子になったりな。

それが原因でエラー処理のロールバックも多階層になってしまうので、
わかりやすくしようとするとこちらこそスパゲティになったり、メソッドチェーンを
自前で作って処理していくしかない。
63名無しさん必死だな:2012/12/29(土) 15:26:41.60 ID:O/tet3l50
hoge()
64名無しさん必死だな:2012/12/29(土) 15:28:01.98 ID:qJzEoyBA0
>>60
テーブルにインデックス張ると速くなるのか!
いいこと聞いた全カラムに張ろうっと。
65名無しさん必死だな:2012/12/29(土) 15:32:30.36 ID:zrqj70Sy0
>>64
わかってていってるだろw 無駄に張るのは止めろw
66名無しさん必死だな:2012/12/29(土) 15:34:38.32 ID:qemvY9VR0
>>58
いつの話題だと思ってんだ
67名無しさん必死だな:2012/12/29(土) 15:35:36.85 ID:qJzEoyBA0
闇プログラマの出番だな
68名無しさん必死だな:2012/12/29(土) 15:38:24.98 ID:ErescgjJ0
>>53
え、ネット使うゲーム出すの初めてなのにネットワーク向けの技術者雇ってないのかよ…
それとも雇ってたけど逃げられた?
69名無しさん必死だな:2012/12/29(土) 15:41:13.36 ID:p0BChHG+0
VisualBasic Express エディションで十分だな
70名無しさん必死だな:2012/12/29(土) 15:43:02.60 ID:qJzEoyBA0
イオンちゃんってたぶん
独自のスクリプト言語で動いてる。
そのエンジンが糞なんだな。
71名無しさん必死だな:2012/12/29(土) 15:43:52.63 ID:nBYLx4yiP
>>64
wwwwwwwwあるあるw
72名無しさん必死だな:2012/12/29(土) 15:44:11.97 ID:TVzPXBR90
えっとプログラム初心者がこの講座の対象ですか?
73名無しさん必死だな:2012/12/29(土) 15:44:18.22 ID:xqxBZHca0
モバグリ「なるほど、勉強になるな!」
74名無しさん必死だな:2012/12/29(土) 15:51:51.51 ID:ew5h8tcr0
しかしながら、このガスト土屋氏の発表に皆が納得したんだよな
こんな発表してるくらいだからあのゲームはああなっちゃったんだ、って
75名無しさん必死だな:2012/12/29(土) 15:57:29.11 ID:ueu2SxtB0
>>60
> ・結合対象のテーブル同士を別のサーバに置かずに1つのサーバにまとめた
逆の話なら色んな事例見たいんだけどなあ。
結局経験則な界隈だし。
76名無しさん必死だな:2012/12/29(土) 15:59:20.35 ID:vloREew90
for(;;){
}
77名無しさん必死だな:2012/12/29(土) 16:01:34.02 ID:J2yxzHq30
この話を真に受けて、whileを使うべきところでもforを使って、
可読性の低いスクリプトを書く低級PGが発生したりするんだろうな
78名無しさん必死だな:2012/12/29(土) 16:28:21.41 ID:rkDjnTpj0
>>69
なりすまし用のウィルス作成できるぐらい高機能だからな
79名無しさん必死だな:2012/12/29(土) 16:29:27.74 ID:rkDjnTpj0
>>77
while と for の違いを述べよ。 可読性に対する影響を具体的に例示するととてもためになる
80名無しさん必死だな:2012/12/29(土) 16:35:01.20 ID:y2nWlZOP0
ループの仕方なんてどうでもいいよ

return文やcontinue文を多様して殆どgoto文なコードを書く奴はちゃんとロジック考えろ
81君もアドセンスをクリックしてブロガーの奴隷になろう:2012/12/29(土) 16:36:06.50 ID:/R6qN1Yz0
プログラマー云々以前に技術者全体の力不足なんじゃないの?
それでゲームが出来てるのが不思議だけど。


PS2はかなり低級なレベルでコントロールする必要があったし、
PS3なんて、ぶっちゃけ謎仕様のオンパレードだし。(Cellのせいでなw)
82名無しさん必死だな:2012/12/29(土) 16:38:31.99 ID:rkDjnTpj0
>>81
PS3のゲームコーディングにおける謎仕様ってあるか?

効率が悪い。同期をとるのにセンスが必要というだけで。

オンパレードというのはどういうの指してるの?
83名無しさん必死だな:2012/12/29(土) 16:41:57.32 ID:/6sqdgAG0
これかなり初心者が最初の頃に学ぶことじゃw
84名無しさん必死だな:2012/12/29(土) 16:42:06.76 ID:b+Ovslyh0
レベル低すぎて買収した肥が驚いたようだしな
85名無しさん必死だな:2012/12/29(土) 16:43:38.23 ID:lhyz/GIp0
ちょいエロな画像ファイルと音声ファイルだけ突っ込んでおけば何の心配もいらないだろ
そんなんでも特典次第で売れちゃうかもしれないし
86名無しさん必死だな:2012/12/29(土) 16:49:13.97 ID:ew5h8tcr0
初心者が最初に学ぶ内容とも言えるけど、そもそも発表内容が正しいと言い切れない・・・
87名無しさん必死だな:2012/12/29(土) 17:00:13.14 ID:J2yxzHq30
>>79
ループの途中、一定の条件でbreak;するのが読み易いのか?
最初っから条件が与えられて、条件を満たす間ループする方が分かりやすい場合もあるだろ

int c=0;
while(!c) {
 c=getchar();
}

----

int c=0;
for (;;) {
 c=getchar();
 if (c!=0) break;
}
88名無しさん必死だな:2012/12/29(土) 17:01:46.40 ID:kRHkES2M0
なんというか開発の技術LVが低そうな話。
89名無しさん必死だな:2012/12/29(土) 17:05:22.89 ID:rkDjnTpj0
>>87
あなたは理解してるのであろうけど、その例を使ったのはあまりふさわしくないような(汗
90ステマさん必死だな:2012/12/29(土) 17:13:07.30 ID:yFyJbUOS0
Perlの

@array=('1','2','3');

foreach (@array){
print "$_\n";
}
このシンプルさが好き
91名無しさん必死だな:2012/12/29(土) 17:13:16.37 ID:J2yxzHq30
>>89
無限ループの話だしね
適当な例を思いつかなかったのよorz

でもwhile使うなってのは短絡的な発想よ
92名無しさん必死だな:2012/12/29(土) 17:21:58.08 ID:rnJXotvc0
初心者に毛が生えたレベルに限ってブログでドヤ顔で俺様プログラミング論展開したり
ガストちゃんみたいなこと言ってたりしてて笑える
93名無しさん必死だな:2012/12/29(土) 17:27:36.04 ID:WYODCup90
別にどっちでもいいよ
コーディングルールの問題だから効率がーとかは的外れ
94名無しさん必死だな:2012/12/29(土) 17:29:56.00 ID:rkDjnTpj0
>>93
ルールにすると今回の事例は「適切な方をつかえ」になるから、センスの問題かと。

そんなところで引っかかると他のところでもやらかしまくるだろうけどw
95名無しさん必死だな:2012/12/29(土) 17:30:21.25 ID:zvlhjP4m0
こんなのがプログラマ名乗る時代だ
96名無しさん必死だな:2012/12/29(土) 17:33:16.58 ID:iEWg9D8Z0
論点的外れで解決にもなってないぞ
97名無しさん必死だな:2012/12/29(土) 17:41:57.32 ID:JfTMEby20
初期化の為にはforの方が安定するのは仕方ないような
98名無しさん必死だな:2012/12/29(土) 17:46:44.63 ID:WYODCup90
>>94
whileは経験上、仕様を理解していない奴が少なからずいるので
(または、インクリメントを設定し忘れやすいので)
ループはforを使うルールを定めましたってだけ。
正しく使えば問題ないなんて話ではないはず
99名無しさん必死だな:2012/12/29(土) 17:50:52.05 ID:rkDjnTpj0
>>8
これかなり有名なんだけど誰も話題にしないなw
100名無しさん必死だな:2012/12/29(土) 17:54:12.43 ID:uFFxXwLv0
記述構文なんてどっちでもいいしどうでもいいんだよ
間違えない、間違った時に明確になるルールがしっかりしていれば
問題なのはこんな事でドヤ顔している奴に金を払っている事だな
出来る奴は真っ先にやめて駄目な奴しかのこらなかったんだろうな
101名無しさん必死だな:2012/12/29(土) 18:01:14.14 ID:Ml4NJbjnO
専門はファミレスだろ?
102名無しさん必死だな:2012/12/29(土) 18:11:49.92 ID:80Nk+bWI0
>>99
無知な俺に何なのか教えてくれないか
103名無しさん必死だな:2012/12/29(土) 18:21:11.04 ID:J69SSYILP
>>59
割り込みで飛んだ先が無限ループで、帰ってこれないって話だろ組み込みになぞらえるなら
104名無しさん必死だな:2012/12/29(土) 18:30:11.84 ID:ew5h8tcr0
CEDECのずっと後、ガストゲーは今後コエテクエンジンで開発するって発表されたとき
シェルノもサーバープログラムに関してはコエテクが支援するって明示的に発表されてた
親会社が我慢できなくなるほどのすばらしい出来だったんだろうな
105名無しさん必死だな:2012/12/29(土) 18:41:50.14 ID:DOz9cYDu0
プ・・・プリンテフ
106名無しさん必死だな:2012/12/29(土) 18:51:21.17 ID:f5vyoike0
いくらなんでもレベルが低すぎる。
よくわからんけど動けばいい、ってノリでプログラム組むなよ。
つか、それ以上にDB周りが酷すぎる。鯖いじり始めたばかりの中学生かお前は。
107名無しさん必死だな:2012/12/29(土) 19:08:20.22 ID:LMFRITsu0
>>24
CEDECはプロのゲーム開発者の交流会です。
参加はほとんどが会社からで、それなりにコストがかかってるから皆真剣。
個人参加してるような人はわざわざ有給とって自腹で参加してるから尚更。
こんな内容だとお金よりも時間を無駄にしたという精神的ダメージの方がでかいよ。
一体どういう人間の口添えでこんな連中が講演することになったんだろうねぇ・・・
108名無しさん必死だな:2012/12/29(土) 19:12:02.98 ID:a5cSeCPX0
>>1
なに・・・?この・・・なんなの?
109名無しさん必死だな:2012/12/29(土) 19:15:04.44 ID:UkdwXPyR0
強制離脱処理ウンヌンがアレ
110名無しさん必死だな:2012/12/29(土) 19:16:17.16 ID:a5cSeCPX0
ブロック崩しのプログラムから始めたほうが良いんじゃないかな
111名無しさん必死だな:2012/12/29(土) 19:25:50.88 ID:rkDjnTpj0
>>102
昔のゲーム開発や今でも組み込みなんかではメモリが限られてたりリソースを
ギリギリまで節約する必要があるから、必要な精度ギリギリのメモリ割り当てを
してる。

この例では初期化してないけど j という変数を確保してるけど、256回程度で
いいやっていうカウンタとして使う場合は 1バイト幅の char 値として宣言したりする。

プログラム知ってる人間ならまずここで気付くけど、 char が取れる値は、
符号付で -128〜127、符号無し(unsinged)で 0〜255

なんとなく気付く人がいるかもしれないけど、for 文の判定では3項目目の処理をした後に
2項目目の判定でループするかしないかを決めるんだが、 uchar では 255 に ++ すると
オーバーフローして 0 に戻る。(ようするに256という数値が表現できない)
よって、このループは j が1バイトである限り絶対に抜けられない無限ループになってる。

今のコンパイラならキャスト必須だったり、精度が原因のは警告出すんだけどね。
あと、3項目目が j じゃなくて i だから、いつまでたっても j = 0 なていうジョークも兼ねてるのかなw
112名無しさん必死だな:2012/12/29(土) 19:36:18.11 ID:SdTuHy1g0
>インデックスつけたら軽くなったよ!

専門学校か高専の一学期並のCの理解もありないけど
オンゲの要のDBの設計者がこのレベルってのが一番ありえない
こいつにDB作らせたこいつの上司もこいつと同じくらいありえない
113名無しさん必死だな:2012/12/29(土) 19:37:23.49 ID:LNUMEpL20
for(;;);
114名無しさん必死だな:2012/12/29(土) 19:41:45.61 ID:Bn2LhHw70
おい土屋!
お前、シェルノサージュなんてさっさとやめて
濃厚な世界観のRPG出せや!
萌えもいいけど、熱血が欲しいんだよおおおおおおおおおおおおおお
115名無しさん必死だな:2012/12/29(土) 19:41:59.05 ID:8IzGuRzTP
>>1
ずいぶん古いネタを
116名無しさん必死だな:2012/12/29(土) 19:43:04.44 ID:Bn2LhHw70
なんだ、この言語はどうやって解読するんだとか
波がどうのこうのとか発売前はワクワクしてたけど
結局買わなくて正解だったわ
ただのギャルゲーじゃねえかあああああああああああああああ
117名無しさん必死だな:2012/12/29(土) 19:44:11.60 ID:6aABb3LN0
でも、売れるゲームを作ってたんでしょ?その点はたいしたもんだよね
118名無しさん必死だな:2012/12/29(土) 19:45:06.25 ID:X4O0xuZ60
>>112
こいつ=ディレクター=サーバプログラム開発担当、だからw
119名無しさん必死だな:2012/12/29(土) 19:46:14.66 ID:Bn2LhHw70
土屋はシナリオと設定と音楽だけ作ってりゃまともなのに
なんでプログラム組んだんだ……
120名無しさん必死だな:2012/12/29(土) 19:47:09.97 ID:szTsUuCG0
>>107
これガスト側がスポンサー料払って
スポンサーシップセッション枠で講演開いたってのが一番の笑いどころだからな
書類審査有りの公募セッションだったら間違いなく叩きかえされてたと思うよ

しかしスポンサーシップ枠でわざわざ恥かきに行くとはなぁ
121名無しさん必死だな:2012/12/29(土) 19:48:14.44 ID:80Nk+bWI0
>>111
ありがとうございます
プログラムの知識は基礎中の基礎をわずかにかじった程度ですので勉強になりました
作る側からしたら大変なのでしょうけど自分みたいに眺めるだけの側だとこういうスレはとても面白いです
122名無しさん必死だな:2012/12/29(土) 19:50:59.53 ID:BSlgMM6U0
おっさんにもわかりやすくBASICで頼む
123名無しさん必死だな:2012/12/29(土) 19:58:58.93 ID:PlUQ9Jsk0
>>37
kだよな
124名無しさん必死だな:2012/12/29(土) 19:59:41.87 ID:4qtVPi0P0
マシン語で書いてた時代は
forすら使うのを回避してたと言うな
125名無しさん必死だな:2012/12/29(土) 20:04:45.69 ID:iqMQn6pR0
>>111
プログラムわからん俺にもわかりやすい。

255が上限なのに指定されてるのが256だからそれを
繰り返す条件を書いたから無限ループになるって事かw
126名無しさん必死だな:2012/12/29(土) 20:06:37.87 ID:o3Xbmnku0
>>122
for文でstepを使うとバグの元なので使わない、と同レベル
127名無しさん必死だな:2012/12/29(土) 20:10:47.72 ID:8IzGuRzTP
>>126
終了条件が==や!=でなく<とかにしておけば問題ないんだけどね。
ソフト業界の規約でもそうなってる。
128名無しさん必死だな:2012/12/29(土) 20:12:07.16 ID:6aABb3LN0
>>126
stepがわからない くわしく
129名無しさん必死だな:2012/12/29(土) 20:19:00.92 ID:fPaeHvDp0
>>111
昔のゲームだとオーバーフロー使ったバグ技が結構あったよなw
130名無しさん必死だな:2012/12/29(土) 20:19:37.09 ID:ztePc8SI0
>>99
>>102
>>111
>>125

それ以前に、インクリメントしているのがjではなくてiだからループが回らなくね?
131名無しさん必死だな:2012/12/29(土) 20:20:24.59 ID:uQ8p8+lm0
変数の型を書いてないのに1バイトとか深読みし過ぎだろ・・・
132名無しさん必死だな:2012/12/29(土) 20:21:51.89 ID:Bn2LhHw70
宣言されてない以上
これjの値変わらなくねって程度のもんでしかない
133名無しさん必死だな:2012/12/29(土) 20:22:52.83 ID:zrqj70Sy0
>>130
深読みしてるんだろ。111でも一番最後に書いてあるから途中で気付いたんじゃね?
そもそも変数定義の箇所が無いし。
134名無しさん必死だな:2012/12/29(土) 20:25:19.51 ID:4uImyalxi
>>80
その風潮を使っちゃダメと勘違いして
やたらブレースで括られて横に延びてるコード書く奴はcontinueやreturnやbreakをもっと使えよって思ったりする
135名無しさん必死だな:2012/12/29(土) 20:28:01.29 ID:wSe4dBiK0
continueやbreak云々より、複数画面に渡るような
長いブロック構造をそもそも作らないで欲しいな。
そういうのって大抵いくつかに分解できるもんだから。
136名無しさん必死だな:2012/12/29(土) 20:37:15.55 ID:b9amT2qS0
まずミスを起こすなよ。
プロの仕事じゃねぇよ
137名無しさん必死だな:2012/12/29(土) 20:37:29.24 ID:wSe4dBiK0
でも短く書けって言いすぎると、無理やり1行に収める人とか
出てくるから、ちゃんと説明しなきゃいかんな。難しい。
138名無しさん必死だな:2012/12/29(土) 20:42:04.84 ID:f5vyoike0
gotoダメっつー風潮はそれ自体いいんだけど、深いループから一気に抜けなきゃならんときに、
その場で作ったフラグでgdgdにするくらいなら、素直にgoto使えとは思う。
なんでか極端な教条主義に陥るパターンが多い気がするね。

>>124
懐かしいね。ループを開くって奴だ。
ただ、アレは可読性損なっても処理速度を稼ぐテクニックだから、
スレの流れとはちょっと違う話かも知れん。
139名無しさん必死だな:2012/12/29(土) 20:43:32.12 ID:3Ms0gsB9P
まあこんなのキチンと仕様書書けばいいだけの話なのだが
140アフィブ口グ転載禁止 ◆ghard//OlU :2012/12/29(土) 20:43:32.79 ID:rkDjnTpj0
>>131-133
変数 i j のミスはさておき、この変数型の境界バグはプログラムミスの教本のトップに書かれるほど有名な例題だったりします
141名無しさん必死だな:2012/12/29(土) 20:44:24.94 ID:6aABb3LN0
その教本はアマゾンに売ってますか
142名無しさん必死だな:2012/12/29(土) 20:47:55.08 ID:rkDjnTpj0
>>128
BASIC の for 文は FOR I = 1 TO 5 という書き方をするがそのあと STEP 2 と続けると
for (i = 1; i == 5; i+=2) のような意味になる。 ここで終了条件を偶数にしてしまうと、
i == 5 を通過して、あっという間にオーバーフローエラーでBREAK停止することになる。
143アフィブ口グ転載禁止 ◆ghard//OlU :2012/12/29(土) 20:52:19.70 ID:rkDjnTpj0
>>141
自分が最初に知ったのは Windows 3.1 の頃に読んだ本(多分、英訳本)だったからなぁ。
タイトル覚えてないし、C言語関連の本がヒットしすぎてどれかわからん。
最近でもプログラミング関係のサイトでも笑い話として見かけたことあるから、色々読んでたら見つかるかも
144名無しさん必死だな:2012/12/29(土) 20:56:11.89 ID:HYw1ZHss0
>>138
continue 5;
145名無しさん必死だな:2012/12/29(土) 21:05:20.54 ID:qemvY9VR0
>>140
だから「変数 i j のミス」がネタの主題じゃねーのってことだよ
その教本じゃ型の宣言もしないのか
146名無しさん必死だな:2012/12/29(土) 21:07:20.57 ID:3Ms0gsB9P
ガストのことだから萌えるプログラミングとか読んでそう
147名無しさん必死だな:2012/12/29(土) 21:11:09.64 ID:JZcjICub0
10 PRINT"ナオ コノプログラムハ ジドウテキニ キエル"
20 NEW
148名無しさん必死だな:2012/12/29(土) 21:15:08.84 ID:h727EWFe0
専門学校かなんかの講演の話ならまだわかるが
CEDECでか…w
149名無しさん必死だな:2012/12/29(土) 21:17:23.14 ID:xYvIUr2+0
プログラムのことはさっぱりだが、ガストは何のためにこれにカネを払ったんだろう。
それは気になる。
社長のお遊びだけとしか思えんが。
150名無しさん必死だな:2012/12/29(土) 21:18:19.44 ID:3Ms0gsB9P
>>149
大抵その年の予算が余ったんじゃないのかな
151名無しさん必死だな:2012/12/29(土) 21:18:40.04 ID:BL9hcpaY0
タイプ量削減のために無限ループで条件break多用するバカは死んでくれ。
本質がループじゃない処理をわざわざループに入れてバグの温床を埋め込むバカは死んでくれ。
152名無しさん必死だな:2012/12/29(土) 21:18:53.46 ID:cDyljw6a0
>>1
やかましいわ
153名無しさん必死だな:2012/12/29(土) 21:20:42.83 ID:TnEo2Rf50
何で今更な話題で盛り上がってんのここ
154名無しさん必死だな:2012/12/29(土) 21:24:26.97 ID:ZxCyEQAq0
>>142
for (i = 1; i != 5; i+=2) な
155名無しさん必死だな:2012/12/29(土) 21:25:46.84 ID:u1V6kmzZ0
他の会社が『アーケードネットワークサービス「ALL.Net」のサーバ環境構築、運用』とか
『サーバーマシン1台でMMO同時接続者数10,000名を実現する方法』とか解説している横で

『whileはバグの元になる』
156名無しさん必死だな:2012/12/29(土) 21:27:54.91 ID:O/tet3l50
この話のメインはその記事でバンナム初め様々な人が実名で否定し笑ってる事だな
157名無しさん必死だな:2012/12/29(土) 21:28:07.72 ID:o3Xbmnku0
>>153
『フィラメントスター 限定版』発売記念企画
158名無しさん必死だな:2012/12/29(土) 21:31:22.38 ID:BSlgMM6U0
>>126
なるほどねわかりやすかったぜ
サンクス
159名無しさん必死だな:2012/12/29(土) 21:42:47.86 ID:qemvY9VR0
>>154
それだとループしないだろw
160名無しさん必死だな:2012/12/29(土) 21:43:49.51 ID:qemvY9VR0
じゃないわ
酔ってた済まん
>>159撤回
161名無しさん必死だな:2012/12/29(土) 22:13:56.59 ID:TA5fq5w/P
for、whileとか
if、switchとか似たような機能を持つ構文はどっちか一個に統一して、
ポリモーフィズムの理念で使いたいんだが
162名無しさん必死だな:2012/12/29(土) 22:20:04.22 ID:HYw1ZHss0
ifさえあれば全部gotoで再現出来る
163名無しさん必死だな:2012/12/29(土) 22:23:02.91 ID:QDEnH9G90
while ('A');
164名無しさん必死だな:2012/12/29(土) 22:23:20.72 ID:Bn2LhHw70
全部gotoでやったら
確認するとき死ぬだろが
165名無しさん必死だな:2012/12/29(土) 22:33:55.70 ID:0NCYBJDb0
あれ、今回は「バンナムの方が酷い」って言ってガストを擁護する奴が湧いてないな。
166名無しさん必死だな:2012/12/29(土) 22:34:48.80 ID:Bn2LhHw70
ゴーバケーションを作れるバンナム様の技術力が低いわけない

っていうか、あんな感じでニンテンドーランドやりたかったわ……
167名無しさん必死だな:2012/12/29(土) 22:37:55.27 ID:LMFRITsu0
>>165
バンナムは経営戦略が糞なだけで技術方面は比較的まとも
168名無しさん必死だな:2012/12/29(土) 22:47:48.98 ID:3Ms0gsB9P
>>167
そりゃねーな
3dsのハードウェアシェーダすらまったく使えないのに
169名無しさん必死だな:2012/12/29(土) 22:49:45.67 ID:Bn2LhHw70
バンナムはオタク向けとライト向けでクオリティが極端
オタク向けは糞でも買う奴がいるからとことん手を抜く
170名無しさん必死だな:2012/12/29(土) 22:50:57.71 ID:ZW6pBTw60
さすがにバンナムだろうとこの底辺バグは出さない
コナミなら出すかも
171名無しさん必死だな:2012/12/29(土) 23:00:06.19 ID:KlpBu7cZ0
バンナムのオタ向けゲーはもっと原作者が製作に口出しすべきだと思うわ
実際なのはポータブルの二作目なんか、ゲームとしてはそれなりに出来が良かったし。キャラモデルの完成度はクソの極みだったがな
172名無しさん必死だな:2012/12/29(土) 23:07:53.16 ID:IWoxCQVI0
windowsもイベント発生まで無限ループだというのに!
173名無しさん必死だな:2012/12/29(土) 23:10:35.45 ID:S4CEs3VG0
バンナムはキモヲタから搾取するのがうまいからな
アイマスとか
174名無しさん必死だな:2012/12/29(土) 23:41:59.16 ID:spXBYgpO0
>>171
なのはポータブルは、下請けやったところの社長がなのは原作者と知り合いだからな

バンダイ系は下請けしだいでゴミにもなるし神にもなる
なんであれ予算はないので、ゴミになる確率が非常に高いが
175名無しさん必死だな:2012/12/30(日) 02:40:43.59 ID:Gmia6YFv0
while(true)じゃなくてfor(; ; )使えっつー警告出るよな
最近のVisualStudio
176名無しさん必死だな:2012/12/30(日) 07:19:38.47 ID:O0T1kKgV0
>>171
原作でゲームの制作のこともわかる人間なんて
そうそういないだろ
177名無しさん必死だな:2012/12/30(日) 07:40:06.70 ID:f8r9IJd40
>>176
03年だか04年あたりの広報が進言してた話だったかな、
ちょうどそこらへんの時期でキャラゲーが異様に面白かった時期があった気がする

一部のキャラゲーで出荷本数と需要バランスどうこうで、
なんか異例のプレミアついてたゲームそこそこ出てたしなぁ
178名無しさん必死だな:2012/12/30(日) 10:35:52.15 ID:ghphmBpN0
>>175
何が違うの?
179名無しさん必死だな:2012/12/30(日) 11:25:37.50 ID:86np8iNj0
>>175
for をつかえという警告じゃなくて、 while の条件式が定数なので無限ループになる(or 絶対に通らない)が本当にいいのか? っていう警告だ馬鹿
>>178
この警告を無視する場合は警告番号を使わない設定をするのが正しい処理なんだが、for にすればそのチェックが働かないというだけの話。
180名無しさん必死だな:2012/12/30(日) 19:46:06.33 ID:Gmia6YFv0
>>179
なぜそんな鬼の首を取ったように馬鹿とか書いてこれるのかわからん 馬鹿なの?
根本原因くらいわかってるっつーの

http://msdn.microsoft.com/ja-jp/library/6t66728h.aspx
なんにせよ「while ループを for ループと置き換えることを検討してください」と明記されてる

ところでこの文書翻訳間違ってんな
181名無しさん必死だな:2012/12/30(日) 19:52:45.62 ID:229ore6F0
perl
182名無しさん必死だな:2012/12/30(日) 21:28:39.93 ID:kTZqNLQ/0
>>179
教条主義的かもしれないけど
pragma warningとかでの警告無視は控えるべきかと思う
183名無しさん必死だな:2012/12/31(月) 04:57:49.95 ID:5fhTJc3z0
自称家庭用ゲーム作ってた人から話聞いたことあんだけどハードがフリーズしちゃってもいいから無限ループとか無頓着に使うんだそうな
184名無しさん必死だな:2012/12/31(月) 07:45:07.13 ID:AV704+VC0
>>183
終了が電源オフしかない(シャットダウン処理がない)ので、キー入力待ちや条件判定待ちのイベントループは普通に無限ループになる
185名無しさん必死だな:2012/12/31(月) 08:43:46.28 ID:5fhTJc3z0
>>184
アプリケーションそのものを立ち上げるってのはそれで正解なんだけど、
データ読んだりとかその辺も読める前提で読めるまでループって使ったりすんだよ
んでwebでそれやるとタイムアウトまでリソース開放しないんでえらい重くなったりとかJSでやってブラウザ落ちたりとか
186名無しさん必死だな:2012/12/31(月) 09:39:45.85 ID:0kdLbzYd0
>>184
条件判定で抜け出せるループは無限ループと言えるのか
187名無しさん必死だな:2012/12/31(月) 12:57:11.94 ID:OuS5fceaP
ただのメインループだそれ
188名無しさん必死だな:2012/12/31(月) 15:38:00.48 ID:s1lEuQ9r0
>>185
そりゃしない方が処理速度稼げるから
パッケージソフトでデータがその中で完結してるんならある意味正しいよ
その条件でバグが出たら、データ作成・検証のミス
189名無しさん必死だな:2012/12/31(月) 15:51:24.57 ID:il09eCdB0
ただ最近はPS3や箱○、そしてWiiUと
OSが動いてるものが多いから、そこら辺を加味してアプリケーション動かさないとダメなのよね
190名無しさん必死だな:2012/12/31(月) 15:56:34.62 ID:OuS5fceaP
三菱のFA事業部に次世代ゲーム機を設計してもらおう
191名無しさん必死だな:2012/12/31(月) 20:05:24.57 ID:hDl4mM6t0
関数型とかそういう話かと思ったが。
ま、最近はイテレータが使える言語が増えて、forやwhileはあんまり使わなくなったな。
192名無しさん必死だな:2012/12/31(月) 20:10:13.94 ID:hDl4mM6t0
>>151
それ普通にやるけどな。ブロック内でいくつか判定処理がある場合で最初で偽になったらブロック抜けるとかの話だろ?
例外使うほどでもないし、わざわざメソッドにくくり出すのもむしろ可読性を落とすし。
193名無しさん必死だな:2012/12/31(月) 20:10:45.23 ID:znzhYcM4O
つまり・・・どう言うことだってばよ?
194名無しさん必死だな:2012/12/31(月) 20:11:30.50 ID:Uksn530F0
え?ゲームってPHPなの?
195名無しさん必死だな:2012/12/31(月) 21:30:05.44 ID:vsVnVscV0
>>186
ゲーム機の場合は機種次第だろうが本当に抜けないメインループ書いたりするぞ
196名無しさん必死だな:2012/12/31(月) 23:52:03.65 ID:5kpp2kMG0
>>136
人間だから、ミスは起こすもの。
同じミスを二度と起こさないのがプロ。
197名無しさん必死だな:2013/01/01(火) 00:05:12.61 ID:y/tjlTOq0
>>190
もしも三菱電機FA事業部がゲーム機を作ったら
・やたらレイテンシにうるさい
・メディアへの記録単位は「ステップ」
・シリアルポートの口はD-SUB25ピン
・「読みやすい漢字パネル」
198名無しさん必死だな:2013/01/01(火) 03:53:20.91 ID:xmoReYqc0
俺MELSECのモジュールかけるぜ
199名無しさん必死だな:2013/01/02(水) 23:50:54.49 ID:SYJVPA880
sage
200名無しさん必死だな:2013/01/04(金) 19:56:20.08 ID:s+/7kY6x0
俺MELCOM M80しかさわった事無いや
201名無しさん必死だな:2013/01/04(金) 22:01:11.80 ID:QMq3TphE0
なんでシーケンサのスレになってんだよ
202名無しさん必死だな:2013/01/05(土) 21:04:32.69 ID:gNdFWlNN0
 
203名無しさん必死だな:2013/01/06(日) 01:05:29.66 ID:XlxI9HYNP
>>201
そりゃループがどうのって話題になってたからだよ
204名無しさん必死だな
sage