ゲームにおけるデータ構造・クラス設計・パターン
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2006/08/10(木) 20:27:06ID:BnvyxuCBどのようにクラス設計をすればよいか、
継承・委譲関係はどのようにすればよいか、
使えそうなパターンは何かなど語るのもよし。
自作ゲームの内容とクラス図を書いて
改善案を聞くもよし。
設計に関して困ったことを質問するもよし。
関数の具体的な実装内容やゲーム内容に関しては他スレに譲る。
大いに語れ。
0173名前は開発中のものです。
2006/11/18(土) 19:28:39ID:GUEcKJwf0174名前は開発中のものです。
2006/11/19(日) 04:21:52ID:qRasGZX0昨今のPCゲーム開発であればスケーラビリティは必須では?
なんせ環境が数倍以上違うことだってあるからね。
0175名前は開発中のものです。
2006/11/19(日) 06:35:18ID:2miANHZG領域が決めうちでも決めうちでなくても発生する問題。
> スケーラビリティ
MMOなんだから、クライアントの更新でスケーラビリティを代替すればいい。
逆にPCの優劣で、プレイヤー間に格差が出るほうが問題と言えば問題。
0176名前は開発中のものです。
2006/11/19(日) 09:18:23ID:GnePFvEb0177名前は開発中のものです。
2006/11/19(日) 10:07:08ID:P05vv5BZだろうな。
0178名前は開発中のものです。
2006/11/19(日) 15:53:33ID:3G1y/i2Kだから、それを採用してもその問題が残るんだろ?
この問題の本質はそこだろ。どうやってデータへのアクセスを共有させんだ?
0179名前は開発中のものです。
2006/11/19(日) 16:36:03ID:2miANHZGさっさとゲーム上の具体的なシーンについて見積もりを建てなさい。
領域なんて初期化時に必要な領域全部取ってしまえば問題無い。
0180名前は開発中のものです。
2006/11/19(日) 16:54:45ID:3G1y/i2K件のサイトってMMORPG作ってるわけで、
MMORPG開発を前提にした問題を出してるんだがなあ。
シーンなんて簡単なもんじゃ見積もれないって。
0181名前は開発中のものです。
2006/11/19(日) 17:17:03ID:2miANHZG0182名前は開発中のものです。
2006/11/19(日) 20:33:12ID:GnePFvEbあきれた
0183名前は開発中のものです。
2006/11/20(月) 01:22:30ID:SHLy4x4vURL貼った上で「件のサイト」を持ち出すのは、
あまり良くないと思うのだが…
0184名前は開発中のものです。
2007/01/14(日) 05:03:57ID:gu/ia/060185名前は開発中のものです。
2007/01/19(金) 02:34:32ID:RsBU2cJ/昔すべてのシーンはスタックのみで再現可能と思ってた時が俺にも有りました。
実際大半はOKだけど、相互に行き来できるような仕組みを作りたい場合
別の方法をとらないといけないし、平行して動かす場合や
一部をストップさせたいときはいっそシーンクラスじゃなく
スレッドで動くクラスの方が良いと思えてきました。
まだ研究中。
0186名前は開発中のものです。
2007/01/19(金) 13:33:30ID:GdZe8cga0187名前は開発中のものです。
2007/01/19(金) 14:48:25ID:RsBU2cJ/なるほど。
0188名前は開発中のものです。
2007/01/27(土) 00:03:58ID:Mwc3VMrB皆様のお知恵をお借りしたい。
効果音、BGM、描画エンジンなどの管理オブジェクト(コンテキストっていうのか?)をどうやって、
キャラクターなどから参照させるかということについてです。
キャラのオブジェクト生成時に、必要なものだけ渡してやるのがベストなんでしょうか?
今は、全部持ったGameクラスっつーのを作って、そのインスタンスのローカル変数一個を
どこからでも参照できるようにして、
各キャラクターから参照できるようにしているんだが、
今の流行的に、ローカル変数がイヤンなので、
なんとかしてやりたいのです。
ABAさんのソースとか見ると、生成時に引数で渡しているんだけど、
うちのDelphiだと、各ユニット間の循環参照問題を回避できなくて真似できないんだよね・・・。
0189名前は開発中のものです。
2007/01/27(土) 00:27:08ID:GLW5syD3その方法がまあ無理なくやれると思う。
グローバル変数がどうしても嫌なら
インターフェイス宣言を使えば、循環参照は回避できるよ。
0190名前は開発中のものです。
2007/01/27(土) 00:46:55ID:Mwc3VMrBインターフェースか、Delphiのインターフェースって普通じゃないからなあ。
過去レスに出てた↓こちらのCtxってのが参考になるかもしれんけど。
或曰: お仕事
http://www.issei.org/blog/archives/000225.html
0191名前は開発中のものです。
2007/01/27(土) 01:29:23ID:lX9/hWghそのインスタンスの性質そのものなんだからバリバリ依存してていい
描画デバイスはそれ自体のステートがあるんで外からもらう必要があるだろうけど
別にグローバル変数で問題ないでしょう?
まあ描画するときにだけ引数でもらうように改変するのを無理して止める気はないけど
>http://www.issei.org/blog/archives/000225.html
おもしろいなーfacade+visitorかぁ
0192名前は開発中のものです。
2007/01/27(土) 05:01:28ID:Cu/waNhiCSoundManager::GetInstance().Play( FX_HOGE );
こんなんでよいのでは
0193名前は開発中のものです。
2007/01/27(土) 14:40:32ID:lX9/hWgh何か違和感があったので、寝ながら考えたんだけど
こいつの問題はゲームエンティティのクラスとctxのインターフェイスが1対1になってるとこかな。
まったく同じ汎用的なインターフェイスを複数のエンティティへ公開したいとしても
いちいち別の実装とインターフェイスを設けなくてはならなくなる。
意味のない制約を守るために重複コードができてしまう。
0194名前は開発中のものです。
2007/01/27(土) 15:41:16ID:lX9/hWghctxの実装は全部の名前に_ctxつけたインターフェイスを全部同時に多重継承するんだろか?
ctxにmixinするインタフェイスはゲームエンティティのクラス群の構造に依存しないで
区分けそのものに対する名前をつけてやる方がきれい、というか合理的に思う。
例えばとにかく弾をつくるインタフェイスを公開するctxインターフェイスならICtxShootとか。
0195issei
2007/01/27(土) 22:48:39ID:+PYaC1IQ> まったく同じ汎用的なインターフェイスを複数のエンティティへ公開したいとしても
> いちいち別の実装とインターフェイスを設けなくてはならなくなる。
そうですね。
ただ、純粋仮想関数のプロトタイプが同じなら実装は一つで済むから、ヘッダ
ファイルをメンテするのが多少面倒って程度です。
struct ICtxEnemy { virtual void createShot() = 0; };
struct ICtxField { virtual void createShot() = 0; };
class Manager : public ICtxEnemy, public ICtxField { virtual void createShot(); };
// これで実装は両方に提供できる
このスキーム使って仕事で RPG のリアルタイム戦闘を作ってたんだけど、面倒で
手に負えないって状況には至らなかった。むしろインターフェースごとに公開する
関数が限定されていたから、仕様変更時にチェックが短期間で済んだ感じ。細かい
数字を残してないから、具体的に何パーセント改善とは言えないけどさ。
汎用的なインターフェースをどうするかってのは悩みどころだけど、やりたければ
sturct ICtxEnemy { virtual ICtxCommon& getCommonCtx() = 0; };
とかかなぁ。私は汎用インターフェースは結局作らずシングルトンで済ませちゃった
けど。
0196名前は開発中のものです。
2007/01/27(土) 22:53:18ID:FT2+QYPW個別にオブジェクトのアドレスを渡した場合、パラメータの個数が膨大になるのと、
きれいにまとめないとかなり手間がかかるね。
シングルトンで実装して、グローバルアクセスがよいのではとおもう。
0197名前は開発中のものです。
2007/01/28(日) 01:11:39ID:aVNVY6/P>// これで実装は両方に提供できる
確かにそうだね。書いてみてから気がついた。
具体的に書くコードの量とかの増減をあげつらう批判をしたいわけじゃないだホントは
また寝ながら考えたんだけど、要はこれはエンティティクラスの主要なメソッドを使うには
このctxインターフェイスを実装しているオブジェクトをなんとかして用意してください。
というエンティティクラスからの表明が主題で、managerが全部を継承して実装するというのは、
たまたま今回採用されたやりかたに過ぎない、別にどうでもいい部分なんだね。
エンティティクラスが継承ツリーをつくるようなときは最上位のクラスのctxに
下位層のクラスが使おうとする純粋仮想関数も書き加えてかなきゃいかんね。
つまり最上位のオブジェクトを以って、主要メソッドを実行しても、
その下位の継承したクラスの機能追加されたものが呼ばれる可能性があるわけなので。
なんで俺が日記の作者も言ってない手法の使い方をまとめてんだ…
ぜんぜん関係ないけどcontextってのはあんまり実態にそぐわない名前だと思うなぁ。分かるけど。
relianceとかdependencyとかのがいいような気がする。
0198issei
2007/01/28(日) 01:38:40ID:ViuHLna9> >>issei(誰?w)
日記の人です。
> また寝ながら考えたんだけど、要はこれはエンティティクラスの主要なメソッドを使うには
> このctxインターフェイスを実装しているオブジェクトをなんとかして用意してください。
そうそう。
本当のマネージャとは別に、エンティティの単体テスト用とかデバッグ用に ICtx***
インターフェースを実装した別のマネージャーも作ってました。
確か別のプログラマがエフェクト用の対話型エディタを作ってたんだけど、そこで
デザイナからキャラクタにエフェクト乗せて見たいとリクエストがあって、エフェクト
エディタにキャラクタ用のコンテクスト実装してたんじゃなかったかな。もちろん、
大半の仮想関数はダミー(ヒット判定なんかの関数は、常にヒットしないと返す
だけ)だけど。
0199名前は開発中のものです。
2007/01/28(日) 19:27:03ID:aVNVY6/Pようは移植用区画、エンティティクラス、実装を委譲したい関数群、
それぞれをシステム内で1対1対1。ひとまとめにしたいわけだ。それはわかる。
だが無駄に暗黙的な命名の制約を持ち込むvisitorインターフェイスには反対。
contextというが、それらが文脈として差異を持たされるのは結局はプロジェクト全体で複数作られる
実行単位ごとなわけだ。それに対してvisitor風に関数レベルで型への依存を表明するのは
適当だとは思えない。何がどのレベルで変わるのかがきちんと示せてるのがいいコードっすよね。
ついでに実装をまとめるだけが目的の節操のないmixinも反対だ。
俺はこうする。
class Player
{
public:
void exec() { CreateShoot(); }
void Method0();
private:
static void CreateShoot(); // どこか他のコンパイル単位で定義してやる
};
どこか他のシステムへもっていってもstatic関数を定義した.cppの方だけ取り替えれば移植が完了する。
0200名前は開発中のものです。
2007/01/31(水) 00:35:16ID:NKCnpIjThttp://pc10.2ch.net/test/read.cgi/tech/1168356029/113-132
から誘導されてきました。
・こんな構造の名前はなにがいいですか?
・タスクっぽいですねー
・擬似マルチタスクっぽいかも?
・スタック使え!
・え?スタック?
・segregated storage使え。
・boostのpool?
まあ、そんな感じで、ゲーム向けのデータ構造をどうするかって話になりました。
0201名前は開発中のものです。
2007/01/31(水) 00:44:13ID:YqKTmdjS答えでてんじゃん。
ここで何が聞きたいの?
0202名前は開発中のものです。
2007/01/31(水) 00:49:48ID:jNUdiQRe削除と同時に最後尾のデータをコピーしちまえ。
0203名前は開発中のものです。
2007/01/31(水) 01:00:05ID:8/b3tbHYそのアルゴリズムのどこが高速なのか本当に分からない。
フラグを立てて何に使うの?
0204名前は開発中のものです。
2007/01/31(水) 01:08:05ID:kxHbC4YN本当にこっちに来る事もないだろww
0205名前は開発中のものです。
2007/01/31(水) 01:09:38ID:8/b3tbHYtemplate<typename T,int N>
class FixedAllocator
{
union Block
{
T Data;
Block* pNext;
};
Block* m_pGarbage;
Block m_Pool[N];
public:
FixedAllocator()
{
m_pGarbage = &m_Pool[0];
for( int i = 0; i < N-1; i++ )
m_Pool[i]->pNext = &m_Pool[i+1];
m_Pool[N-1]->pNext = NULL;
}
T* Alloc()
{
Block* pRet = m_pGarbage;
m_pGarbage = m_pGarbage->pNext;
return &m_pGarbage->Data;
}
void Free( void* p )
{
static_cast<Block*>(p)->pNext = m_pGarbage;
m_pGarbage = static_cast<Block*>(p);
}
};
0206名前は開発中のものです。
2007/01/31(水) 01:10:11ID:94hlWcQwフラグ管理より双方向リストでつないどくのが良いと思うけどな。
struct PoolNode
{
struct PoolNode* pn_next;
struct PoolNode* pn_prev;
char pn_padding[8]; //必要なら
char pn_buf[PN_BUFSIZE];
};
static PoolNode nodes[NODENUM];
// 未使用ノードは、こっちにつなぐ
static PoolNode* free_first = &nodes[0];
// 使用中ノードは、こっちにつなぐ
static PoolNode* inuse_first = 0;
現実には、俺なら自前で書かずに STLport の node allocator にお任せして、
STLコンテナ使っちゃうか、boost::pool だけと。
0207名前は開発中のものです。
2007/01/31(水) 01:13:52ID:NKCnpIjT>>206とか、見るとわかりやすいですね。
配列でデータは持つんだけど、使用中ノードは、連結リスト風につないでおくっと。
未使用ノードも同じようにもつ。
これだけで、済む話かー。
0208名前は開発中のものです。
2007/01/31(水) 01:14:36ID:YqKTmdjSそれが segregated storage だろ。
0209名前は開発中のものです。
2007/01/31(水) 01:15:32ID:8/b3tbHYそう言うのか
0210名前は開発中のものです。
2007/01/31(水) 01:17:52ID:kxHbC4YN>>200が考案した以外のクラスなんて興味ないんだろw
だって、>>200より優れたクラスなんて存在しないんだからwww
つ 【ステフ18クラス】
つ 【次世代コミュクラス】
つ 【バキュンバキュンクラス】
この板ならではのクラス名を授けるから好きなの選べ
0211名前は開発中のものです。
2007/01/31(水) 01:18:10ID:8/b3tbHYboost、まだ知らん機能多すぎる…orz
0212名前は開発中のものです。
2007/01/31(水) 01:22:57ID:94hlWcQw普段お世話になってるのは、stdafx.h 見るとこんな感じ。
#include <boost/array.hpp>
#include <boost/bind.hpp>
#include <boost/call_traits.hpp>
#include <boost/crc.hpp>
#include <boost/cstdint.hpp>
#include <boost/function.hpp>
#include <boost/format.hpp>
#include <boost/intrusive_ptr.hpp>
#include <boost/lambda/lambda.hpp>
#include <boost/lambda/bind.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/noncopyable.hpp>
#include <boost/ref.hpp>
#include <boost/scoped_ptr.hpp>
#include <boost/scoped_array.hpp>
#include <boost/static_assert.hpp>
0213名前は開発中のものです。
2007/01/31(水) 01:24:55ID:NKCnpIjT変数名つけろスレから着たけど、
いまや、クラス名だけでないです。
>>210さんが、私のデータ構造を最高!マンセー!他はクズ!>>200様に一生従います!
と言ってくださるのは、うれしいのですが、
他に、どんな効率のよい、データ構造があるかというのを知りたいのです。
Delphiには、boostねーよー。うらやましい。
0215名前は開発中のものです。
2007/01/31(水) 01:26:40ID:94hlWcQw効率はデータの使い方に依存する。で、何に使おうと思ってるの?
0216名前は開発中のものです。
2007/01/31(水) 01:46:00ID:94hlWcQwまずは(データ構造を処理するアルゴリズムとセットで)
・Cプログラマのためのアルゴリズムとデータ構造
・珠玉のプログラミング
・プログラム設計の着想
・プログラミング作法
あたりの書籍を読むのがお薦めだが。
0217名前は開発中のものです。
2007/01/31(水) 02:00:35ID:kxHbC4YNいや、普通に皮肉だから、無理にレスしなくていいよ。
0218名前は開発中のものです。
2007/01/31(水) 02:31:13ID:sTyDsN4F0219名前は開発中のものです。
2007/01/31(水) 15:38:04ID:CxDF9OMMパーティクルや弾幕のように、
追加、削除の頻度が高い場合に使える構造はないかと探していました。
>>216
勉強したいだけ、というわけではないのですが、
参考になります。
0220名前は開発中のものです。
2007/01/31(水) 19:22:58ID:WbpDldoh頂点バッファは1つあれば十分だし。
0221名前は開発中のものです。
2007/01/31(水) 20:28:29ID:94hlWcQwパーティクルは出現数の上限を決めて、それを超えたら適当に消すのが常套手段。
多少消えても人間は気づかんから。
メモリ管理自体は PS2 以降のハードなら大した工夫は要らなくて、pool なり STLport の
node allocator なりで十分な性能が出る。それよりベクトル演算効率化することを考えとけ。
0222名前は開発中のものです。
2007/01/31(水) 22:47:38ID:YNrC6zK6おまいの賢さは分かったが数個前のレスくらい読んでやれ
0223名前は開発中のものです。
2007/01/31(水) 23:00:17ID:94hlWcQw同時に発射しうる最大数を確保して超えないことを保証するのと、適当な数を
確保しておいて越えたときに消しちゃえってのは、一見似てるけど使いどころが
違う。
一般にヒット判定があれば前者、単なる見た目だけなら後者。ヒット判定がある
ものを適当に消すと致命的なバグになったり、予期せぬ挙動をすることがある
ので。
0224219
2007/01/31(水) 23:25:03ID:NKCnpIjT描画の方が圧倒的に遅すぎるというプロファイル結果が出たりしたので、
そんなに神経質になる必要はないんですけどね orz
(動作環境は、PCです)
新しいプロジェクトで、
パーティクル一杯出したいから、それぐらいは、pool化したいなって思ったんです。
0225名前は開発中のものです。
2007/03/21(水) 22:27:58ID:/cwA8n13シミュレータの場合、速度最優先で描画をしない状況もあるから、
それが免罪符にならない場合もあるんだよね
0226名前は開発中のものです。
2007/03/23(金) 13:48:25ID:vxAgs8Dc0227名前は開発中のものです。
2007/03/26(月) 06:10:31ID:mFbF2Qb2キャラクターの構造体は何で取ってる?
今じゃ普通にダブルでとっても問題ないよな。
むしろ、その方が微調節がしやすくって良いよね。
俺は貧乏癖がついててイントでとって微調節がやり辛くなって、
結局後で困ったりしてるんだよね。
皆は何で取ってる?
0228名前は開発中のものです。
2007/03/26(月) 06:11:56ID:mFbF2Qb20229名前は開発中のものです。
2007/03/26(月) 08:35:24ID:I1HKFzJn次の話題どうぞ
0230名前は開発中のものです。
2007/03/26(月) 12:51:40ID:74T0tUus具体的にはイコールで判定とかやっちゃだめだぞ
0231名前は開発中のものです。
2007/03/26(月) 18:43:03ID:/edWn9Q+自分で固定小数点数作るのが楽ちんだろ
浮動小数点数の等号問題も出ないし
0232名前は開発中のものです。
2007/03/26(月) 19:09:19ID:I1HKFzJn「本当はセーフだったのに、桁落ちしたせいで等号が成立して
敵に当たったことになって死にました」みたいな状況は
あるだろうけど、まず気づかないと思うし。
そのあたりを完璧にしたいのであれば、丸め誤差も考慮に入れて
10進固定小数点数クラスを作らなければならないだろうけど、
そこまでしたくないというのが正直なところ。
0233名前は開発中のものです。
2007/03/26(月) 19:20:52ID:/edWn9Q+そんなクラス作らなくてもいいんじゃね?
16ビットシフトするだけでゲームの精度的には十分かと。
0234名前は開発中のものです。
2007/03/26(月) 21:35:29ID:/T0E1d660235名前は開発中のものです。
2007/03/26(月) 22:10:26ID:xV5pAsSlなんか勘違いしてるけど、固定小数点数にするのに10進は関係ないぞ。
0236名前は開発中のものです。
2007/03/26(月) 22:13:45ID:I1HKFzJn10進って言ったのは、丸め誤差を考慮しての話なんだけど。
桁落ちとは関係ない。
0237名前は開発中のものです。
2007/03/27(火) 01:42:55ID:0naF3MYn0238その1
2007/03/27(火) 06:12:21ID:6cy45QrY・整数か小数か -> 断然小数
・小数の表現方法
-> 浮動小数点数 or 固定小数点数
-> 2進表現 or 10進表現
・浮動小数点数
○ 基本型であるので扱いが楽
× 演算速度が遅い
△ 非常に近い値同士を比較したときに桁落ちが発生する
(桁落ちが発生したところで別段問題がない場合も多々ある)
・固定小数点数(クラス実装)
○ 比較による桁落ちが発生しない
○ 実態は整数型なので演算速度が早い
-> × 汎用性の高い実装(シフト数の異なる固定小数点数同士でも演算を
可能にするなど)を行うと、結局浮動小数点数以下の演算速度に
× 固定小数点数オブジェクトの生成が頻繁であると遅くなる
(特にオペレータ・オーバーロードに注意)
△ 小数点以下の精度(桁数)が固定
(ただし、精度が足りなくて困ることはまず無いと思われる)
0239その2
2007/03/27(火) 06:13:22ID:6cy45QrY○ 基本型は2進表現なので扱いが楽
× 10進表現で有限小数となるが2進表現で循環小数になるような値の場合、
表現できない桁が切り捨てられるなどして丸め誤差が発生する
・10進表現
○ 循環小数に対する丸め誤差が起きない
-> × 一般によく使われるであろう加算減算処理では問題ないが、
除算を行うなどすると何進数であろうが丸め誤差は発生する
XX 基本型とは程遠い別次元の演算手法が要求される
(2進表現で循環小数となるような値を基本型で記述した時点でアウト)
× 同じバイト数で表現できる値の範囲が2進表現より狭い
勝手にまとめっぽい形式で書いてみた。
固定小数点数に関してはクラスとして実装した場合を想定した。
個人的に、固定小数点数を素のintで表現して、その都度シフト変換を行うような手法は、
変換方法に依存した関数/クラスを大量発生させるので論外だと思う。
0240名前は開発中のものです。
2007/03/27(火) 06:39:01ID:AmaYqa2T俺はてっきりintを10^nで割って使う話だと思ってた。
0241名前は開発中のものです。
2007/03/27(火) 06:42:53ID:6cy45QrY試しに固定小数点数クラスを作ってみたけどあんまし早くならなかった。
っていうかコンパイラによって速度が大きく変わりそうな予感。
10進表現での計算は、誤差が出たら切腹必至の
銀行システムとかでのみ使うものだと思っている。
言語的にサポートされていれば話は別だけど。
以上長文&駄レスすまん。
0242名前は開発中のものです。
2007/03/27(火) 06:45:51ID:6cy45QrY俺は流れ的にBCDのことだと思ったが…。違ってたらすまん。
0243名前は開発中のものです。
2007/03/27(火) 10:06:48ID:KORunXqt今は、さすがに、浮動小数だわ
問題は、環境によっては、リプレイでずれるとかその辺
(D3DXの最適化とか最適化とか最適化とか)
0244名前は開発中のものです。
2007/03/27(火) 12:34:52ID:WDGoOIYE表せないのに無理しているのが浮動小数点
あらわせないのなら扱わない、問題が出ないようにするのが固定小数点
0.1を10回たしたら1になるとか思ってるような人は固定小数点つかっとけと
0245名前は開発中のものです。
2007/03/27(火) 14:36:14ID:DOw2VNK30246名前は開発中のものです。
2007/03/27(火) 19:55:06ID:OAIOW3b50247名前は開発中のものです。
2007/03/27(火) 20:06:13ID:6cy45QrY皆は(無限)多倍長精度整数を使ってたりする?
0248名前は開発中のものです。
2007/03/28(水) 00:55:28ID:3c8pkg+a固定小数点数使ってたら、上の桁が足りなくて、
仕方なしに64ビット整数を使っちゃったことはある
0249名前は開発中のものです。
2007/03/28(水) 05:12:49ID:cMkZ8VMHそういうのは学術用だと思うよ。
ゲームなら実際問題そんないらんっしょ。
0250名前は開発中のものです。
2007/03/28(水) 05:53:37ID:vQ7wya7A32bit符号なし整数では40億程度しか表せないし。
恐ろしい桁数の得点をガンガン加算させて、
かつ一の位までキッチリ使っちゃうような
血も涙もない鬼の方御用達です。
0251名前は開発中のものです。
2007/03/28(水) 07:59:56ID:cMkZ8VMHlong longより上だと3倍長で7.9x10の28乗とかになるけど……要るか?
0252名前は開発中のものです。
2007/03/28(水) 11:11:39ID:xf4mLohJんなーこたーない。
経営シミュレーションで多倍長な変数を使うことはあるよ。
キャッシュとか資産とかの額で。
まさか、浮動小数点使うわけにはいかんし。
0253名前は開発中のものです。
2007/03/28(水) 12:08:50ID:hyD2GS3G0254名前は開発中のものです。
2007/03/28(水) 12:54:06ID:HnZM11tFとんでもない額が変動するから、下の方の桁にあまり意味はない。
0255名前は開発中のものです。
2007/03/28(水) 15:10:12ID:+k+f3/yDまあ、毎年訳分からん団体に1兆寄付してるおっさんだからな。
寄付してるのは妻の方だけ?
0256名前は開発中のものです。
2007/03/28(水) 16:57:57ID:erfbPR6U0257名前は開発中のものです。
2007/03/30(金) 00:16:52ID:xOzIjQQy日付なのに、不動小数
0258名前は開発中のものです。
2007/03/30(金) 01:10:16ID:/yTpVVer0259名前は開発中のものです。
2007/03/30(金) 03:52:48ID:HXn7HlKm0260名前は開発中のものです。
2007/04/01(日) 02:13:01ID:aK7v4JwN「シーンはスタックに積む」って話をよく聞くけど、
積みっぱなしでメモリは大丈夫なのかとか、
タイトルシーンやメニューシーンはその都度生成した方が
再初期化の手間いらずで楽なんじゃないかとか、
ロードの際にスタックの中身をいちいち
再現しなきゃいけないんじゃないかとか、色々疑問が残る。
0261名前は開発中のものです。
2007/04/01(日) 13:27:10ID:vpNPV10r何が「いい」かは作るプログラムによって違うからな。
疑問に思うんならやってみろとしか言えない。
0262名前は開発中のものです。
2007/04/01(日) 14:21:19ID:XdYqPGRk0263名前は開発中のものです。
2007/04/01(日) 15:15:13ID:Sn7iJUNqGemsの5巻にスタックを使ったシーン管理が載っている。
試してみたら、なかなか使い易かったよ。
0264名前は開発中のものです。
2007/04/01(日) 15:35:35ID:gVILklLWjavaのシリアライズの話ならそういう時の為のものじゃないぞ
0265名前は開発中のものです。
2007/04/01(日) 20:39:12ID:4uyw/V8k作ってるゲームによるでしょ。
シーン切り替えの度にブラックアウト & ロード処理が入るふつーの RPG だと、
シーンは必要な都度 new して作る(ただしテクスチャ・モデル等のリソース類は
事前に割り当て決めておく)、状態遷移はプログラム側でベタに行う…で十分に
管理できる程度だった。
0266名前は開発中のものです。
2007/04/05(木) 20:02:57ID:53u6wZm0Gemsうp!!
って、無理だw
ソースコードだけでも配ってないのか・・・
0267名前は開発中のものです。
2007/04/06(金) 02:24:49ID:jVhSsUiB日本はカルト教団に支配されてしまいます。
選挙に行きましょう。
0268名前は開発中のものです。
2007/04/06(金) 16:07:18ID:+BNVME6N0269名前は開発中のものです。
2007/04/07(土) 09:34:17ID:ok5ggep+0270名前は開発中のものです。
2007/04/07(土) 12:47:03ID:lstp6MTf0271名前は開発中のものです。
2007/04/08(日) 01:31:41ID:TWCxMGaJyaneSDK3rdの更新してください><
2ndからトランジエントビルトを移植しようとしたんですが正直無理です><
0272名前は開発中のものです。
2007/04/08(日) 01:42:46ID:Svf9QlZ3つか本人が来たとか本気で思ってるのか。
0273名前は開発中のものです。
2007/04/08(日) 02:50:06ID:l6t1YJuf■ このスレッドは過去ログ倉庫に格納されています