Enviar búsqueda
Cargar
ゲーム組み込み用スクリプト言語を作ってみた
•
Descargar como PPTX, PDF
•
3 recomendaciones
•
4,326 vistas
M
MASA_T_O
Seguir
C#のExpressionTreeを使って作成したスクリプト言語の簡単な紹介
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 20
Descargar ahora
Recomendados
ゲーム組み込み向け独自スクリプト言語の設計で気を付けている事
ゲーム組み込み向け独自スクリプト言語の設計で気を付けている事
Shun Moriya
金大アルゴリズム勉強会#007資料
金大アルゴリズム勉強会#007資料
Takumi Murano
スクリプト・プログラマー宣言
スクリプト・プログラマー宣言
kanemu
二求の塾 プログラミング講座(2019-08-10)
二求の塾 プログラミング講座(2019-08-10)
Atsuo Yamasaki
Programming school 02
Programming school 02
Masato Nakajima
30分で作ってRubyを体感資料
30分で作ってRubyを体感資料
松本 雄貴
磯野ー!Dartやろうぜー!
磯野ー!Dartやろうぜー!
uka yare
はじめてのChu カッコカリ
はじめてのChu カッコカリ
Masuda Tomoaki
Recomendados
ゲーム組み込み向け独自スクリプト言語の設計で気を付けている事
ゲーム組み込み向け独自スクリプト言語の設計で気を付けている事
Shun Moriya
金大アルゴリズム勉強会#007資料
金大アルゴリズム勉強会#007資料
Takumi Murano
スクリプト・プログラマー宣言
スクリプト・プログラマー宣言
kanemu
二求の塾 プログラミング講座(2019-08-10)
二求の塾 プログラミング講座(2019-08-10)
Atsuo Yamasaki
Programming school 02
Programming school 02
Masato Nakajima
30分で作ってRubyを体感資料
30分で作ってRubyを体感資料
松本 雄貴
磯野ー!Dartやろうぜー!
磯野ー!Dartやろうぜー!
uka yare
はじめてのChu カッコカリ
はじめてのChu カッコカリ
Masuda Tomoaki
The Steps of Programming
The Steps of Programming
shundroidk
シナリオレビューという手法の提案
シナリオレビューという手法の提案
tuna cook
Intelli code
Intelli code
m ishizaki
初心者目線でIo t
初心者目線でIo t
Makoto Nishimura
平成26年度 マルチメディア研究同好会 ゲーム/コンピューター班 新入会員の指導・活動予定の概要
平成26年度 マルチメディア研究同好会 ゲーム/コンピューター班 新入会員の指導・活動予定の概要
Multimedia Research Club (TMCIT)
WordPress 3.8 RC1
WordPress 3.8 RC1
BREN
Javaプログラミング入門【第1回】
Javaプログラミング入門【第1回】
Yukiko Kato
第0回プログラミング講座
第0回プログラミング講座
happo31
オンライン英会話のモチベーション維持!
オンライン英会話のモチベーション維持!
civicpg
CodingTips+ 基礎編
CodingTips+ 基礎編
Yusuke Ito
複数人でSwift開発を行うには
複数人でSwift開発を行うには
Yuya Fujiwara
プログラミング教室 シーズン1
プログラミング教室 シーズン1
Yu Kohase
アクセサリ部
アクセサリ部
Tatsuya Iwanari
JXUG Windowsアプリを開発している皆さん、C#でスマホアプリ開発を試してみませんか?ハンズオン
JXUG Windowsアプリを開発している皆さん、C#でスマホアプリ開発を試してみませんか?ハンズオン
Tomohiro Suzuki
プログラミング言語は怖くない
プログラミング言語は怖くない
Shoichi Matsuda
議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」
nishikawa_makoto7
JS/Canvas Tutorial1
JS/Canvas Tutorial1
秀俊 伊藤
Developers Summit 2014 【13-D-7】 コミュニティLT - Story 5. 「新人技術者にどうプログラミングを教えたか」
Developers Summit 2014 【13-D-7】 コミュニティLT - Story 5. 「新人技術者にどうプログラミングを教えたか」
Fujio Kojima
メタプログラミングでExcel仕様書よさらば
メタプログラミングでExcel仕様書よさらば
Kouji Matsui
開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能
Tadahiro Ishisaka
2014年の社内新人教育テキスト #3(オブジェクト指向言語ふりかえり)
2014年の社内新人教育テキスト #3(オブジェクト指向言語ふりかえり)
Shin-ya Koga
ノーコード・ローコード開発の意義
ノーコード・ローコード開発の意義
千紘 佐野
Más contenido relacionado
La actualidad más candente
The Steps of Programming
The Steps of Programming
shundroidk
シナリオレビューという手法の提案
シナリオレビューという手法の提案
tuna cook
Intelli code
Intelli code
m ishizaki
初心者目線でIo t
初心者目線でIo t
Makoto Nishimura
平成26年度 マルチメディア研究同好会 ゲーム/コンピューター班 新入会員の指導・活動予定の概要
平成26年度 マルチメディア研究同好会 ゲーム/コンピューター班 新入会員の指導・活動予定の概要
Multimedia Research Club (TMCIT)
WordPress 3.8 RC1
WordPress 3.8 RC1
BREN
Javaプログラミング入門【第1回】
Javaプログラミング入門【第1回】
Yukiko Kato
第0回プログラミング講座
第0回プログラミング講座
happo31
オンライン英会話のモチベーション維持!
オンライン英会話のモチベーション維持!
civicpg
CodingTips+ 基礎編
CodingTips+ 基礎編
Yusuke Ito
複数人でSwift開発を行うには
複数人でSwift開発を行うには
Yuya Fujiwara
プログラミング教室 シーズン1
プログラミング教室 シーズン1
Yu Kohase
アクセサリ部
アクセサリ部
Tatsuya Iwanari
JXUG Windowsアプリを開発している皆さん、C#でスマホアプリ開発を試してみませんか?ハンズオン
JXUG Windowsアプリを開発している皆さん、C#でスマホアプリ開発を試してみませんか?ハンズオン
Tomohiro Suzuki
プログラミング言語は怖くない
プログラミング言語は怖くない
Shoichi Matsuda
議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」
nishikawa_makoto7
JS/Canvas Tutorial1
JS/Canvas Tutorial1
秀俊 伊藤
Developers Summit 2014 【13-D-7】 コミュニティLT - Story 5. 「新人技術者にどうプログラミングを教えたか」
Developers Summit 2014 【13-D-7】 コミュニティLT - Story 5. 「新人技術者にどうプログラミングを教えたか」
Fujio Kojima
メタプログラミングでExcel仕様書よさらば
メタプログラミングでExcel仕様書よさらば
Kouji Matsui
La actualidad más candente
(19)
The Steps of Programming
The Steps of Programming
シナリオレビューという手法の提案
シナリオレビューという手法の提案
Intelli code
Intelli code
初心者目線でIo t
初心者目線でIo t
平成26年度 マルチメディア研究同好会 ゲーム/コンピューター班 新入会員の指導・活動予定の概要
平成26年度 マルチメディア研究同好会 ゲーム/コンピューター班 新入会員の指導・活動予定の概要
WordPress 3.8 RC1
WordPress 3.8 RC1
Javaプログラミング入門【第1回】
Javaプログラミング入門【第1回】
第0回プログラミング講座
第0回プログラミング講座
オンライン英会話のモチベーション維持!
オンライン英会話のモチベーション維持!
CodingTips+ 基礎編
CodingTips+ 基礎編
複数人でSwift開発を行うには
複数人でSwift開発を行うには
プログラミング教室 シーズン1
プログラミング教室 シーズン1
アクセサリ部
アクセサリ部
JXUG Windowsアプリを開発している皆さん、C#でスマホアプリ開発を試してみませんか?ハンズオン
JXUG Windowsアプリを開発している皆さん、C#でスマホアプリ開発を試してみませんか?ハンズオン
プログラミング言語は怖くない
プログラミング言語は怖くない
議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」
JS/Canvas Tutorial1
JS/Canvas Tutorial1
Developers Summit 2014 【13-D-7】 コミュニティLT - Story 5. 「新人技術者にどうプログラミングを教えたか」
Developers Summit 2014 【13-D-7】 コミュニティLT - Story 5. 「新人技術者にどうプログラミングを教えたか」
メタプログラミングでExcel仕様書よさらば
メタプログラミングでExcel仕様書よさらば
Similar a ゲーム組み込み用スクリプト言語を作ってみた
開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能
Tadahiro Ishisaka
2014年の社内新人教育テキスト #3(オブジェクト指向言語ふりかえり)
2014年の社内新人教育テキスト #3(オブジェクト指向言語ふりかえり)
Shin-ya Koga
ノーコード・ローコード開発の意義
ノーコード・ローコード開発の意義
千紘 佐野
大阪DDD読書会ワークショップvol.1ガイダンス
大阪DDD読書会ワークショップvol.1ガイダンス
kumamidori
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
京大 マイコンクラブ
プログラミングを早くする方法
プログラミングを早くする方法
kazukiTakahashi18
勉強会 - 1
勉強会 - 1
KenjiYamasaki5
エンジニアのためのSpread Sheets講座101 - Google Apps Script -
エンジニアのためのSpread Sheets講座101 - Google Apps Script -
Yuki Katada
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
Fujio Kojima
Why-is-ImplementationPattterns-important-so-much
Why-is-ImplementationPattterns-important-so-much
Koji SHIMADA
Let's join in OpsWorks world!
Let's join in OpsWorks world!
Shigeo Nakano
最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介
Ryo Iinuma
enchant.jsを使った子ども向けプログラミングワークショップ講義内容
enchant.jsを使った子ども向けプログラミングワークショップ講義内容
Yuki Tanaka
自己紹介とC# Devkitについて.pptx
自己紹介とC# Devkitについて.pptx
hkharu0803
3日時間をもらったのでTypeScriptを触ってみた
3日時間をもらったのでTypeScriptを触ってみた
Yasushi Kato
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント
増田 亨
2011年10月21日
2011年10月21日
nukaemon
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
増田 亨
実用Brainf*ckプログラミング入門編
実用Brainf*ckプログラミング入門編
京大 マイコンクラブ
本の紹介
本の紹介
t w
Similar a ゲーム組み込み用スクリプト言語を作ってみた
(20)
開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能
2014年の社内新人教育テキスト #3(オブジェクト指向言語ふりかえり)
2014年の社内新人教育テキスト #3(オブジェクト指向言語ふりかえり)
ノーコード・ローコード開発の意義
ノーコード・ローコード開発の意義
大阪DDD読書会ワークショップvol.1ガイダンス
大阪DDD読書会ワークショップvol.1ガイダンス
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
プログラミングを早くする方法
プログラミングを早くする方法
勉強会 - 1
勉強会 - 1
エンジニアのためのSpread Sheets講座101 - Google Apps Script -
エンジニアのためのSpread Sheets講座101 - Google Apps Script -
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
Why-is-ImplementationPattterns-important-so-much
Why-is-ImplementationPattterns-important-so-much
Let's join in OpsWorks world!
Let's join in OpsWorks world!
最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介
enchant.jsを使った子ども向けプログラミングワークショップ講義内容
enchant.jsを使った子ども向けプログラミングワークショップ講義内容
自己紹介とC# Devkitについて.pptx
自己紹介とC# Devkitについて.pptx
3日時間をもらったのでTypeScriptを触ってみた
3日時間をもらったのでTypeScriptを触ってみた
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント
2011年10月21日
2011年10月21日
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
実用Brainf*ckプログラミング入門編
実用Brainf*ckプログラミング入門編
本の紹介
本の紹介
Último
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
Último
(9)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
ゲーム組み込み用スクリプト言語を作ってみた
1.
ゲーム組み込み用スクリ プト言語を作ってみた 2013年6月1日
2.
目次 目的 言語仕様策定
作る 作った
3.
目的 細かい調整するにはスクリプト言語がいい 小規模なロジックをたくさん書くのに便利
既存言語調べるのめんどくさい 作るの楽しそう
4.
言語仕様策定
5.
基本事項 言語の開発はC#で 動作環境もC#で
1フレームで数百回走らせられる速度 コンパイル型にする
6.
方針 単純な命令は書きやすく 括弧なしでのメソッド呼び出し
オーバーロードを簡単に 名前付き引数的機能 手続き型っぽく 実装の簡単化 1種類のオブジェクトにつき1本のスクリプト
7.
実際のスクリプト 実演
8.
スクリプトでパーティクル制御
9.
作る
10.
処理の流れ ソースの文字列の読み込み プリプロセッサ
文字列をトークン分割(スキャナ) トークン : スペースで区切られた単語や改行文字 トークン列を構文に整理(パーサ) 構文を実行可能形式に変換(プロセッサ) 実行
11.
ソースの読み込み 普通のファイル読み込み 暗号化して固めたデータからの読み込みも別 途サポートした
12.
プリプロセッサ 定数定義の#defineと単純な#includeをサポー ト 入力ソースを適当に置換して実装
13.
スキャナ 入力文字列をスペースでトークンに分割 手抜き
トークンを型付けする 数値リテラルはfloat値に 演算子やタブ、改行などは対応する列挙体に その他は文字列に トークンの配列を返す
14.
パーサ コメント部分を除去 トークン列を改行を目印に行に分割
行にインデントの深さも与える 行内のカッコを再帰的にまとめる カッコで括られた部分を一塊のオブジェクト に
15.
プロセッサ基本方針 .NETのExpression Treeというライブラリを使 用
式の木構造をオブジェクトで組んでコンパイ ルすると、そのまま実行可能な無名関数を返 す! 本体側のメソッド呼び出しにはリフレクショ ンを活用
16.
プロセッサ準備 本体側のメソッドやプロパティを呼び出す準 備 1つの型につき1つの「識別子-メソッド情報」 辞書
全ての型で1つ、グローバル関数の辞書も用意
17.
プロセッサ1 トップレベルの文を1つずつパース トップレベルの文=必ず実行される文
文がどの構文かをチェック 最初の1、2単語を見て判断可能 制御文、代入文、宣言文でなければメソッド呼び 出し 実行中に使う数値型は基本的に全てfloat
18.
作った
19.
速度テスト float i =
0; float j = 0; while (i < 1000){ j = 0; while (j < 1000){ j++; } i++; } というコードを最適化なしで実行 C#ネイティブ: 10k ticks(2-3ms) スクリプト: 16k ticks(4ms)
20.
速度テスト2 中身が空で1引数のC#側関数を40万回呼び出 し C#ネイティブ:12ms
スクリプト:57ms 動的な呼び出しなのでやや遅い
Descargar ahora