Loading article…
| パラダイム | マルチパラダイム:スクリプト、命令型、関数型、オブジェクト指向 |
|---|---|
| デザイン: | アルベルト・デミチェリス |
| 初登場 | 2003年9月6日 |
| 安定リリース | 3.2 [1]
/ 2022年2月10日 |
| タイピングの規律 | 動的 |
| OS | クロスプラットフォーム |
| ライセンス | MITライセンス |
| ファイル名拡張子 | 。ナット |
| Webサイト | squirrel.org 日本語 |
| 影響を受けた | |
| C++、JavaScript、Lua、Python | |
| 影響を受けた | |
| ミニD | |
Squirrel は、ビデオ ゲームなどのアプリケーションのサイズ、メモリ帯域幅、リアルタイム要件に適合する軽量スクリプト言語として設計された、高レベルの命令型オブジェクト指向 プログラミング言語です。
MirthKit はオープンソースでクロスプラットフォームの 2D ゲームを制作および配布するためのシンプルなツールキットであり、プラットフォームとして Squirrel を使用しています。[2]これはCode::Blocksのスクリプトで広く使用されており、ファイナルファンタジー・クリスタルクロニクル: マイライフ・アズ・ア・キングでも使用されました。[3] [4]また、Left 4 Dead 2、Portal 2、Thimbleweed Park のスクリプトイベントや、Thief 2: The Metal Age の非公式エンジンアップデートであるNewDarkでも、通常のCスクリプトとは別に、ミッションイベントをスクリプト化する追加の簡略化された手段を促進するために使用されています。[5]
言語機能
- 動的型付け
- 委任
- クラス、継承
- 高階関数
- 発電機
- 協調スレッド(コルーチン)
- 末尾再帰
- 例外処理
- 自動メモリ管理(主にバックアップガベージコレクターによる参照カウント)
- 弱参照
- コンパイラと仮想マシンは、約7k行のC++コードに収まります。
- オプションの16ビット文字列
構文
Squirrel は Lua の構文に影響を受けていますが、C のような構文を使用します。
- リスの階乗
local function factorial ( x ) // 階乗関数を取得し、値 x を取得します{ if ( x <= 1 ) { // x が 1 未満の場合return 1 ; // コードは 1 を返します} else { // それでもうまくいかない場合return x * factorial ( x - 1 ); // コードは x 倍の factorial(x-1) を返します} }
- 発電機
function not_a_random_number_generator ( max ) { local last = 42 ; local IM = 139968 ; local IA = 3877 ; local IC = 29573 ; for (;;) { // 永久にループyield ( max * ( last = ( last * IA + IC ) % IM ) / IM ); } }
ローカルrandtor =乱数ジェネレータではありません( 100 );
for ( local i = 0 ; i < 10 ; i += 1 ) print ( ">" + resume randtor + "\n" );
- クラスと継承
クラスBaseVector {コンストラクター(...) { if ( vargv . len () >= 3 ) { x = vargv [ 0 ]; y = vargv [ 1 ]; z = vargv [ 2 ]; } } x = 0 ; y = 0 ; z = 0 ; }
クラスVector3 はBaseVectorを拡張します{ function _add ( other ) { if ( other instanceof :: Vector3 ) return :: Vector3 ( x + other . x , y + other . y , z + other . z ); else throw "wrong param" ; } function Print () { :: print ( x + "," + y + "," + z + "\n" ); } }
ローカルv0 = Vector3 ( 1 , 2 , 3 )ローカルv1 = Vector3 ( 11 , 12 , 13 )ローカルv2 = v0 + v1 ; v2 . Print ();
アプリケーション
Squirrel を使用したアプリケーション
- Code::Blocks、統合開発環境
- Enduro/X、クラスター アプリケーション サーバー
- エンドツーエンドのIoTプラットフォームであるElectric Imp [6]
リスを使ったゲーム
- エイリアンスウォーム[7]
- 一般的な花の二律背反[8]
- エーペックスレジェンズ[9]
- バトルブラザーズ
- 伝染[7]
- カウンターストライク:グローバルオフェンシブ[7]
- CRSED: FOAD
- ファイナルファンタジー・クリスタルクロニクル マイライフ・アズ・ア・キング[3]
- ゴシックオンライン、[10]ゴシックIIのMOD
- GTA IVのIV-MP [11]
- レフト4デッド2 [7]
- 解放された自由[12]
- マフィアIIのM2マルチプレイヤー[13]
- メルティブラッド:タイプルミナ[14]
- 核の夜明け[7]
- オープンTTD [15]
- ポータル2 [7]
- シャドウ・ウォリアー
- シミュトランス[16]
- ソニックアンリーシュド(PS2/Wii) [17]
- スーパータックス
- チームフォートレス2 [7]
- シンブルウィードパーク[18]
- Thief II(非公式NewDarkエンジンアップデート) [19]
- タイタンフォール[7]
- バイスシティマルチプレイヤー[20]、グランドセフトオートバイスシティ[21]のMOD
- アンダーナイトインバース[22]
- ウォーサンダー
- ゼロの使い魔 ~まいごのピリオドと幾千のシンフォニー~ (PS2)
- ゼロの使い魔 ~夢魔が紡ぐ夜風のノクターン~ (PS2)
- ゼロの使い魔 ~小悪魔と春風の協奏曲~ (PS2)
歴史
この言語は2003年にzlib/libpngライセンスの下で公開されました。[23] 2010年11月、プロジェクトをGoogle CodeでホストできるようにライセンスがMITライセンス に変更されました。[24] [25] Alberto Demichelisによって開発および保守されています。
参照
参考文献
- ^ 「squirrel/HISTORY at master - albertodemichelis/squirrel - GitHub」。
- ^ MirthKit 開発者 Wiki 2014-02-11 にWayback Machineにアーカイブされました
- ^ ab Brandon Boyer (2008 年 2 月 21 日). 「Gamasutra - GDC 2008 イベント報道」. gamasutra.com . Gamasutra .
- ^ 「独占:ファイナルファンタジーのWiiWareデビューの舞台裏」gamasutra.com . Gamasutra . 2008年6月23日. 2011年9月22日閲覧。
- ^ 「L4D2 Vscripts - Valve Developer Community」。developer.valvesoftware.com 。 2018年7月6日閲覧。
- ^ 「Electric Imp プログラミング ガイド」. electricimp.com .
- ^ abcdefgh "VScript". valvesoftware.com . 2014-08-20 . 2015-01-17閲覧。
- ^ “th155-decomp”. GitHub . 2020年10月19日閲覧。
- ^ 「消耗ナットって一体何?助けてください。このエラーコードが出ました。これまでにこんな経験のある方はいますか?」reddit.com 2019年3月24日2021年9月4日閲覧。
- ^ ゴシック2オンライン
- ^ “iv-multiplayer.com”. www.iv-multiplayer.com . 2012年6月7日時点のオリジナルよりアーカイブ。2018年7月6日閲覧。
- ^ 「Liberty Unleashed」。2019年12月4日閲覧。
- ^ “m2-multiplayer.com”. www.m2-multiplayer.com . 2013年1月2日時点のオリジナルよりアーカイブ。2018年7月6日閲覧。
- ^ "undernightinbirth". GitHub . 2024年8月18日閲覧。
- ^ 「AI:メインページ - OpenTTD」wiki.openttd.org . 2018年7月6日閲覧。
- ^ 「Simutrans-Squirrel-API: メインページ」dwachs.github.io . 2018年7月6日閲覧。
- ^ 「VGリソースWiki」. wiki.vg-resource.com . 2021年9月4日閲覧。
- ^ 「Thimbleweed Park Blog- Engine」。blog.thimbleweedpark.com 。 2018年7月6日閲覧。
- ^ 「NewDark 1.25: Squirrel script?」. ttlg.com . 2017-03-20 . 2019-12-25閲覧。
- ^ バイスシティ マルチプレイヤー
- ^ 「VC-MPウェブサイトへようこそ!」。2006年4月5日時点のオリジナルよりアーカイブ。2014年5月4日閲覧。
- ^ "undernightinbirth". GitHub . 2024年8月18日閲覧。
- ^ 「Squirrelプログラミング言語」。SourceForge 。2018年7月6日閲覧。
- ^ 「code.google.com と MIT ライセンスへの移行 - 言語 - Squirrel - プログラミング言語」forum.squirrel-lang.org . 2018 年 7 月 6 日閲覧。
- ^ 「Google Code アーカイブ - Google Code プロジェクト ホスティング用の長期ストレージ」。code.google.com。2018年7 月 6 日閲覧。
外部リンク
- 公式サイト
