ProCon2003に向けて!
開発日記




DxLibFanに戻る





概要

プログラミングコンテストがあるのです!我々、高校生のための!
去年はこんなのです。 実は、去年応募したのだが、見事に大敗!!!!!
で、そのソフトがダウンロードルームにあったりするちなみにゲーム処理部分に関してはかなり役に立たない。
DirectDrawやDirectAudioのサンプルくらいにしかならないです!!!
なので、そのリベンジとして最優秀賞を狙うべく(おまえがなれるわけ無いだろ!と突っ込みもきそうだが・・・) モチベーションを保つため今日から開発日記をつけることにした。19:51 2003/05/02
ちなみにまだ汎用ラッパーとタスクエンジンが完成していないのです!スマン!



日記全容

21:10 2003/07/05

もうだめだ!!時間が無い也!!!!
実は、今、Fox Toolkitを使ってメモリの使用状況の表をExcelみたいにしてリアルタイム更新が出来るデバッグWindowを作っているのだが、 もう時間が無い!!!
さっさと ゲームオブジェクト(矩形を管理したり、出現処理や関連付けやその他もろもろのラッパーで、タスク処理ができるクラスに挿入できるようにしたもの newする時も事前に確保していたメモリ領域から割り当てるので高速 などなど) やタスク処理機構ワイプをガリガリ組んでいかなきゃもう追いつかない!!
グラフィックだって作ってないし!!!今回も音楽や効果音はフリー素材に頼るとしても・・・うー つらい。デバッグ1億年かかりそう。
しかし、その前に・・・部活の方も火達磨なんですよ!!!締め切りに間に合わないなり!!!

ぐわーー!!!
きつい也きつい也キツイ也 の ULONGLONG_MAX 乗



ナリなり くどい!! コ○助か己は!


ナリ活用も分からないのにホザクナ!


ヴぉけ(壊)




ともかく きつい状態なんですよ!!!
だれか!!!!!!!!!!!!
手伝ってください!!
いいよ!?って みたいな方 いらっしゃいませんか?
ワイプのデザイン等やってほしいのです。
(ワイプのデザインは難しい。いや、基本的なブラインドとかじゃなく、 汎用的な(例えば、360度どの方向にひし形が進んでもしっかり画面を埋め尽くしてくれる奴とかの事を指します) CAPCOM VS SNK 2のひし形が画面を埋め尽くすようなワイプとか)

メインループ内にガリガリ組む厳しさはもう分かっているんです。
去年の失敗を経験しているので・・・ぐぎゃ〜〜〜〜をぉ!!!





あ〜あ〜



川の流れのよ〜に〜



(激壊)





(コワレマシタ・・・)

22:14 2003/06/24

どうも〜。やっと定期テスト終わりましたよ!!!(結果は?--) 聞かないでくれ)
さて、ちょっと という かかなり! クラスの設計を誤ってしまい、 リライトすることになってしまいましたよ!!!!
やっぱりクラスの実装はしっかり卓上でやってから!!!!
と思いました。
(かなり関係図が複雑になっていって、C言語の方がSmartに書けるような実装にしちゃったのですよ。
これではさすがに・・・って事なので・・・
あう〜。間に合うのかなぁ。そろそろゲームのロジックの方、作っていかなきゃいけないんだけど・・・

20:01 2003/06/20

かなり日記の更新をサボっているようですね^^;
さて、最近はメモリのVector化にはまってます^^;
Vector化するとなんか速いようです。(メモリアクセスに無駄がなくなるからだとか)
また、 もし、出場できたらこれに出ようと思います。 さらに、更新されているんですね^^;今年度のプロコンのページ もうひとふんヴぁりだ!
これが今までの私の成果です。ちなみにここは常時更新しますのでチェックしておくといいかもしれません。

22:51 2003/06/03

dkutilのフレームベースのメモリ管理屋さんが完成。
これでグローバル変数なんていう面倒なものを用意せずにいつでも好きな時に 宣言できる。かつ、メモリ領域がベクトル化?されているので速い!!
これはすごいぞ!!!(たヴん)

0:09 2003/06/01

かなりサボってたようだなぁ。
まぁいい。dKingyoUtilClassがもうすぐで完成しそうで完成しないのだ。
ATL/WTLの使い方がいまいちよく分からない!?
まぁ、お後がよろしいようで(謎)
最近は、GCもどきが出来たのが一番でしょう^^
あとは各ライブラリのラッパーとかラッパーとかラッパーとか作ってました(それだけかい!?
もう日本語からかなりかけ離れた日記となりました。オオ!ジョルノ!なのです!はい。
プログラミングばかりしていたので、それだけ頭がいっちゃったようです。

22:39 2003/05/21

かなり日記を付け忘れたようだ。
というか、まったく何もやっていないからだ。
最近、金魚ほえほえЭというソフトを作っている。
ただのVCと同じソースにするトランスレータだ。
作ってみたが、まったくといっていいほど使えないソフトだった。(TT/~
かなりエンジンがへぼイ+トランスレートが遅い。 もうねむいっ一ツーの!!!
でもこれはスクリプトエンジンに応用できないんかいな?
アル意味結構勉強になった。C言語の愚痴にもいろいろと書いている

21:23 2003/05/18

11:19 2003/05/18 今日は何をするかねぇ?
未だにスクリプトとロジック間の構想が練られていない。
ぐヴぉぁぁぁぁぁ!!!!!
いちおう、ここに塵を溜めているのでよろしく〜〜!!!
21:20 2003/05/18
ふぃ〜〜いちおうマップやリストを使いこなしてロジックとの連携は完成に近づいてきた!!
そういえば、最近、DxLibの掲示板にあるものがかかれていたのでその回答をUPした也!
みるヴぇし!

17:49 2003/05/17

今日は以下の本を借りてきた。以上也!

??:?? 2003/05/16

今日は鬱。何もせず!!!

19:59 2003/05/15

スクリプトエンジンをちまちま作っていく。
いちおうデータ構造が決定。
typedef std::list _SOURCE;
typedef dKingyoArrayOneByOneDynamic<_SOURCE> _SOURCE_MANAGER;
ちなみに最近、この違いを知った!!さぁ見る也!!!

22:21 2003/05/14

今日は何もしない也!

もう眠い也!!お休み也!!!

22:22 2003/05/13

22:21 2003/05/13
今日の成果。(なんかへヴぉいなぁ)

個人的にこのGerowoHaku関数がイイ出来だと思う^^(d金魚のセンス最悪〜〜)
いや、機能がイイ出来ってわけではないよ。
ネーミングがだよ!(ますます最悪〜〜!!!)
ふぁ〜〜今日は沢山プログラム組んだな〜〜(嘘をつけ!!)

13:15 2003/05/13
今日は休日出撃の為に休日を使った分、今日が休みなのだ。(火曜日)
で、昨日はほとんど進まなかった。(シュン
さっそくなんだが、 これが手に入った。

前に図書館で注文していた奴だ。でも、今回出品する奴は3Dは使わない予定なので、 いちおう頭に叩き込んでおくだけにしておく。
レイトレ出来たら次はフォトンマップだ〜よ!!!(前、借りたけどよく分からなかったよ!フォトンマップ!)

余談:
TQTのページ:
ちょっと他では手に入らないものが沢山手に入るHP。
すごいよ!特に、素数をファイルに吐いてくれる物は良かった^^
RAY-KUDORYAVKA X BGM:
ここのHPは レイクドリャフカ のBGMをoggで配布しているところ。
レイストーム レイクライシス じゃありません!!!
レイクドリャフカはそれらを意識したすばらしいフリーソフトです。
私もあのようなソフトを作ることを目指してます。

15:01 2003/05/12

2003/05/11以前のスクリプト言語案についてはすべて破棄じゃ!!!
はっきり言ってヴぁかすぎる!!!!!
これはやっぱりExcelで編集できるような感じで!!! では、こんな感じにしよう!

22:23 2003/05/11

22:35 2003/05/11
d金魚スクリプト言語文法(仮)
定義(このスクリプトの中のみで):
タスクロジック側で定義された1つの関数を実行する。
その関数名を文字列でマップさせたもの。
イベントタスクをつなげた物を条件といっしょにしたもの。
シーンイベントが合わさったもの。
特殊引数2つ以上の引数をとりたくないのでそれを補うために泣く泣くつけたもの
条件ID条件を定義したID。例えば、diedの時は死ぬ時という意味で、そのシーンが終了する(死ぬ)時に実行することを定義できる。
不定未実装部分(または意味なし)

変数
  • eventID : イベントIDを保存する変数。接頭辞はevにしないといけない。
  • sceneID : シーンIDを保存する変数。接頭辞はscにしないといけない。
命令文
  • scene (シーンID,insertの戻り値);
  • シーンID event ( イベントID,特殊引数); : その後、 ->をつけるとイベントを増やすことが出来る。特殊引数によりロジック側でそれぞれ処理される。
  • イベントID change (次のタスクに移るフレーム数,次のタスク名); :その後、->をつけるとタスクを後ろ側(後に実行するタスク)増やすことができる。
  • 条件ID
    • dead :そのイベントが終了する時
    • start :そのイベントが始まる時
    • その他は考え中
  • Label
    • Label( ラベル名 , シーンID);
特殊引数を返す命令文
  • 特殊引数 frame(実行するフレーム数) :実行するフレーム数はシーンが始まってからのフレーム数です。
  • 特殊引数 defined(すでにスクリプト側で定義されている条件ID) 
22:23 2003/05/11 暇つぶしに以下のようなメモリ管理ルーチンを作る。(コピペじゃ上手く動作しません。
こんなので簡単に管理できるのだろうか?
ちなみに内部の処理のフローチャートを説明すると、
  1. メモリを確保する。
  2. メモリを開放する(開放するアドレスが不正だったらなんらかの処置をして不正開放を防ぐ)
  3. このクラスが破棄されるとき、開放し忘れた領域をすべて開放する。

こんな感じです。で、このクラスはグローバルにしてシングルトンにでもしないと上手く使えませんねぇ。
まぁ、確保するサイズが元から決まっているのなら私の作ったdKingyoArrayOneByOneがかなり有効なんだけど。
信頼性で選ぶならboost::object_poolかな?
まぁ、置いときますので。私のやり方が間違っていたらどうかご指摘お願いいたします。すごく喜びます。


18:05 2003/05/11 今からスクリプト系プログラムを組んでいく。
いちおう、途中で自分が戸惑わないように仕様をメモしておこうと思う。

d金魚スクリプト(仮)仕様メモ
  • if文等の分岐系は実装しない。(なぜなら面倒だし、遅いし。すでにC言語使えるし。ゲーム製作スクリプトだったらもっと最強なスクリプトは沢山あるし。)
  • 命令 引数、引数 というasmのような感じにしようと思った。(なぜなら構文解析のプログラムの実装が簡単そうだから^^;
  • 非手続き型スクリプトにする。(しかし、いつ実行するかというパラメータをつけれるようにする。
  • ラベル式にする。(Basicマンセー!って訳ではないが・・・スクリプトでは何かと便利だと思うから。
  • Lisp,Prolog を参考にする(あくまで参考、命令形までは一緒にしたくない。
さぁ!がんヴぁるぞ!!!!
余談:
私が見つけた汎用的スクリプト言語特集。
Pnuts
Python:(パイソンって読み方でよいのですよね^^;これを知った瞬間、 スト2のバイソンが思い浮かんだ。
私ってヴぁかだなぁ〜〜
超有名なRuby

21:54 2003/05/10

今日はがんヴぁってみる。
明日は学校の行事で出撃しなくてはいけないからだ。
さて、今日の成果はこんな感じ。
もしや、これを書いただけじゃないだろうね!
ごもっと・・・ いえ、違いますよ!しっかり実装しましたよ!
いんたーふぇいすだけじゃないですよ!

DrawQueueを独立させて各描画関数をすべてキュー式(自作 priority queue)にしました。
これでいちいち描画順序を気にせずにOKということになりました。
これでZ値を使って拡大縮小した高低差ありのSTG(シューティング)ゲームができる!!目指せ!神威
目指せ!SITER SKAIN!!!RefleXって超かっこいいのよ!
私はBGMが特に好き^^
でも、22:00 2003/05/10現在、SITER SKAINのHPの更新が鈍っているらしい。

20:20 2003/05/09

今日も鬱。
1フレームの処理の内容をフローチャートにした。
これは分かりやすい!!!
って事でこれをDLしてくれ!
SVG Download でも、多分、めんどくさいだろうから仕方が無い。
画像を用意した。
FLOW CHART

21:20 2003/05/08

今日も鬱。
いちおうスクリプトエンジン?らしきもののメモを書いてみようと思う。
まずはテーブル式について。
前にデータ構造は話した通り。
struct tugCSV_List{
std::string str;
LONGLONG value;
};
std::hash_map < std::list<tugCSV_List>,void (*function)(void) >

って、ちょっと待てよ、敵のデータを作るツール作ってないよ!!!
じゃぁ、どうなるのよ!!
作るしかないです。WTL/ATL7.0で作る予定です。
じゃぁあとは敵のデータ構造ですね。

//まずは敵データを管理するデータ構造。
typedef struct tugENEMY_MANAGER{
DWORD dwSize;//構造体のサイズ
DWORD dwEnemyNum;//敵データを記録している数
DWORD dwMotionNum;//敵の動き方データを記録している数
//DWORD }ENEMY_MANAGER;
//モーションデータ
typedef struct tugMOTION{
char MotionDataPath[MAX_PATH];
DWORD ID;//ID
}MOTION ;
//敵データ本体
typedef struct tugENEMY{
int MakeX,MakeY;//敵が出現する座標
DWORD MotionID;//モーションデータID
char GraphicPath[MAX_PATH];//グラフィックデータへのパス
}ENEMY;

こんな感じか?
22:33 2003/05/08
今日はデータ構造考えただけで何も出来なかった。
ATL/WTLが良く分からない。CodeProjectで見てもやっぱりクラス構造と作り方が良く分からない。
うーむ。だれか、以下の本を恵んでくれ!(ってなに図々しい事言ってるんじゃい!図書館に注文しろよ!(でも3ヶ月かかるねん))


2003/05/07

PCつけたけど、風邪の治りかけで鬱ですぐにダウン。
今日は寝まくった。

22:29 2003/05/06

今日はスクリプトエンジンの作成とその他実験を行った也。
スクリプトエンジンについてだが、このような構造にしようと思った。
ちょいまち、その前に私の考えるスクリプトエンジンについてだが、 二つ形式があります。
1つはCSV形式の記述。Excel等で記述できるので初心者でも設定できるので簡単です。
いわいる敵出現テーブル みたいな奴です。
このデータ構造に関しては
struct tugCSV_List{
std::string str;
LONGLONG value;
};
std::hash_map < std::list<tugCSV_List>,void (*function)(void) >

みたいな構造にしようと思っている。
また、自由に敵のルーチンを組むタイプのスクリプトに関しては・・・
まだ仕様を完璧にしてないのでまだはっきりとは言い切れませんが・・・
とりあえず、
std::hash_map < std::string ,void (*function)(void) >
としてます。
あとはどうすればいいのかなぁ?
うーん。C言語風スクリプトを作るのは良く分からない也。
あ!、そうですそうです!JavaScript(JScript)やVBScript等とソフトを連携するにはどうすればいいのだろう?
Jupiterとかは連携してますよね。
すごいなぁ〜〜。

22:18 2003/05/05

22:18 2003/05/05 dKingyoIsWarehouserとタスクエンジンのテスト終了。
両方ともバグはなさそうです。(まだ、2D描画のラッパーをテストしていない。)
これからいろいろと作りこんでいきます。
しかし、まだ、Sound,Music,Input,のラッパーが完成してない!!!^^;
もうそろそろがんばらないといけないのにねぇ。
あ、そうです!!。
yaneSDK3rdは私が知る限り今のところ最強の安定性を持つVisualC++でも使えるゲーム製作ライブラリです。
さらにYTLという最強のテンプレートライブラリがあります。
function_callbackやmaicrothreadとか本当に最強です。
皆さんも一度やねうらお氏のHPを訪れてみてください。絶対にはまりますので!!

19:07 2003/05/05 dKingyoIsWarehouser class 完成。
直訳すると、d金魚は倉庫業者。(爆
その名の通り、データの管理を行います。
hash_map等をラッピングして最終的にラッピングしたのがこのクラスです。
CGIの連想配列のような感じで行います。
そのラッパーがキーを元にデータを渡したりするのです。
これさえ使えば、あとはグローバル変数なんかとおさらばです!!!!
で、グローバル変数とdKingyoIsWarehouser。どっちが速いの?
//・・・・・・ あう〜〜〜。単純なグローバルの方が速いです^^;(アセアセ
おい!!!だったら意味無いんじゃないの!!!
そんなこと言わないでよ〜〜〜。これを通せば、例えばキーが "解像度データをよこせ" だったら、解像度のデータを返してくれたりするんですよ!!!
つまり、スクリプト言語のようなものも簡単に作れるんですよ!!!
さすが倉庫番!!d金魚!!!!ってくらい、便利なんですよ!!!!!
(って、グローバルの方が直感的ジャン!!!
と思いますよね^^;確かにそうです・・・
しか〜〜〜〜し、文字列を元にデータを返すのでコンパイル後、 データ定義テキストファイルに変更箇所を直せばコンパイルせずにすんだり、 的の出現位置を変えたいのならその外部ファイルを書き直せばOKみたいな処理をするのにこういうの必要だと思うんですけどね??
えーっと std::hash_map <std::string,void (*func)(void)> みたいなぁ〜〜。
これで処理を変えるみたいな〜〜〜。 あう〜〜〜上手く説明できない!!!!
後日、自作スクリプト言語講座にて!!!!(まだ自作スクリプト言語講座作ってないけど^^;

14:42 2003/05/05 2D描画ラッパー完成。
描画順序のついた画像データを渡すことでソートして描画することが可能。
高速描画はDxLibのおかげです。
DxLibありがとう^^ 感謝 m(_ _)m ありがとうございます。

12:24 2003/05/05 タスクエンジンが完成。
タスクを挿入する時、番兵付き線型探索 なので激速です!まだ、テストしていませんが、n=タスク総数 平均、O(n/5)くらいだと思います。
また、タスクを削除する時もキュー内から次々と抹殺していくので激速です!削除速度は n=キューの中身 O(n) です。

今まで、こんなやり方してましたからねぇ。ひとつひとつ丁寧に調べる順次探索ですよ^^;
挿入速度は平均 O(n/2)ですか???(あれ?なんか間違っているような?)

これからゲームに使う機能についてのwrapperも作らなきゃあかんのです。
ああ〜〜面倒だけど、ライブラリを変えたりすると関数名まで変えないといけないから、 やっぱりwrapperって大切ですよね〜〜。
どこかにすでに完成済みのDirectXラッパークラスはないのかね〜〜!!!
GTLってのみつけたけどよく分からんし・・・

21:18 2003/05/04

今日はプログラミング三昧のつもりでしたが^^;なかなかはかどらず・・・
個人的にはかなりSTLはマスターした気分に陥る^^;
STLといったら επιστημη氏のSTLの本が有名
ですよね^^ 本当に分かりやすくて気に入ってます。感謝 m(_ _)m ありがとうございます。
STLのページというHPもかなり有名です。
メンバが一目瞭然だし^^ 感謝 m(_ _)m ありがとうございます。
私は、皆様の努力の結晶のページで勉強させてもらってます。
ほんとうにインターネットはすごいよ!いつでも勉強できる環境はすごいよ!!
と改めて認識した。

21:45 2003/05/03

今日は某都道府県立図書館に行きました。
そして、超有名書籍
Game Programming Gems
Game Programming Gems 2
Effective C++ 第二版
を借りてきました。

もう最強です。この本さえあれば!!!
皆さんも借りてみてみてください^^
めちゃくちゃ為になりますので!!!!

製作状況としては、 今は汎用ラッパーを作成中です。
ラッパっの設計ってなんかあほらしい感じが・・・
あとは、C++のnamespaceの使い方を最近覚えました^^;(今ごろかよ!
いままで名前が衝突しないように以下のようななが〜いグローバル変数を宣言する必要はもうないみたいですね^^
OnlyForSystemTaskAllDrawAndSortDrawQArraySize
ああ〜〜〜〜!!!長い〜〜〜〜〜!!!!

開始日(21:01 2003/05/02)

メモリ管理についてはBoehmGCを使う予定だった。
しかし!!!ポッター氏の協力により、メモリテストツールを使っていただいたら!!なんと!!
以下のような結果が返ってきた。
boost::object_pool allocate time is 389 
yaneAllocator allocate time is 660 
malloc allocate time is 1230 
GC_malloc allocate time is 16247 
dKingyoArrayOneByOneDynamic allocate time is 12 
BoehmGCが遅い!!!!
ダメジャン!!!!
なのでBoehmGCは標準のメモリ管理ツールではなくboost::object_poolを標準の管理ツールにしようと思った。
しかし、ここでBoehmGCで腑に落ちないことがある。
私のBoehmGCはNT/2000/XP用にコンパイルされたものだったはず。
なのでそこらへんをはっきりさせないといけないなぁと思った。
うーん。これは今後あたらしいテストツールを作って比較しなくちゃいけないことだなぁ。
と思った次第である。



今までのプロコン2003についての
トップページでのトークのログ

d金魚しぼー(笑)らしい

こんにちは。d金魚です。
前回のトークでは私は疲労困憊虫の息でしたが、今でもそれに近いです。もうプログラミングを辞めたいです。
さて、そうは言っておきながら、今回もプロコンの話ですが、
今年はプロコンに作品すら出せませんでした。
やっぱりだめなんですねぇ。私の実力じゃ・・・
もう、プログラミングから足を洗ッたほうが良いと自分でも どことな〜く去年のプロコン終了から思っているのですが、どうもやめられないのですよ。
でも、受験勉強のほう、今からがんヴぁらにゃ〜どこにも受からない訳で・・・
今までのように、プログラミング三昧とは行かないわけです。
今回の汚点は
  • シーン管理のクラスが締め切り2日前にくみ上げたという非常に信頼性の低い、未知数なクラスを使ったこと。
  • 糞ライブラリばっかり作っていてゲーム製作に使うであろうロジック部分がまったく作られていなかったこと。
  • 未だに、XMLローダー作ってないし、座標、マップエディタも作ってないこと
とりあえず、1週間で擬似ワイヤフレームでカッコよくした キャラクター選択画面まではこぎつけましたが、どうも今回も間に合わず・・・
敵キャラロジックがまったく作られていないという最悪さ。
まぁ、この反省は後々、”2003年度StudioKingyo反省会(仮)”で行いたいと思います。
第27回 全国高等学校総合文化祭 福井大会 レポート から スパコン予選の大チョンボまで、全部見せます解説します。

余談ですが、VisualC++での三角関数のcosの速さを調べてみました。
Releaseビルドにて。ちなみにDebugビルドだとd金魚式テーブルはメチャクチャ遅い^^;
標準Cライブラリtime = 5427
テイラー級数近似値time = 7962
d金魚式テーブルtime = 5307
Game Programming Gems2
に出ていたトリック
time = 9775
なんか、Game Programming Gems2のトリックが遅いんですけど^^;
これについて詳しく知りたい方がいた場合はソフトや資料を提供しようと思います。



2:04 2003/08/07


プロコンの締め切りに間に合わず・・・
d金魚疲労困憊・・・虫の息
開発後記
(昨日もそのまた昨日も3時間くらいしか寝てない・・・
これが修羅場か!! ある意味、いい経験かもしれない・・・
さて、一つも手につけてない宿題でもやるか・・・(その前に遠征・・・全国高校文化祭で私を見つけたら凄いやつだなぁ。
 (補修課題をあわせると、実は最初から夏休み勉強三昧で全部終わるかどうかぐらいのきわどい量なのだ。

最終開発画面・・・



1:18 2003/08/05


とりあえず、すべてリライトしてシーンクラス等は作った。結構管理が楽になった。
ワイアフレームクラスがちょっと 例外処理等がありそうだが、 時間が無いのでほっぽっとく・・・

明日から、キャラクタークラスと イベントを作りこまなければならない。
締め切りまで今日を含めて2日・・・
大丈夫か?私?



残酷なCPUFANのテーゼ

VCでソースをカリカリと書いて、ようやくコンパイルだ・・・と思ったら、 いきなりWindowsが終了する。なんのエラーメッセージもなしに・・・
なんだ!これは!!
最初は湿度の関係だと思った。PC室は計ってみたら70%だった。
除湿機をかけてみる。効果なし。PCを起動してVC起動してしばらく(10分くらい) で、すぐに強制終了。バグばかりのDQ7よりひどい状態!!!
そのままの状態でも ずっとそのままで ソースをちょっと編集したらすぐに保存という形で 作業をしていった。
もしかしたら、マザーボードのせいかもしれないと思い、BIOSユーティリティを立ち上げると・・・

CPU温度69度・・・


高っ!!!


d金魚のPCのマザボにはCPU温度60度でCPU保護のため強制終了機能をONにしていた覚えがある。


犯人はオマエダ!mother!!!


ところで、CPUってどのくらいの温度まで耐えられるかちょっとだけ調べた。 とある、掲示板では80度で焼き鳥らしい^^;(私は焼き鳥についてはネギはいってないとイヤだけど・・・
しかし、私のマザーには90度まで設定できるようになっていた。(大丈夫なのかCPU???

そういえば、前、静音CPUファンに変えたような・・・



実行犯は静穏CPUファンだ!!!


憎きCPUファンは今後使わないことにしました^^;
しかし、前のようにものすごくPCはうるさくなりました。
どのくらいかというと、MSN Messangerのお知らせの音が聞こえないくらい。



プロコン2003夏  佳境に入る


また来てしまった。 この夏が・・・。
また、中途半端なゲームを出品するのか?
私は8月7日から全国高校文化祭に行くので 私にとっては、締め切りは6日なのだ・・・
文化祭にいけるのはうれしいが、締め切りが・・・というわけだ。
それにしても、どうも、こう切羽詰った状況になると、いいデータ構造が思い浮かんだりするのはなぜだろう?
いまから、ゲームエンジンのすべてをリライトするつもりだ。4:18 2003/08/04(何時まで起きてんだよ!
今まで、listのstackつかってそのlist内にさらにタスク構造作ってとやっていたが。。。(メチャ使いづらかった)
今度は以下のようにする。
Image
image
実はまだ考え中
実際、ゲームの管理方法は難しいのねん!
特に、シーンの生成、管理に関しては非常に・・・



とりあえず、作っているソフトの開発中画面

Image01 Image02 Image03new


緊急募集!

d金魚の作るゲームに使うグラフィック等が足りません。
どなたか情報がありましたら、どうか、d金魚まで知らせてください。(掲示板とかメールとかで) 締切日は7月4日前後です。完全無効7月6日です。(なぜなら都合により6日にプロコンに提出するから)お願いします。



glibをMSVC6(VisualC++ 6.0)で完全に使えるようにした。

0:38 2003/07/31
こんにちは。未だにmingwとかcygwinとか使えないd金魚です。
なのでglibを完全VCに対応って事で作りました。
ほしい方がいたら急いでプロジェクト(.dsw .dsp等)をUPしますので
(結構 直しが大変だった。)
glibは私が知る限り最強のC言語でのライブラリだと思う。(STLのような感じかな?)



VBSで オオ!ジョルノ!

19:14 2003/07/29
VisualC++でVBSっての使ってマクロが作れるのか!
初めて知ったよ (-ω-)/{オイ)(o_△_)o ギャフン
やねうらお氏のサイトに載っていたものを改良しました。
これでファイルがない場合でもエラーは出ないはずです。
(それにしてもVBSのリファレンス見たけど、C + Win32APIに比べるとめちゃめちゃ楽だなぁ〜,こっちに移ろうかな?)
20:47 2003/07/30
dKingyo 的 マクロ cやhppにも対応しました!!



STLPortでオオ!ジョルノ!

0:10 2003/07/28 現在。
STLPort4.5.3と殺り合っていたところです。
STLPortをねじ伏せました。_alloc.hの_STLP_alloc_proxyの所で、 自分で作ったアロケータ(allocator)が通らないバグ(VC6のせいかもしれない) があったのです。
しかし、ねじ伏せました。__stl_alloc_rebindが悪さをしていたようです。
今のところ、バグは出ていないようですが・・・、さぁ、これでいいのでしょうか?
う〜ん。って思ってしまうこのごろ。
17:00 2003/07/28
思いっきりバグりました。
真似しないでください TT
2:10 2003/07/30
解決しました。以下のようにすれば STLPortでオリジナルのアロケータを作ることができます。
cppllの樋口氏の返信で解決することができました。 サポートありがとうございました。



d金魚はもうダメポ。

最近、ダメぽの意味がわかったd金魚です。こんにちは。
自分自身にlistのオペレーションをつけて双方向リスト構造によってゲームで使う様々なオブジェクトを管理するものを作っていたのですが・・・
もうダメぽです。
smartさがまったくありません。

ソース中にも書いていましたが、 class Obj : public std::list<Obj> { ...
とやったほうがsmart!!!!(のはず)なんですよ!
自分で作った糞クラスでバグを出すより すでにあるライブラリ使ったほうがが デバッグに費やす時間は大幅に減ると思います。
結局、今年のプロコンに向けて糞ライブラリばっか作ってた私ですが、

今年もダメぽ

なんですよ!!!!本当に!!!!
どうしよ〜〜・・・
ツキノヨルオロチノチニクルってきます・・・
・・・・・・・・・ショ〜ワ。ぎゃうごぉわぁ!うもぐゃ〜〜ぉおおおお!!!


CAPCON VS SNK 2 に現実逃避・・・

13:04 2003/07/26
class Obj{
typedef singleton<std::list<Obj> > list_singleton;
static list_singleton m_singleton;
public:
Obj(){}
virtual ~Obj(){}
list_singleton &get_list(){return (*m_singleton);}
};

の方がメモリ使用量も少なくてさらにsmartな事が発覚。。。


dKingyoUtilClass Alpha Versionを完全UP

タイトルどおりです。
潜在的バグが少々残ってます・・・(笑 どうぞ、お持ち帰りください。


超必殺ショック也! 最強のGUIライブラリの紹介

今まで、C/C++言語でのプログラミングはMFCやWin32APIを使ってWindowを表示したりしてきた。
しかし、私はATL/WTLというのに出会って私と馬があったと思い、それをちょみちょみ勉強していたのだが・・・

GTK+というものがあるのですよ!

Googleで調べれば一撃必殺で見つかります。
けっこう日本語の資料が充実しているのでこれを使おうとしたのですが、

FOX toolkit

っていうVCに完全対応でライセンスもイケているライブラリもあるのですよ!!
(しかし、日本語の資料は少ない)
どっちにしようか迷うところです。
WideStudioってのもあるんだけど 私にとっては かなり、使い勝手が悪いんです。^^; せめてVCに対応していないのなら付属のエディタをMDIWindowにしてくださいよ^^;
あと、ちょっとサンプルを見ましたが見た感じが良く分からなく、(完全にオブジェクト指向の為、ソースがかなり分割されている)
さらに、私の不得意な専門用語郡も出てきてうーむ。となってしまって・・・。
VBUserには非常に使いやすい感があるでしょうが、 私はソースのみに”にらめっこ”してヴァコヴァコ打つのみの方が好きなんです。
まずWindowをデザインしてイベントごとにプログラムを組んで、 とかじゃなくて機能が必要になったらその関数を呼び出す!みたいな。もちろんWindowをデザインするエディタがあるに越したことはないのですが^^;
だから、私はMFCやATL/WTLに慣れなかったんですよ。

次回はプログラミングする上で私が直感的に分かりやすかったようなエディタについて紹介します。
伝統的なのにEmacsってのありますよね^^
参考サイト: ほーむぺーじ
日本GNOMEユーザー会
FOX TOOLKIT (FOX本家)
FOX Japanese Document

超ショック也

ここを見よ!Simple DirectMedia Layerだ! クロスプラットフォーム!?のゲーム製作ライブラリです。凄すぎ!!
クロスプラットフォームの日本語のGUIライブラリも見つけました!!凄すぎ!!(しかしVCに対応していない
libBulletML ってのも凄いです!今まで作っていた dKingyoUtilClassはなんかヴァカみたいに思えてきてしまった・・・
やっぱりインターネット上は凄いよ!

参考サイト
ABA Games


strncatのバグ??

私のMSDNのstrncatのリファレンスの内容の理解が誤解なのかは分かりませんが 以下のような関数でヴァグります

SET_VA_LISTはvsprintf見たいなものと考えてください。
で、変数s内に文字がMAXで入っているときで、 s[strlen(s)-1] != '\n'が適用されるとstrncatをするのですが、 それでもなんかダメなんですよ!s[1023]の中身がstrncatの第三引数がどんな値でも s[1023]=='\n'なんですよ!
ということはバッファ内の最後のNULL文字が消えて、OutputDebugString内で バッファを破壊します。
これは一大事です。
こう直すしかなさそうです。

1024とか1023とかいう定数を使っていてダサいコードだけど、 いちおうこれで我慢!
しかし、 The End of dKingyoUtility にも、同じ実装の関数があるが、もうdKingyoUtilityをバグフィックスしたくないよ! って事でdKingyoUtilityはバグがあるので今後一切のサポートはしない!
サンプルって事で我慢してもらう!!!
以上也!


デバッグ1億年

以下を見よ!VCが吐いてくれるチョームカツク、エラーの数々だ!
テキストエリアをスクロールしてみてくれ!
このやろう!!!

DebugWindowSystemをちょっとだけ


DebugWindow

デバッグWindowシステムを開発!(つーても実は・・・)


葉迩倭氏のHPで公開しているLunaのライブラリを

パクっただけなのよ!


Lunaは非常に使いやすいライブラリです。最近出会いました。
サンプルも充実してます。3Dも使えます!すごすぎです!!
dKingyoUtilClassはこのライブラリもサポートする予定です。
その他に,BoehmGC,DxLib,yaneSDK3rdをサポートする予定です。
そういえば、dKingyoUtilClassは最後にデバッグシステムを組めば終わりなので、 それをATL/WTLで組んでから皆さんに公開したいのですが・・・うーむどうなるのだろうか?
もう公開しちゃいましょうかねぇ?(掲示板に要望があれば公開します)


ユーザー独自のアロケータの作り方が分かった

なるほど!!これでアロケータが作れるようになります!!
やっと見つけたよ!この資料。万歳!
しかし、dKingyoUtilClassを作っていて以下のようなエラーが起こった。
fatal error C1506: ブロックが大きすぎて、コンパイルできません。 なに〜〜〜〜!!!namespace内に入れられないだと!!ヴぁかにするな!
このヴぉけ!!!!VC++!いっぺん殺しますよ〜〜。一発この手でぶちますよ〜〜!
それはレ!私が弾いて欲しいのはド!(知る人だけが知っているネタ)


最近、LGPLのライセンスを知る

ここから引用
LGPL
 LGPLは、GPLと互換性のあるライセンスです。 ソフトウェアを作るために使う部品集をライブラリと呼びますが、 そのライブラリのソースコードを公開するためのライセンスとして利用されてきました。
 部品集は、他のプログラムに組み込まれて初めて役に立ちます。だからと言って、 組み込んだプログラムもオープンソースになってしまうのは、 ちょっとやり過ぎですよね。
そこで、組み込むだけならオープンソースにならないように、 効力を弱くしたのがLGPLです。
 OpenOffice.orgは、それ自体がオフィスソフトの部品集になるように設計されています。 そして、外部のプログラムからその機能を自由に呼び出せるようになっているのです。 LGPLは、GPLと同じくらい強力なライセンスです。
LGPLが適用されたソフトウェアの修正版は、LGPLかGPLでないと再配布できません。

なるほど〜〜!コレがLGPLだったのですか! しかし、ここで私にとっては ”LGPLが適用されたソフトウェアの修正版は、LGPLかGPLでないと再配布できません。” って所がちょっとなぁ〜って感じがしました。
改善したライブラリがGPLになっちゃったら商用利用ができないじゃん!
私が望むのは以下のようなライセンスです。
  • 基本的にLGPLと同じ。しかし以下の部分が違う。
  • 商用だろうが、フリーだろうが利用できる。
  • ライブラリ内を改造した場合はそこを必ず、手に入れやすい方法(例えば、インターネット上でアクセス制限が無いように)で公開する。
  • 改善したライブラリのライセンスは変えてはいけない。


The End of dKingyoUtilityのバグをちょっと修正

dOutputDebugStringがログを吐かないのを修正しました。
ちなみにReleaseビルド時でもちょっと内部で処理をするので幾分無駄があります。
各自どうにかしてください(無責任やん!)


STLPortとcrtdbg.hの相性

以下の記事のアナログガーベジコレクションのテストをしていた時です。。
メモリリークに関しては私はcrtdbg.hを読み込んでメモリリークを検出してもらいます。
ちなみにこのヘッダファイルについての詳しい使い方は ロベール氏のHPのプログラマの友のメモリリークと crtdbg.hを見ると良く分かります。皆さんも見ましょう^^
そして、d金魚はSTLPortを標準STLとして使っているのですが、この二つを使うとなんと!メモリリークが検出されるのです。(多分、誤報だと思う)
しかし、以下のマクロを両ヘッダを読み込む前に宣言しておくとメモリリークは検出されなくなります。

#define _STLP_USE_MALLOC
もし、お役に立てたら幸いです^^


アナログガーベジコレクションを実装^^;

ガーベジコレクション(略してガベコレ)って何?
簡単な話、メモリ管理してくれる機構らしいです。詳しくはYahooやGoogleで検索するとでてきます。
ちなみに、ガーベジコレクションはガベージコレクションともいうらしいです。
どっちか統一しろよ!検索でまぎらわしい!
で、私の考えたアナログ式は以下のような感じです。
  • mallocで使い捨てメモリとして使うならば引数にTRUEを渡して、しないならばFALSEを渡すという形
  • freeですぐに領域を開放するならば引数にTRUEを渡して、コレクション関数で開放するならばFALSEを渡すという形
  • コレクションしてくれる関数を呼び出さないとfreeで開放してない領域は開放してくれないという感じ
  • 最終的に終了時にはすべてのメモリ領域を開放してくれるという感じ。

例えば、

しかし、問題がある。遅いということだ。
なので、Releaseビルド時にはほぼmallocと同じ機構にしちゃおうか? と考えている。


The End of dKingyoUtilityをリリース

0:08 2003/05/25
d金魚がむか〜し昔から使用していたライブラリ軍を 詳しい説明付きアップしました。 これで痒いところに手が届きそうでとどかないってか!?


緊急告知
ここにd金魚が昔作ったライブラリがあります。
これらの使用状況を知りたいので、どうか使用している方は 掲示板に 一言お願いいたします。(多分、だれもいないような気がするけど^^;
もし、使っている方がいらっしゃいましたら、これからもサポートしたいと思います。




StudioKingyoの名を全国にとどろかせる日が来たぜ!(笑)

ここを見よ!スーパーコンピュータコンテストだ!! これに私は出場しようと思う!!!
しかし私の実力で大丈夫なのか?という疑問が残る。
確かに、私はC++のオブジェクト指向っぽいのを少々かけるだけである。
ANSI Cのような厳密な企画のC言語は使ったことないし、gccも使ったことはない。
多倍長演算のライブラリすら組んだことが無いのだ!!Fortranよ我に力を!
やっぱり、予選落ちして全国にアホをさらけだすだけなのか!?
うーむ。まぁ、いいか!!朕は国家也!(謎)
その前に、チームメンバーが必要だって事がかなり苦しい。
2〜3人ってうちの学校は工業系じゃないのよ!!!
しかもコンピューター部とか情報処理部とかな無いのよ!!!!
どうしよう〜〜〜〜。
学校に持っていって告知するしかないなぁ・・・
それはそれとして・・・最近、困っていること。
boost がSTLPortでコンパイルできないのよ!
VC付属のSTLではもちろんコンパイルできるのに!!!
以下がbjamが吐いたログなのだが・・・だれか分かりますか?しっかり環境変数は登録しているのによ!

ちなみに環境変数はこれ


あ〜なんでじゃい!1時間も無駄にしてしまった。!!!
で、そのような問題を抱えているらしき方の発言が書いていて、 その返信を見てみました。
ん〜、なんかやっぱり上手く出来ないみたいな事が書いていました。
ぐふぉぁ〜〜〜〜〜〜!!!!!!!!、d金魚はもう、死んでいる。パタっ


Boost::object_poolにも勝った。

あ〜〜〜んもう!!!超最低!!!
何でコンパイルできないのよ〜〜〜〜!!!!
3時間くらい格闘してBoostに変更を加えることにした。

でも、こんなことをしてコンストラクタとかどうなるのだろうか?
(その後、原因を調べていった結果 boostをプリコンパイル済みヘッダで読み込むことにより解決しました。)
うーん。まぁ逃げの手段として・・・。
とまぁ、それはさておき、本題のBoostと私のメモリ管理(配列管理)クラスの計測を行ったのですが、
malloc time is 490
boost::object_pool time is 341
OneByOne time is 200
ということで私の勝ち!!!!
もしかしたら環境によってはかなり違う結果になるかもしれないが・・・
ってことで速さを実感してもらうためにバイナリを用意しました。
どうぞ〜〜〜 DLしてみてください。
ちなみに、メモリを大量に使う処理もあるので各自の自己責任でお使いください〜〜。
d金魚は何も保証しないぞ!!また、責任もとりません!!!
それでは〜〜


ハッシュに勝ったぞ!!

Hash Time is 1932
ArrayOneByOne Time is 441
ふはははは。ついにやりました!!
データ管理クラスが完成に近づいてきました!!
データ管理に私はSTLPortのhash_mapのラッパーをひとつ作ってみたのですが、 実際、私が作っていた”一つ一つの領域を事前に確保していた配列から空き領域を探して割り当てるライブラリ" の方が勝っていたのです!!(でも計測方法が間違っているかもしれない!!
なのでこれは大事件ですぞい!!!(でも私がハッシュに勝つのなんてうそ臭い
dKingyoUtilClassに付属予定です。
ちなみにそのライブラリには苦しみに満ちたDEBUGがあったです。ほとんど一日中でした。

私のデータ管理ライブラリは
DWORDの値をキーにしてあらかじめ決められたサイズ1つ分の領域を返すというライブラリなんです。

フローチャート


dKingyoUtilClassをもう少しで公開予定

dKingyoUtilClassとは??
d金魚が重宝しているクラスライブラリ郡です。
で、コンパクションをサポートするベクトル化メモリ管理クラスを作ってみたわけですが、 なんと、そのライブラリは遅いのですよ^^;
で、 高速にメモリを取得できる関数を調べました。^^;
なんらかの役に立つことを願います。
近況:
最近、風邪引いてひーひ言ってます。
あと、夏休みに福井に行くことになりました^^;わーい。
22:13 2003/04/26


最近プログラミングが出来るようになる。

2003/04/18現在、今までは結構スランプ気味だったのだが、プログラミングをまたはじめてみる。
Donutを参考にしていろいろとKingyoHoeHoeをいじってみる予定。
って事でPlatformSDKをDLした。重いなぁ。
http://www.microsoft.com/msdownload/ platformsdk/sdkupdate/psdk-full.htm
あと、iriaかirvineのソース(見つけました でもディルファイ分からないし)を持っている方。
いらっしゃいませんか〜〜?(いないか・・・)
改造して公開したい〜〜。でも、私も多忙になる可能性がある・・・


乱数はやっぱりMT法が最強だな!

その通り!!!らしい。
http://www.emit.jp/
http://www.math.keio.ac.jp/~matumoto/mt.html


乱数ジェネレータを作ってた時のバグ

0〜domainまでの変域を返す関数を作っていた。
Rand() = 乱数ジェネレータ
domain = 0からdomainまでの範囲
m_Max = 乱数の最大の数
Rand() * domain / m_Max;
が正しいのだが・・・私はヴぁかな事をやっていた。
Rand() * domain / m_Seed;
つまり、種で割っていたのだ。
さら〜にこんなヴァカな事までやっていた。
min<= x < maxの変域を返す関数を作っていたとき、
(max-min)*Rand()-min;
とやっていたのだ!!なのでアホな値がどんどん帰ってくる!!その原因が今までわからなかったんです!死ぬ〜〜
正当:(max-min)*Rand()+min;

ああ〜〜〜かわのながれのよ〜〜〜に〜〜〜(謎+壊)


2chから有用なログを発見

募集する側もされる側もここに要注意
1. 過去の完成作品がない
2. 企画者が企画しかしない
3. 無報酬で重労働
4. シナリオなのに小説を見せてくれない
5. 役職がやたら細かく分かれている
6. スタッフがすでに大量にいる
7. 市販品以上を目指している
8. キャラ紹介ページにのみ力をいれている
9. 説明で「○○みたいな」を連発
10.HPのデザインセンスがない
これはなんでしょうか?
実は、ゲ製作板に書いていた奴です。
ゲームの製作メンバーを集める時、または、そのような話に乗る時に注意する点だそうです。
この時、募集を告知していた人は叩かれまくりでした。(実は親切な発言が沢山)
また、その板には非常に有用な発言が書かれており、かつ、URL先も濃いものでした。
非常に勉強になったのでURLを載せておきます。
http://pc2.2ch.net/test/read.cgi/gamedev/1005323011/

d金魚スランプ中

かなりスランプです。(2003/04/07現在)
プログラミングが駄目です。書けません。思いついても、気兼ねしてしまいます。
実装形式(デザインパターン)がなかなか定まらなくて、上手く書けません。
もしかしたら"金魚ほえほえ"の書き直しが多すぎて実装するのがトラウマになってしまったのかもしれません。
今、作っているのは金魚ほえほえβ版にCSVLoaderにSoundLoaderにDxLibの改造計画にプロコンにBMPの暗号化エンジンにGCAで圧縮したソフトのインストーラーとか〜〜(やる気なしな声 風)
ヴっちゃけBMPの暗号化は最高に楽だ。ただ、ドットの部分をムチャクチャにしてやればいいだけだ。
こんな奴使えば楽ショウなのよ〜〜ん。ヽ(゜▽、゜)ノ ウヘヘヘ(超壊)
GCAのインストーラもDLLつかってやればあとはファイル関係の関数をチマチマ調べて作っていけば終わる話。
CSVローダもそれなりに組んでいれば1時間ぐらいで完全に実装できるだろう。
しか〜〜しやっぱりやる気Noting。かなりやる気ありません〜〜〜〜。
なのでしヴぁらくPCは触りません。イヤです。やりたくありません〜〜〜〜。
ヴァいヴァい [Disp]-[PC]-[Kbd] ポイ〜ヽ(゜▽、゜)ノ ウヘヘヘ イラネ〜ヨ(逝


むかーしむかし作ったSTGをUP

ちなみにSTGとはシューティングゲームの略です。
それをUPしたのでお時間がありましたら、やってみてはいかがですか?
ちなみに〜ソースに関してはちょっと問題点があるので、 それが解決しだい、かつ、見たい人がいればUPしますので〜!
あと、BBSに感想を書いてくださいね〜〜^^(感想を言えるような代物ではないのだけれど…)




Game Programming Gemsを買おう!

どうか、買う時になったらここからリンクして買ってください。
どうか、カンパだと思って!!お願いします。
ペコm(_ _;m)三(m;_ _)mペコ

英語が出来ん!!

http://ipsc.ksp.sk
ここでプログラミングコンテストをやっているらしい。
しかし!私は英語が出来ない!!!!
情報源は この記事です。 | (Searched result by Google) です。
1999年だから4年前の記事だよ。
すげー古典じゃん!!!
でもHPは存続しているみたいだからコンテストをやっているのかなぁ?
http://contest.uvarov.ru/ って事で、ここも発見しました。
元記事です。 (Searched result by Google(with no language specification))
こっちのほうが2年前だから新しいな!!
こんなのもあるらしいが、宇宙人のd金魚は参加出来ないのかよ!!
米国の18歳以上なんてひどひよ!
でも、優秀な方のソースが見れるからいいか^^
私はまわりに教えてくれる先生がインターネット上にしかいないので、独学志向です。
経験上、 ソースが見れる事は最高の勉強である!と主張します。
次が記事による勉強です。
例えば、 こことかね!!Buffer Overflowについての記事です。


yaneSDK 3rdが使えMath!

やっとyaneSDKが使える環境になりました。
まず、今まで使えなかった問題点としては、

ちなみに英語版のほうがダウンロードしやすいSingle Downloadって所を押して!
非常に安定性が高く、私はすごく気にいってます。是非つかってみてください。(要C++が使える事。
WinGLも安定性が高いと聞きましたが、さて?どっちが良いのでしょうかね?
最近、数学にはまる。このHP分かりやすいよ!フーリエ展開の完璧理解に挑戦中


static はメモリ確保関数也!

こんばんわ〜〜。dです。
さて、何故?static はメモリ確保関数なんでしょうね?
Singletonで確保するのにstatic はかなり便利なんですよ。
例えば、

こんな感じです。
いちいち、mallocしたり、フラグ使ったりしてやるより、高速だと思うし、安全だと思うのですが…
これを応用すれば、 BoehmGCを使わずに安全なメモリ管理ができるかもしれません。(かなりムズソウ)

Vectorもどきって超いい感じ!

タイトルの通りです。
実は、C++でいうSTLのvectorってあるじゃないですか。
それって、かなり癖があって使いにくいんですよね。
Windowsプロフェッショナルゲームプログラミングという書籍にもvectorの癖をつっついている情報が載ってました。
ですが、そこらへんの事情をほぼ解決したのがこのvectorもどきなんです。
しかも、その配布サイトの記事がまた、面白い!
新感覚新聞をよんでいるような感じです。
行って見てはいかがですか?


BoehmGCって何よ!

で、前、紹介したうちの一つのBoehmGCについての詳細が分かりました。
Hans-J.Boehmさん が作ったようなのですが、BoehmGCのダウンロードページに行きつくのにちょっと時間がかかります。
私、英語できんし。
ちなみにBoehmGCって何よ!って思った方も多いと思いますが、 C言語で大量のメモリを確保する場合、mallocを使いますよね。
強引に配列でやる方もいるのかもしれませんが^^;
でmallocしたものはfreeしなきゃいけないという原則があるのです。
しかし、そのfreeは忘れやすく、ではatexitでさせようかとなるとたまに二重開放してしまい、 他のタスクに影響が出るなど、本当に嫌らしい関数で私はfreeが嫌いでした。
しかし、このBoehmGCというライブラリを使うと、freeしなくて良いのです!
くわしくは、DxLibFanのBoehmGCの使い方にて。



参考サイト,参考文献

以下のサイトを参考にしました。資料をインターネット上に置いていてくれる皆様に感謝します。

Screen Shot

Logic image
Trouble
screen shot 01
screen shot 02
screen shot 03



ダウンロード

いちおうダウンできるようにしました。2003/09/20
ソースはもうちょっと待って。
dkutilのバグ等が取れたら、 しっかりアップしなおしますので、

DownLoad Source, Binary , dkutil beta1 library ,dKingyoUtility2 DLL,dKingyoUtility2 source
Download Binary


反省文

今回はプロコンにすら出せない惨めな結果に終わりました。
・・・
トップページからのログにも書いていますが、以下のような事が敗因です。
  • シーン管理のクラスが締め切り2日前にくみ上げたという非常に信頼性の低い、未知数なクラスを使ったこと。
    これに関しては、クラスの設計が悪く、途中から欠陥が大量に見つかり、おかしくなってしまいました。
    さらに、Releaseビルドをかけると原因不明のバグが発生するという はっきり言ってムカツクものでした。
  • 糞ライブラリばっかり作っていてゲーム製作に使うであろうロジック部分がまったく作られていなかったこと。
    はい。そうです。へなちょこなメモリ管理機構ばっかり作ってました・・・
    スレッドセーフなメモリコンパクション機構とかね・・・(できるはずないだろ!と言われればそれまでなんですが・・・
  • 未だに、XMLローダー作ってないし、座標、マップエディタも作ってないこと
    処理内容、演出等まったく考えていませんでした。なので、データ構造も思い浮かばず・・・私の負けです。

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送