スクリプトコンパイラについて ( yac と lex も可 )
■ このスレッドは過去ログ倉庫に格納されています
0001439
01/11/07 15:31ID:GpFz7V+v(エロ)ゲームプログラマーには一番難しい所かもしれません。
yac と lex も可です。
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からスクリプト組んでみるといいと思う。
できたころには、他のスクリプトも拡張できるようになってる。
俺の場合だけど
0102100
02/01/04 18:15ID:UkX35gI3サンキューです。
単純なスクリプトコンパイラを作るのソースを参考にしてみます。
これなら簡単に理解できそうです。
専学で作ってるゲームシステムをどこかにアップしてみんなに見てもらうことって
出来るんでしょうか。
いえね、なにか自分のがプロの方にはどう見られるかと思ってね
0103名前は開発中のものです。
02/01/05 19:27ID:???2chにさらすのが手っ取り早い。
0104100
02/01/06 09:03ID:+jtLqqFXつまらない物だけど、もし出来上がったらさらします。
単なるアドベンチャーゲームのエンジンなんですが、
ちゃんと出来ているかというより、
今後何年間かでプロになれるかが心配なのでみんなに見てほしいです。
0105名前は開発中のものです。
02/01/09 07:08ID:9EzpJOZt100のADVシステムきぼん
0106100
02/01/14 09:10ID:5xExvzQXttp://www4.famille.ne.jp/~yo-ogawa/cgi-bin/bbs/upload.cgi
批評お願いします。
新しく板、作ったほうがいいでしょうか
0107100
02/01/14 09:20ID:5xExvzQXhttp://www.nyan-web.ne.jp/~mystyle-jp/cgi-bin/upboard/imgboard.cgi
サンプルも入れておきますので、批評お願いします。
0108名前は開発中のものです。
02/01/14 09:31ID:v4MH2X5h0109名前は開発中のものです。
02/01/14 20:57ID:???思ったのだが。C言語っぽいし、WindowsAPIも呼び出せるし。
0110名前は開発中のものです。
02/01/14 21:21ID:NFXyvc6Z優秀なサンプルプログラム、ライブラリとしては後一歩のところがとどかない。
とかいて気付いたが、yaneSDKはそのままC言語だろ。(w
正確にはC++だけど。
0111名前は開発中のものです。
02/01/14 21:29ID:JgCRpRR+>>100
108 ではないけど、最初に形にした物としてはよいのでは。
自分が初めて形にした物よりはだいぶマシ(苦笑)
ただ、400 行以上にもなる関数があるのは頂けないので、
そのへんは注意せんとね。
0112名前は開発中のものです。
02/01/14 22:01ID:???スクリプト言語のほう言ってるんじゃない?
ここのスレで言っているからして。
しかしそれにしても、いまどきフリーのC/C++コンパイラもあるのに
わざわざC言語に劣るスクリプト言語を使うメリットはそんなに大きくないだろう。
0113名前は開発中のものです。
02/01/14 22:06ID:???0114名前は開発中のものです。
02/01/14 22:14ID:???一発でmake後実行できるように環境を整えておけば似たようなもんだよ。
スクリプト言語って記述しやすければ開発が楽になるが、腐った仕様の
スクリプト言語をつくっちまうと逆に足手まといになるね。
0115名前は開発中のものです。
02/01/14 23:48ID:5+gjnPlJシナリオライタとプログラマが同一人物とは限らないし、
シナリオライタが複数いることもある。
プログラマ以外の人がシナリオを触ると、問題が出てくることが多い。
動作チェックするときにも再コンパイルをして、
コンパイラの最適化によるバグも防げる。
もちろん、スクリプトコンパイラは十分バグ出ししていることが必要だけど。
スクリプトコンパイラでちゃんとスクリプトのバグを出してくれるのであれば、
バグも出にくくなる。
表示される文字セットの問題(改行コードや主人公の名前など)も
解決しやすくなる。
シナリオの既読と未読などもスクリプトコンパイラの方が管理しやすい。
(Cのマクロでもできるけど)
スクリプト言語にC言語の記号を持ち込まなくて良い。
だいたいのシナリオライタはC言語の記号を説明すると、記号が多くいやがる。
BASIC風(PASCAL風)な方が喜ばれることが多い。
弱点は動作スピードが若干遅くなること。
0116名前は開発中のものです。
02/01/15 02:39ID:???難易度がC言語やC++のそれと変わらない気がする。汎用性ありすぎ。
つまり、あれを使いこなせるくらいなら素直にVC++弄った方が
いいかも。
0117名前は開発中のものです。
02/01/15 06:34ID:???0118名前は開発中のものです。
02/01/15 11:17ID:???客観的にみたとしてもC/C++よりかなり使いにくいですが・・・
0119100
02/01/15 15:07ID:7CY8ofuR前回と違うところはシューティングシーンを付加しました。
No.558です。
http://www.nyan-web.ne.jp/~mystyle-jp/cgi-bin/upboard/imgboard.cgi
>>108&111
ありがとうございました。
専門学校卒業というだけで白い目で見られていたので、これで自信がもてました。
0120名前は開発中のものです。
02/01/15 16:39ID:???専門だからっていって気負いするこたあない、がんばれ。スレ違いなのでsage
0121名前は開発中のものです。
02/01/16 21:45ID:???ちなみに今年度、は(高卒の就職率>大卒の就職率)でした。
それでも大学進学を強くお薦めします。
大学出てもポアなヤツは、高校出だと、もっとポアな可能性が高いので。
0122名前は開発中のものです。
02/01/17 01:38ID:???0123名前は開発中のものです。
02/01/19 00:48ID:???どうも、mallocの数とfreeの数一致してないように見えるんだが…。
古いから誰も知らないか
0124名前は開発中のものです。
02/01/20 01:35ID:???freeが全然たりないんでは?
文字列用に確保したメモリ、解放してないし。
0125A
02/01/28 00:09ID:v411FPbT置換とか評価とか、面倒なことはコンパイラに任せています。
#! /bin/bash
cat $1 | gcc -E -
これだけでも、コメントとディレクティブを処理してくれるツールになります。
0126名前は開発中のものです。
02/01/28 02:06ID:???それだけだったら素直にcpp通せば……。
0127名前は開発中のものです。
02/04/10 14:29ID:7gizi2lc0128名前は開発中のものです。
02/05/07 23:17ID:???0129名前は開発中のものです。
02/08/20 01:38ID:???どうなりました?
0130名前は開発中のものです。
03/03/16 21:32ID:bxK/yvms今わかりました。
YGS2k 正式名称はyaneuraoGameScript2000
有名なyaneSDKのほかにスクリプトコンパイラも
存在しているのですね。
良スレあげ。
0131tantei
03/03/16 21:51ID:25Eg6wpZ●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
直通 090−8505−3086
URL http://www.h5.dion.ne.jp/~grobal/
メール hentaimtt@k9.dion.ne.jp
グローバル探偵事務局
0132名前は開発中のものです。
03/03/16 22:19ID:NsysnKZAn n
ミゝヽ / ヾ彡
ゝ ノ ヽ ヾ
/ /∧_∧ ∧_∧| ヽ
アヒャー .| <( ゚∀゚) (゚∀゚ ..)> | アヒャー
ヽ ゝ ヽ⌒ヽ /⌒丶 ゞ /
ヽ ヽ n___ _n / /
| 完 /ヽ ⌒二ソ__彡ミ__ゝ二⌒ /ヽ終.了|
/ ̄\_| |  ̄ ̄  ̄ ̄ | |_/ ̄ヽ
\ ヽ ヽ / ノ /
\⌒ゝ~\ \ / /~ ヾ⌒ /
ヽ ( \ \ / / ) /
∪ \ \ / / ∪
\ \ │ / /
 ̄ ̄ / ̄\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
─( ゚ ∀ ゚ )< 終!
\_/ \_______
/ │ \
0133やほー
03/04/03 07:00ID:C6VUGYVR普通のスクリプトエンジンだ
yaccに興味あるんだけど何をどうしたらいいのかわからん。
だれか良質な解説サイト知らない?
0134名前は開発中のものです。
03/04/03 07:34ID:GN4ao2kv□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
0135名前は開発中のものです。
03/04/03 08:10ID:UgopLJw/時代はboost::spiritだぜ!
0136名前は開発中のものです。
03/04/03 08:11ID:NfJJ5fnj/  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
/ このスレは無事に /
/ 終了いたしました /
/ ありがとうございました /
/ /
/ モララーより /
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
∧_∧ / /∧_∧
( ・∀・) / /(・∀・ )
( )つ ⊂( )
| | | | | |
(__)_) (_(__)
0137名前は開発中のものです。
03/04/09 22:53ID:PK8UclG0coroutine(協調thread)とか使えないかな?
0138名前は開発中のものです。
03/04/09 22:58ID:pjdVuvyV□□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□
□□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□
□■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□
□□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□
□□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□
□□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□
□□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□
□■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□
□□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□
□□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□
□□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□
□■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□
□■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□
□□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□
0139名前は開発中のものです。
03/08/22 21:05ID:pXJcQ2880140名前は開発中のものです。
04/04/14 21:04ID:HGm3G41Hスクリプトつかう以前の環境設定の段階で。
VC6でのつかいかたおしへて>>137
0141名前は開発中のものです。
04/08/19 19:18ID:afoemJ4u0142名前は開発中のものです。
04/10/10 18:42:40ID:K/XMs6Gmパージングがいらないので仮想コード化が楽だし、
比較的軽くて小さなVMが作れるしで個人的には大好きなんだが。
RPN構文に癖がありすぎるからかねぇ。
0143名前は開発中のものです。
04/10/11 00:52:26ID:utv6tbQW構文解析いらないので楽〜
逆ポーランドヽ(´ー`)ノマンセー
0144名前は開発中のものです。
04/10/11 01:23:27ID:J2l165WT半年前の書き込みにレスするのもあれだが
Caluaという、「luaの組み込みを簡単にするためのライブラリ」がある。
ttp://calua.sourceforge.net/
0145名前は開発中のものです。
2005/04/10(日) 02:58:01ID:4CIkTtRihttp://www.angelcode.com/angelscript/
0146名前は開発中のものです。
2006/04/16(日) 01:24:30ID:NIJWxfjnこのスレで言うスクリプトってRPGやギャルゲーのシナリオだけ?
シューティングの敵の出現・動作パターンや格ゲーのモーションデータまで含めると
ゲームの本体プログラム≡スクリプトのインタプリタ
って位ゲーム製作において重要な部分だと思われ。
ここら辺はCで直書きする訳にも行かないし、皆どうしているか聞きたい。
(格ゲーのモーションをCで書いたら相手のモーションと同時実行するために
マルチスレッドが必要だったり、
技をキャンセルするのにスレッドをkillしなくちゃいけなかったり訳分からん)
0147名前は開発中のものです。
2006/04/16(日) 03:25:20ID:aygEIUBSマルチスレッドが必要だったり、
んなあほなww
も前は、キャラクターごとにスレッドを作るのかw
普通は、ゲームでは非プリエンプティブなマルチスレッドを使う。
つまり、コストの低い、擬似タスクな。
あと、モーションは、デザイナにまかせたりするので、スクリプトで制御することも多いよ。
0148146
2006/04/16(日) 09:51:53ID:NIJWxfjn酔ってたせいで何に煽ってるのか分からない煽り口調になってるしw
>非プリエンティブなマルチスレッド
は一般的なOS+Cでは不可能ですよね。機械語で書く場合でしょうか。
それともsetjmpで無理矢理実装とか?
0149名前は開発中のものです。
2006/04/16(日) 14:12:25ID:P72bJmUyコンソールの話だと思われ。
時代遅れの発想なんであまりやって欲しくないけどね。
0150名前は開発中のものです。
2006/04/16(日) 16:14:41ID:F+evVwwX今はまだそれ以前の部分で躓いていて
問題を先送りにしているが、いずれ考えなきゃいけない部分だと
俺も思っている。
インタプリタは難しいんで、MIDLコンパイラみたいに
スクリプトからC++ソース生成じゃ駄目かなあ?
0151146
2006/04/17(月) 01:06:45ID:M8YTTZ7z用途によりますよね。
ギャルゲーやRPGなら大丈夫だけど、アクション系のゲームだと前述のような問題が。
自分はRPGを製作中ですが、複数キャラを同時に歩かせたりメッセージ表示しながらアニメしたりと
「スクリプトのシンクロ実行」を実装する予定なので、頑張ってインタプリタを書いてます。
基本的にCとかは1スレッドにつき1つしかプログラムの「筋」を持てない。
で、ゲームのメインスレッドというのは大抵メッセージループを回す構造になってるわけで、
ループ回しつつ逐次実行のコードを同時に走らせようと思ったら別スレッドにするか
スクリプトとして(もしくはスクリプト風に)実行順序をデータとして持っておいて
ループで実行するしかない、というのが前提条件かと。
最近「生成的プログラミング」とやらが流行ってるお陰で
大抵の言語に出来のよいパーサが開発されたり、
継続やらモナドやらExpressionTemplateやら「言語内言語」に関する技術がたくさん出てきたりしているので、
その辺をゲーム開発に取り込んでいったら面白いんじゃないか、と思う次第であります。
0152名前は開発中のものです。
2006/04/17(月) 01:19:59ID:2X7IXBs2某ステフでアクションRPGのスクリプトを作ってますが、シンクロでは悩まされます。
試行錯誤であーでもないこーでもないと何とかやってますが、地味に面白いですよねw
0153名前は開発中のものです。
2006/05/10(水) 15:25:54ID:BR/3osvo0154名前は開発中のものです。
2006/05/10(水) 15:31:42ID:5no3yNph詳細希望
0155名前は開発中のものです。
2006/05/11(木) 23:55:49ID:OvObgVlQboost::spirit使ってみろ、と。
0156名前は開発中のものです。
2006/05/12(金) 01:33:27ID:sXlqKymr0157151
2006/05/14(日) 21:20:12ID:VGwK5BXtpTaskをタスクオブジェクト(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(); }
};
みたいな感じで行けます。
0158151
2006/05/14(日) 21:21:52ID:VGwK5BXtえっと…(sleep 10)どうしようか。wait
これを
・全角文字を""で囲む
・全体を'()で囲む
と処理すると
'("えっと…" (sleep 10) "どうしようか。" wait)
というschemeコードになります。リストの要素要素がEvalNextで返されるTaskです。
現在エンジンにはvismというschemeライブラリを使っていますが、
公開停止しているのと微妙に仕様が合わないのとで、現在手書きを検討しています。
0159名前は開発中のものです。
2006/05/19(金) 13:39:30ID:Gqm6Z0J6そのやり方覚えておこう
0160名前は開発中のものです。
2006/07/15(土) 03:22:31ID:+R4TsQjQと、チラシの裏
0161名前は開発中のものです。
2006/09/01(金) 23:48:53ID:/m07WVDn0162名前は開発中のものです。
2006/09/02(土) 13:11:40ID:VymI6uhUttp://onigiri.s3.xrea.com:8080/delphi/index.php?cmd=read&page=gikobasic
だれか所在を知らないか?
0163名前は開発中のものです。
2006/09/29(金) 12:41:28ID:SBqDXED00164名前は開発中のものです。
2006/09/29(金) 12:43:17ID:DcIeecDs0165名前は開発中のものです。
2006/10/02(月) 16:55:37ID:3LC0p1Pp使わせて貰ったことあるからちと悲しい
0166名前は開発中のものです。
2006/10/02(月) 17:06:00ID:yaGw0AJAそして誰も作らないだけだぜ
0167名前は開発中のものです。
2006/10/06(金) 01:32:30ID:lE7We31z中途半端にHSP互換じゃなくて、完全互換の方がよかったのかなと
チラシの裏
■ このスレッドは過去ログ倉庫に格納されています