スクリプトコンパイラについて ( yac と lex も可 )
■ このスレッドは過去ログ倉庫に格納されています
0001439
01/11/07 15:31ID:GpFz7V+v(エロ)ゲームプログラマーには一番難しい所かもしれません。
yac と lex も可です。
0109名前は開発中のものです。
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互換じゃなくて、完全互換の方がよかったのかなと
チラシの裏
0168名前は開発中のものです。
2007/04/14(土) 14:31:45ID:sT9fQnfw最近、言語自体に興味を持って作り始めましたが
数字と演算子の数を出力するぐらいしか出来ません。
0169名前は開発中のものです。
2007/07/12(木) 20:51:47ID:JmSceXMOグローバルスコープなフラグとラベルジャンプでできたスクリプトでは、
フラグの一貫性やループに陥っていないか等の解析が手動でも自動でも
著しく困難になる。
凝り性のシナリオライターが作ったスパゲッティフローチャートを
if, for, while & 関数・サブルーチンだけで書き下せると思う?
0170名前は開発中のものです。
2007/07/15(日) 01:32:20ID:X6VsKP490171名前は開発中のものです。
2007/07/23(月) 04:01:14ID:zHMsQNv9色んな問題をスクリプトだけで解決しようとしすぎじゃね?
0172名前は開発中のものです。
2007/07/30(月) 23:04:20ID:mh1RLDn7俺がxmlの研究目的で作ってるxmlベースの言語が
narrative documentをプログラマブルに扱えるものでPLの制御構造と組み込みライブラリと例外処理と文章に対するメタデータ記述能力を持ってるが
こいつはメモリ上に中間コード吐いてインタープリタで直に実行するかほかの言語のソースコード吐くようになってて要するにEiffelなんだが
>シナリオ用スクリプトを構造化 は出来てるぞ。
ただし、ライブラリは組み込みのみでそのライブラリを作るのはプログラマって割り切ってる。
あと要素の評価結果が文字列なら標準出力へ出力するんだけどその標準出力を定義するのもプログラマ。
つまり組み込みライブラリと出力先をADVエンジン用に実装すればADVエンジンへの応用が利く。
こういうもんを作れば
>シナリオ用スクリプトを構造化すること
スパゲッティフローチャートをif, for, while & 関数・サブルーチンだけで書き下す
は実際に出来てる。
あと言語そのものがxmlなんでXSLTやXSL-FOでhtmlやPDFへ"スパゲッティフローチャート"を変換できる。
そのためにメタデータ記述能力を持たせた。
あとxmlそのものが機械的に管理されることを前提に
設計されてるのでIDEなんかが作りやすいメリットもある。
欠点は専門的すぎてちょっとしたhypertext systemを実装できるくらいの学術知識が必要かな。情報系の卒論向きだな。
ラベルによるgotoは全部xlinkだったりするし。
0173名前は開発中のものです。
2007/07/30(月) 23:06:52ID:mh1RLDn7そういう前提で作ってるし。
0174名前は開発中のものです。
2007/08/02(木) 18:38:56ID:IqLuhQEt結局スパゲティかよ('A`)
0175名前は開発中のものです。
2009/01/02(金) 22:08:59ID:qteump49目的に合わせた複数の言語を作り、共通の中間コードにコンパイルして、共通のVMで動作させる予定なのだが、VMの仕様で悩み中
最初はCOMET互換のものを作ってたんだが、スタックマシンの方がシンプルになりそうな気がする
フラグレジスタとか考えなくていいし、そもそもソフトウェアで動作させるんだからレジスタとかいらなくね?みたいな
他のスクリプトのVMの実装を知らないんだが参考までに、おまいらの意見をいただけないでしょうか
0176名前は開発中のものです。
2009/01/03(土) 19:42:11ID:LhDhqbivただ内部データ(登場時刻、位置、画像、移動パターン)に変換するのみ
0177名前は開発中のものです。
2009/01/04(日) 23:05:16ID:ZWLW/6f7前にゲーム製作技術板でゲーム用DSLにJVMのサブセット実装してた人がいたよ。
(しかもコンパイラはJavaを使うらしいw)
まあ、再発明になると面白みがないだろうがポータブルな実装つくるのもいいんでないのかな?
0178名前は開発中のものです。
2009/01/04(日) 23:06:00ID:ZWLW/6f70179名前は開発中のものです。
2009/02/03(火) 21:19:13ID:AbbFosQL0180名前は開発中のものです。
2009/02/06(金) 12:39:51ID:sIJNyM9NWhat is "Ypsilon"?
0181名前は開発中のものです。
2009/02/06(金) 20:54:52ID:MuHkM83Cもしかして、リトルウイングのScheme処理系?
http://www.littlewingpinball.com/contents/ja/ypsilon.html
0182名前は開発中のものです。
2009/10/16(金) 20:40:03ID:ZrBg9mxX0183名前は開発中のものです。
2010/07/27(火) 16:50:26ID:Wuh12NAUニートで何が悪い
Scheme処理系作ったら本気出す
0184名前は開発中のものです。
2010/08/08(日) 21:17:40ID:JbWPlsYy0185名前は開発中のものです。
2010/09/30(木) 20:19:23ID:RMd6Ohi3なんという定義ファイル
0186名前は開発中のものです。
2011/07/07(木) 04:18:10.46ID:zE+DGvJmできるだけ単純に書けて、単純な出力をするスクリプト言語を作った。
定義ファイル代わり+シーケンスも多少は書けるってとこ。
興味があったらどうぞ。
ttp://kushi.lv9.org/teco/index.html
0187名前は開発中のものです。
2011/07/07(木) 12:17:50.82ID:kgWPk38Hhttp://hibari.2ch.net/test/read.cgi/tech/1301414458/
こっちの方が近いと思う。
0188186
2011/07/07(木) 13:21:45.30ID:zE+DGvJmゲーム用途を考えてたからここに書き込んだんだけど、あんまり関係ないのかな?
このスレの最初の方の人達に見てもらいたくって。
向こうにも書き込んでみようかな。
0189名前は開発中のものです。
2012/02/01(水) 23:20:06.94ID:2Eijr2Ns0191名前は開発中のものです。
2012/03/04(日) 23:48:04.51ID:IYAv19lc
両方使ったことない
0193名前は開発中のものです。
2012/04/24(火) 10:34:48.93ID:wzzo7GXM0194名前は開発中のものです。
2012/06/03(日) 18:46:09.62ID:tMZzvBuc0196名前は開発中のものです。
2013/12/27(金) 00:30:00.81ID:BInQBZ9j■ このスレッドは過去ログ倉庫に格納されています