スクリプトコンパイラについて ( yac と lex も可 )
1 :
439 :
01/11/07 15:31 ID:GpFz7V+v みなさんのスクリプトって、どんな感じですか? (エロ)ゲームプログラマーには一番難しい所かもしれません。 yac と lex も可です。
2 :
439 :01/11/07 15:32 ID:GpFz7V+v
まず、話題フリ。 みなさんが作ったスクリプトコンパイラの仕様を教えてください。 1デファイン機能 a 文字列中の中を実行部で置換可能 b 文字列中の中をコンパイラで置換可能 c 変数をコンパイラで置換可能 d 全てのトークンを置換可能 e C言語並みに全てのトークンを完全置換可能 f その他、それ以上のことが出来る 2マクロ機能 a 命令をまとめることが可能 b MASMクラスのマクロが可能 c ローカルラベルも使えて、色々なことをマクロ化できる d その他、それ以上のことが出来る 3計算式 a 計算専用命令を持つ(addとかsubとか) b C言語並みの計算が出来る c 条件式でもC言語並みの計算が出来る d 式の最中に関数の返値を入れられる e その他、それ以上のことが出来る
3 :
439 :01/11/07 15:33 ID:GpFz7V+v
4関数 a 単なるサブルーチンコール b ローカル変数を関数側で実装している c 関数で型の概念がある 変数、即値、文字列など d 返値が返せる(3−dタイプでは無くても良い) e その他、それ以上のことが出来る 5書式 a 全角文字から始まる場合はメッセージ b 計算式から始まる場合は計算式 c 書式は、BASIC形式 mes "メッセージ" d 書式は、ASM形式 mes メッセージ e 書式は、C言語形式 mes("メッセージ") f その他、それ以上のことが出来る 6構造化 a if-else-endif が実装されている b if-elseif-else-endif が実装されている c if-else if-else-endif が実装されている ( else if を分けて書ける ) d while-endwhile が実装されている e do-while が実装されている f for-endfor が実装されている g switch-case が実装されている h break が実装されている i endif,endwhile,endfor などが }記号や end でまとめられる j C言語形式の記号でブロック化が出来る k push等を駆使して、スクリプト側でどうにかブロック毎に ローカルレジスタを作れる l ブロック毎にローカルレジスタを簡単に作れる m その他、それ以上のことが出来る 7セーブ機能 a 実行時にスクリプト自身を書き換えない b 単なるポインターセーブ c メッセージをカウントしてセーブ d サムネイルを表示可能 e 極力、CGデーターなどはセーブデーター中に持たないで、 (サムネイルは除く)ファイルネームなどしか保持しない。
4 :
439 :01/11/07 15:33 ID:GpFz7V+v
うちはへぼへぼなので、こんな感じです。 1デファイン機能 a 文字列中の中を実行部で置換可能 2マクロ機能 無し 3計算式 a 計算専用命令を持つ(addとかsubとか) 4関数 a 単なるサブルーチンコール 5書式 d 書式は、ASM形式 mes メッセージ 6構造化 該当無し BASICの if then が実装されている。行番号で飛ぶ 7セーブ機能 a 実行時にスクリプト自身を書き換えない ゲームの頭でセーブされる
5 :
439 :01/11/07 15:37 ID:GpFz7V+v
>445
>もし出来ましたら、サンプルを出してもらえると嬉しいです。
>うちはこんな感じです。
>
>サンプル
>1
>2 set r1,0
>3
>4 add r1,10
>5 sub r1,30
>6 mes メッセージ
>7 goto 4
>8
>9 gosub 20
>10
>11 select r20,1,2,3
>12
>
>うちのはこんな感じなので、ラベル名が使えません。
>手でやり直しになるのでキツイです。
>>445
>あのー、いくらなんでも行番号ジャンプはヘボ過ぎです。
>ラベル機能ぐらいすぐ追加できるでしょうに。
>これだったらMASMのマクロ使ってスクリプト書いた方がよっぽどマシでっせ。
>(昔実際やったことある)
>451
>す、すみません。
>タイトルが多すぎて、コンパイラまで時間が回せないっす。
>昔はMASMを使っていたのですが、シナリオに渡すために自家製に変えました。
>今でもMASMの方が使いやすいです。
>452
>
>>451 >lex yacc 勉強すれば一日でできると思います。
>
>>439 >多分ですが、
>命令とデーターが一緒になっているアーキティクチャーで、
>命令長が固定ではないと思われます。
>その際にはラベルは前方参照の解決のために
>バックパッチの仕方がキーポイントなのではないでしょうか。
6 :
439 :01/11/07 15:38 ID:GpFz7V+v
>446 :にゃ ◆G4ogTrNQ :01/11/01 19:34 ID:mAxjGqQI >グラフィカルなエディターです >スクリプトは、中間コードに変換してゲームに組み込みます。 >ゲームごとに共通な部分はエディター上でもある程度実行できます。 >画面でみながらやっていくので、スクリプトをテキストとして入力するぶぶんは >あまりないです。 >スクリプトっぽいところは >演算とか、条件式の中身ぐらいでしょうか。 > >とりあえず、参考までに > >1デファイン機能 > a 文字列中の中を実行部で置換可能 >(名前とか、色とかに) > > >2マクロ機能 > 無し > >3計算式 > c 条件式でもC言語並みの計算が出来る >変数はすべてグローバル。漢字のみ >条件式のなかでのみ=は==として扱う。このほうがプログラマーでない人にはいいみたいです > > >4関数 > a 単なるサブルーチンコール >変数がすべてグローバルなので・・・ >ゲームごとのシステムは呼べるので十分かも > >書式 > f その他、 >メッセージ、計算式はそれぞれ、専用のエリアに入力 > > >6構造化 > b if-elseif-else-endif が実装されている > g switch-case が実装されている >(選択肢として) > >7.セーブはシステム側でおこなう。 >実行スクリプトの名前、実行ポインター、コールスタック、 >スクリプト修正時のための補助データ、 >あと変数そのた必要なもの > >みなさん >画像エフェクトは何種類ぐらいつくっているんでしょうか >さっきかぞえたら70ぐらいでした
7 :
439 :01/11/07 15:39 ID:GpFz7V+v
>447 :名無しさんNetBurst :01/11/01 19:59 ID:Q4tBwu9l >1デファイン機能 > a 文字列中の中を実行部で置換可能 > b 文字列中の中をコンパイラで置換可能 > c 変数をコンパイラで置換可能 > その他。変数名に日本語使用可。即値も置換可。 > >2マクロ機能 > その他。コマンド名定義リストを書き換えることによって比較的容易にコマンドの > 追加修正ができる。コマンドは最大4つの即値/変数/式/文字列をパラメータと > して持つことが出来る。ベースコマンドから派生コマンドを作ることが出来、 > 派生コマンド毎に各パラメータの即値の上限下限を設定できる。 > 派生コマンド名に日本語使用可。 > >3計算式 > b C言語並みの計算が出来る (),+,-,*,/,%,!,!=,==が使用可能 > c 条件式でもC言語並みの計算が出来る > >4関数 > a 単なるサブルーチンコール > >5書式 > d 書式は、ASM形式 mes メッセージ > その他。行頭の"@"をデリミタとして記述し、会話文は複数行に書くことが出来る。 >こんな感じ↓ > >@会話 ゆかり VOICE00001 > 1行目。 > 2行目。 >@IF #和也と喧嘩した >@表情変更 ゆかり・怒り >@ELSEIF >@表情変更 ゆかり・笑顔 >@ENDIF > >6構造化 > その他。制御文はIFY,IFN,IF〜ELSEIF〜ENDIF,GOTO,GOSUB〜RETURN, > ONGOTO,ONGOSUB〜RETURNのみ。 > >7セーブ機能 > a 実行時にスクリプト自身を書き換えない > b 単なるポインターセーブ >
8 :
439 :01/11/07 15:39 ID:GpFz7V+v
>455 :名無しさん@初回限定 :01/11/01 23:01 ID:uhyPQFjL >;------------------------------------------ >;※背景16 商店街・昼 >;------------------------------------------ >;□フェードイン > >;■健二 > 俺は何となく商店街をぶらついていた。 > (さて、この後どうしようか。本屋で立ち読みでもしようかな?) > >;■健二 > などと考えながら歩いていると、前からこちらに向かって > 歩いてくる女の子と偶然目が合った。 > >;------------------------------------------ >;※渡会睦月 普段着:通常 >;------------------------------------------ > >;■健二 > (ん? 昨日のレッサーパンダ耳の少女じゃないか。) > > ∩ ∩ > | ∪ | > | 〜 > |∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ > ( ,,゚Д゚)つ < これがウチでつかってるスクリプトの書き方。 > U \________ >シナリオライター(外注)には一定の規則で指定を書いてもらっているぞ > > >456 :名無しさん@初回限定 :01/11/01 23:01 ID:uhyPQFjL >この後、Perlで作った置き換えプログラムにかけて指定の部分を >スクリプト化・・といってもCG指定用のテンプレ「※背景16 商店街・昼」から >BG_LOAD "cg29.bmp" という風な変換かけるだけ。 > >マウス待ちはリターンが連続で2回、かつその次に人物名、もしくは >ファイルエンドになっているところにPerlプログラムが自動挿入。 >細かい演出を社内で加えて、 > > あとは処理が上手く行かない個所を部分修正をかけて、 > ∧ ∧ コンパイルしてスクリプトバイナリ化して完成だ。 > (,,゚Д゚) > / つつ ADV専用だからな、手間と効率を考えた結果だ > ⊂ ノ > /(/″ 本当は式解析くらいは付けないと後で困るぞ。 >
9 :
439 :01/11/07 15:40 ID:GpFz7V+v
>457 :sage :01/11/01 23:50 ID:+ylXX1P4 >1デファイン機能 abcde >2マクロ機能 abc >3計算式 abc >4関数 abcd >5書式 abcde > abはオンオフを選べる ( エラー対策のために、通常は a は off です ) > cdeを命令毎に選べる >6構造化 bdefghi >7セーブ機能 abcde > bcを選べる > > >macro と define、func は特に強力にしています。 > >殆どの命令は、windows api をラップした程度にして >低レベル命令をマクロ化して高レベル命令にしています。 > >そして、シナリオライターはマクロ定義された物、 >スクリプトを触るプログラマーは低レベル命令を使っています。 > >シナリオライターは記号が苦手な方が多く、 >c より pascal や basic の方がわかりやすいと思います。 >そこで、スクリプターが極力記号を使わないようにしています。 >文字列中のマクロはしょうががありませんが。 >c 言語風にも切り替えは出来ますが、タイピング量が増えるので、 >シナリオライターから敬遠されてます。
10 :
439 :01/11/07 15:41 ID:GpFz7V+v
>458 :457 :01/11/01 23:51 ID:+ylXX1P4 >// レジスタ >#define rsample0 r200 >#define rsample1 r201 >// ファンクション >#function samp0( p1,p2 )( l1,l2 ) >if p1==p2 >ret >end >p1 = p1 + 1 >p2 = p2 - 1 >m $n<p1> >samp0 p1,p2 // 再帰 >ret >#endf >// マクロ 選択肢 とりあえず1択から3択まで >#macro sel( sel,s00,s01,s02 ) >begin >#if !blank( s00 ) >_s 0,s00 >#else >#error sel命令が異常です >#endif >#if !blank( s00 ) >_s 1,s01 >#endif >#if !blank( s00 ) >_s 2,s02 >#endif >select sel >#endm >// マクロ >#macro m( s00,s01 ) >#if blank( s00 ) >#error m命令が異常です >#elseif blank( s01 ) >PlaySnd <s00>.wav >message <s01> >#else >message <s00> >#end >#endm
11 :
439 :01/11/07 15:41 ID:GpFz7V+v
>459 :457 :01/11/01 23:51 ID:+ylXX1P4 > >main: >m a000,メッセージ >r10=r20+30 >if (r20>10 || r0==0 ) >switch r0 >case r111 >break >case 5 >break >end >end >samp0 rsample0,rsample1 // ファンクションコール >r10=0 >while 1 >r10=r10+1 >if r10>10 >break >end >end >sel r200,選択肢1,選択肢2,選択肢3 >一応 goto や gosub も使えます。 > > >460 :457 :01/11/02 00:21 ID:XXudnJYV >ごめん、インデントが飛んでしまった
12 :
439 :01/11/07 15:41 ID:GpFz7V+v
>461 :名無しさん@初回限定 :01/11/02 00:49 ID:DICi0Zhu >>>457 >そんな仕様にして使いこなせる奴居るの? >作るのちょーめんどくさそー。 > >1デファイン機能 > a 文字列中の中を実行部で置換可能 > d 全てのトークンを置換可能 >2マクロ機能 > なし >3計算式 > a 計算専用命令を持つ(addとかsubとか) >4関数 > a 単なるサブルーチンコール >5書式 > e 書式は、C言語形式 mes("メッセージ") >6構造化 > if goto >7セーブ機能 > a 実行時にスクリプト自身を書き換えない > b 単なるポインターセーブ
13 :
439 :01/11/07 15:43 ID:GpFz7V+v
>463 :名無しさん@初回限定 :01/11/02 02:55 ID:HYoXxaLQ
>
>>461 >たしかに例だとめんどくさそうだね。
>実際はもうちょっと簡単に落とせるんじゃないかとおもうけど…たぶん。
>
>うちの奴のスクリプトの例では、
>bg("bg01")
>fadein(エフェクト名,各種引数)
>
>こんにちは
>テストです
>
>if(a == 0){
>aは\d"a"です
>}
>
>とかで、全角文章がメッセージになって、
>リターンコードが二回か、リターンコードの次に\以外の半角がきたらキー待ちってかんじです。
>\アルファベットで、キー待ち無しとかいろいろつけてみてます。
>
>
>464 :名無しさん@初回限定 :01/11/02 03:03 ID:HYoXxaLQ
>あと、選択支とかは
>setsel("選択支1",SEL1) //選択支セット
>setsel("選択支2",SEL2) //選択支セット
>setsel("選択支3",SEL3) //選択支セット
>select() //セットした選択支で選択ウィンドウ出す
>とかなら、見た目と画面イメージが近くなるかなぁ…と勝手ながらおもってます。
>あんまり意味ないかもしれませんが。
14 :
439 :01/11/07 15:43 ID:GpFz7V+v
>465 :名無しさん@初回限定 :01/11/02 03:15 ID:63hfW7XF >1デファイン機能 > a 文字列中の中を実行部で置換可能 > d 全てのトークンを置換可能 >2マクロ機能 > なし >3計算式 > a 計算専用命令を持つ(addとかsubとか) >4関数 > a 単なるサブルーチンコール >5書式 > d 書式は、ASM形式 mes メッセージ >6構造化 > if goto >7セーブ機能 > a 実行時にスクリプト自身を書き換えない > b 単なるポインターセーブ > >これで今のところ問題はない。 >強いて言えば、構造化出来ないことか。 >理想を言えば457くらい出来ればいいが、オレには無理。 >しかし、457って凄くない?ホントにエロゲー?
15 :
439 :01/11/07 15:44 ID:GpFz7V+v
>466 :名無しさんNetBurst :01/11/02 03:29 ID:MiWSvSmG >>447 >選択肢の書式は基本は、 > >@選択肢 > 選択1 > 選択2 > 選択3 > >@@選択1 > ・ > ・ > >@@選択2 > ・ > ・ > >@@選択3 > ・ > ・ > >@@で始まるのはラベル。選択肢の文章をそのままラベルに使う。
16 :
439 :01/11/07 15:47 ID:GpFz7V+v
引用が長くてすみません>ALL それと、スクラッチ派とlex&yacc(flex&biosn)派がいるみたいです。 でも、ゲームプログラマーはスクラッチ派が多いのではと思いますので、 制作時のヒントやこういう状況の時にはこういう仕様がイイとか教えてください。 単体コマンドの機能ではなく、言語仕様はなせたらと思います。
17 :
439 :01/11/07 15:48 ID:GpFz7V+v
19 :
名無しさん@お腹いっぱい。 :01/11/07 16:23 ID:M//Vhkmq
>>18 SGML系統(含XML、HTML)の記述言語は、データを表現するには非常に適していると思うが、
スクリプトのような制御構造を表現するには記述の際のオーバーヘッドが大きすぎると感じる。
20 :
:01/11/07 18:01 ID:???
yacってなんだよ。。。。
21 :
19 :01/11/07 18:08 ID:???
追記。XML使うならパーサ(解析器)が必要。メジャーなパーサは以下の二つ。 *MSXML IE4以上なら一緒にインストールされていると思う。SDKはMSで入手のこと(.NETβがいいかも) DOMとか新しい仕様を使いたければユーザにIE5以上のインストールをお願いすることになると思われる。 *XML4C Apacheから出ている。基本的にUNICODEしか使えないので、日本語コードが使いたければIBMが出している多国語対応版を利用のこと。 スタンドアロンで動くので、MSXMLのようなIEのインストール作業が必要ない。新らしXMLの規格への対応も迅速(DOM2やSchemaに対応済み) ただし、DLLのファイルサイズがでかい。多国語対応版は文字コード変換DLLがいるため、さらにでかくなる。 XMLについて勉強する際は@IT等が良いと思われ。
22 :
18 :01/11/07 18:46 ID:???
BulletMLなんか見ると単純な処理ならいけそうに思えるよ
http://www.asahi-net.or.jp/~cs8k-cyu/bulletml/index.html こんな感じなんだけど
<action>
<wait>20+$rand*50</wait>
<changeDirection>
<direction type="absolute">180</direction>
<term>10</term>
</changeDirection>
</action>
中間コード吐くようにすれば実行環境側にはパーサ必要ないし。
・・・でもあんまりメリットないかな。
>>21 ん?MSXML だけインストールさせれば?
XML 使う利点ねえ。
・自分でパーサ書かなくて済む
・生成も DOM 使えば簡単
・SOAP とかネットワーク分散とか
・DTD や XML Scheme といった標準規格で記述した仕様をそのまま使える
個人的には4番目が大きいな。
自分流で仕様書くと必ず曖昧で相手に伝わらない点が出てくるから。
24 :
名無しさん@お腹いっぱい。 :01/11/09 01:48 ID:QPURCFOq
せっかくなのでageましょう。
26 :
名無しさん@お腹いっぱい。 :01/11/09 10:08 ID:XLFvo4DJ
>>23 ・XMLエディタが使える。SchemeやDTD使って文法チェックや自動補完の支援も受けられる
・正確な文法を相手に伝えることができなくても、「こんなかんじ」でサンプル渡せばなんとなく書いてもらえる
27 :
煽りじゃないけど :01/11/09 10:09 ID:4a3RFUkt
エロゲーのシナリオってホントにXMLなんて必要なの? プログラマのオナニーじゃないの?
28 :
名無しさん@お腹いっぱい。 :01/11/09 10:14 ID:LYHkp5wY
それは
>>19 でも指摘されてますな。
なにかこう、画期的なXMLエディタでも出てくれば事情が違ってくるんだろうけどねえ。
>>27 なんでエロゲーに限定やねん。
それはおいといて、キャラクタのデータベース作るときとか良いかもですよ?
たしかにCSV形式で必要十分っちゃそうなんだけど。
プログラマの自己満足?その通りですわ。本業にフィードバックできるしね。
ありがと。やっぱそうだよね。 変な関西弁だったけど(w
31 :
名無しさん@お腹いっぱい。 :01/11/10 09:51 ID:ZLaGQkGz
33 :
31 :01/11/10 12:23 ID:U1Ytzgh8
>>32 >っつーか探せば余裕ででてくるが?
探すとこが良くなかったようですね、ありがとうございます。
(Googleで"bison flex ソース"とか)
gccくらい高度になると全部自力で構文解析してるのかと思ってました。
調べてみます。
34 :
名無しさん@お腹いっぱい。 :01/11/12 07:02 ID:iEHeW1Vl
みんなはゲーム用に使うスクリプトで、小数を定義してる? やっぱり小数も扱えるようにしてあると便利なのだろうか・・・。 ちなみに、自分は bison 使って構文解析機作ってます。
>34 どうしても必要な場合、固定小数点でやってるよ。 小数点以下2バイト、実数2バイトで。
>>35 なんでそんな回りくどいことするの?
普通にbignum作ればそれでいいじゃん
>>36 どうしても必要な場合って言ってるだろ。
計算が速いから固定小数点使ってるんだよ。
固定小数点の計算が速かった時代も終わりつつあるってか終わってるな
うむ。最近のCPUは凄いのう。 ていうか、3Dゲームに使うスクリプトなら実数に対応せざるをえない。
486SXとかDXとか言ってた時代が懐かしい・・・
8086互換環境、しかもSmall Model用にゲーム向けスクリプト言語 環境作ってます。環境なんでエディタなんかも込みです。 最近のPCとは比べ物にならないくらい制限がキツイけど、これぐらい キツイと逆に作り応えがあります。
マゾなの?テキストアドベンチャーでも作るの?
43 :
名無しさん@お腹いっぱい。 :01/11/14 17:20 ID:xFHu6HrX
移転してきました。
>>37 どうしてもってなに?
bignumなんて一度作れば終わりじゃん。
もしかして、毎回スクラッチしてるの?
45 :
名無しさん@お腹いっぱい。 :01/11/15 03:14 ID:uBJWEUjx
JAVAバイナリインタプリタの話題はやくしよー。 とりあえず、フリーのものさがしてみるよ。 コンシューマ機でものっけれるような素敵なのないかな。
47 :
_ :01/11/15 04:23 ID:TDb/e4F8
1の言うスクリプトってよくわからない。 何の為に作るの? あそこまで作るんだったら、Cをそのまんま使った方がいいと思うんだけど。 ちょっとした言語仕様を盛り込みたい為に、体系を一から構築するのって どうなの?
48 :
457 :01/11/15 05:03 ID:???
前スレの者ですが、 ざっと考えるだけでも 1)シナリオライターが逐次修正した物を プログラマーがいちいち打ち込むのは大変。 プログラマーとシナリオライターが同じ場所に居るとは限らないし、 かといって、シナリオライターがソースを触ると危ないし、 シナリオライター全員の分の言語ライセンスを買うわけには行かない。 2)バージョンアップの時に、一部のシナリオファイルの改訂だけですむ とか、色々あると思います。
49 :
名無しさん@お腹いっぱい。 :01/11/15 12:39 ID:9dLaA6vj
>>46 WavaはどうやらGPLみたいですね。トホホ(;´Д`)
やっぱ仮想マシン自分で作れってことか。
50 :
sage :01/11/15 13:11 ID:uBJWEUjx
>49 えっ!なになに!GPLだとまずいの!? これゲームにのっけるとき、ソース公開せんといけなくなるの?
51 :
名無しさん@お腹いっぱい。 :01/11/15 13:48 ID:RSUbKJen
>>50 ご明察。
MS関係者が「GPLはソフトウェアに感染するウィルスみたいな物だ」と発言してオープンソース業界で問題になったことがあったが、
MSの気持ちは痛いほどよくわかるよ。
今の流行はGPLじゃないソースコード公開、勝手に使ってくれというライセンスやね。pngとかzlibとかPythonとかそうでしょ。
>これゲームにのっけるとき、ソース公開せんといけなくなるの? ニュアンスに違いかも知れないけど、誰かに要求されたらソースを公開する 必要がある、という意味だと思いますけど。 作ったからと言って、サイトに無償公開しろ、という意味ではないはず。 もちろん、利用したらGPLであることを記載しないといけないですけどね。
53 :
50 :01/11/15 14:03 ID:uBJWEUjx
なるほどなるほど・・・ BladeOfDarknessっつー洋ゲーにPythonがつかわれてたのは そういうことか。 スレ違いだけど、ゲームに剛体シミュいれたいなーとか、 シャドウボリュームつかいてーとか思ってる人は、 BladeOfDarknessみとくといいかも。 デモ版があるよ。
>>52 自分が配る時は無償でなくてもいいんだけど、
それを得た他人が無償でくばってもいいので
結局(ソフト自体は)無償で公開してるのと一緒。
え、GPLedな開発環境で作った成果物って別にGPLに縛られない んじゃないかな。基本的に別物扱いで、実行環境等を入れるにしても GPLに縛られるのはその実行環境のみのはず。 #そうでなければgccなんて使ってられんぞ…。 ちょっと違うのはライブラリの場合で、これは大抵LGPLという緩い ライセンスになっていて、そうなっていた場合は大抵ダイナミック リンクする範囲では問題無くなってるはず。 間違ってたらスマソ。
>>55 >え、GPLedな開発環境で作った成果物って別にGPLに縛られない
>んじゃないかな。基本的に別物扱いで、実行環境等を入れるにしても
>GPLに縛られるのはその実行環境のみのはず。
GPLなライブラリやGPLなコードとリンクされる場合ね。縛られるのは。
LGPLでないかぎりはスタティックリンクでもダイナミックリンクでも
しばられる。
じゃあWindowsのDLLとGPLをまぜて使うときはどうなんだという
話はボーダーラインの話なのでGNUの見解を参照。
>#そうでなければgccなんて使ってられんぞ…。
gccを非GPLなモノに使っていいのは特例です。
>ちょっと違うのはライブラリの場合で、これは大抵LGPLという緩い
>ライセンスになっていて、そうなっていた場合は大抵ダイナミック
>リンクする範囲では問題無くなってるはず。
こっちはあってる
GPLの話題は別のところでしましょうかね
57 :
名無しさん@お腹いっぱい。 :01/11/15 17:33 ID:afucvIzX
誰か、GPL/LGPL等ライセンスとゲーム製作ってスレ作ってくれないかな。 携帯だからスレ作れないの。
58 :
名無しさん@お腹いっぱい。 :01/11/15 18:57 ID:Akdsfzo6
59 :
名無しさん@お腹いっぱい。 :01/11/15 21:40 ID:ducCdIA5
60 :
名無しさん@お腹いっぱい。 :01/11/15 23:50 ID:uBJWEUjx
でも、既存の練られた言語ってやっぱりいいと思わない? つかってるうちにその言語習得できちゃったりして。
JavaのVMってアプローチがあるなら、CLIのVMってのもありではないのかな。 対応言語が増えすぎてしまうが(w
63 :
名無しさん@お腹いっぱい。 :01/11/16 00:54 ID:ZgDDdgZX
スクリプトコンパイラは(言語仕様が)あまり高性能すぎるのもどうかと思う。 あまり言語仕様が高性能すぎても、今度はスクリプトコンパイラ上で動くスクリプト自体の デバッグに追われることになってしまう。
>>63 あまりに言語仕様が高性能すぎる
と、
スクリプトコンパイラ上で動くスクリプト自体の
デバッグに追われることになってしまう
ということになるってどういうことだろ・・・
言語仕様が単純でも高機能でもデバッグに追われるよ
今話してるスクリプトは、プログラマ以外が使うことを想定してるから 凝って自由度を上げすぎると、シナリオ担当者等が扱えきれなくて本末転倒 と言いたいのだと思われ。
JavaVMかぁ。ちょっと面白そうだけど、今から勉強するならCLRかな〜って気もする。 ただ、MSから仕様書拾ってきたらページ数ありすぎで読む気しない。 英語馬鹿でも読める、もちっと纏められた資料ってないんかの〜。
良スレage
70 :
66 :01/11/16 12:03 ID:???
>>68 CLRかぁ!うーん・・・どうしよっかな・・・。
でも
>>67 のみて十分JavaVMでもいろんな言語いけるおもたよ。
日本語資料よくできてるし。
べつにバイナリコードでプログラムするわけないしね。
いっそのこと Javaベースにしてメイン部分をJNIに逃がす、 ということはできないのだろうか。
GNUの連中がC#->JVMコンパイラ作ってるよ
>72 まぢ!Java言語じたいより、VMのほうが長生きする予感
>>66 せっかくだからアプしようぜ。
>>68 俺もダウンロードしてきたけど、読み応えありすぎるわ(w
>>71 できるだろうけど、ほとんど意味ないんじゃない?
プログラマ以外の人が簡単にゲームのフレームや流れを作れるようにするために
スクリプト作るってのが元の目的でしょ?
まあ面白いけど(w
.NETに対抗して.GNUとかやらんのかね
>>76 うーん、GPLなんかだと激しく萎えるなあ
>>78 ハハハ、なんつーかそこまでムキになるなやって感じやな。
age
>>76 あれ?やってなかったっけ?ほのかに記憶あるんだけど。
82 :
名前は開発中のものです。 :01/11/24 21:33 ID:yBLWDR2S
お気に入りのIDが出たYO!!
まだ作ってる途中ってことじゃないの?
86 :
85 :01/11/27 11:37 ID:???
嘘です 実装されてます
87 :
83 :01/11/27 19:42 ID:???
>>85 サンクス!Cygwinでコンパイルためしてみるよ〜
良スレ(俺的に)アゲ
88 :
83 :01/11/27 21:35 ID:???
CYGWIN用C#コンパイラできました。結果報告。 ・普通にC#コンパイラとして使えました。(EXE出力) ・JavaVMアセンブリソースのはきだし方。 %cscc -mjvm -S source.cs この出力結果から、.classができるかどうかは、まだわかりません。
89 :
83 :01/11/27 23:11 ID:???
GNU C#コンパイラのJavaVM出力に関する結果報告
>>88 の方法で吐き出した source.jl (JVM-ASMをIL形式で出力したもの)
をilasmにくわしてみた。
%ilasm -mjvm source.jl
(-mjvmオプションはソースをIL形式のJVMバイトコードで出力)
出力結果.objをみてみたけれども、.classにはほど遠い。
.jlをjasmin(JavaASM)のフォーマットに変換するのが
C#->.classへの近道っぽい。(わりとよく似てる)
90 :
厨房 :01/11/28 00:36 ID:???
JavaVMはスタックマシンだけどCLIはレジスタで結構違うって噂聞いたことあるけど…
ありがとう。2.4節あたりに書いてあったね。 JavaVMと似てるならCLI真面目に勉強したいな。洋書読める程英語できないし、早く翻訳されないかな。
93 :
名前は開発中のものです。 :02/01/03 07:02 ID:WLPQVhtk
簡単なスクリプトのコンパイラって無い物でしょうか? BASICのIFが使える程度で良いのですが、 色々調べても難しい物ばかりでなかなか良い物を探せません。 何か良い物があったら教えてください。
94 :
名前は開発中のものです。 :02/01/03 08:47 ID:WHmmrKAU
↑富士通から出ているF-BASIC for Win95 がお薦め。 グラフィックだとかも使えるしね。
>>94 F-BASICは産業分野で大活躍しとる。
N-88Basicで書かれた昔の計測システムとかを動かすのにな
板違いsage
97 :
94 :02/01/03 11:51 ID:???
しまった。コンパイラ・コンパイラの板だったのか。素で間違えた。 スマソ。
99 :
名前は開発中のものです。 :02/01/03 23:20 ID:WLPQVhtk
>>94 スクリプトコンパイラで検索すれば色々でてくるよ。
100 :
名前は開発中のものです。 :02/01/04 03:58 ID:/BxIs0ic
専学の卒業用のプログラムでスクリプトコンバータが必要ですが、 色々調べても難しい物ばかりなので、自分で拡張できそうにないです。 何か拡張を前提とした良い物って無いでしょうか。 ソースがわかりやすいものが良いです。
>>100 前述のリンクたどって1からスクリプト組んでみるといいと思う。
できたころには、他のスクリプトも拡張できるようになってる。
俺の場合だけど
102 :
100 :02/01/04 18:15 ID:UkX35gI3
>>101 サンキューです。
単純なスクリプトコンパイラを作るのソースを参考にしてみます。
これなら簡単に理解できそうです。
専学で作ってるゲームシステムをどこかにアップしてみんなに見てもらうことって
出来るんでしょうか。
いえね、なにか自分のがプロの方にはどう見られるかと思ってね
ふつーにwebにゲームのソース公開しててもなかなかリアクションはこないみたい。 2chにさらすのが手っ取り早い。
104 :
100 :02/01/06 09:03 ID:+jtLqqFX
>>103 つまらない物だけど、もし出来上がったらさらします。
単なるアドベンチャーゲームのエンジンなんですが、
ちゃんと出来ているかというより、
今後何年間かでプロになれるかが心配なのでみんなに見てほしいです。
105 :
名前は開発中のものです。 :02/01/09 07:08 ID:9EzpJOZt
>104 100のADVシステムきぼん
106 :
100 :02/01/14 09:10 ID:5xExvzQX
107 :
100 :02/01/14 09:20 ID:5xExvzQX
108 :
名前は開発中のものです。 :02/01/14 09:31 ID:v4MH2X5h
まあまあじゃないの?最初としてはさあ。
やねうらをSDKは、使ってみた感じ、言われてるより遥かに使いやすいと 思ったのだが。C言語っぽいし、WindowsAPIも呼び出せるし。
110 :
名前は開発中のものです。 :02/01/14 21:21 ID:NFXyvc6Z
yaneSDKは大きく分かれるね 優秀なサンプルプログラム、ライブラリとしては後一歩のところがとどかない。 とかいて気付いたが、yaneSDKはそのままC言語だろ。(w 正確にはC++だけど。
111 :
名前は開発中のものです。 :02/01/14 21:29 ID:JgCRpRR+
>>100 108 ではないけど、最初に形にした物としてはよいのでは。
自分が初めて形にした物よりはだいぶマシ(苦笑)
ただ、400 行以上にもなる関数があるのは頂けないので、
そのへんは注意せんとね。
>>110 スクリプト言語のほう言ってるんじゃない?
ここのスレで言っているからして。
しかしそれにしても、いまどきフリーのC/C++コンパイラもあるのに
わざわざC言語に劣るスクリプト言語を使うメリットはそんなに大きくないだろう。
スクリプトにすればわざわざコンパイルしなくていいじゃん。
>>113 一発でmake後実行できるように環境を整えておけば似たようなもんだよ。
スクリプト言語って記述しやすければ開発が楽になるが、腐った仕様の
スクリプト言語をつくっちまうと逆に足手まといになるね。
115 :
名前は開発中のものです。 :02/01/14 23:48 ID:5+gjnPlJ
>>114 シナリオライタとプログラマが同一人物とは限らないし、
シナリオライタが複数いることもある。
プログラマ以外の人がシナリオを触ると、問題が出てくることが多い。
動作チェックするときにも再コンパイルをして、
コンパイラの最適化によるバグも防げる。
もちろん、スクリプトコンパイラは十分バグ出ししていることが必要だけど。
スクリプトコンパイラでちゃんとスクリプトのバグを出してくれるのであれば、
バグも出にくくなる。
表示される文字セットの問題(改行コードや主人公の名前など)も
解決しやすくなる。
シナリオの既読と未読などもスクリプトコンパイラの方が管理しやすい。
(Cのマクロでもできるけど)
スクリプト言語にC言語の記号を持ち込まなくて良い。
だいたいのシナリオライタはC言語の記号を説明すると、記号が多くいやがる。
BASIC風(PASCAL風)な方が喜ばれることが多い。
弱点は動作スピードが若干遅くなること。
やねうらおSDKは、デキは悪くないけど、 難易度がC言語やC++のそれと変わらない気がする。汎用性ありすぎ。 つまり、あれを使いこなせるくらいなら素直にVC++弄った方が いいかも。
SDKとスクリプトをごっちゃにしないでくれ。どっちがどっちがわからん
>>116 客観的にみたとしてもC/C++よりかなり使いにくいですが・・・
119 :
100 :02/01/15 15:07 ID:7CY8ofuR
四年制大学でたってアーパーで使い物にならんやつはたくさんいるし 専門だからっていって気負いするこたあない、がんばれ。スレ違いなのでsage
>四年制大学でたってアーパーで使い物にならんやつはたくさんいるし ちなみに今年度、は(高卒の就職率>大卒の就職率)でした。 それでも大学進学を強くお薦めします。 大学出てもポアなヤツは、高校出だと、もっとポアな可能性が高いので。
ベーマガの2月号でスクリプト言語を作るっていう記事が始まったね。
Cマガ2000年5月号の参考にスクリプト改造してたんだけど、 どうも、mallocの数とfreeの数一致してないように見えるんだが…。 古いから誰も知らないか
>123 freeが全然たりないんでは? 文字列用に確保したメモリ、解放してないし。
125 :
A :02/01/28 00:09 ID:v411FPbT
シナリオをPerlでCのデータに変換してコンパイルしています。 置換とか評価とか、面倒なことはコンパイラに任せています。 #! /bin/bash cat $1 | gcc -E - これだけでも、コメントとディレクティブを処理してくれるツールになります。
>>125 それだけだったら素直にcpp通せば……。
127 :
名前は開発中のものです。 :02/04/10 14:29 ID:7gizi2lc
age
>122 どうなりました?
上の方の会話がわからなかったのですが、 今わかりました。 YGS2k 正式名称はyaneuraoGameScript2000 有名なyaneSDKのほかにスクリプトコンパイラも 存在しているのですね。 良スレあげ。
★あなたのお悩み解決致します!!
●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
直通 090−8505−3086
URL
http://www.h5.dion.ne.jp/~grobal/ メール
[email protected] グローバル探偵事務局
終 了 し ま す た 。 n n ミゝヽ / ヾ彡 ゝ ノ ヽ ヾ / /∧_∧ ∧_∧| ヽ アヒャー .| <( ゚∀゚) (゚∀゚ ..)> | アヒャー ヽ ゝ ヽ⌒ヽ /⌒丶 ゞ / ヽ ヽ n___ _n / / | 完 /ヽ ⌒二ソ__彡ミ__ゝ二⌒ /ヽ終.了| / ̄\_| |  ̄ ̄  ̄ ̄ | |_/ ̄ヽ \ ヽ ヽ / ノ / \⌒ゝ~\ \ / /~ ヾ⌒ / ヽ ( \ \ / / ) / ∪ \ \ / / ∪ \ \ │ / /  ̄ ̄ / ̄\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ─( ゚ ∀ ゚ )< 終! \_/ \_______ / │ \
133 :
やほー :03/04/03 07:00 ID:C6VUGYVR
>130 普通のスクリプトエンジンだ yaccに興味あるんだけど何をどうしたらいいのかわからん。 だれか良質な解説サイト知らない?
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□ □□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□ □□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□ □■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□ □□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□ □□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□ □□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□ □□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□ □■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□ □□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□ □□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□ □□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□ □■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□ □■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□ □□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□ □□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
>>133 時代はboost::spiritだぜ!
o /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / / このスレは無事に / / 終了いたしました / / ありがとうございました / / / / モララーより / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/ ∧_∧ / /∧_∧ ( ・∀・) / /(・∀・ ) ( )つ ⊂( ) | | | | | | (__)_) (_(__)
137 :
名前は開発中のものです。 :03/04/09 22:53 ID:PK8UclG0
luaとかどう? coroutine(協調thread)とか使えないかな?
□□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□ □□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□ □□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□ □■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□ □□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□ □□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□ □□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□ □□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□ □■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□ □□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□ □□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□ □□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□ □■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□ □■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□ □□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□ □□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
スレ振るっ
LUAおもしろそうだけど使い方がいまいちわかんない。
スクリプトつかう以前の環境設定の段階で。
VC6でのつかいかたおしへて
>>137
ほっしゅ、しゅっほ、しゅっほっほー
スクリプトの実装にForthを使う漏れは少数派ですかそうですよねorz。 パージングがいらないので仮想コード化が楽だし、 比較的軽くて小さなVMが作れるしで個人的には大好きなんだが。 RPN構文に癖がありすぎるからかねぇ。
最初に書いたスクリプトエンジンがForthだったな 構文解析いらないので楽〜 逆ポーランドヽ(´ー`)ノマンセー
146 :
名前は開発中のものです。 :2006/04/16(日) 01:24:30 ID:NIJWxfjn
age このスレで言うスクリプトってRPGやギャルゲーのシナリオだけ? シューティングの敵の出現・動作パターンや格ゲーのモーションデータまで含めると ゲームの本体プログラム≡スクリプトのインタプリタ って位ゲーム製作において重要な部分だと思われ。 ここら辺はCで直書きする訳にも行かないし、皆どうしているか聞きたい。 (格ゲーのモーションをCで書いたら相手のモーションと同時実行するために マルチスレッドが必要だったり、 技をキャンセルするのにスレッドをkillしなくちゃいけなかったり訳分からん)
> 格ゲーのモーションをCで書いたら相手のモーションと同時実行するために マルチスレッドが必要だったり、 んなあほなww も前は、キャラクターごとにスレッドを作るのかw 普通は、ゲームでは非プリエンプティブなマルチスレッドを使う。 つまり、コストの低い、擬似タスクな。 あと、モーションは、デザイナにまかせたりするので、スクリプトで制御することも多いよ。
148 :
146 :2006/04/16(日) 09:51:53 ID:NIJWxfjn
まあ自分はスクリプト制御です。上のは反語表現というか、 酔ってたせいで何に煽ってるのか分からない煽り口調になってるしw >非プリエンティブなマルチスレッド は一般的なOS+Cでは不可能ですよね。機械語で書く場合でしょうか。 それともsetjmpで無理矢理実装とか?
>>148 コンソールの話だと思われ。
時代遅れの発想なんであまりやって欲しくないけどね。
150 :
名前は開発中のものです。 :2006/04/16(日) 16:14:41 ID:F+evVwwX
>>146 の疑問はもっともだと思うよ。
今はまだそれ以前の部分で躓いていて
問題を先送りにしているが、いずれ考えなきゃいけない部分だと
俺も思っている。
インタプリタは難しいんで、MIDLコンパイラみたいに
スクリプトからC++ソース生成じゃ駄目かなあ?
151 :
146 :2006/04/17(月) 01:06:45 ID:M8YTTZ7z
>C++ソース生成 用途によりますよね。 ギャルゲーやRPGなら大丈夫だけど、アクション系のゲームだと前述のような問題が。 自分はRPGを製作中ですが、複数キャラを同時に歩かせたりメッセージ表示しながらアニメしたりと 「スクリプトのシンクロ実行」を実装する予定なので、頑張ってインタプリタを書いてます。 基本的にCとかは1スレッドにつき1つしかプログラムの「筋」を持てない。 で、ゲームのメインスレッドというのは大抵メッセージループを回す構造になってるわけで、 ループ回しつつ逐次実行のコードを同時に走らせようと思ったら別スレッドにするか スクリプトとして(もしくはスクリプト風に)実行順序をデータとして持っておいて ループで実行するしかない、というのが前提条件かと。 最近「生成的プログラミング」とやらが流行ってるお陰で 大抵の言語に出来のよいパーサが開発されたり、 継続やらモナドやらExpressionTemplateやら「言語内言語」に関する技術がたくさん出てきたりしているので、 その辺をゲーム開発に取り込んでいったら面白いんじゃないか、と思う次第であります。
俺も同じようなことやってます。 某ステフでアクションRPGのスクリプトを作ってますが、シンクロでは悩まされます。 試行錯誤であーでもないこーでもないと何とかやってますが、地味に面白いですよねw
153 :
名前は開発中のものです。 :2006/05/10(水) 15:25:54 ID:BR/3osvo
保守age
詳細もなにも一言で要約できるぞ。 boost::spirit使ってみろ、と。
いや、パーザじゃなくてシンクロ実行のほうじゃないの?
157 :
151 :2006/05/14(日) 21:20:12 ID:VGwK5BXt
模式的にコードを書くと、 pTaskをタスクオブジェクト(clock()でアニメ等を一コマ進める) へのポインタとして、 case WM_TIMER: if (pTask == NULL) pTask = ScriptEngine.EvalNext(); //スクリプトを1ステップ実行 } if (!pTask->clock()) { delete pTask; pTask = NULL; } シンクロ処理は class Sync : Task { Task*[] _tasks; public: bool clock() { for (...) { _tasks[i]->clock(); } }; みたいな感じで行けます。
158 :
151 :2006/05/14(日) 21:21:52 ID:VGwK5BXt
スクリプトは以下のような感じで、 えっと…(sleep 10)どうしようか。wait これを ・全角文字を""で囲む ・全体を'()で囲む と処理すると '("えっと…" (sleep 10) "どうしようか。" wait) というschemeコードになります。リストの要素要素がEvalNextで返されるTaskです。 現在エンジンにはvismというschemeライブラリを使っていますが、 公開停止しているのと微妙に仕様が合わないのとで、現在手書きを検討しています。
なるほど そのやり方覚えておこう
ほぼスクリプト部完成しますた。 と、チラシの裏
161 :
名前は開発中のものです。 :2006/09/01(金) 23:48:53 ID:/m07WVDn
良スレあげ
162 :
名前は開発中のものです。 :2006/09/02(土) 13:11:40 ID:VymI6uhU
残念ながら・・・
そうでげしたか…
ギコベなくなったのかー! 使わせて貰ったことあるからちと悲しい
166 :
名前は開発中のものです。 :2006/10/02(月) 17:06:00 ID:yaGw0AJA
wikiが落ちて そして誰も作らないだけだぜ
今になって思えば、スクリプト部の文法は 中途半端にHSP互換じゃなくて、完全互換の方がよかったのかなと チラシの裏
インタプリタ作成は難しいですね。 最近、言語自体に興味を持って作り始めましたが 数字と演算子の数を出力するぐらいしか出来ません。
169 :
名前は開発中のものです。 :2007/07/12(木) 20:51:47 ID:JmSceXMO
シナリオ用スクリプトを構造化することってできるだろうか。 グローバルスコープなフラグとラベルジャンプでできたスクリプトでは、 フラグの一貫性やループに陥っていないか等の解析が手動でも自動でも 著しく困難になる。 凝り性のシナリオライターが作ったスパゲッティフローチャートを if, for, while & 関数・サブルーチンだけで書き下せると思う?
思う
>>169 色んな問題をスクリプトだけで解決しようとしすぎじゃね?
>>169 俺がxmlの研究目的で作ってるxmlベースの言語が
narrative documentをプログラマブルに扱えるものでPLの制御構造と組み込みライブラリと例外処理と文章に対するメタデータ記述能力を持ってるが
こいつはメモリ上に中間コード吐いてインタープリタで直に実行するかほかの言語のソースコード吐くようになってて要するにEiffelなんだが
>シナリオ用スクリプトを構造化 は出来てるぞ。
ただし、ライブラリは組み込みのみでそのライブラリを作るのはプログラマって割り切ってる。
あと要素の評価結果が文字列なら標準出力へ出力するんだけどその標準出力を定義するのもプログラマ。
つまり組み込みライブラリと出力先をADVエンジン用に実装すればADVエンジンへの応用が利く。
こういうもんを作れば
>シナリオ用スクリプトを構造化すること
スパゲッティフローチャートをif, for, while & 関数・サブルーチンだけで書き下す
は実際に出来てる。
あと言語そのものがxmlなんでXSLTやXSL-FOでhtmlやPDFへ"スパゲッティフローチャート"を変換できる。
そのためにメタデータ記述能力を持たせた。
あとxmlそのものが機械的に管理されることを前提に
設計されてるのでIDEなんかが作りやすいメリットもある。
欠点は専門的すぎてちょっとしたhypertext systemを実装できるくらいの学術知識が必要かな。情報系の卒論向きだな。
ラベルによるgotoは全部xlinkだったりするし。
結局、出来たとしても
>>171 の言うように問題の切り分けとそれを解決する人間を別々に用意する必要があるよ。
そういう前提で作ってるし。
>ラベルによるgoto 結局スパゲティかよ('A`)
175 :
名前は開発中のものです。 :2009/01/02(金) 22:08:59 ID:qteump49
スクリプトエンジン制作中 目的に合わせた複数の言語を作り、共通の中間コードにコンパイルして、共通のVMで動作させる予定なのだが、VMの仕様で悩み中 最初はCOMET互換のものを作ってたんだが、スタックマシンの方がシンプルになりそうな気がする フラグレジスタとか考えなくていいし、そもそもソフトウェアで動作させるんだからレジスタとかいらなくね?みたいな 他のスクリプトのVMの実装を知らないんだが参考までに、おまいらの意見をいただけないでしょうか
俺のスクリプトにVMなど存在しない ただ内部データ(登場時刻、位置、画像、移動パターン)に変換するのみ
JVMとか.NETのCLR(つかmono)参考にしたらどうだろうか 前にゲーム製作技術板でゲーム用DSLにJVMのサブセット実装してた人がいたよ。 (しかもコンパイラはJavaを使うらしいw) まあ、再発明になると面白みがないだろうがポータブルな実装つくるのもいいんでないのかな?
ごめん、ム板と勘違いしてたわ
速度の面でどう頑張ってもYpsilonに勝てないので自作やる気がなくなった
あ
183 :
名前は開発中のものです。 :2010/07/27(火) 16:50:26 ID:Wuh12NAU
ゲーム屋就職用にGauche忍びこませたexe作ろうと思ったけど、どうあがいても相手のマシンにGaucheが入ってないとダメみたいだからあきらめた ニートで何が悪い Scheme処理系作ったら本気出す
p
186 :
名前は開発中のものです。 :2011/07/07(木) 04:18:10.46 ID:zE+DGvJm
188 :
186 :2011/07/07(木) 13:21:45.30 ID:zE+DGvJm
誘導ありがとう。 ゲーム用途を考えてたからここに書き込んだんだけど、あんまり関係ないのかな? このスレの最初の方の人達に見てもらいたくって。 向こうにも書き込んでみようかな。
保守
落葉
書き込みテスト
両方使ったことない
保守
hoshu
保守