トップページgamedev
935コメント361KB

OOとゲームプログラミング

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。01/11/07 23:55ID:HnYWCQK1
OOをどのように用いれば美しくゲームプログラミングを
行うことが出来るのか語り合うスレです。
0491名前は開発中のものです。02/01/17 00:32ID:BamJYCnx
>>489
まあワークシステムのUpdate程度の用途であれば
オーバーヘッドの差は微々たる物でしょうね。
どちらかというと、new/deleteなしに、
Stateパターンを適応するのが本来の目的なのです。
0492名前は開発中のものです。02/01/17 00:35ID:???
>>491
前にも誰か書いてたが、なぜ関数ポインタを使わないんだ? C++ だと仮想関数へのポインタも取得
できるから、それで何ら問題ないと思うんだが。
0493名前は開発中のものです。02/01/17 00:38ID:BamJYCnx
>>490
それは有り得ません。
なぜなら、例えdefaultがなくとも、
変数が必ずcase内の値を取ることが保証されない限り
範囲チェックは必須だからです。
switch(a){
case 0:break;
case 1:break;
};
という構文において、aが0と1の値以外を取らないことは、
静的に保証できません。
まあ、
switch(a&1){}
とすれば最近の最適化コンパイラならdefaultを省略してくれるかもしれませんが。
0494名前は開発中のものです。02/01/17 00:41ID:???
>>486
ハイハイ。PS2だかPCは偉いね。
0495名前は開発中のものです。02/01/17 00:43ID:BamJYCnx
>>492
外部からクラスメンバを呼び出すとき、
unknown->Method()
としたいからです。
0496 02/01/17 01:06ID:???
switch使ったらライブラリ化できないでしょうが。
0497名前は開発中のものです。02/01/17 01:10ID:???
>>495
それは、単純な転送関数を書けば良い気がするけど。たとえば、下のようなコードと比較して得失は
何なんでしょ?

> 仮想関数としてはつかえんでしょ。
これなのかなぁ。

struct State
{
  void exec1() {}
  void exec2() {}
};

class Foo
  : private State
{
  void (Foo::*pMethod)();

public:
  Foo() : pMethod(&State::exec1) {}
  void method() { (this->*pMethod)(); }
};

int
main(void)
{
  Foo foo;
  foo.method();
  return 0;
}
0498名前は開発中のものです。02/01/17 01:20ID:iYo4faYa
>>478でも書いてるけど、ようはmethodを仮想関数にしたいわけです。
methodを仮想関数にすると、インライン展開できないので、
関数コール分のオーバーヘッドが増える。
この両者を解決するのが仮想関数テーブルアドレスの上書きであるということ。
0499名前は開発中のものです。02/01/17 01:33ID:???
もはや日本語じゃなくてC++で話した方がいいような気がしてきた。
0500名前は開発中のものです。02/01/17 02:08ID:jIMgxZOU
ジャンプテーブルの参照なんて、どう組み込んでもおんなじじゃん…
直接vtable書き換えるようなオバカな真似してどうするのさ。
それはコンパイラ提供側の仕様に依存しているという最悪の選択肢。
正直、仮想関数のオーバーヘッドが気になるレベルの性能が必要なら、
もっと別の解決法を考えた方がいい。

仮想関数の機構は、基底を同じくするクラスの多態性を実装するためのものなんだから、
状態別でアッパーキャストするならまだしも(これだってクラスの内容によっては
何が起きるか分からなくなるので、実装依存もいいとこなんだが)、正直その使い方は
およそ賛成しかねるなあ…。


あと、直接関係ないネタだけど。

>methodを仮想関数にすると、インライン展開できないので、

これは多くの人が誤解していることだけど、実際に仮想関数がvtable経由で
コールされるのは、アッパーキャストが絡むときのみ。
わざわざ vtable を辿らなくてもコール先が自明な場合、コンパイラは直接
関数を呼び出すコードを生成する。
inline virtual なんて、珍しくないよ?

煽るつもりじゃないのでsage
050150002/01/17 02:09ID:???
sage忘れた。
500ゲットに免じてご勘弁。
0502名前は開発中のものです。02/01/18 10:04ID:???
>>500

>実際に仮想関数がvtable経由でコールされるのは、アッパーキャストが絡むときのみ。

まともに OOP してるなら、ベースクラス通して使う事がほとんどだと思うのですが…。
050350202/01/18 10:10ID:???
書いた後に誤解を受ける文章だと気づいた。

私も vtable 書き換えなんて、よっぽどの事でもないかぎり反対です。
というかゲーム業界のプログラマって、過酷なターゲットいじり過ぎて
「まず速度ありき」なのはちょっとマズイ状況だと思う。

最適化は最後の作業ってのはソフトウェア業界の常識だと思いますけど、
そこらへんは皆さんどうお考えですか?
0504 02/01/18 10:45ID:9PXzALQL
まず速度ありき
速度の前にコード無く、コードの後に速度無し。
0505名前は開発中のものです。02/01/18 13:19ID:???
速度を考えるなら、まずはアルゴリズムの最適化
0506名前は開発中のものです。02/01/18 15:54ID:???
>>503
まず、モジュール化ありき。

ボトルネックになる部分はほんの一部に過ぎない。システムを詳細な、依存関係が少ない部分にばらして
おけば、ボトルネックを見つけて改良するもの楽。(後からアルゴリズム差し替えようなんて話は、それこそ
クラスをきっちり分けてモジュール化してないと、危なくて出来ない)
0507名前は開発中のものです。02/01/18 16:35ID:???
>>504
確かに、コードを一行も書かなければ最速だわな。(違う?)
0508名前は開発中のものです。02/01/18 17:28ID:???
>>503
まともなゲームプログラマは、
C++のコードみた瞬間にアセンブリコードが浮かぶので
無駄だらけに感じるのだろう。そっとしておいてやれ。
0509名前は開発中のものです。02/01/18 18:54ID:???
「最も速いプログラムは何もしないプログラム」ってやつか?
0510名前は開発中のものです。02/01/18 18:58ID:B+awXMzd
バグのないプログラムもね(w
しかし、vtable書き換え……俺もやめようよそれは派だな。
Cみたく完全に枯れた言語ならともかく。

0511名前は開発中のものです。02/01/18 20:17ID:???
>>508
その無駄ってのも顕微鏡で覗いてやっと分かる、みたいな
もんだしな。これからの時代はそういう人達をいかにシカトして
作業するかが問題になってくる。ん、時間が経てばいなくなるか(w
0512名前は開発中のものです。02/01/18 20:36ID:???
>>511
ウイルスも何十万集まれば風邪になるってね。
0513名前は開発中のものです。02/01/18 20:42ID:???
ネタとしては面白くないし、比喩としては本質を掴んでない。
0514 02/01/19 02:08ID:fEUidKgQ
あのー。ム板ではC++なぞOOPLとは認められて無いようなんですが・・・。
0515名前は開発中のものです。02/01/19 02:18ID:???
>>514
どこでそういう結論になっているのか教えてちょ
SmallTalk以外は認めない、とかかな?
0516 02/01/19 02:31ID:fEUidKgQ
俺に聞かれてもわからん。
0517名前は開発中のものです。02/01/19 02:34ID:???
>>516
おいおい(w 少なくとも C++ 相談室スレでは C++ 使って OO な設計する話で盛り上がってたぞ。

C++相談室 Part4
http://pc.2ch.net/test/read.cgi/tech/1009071535/
0518名前は開発中のものです。02/01/19 03:06ID:???
最近は
http://www.amazon.co.jp/exec/obidos/ASIN/4894714353/ref%3Dsr%5Faps%5Fd%5F1%5F1/249-8109842-4582733
こんな本も話題だったような
0519名前は開発中のものです。02/01/19 04:13ID:???
>>511
禿同。

>>515
514じゃないけど、Ruby関係のスレとかでは名文句「C++なぞ問題外」
って言われるね。漏れも(万が一)環境が許すならば C++ よりも Java や C# で逝きたい派だけど。
0520 02/01/19 04:21ID:fEUidKgQ
再利用の極意はクラスにあらず。
ファイル分けに有り。
0521名前は開発中のものです。02/01/19 06:25ID:???
>>519
Rubyの煽りは敵を増やしただけだな。
RubyもOOPとしての完成度は低い。たかが一言語としての立場を
わきまえるべきなのだが。作者がそんな厨だからスレが荒れるんだよ。
0522名前は開発中のものです。02/01/19 07:51ID:???
ていうか、rubyをゲーム制作に利用しようとしているドキュソな
言語ヲタな時点で激しく逝ってると思われ
0523名前は開発中のものです。02/01/19 11:05ID:???
>>514-517
Stroustrup先生自身がOO言語じゃないって言ってなかったっけか?
俺的にはOOも可能なてんこもり言語。
0524名前は開発中のものです。02/01/19 13:15ID:???
>>521
>RubyもOOPとしての完成度は低い。

どのへんが?
0525名前は開発中のものです。02/01/19 13:41ID:???
Rubyは結構いけてる言語で、プログラムの側からスクリプトとして呼ぶこともできるのでゲームに応用できなくもない。
しかし、以下の欠点からRubyが使われることは将来にわたっても無いだろうと考えられる。

1:UNIX系生まれなので、@や$みたいな記号に重要な意味を持たせている(Win育ちには読みにくい)
2:実績がない。Python使ったスクリプトや大規模プログラムはいくつか例が見られるが、RubyではせいぜいがCGIで、後は誰も使わないライブラリや技術的テスト物ばかりが大量生産されている。
3:コミュニティがC++を蛇蝎のごとく嫌っている。PythonはC++とのブリッジとなるライブラリがいくつか存在している。

OO的にはどうなんかな? 上記2のように大規模プログラムが全然存在していないので、あまりありがたみを感じられる事例が存在していないだけのようにも思う。
0526危険レベル302/01/19 13:41ID:???
Rubyの話は終了しましょう。(;´Д`)
0527名前は開発中のものです。02/01/19 15:38ID:???
コンソール機用の C++ コンパイラって、どの程度の物なの?
PS2 とかは GCC って聞いたけど、それ以外は?

そっち系の方教えて下さい。
0528 02/01/19 17:34ID:sHB48RIN
gcc以外?
ゲームでは見た事ないなあ。
PCならMS−Cか。
0529名前は開発中のものです。02/01/19 17:48ID:???
CodeWarrior
0530名前は開発中のものです。02/01/19 23:19ID:???
>>523
C++ は

- 手続き型プログラミング
- データ抽象
- オブジェクト指向プログラミング
- 汎用プログラミング

など、複数のパラダイムを支援する言語。OOPL としてみればメタクラスが無いとかクラスが FCO では
ないなど「中途半端」な面もあるが、現実の要求に則してうまく仕様を取捨選択してある。使いこなせば
強力な言語。

っつーことで。
0531名前は開発中のものです。02/01/19 23:23ID:???
>>528
VC じゃなくて MS-C なのか?

いや、俺は XBOX は触ってないから知らないんだが。
0532 02/01/19 23:57ID:aWuoIM0Y
コンソール機用=CUIだと解釈したが?違う?
0533村人A02/01/20 00:13ID:???
>>532
その昔、VB1.0という恐ろしいソフトが存在したそうな
0534名前は開発中のものです。02/01/20 00:18ID:???
>>532
ああ、それは勘違い。

ゲーム関係でコンソール/コンソールボックスといったら、いわゆるゲーム専用機のこと。汎用
の PC や Mac なんかとと対比しての呼称ね。
0535名前は開発中のものです。02/01/20 01:03ID:ECljemOC
ヲタ用語なぞ知らんな。
0536少女∀02/01/20 01:08ID:???
>>533
そのソフトはどんな悪さをしたの?おじいちゃん。
0537名前は開発中のものです。02/01/20 01:16ID:???
>>535
ヲタ用語か? 海の向こうだと割と使われてる気がするが。

っつか、話が OO と関係ないな。終わらそう。
0538名前は開発中のものです。02/01/20 12:39ID:???
OO の冗長性がどこらへんでボトルネックになるかっていうのが
判断できないと、勇気をもって OO できないね。

で、結局パフォーマンスを気にしすぎてセコセコした設計をすると
OO のよさが活かされずに「 ゲームは特殊なんだよ。」みたいな
結論に達する厨がいる。と。
0539 02/01/20 14:30ID:5pJrXY6Q
>>538
だからC++以外で組んでから言えつうの!
死ね!
0540  02/01/20 14:31ID:5pJrXY6Q
>結局パフォーマンスを気にしすぎて

死ね!
0541名前は開発中のものです。02/01/20 14:43ID:???
>>538
> で、結局パフォーマンスを気にしすぎてセコセコした設計
設計段階からパフォーマンスを意識する必要は、最近はない気がするなぁ。とりあえずプロファイラ
かけてからモノをいえ、に一票。
0542名前は開発中のものです。02/01/20 14:53ID:???
>>538
少なくともPS2の場合だったら、
クラスのサイズが大きくなりすぎない事に注意すればいいだけ
だよ。
0543  02/01/20 16:10ID:5pJrXY6Q
はいはい、PS2以外のプログラマ―はセコセコした設計をする厨房
だと言う事だね。

死ね
0544名前は開発中のものです。02/01/20 16:12ID:???
これはもう、OOの布教というよりOOヲタが周りを見下しに
来てるだけですね。

******** 終了 ********
0545名前は開発中のものです。02/01/20 16:21ID:???
で、結局、ゲーム業界での、C vs C++ の割合ってどの程度なの?
自分はps2でC++使ってる。
未だにC使ってるところが信じられない。Cを使う理由ってなによ?
C++に反対しているオヤジってさ、PS1の時も、Cに反対していなかったっけ。
要は向上心が欠けているだけの人間なんだろ。(当時のオヤジどもが
今ではCにゾッコンで、C++移行へあれこれイーワケつけてる。まぁ
既に引退してイーワケすら聞こえないケースもあるだろうがワラ)

チーム内にC++知らねーヤツいると、足引っ張るんだよね。
よりによって、年上なセンパイだったりするから扱いにくくてよぉ
0546名前は開発中のものです。02/01/20 16:24ID:???
あ、そうか、ゲームにはps2以外のもあったね、そういえば。
まあps2以外のゲームプログラマーなんて糞だし問題外でしょ。
0547名前は開発中のものです。02/01/20 16:27ID:???
出川さんご苦労様です
0548名前は開発中のものです。02/01/20 16:35ID:???
>>543
XBOX, GC あたりも、何ら問題ないと思われ。

i-mode は厳しいな。GBA とかは使ったこと無いから知らん。
0549名前は開発中のものです。02/01/20 16:38ID:???
>>543
ターゲットは何でもいいけど、プロファイルは取りましたか?
0550名前は開発中のものです。02/01/20 16:44ID:???
>>544
少し、実のありそうな話を。

C++ が C より遅いって話に関しては、多くの場合「間違い」。非仮想関数の呼び出しに関しては、
それがメンバ関数だろうがリンク時に静的に解決されるから

 C の関数と同じ

だし、仮想関数も C で同等なことをやろうと思ったら

 コールバック関数を使う
 switch - case で分岐

どちらかになるので、パフォーマンスは変わらん(ただし ADT を使うのか、仮想関数を使うかとい
う設計の選択はある)。


このあたり、実際に C++ がどういうコードを吐くのかを知れば雲散霧消する誤解だと思うな。C++
が裏で何をやってるか分からないから不安だって人は

 Inside the C++ Object Model
 Stanley B. Lippman
 Addison Wesley

を読んでみることを薦めとく。
0551 02/01/20 16:46ID:???
>>549
死ね!
0552名前は開発中のものです。02/01/20 16:51ID:???
「C++は何かと遅い」というのは迷信ではない。
C++に移行できない不勉強なやつらが適当な理由材料をでっち上げたもの。
だから、相手にするな >>549

あ、ちなみに、俺は551の「死ね」と書いた短小野郎ではない。
0553名前は開発中のものです。02/01/20 16:57ID:???
             , -‐、   , -.、
           /   ノ  ノ   ノ
          / 、_.ノ ./ 、_.ノ´
            /  ノ /   .ノ  ,,-‐'⌒i
.           / __ノ / /⌒ii´ /、_  .ノ´.
          l.   `iノ /  / |/  ,.'~´  .
           |   ,,,|./ ``´.丿 、_ノ ,-‐'´⌒)
.         l.    |``''' /  .ノ ./ 丶,-‐'´
        |  ,___l    |、. / / 、,,/
.         |   ノ     | `` '´-、 ,ノ
         | _/    |` ‐、__   )    >>C言語信者を軽く流さないでぇー
            | /     ヽ-、 _ ̄`|
         | .      ヽ::::.` 、,|
            | :.       |::::  |
             | ::       |::::  |.
          λ:::      ノ:: 丿
         /      , ::::::'/                __
        /      :/:::::::::/               /ヽ  ヽ―― 、
       /      ::/:::::::::/               /  |   |    \
     _/       :::::::::::::/__________/   |   |      ヽ
 , -‐´ /       ::::::::::::::/                  /   /        ヽ
(,    /       :::::::::::::/                   /  /         |\
 ` ‐- _______ /____________/_________)  )
\___________________________________
0554名前は開発中のものです。02/01/20 16:59ID:???
なんかPS2とC++しか世の中に存在しないと思ってる人がおられるようで
・・・。
0555名前は開発中のものです。02/01/20 17:02ID:???
>>554
XBOX, GC, PC もあるけど。っつか実際に C++ だと困るプラットホームがあるなら、実例挙げて反論して
おけばいいじゃない。

iアプリは Java だし、メモリ厳しいからバリバリに OO ってわけには行かないのかも知れんが、俺はその
辺は知らないのでパス。
0556名前は開発中のものです。02/01/20 17:04ID:???
煽りなのかマジなのか判らん・・・。
マジレスすると、世の中にはgcc以外しか使えないゲーム開発環境が
一杯あるし、また、C++以外のOOPLも一杯有る。
さらにOOPLでないとオブジェクト指向が出来ないかのように
書いてる(ネタ?)けどもちろん違う。基礎の基礎だな。
そんな基本的な知識も無くOOを語ってるのはなんなんだろうか・・・。
ネタとしては面白くないし、天然だったら痛すぎるし・・・。
0557名前は開発中のものです。02/01/20 17:07ID:???
>>556
> OOPLでないとオブジェクト指向が出来ないかのように書いてる(ネタ?)けどもちろん違う。
不可能ではないが、現実的にはメリットが無い、で結論でしょ。

インターフェースを多重継承したときに、手作業で this ポインタ相当のデータのオフセットを
計算したりするのは現実的には無理だって。(そんな汚れ仕事はコンパイラにやらせておけ
ば良い)
0558名前は開発中のものです。02/01/20 17:09ID:???
ps2 gc x-box どれもCを使う理由ない思われ。
i-mode?そんなの知らん。新人研修の餌には丁度いいかもね。
0559名前は開発中のものです。02/01/20 17:10ID:???
> また、C++以外のOOPLも一杯有る。
ゲームプログラミングに限定すると、実際に使える言語は限られると思う。SmallTalk とか Eiffel
でゲームを書ける環境って、そうそうないと思うぞ。
0560名前は開発中のものです。02/01/20 17:18ID:???
>>558
あとは携帯ゲーム機かねぇ。俺は関わったことないから知らないど。

(スペックだけ見るに、初代ゲームボーイあたりだと辛そうだということは想像がつく)
0561名前は開発中のものです。02/01/20 17:23ID:???
お疲れ様です、豊島です。
その後、多少の差し替えが発生いたしましたので
ご連絡さしあげます。

--- cut here ---
dfjdsjfjsdjodsfjpodsjfosjdopjopsfjgosjogprloijfdopgpo
uigdfsgdfhjewudsglkrsisroigthlfglgjklfgfjgkrlhrjkrgdf
ihsifghdifdfhwpwer64i4lvfkfsl;mfldwormldsg:e[rpri03df
sdgf]erlkelkrekgf@gf[:adfnkei458932743kj;lgf;f^fg04kd
ksdfhrriouhtriuiufdifir9r094oka:fglkjflkjasgpoijhjrtg
oirihigfohfoigitfofpofggklreht4340afdkojfj040-ikgflkj
dfoehrkekhfg9404-dflmlgf90gufnoihfkngiohoidioroijt000
0000000000000000000000000000000000000000000000000000e
--- cut end ---
となりました。添付にしたかったのですが、サイズが小さかったという
ことでご勘弁 (^^;

とりえあず、初期化変数のクリアタイミングを若干調整しました。
以上の件、よろしくお願いいたします。
0562名前は開発中のものです。02/01/20 17:28ID:???
>(スペックだけ見るに、初代ゲームボーイあたりだと辛そうだということは想像がつく)
初代ゲームボーイをアセンブラで開発しているメーカは
皆無で今はC言語が主流。
アクションなどが主流なPS2とは違って、データベースアクセスが
頻繁なRPG,SLGなどのジャンルが多いゲームボーイの方がむしろ
OOPの必要性が叫ばれているが、C++の気配は流石にないままGBAへ
世代交代。

もっともC言語でやれなくもないんだけどね。規模的には
0563 02/01/20 21:23ID:???
>初代ゲームボーイをアセンブラで開発しているメーカは
>皆無で今はC言語が主流。

出鱈目だな。
0564名前は開発中のものです。02/01/20 21:24ID:???
なんか新米PGか同人ヲタが粋がって、電波知識を披露してるみたい・・・。
0565名前は開発中のものです。02/01/20 21:30ID:???
>>563-564
実例を挙げろとは言わんが、も少し具体的に書きなよ。
0566名前は開発中のものです。02/01/20 21:40ID:???
>なんか新米PGか同人ヲタが粋がって、電波知識を披露してるみたい・・・。
あれ、君はGB未経験?
↓ここにフリーなGBDKの日本語ページがあるよ。
http://www.geocities.co.jp/Playtown/2004/gbdk_j.htm
GameBoy用のCコンパイラの原作者は、当時、高校生。
GNU-Cベースではないので、完全にANSI-C準拠というわけでは
ないけど、有志の手によって、int型が32Bitになるパッチや
floatが扱えるものも出ている。公認のSDKではないのだけど
任天堂は黙認。ROMアクセスもバンク自動切り替えで、64kb問題を
意識しなくても使えるパッチも後に登場。

これとは別に任天堂公認のCコンパイラもミドルウェアメーカから
発売されています。メーカ名、その他詳しいことは守秘義務のため
言えませんが、C++も発売するというアナウンスも2年ほど前に
一度出ていました。
0567名前は開発中のものです。02/01/20 21:47ID:???
>>566
だからどうした?
0568名前は開発中のものです。02/01/20 21:48ID:???
ああ、そうか、
アセンブラ→C→C++と
「発展」的に進化するもんだと思いこんでるのか・・・。
違う?
0569名前は開発中のものです。02/01/20 21:50ID:5pJrXY6Q
進歩的史観そのものだな・・・。
救い難い・・・。
057056602/01/20 21:54ID:???
GBでC言語開発して、既に5年の月日が流れましたが、
感想としては、規模が小さいだけに、高級言語の恩恵をモロに受けることができました。
int型が32bitになり、またポインタアクセスも64kbの壁がなくなると
本当に汎用コンピュータになります >>GB
もちろん、8bitマシンで32Bit演算をやらせると当然、重くなるわけ
ですが、10倍遅くなる程度。市場がRPG、SLGだったこともあり、
求められる演算量が電卓レベルで済んだこともあり、処理は常に余ってました。

願わくばC++の登場に期待していたところですが・・・
0571 02/01/20 21:54ID:5pJrXY6Q
>>545
事実は全然逆だ。
むしろ只のCプログラムソースに「.cpp」なんて拡張子付けて
ハッタリかましてるアフォを俺の周りだけでも二人みたぞw
0572 02/01/20 21:59ID:5pJrXY6Q
んー本当かねー。
ラインスクロールやXXXXをやろうとするとCじゃおっつかないんだが
・・・。
GBのCは知らないけどバンク制限を完全に解決できるとは思えない
んだが?
0573 02/01/20 22:03ID:5pJrXY6Q
>>570
変な話だね。
GBの問題はバンクであって演算ワード長ではないんだが?
0574 02/01/20 22:07ID:5pJrXY6Q
>求められる演算量が電卓レベル

すげー変だ・・・CPUは負荷のメインは演算なのか・・・。
0575名前は開発中のものです。02/01/20 22:30ID:???
>>571
類が友を…

っつーのは単なる煽りだが、現実にどのぐらい「周囲」の話を知ってる? 俺は視界が
狭いから、他の企業の様子なんかはサッパリなんだが。
0576名前は開発中のものです。02/01/20 22:54ID:???
>>572-574
ここ、任意 ID だから自作自演するなら sage た方が良いぞ。

自作自演する気がなければ、とりあえず考えまとめてから一気に書いてくれ。
0577名前は開発中のものです。02/01/20 23:04ID:???
>GBの問題はバンクであって演算ワード長ではないんだが?
大昔にGBいじってたオヤジか?
C言語時代になってからGBの開発環境は様変わりしたのよ。
ポインタも演算ワード長も32Bit。
バンク切り替えもCコンパイラが面倒見てくれる時代に。
Cソースレベルではリニアなアドレスがある。

カートリッジがMBC4移行の話だけどね。
0578 02/01/20 23:09ID:???
>>577
今やってる奴だアフォ。


0579 02/01/20 23:12ID:???
異バンク呼んだ時のオーバーヘッドの問題にきまってるだろ。
ジャンルによらず、GBでC使おうとするのは、いいかげんな
仕事しかしてない奴だと思うよ。
0580名前は開発中のものです。02/01/20 23:33ID:???
>異バンク呼んだ時のオーバーヘッドの問題にきまってるだろ。
本当に現役な人?
H-Blank中にVDC参照バンクを切り替えて、パターンテーブルを
増やしているMBC2以降のメカニズムは知ってるよね?
異バンク切り替えのコストが高かったのはMBC1のみだよ。
0581 02/01/20 23:37ID:???
プログラムバンクじゃボケ!
なんつうか。すげー才能のないPGか、妄想ヲタだな。
0582アセンブラオヤジ02/01/20 23:44ID:???
>ジャンルによらず、GBでC使おうとするのは、いいかげんな
>仕事しかしてない奴だと思うよ。
孟宗大学生、はやく寝ろ。
0583名前は開発中のものです。02/01/20 23:53ID:???
>プログラムバンクじゃボケ!
バンクにデータもプログラムもないよ。
切り替えが重荷にならないし、仮に重かったとしても
C言語による記述が原因じゃないし。(アセンブラでバンク切り替えても一緒)

0584アセンブラオヤジ02/01/21 00:10ID:???
>ジャンルによらず、GBでC使おうとするのは、いいかげんな
>仕事しかしてない奴だと思うよ。
漏れの推測分析によれば、こいつは厨房ではなくただの真正オヤジだと思う。
長年、マジでasmで開発してて、566がGBDKのページを紹介。
もう何年も前にフリーなCコンパイラの存在を知って、己のアンテナの低さに
面食らって愕然としたと見たね。
プログラムのバンク切り替えが遅いだの、言語非依存の欠点を指摘するあたり
自己矛盾自爆がその慌てぶりを露呈する結果に・・・あわれ、オヤジ。

って、折れもオヤジやんけ!漠
0585名前は開発中のものです。02/01/21 00:54ID:???
あのー、そのフリーコンパイラの遥か以前からGB用のCコンパイラ出ているんですが
・・・
0586逸見厨02/01/21 01:35ID:???
                           ヘ ヘ
                          ミ.".ミ
                          ι ~ι )〜
┌────────────────────┐
│                                        │
│OOと関係ない話題はやめまちょうよ。         │
└────────────────────┘
058702/01/21 01:55ID:???
スゲーな、、漏れコンパイラなんか使ったことないよ。でもGBってアセンブラ
レベルで制御しなきゃいけない部分が多いからCで書いてもコード量は
ちょっとしか減らなさそう。でもコンパイラって言うからには最適化とか
がんばってくれてイイかも。まぁもうGBの仕事なんかしねーからどうでも
いいけど、、。けど、GBにはなんか愛着あるのな。

http://game.2ch.net/test/read.cgi/gamedev/1005161570/
05882時02/01/21 02:02ID:???
C++はOO取り入れるのに最高の言語だとは思う。
けどCGBでC++はやりたくないな。
05892時02/01/21 02:31ID:???
このまえCGB開発したんですCGB。
そしたらPGが一杯いて入れないんです。
良く見たら張り紙がしてあって「CGB用フリーコンパイラ」とか
書いてあるんです。もう、アホかと。馬鹿かと。
お前らな、Cコンパイラごときで普段開発してないGBに来てどーするん
だよ。ゲームボーイだよゲームボーイ。
なんか家族連れで来てるのも居るし、親子四人でGB開発か。おめでてーな。
「よーし、お父さんリニアアドレスしちゃうぞ」とか
言ってんの、もうみてられない。
おまえらな、俺のドリキャスの仕事振ってやるからその席空けろと。
GB開発ってのはもっと殺伐としているべきなんだよ。
無理に高速化し、無いRAMに詰めこんだ設計がいつ破綻しても
おかしくない、そんな雰囲気がいいんじゃね−か。
素人はすっこんでろ。

やっと席が開いたと思ったら隣の席の奴が、んじゃオブジェクト指向で組みたい
とか言ってるんです。そこでまたぶち切れですよ。
あのな、オブジェクト指向なんてきょうび流行んねーんだよ。ボケが。
得意げな顔して何が、んじゃオブジェクト指向、だ。
お前は本当にOOPLでプログラム組みたいのかと問いたい。問い詰めたい。小1時間問い詰めたい。
お前、オブジェクト指向にはメタ構造が含まれてないんじゃないかと。

GB通の俺から言わせてもらえば今、GB通の間での最新流行はラインパレット、これだね。
本来4色しか表示できないのを制限付きで多色表示。これが通のGBの作り方。
ラインパレットっての色が多めに入ってる。そん代わりマージン少な目。これ。
で、渋いカラー画面。これ最強。

しかしこれは処理が間に合わないと、どうにも対処出来ないという危険も伴う、諸刃の剣。
素人にはお薦め出来ない。
まあお前、584は、Cで4色アプリでもつくってなさいってことだ。
0590名前は開発中のものです。02/01/21 02:45ID:???
>>589
一行目だけ、読んだ。
■ このスレッドは過去ログ倉庫に格納されています