★☆ ゲームプログラマのソースは読み辛い ☆★
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
02/04/16 18:27ID:NRtNJn8s0002名前は開発中のものです。
02/04/16 18:32ID:???ちなみにPS2のコードはあちらこちらにハード依存コードがあって
読みにくい以前の問題。
0003名前は開発中のものです。
02/04/16 19:14ID:???高度な芸術は難解なのです
0004名前は開発中のものです。
02/04/16 19:27ID:???0005壱
02/04/16 19:30ID:???貴様等語れ、と言いたいのでは
0006名前は開発中のものです。
02/04/16 19:43ID:???0007名前は開発中のものです。
02/04/16 20:31ID:???0008名前は開発中のものです。
02/04/16 20:49ID:???まあね、ゲームプログラムはどうしても汚くなってしまう。
敵の動きとか条件分岐の塊だし、
本来データとして持つべきものを直接コーディングしているのが
汚くなる要因だよな。
0009名前は開発中のものです。
02/04/16 21:35ID:???それは禁句だってさ。
>>1の考えてる事はよく分からん。
0010名前は開発中のものです。
02/04/16 22:28ID:???実際その種の配慮が非常に必要となる部分もあるけど、実は不要な部分まで同様なノリで書いてしまっている、とか。
0011名前は開発中のものです。
02/04/16 22:48ID:rMDs665gゲームのソース "が" 読み辛いのか
まずは、そこんとこはっきりしてくれ。
0012名前は開発中のものです。
02/04/16 22:54ID:???ゲームに限らず、CPUやメモリが足りなかった時代のプログラマは
そういうけち臭いコードを書きたがる傾向があるね。
スピードやメモリサイズを気にしなくていい部分なのに、
下手なテクを披露してくれちゃったりすると、
却って見にくくなったり他との整合性が悪かったり・・・
0013名前は開発中のものです。
02/04/16 22:56ID:???0014名前は開発中のものです。
02/04/16 22:59ID:???「ゲームプログラマの手によって書かれたソースは、一般的に読み辛いものが多い」でないの?
それがゲームプログラムという性質上、仕方がないからなのか、あるいはゲームプログラマが
「読みやすいソースを書くこと」に対する意識が低いからなのかは意見が分かれそうだけど
0015名前は開発中のものです。
02/04/16 23:02ID:???0016名前は開発中のものです。
02/04/16 23:05ID:???コメントがまるでなしとか定数をそのままソース中に散乱させるとか
0017名前は開発中のものです。
02/04/16 23:10ID:???プロのってなかなか見られないんじゃあ・・・
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:???でもそれは言えるかもしれんな。
リアルタイムで動く物が大多数だし。
0024へぼゲームぷろぐらま
02/04/17 00:55ID:???ぜひ具体的に教えてください。勉強します
0025名前は開発中のものです。
02/04/17 01:29ID:Hh/Gvx6Q例えば何よ?
意味不明さでは君も似たようなもの。
プログラマとしてのレベルも窺い知れる。
0026名前は開発中のものです。
02/04/17 01:35ID:/PI8azi20027名前は開発中のものです。
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:???マスター上がれば終わりのゲームプログラムと、保守も仕事に含まれる
ビジネスプログラマとでは美しさの目的が違うのではない?
見やすくてもタラタラ書いてるソースなんて、動いてもバグの内。
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:p7h3xqV60033名前は開発中のものです。
02/04/17 02:44ID:???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コンパイラに依存するコードは、良くないと思う。
そうやってもメモリは削れんしw
大概のコンパイラは、foo()がインライン関数だったりしたら、
最適化されないし。
0037名前は開発中のものです。
02/04/17 03:03ID:???最適化を期待しないなら
const float inv = 1.0 / 2.5;
float *cur = &a[0] , *end = &a[10];
do{ *cur *= inv; } while( ++cur != end );
ぐらいかな。(register とかつけるかも)
中途半端がいちばんカッコワリィと思うぞ。
003835
02/04/17 03:11ID:???最適化考える前に、あんなコード書こうとする俺は逝ってヨシですか?
0039名前は開発中のものです。
02/04/17 03:15ID:Hh/Gvx6Q流石にそれはやってくれるでしょ。
ていうか、例として書いただけで、実際は配列なんか使わんし。
(Vector使うからコード的にはそれと同じ)
0040名前は開発中のものです。
02/04/17 06:38ID:NDGDglUg0041名前は開発中のものです。
02/04/17 07:43ID:???それは己で判断すればいいだけの話であって。
0042名前は開発中のものです。
02/04/17 08:11ID:???ほんとに芸術品だぞ。
0043名前は開発中のものです。
02/04/17 08:33ID:???ショボーンな状況下で威力を発揮するテク満載のスレはここですか?
GPL恐怖症でgccが使用禁止とか
0044名前は開発中のものです。
02/04/17 08:55ID:???提供してくれないジンクスが。儲けてるんだからコンパイラぐらい
自作して提供しる。
0045名前は開発中のものです。
02/04/17 12:21ID:???コードのコンパクトさが実行速度に影響する事も結構あるのかな?
例えば1バイトの差で頻繁な主RAMアクセスが発生してしまっていた、とか....
セットアソシアティブ方式のキャッシュに最適化したコード配置とか、する事はあるんでしょうか。無いか。
0046名前は開発中のものです。
02/04/17 12:57ID:cHjhAfCsガリガリとハードコーディングして作り捨てしちゃっても
特に不都合なかったってだけの話。
今後はそうはいかんでしょうよ。ネットゲーとか。
今そこで汚いコード書いてるヤツ、覚悟しとけよ。
0047名前は開発中のものです。
02/04/17 15:24ID:???でもゲーム部分はぐちゃぐちゃ、設計段階で想定してない処理がしょっちゅう追加されるから。
0048名前は開発中のものです。
02/04/17 23:49ID:???「「とりあえず」動くもん見せてよ」攻撃がいろんな人からかけられるからな…(鬱
0049sage
02/04/18 01:30ID:9kHN.ahQ>セットアソシアティブ方式のキャッシュに最適化したコード配置とか、する事はあるんでしょうか。無いか。
あるよ。
インストラクション側はクリティカルなところは「全部乗せる」が
基本だし、パイプラインも絡むのでインライン展開する事が多いけど、
データ側は局所的に扱われるデータ系列数がウェイ数を超えていた場合は
配置で調整する(出来る)。
まぁ「無い事は無い」ってだけで、極一部であることも事実。
0050名前は開発中のものです。
02/04/18 01:31ID:???0051名前は開発中のものです。
02/04/18 05:02ID:???そしてそれをそのまんま使うはめになるんだわな。
「動く」から。
鬱。
0052名前は開発中のものです。
02/04/18 05:54ID:???ソースが読みにくい以前に、設計段階でぐちゃぐちゃですわ。
重要な定数も、BASIC時代ライクにそのまんま書いちゃうことなんて茶飯事。
インデントのつけ方は大抵、統一されてるけど、変数や関数の命名規則なんて
グチャグチャですよ。かといって、別に高速化を目指した結果でもないんだけどね。
ソース添削の結果、使われなくなった変数なんてそこら中に散在してるし、
呼び出されることのない関数もたくさんある。まぁ後者ならリンカが気利かして
除いてくれるのかな?
ちなみに、自分の場合、家の中もめちゃ汚いです。
もう床なんて見えないね。
0053名前は開発中のものです。
02/04/18 07:12ID:???>でもゲーム部分はぐちゃぐちゃ、設計段階で想定してない処理がしょっちゅう追加されるから。
あう〜
確かにライブラリ部分だとかミドルウェア部分ならそこそこ綺麗に
まとめられるのだが、ゲーム部分はグッチャグチャ。
すっきりとモジュール分割できるものは頭使わなくて楽でいいよ。
精神的にも清潔でいられるし〜
0054名前は開発中のものです。
02/04/18 12:42ID:???趣味で一人でプログラミング、ならそれでもいいような気もするがな
俺は保守で後々苦労するのが嫌だから自分なりに気を使っているけど
仕事でそんな感じだったら、同僚に文句言われたりしないの?
0055名前は開発中のものです。
02/04/19 01:53ID:???ゲーム部分の各タスクはそうなりがちだね。
各々依存関係が複雑になってカオス状態になるからね。
0056名前は開発中のものです。
02/04/19 08:02ID:???特にゲームプログラムの場合、他のソフトウェアとは違って
依存関係が妙に多いよー
例えばさ、10年前のSFC時代のRPG一つ見ても
分業が難しそうなプログラムだったりする。
0057名前は開発中のものです。
02/04/19 08:30ID:???安心しろ。
簡潔に要点をまとめる能力ゼロでも、なんとかなるぞ。
0058名前は開発中のものです。
02/04/20 04:12ID:XCIk0FgMコメント書式も統一されてるし、クラス設計思想も徹底させてるし。
他人のソース見ても簡単に理解できる。
そうでなきゃ何人ものプログラマで作業できない。
システムでタスク単位の処理時間が出るからボトルネックがどこかすぐわかる。
処理にして1μsも無いようなとこ最適化しても意味無いよ。
いつまでも10年前のゲームプログラマのイメージ持たないで欲しい。
0059名前は開発中のものです。
02/04/20 05:18ID:???コメント書式も変数命名ルールもクラス設計思想も全員バラバラ。
見た目も全員バラバラ。
0060名前は開発中のものです。
02/04/20 11:30ID:???すばらしいです!是非そういう会社で働きたい!会社名を教えてください!
え、今時どこの会社もそんな感じ?本当ですか?
0061名前は開発中のものです。
02/04/21 06:46ID:4j.0wvZU0062名前は開発中のものです。
02/04/21 07:11ID:dDCMvgNYワンダースワンとかGBAとかをゲームと思ってない差別発言とみなします。
0063名前は開発中のものです。
02/04/21 11:40ID:???あちらはおいておいてほすぃ。
0064名前は開発中のものです。
02/04/23 03:25ID:???{
j=1;
}
else
{
j=2;
}
0065名前は開発中のものです。
02/04/23 08:48ID:???んな中途半端はいかんといったろう!
const float fInv = 1.0f/2.5f;
a[0] *= fInv;
a[1] *= fInv;
a[2] *= fInv;
a[3] *= fInv;
a[4] *= fInv;
a[5] *= fInv;
a[6] *= fInv;
a[7] *= fInv;
a[8] *= fInv;
a[9] *= fInv;
ブランチはキャッシュミスのもと。
0066名前は開発中のものです。
02/04/23 08:56ID:???最速目指すならこれだね、最近は。
アドバンスでも3〜4回の簡易なループ処理なら展開しとく。
0067名前は開発中のものです。
02/04/23 15:38ID:8zPBRBi2〈 j |'´ / , -へ丶亅/,.‐'`、 、
`、 ,.'´' ' / / `i、レ `丶亅|
| .'´/ /, ' , ' , ' `i、ノ
|,'〜丶,/ , ' , ' , ' ,' \
, ' ⌒ヽ / / / / / l l 、、、、 `、
,.' / l 1 ,' ,' ' ' ' ' ' ' ' '`.、
|1/ !{ l i | | | | | | | | | | `、
|/\ l1 | | i1 | .| | | | | | | | i、
i、 _ノノ | _,.-一'''~ ̄|`i l l i ii ii ii iii |1|
|`''ーイ -''´`i !|`、| i ノ一、 ','', ',''j l !l
,| , ´ | ,|-';;0ヽ`i| { /jノ ノ|ン、/ /j ,j l|
|! | イイ{:;;iiiiii::;} `| },ノ ,ノ;0`jノ / /,' , } l
j l 1 リ、`'ー+' {:iiii} iノイ lノ ノノ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
, l 1 |`、 ,  ̄ ,‐'´ l < だきまくらにされるの、嫌なんですけど。
| l 1 1 ` 、\ - ノ 1 i \____________
/ノ l 1 '、 ` 、 _, .- ' | 人
/~ノ/// ノ\ ` ' ー 'i、_ __| ハ
, -'~ _...,,,.‐'´ \\  ̄'´ ̄ l`j丶、
,.‐'´ \\ ,.‐'´ // i
イ `i`、 〃
0068名前は開発中のものです。
02/04/23 22:46ID:???もしかしてゲーPGって
コ ー デ ィ ン グ が 下 手 糞
なんじゃない? あ、ゴメソ。
0069名前は開発中のものです。
02/04/23 23:28ID:???0070名前は開発中のものです。
02/04/24 00:36ID:???>コ ー デ ィ ン グ が 下 手 糞
一理あり。
アセンブラ時代がついこの間まであって、
今でもアセンブラ書かないといけない部分がある。
だから、お行儀のいいCのソースって書けない。
ご多分に漏れず、あたしは縦方向に整然としたソースを書くかな。
学生ソースから発展した御仁には理解できないかもしれないけど。
お武家は作法に拘るんだよね。
0071名前は開発中のものです。
02/04/24 00:54ID:???作法にこだわらないコードはクソです。
アセンブラだとかCだとか、言語以前の問題です。
0072名前は開発中のものです。
02/04/24 02:00ID:???for(i = 0 ; i < 32 ; i++)
{
printf("%d\n", i);
}
と
for ( i=0;i<32;i++ ) {
printf("%d\n",i);
}
と
for(i = 0 ; i < 32 ; i++) printf("%d\n", i);
どれが一番無作法?
■ このスレッドは過去ログ倉庫に格納されています