スクリプトコンパイラについて ( yac と lex も可 )
■ このスレッドは過去ログ倉庫に格納されています
0001439
01/11/07 15:31ID:GpFz7V+v(エロ)ゲームプログラマーには一番難しい所かもしれません。
yac と lex も可です。
0002439
01/11/07 15:32ID: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 その他、それ以上のことが出来る
0003439
01/11/07 15:33ID:GpFz7V+va 単なるサブルーチンコール
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データーなどはセーブデーター中に持たないで、
(サムネイルは除く)ファイルネームなどしか保持しない。
0004439
01/11/07 15:33ID:GpFz7V+v1デファイン機能
a 文字列中の中を実行部で置換可能
2マクロ機能
無し
3計算式
a 計算専用命令を持つ(addとかsubとか)
4関数
a 単なるサブルーチンコール
5書式
d 書式は、ASM形式 mes メッセージ
6構造化
該当無し
BASICの if then が実装されている。行番号で飛ぶ
7セーブ機能
a 実行時にスクリプト自身を書き換えない
ゲームの頭でセーブされる
0005439
01/11/07 15:37ID:GpFz7V+v>もし出来ましたら、サンプルを出してもらえると嬉しいです。
>うちはこんな感じです。
>
>サンプル
>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
>多分ですが、
>命令とデーターが一緒になっているアーキティクチャーで、
>命令長が固定ではないと思われます。
>その際にはラベルは前方参照の解決のために
>バックパッチの仕方がキーポイントなのではないでしょうか。
0006439
01/11/07 15:38ID:GpFz7V+v>グラフィカルなエディターです
>スクリプトは、中間コードに変換してゲームに組み込みます。
>ゲームごとに共通な部分はエディター上でもある程度実行できます。
>画面でみながらやっていくので、スクリプトをテキストとして入力するぶぶんは
>あまりないです。
>スクリプトっぽいところは
>演算とか、条件式の中身ぐらいでしょうか。
>
>とりあえず、参考までに
>
>1デファイン機能
> a 文字列中の中を実行部で置換可能
>(名前とか、色とかに)
>
>
>2マクロ機能
> 無し
>
>3計算式
> c 条件式でもC言語並みの計算が出来る
>変数はすべてグローバル。漢字のみ
>条件式のなかでのみ=は==として扱う。このほうがプログラマーでない人にはいいみたいです
>
>
>4関数
> a 単なるサブルーチンコール
>変数がすべてグローバルなので・・・
>ゲームごとのシステムは呼べるので十分かも
>
>書式
> f その他、
>メッセージ、計算式はそれぞれ、専用のエリアに入力
>
>
>6構造化
> b if-elseif-else-endif が実装されている
> g switch-case が実装されている
>(選択肢として)
>
>7.セーブはシステム側でおこなう。
>実行スクリプトの名前、実行ポインター、コールスタック、
>スクリプト修正時のための補助データ、
>あと変数そのた必要なもの
>
>みなさん
>画像エフェクトは何種類ぐらいつくっているんでしょうか
>さっきかぞえたら70ぐらいでした
0007439
01/11/07 15:39ID:GpFz7V+v>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 単なるポインターセーブ
>
0008439
01/11/07 15:39ID:GpFz7V+v>;------------------------------------------
>;※背景16 商店街・昼
>;------------------------------------------
>;□フェードイン
>
>;■健二
> 俺は何となく商店街をぶらついていた。
> (さて、この後どうしようか。本屋で立ち読みでもしようかな?)
>
>;■健二
> などと考えながら歩いていると、前からこちらに向かって
> 歩いてくる女の子と偶然目が合った。
>
>;------------------------------------------
>;※渡会睦月 普段着:通常
>;------------------------------------------
>
>;■健二
> (ん? 昨日のレッサーパンダ耳の少女じゃないか。)
>
> ∩ ∩
> | ∪ |
> | 〜
> |∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
> ( ,,゚Д゚)つ < これがウチでつかってるスクリプトの書き方。
> U \________
>シナリオライター(外注)には一定の規則で指定を書いてもらっているぞ
>
>
>456 :名無しさん@初回限定 :01/11/01 23:01 ID:uhyPQFjL
>この後、Perlで作った置き換えプログラムにかけて指定の部分を
>スクリプト化・・といってもCG指定用のテンプレ「※背景16 商店街・昼」から
>BG_LOAD "cg29.bmp" という風な変換かけるだけ。
>
>マウス待ちはリターンが連続で2回、かつその次に人物名、もしくは
>ファイルエンドになっているところにPerlプログラムが自動挿入。
>細かい演出を社内で加えて、
>
> あとは処理が上手く行かない個所を部分修正をかけて、
> ∧ ∧ コンパイルしてスクリプトバイナリ化して完成だ。
> (,,゚Д゚)
> / つつ ADV専用だからな、手間と効率を考えた結果だ
> ⊂ ノ
> /(/″ 本当は式解析くらいは付けないと後で困るぞ。
>
0009439
01/11/07 15:40ID:GpFz7V+v>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 言語風にも切り替えは出来ますが、タイピング量が増えるので、
>シナリオライターから敬遠されてます。
0010439
01/11/07 15:41ID:GpFz7V+v>// レジスタ
>#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
0011439
01/11/07 15:41ID:GpFz7V+v>
>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
>ごめん、インデントが飛んでしまった
0012439
01/11/07 15:41ID:GpFz7V+v>>>457
>そんな仕様にして使いこなせる奴居るの?
>作るのちょーめんどくさそー。
>
>1デファイン機能
> a 文字列中の中を実行部で置換可能
> d 全てのトークンを置換可能
>2マクロ機能
> なし
>3計算式
> a 計算専用命令を持つ(addとかsubとか)
>4関数
> a 単なるサブルーチンコール
>5書式
> e 書式は、C言語形式 mes("メッセージ")
>6構造化
> if goto
>7セーブ機能
> a 実行時にスクリプト自身を書き換えない
> b 単なるポインターセーブ
0013439
01/11/07 15:43ID:GpFz7V+v>>>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() //セットした選択支で選択ウィンドウ出す
>とかなら、見た目と画面イメージが近くなるかなぁ…と勝手ながらおもってます。
>あんまり意味ないかもしれませんが。
0014439
01/11/07 15:43ID:GpFz7V+v>1デファイン機能
> a 文字列中の中を実行部で置換可能
> d 全てのトークンを置換可能
>2マクロ機能
> なし
>3計算式
> a 計算専用命令を持つ(addとかsubとか)
>4関数
> a 単なるサブルーチンコール
>5書式
> d 書式は、ASM形式 mes メッセージ
>6構造化
> if goto
>7セーブ機能
> a 実行時にスクリプト自身を書き換えない
> b 単なるポインターセーブ
>
>これで今のところ問題はない。
>強いて言えば、構造化出来ないことか。
>理想を言えば457くらい出来ればいいが、オレには無理。
>しかし、457って凄くない?ホントにエロゲー?
0015439
01/11/07 15:44ID:GpFz7V+v>>447
>選択肢の書式は基本は、
>
>@選択肢
> 選択1
> 選択2
> 選択3
>
>@@選択1
> ・
> ・
>
>@@選択2
> ・
> ・
>
>@@選択3
> ・
> ・
>
>@@で始まるのはラベル。選択肢の文章をそのままラベルに使う。
0016439
01/11/07 15:47ID:GpFz7V+vそれと、スクラッチ派とlex&yacc(flex&biosn)派がいるみたいです。
でも、ゲームプログラマーはスクラッチ派が多いのではと思いますので、
制作時のヒントやこういう状況の時にはこういう仕様がイイとか教えてください。
単体コマンドの機能ではなく、言語仕様はなせたらと思います。
0017439
01/11/07 15:48ID:GpFz7V+v元スレです。
0018名無しさん@お腹いっぱい。
01/11/07 15:56ID:???GEML/GSML
http://www.wffm.org/download/dtd/index.htm
0019名無しさん@お腹いっぱい。
01/11/07 16:23ID:M//VhkmqSGML系統(含XML、HTML)の記述言語は、データを表現するには非常に適していると思うが、
スクリプトのような制御構造を表現するには記述の際のオーバーヘッドが大きすぎると感じる。
002119
01/11/07 18:08ID:???*MSXML IE4以上なら一緒にインストールされていると思う。SDKはMSで入手のこと(.NETβがいいかも)
DOMとか新しい仕様を使いたければユーザにIE5以上のインストールをお願いすることになると思われる。
*XML4C Apacheから出ている。基本的にUNICODEしか使えないので、日本語コードが使いたければIBMが出している多国語対応版を利用のこと。
スタンドアロンで動くので、MSXMLのようなIEのインストール作業が必要ない。新らしXMLの規格への対応も迅速(DOM2やSchemaに対応済み)
ただし、DLLのファイルサイズがでかい。多国語対応版は文字コード変換DLLがいるため、さらにでかくなる。
XMLについて勉強する際は@IT等が良いと思われ。
002218
01/11/07 18:46ID:???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>
中間コード吐くようにすれば実行環境側にはパーサ必要ないし。
・・・でもあんまりメリットないかな。
0023名無しさん@お腹いっぱい。
01/11/09 01:11ID:???ん?MSXML だけインストールさせれば?
XML 使う利点ねえ。
・自分でパーサ書かなくて済む
・生成も DOM 使えば簡単
・SOAP とかネットワーク分散とか
・DTD や XML Scheme といった標準規格で記述した仕様をそのまま使える
個人的には4番目が大きいな。
自分流で仕様書くと必ず曖昧で相手に伝わらない点が出てくるから。
0024名無しさん@お腹いっぱい。
01/11/09 01:48ID:QPURCFOq0025名無しさん@お腹いっぱい。
01/11/09 02:43ID:???http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/001/766/msdncompositedoc.xml
MSXML 3.0 Parser Localized Versions
http://msdn.microsoft.com/downloads/sample.asp?url=/msdn-files/027/001/573/msdncompositedoc.xml&frame=true
0026名無しさん@お腹いっぱい。
01/11/09 10:08ID:XLFvo4DJ・XMLエディタが使える。SchemeやDTD使って文法チェックや自動補完の支援も受けられる
・正確な文法を相手に伝えることができなくても、「こんなかんじ」でサンプル渡せばなんとなく書いてもらえる
0027煽りじゃないけど
01/11/09 10:09ID:4a3RFUktプログラマのオナニーじゃないの?
0028名無しさん@お腹いっぱい。
01/11/09 10:14ID:LYHkp5wYなにかこう、画期的なXMLエディタでも出てくれば事情が違ってくるんだろうけどねえ。
0029名無しさん@お腹いっぱい。
01/11/09 10:17ID:???なんでエロゲーに限定やねん。
それはおいといて、キャラクタのデータベース作るときとか良いかもですよ?
たしかにCSV形式で必要十分っちゃそうなんだけど。
プログラマの自己満足?その通りですわ。本業にフィードバックできるしね。
0030名無しさん@お腹いっぱい。
01/11/09 10:27ID:???変な関西弁だったけど(w
0031名無しさん@お腹いっぱい。
01/11/10 09:51ID:ZLaGQkGzプログラム板にも書きましたが、あがってないようなので…。
http://www.oishi.info.waseda.ac.jp/~oishi/interpreter/ma.html
を元に見よう見まねで電卓を作ってみました。++,+=,16進数等を追加。
↓ソースコード
http://page.freett.com/pluteus/works/bin/calc.lzh
まだif文などにバグありですが、これからゲームに組み込んで、
スクリプトエンジンにしたいと思います。
仕様は…
1デファイン機能
電卓なので変数宣言不要
関数は定義可能
2マクロ機能 なし
3計算式 a,b,c,d
4関数 b
5書式 e
6構造化 a,d,f,i,j
7セーブ機能 なし
switch〜case文、break文、continue文、配列変数なども実装したいんですが、
どこかにbison用の構文解析ソースないですか?
簡易電卓機能までなら結構見つかるんですが、
スクリプトエンジンともなるとちょっと見つかりませんでした。
書籍を買えば分かるのかもしれませんが、
ソースを見たほうが速いので。
0032名無しさん@お腹いっぱい。
01/11/10 11:47ID:???yaccので良ければgccのソースに含まれているよ
http://gcc.gnu.org/
っつーか探せば余裕ででてくるが?
003331
01/11/10 12:23ID:U1Ytzgh8>っつーか探せば余裕ででてくるが?
探すとこが良くなかったようですね、ありがとうございます。
(Googleで"bison flex ソース"とか)
gccくらい高度になると全部自力で構文解析してるのかと思ってました。
調べてみます。
0034名無しさん@お腹いっぱい。
01/11/12 07:02ID:iEHeW1Vlやっぱり小数も扱えるようにしてあると便利なのだろうか・・・。
ちなみに、自分は bison 使って構文解析機作ってます。
0035名無しさん@お腹いっぱい。
01/11/12 10:01ID:???どうしても必要な場合、固定小数点でやってるよ。
小数点以下2バイト、実数2バイトで。
0036名無しさん@お腹いっぱい。
01/11/12 13:34ID:???なんでそんな回りくどいことするの?
普通にbignum作ればそれでいいじゃん
0037名無しさん@お腹いっぱい。
01/11/12 21:08ID:???どうしても必要な場合って言ってるだろ。
計算が速いから固定小数点使ってるんだよ。
0038名無しさん@お腹いっぱい。
01/11/12 23:48ID:???0039名無しさん@お腹いっぱい。
01/11/13 00:03ID:???ていうか、3Dゲームに使うスクリプトなら実数に対応せざるをえない。
0040名無しさん@お腹いっぱい。
01/11/13 16:43ID:???0041名無しさん@お腹いっぱい。
01/11/13 16:59ID:???環境作ってます。環境なんでエディタなんかも込みです。
最近のPCとは比べ物にならないくらい制限がキツイけど、これぐらい
キツイと逆に作り応えがあります。
0042名無しさん@お腹いっぱい。
01/11/13 22:53ID:???0043名無しさん@お腹いっぱい。
01/11/14 17:20ID:xFHu6HrX0044名無しさん@お腹いっぱい。
01/11/14 17:49ID:???どうしてもってなに?
bignumなんて一度作れば終わりじゃん。
もしかして、毎回スクラッチしてるの?
0045名無しさん@お腹いっぱい。
01/11/15 03:14ID:uBJWEUjxとりあえず、フリーのものさがしてみるよ。
コンシューマ機でものっけれるような素敵なのないかな。
0046名無しさん@お腹いっぱい。
01/11/15 03:30ID:???http://www.cc.yamaguchi-u.ac.jp/~shingo/WabaWorld/
携帯機用だから、コンシューマ機に載せ易いかも。
0047_
01/11/15 04:23ID:TDb/e4F8何の為に作るの?
あそこまで作るんだったら、Cをそのまんま使った方がいいと思うんだけど。
ちょっとした言語仕様を盛り込みたい為に、体系を一から構築するのって
どうなの?
0048457
01/11/15 05:03ID:???ざっと考えるだけでも
1)シナリオライターが逐次修正した物を
プログラマーがいちいち打ち込むのは大変。
プログラマーとシナリオライターが同じ場所に居るとは限らないし、
かといって、シナリオライターがソースを触ると危ないし、
シナリオライター全員の分の言語ライセンスを買うわけには行かない。
2)バージョンアップの時に、一部のシナリオファイルの改訂だけですむ
とか、色々あると思います。
0049名無しさん@お腹いっぱい。
01/11/15 12:39ID:9dLaA6vjWavaはどうやらGPLみたいですね。トホホ(;´Д`)
やっぱ仮想マシン自分で作れってことか。
0050sage
01/11/15 13:11ID:uBJWEUjxえっ!なになに!GPLだとまずいの!?
これゲームにのっけるとき、ソース公開せんといけなくなるの?
0051名無しさん@お腹いっぱい。
01/11/15 13:48ID:RSUbKJenご明察。
MS関係者が「GPLはソフトウェアに感染するウィルスみたいな物だ」と発言してオープンソース業界で問題になったことがあったが、
MSの気持ちは痛いほどよくわかるよ。
今の流行はGPLじゃないソースコード公開、勝手に使ってくれというライセンスやね。pngとかzlibとかPythonとかそうでしょ。
0052名無しさん@お腹いっぱい。
01/11/15 14:00ID:???ニュアンスに違いかも知れないけど、誰かに要求されたらソースを公開する
必要がある、という意味だと思いますけど。
作ったからと言って、サイトに無償公開しろ、という意味ではないはず。
もちろん、利用したらGPLであることを記載しないといけないですけどね。
005350
01/11/15 14:03ID:uBJWEUjxBladeOfDarknessっつー洋ゲーにPythonがつかわれてたのは
そういうことか。
スレ違いだけど、ゲームに剛体シミュいれたいなーとか、
シャドウボリュームつかいてーとか思ってる人は、
BladeOfDarknessみとくといいかも。
デモ版があるよ。
0054名無しさん@お腹いっぱい。
01/11/15 14:31ID:???自分が配る時は無償でなくてもいいんだけど、
それを得た他人が無償でくばってもいいので
結局(ソフト自体は)無償で公開してるのと一緒。
0055名無しさん@お腹いっぱい。
01/11/15 15:38ID:???んじゃないかな。基本的に別物扱いで、実行環境等を入れるにしても
GPLに縛られるのはその実行環境のみのはず。
#そうでなければgccなんて使ってられんぞ…。
ちょっと違うのはライブラリの場合で、これは大抵LGPLという緩い
ライセンスになっていて、そうなっていた場合は大抵ダイナミック
リンクする範囲では問題無くなってるはず。
間違ってたらスマソ。
0056名無しさん@お腹いっぱい。
01/11/15 15:52ID:???>え、GPLedな開発環境で作った成果物って別にGPLに縛られない
>んじゃないかな。基本的に別物扱いで、実行環境等を入れるにしても
>GPLに縛られるのはその実行環境のみのはず。
GPLなライブラリやGPLなコードとリンクされる場合ね。縛られるのは。
LGPLでないかぎりはスタティックリンクでもダイナミックリンクでも
しばられる。
じゃあWindowsのDLLとGPLをまぜて使うときはどうなんだという
話はボーダーラインの話なのでGNUの見解を参照。
>#そうでなければgccなんて使ってられんぞ…。
gccを非GPLなモノに使っていいのは特例です。
>ちょっと違うのはライブラリの場合で、これは大抵LGPLという緩い
>ライセンスになっていて、そうなっていた場合は大抵ダイナミック
>リンクする範囲では問題無くなってるはず。
こっちはあってる
GPLの話題は別のところでしましょうかね
0057名無しさん@お腹いっぱい。
01/11/15 17:33ID:afucvIzX携帯だからスレ作れないの。
0058名無しさん@お腹いっぱい。
01/11/15 18:57ID:Akdsfzo6GPL/LGPL等ライセンスとゲーム製作
http://game.2ch.net/test/read.cgi/gamedev/1005818191/
0059名無しさん@お腹いっぱい。
01/11/15 21:40ID:ducCdIA5既存のスクリプトエンジン探せばいろいろ落ちてるんじゃないでしょうか。
未評価ですが、この辺とか。
http://home.elka.pw.edu.pl/~ppodsiad/seer/
http://www.compuphase.com/small.htm
もし自作するなら、あまり気合い入れて作りこまないほうがいいかもねー。
BASICとかバッチファイル並みで十分だと思う。
プログラマ以外にはろくに機能を使いこなせないスクリプトとか、
普通にコンパイラ使えばいいのにってスクリプトになるのもアレだし。
0060名無しさん@お腹いっぱい。
01/11/15 23:50ID:uBJWEUjxつかってるうちにその言語習得できちゃったりして。
0061名無しさん@お腹いっぱい。
01/11/16 00:22ID:???http://www.tecgraf.puc-rio.br/lua/
0062名無しさん@お腹いっぱい。
01/11/16 00:34ID:???対応言語が増えすぎてしまうが(w
0063名無しさん@お腹いっぱい。
01/11/16 00:54ID:ZgDDdgZXあまり言語仕様が高性能すぎても、今度はスクリプトコンパイラ上で動くスクリプト自体の
デバッグに追われることになってしまう。
0064名無しさん@お腹いっぱい。
01/11/16 01:43ID:???あまりに言語仕様が高性能すぎる
と、
スクリプトコンパイラ上で動くスクリプト自体の
デバッグに追われることになってしまう
ということになるってどういうことだろ・・・
言語仕様が単純でも高機能でもデバッグに追われるよ
0065名無しさん@お腹いっぱい。
01/11/16 04:20ID:???凝って自由度を上げすぎると、シナリオ担当者等が扱えきれなくて本末転倒
と言いたいのだと思われ。
0066名無しさん@お腹いっぱい。
01/11/16 06:25ID:???JAVAを組み込むのにモえてもたよ。
http://www.netgene.co.jp/java/docs/javaPressVol14.html
ここを参照でまーなんとかできそうだ。
this->*(_opcodes[*_pc]))();
こんなことをやってオペコード実行しとりますが、
このやり方にマンセーなかたがいらっしゃいましたら、
てきとうなとこでウプしますけど。
はは・・・たたかれそうだな・・・。
0067名無しさん@お腹いっぱい。
01/11/16 07:06ID:???http://grunge.cs.tu-berlin.de/~tolk/vmlanguages.html
0068名無しさん@お腹いっぱい。
01/11/16 09:07ID:???ただ、MSから仕様書拾ってきたらページ数ありすぎで読む気しない。
英語馬鹿でも読める、もちっと纏められた資料ってないんかの〜。
0069名無しさん@お腹いっぱい。
01/11/16 11:32ID:???007066
01/11/16 12:03ID:???CLRかぁ!うーん・・・どうしよっかな・・・。
でも >>67 のみて十分JavaVMでもいろんな言語いけるおもたよ。
日本語資料よくできてるし。
べつにバイナリコードでプログラムするわけないしね。
0071名無しさん@お腹いっぱい。
01/11/16 12:08ID:???Javaベースにしてメイン部分をJNIに逃がす、
ということはできないのだろうか。
0072名無しさん@お腹いっぱい。
01/11/16 14:33ID:???0073名無しさん@お腹いっぱい。
01/11/16 16:54ID:???まぢ!Java言語じたいより、VMのほうが長生きする予感
0074名無しさん@お腹いっぱい。
01/11/16 23:36ID:???せっかくだからアプしようぜ。
>>68
俺もダウンロードしてきたけど、読み応えありすぎるわ(w
0075名無しさん@お腹いっぱい。
01/11/17 00:39ID:???できるだろうけど、ほとんど意味ないんじゃない?
プログラマ以外の人が簡単にゲームのフレームや流れを作れるようにするために
スクリプト作るってのが元の目的でしょ?
まあ面白いけど(w
0076名無しさん@お腹いっぱい。
01/11/17 01:35ID:???0077名無しさん@お腹いっぱい。
01/11/17 01:42ID:???うーん、GPLなんかだと激しく萎えるなあ
0078名無しさん@お腹いっぱい。
01/11/17 01:59ID:???0079名無しさん@お腹いっぱい。
01/11/17 02:07ID:???ハハハ、なんつーかそこまでムキになるなやって感じやな。
0080名無しさん@お腹いっぱい。
01/11/19 00:29ID:???0081名前は開発中のものです。
01/11/24 21:29ID:???あれ?やってなかったっけ?ほのかに記憶あるんだけど。
0082名前は開発中のものです。
01/11/24 21:33ID:yBLWDR2S0083名前は開発中のものです。
01/11/27 09:53ID:???みつかんないよーどこにあるの!?
0084名前は開発中のものです。
01/11/27 10:01ID:???0085名前は開発中のものです。
01/11/27 11:15ID:???>>78のリンクみろ
>>83
http://www.gnu.org/projects/dotgnu/projects.html 「* Support for Java bytecode」
http://www.southern-storm.com.au/portable_net.html
まだ実装されてません
008685
01/11/27 11:37ID:???実装されてます
008883
01/11/27 21:35ID:???・普通にC#コンパイラとして使えました。(EXE出力)
・JavaVMアセンブリソースのはきだし方。
%cscc -mjvm -S source.cs
この出力結果から、.classができるかどうかは、まだわかりません。
008983
01/11/27 23:11ID:???>>88 の方法で吐き出した source.jl (JVM-ASMをIL形式で出力したもの)
をilasmにくわしてみた。
%ilasm -mjvm source.jl
(-mjvmオプションはソースをIL形式のJVMバイトコードで出力)
出力結果.objをみてみたけれども、.classにはほど遠い。
.jlをjasmin(JavaASM)のフォーマットに変換するのが
C#->.classへの近道っぽい。(わりとよく似てる)
0090厨房
01/11/28 00:36ID:???0091名前は開発中のものです。
01/11/28 00:56ID:???CLIもスタックマシンらしいけど?
ここにC#コンパイラがどうしてJVMコードをはけるのかとか
なぜgccと統合しなかったのかとかが書いてある
http://www.southern-storm.com.au/pnet_faq.html
0092名前は開発中のものです。
01/11/29 14:19ID:???JavaVMと似てるならCLI真面目に勉強したいな。洋書読める程英語できないし、早く翻訳されないかな。
0093名前は開発中のものです。
02/01/03 07:02ID:WLPQVhtkBASICのIFが使える程度で良いのですが、
色々調べても難しい物ばかりでなかなか良い物を探せません。
何か良い物があったら教えてください。
0094名前は開発中のものです。
02/01/03 08:47ID:WHmmrKAUグラフィックだとかも使えるしね。
0095名前は開発中のものです。
02/01/03 09:31ID:???おいおい。
>>93
コンパイラじゃないけどこの辺を
http://member.nifty.ne.jp/nakamula/recurs.htm
0096名前は開発中のものです。
02/01/03 10:20ID:???F-BASICは産業分野で大活躍しとる。
N-88Basicで書かれた昔の計測システムとかを動かすのにな
板違いsage
009794
02/01/03 11:51ID:???スマソ。
0098名前は開発中のものです。
02/01/03 17:17ID:???ttp://member.nifty.ne.jp/KENJI/
ここがおすすめ
0099名前は開発中のものです。
02/01/03 23:20ID:WLPQVhtkスクリプトコンパイラで検索すれば色々でてくるよ。
0100名前は開発中のものです。
02/01/04 03:58ID:/BxIs0ic色々調べても難しい物ばかりなので、自分で拡張できそうにないです。
何か拡張を前提とした良い物って無いでしょうか。
ソースがわかりやすいものが良いです。
0101名前は開発中のものです。
02/01/04 11:02ID:???前述のリンクたどって1からスクリプト組んでみるといいと思う。
できたころには、他のスクリプトも拡張できるようになってる。
俺の場合だけど
■ このスレッドは過去ログ倉庫に格納されています