2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

親父PGがゲームを作り始めるスレッド

1 :親父PG:04/03/30 02:40 ID:phIrC7nN.net

C++やC、アセンブラは昔こなしたし、プログラムの事なら自信はあるけど
ゲームは作った事が無い方。現場からも引退したし(w。
ここは一つ趣味でDirectXでも勉強して、ゲームでも作ってみようかなぁと思った、
オジサンPGのスレッドです。

一緒にマターリライブラリから作りませんか?

243 :名前は開発中のものです。:04/04/21 01:50 ID:cLgAiJmm.net
つーかネックになる場所は大概描画方面だったりするので
その辺はDirectX使ってるのなら問題になることはないでしょう
インタプリタの旧VBでもネックになることもよほどのレベルじゃない限りまずありません

むしろ中間言語系は同一バイナリでも最適化できるのもポイントです
たとえばjavaの1.4.2は従来バージョンのアプリも大幅に高速化しています
これはSSEを使っているためです

静的コンパイラの最適化はたしかにいいのですが動的に環境に適応する
コンパイラ(hotspot技術)というのも使うかどうかはともかく遊び倒す
テーマとして面白い物です

ちとふるいですが
http://www.geocities.jp/toshio16369/column/021108a.html
もちろん、今の最適化はこのころからくらべてかなりよくなっています


244 :親父PG:04/04/21 04:38 ID:OH77B7oH.net
>>242
おつかれさま。 >現在構文解析ツリーの設計と言語設計の矛盾を小一時間(いや、もっとか)問い詰めています。
^^;復習してまでやってもらえて感謝です。
配列は会社で暇な時に紙に書いて構築しておりました。32Byteに収めたかったんですが、48byteになってしまいました。
あれだけではわけ解らないと思いますので補足説明しますね。
unsigned char MainCodeToken;//このテーブルの主な役割を示す
これはズバリそのままで、「計算」とか「IF文」「Swith文」「価のセット」など仮想VMに命令を伝えます。

char Enable;//この値が-1の場合シナリオエディタを使ってコンパイルされていない 0:disenable 1:enable
このー1というのはマップコンパイラ以外のツール(MAP(地形)にトリガーを埋め込むツール)などで
書き込まれたデータ−という意味です。 これを見つけたコンパイラは処理を追加義務が発生します。
命令コードは「地形MAPツールによって追加されたトリガ」になります。
 
unsigned char PAtype;//パラメーターAの指している場所、使われ方等をコードで示す
次のパラメータがFGのINDEX番号なのかMAPの座標なのか価なのかを表します
またINTをつかうかShortを使うか両方つかうかを識別します。
INT ,Short , (Short+INT), Short:INT , Short,(HIWORD)Short,LOWORD(Short)

unsigned char CalcToken;// 計算式
2つの価を同計算計算するか示します + - and or not > < >= <= ,INTかShortか両方か
パラメーターが複数ある場合(PAtypeで指示)、もここのコードで判断します。
同じ[+]を表すコードでも両方を加算するトークン用、片方だけのトークン用があります
パラメーターが複数ある場合、処理に引き渡す引数としても使えます。

char BoolToken;// トリガー条件 真の時 偽の時 =0 !=0 - + -1 +1 2の倍数 
-64〜+64までは価として(6ビット)最上位ビットが 真の時 偽の時を表します
7ビット目がONの場合ユニークな条件を設定します65〜127 -65〜-127

00000000 は計算結果が0の時 真なら
10000000 は計算結果が0の時 偽なら
00000001 は計算結果が1の時 真なら
01000000 ユニークな条件(いまは考えていないorz)

245 :親父PG:04/04/21 10:08 ID:OH77B7oH.net
>>243
コンピューターの高速化がもたらした波ですなぁ。
Parlで最初にスカラー型を知った時は驚きでした。インタプリタできる芸当ですね。

ところで...
じっくり取り組もうとか宣言しているにも関わらず、パコの前で気絶してしまいましたorz...


246 :名前は開発中のものです。:04/04/21 11:34 ID:5LzXW3vc.net
×disenable
○disable

247 :名前は開発中のものです。:04/04/21 14:14 ID:y1g5Kw7w.net
×Parl
○Perl

248 :親父PG:04/04/21 14:17 ID:iaRnmK/d.net
>>246 247
orz....

249 :親父PG:04/04/21 19:09 ID:iaRnmK/d.net
新人PGさんへ
スクリプトを組むに当たって構造設計のお話を致します。

定義 スクリプト言語の本システムにおける位置付け
本システムVMにおいて動作命令を出す事が可能である。
条件文は主にトリガーテーブルに置かれ、実行命令文をわけて管理される(トリガーTBLと実行データ-)

アイドルは何処に書かれる?
アイドル状態を想定する必要は無い。スクリプトは処理が終わると自動的にアイドルモードに切り替わる。
必要がある場合にVM側よりトリガーが引かれ実行される

MAP座標
ユーザーの入力     -トリガ>トリガーTBLを検索 >実行>VMに実行部(が書かれたシナリオ上の番号を渡す) 
ボタンを押した時の処理

現在考えているのはこのようなタイプの静的なスクリプト処理です。(一部引数を動的に処理)

ここからが相談ですが、動的に処理をしたほうが好ましい内容があると思われるのですが、何か希望がありますでしょうか?

変数、配列 などがまず考えられます。

具体的な実装方法は考えていませんが、「外部プログラムの起動」やゲーム特有の処理が必要な場合、DLLの読み込みなども考えられます。

------------------------------------------------------------------------------------------------
余談ですがツクールXPの紹介HPを見ました。あまり細かいところまでは判らないですが、
MAP(地形)が3階層 画面サイズが640*400 MAPツール(チップ編集による地形作成)
スクリプト機能 暗号化機能などがあるようです。 暗号化機能というのは注目すべきアイデアかもしれませんね。

MAPツール(チップ編集による地形作成)については考察が必要かもしれません。


250 :親父PG:04/04/21 19:57 ID:iaRnmK/d.net

新人PGさんはご存知かもしれませんが、MAPツールについて確認の為に書いておきます。

ゲームの画像の伝統的なやり方として、チップデータ-によるMAP作成という手法があります。
これは決められたサイズ8*8 16*16単位で書かれたチップデーター(画像)を並べて画像にしていくというのがあります。
これはコンシュマーのマシンが1キャラをハードウェア的にそのように扱っていた為に、行われてきた伝統的なやり方です。
同じパターンの使いまわしができるという点で、手動でデータの圧縮しているという側面がありました。
PCエンジン開発用のPC98用ツールが広く出回って、色々なゲームの開発用に使われた事は結構有名(orz...

さてツクールでは、そのような方法とおぼしき方法が使われているようです(違っていたらごめんなさい)

DirectXでは画像を細かく分割して扱うメリットはないので、親父システムではこのような方法はサポートしません。
地形画像データ-はJPGで(笑
 
最近の(とはいってもかなり昔からだけど)地形ツールは論理的な地形データをツールによって並べると、
境目には自動的に埋められていくようです。平平山山<こういうデータ-の場合平^山の間に自動的に間を補完する画像データ-が置かれるようになっています。

こういうツールも1から組み立てると大変ですねぇ。とりあえず最初は1枚画でいいかなorz....


251 :名前は開発中のものです。:04/04/21 20:06 ID:cLgAiJmm.net
PCGデータ使った方がサイズ小さいというのはともかく
Jpegだとカラーキーやアルファ扱うとき困りませんか?
重ね合わせとか普通しますし

それにハイドライドやFFの森のようなものをやる場合どうします?


252 :231:04/04/21 20:44 ID:uRL7H9Xs.net
>>親父PGさま
長い解説ありがとうございます。
>>サイトのサンプルはコピペではなく、意味を理解して使う事が望ましい。
肝に銘じておきます。
取り敢えずDev-Cで頑張ってみようと思います。いつかそれなりにプログラムが書けるようになったらここに戻ってこようと思います。

>>新人PGさま
わざわざありがとうございます。

253 :親父PG:04/04/21 23:39 ID:OH77B7oH.net
>>251
いろいろと方法があります。アンチエイリアスなどが必用な場合を「除いて」単純なクロマキーであれば
|アンド演算で抜けます。また全体を半透明にする場合はα値を偽造します。

うまくいかなかったらPNGでorz.. 

>>231
いつでもどうぞ^^ 前向きな書き込みであれば、歓迎しますよ。



254 :新人PG:04/04/22 00:09 ID:GFAvdjZl.net
>>243
色々意見ありがとうございます。
あまり大それた物を期待してもらうと逆に恐縮なんですけど、自分の出来る範囲で頑張っていこうかと思います。

>>親父PGタン
一応まとめの方に、トリガデータを載せました。
僕のアタマが悪いのか、完全理解が出来てません。また聞きます(汗

>>スクリプトの構造設計
・アイドル処理は要らない
同意&同感です。こちらはトリガ処理・シーン処理記述のみを書かせます。
しかし未だにMAP座標にトリガーを持たせるのにはちと抵抗があります・・・。

・静的か動的か
変数、配列はサポートします。
DLL読み込みやその他プラグイン読み込み等は、今は考えてないです・・・。
とりあえず、第1段階完成後に考えます。

・チップデータの地形
実はあんまり好きくないです。
本当は3Dで臨場感のあるタイプのが好きなのですけど、難しい=親父PGタンが大変 なので
今回はアリかななんて思っています。
まあ、チップも一枚絵も対応すると言う事ならば、チップで組んだほうが両対応で良いと思いますけどね。

255 :親父PG:04/04/22 00:10 ID:cy5y1emu.net
>>新人PG様 まとめページ有難うございます。

いくつか修正点がありますので書いておきますね。
ParameterA パラメータ左辺値? 2
ParameterB パラメータ右辺値? 2

意味のコメントはそれであってますよ^^
サイズは4です。

CalcToken 計算式?? あまり良く分っていない・・・
unsigned char CalcToken;// 計算式
2つの価(ParameterA ParameterB)
をどのように計算するか示します + - and or not > < >= <= ,INTかShortか両方か
パラメーターが複数ある場合(PAtypeで指示)、もここのコードで判断します。
同じ[+]を表すコードでも両方を加算するトークン用、片方だけのトークン用があります
パラメーターが複数ある場合、処理に引き渡す引数としても使えます。

例 10は足し算 A+B
  11は足し算 A'A+B'B 二つの価を上位ビット下位ビットで解釈
  12は足し算 A'+B'   サブパラメーターで演算

例 21は比較 A?B
22は比較 A?B A'?B'
23は比較 HIWORD(A)HIWORD(B) LOWORD(A)LOWORD(B)

こんな感じです。

ParameterType ?
以下の3つのintの分割方法を示します。Short *6とか

解らない点がありましたらどしどしご質問ください。

256 :名前は開発中のものです。:04/04/22 00:10 ID:hQ7KmIOV.net
>>253

いや、jpegってことはピクセルが綺麗に抜けないってところが問題なわけで
ブロックノイズ単位で色が抜けるのはなんかいやだ
ま、pngでいいんじゃない?
αももてるし、パレットもあるし

ところでハイドライドとかの森って実現できるの?
キャラのY座標によって手前に行ったり奥に言ったりするようなオブジェクトなんだけど

257 :親父PG:04/04/22 00:19 ID:cy5y1emu.net
>しかし未だにMAP座標にトリガーを持たせるのにはちと抵抗があります・・・。
キャラがある座標にいどうする。
MAP上にはトリガーがあるという情報しかありません

そこで初めてMAPからトリガーテーブルに対して座標引数をもったトリガーが呼ばれます。
と、いっても実際にシステム側からすれば、一致する座標のトリガーテーブルを検索して探すだけなんですけども。
(これが理由で命令コードにMAPから呼ばれた命令)というのがあるわけです。
検索速度を上げるためです。

スクリプト側から見れば、座標データ−さえセットしておけば、システム側から勝手にトリガーを
引いてくれる事になります。


チップデータ−を内部でサポートするというとは、実際にチップINDEXを持って使用時に組み立てる作業を
PG内部でおこなう事をいいます。今回このようなことはおこないません。


258 :親父PG:04/04/22 00:30 ID:cy5y1emu.net
>>256
おお256を踏みましたね。このスレも無事に1バイトを超えました(W

ご心配のJPGデータですが、内部に読み込むとARGB各8ビットというデータ−に変わります。
この時点でαは全ピクセルにFFが割り当てられています。
このFFの価を変化させてあげると半透明になります。

実はこのようなことを心配しなくても、2つのテクスチャはちゃんと抜くことができます。
αが意味を持つのはエッジ処理です。全体に薄くしたり特定色(黒)を透明にする事は特に
PNGを使う必用は無いのです。

綺麗にエッジを抜く場合はαデータ−を持ったPNGが有利ですが。それほど必用でないものや
最初からスクリーン<−フォトショップのレイヤー属性のあれ(or演算)
であればαデータ−なしでもそれほど問題になりません。
要するに使う場所と目的によって決定されます。


259 :親父PG:04/04/22 23:37 ID:cy5y1emu.net
>>新人PGさんへ
>しかし未だにMAP座標にトリガーを持たせるのにはちと抵抗があります・・・。
もしかして、地形MAPにあの48バイトのトリガーデータを持つと、お考えですか?
もしそうなら違いますよ。地形データには「トリガーを引いて」という意味の1バイトデータしか使いません。

眠い、眠いです。ツールにバグがあった...ナオサナケレバorz...

とある会社のデータ−ベースに製品シリアルに「ハイフンと全角ハイフン」が混じって登録されているのを発見。
直すのは不可能との事....(メインフレーム上にあり、直すのにんんんん万かかるらしい)激しく鬱ですorz...



260 :名前は開発中のものです。:04/04/22 23:42 ID:q2BwaruN.net
ウィンドウ見せてクリ

261 :新人PG:04/04/23 00:03 ID:zEfEFbHL.net
>>親父PGタン
お疲れ様です。
メインフレームは触った事ないんで良く分らないですが、コンバータ組むぐらいじゃダメなんでしょうね・・・きっと。

>もしかして、地形MAPにあの48バイトのトリガーデータを持つと、お考えですか?
>もしそうなら違いますよ。地形データには「トリガーを引いて」という意味の1バイトデータしか使いません。
いえ。トリガーを変更した場合、直接は関係なさそうな地形MAPもデータを作りなおさなきゃいけないのでそう思いました。
ツールが補完するとしても、地形MAP編集ツール等がトリガーの事を気にしなくてはいけないデータ構造はちょっと・・・。
地形MAPは地図情報のみを扱う事にすると良いのでは?、と思ったのです。

言語設計なのですけど、一連のシーンを1関数として定義していきます。
吉里吉里のスクリプトを大いに参考にさせて頂いています、が、そこまでの汎用性は無いです。
言語上に機能として持たせたい物で、レイヤー・ウィンドウ管理、外部ファイル読み込み、がありますがどうでしょうか?
(特に外部ファイル読み込みは静的か動的かの話題なんですけど・・・)

262 :親父PG:04/04/23 00:05 ID:nZvvFTd4.net
>>260
まだデザインなど適当ですがこんな感じです。
http://www02.so-net.ne.jp/~wizzhen/flash/test.jpg

今 標準的なメッセージ表示用のものを造っているところです。
OKボタンは左上のものが入ります

ツールのバグでいま表示できていませんorz...


263 :親父PG:04/04/23 00:11 ID:nZvvFTd4.net
>>261
おつかれさまー
メインフレームの件は私もそう思ったんですけどね。そういう簡単なものではないらしい
未知の世界(デッカイTAPE装置が動いている世界...

MAPの話
例えばMAPにトリガーが無いと仮定すると、
キャラが移動する毎にトリガーテーブル−のサーチが必要になります。
これは効率が悪いので、MAP側に「探せ!」というコードを埋め込むわけです。

外部ファイル読み込みは 動的に処理しないとあまり意味はありません。
固定長のトリガーテーブルは後ろに付け足しできるなど、扱い易い点はあると思いますけどね。

264 :親父PG:04/04/23 19:05 ID:nZvvFTd4.net
新人PGさんへ
豆乳システムの命令リファレンスです
ttp://tonyu.kake.info.waseda.ac.jp/api/wiki.cgi?page=%cc%bf%ce%e1%a5%ea%a5%d5%a5%a1%a5%ec%a5%f3%a5%b9

これを参考に実行部のほうも定義していきますね。

265 :親父PG:04/04/25 16:09 ID:F+nBnVBh.net
まだデザインなど適当ですがこんな感じです。
http://www02.so-net.ne.jp/~wizzhen/flash/test.jpg

文字出力が出来ました。

このウインドは全角で24文字程度の出力用です。
文字量が増えた時は何もしませんorz...

スクロール機能を備えたウインドはこの次に作成します。

ところで皆さんは文字列用のライブラリは何をお使いですか?
(特に可変文字列など)
私はSTLのbasic_string を使っておりますが^^


266 :親父PG:04/04/25 16:10 ID:F+nBnVBh.net
ageてしまったorz.........................

267 :親父PG:04/04/25 16:25 ID:F+nBnVBh.net
>>新人PGさんへ 今、ある下位コマンドです。設計の参考にしてください。
const hOBJECT _mesNewOBJWin( int objtype,D3DPRIMITIVETYPE stype,unsigned ten ,byte* pstruc ,int zindex);//Winsowの登録(OBJを呼び出し)
const hOBJECT _mesNewOBJ( int objtype,D3DPRIMITIVETYPE stype,unsigned ten ,byte* pstruc );//OBJの登録
const hOBJECT _mesNewOBJ( int objtype,char* texfilename ,int usealpa);//テクスチャの登録
const hOBJECT _mesNewOBJ( int objtype ,float x,float y ,float z );//四角などの登録
const hOBJECT _mesNewOBJ( int objtype ,float x,float y ,float z ,D3DLIGHT9* );//ライトの登録
const hOBJECT _mesNewOBJ( int objtype ,float x,float y ,float z ,float w,float h,float r );//空間の登録
const hOBJECT _mesNewOBJ( int objtype ,float D3Dfontsize, char* outputtext ,int D3Dfontnumber );//フォントの登録
void _mesVirePortTextureSet();
int _mesViewPortProfileLoad(char* datfilename );//ViewPortの切替 セッテイングファイルの読み込み
int _mesViewPortProfileLoad();//ViewPortの切替 セッテイングファイルの切替
int _mesLoadTextureforProfile();//テクスチャファイルを一気に読み込む関数
int _mesMakeButtonforProfile();//ボタンを貼り付ける□を作成する
int _mesSetButtonText( dBOption* pButtonData ,char* newtext);
int _mesSetButtonText( int btnumber,char* newtext);//ボタンのテキストを変更する
int _masMakeButton(int btnumber ,dBOption* dbt,dRECT* rect,int zindex);//ボタンを作成する
int _mesMovingOBJ( hOBJECT,int time ,float x ,float y ,float z ,BOOL sw );//objの移動  
int _mesMovOBJ( hOBJECT handle,int time ,float x ,float y ,float z ,BOOL sw );//objのSTOP移動


268 :親父PG:04/04/25 16:26 ID:F+nBnVBh.net
int _mesScaleOBJ( hOBJECT handle,int time ,float x ,float y ,float z ,BOOL sw );//objの拡大縮小
int _mesShowOBJ( hOBJECT handle, int time );
int _mesHideOBJ( hOBJECT handle, int time );
int _mesSetObjectOutputText( hOBJECT handle,float x,float y,float z,float fontsize=FONT_NORESIZE,const char* outputText =NULL );
int _mesDeleteOBJ( hOBJECT handle, int time );
int _mesSetWindowPos(unsigned int nWin ,float x,float y ,float z);//Moveコマンドを一斉に発行する_mesmoveの上位コマンド
int _mesSetTexture( unsigned int taget,unsigned int texnumber ,unsigned int coindex =0);
int _mesSetArea( hOBJECT tagetA,hOBJECT objnumber,unsigned int _incommand_=0,unsigned int _outcommand_=0,unsigned int _hitcommand_=0 );
int _mesSetObjectStatus1( hOBJECT handle,OBJSTATUSFORMAT _format_ );//
int _mesFontColorChange( hOBJECT handle,float r,float g,float b );//FONTに対してのみ有効 即対応型
int _mesFontSizeChange( hOBJECT handle,float _fontsize_ );//FONTに対してのみ有効 即対応型
void ClearALLOBJ_();
hwin _mesCreateWindow(unsigned char WinType ,short X,short Y);
void _mesDeleteWindow(int hwin);

変更・追加はありますorz...つぎはぎだらけなのがばれてしまうソースですな(汗

269 :名前は開発中のものです。:04/04/25 17:29 ID:TuLiLdfJ.net
>>265
std::string でお茶を濁してまつ

270 :新人PG:04/04/26 00:37 ID:RHLEfjhQ.net
公言した連休まで一週間しかないYO!
先に謝っておきます。多分動くもの、できません・・・。

Boostのspiritを使いつつ、字句&構文解析を頑張って作っているところです、が、なかなか思うように進んでおりません。
言語仕様ですが、まだ公開できる段階ではありません(汗
最終形は似非C言語+謎の独自予約語と思って頂くとわかりやすいかも知れません。

出来たところ
・EBNFの基幹部分(やっと終わった・・・)
・演算部分の字句・構文解析実装
・if文の字句・構文解析実装

出来てないところ
・その他の構文の字句・構文解析実装
・中間コード設計(先にやった方がいいな・・・)
・目的コード設計
・中間コード出力実装
・中間コード解析実装
・目的コード出力実装
・その他ドキュメントなど・・・
全然出来てませんな・・・。早く出来るなんて嘘こきましたがもうちょっと時間を下され・・・。


271 :親父PG:04/04/26 00:46 ID:Tu3Nnhfj.net
>>270
お疲れ様。^^
まぁ肩の力を抜いて楽しくいきましょう。
自分で仕様を決めて造るProgramは、楽しくやらないと損ですからね。
力を抜いて頑張ってください。

私の方もWINDOWの拡張に努めています。文字列が入りきらない場合の
文字のスキップ(スクロール)の処理などをやってます。
出来上がった所から少しずつ、先のURLにあぷしていこうと思います。

私事ですが明後日に光が開通します。
勢いでMN8300W買ってしまいましたorz....


272 :名前は開発中のものです。:04/04/26 09:31 ID:YvjKmIIw.net
なんか文字の後ろが透過されてないんだけど、
もしかして例のDIB側で合成して、αを使っていないせい?

273 :親父PG:04/04/26 12:40 ID:Tu3Nnhfj.net
>>269
スタンダートストリングですか^^
何が何に強いとか特長とかあるんですかね?
C関係は文字ライブラリの種類多すぎorz...

デルファイのようにStringが、すべてカプセル化して1つしかない状態のほうが
シンプルで良いような気もするんですけどね(個人的には)

string.sort() ←こういう事が標準でできるあたりはCも便利なんですが...

>>272
そうではありませぬ。
文字の後ろは可読性を考えて、わざと不透明にしております。
文字は高精度αを使って滑らかに出力しております。

「文字 DIB
 |合成(スクリーン)
 背景」Tecture このとき背景のαを255←ここを変化させると透過する
ポリゴン
(重ね合わせ)
WINDOWポリゴン 頂点にα設定 
(重ね合わせ)
サーフェースカラー

274 :名前は開発中のものです。:04/04/28 22:48 ID:ZcMEeys0.net
応援さげほっしゅ

275 :親父PG:04/04/29 00:55 ID:fKr8I6Zs.net
>>274
最近、書き込み少なくて寂しいのでorz...ありがとうです^^

さて我が家にも光が開通したのですが、ADSL>光の切替が月末に固定されているので
使えないというorz...

システムのほうはコンポーネントという概念(複数のコントロールOBJ)を一括して扱う
この実現のために新しいクラスの定義、一部命令の移動など工事などを進めました。

仕事の合間に紙に、ボールペンでクラスの構造設計書を書いておりました。
落書きの山ですな。

この新しいクラスのためにSTLのタイプを何を使うか検討しています。

STLの種類選びはなかなか重要で本システムでも、Vector と deque を
切り替えただけで80%速度が改善しました。

さて親父日記は終了して 仕事に戻ります

276 :新人PG:04/04/29 21:03 ID:im0w3ame.net
>>親父PG
お疲れ様です。
アク禁食らっていてカキコできませんですた・・・。

言語の設計
・ホワイトスペースは 空白・タブ・コメント・改行文字とします。
・コメントはJava風("//" "/* */")
・if,for,while,switch,gotoあり
・型はshort,int,long,byte,string
・予約語としてscene,array等を予定
・関数の宣言 int function Func1(int arg,string str){...}
てな感じです。(細かい所はまた後で)

クラス実装はほぼ諦めてます・・・。(だれか作れる人がいたら受け継いでくれ〜)
標準APIをこちらが実装する事でゲームの記述を行えるようにします。

こちらもコンパイラ作るのが飽きたときにコソッとゲーム考えたりしてます。
地形なのですけど、テクスチャから地形ポリゴンの高低を生成できたりすると面白いかもしれません?

#文字列は普段はstd::string MFC環境はCStringを使っています。

277 :親父PG:04/04/29 21:51 ID:j+4sgpkF.net
>>276
お疲れさま 現在私は夜勤中ですorz... しかもノートPCの電源家に忘れた。さらに鬱....

仕様ですが、最初の段階としては問題ないと思います。
そもそもクラス言語が理解している人ならば、ゲームツールを使わず自分で作ってるでしょう。orz....
というわけで、簡単な言語仕様をまとめて、シナリオライタークラスの人に「難易度」を計ってもらう事が必要かもしれません。

>>こちらもコンパイラ作るのが飽きたときにコソッとゲーム考えたりしてます。
いいですねぇ。なんかPGの話ばかりしてると、PG以外の人が寄り付かなくなってしまうので、いろいろとネタを振るのもいいかもしれませんね。

>>地形なのですけど、テクスチャから地形ポリゴンの高低を生成できたりすると面白いかもしれません?
すまん。もう少し詳しく教えてくだされ。テクスチャの何から高低を生成するのかな?

いきなりですが、DirectXの描画ループの説明を致します。
DirectXの描画ループ
 ポリゴンを作る
 ポリゴンにテクスチャを張る
 レンダリングGO
 描画(FLIP) 
ポリゴンを張るというのはポリゴンのデータ-に対してテクスチャの(ポインタ)を渡します。
するとあとはDirectXが勝手に描いてくれます。いいですねぇ。
さて2つのポリゴンに対してテクスチャAを割り当てた時に、テクスチャAの内容を変化させるとどうなるか? 答えは2つのポリゴン両方の内容が変化します。
この特性は美味く使うと便利ですが、少し困る事があります。その場合はテクスチャのコピーを作ってそのポインタを渡したほうがいいかもしれません。


278 :新人PG:04/04/29 22:17 ID:im0w3ame.net
>>親父PGタン
(゚Д゚)オツーです。
シナリオライターはツールやこちらが組んだAPIを使用して、シンプルな記述が出来るように設計します。
ほとんど変数や分岐を記述させないで、こちらが用意した評価関数を使用させるようにします。
(ほとんどGameProgramming Gemsの内容に従っての設計になっています)

>>地形データからマップ生成
http://www.uroboros.org/manageddirectx_csharp.html
こんなのを見ていて面白そうだと思いました。

>>テクスチャの話
テクスチャを1つだけ生成して複数のポリゴンに参照させる事が出来るんですねぇ。
ゲームPGを全く(ていうか画像処理を)やった事の無い自分にとって面白い仕掛けだらけです。

279 :親父PG:04/04/30 01:23 ID:yNfOtjDQ.net
>>278
お疲れさま。
サンプル見ました。面白いですね。ではランドスケープの部分は新人PGさんにお任せします(w
とりあえずなのですが、MAPは一枚画を3枚ぐらいレイヤー構造でスクロールするものを考えています。

でランドスケープのシステムの話。
シミュレーションなどで使うMAPでは論理座標を管理するMAPが存在します。
これを表すためにXY(Z)の配列をつくってその座標の特性に合わせてランドを作成します。
1が海2が平地として
111111
111211
112211
111111

古典的なやり方では1対1に対応して「チップ」データをおいていきました。
昔の「大戦略」などを思い出していただければ結構です。
これはMAPをユーザーにもエデットできるという仕様上からもこのような設計になってるのでしょう
ユーザーにエディットさせないのであれば、1枚画を使ったほうが綺麗ですね。そういう方法を使っているところも結構あります。

さて次の方法ですが、1に上げた方法を拡張して平地と海の間のグラフィックを補完する方法というのがあります。
1と2の間に海岸のグラフィックを表示する
これは3Dではない地形データを表現する方法として多く使われています。

3DMAP 予め作成済みの頂点データ-とポリゴンデータの組み合わせを表示する。
これは速度的にもよく使用されている方法です。動的に変化するのは必要な部分のみ。
通信ゲームなどはこの方法が多いのではないでしょうか?

本システムでは(とりあえず)斜め上視点を考えてます。後期ドラクエと考えてください。
地形MAPツールも作らないといけないですねぇorz... やる事多すぎw
次に考えているのは論理MAPデータ-からポリゴンデータ-を動的(読み込み時)に作成して
ポリゴンを貼り付けていく方法というのがあります。
速度的な心配があるのですが、精度がそれほどでもなければなんとかなるかも。

280 :新人PG:04/05/02 16:13 ID:tneOjVuC.net
>>親父PGタン
お疲れ様です。連休入ってから呆けていて遊んでました・・・、スンマソン。
スクリプト言語、中間コード生成までは問題なく進めそうです。(BoostのSpiritのおかげです・・・)
問題はその先なのですが(汗
Mの命令語の設計が出来てからマッピングを考えるのでそれ以上は保留としておきます。
不安要素は、スクリプト言語の汎用性が高すぎる事です。トリガーとマッピングできるのかしら?
恐らく、制御構造が全くといって良いほど違うので「戻り」は発生すると思いますけど。

>>サンプル見ました。面白いですね。ではランドスケープの部分は新人PGさんにお任せします(w
>>とりあえずなのですが、MAPは一枚画を3枚ぐらいレイヤー構造でスクロールするものを考えています。
ちょっと待ったーッ!2Dの表示もやった事のない僕にそんな餌を撒かないで下さい(汗
画像処理系は任せますw 後学の為に参考にさせていただきますので b(・ー・)

個人的にはMAPツールはデータをプレビューできる機能さえあれば十分だと思ってますけどねw
あとはテキストエディタなりバイナリエディタなり使ってw

281 :新人PG:04/05/02 17:45 ID:tneOjVuC.net
ageてしまった・・・スマソ。
言語仕様なのですけど、関数とトリガーを完全に別の記述方法にしました。
宣言方法も違います。
トリガーの宣言:
"trigger" [シリアルID] ([トリガーより渡される引数]){...}
関数の宣言
[型(戻り値)] [関数名] ([スクリプト内で渡される引数] ){...}

その他の変更・疑問など
・FOR文,SWITCH文が無くなる可能性があります。
・ひょっとして中間コード要らない?←出力する中間コードそのものの変更が起こる可能性が非常に高いため
(字句・構文解析とファンクタは別実装)
・計算式が書けなくなるかも?(VMの命令語次第)

282 :名前は開発中のものです。:04/05/02 19:50 ID:PAfxeO72.net
for文や計算式が書けないのはまずいんでない?

283 :名前は開発中のものです。:04/05/02 21:08 ID:wpvFJ3U7.net
普通はスクリプト系にforとかswitchはあまりないんでない?
開発ツールのほうでswitchがあってもそれをifに展開したりする
forのような繰り返しはあまり多くないからさほどいらないはず

どうしてもほしかったら後で付け加えるだけでいいし


284 :名前は開発中のものです。:04/05/02 21:33 ID:PAfxeO72.net
>普通はスクリプト系にforとかswitchはあまりないんでない?
それ本当?
逆にforに相当するものが書けないスクリプトを知らないんで教えて欲しい。

285 :名前は開発中のものです。:04/05/02 21:34 ID:wpvFJ3U7.net
普通スクリプトって社内開発で外に出ないもんじゃ?


286 :名前は開発中のものです。:04/05/02 22:19 ID:PAfxeO72.net
>普通スクリプトって社内開発で外に出ないもんじゃ?
趣味ならまだしも仕事で作って
for文も使えないってことはないのでは?

スクリプトの処理系なんて社内開発以外にも
Python,Ruby,Lua などいろいろあると思います。

参考までにPython+SDLのゲーム開発サイトです。
ttp://www.pygame.org/

287 :名前は開発中のものです。:04/05/02 22:49 ID:wpvFJ3U7.net
ここでの流れはそういう汎用スクリプトの話してねーだろ


288 :名前は開発中のものです。:04/05/03 00:18 ID:O34XE/AV.net
いや市販ゲームにも使われてるし別にいいだろ。
逆に社内開発の非公開スクリプトの話されても困る。

289 :名前は開発中のものです。:04/05/03 01:58 ID:ttTkVS1d.net
スクリプトみたいなユーザーに近いレベルの言語こそ
forとかの制御構文あったほうがいいと思うけどね。
それをjumpやgotoなどに展開するのば普通じゃないのかな。

290 :名前は開発中のものです。:04/05/03 02:07 ID:0IkDbgp8.net
for文じゃなくてwhile文なんだよ。

ってのは冗談として、ゲームツールのスクリプトでループ文はいらないんじゃない?
Mainループとしてゲーム本体があるんだから段階的に時間軸に沿って処理する場合
でも、ツールユーザーがスクリプトで書くのは判定文だけでいいでしょ。
純粋なツールではないけどMorrowindのスクリプトでもwhile文はあるけどtime Overありだし
推奨はしてないよ。
ttp://www.uesp.net/morrow/editor/mw_cscommands.shtml


291 :名前は開発中のものです。:04/05/03 03:14 ID:uGveXlu0.net
あくまで学習しながらゲームを作るのってのが目的みたいだし
多少機能が貧弱でもいいのでは?
単に高機能な物が欲しいのならフリーでオープンソースな
ゲーム開発環境なんていろいろあるわけだしそっちを使ったほうがいい。
中途半端に終了ってのが一番最悪ですから。

292 :名前は開発中のものです。:04/05/03 05:34 ID:F5voLn4B.net
>>288
それは初めて聞くな。PCゲームなの?
その手のスクリプト言語のパーサとかVMって、ライセンスはどうなってるの?
GPLだったら、ゲーム自体のソースも公開になるの?
それともコピーライト表示だけで構わないライセンス?

293 :新人PG:04/05/03 06:49 ID:XPOMrzWI.net
みなさん色々意見ありがとうございます m(_ _)m

FOR文が消える理由:
>>290さんの言うように必要性を感じなかったのと、目的コードと合わない感じがしたからです。

計算式が消えそうな理由:
計算をする事が出来るかどうか怪しいため。
あくまでゲーム中イベント処理の記述のみをスクリプトで作る手筈なので。

他の処理系(Lua等)を使わない理由:
作ってみたかったからっス・・・(・ω・;)>>291さん、フォローThanx
あと、親父PGさんの方である程度考えにまとまりがあったので下手に他に手を出すよりは良いかと思ったからです。
まあ最初はXMLでの記述のみを考えていたんですけどね・・・w

294 :名前は開発中のものです。:04/05/03 12:47 ID:nXfpjc4K.net
>>292
最近だとFarCryがLua使ってる。
ttp://www.4gamer.net/store/review/farcry/farcry.html

ライセンスはLuaだとMITライセンス。
GPLとかだったら市販ソフトにはとてもつかえないよ。

295 :名前は開発中のものです。:04/05/03 14:15 ID:GKQkdavB.net
luaは組み込み目的で開発されてたヤツだし

中間言語系でGC使ってどうのこうのってやつなんで、それでいいのであれば
javaとか組み込んで使ってるのとあまり変わらんと思われ

俺はそういう方向性でいいと思うんだけどね

でもここでは流れ見るに中間言語系は対象外のようなんで確実にクロック数が
わかるようなスクリプトしか実装しないと思う

それの出来はどうであれ、いわゆる再開発好きが集まってるところだと認識している


296 :親父PG:04/05/03 16:28 ID:+yioKA00.net
>>新人PGさんへ
色々と議論が進んでいますね。レスが遅れてすみません。

FOR文についてですが、FOR文命令トークンがあればそれに従って、VM側が行います。
ご指摘のとうり問題はその意味なんですよね。orz...

シナリオライターがあったほうがいいと感じるか? ということになります

単純に繰り返したいだけなのか
カウント用の数字を何かにつかうのか
カウントの何番目にかによって条件をいれかえるのか?

いずれにしてもVMは一命令ずつ解釈実行なので、(1命令はある程度豪華ではあるけれど)
命令が矛盾無く組み立てられるのであれば、大丈夫だと思います。
ということで、この命令にはこんなトークンの組み合わせではどうか?
という提起がスクリプト側から提示されると考えています。

その中から実現方法の[取り決め]を造って行きましょう。最初からそこまでこちらで決めると
スクリプト側の設計が窮屈になると思って、いままでその話はおいて置きました。

>>其の他の方
いろいろと貴重な意見ありがとうございます。大変助かっています。これからも暖かいご支援をお願いします。




297 :親父PG:04/05/08 01:09 ID:h8sVtZGZ.net
>>293
計算式が消えそうな理由:
計算をする事が出来るかどうか怪しいため。
あくまでゲーム中イベント処理の記述のみをスクリプトで作る手筈なので。

ADD SUB というトークンと数字の並び替えの規則さえあれば、こちらでぞれを実装しますよ^^;


今、開発マシンにトラブルが発生orz..
修理に出すので今止まってます すみません 汗

298 :名前は開発中のものです。:04/05/08 19:42 ID:cNPB2s8D.net
スレ一通り読んでみたんだけど一つ質問
今作ってるのはライブラリですか?

初心者の俺にはそれすらわからないy=ー( ゚д゚)・∵.ターン

299 :名前は開発中のものです。:04/05/08 19:58 ID:dkKvY2dU.net
>>298
>>1

300 :名前は開発中のものです。:04/05/09 18:20 ID:gB+UjQaV.net
>修理に出すので今止まってます

このままフェードアウトの悪寒・・・。

301 :名前は開発中のものです。:04/05/11 19:53 ID:yHM5YZkv.net
親父PG=47氏だったら・・・。

>今、開発マシンにトラブルが発生orz..
>修理に出すので今止まってます すみません 汗

実は押収されたの。



と、妄想してみる。

302 :名前は開発中のものです。:04/05/11 20:30 ID:UgvJm544.net
親父PGさんタイーホされたのか。


とか言ってみる。

303 :名前は開発中のものです。:04/05/11 23:30 ID:yHM5YZkv.net
結局、2chで企画立てて実現かつ成功した
例は・・・

304 :名前は開発中のものです。:04/05/12 00:01 ID:F6gUxLXe.net
ゲーム作るのにだって根気と忍耐は必要なのに1〜2週間くらい待てないのか?
仮に企画倒れだったとしても当人達以外に何か被害被った訳でもなし。
うだうだ言う奴に限って自分では何もでk(ry

もうちょっとマターリ待ってみようや(´_ゝ`)y─┛~~

305 :名前は開発中のものです。:04/05/12 00:37 ID:Sy7h6rok.net
>>304
別に誰も作業を「直接的に」急かしてる書き込みして無いでしょ?


306 :名前は開発中のものです。:04/05/12 13:40 ID:F6gUxLXe.net
>>305
???
よくワカランが俺の書き込みちゃんと読んだ?
本人がPC修理って言ってるんだから下手な煽りはイラナイだろって言いたいんだがな
>>300>>303とか。ドッチに転がっても何か損するわけじゃないしね
見ててダメだと思ったならここ見なきゃ良い話しだし

俺は変な煽りに対して言ったんだが、レス番付けなかったからちとわかり難かったか

307 :名前は開発中のものです。:04/05/12 15:02 ID:KHeRBBvL.net
そうではなく2chなんだから煽りにいちいち反応するな
ってことが言いたいのでは?

このスレの住人も当人達以外はヲチしてるだけでしょ。
既存のゲーム開発ライブラリなんてたくさんあるし
ゲーム製作したことが無い素人が作るライブラリの
完成を待ってる人なんているとは思えん。

308 :名前は開発中のものです。:04/05/12 21:23 ID:B+KWN/WZ.net
>>307
当人たちのやる気を削ぐような、刺のありすぎる言葉だな。
まあ、言ってる事は同意だが最後の二行は書くべきではなかったと思うぞ。

309 :名前は開発中のものです。:04/05/12 22:58 ID:gxCJLa/h.net
>>307
漏れニヤニヤしながら待ってるよ
使いたいからじゃなくて、見てみたいから

特に、豪華固定長命令セットの威力に期待


310 :新人PG:04/05/15 16:36 ID:0t0FzjJn.net
お疲れさんです。ずいぶんさがりましたな。
仕事の引越しの関係でインターネットが新居に繋がってません。今月中に何とかします。

スクリプトは機能を大幅に削って、ある程度完成しました。どうにかゲームの進行ができる程度です。
計算処理は復活させました。限定的な(非汎用的な)命令語が増えています(汗
現在C# + DirectX9にてデバッグ用のインタプリタプログラムを作成中です。
動作するものができたと判断した段階(6月初頭を目途)で一度公開します。
スクリプトレビューはその時に行ってもらいます。
現在作成できるゲームの限界はSFCのドラゴンクエストV+αとしています。
オーソドックスな2DのRPG(俯瞰)としていますがRPGツクールと差別化したいかな〜とも思ってます。

311 :親父PG:04/05/15 23:46 ID:n956sXSw.net
現在IBMに修理出してます。すんません。orz...

問題は...サルベージが必要かも知れません(涙
でも諦めませんので^^;まだまだ頑張ります。


312 :親父PG:04/05/15 23:48 ID:n956sXSw.net
>>310
こちらも事実上止まっていますので、ゆっくりかかってください。
サルベージにHDDの基盤交換が必要やも知れないorz...

巻き戻ったソースは残っているのですが....
で逮捕はされていませんよw


313 :名前は開発中のものです。:04/05/16 23:37 ID:XGd16B+k.net
タイーホされてなかったのか・・・よかったよう。
早く復帰してねー

314 :親父PG:04/05/19 08:49 ID:DXpNx74z.net
まだ修理から戻ってこないorz...

315 :名前は開発中のものです。:04/05/19 12:12 ID:OYSXu2wF.net
IBMのノートって壊れやすい?

316 :名前は開発中のものです。:04/05/19 12:43 ID:wKTG0vf1.net
そりゃもう踏んだだけで壊れます

踏んで壊れなかったのはLet'sだけだった・・・


317 :名前は開発中のものです。:04/05/21 04:10 ID:GxmUKizO.net
踏みすぎ

318 :名前は開発中のものです。:04/05/24 19:14 ID:8F9Ymse0.net
保守

319 :親父PG:04/05/24 20:54 ID:o3eQYwoe.net
ところで HDDなのですが、だんだんおかしくなって
最後にWINDOWSまで起動したあと、認識不能になったので
おそらく基盤故障かモーター故障だと思うのですが、
サルベージでよいとこ知ってる方いませんかね?

これもある意味 ネタにもなるし(苦笑

IBMに当初修理を依頼したところ落下判定されていました(笑
かばんに入れて持ち歩いていたので、チャックの部分とこすれて傷だらけなのがいけなかった...
状況を説明して 落下判定は取り消されました。
やはりちゃんと説明しないといけないんですね。落下だと「保障」が効かなくなります。
当初6万の請求が、修理範囲をHDDに絞ったことで「無料」
また壊れたHDDの引き取り代金だけになりました。
壊れたHDDの引取りにもお金がかかります。まぁこれは仕方の無いことですが^^;

320 :名前は開発中のものです。:04/05/24 21:15 ID:GTVh4I4h.net
俺なら新しいの買う

321 :名前は開発中のものです。:04/05/24 22:31 ID:npejv8oY.net
サルベージの話だろ?

ところで
>壊れたHDDの引取りにもお金がかかります。まぁこれは仕方の無いことですが^^;
知らんかった。なぜに?

322 :名前は開発中のものです。:04/05/25 01:31 ID:/brKs1IB.net
俺の場合、壊れたハードディスクは表面を透明プラスチックとかに変えて
部屋の隅っこに飾ってる。
ちょっとかっこいい。

323 :名前は開発中のものです。:04/05/25 03:37 ID:aIdTCCHF.net
パソコンリサイクル法とかでいろいろと理由付けて金とるんだなぁ。

漏れもIBMのHDD(ノートじゃないが)使ってたけど2年しないで
起動するたびに遅くなったり、認識しなくなったりしてとうとう逝ってしまった。
まぁ、前兆が2,3日に続けてでてたからあわててバックアップとったが、
親父PG氏はバックアップとってないのん?

開発マシンが逝っちゃうとカナーリショックだと思う。

324 :名前は開発中のものです。:04/05/25 10:17 ID:MYIRdGjF.net
PCやHDDは消耗品。万が一の時のために
バックアップはまめにとるのは開発者の常識。
個人でも何枚かのDVDRAMやRWに焼くだけでも
安心感が違うから、面倒でも最低2〜3日に1回は
全ソースのバックアップをとったほうがいい。

325 :名前は開発中のものです。:04/05/25 10:41 ID:2BcRF3mj.net
確かに必死こいて書いたプログラムが2日分
消えたときはしばらく放心状態だった

326 :親父PG:04/05/25 19:41 ID:srpPWafA.net
壊れたHDDを引き取るのにお金がかかる理由は、交換により新品をHDDを提供。
交換後の壊れたHDDは「IBMの資産」扱いなのだそうです。
なので引取りにはお金がかかるようです。
当初は新品と同じ額かもしれないと言われていましたが、結局は9000円
になりました。

高いなと感じる方もいるかもしれませんが、ノートの発送代金はすべてIBM持ち
(保険付き)サービスであるとかを考えると、それほど高いとは思っていません。
簡単なチューニングもしていただきました(発熱対策)

あまり参考にしたくない事例ではありますが(汗
なにかの参考なれば幸いです^^;


327 :名前は開発中のものです。:04/05/25 20:34 ID:aH+42FE9.net
家にサーバ一台置いて、CVSなんかでバージョン管理。
これ最高

328 :名前は開発中のものです。:04/05/25 23:08 ID:j22upQOo.net
サイト用アカウントにpassがけアーカイブをうpしてる。

329 :名前は開発中のものです。:04/05/26 00:47 ID:ALBjE7I0.net
>325
でもめちゃ苦労して、ある程度できあがってたものは
一度消えても仕事とかで納期が迫っていると、一気にその段階までもっていけるようなw

俺プログラマーじゃないけど、フォトショとかで1日かかりで作ってたようなのを
納品数時間前にアポーン->一気にそこまで作り上げ。みたいのはあるな。

フォトショの画面作りにしても、プログラムにしても、時間かかってるのは
頭つかって試行錯誤してる部分だけだから、一度形にできてると、
そこまで復帰させるのは、どうとでもなるよね。

・・・まああまり参考にしたくない話しですけど。

330 :名前は開発中のものです。:04/05/26 06:51 ID:pH6Xv3G7.net
>>329
デザインとプログラムは違うよ。
実際に経験してみないとこの違いはわからん。

331 :名前は開発中のものです。:04/05/26 07:21 ID:AGJ88VBR.net
>時間かかってるのは
>頭つかって試行錯誤してる部分だけだから
ここらへんがど素人なのね

332 :名前は開発中のものです。:04/05/26 10:02 ID:DwvFe2iA.net
まあ、かなり特殊な処理だったりするとわからんでもないな。
ただ、手馴れてくればそういう「試行錯誤」より
単なる物量が多いだけの場合が殆どであることに気が付く。

333 :名前は開発中のものです。:04/05/26 10:05 ID:iZv6MyYs.net
ノートのHDDが壊れたときは、とっとと新しいHDDを買ってきて付け替えたけど。
有償なら自分でやった方が、安いし早い。

334 :親父PG:04/05/26 14:01 ID:FihDUxqm.net
>>333
交換の部分は無償なんですよ^^ 普通は壊れた部品引き取る人いませんからね。
で目の前に壊れたHDDがあります。どうやってサルベージするか思案中です

335 :名前は開発中のものです。:04/05/26 14:59 ID:9IQYkxl7.net
クラッシュしちゃったり基盤交換が必要など物理的に
壊れてるHDのサルベージは結構な料金とられるので
多少巻き戻ってもバックアップから作業開始しちゃったほうが
いいと思いますよ。
ソースが必ずしも復旧出来るとも限らないし…

336 :名前は開発中のものです。:04/05/26 18:57 ID:JnixpBgL.net
壊れたってのがどういう壊れ方なのかもわからないなあ。
カラカラ鳴ってアクセスできなくなるタイプ?

337 :名前は開発中のものです。:04/05/26 19:12 ID:mhiAytbl.net
  ∧ ∧  カタ       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (,,゚Д゚),__カタ_ _< このスレは親父PGのHDDをサルベージするスレになりました・・・と。
  ./ つ_|| ̄ ̄ ̄ ̄ ̄| \_____________
 (,  |\||  VAIO   |
     '\,,|==========|

338 :名前は開発中のものです。:04/05/27 06:55 ID:J/CU7f8p.net
いやはや、これだけ書き込みがあって、まとめサイトも作ってないし・・
できたツールを片っ端から上げってったほうが良いんじゃないの?
(と言ってみるテスト)

やっぱしデータ構造は問題になるとは思ってたけど・・
オヤジ?さんが考えてる流れは例えば
ある地形上を歩く→どこかに着くと何番のフラグを立てる→
他のフラグもあわせて条件判断→フラグデータにあったイベントの発生
みたいな流れを考えてると思われる。(いかにも初代から3までのドラクエみたいだけど)

最近のゲームを見るに分業が進んで、たぶん上記の方法はあんまり使われてないかも?
だからシナリオが一本道になってるともみえる。でも、開発はこっちの方が容易。
シーン1(シーン1内での簡単なフラグ)→シーン2(シーン2内での簡単なフラグ)
 →シーン3(シーン3内での簡単なフラグ)→・・・
全シーン共通のフラグがこの他にあって、
またキャラクター(登場人物)データや持ち物データは別にある。

最初の方法だとフラグを管理するツールは必須だね。
何個かの条件を関連づけて表示したり、どのフラグがどのデータに関連してるかというのが
明示されて無いと、あとあとわけわかんなくなるし。
2番目の方法なら、フラグについてはほとんど問題無い。(だから最近のゲームはつまらん)

339 :名前は開発中のものです。:04/05/27 13:56 ID:T7P3bbBG.net
確認してみたがまとめぺーじきえてないぞ?

340 :名前は開発中のものです。:04/05/27 16:56 ID:5pnCAZfx.net
このスレにまとめのトップページURL二回しか出てきてないよ。
そりゃ気付かなくてもしょうがないんじゃないかな。

http://www.geocities.jp/oyajipg/
まとめページ

341 :親父PG:04/05/28 11:58 ID:tJb+of+g.net
やっぱしデータ構造は問題になるとは思ってたけど・・
>オヤジ?さんが考えてる流れは例えば
>ある地形上を歩く→どこかに着くと何番のフラグを立てる→
>他のフラグもあわせて条件判断→フラグデータにあったイベントの発生
>みたいな流れを考えてると思われる。(いかにも初代から3までのドラクエみたいだけど)

少し違います。地形データーにはトリガーがあるという1ビットですむデーターしか置きません。
何が起こるかはトリガーテーブルから検索します。
イニシャライズ時に トリガーテーブルを見て地形作業領域にばら撒きます。

構造体配列に値を入れます。1ビットですみますが領域はバイトで、0−255の値をどう使おうかな?
0はなし1はトリガー検査 さて余りましたね^^ 有効な使い方あるでしょうねぼちぼち考えます。



342 :名前は開発中のものです。:04/05/29 08:01 ID:xDPKL8Xl.net
>>341
なるほど、いいですね。
(もし、トリガーテーブルから検索する時、
位置情報を見ているなら、動く地形等のときやや混乱する気もするけど)

バイトの余った領域(6ビット分)が気になるなんて・・マイコン世代ですね。

343 :新人PG:04/05/29 13:23 ID:XFao9pZD.net
お疲れ様です。
現在完成しているスクリプトインタプリタ実装部分です。
・点・線・ポリゴン・スプライト・テキストの表示。
・変数として整数・浮動点小数・文字列の定義。
・整数、浮動点小数の計算、文字列の連結といった演算処理。

これがコア部品として、ここからシナリオライタや企画屋さんが使いやすいAPI群を作っていける
段階にはありますが、これからの方針としてどうでしょうか?
正直ゲーム企画屋がプログラミングする羽目になるのは避けたいため限定的な記述のみを採用したいのですけど。
とするとトリガーとの密な連携が必要ですね。難しいです・・・。

現在確実に必要と思う物を挙げます。
・キャラクター定義フォーマット(スクリプトで管理するのは困難なため)
・戦闘定義フォーマット(プログラムに埋め込むのなら要らないけど)
懸案はキャラクターをゲーム中で動的に生成したい場合はどうするかですけど。
また提案します。

#漫喫より書き込んでます。
#ADSL契約用紙送ってから2週間近く経つけど連絡なし・・・。

総レス数 668
280 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200