ChaosなScript 2012/05/05 hole.

Slides:



Advertisements
Similar presentations
ユーザ定義演算子による 内部 DSL の構成法 市川 和央 千葉 滋 東京工業大学大学院 1. Domain Specific Language (DSL) 用途に応じたミニ言語 select name from register where age < 30 SQL hello : hello.c.
Advertisements

プログラミング言語論 第10回(演習) 情報工学科 木村昌臣   篠埜 功.
シーケンス図の生成のための実行履歴圧縮手法
第3回参考文献発表 PHP言語 岩永逸平.
密な演算子呼び出しで実現した 内部DSLの前処理による 実行速度改善の試み
コンパイラ 2011年10月17日
「吉里吉里2KAG」による アプリケーションの開発 -アドベンチャー・ゲーム以外の各種用途への応用-
επιστημη さん 提供の VB.NETプログラムを丸裸にする!?
背景 我々の研究室で開発しているJavaプログラム解析フレ ームワークでは,解析情報はメモリ上に保持される 問題点
LMNtalからC言語への変換の設計と実装
第6回 Flashによるゲームの作成 04A2029           古賀慎也.
早稲田大学大学院理工学研究科 情報科学専攻修士2年 後藤滋樹研究室 坂本義裕
伺か with なでしこ 発表者:しらたま /05/05 うかべん大阪#3.
Lispとは ゲーム理論 minimaxアルゴリズム αβアルゴリズム ソースコードの一部
Tcl/Tk 西中 芳幸.
文法と言語 ー文脈自由文法とLL構文解析ー
3DCGソフトウェア 「六角大王」による作品の制作 -Webデザインコンテスト参加作品(2008/2009)-
Phenixサーバ クラックまとめ.
オペレーティングシステムⅡ 第3回 講師 松本 章代 VirtuaWin・・・仮想デスクトップソフト 2009/10/16.
MSBuild 色々出来るよ 2011/04/02 お だ.
はじめてのASP.NET 楽しいアプリ制作の会 #1 TWorks.

  【事例演習6】  数式インタプリタ      解 説     “インタプリタの基本的な仕組み”.
①データ構造 ②アルゴリズム ③プログラム言語 ④マークアップ言語
心理学情報処理法Ⅰ コンピュータ言語の歴史.
プログラムはなぜ動くのか.
高性能コンピューティング論2 第1回 ガイダンス
の まとめ 2007/04/02 (Mon) / d;id:hzkr
コンパイラ 2012年10月15日
発表者 2011/01/08 楽しい256バイトイントロの 世界 発表者 2011/01/08.
コンパイラ 2012年10月22日
PHPの基礎と開発手法 Based on PHP5
コンパイラ 2011年10月24日
型付きアセンブリ言語を用いた安全なカーネル拡張
高速剰余算アルゴリズムとそのハードウェア実装についての研究
言語プロセッサ2007 平成19年9月26日(水) (Ver.2 平成19年10月3日変更)
最適化の方法 中田育男著 コンパイラの構成と最適化 朝倉書店, 1999年 第11章.
インラインスクリプトに対するデータフロー 解析を用いた XHTML 文書の構文検証
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第1週目 アセンブリ言語講座
プログラミング言語入門.
OpenGLライブラリを用いた3次元フラクタルの描画
Ibaraki Univ. Dept of Electrical & Electronic Eng.
言語と文法 言語とは,ルールに従う記号列の無限集合である. 文法を与えることで言語が定義できる.
DSLはVisualツールのサポート前提
Fortranについて 高エネルギー加速器研究機構 平山 英夫.
文法と言語 ー文脈自由文法とLR構文解析3ー
バイトコードを単位とするJavaスライスシステムの試作
Flashを用いたゲーム制作 05A1304 鈴木 浩高.
ぷよゲーの作り方入門 うでぃおふ 11th サカモトトマト Push key F5 Enter で 次のページへ.
C言語を用いたマシン非依存な JITコンパイラ作成フレームワーク
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
文法と言語 ー文脈自由文法とLL構文解析ー
コンパイラ 2011年10月20日
Javaバーチャルマシンを利用した 動的依存関係解析手法の提案
高度情報演習1A スクリーンセーバ作成 2016年4月13日 情報工学科 篠埜 功.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
文法と言語 ー文脈自由文法とLR構文解析ー
実装について 前田俊行.
プログラムの差分記述を 容易に行うための レイヤー機構付きIDEの提案
統合開発環境のための プログラミング言語拡張 フレームワーク
第6回放送授業.
第2回 開発環境とゲーム 05A1030 佐々木 和也.
言語プロセッサ 第12日目 平成20年1月9日.
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
オブジェクト指向言語論 第二回 知能情報学部 新田直也.
コンパイラ 2012年10月11日
知識ベースの試作計画 ●●●研究所 ●●●技術部 稲本□□ 1997年1月.
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
第10回 関数と再帰.
1.2 言語処理の諸観点 (1)言語処理の利用分野
Presentation transcript:

ChaosなScript 2012/05/05 hole

この発表の趣旨 farbrauschの数々のフレームワーク群 オブジェクトのアニメーション制御等に使われてきた独自組み込みスクリプトについて概観

もくじ 自己紹介 farbrauschスクリプトシステムの変遷 具体的な仕組み まとめ 作品変遷やデモシーン業界との関係 WZ4のスクリプト言語 まとめ

もくじ 自己紹介 farbrauschスクリプトシステムの変遷 具体的な仕組み まとめ 作品変遷やデモシーン業界との関係 WZ4のスクリプト言語 まとめ

自己紹介 hole メガデモ系大学院修士一年生 CGとかCVとか研究してたり My first demoscene :) 96キロバイトFPS .kkrieger

自己紹介 最近作った作品(TDF2011) 256バイトイントロ L.E.D.

自己紹介 最近作った作品(TDF2012) 4キロバイトゲーム Grazer Live Coder GLSL editor/viewer

自己紹介 Twitterなど http://kagamin.net/hole/

もくじ 自己紹介 farbrauschスクリプトシステムの変遷 具体的な仕組み まとめ 作品変遷やデモシーン業界との関係 Chaos’s Script Language WZ4のスクリプト言語 まとめ

farbrausch作品の変遷 debris Candytron fr-08 Rove .kkrieger Masagin

Demo Intro farbrausch作品の変遷 debris Candytron fr-08 Rove .kkrieger Masagin

farbrausch作品の変遷 デモシーン全体の傾向 作品数

farbrausch作品の変遷 2000年代前半 2000年代後半以降 64kなど,サイズ制限のあるIntro開発が盛ん

farbrausch作品の変遷 スクリプトシステムの指向もこの通りに! 2000年代前半 2000年代後半以降 64kなど,サイズ制限のあるIntro開発が盛ん 2000年代後半以降 サイズ無制限のデモが中心になりIntroは減少

farbrauschスクリプトシステムの変遷 今回公開されたフレームワーク群 GenThree CandyTron RauschGenerator 2 一部64キロバイトデモ Werkkzeug3 非常に多くの作品 Werkkzeug4 最新のフレームワーク

farbrauschスクリプトシステムの変遷 GenThree時代 Chaos’ Scripting Language WZ3時代 スクリプトシステムの積極使用終了 WZ4時代 アニメーション等特定の制御に使用

GenThree時代 Intro全盛期 Scripted Demo System CandyTron Chaos’ Scripting Language(CSL) 軽量バイトコードによる制御 独自のコンパイラ,VM内臓

GenThree時代 スタックUI スタックUIで記述したシーンをCSLに変換 CSLは中間言語 スクリプトは独自コンパイラによって独自バイトコードに変換 スクリプトを中間言語として用いることで柔軟性高

WZ3時代 徹底した軽量化 GenThreeより引き継いだスタックUI強化 .kkrieger Script言語内臓してるっぽいけど・・・ CSLは基本的に使わないスタイルに バイトコードが案外巨大 ランタイム(VM)も巨大 とてもたくさんの作品に使われた kkriegerを作ろうというのが出発点.よってサイズ減少徹底.(96kFPSは難易度たかい) CandyTronの経験より,スクリプト言語多用するとサイズ的に不利になるのであまり使わない方向になった スタックUIによって記述されたシーンを直接実行 条件分岐なども記述可能!

WZ4時代 WZシリーズ最新バージョン より洗練されたスタックUI 近年の作品はコレ よりサイズ制限の無い作品向けのバージョン 一部操作をスクリプト言語で実行可能 スクリプトの使用拡大 最近のやつ 近年,サイズ制限のあるイントロより無制限のデモの制作に重点が置かれるように 結果としてWZ3では(サイズ的に)消極利用だったスクリプトの使用量増大(っぽい) 基本的な操作感はそのままに,より複雑な処理をスクリプト記述によって補佐するようなスタイルに(スクリプトエディタがUIに直接でることからも重要性ましてるのがわかる)

もくじ 自己紹介 farbrauschスクリプトシステムの変遷 具体的な仕組み まとめ 作品変遷やデモシーン業界との関係 WZ4のスクリプト言語 まとめ

WZ4のスクリプト言語 /altona_wz4/altona/main/wz4lib/script.hpp,cpp 再帰下降型構文解析器によるコンパイラ 仮想マシン /altona_wz4/altona/main/util/scanner.hpp,cpp 字句解析器 簡易な正規表現エンジン(バックトラックなし)

WZ4のスクリプト言語 実行までの流れ 字句解析 sScanner::Start() 構文解析 ScriptCompiler::Parse() 定数畳み込みによる最適化 ScriptCompiler::ConstFold() 実行 ScriptContext::Run()

WZ4のスクリプト言語 特徴1 メガデモ制作に特化した構文 r = [1.0, 2.0, 3.0]; rot = sin1(time) * r; x:float = atan2(y)/pi2; そのかわり文法は非常に省略された簡易的なものになっている. あくまで制御用DSLと考えた方がいい abs,sign,max,min,sin,cos,sin1,cos1,tan,atan,atan2,sqrt,pow,exp,log,smoothstep,fadeinout,rampup,rampdown,triangle,pulse,expease,noise,perlinnoise,clamp,length,dot,normalize,map

WZ4のスクリプト言語 特徴2 GUIとの連携 gui { global float a; global float b; } ぽちぽちいじれる

WZ4のスクリプト言語 特徴3 スタックベースのVirtualMachine レジスタなし! アーキテクチャの単純化 GenThree時代から同じ 全ての命令はスタック操作によって行われる

WZ4のスクリプト言語 スタックUIを使って高速にシーン作成! 細かい部分をスクリプトを使って調整!

もくじ 自己紹介 farbrauschスクリプトシステムの変遷 具体的な仕組み まとめ 作品変遷やデモシーン業界との関係 WZ4のスクリプト言語 まとめ

まとめ 時代の流れに合わせて変化してきたスクリプトシステム 独自スクリプトはかっこいい! まさにDSL的 GUIとかと連携するともっとかっこいい

おわり