トップページgamedev
173コメント50KB

★☆ ゲームプログラマのソースは読み辛い ☆★

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。02/04/16 18:27ID:NRtNJn8s
です。処理的に難しいことしてるから、とかではないよ念の為。
0002名前は開発中のものです。02/04/16 18:32ID:???
ソースよりもコメントの方が多い人もいるよ。
ちなみにPS2のコードはあちらこちらにハード依存コードがあって
読みにくい以前の問題。
0003名前は開発中のものです。02/04/16 19:14ID:???
ゲームプログラムは芸術作品なのです
高度な芸術は難解なのです
0004名前は開発中のものです。02/04/16 19:27ID:???
で何?>>1
000502/04/16 19:30ID:???
他人にも読みやすいソースを心がけるにはどうしたら良いのか
貴様等語れ、と言いたいのでは
0006名前は開発中のものです。02/04/16 19:43ID:???
ニーモニックですか?
0007名前は開発中のものです。02/04/16 20:31ID:???
・・・・・
0008名前は開発中のものです。02/04/16 20:49ID:???
>>1
まあね、ゲームプログラムはどうしても汚くなってしまう。
敵の動きとか条件分岐の塊だし、
本来データとして持つべきものを直接コーディングしているのが
汚くなる要因だよな。
0009名前は開発中のものです。 02/04/16 21:35ID:???
>>8
それは禁句だってさ。
>>1の考えてる事はよく分からん。
0010名前は開発中のものです。02/04/16 22:28ID:???
一種の高速化チューニングをしてる、その為の犠牲はしかたない、って意識があったりは?
実際その種の配慮が非常に必要となる部分もあるけど、実は不要な部分まで同様なノリで書いてしまっている、とか。
0011名前は開発中のものです。02/04/16 22:48ID:rMDs665g
ゲームプログラマの書いたソースは "すべて" 読み辛いのか
ゲームのソース "が" 読み辛いのか
まずは、そこんとこはっきりしてくれ。
0012名前は開発中のものです。02/04/16 22:54ID:???
>>10
ゲームに限らず、CPUやメモリが足りなかった時代のプログラマは
そういうけち臭いコードを書きたがる傾向があるね。
スピードやメモリサイズを気にしなくていい部分なのに、
下手なテクを披露してくれちゃったりすると、
却って見にくくなったり他との整合性が悪かったり・・・
0013名前は開発中のものです。02/04/16 22:56ID:???
>>1はVB
0014名前は開発中のものです。02/04/16 22:59ID:???
>>11
「ゲームプログラマの手によって書かれたソースは、一般的に読み辛いものが多い」でないの?
それがゲームプログラムという性質上、仕方がないからなのか、あるいはゲームプログラマが
「読みやすいソースを書くこと」に対する意識が低いからなのかは意見が分かれそうだけど
0015名前は開発中のものです。02/04/16 23:02ID:???
プロの書いたのを見てみたいなあ
0016名前は開発中のものです。02/04/16 23:05ID:???
アマチュアのはヒドいのが多い
コメントがまるでなしとか定数をそのままソース中に散乱させるとか
0017名前は開発中のものです。02/04/16 23:10ID:???
>>15
プロのってなかなか見られないんじゃあ・・・
0018名前は開発中のものです。02/04/16 23:20ID:???
と、ゆーか。
C(もしくはC++)で書いてるソースはあんま変わんねぇよ。
ファミコンのアセンブラソースは壮絶だけどな。
0019名前は開発中のものです。02/04/16 23:21ID:???
何と何が変わらないの?
アマチュアのなら変わらないというのなら分かるけど・・・
0020名前は開発中のものです。02/04/16 23:31ID:???
個人的には
ゲームプログラマ:読みやすいソースコードを書く
一般のプログラマ:とにかくコメントを書く
ってなイメージがあるけど。
0021名前は開発中のものです。02/04/16 23:56ID:???
漏れは
ゲームプログラマ:最適化に命を賭ける
一般のプログラマ:処理速度はあまり重視しない、読みやすいソースを心がける
というイメージだが、完全に想像だから多分実像とは違うんだろうなあ
0022名前は開発中のものです。02/04/16 23:59ID:???
モジュールを知らない人のコードは、
ゲームプログラマでなくても読みにくいです。
0023名前は開発中のものです。 02/04/17 00:24ID:???
>>21
でもそれは言えるかもしれんな。
リアルタイムで動く物が大多数だし。
0024へぼゲームぷろぐらま02/04/17 00:55ID:???
>>1
ぜひ具体的に教えてください。勉強します
0025名前は開発中のものです。02/04/17 01:29ID:Hh/Gvx6Q
>>1
例えば何よ?
意味不明さでは君も似たようなもの。
プログラマとしてのレベルも窺い知れる。
0026名前は開発中のものです。02/04/17 01:35ID:/PI8azi2
仕事かどうかで違うなあ
0027名前は開発中のものです。02/04/17 01:37ID:p7h3xqV6
最初は綺麗に書いていても、構造がまるっきり変わるような仕様変更の
嵐で結局DQNソースになります。
0028名前は開発中のものです。02/04/17 01:51ID:???
ソースの書き方が綺麗かどうかってのは、
プロアマ関係なくまたプログラミング技術とも別問題。

本人がコーディング作法に興味があるかどうかが重要だろー?
0029名前は開発中のものです。02/04/17 01:58ID:???
コメント多いソースって読みにくいよな
0030名前は開発中のものです。02/04/17 02:07ID:???
プログラマがDQNだというケースは置いといて、
マスター上がれば終わりのゲームプログラムと、保守も仕事に含まれる
ビジネスプログラマとでは美しさの目的が違うのではない?
見やすくてもタラタラ書いてるソースなんて、動いてもバグの内。
0031名前は開発中のものです。02/04/17 02:16ID:Hh/Gvx6Q
例えば、高速化で

{
float inv = 1.0f / 2.5f;

for (int i= 0; i< 10; i++) {
foo( a[i] * inv );
}
}

こういう書き方が駄目?常識だと思うけど
0032名前は開発中のものです。02/04/17 02:21ID:p7h3xqV6
インデント無いから駄目。
0033名前は開発中のものです。02/04/17 02:44ID:???
それって何から高速化してんの?
0034名前は開発中のものです。02/04/17 02:46ID:Hh/Gvx6Q
>>32
書き込むと取れるみたい。(タブ派だし)

>>33
float 割り算の回数を減らしてる。
0035名前は開発中のものです。02/04/17 02:50ID:???
それなら、
for(int i=0; i<10; i++) foo(a[i]*(1.0f/2.5f));
の方がイークナイ?float1個分メモリ削れるヨ。
割り算は最適化の時にあらかじめ割ってくれてるので問題ナシ
0036名前は開発中のものです。02/04/17 02:59ID:Hh/Gvx6Q
>>35
コンパイラに依存するコードは、良くないと思う。
そうやってもメモリは削れんしw
大概のコンパイラは、foo()がインライン関数だったりしたら、
最適化されないし。
0037名前は開発中のものです。02/04/17 03:03ID:???
最適化を期待するなら>>31ので十分。
最適化を期待しないなら
const float inv = 1.0 / 2.5;
float *cur = &a[0] , *end = &a[10];
do{ *cur *= inv; } while( ++cur != end );
ぐらいかな。(register とかつけるかも)
中途半端がいちばんカッコワリィと思うぞ。
00383502/04/17 03:11ID:???
怒られっぱなし。
最適化考える前に、あんなコード書こうとする俺は逝ってヨシですか?
0039名前は開発中のものです。02/04/17 03:15ID:Hh/Gvx6Q
それって、配列のアドレス計算の掛け算を回避(プラス終端判定)て事?
流石にそれはやってくれるでしょ。

ていうか、例として書いただけで、実際は配列なんか使わんし。
(Vector使うからコード的にはそれと同じ)
0040名前は開発中のものです。02/04/17 06:38ID:NDGDglUg
ところで、そこまでしないと本当にいけないの?
0041名前は開発中のものです。02/04/17 07:43ID:???
>>40
それは己で判断すればいいだけの話であって。
0042名前は開発中のものです。02/04/17 08:11ID:???
1はプロの作品見たこと無いな
ほんとに芸術品だぞ。
0043名前は開発中のものです。02/04/17 08:33ID:???
しなびた糞古いダメコンパイラを使わざるを得ないという
ショボーンな状況下で威力を発揮するテク満載のスレはここですか?

GPL恐怖症でgccが使用禁止とか
0044名前は開発中のものです。02/04/17 08:55ID:???
 過去の歴史を振り返るに、覇権を握るハード程ろくな開発環境を
提供してくれないジンクスが。儲けてるんだからコンパイラぐらい
自作して提供しる。
0045名前は開発中のものです。02/04/17 12:21ID:???
ところで、ゲーム機向けの、キャッシュの小さなCPUなんかだと
コードのコンパクトさが実行速度に影響する事も結構あるのかな?
例えば1バイトの差で頻繁な主RAMアクセスが発生してしまっていた、とか....
セットアソシアティブ方式のキャッシュに最適化したコード配置とか、する事はあるんでしょうか。無いか。
0046名前は開発中のものです。02/04/17 12:57ID:cHjhAfCs
ゲームのコードは保守・再利用する機会が少ないから
ガリガリとハードコーディングして作り捨てしちゃっても
特に不都合なかったってだけの話。

今後はそうはいかんでしょうよ。ネットゲーとか。
今そこで汚いコード書いてるヤツ、覚悟しとけよ。
0047名前は開発中のものです。02/04/17 15:24ID:???
ライブラリ部分はきれいに書くよ。
でもゲーム部分はぐちゃぐちゃ、設計段階で想定してない処理がしょっちゅう追加されるから。
0048名前は開発中のものです。02/04/17 23:49ID:???
そだな。ゲームの特に見える部分のプログラムは
「「とりあえず」動くもん見せてよ」攻撃がいろんな人からかけられるからな…(鬱
0049sage02/04/18 01:30ID:9kHN.ahQ
>>45
>セットアソシアティブ方式のキャッシュに最適化したコード配置とか、する事はあるんでしょうか。無いか。
あるよ。
インストラクション側はクリティカルなところは「全部乗せる」が
基本だし、パイプラインも絡むのでインライン展開する事が多いけど、
データ側は局所的に扱われるデータ系列数がウェイ数を超えていた場合は
配置で調整する(出来る)。

まぁ「無い事は無い」ってだけで、極一部であることも事実。
0050名前は開発中のものです。02/04/18 01:31ID:???
あいたたた、あげちゃったよ
■ このスレッドは過去ログ倉庫に格納されています