今気づいたんですが、MacOS X のことえりには「吉里吉里」が辞書登録されていますね。吉里吉里すげえ。
岩手の地名ですw
うーん、最適化ですかー。まずそれには現場と対象となるシステムの性質をよく知る必要が有るとおもいます。
一つ例をあげれば、たとえばアドベンチャーゲームのスクリプターに以下のような構文を提案してみたとします。
bg.load("校庭-昼.png");
fg.load("みく-通常-泣.png");
msg("voice-miku-0000.ogg", "ねえ、おきてよー。遅刻だよー!!!");
pause();
msg("voice-miku-0001.ogg", "おきないと遅刻なんだよー!!!");
pause();
プログラマから見ると普通かも知れませんが、まず確実に嫌がられます。特に同人とかだとシナリオライターさんがスクリプターを兼任する場合などありますが、IMEを切る(半角を入力する)ことすら嫌ったりします。
じゃあこんなのどうでしょう?
@校庭 昼 【みく 通常 泣】 「ねえ、おきてよー。遅刻だよー!!!」 「おきないと遅刻なんだよー!!!」
一見言語にすら見えないかも知れませんが、劇的に書く量が減っていることが分かると思います。() も ; もこういうのを書くには不要、どうせ一行ごとにクリック待ちするんだから pause(); 見たいのは不要、どうせボイスは連番なんだからボイスファイル名の記述なんかも不要。こういうのが喜ばれます。もちろん、見た目だってとてもわかりやすい。
ちょっと形式は違いますが KAGEX http://kikyou.info/diary/?200605#i26 で行われている例なども参考になると思います。
tjs2のようなほぼJavaScriptな言語をプログラマーではないスクリプターさんに触らせるのは無理です。ゲームシステムのカスタマイズのために、この様な十分な記述性を持った言語は必要です。しかし某氏の言葉を借りれば「なんでもできる=なんでもできない」という場合もあります。というのも機能が下手についてると放っておくと勝手につかわれてて後からみるととんでもないことになってて収集がつかないことがあるとか。スクリプターという現場で必要とされているのはもっと単純で、スクリプト記述に特化した、制限のついた言語なのです。
僕は吉里吉里の設計段階で、ゲームシステム記述言語としてのtjs2と、シナリオスクリプト記述言語としてのKAGという二つの階層の必要性に気づいたのはよいですが、KAGはあれでも「いろいろ出来すぎ」で複雑なのが設計ミスでした。KAGEXはそこら辺を改善しようとしているのが見られます。
吉里吉里3はどうしようかなーと考えていますが、アドベンチャーゲームについて言えば、たとえば、シナリオスクリプトの記述にはそもそも制御構文すらいらないんですよね。アドベンチャーゲームの場合、選択肢とシナリオの遷移はこれまた別の言語で管理して、シナリオスクリプト自体は極力機能を最低限に絞った単純な言語にするべきというのが今後の方向かなと思ってます。演出すら分離できればいいなーとか思っていますがそれはちょっと難しいかなぁ。
ちょっとしたバグを修正。
affineCopyで転送先左端が画像の左端にある場合に、左端が1ドットかけることがあるのを修正しました。
それと、どうもDirectDrawドライバ(?)の中には変更可能な画面モードの中に、現在(非フルスクリーン時)と同じ画面モードを列挙してこないものがあるようで、その場合に吉里吉里2が適切な画面モードを見つけられず、フルスクリーン化に失敗する問題に対処しました。なんでこんなんあるんだろうorz
吉里吉里3の「だからなに?」的な機能の紹介。
tmpfs (いわゆるRAM Disk)の内容をアーカイブにしてファイルに保存したり、そのファイルから復帰させたりができます。書き出される形式は tmpfs 独自のもので、XP4 アーカイブ (XP3の後継) との互換性はありません。なにかあらかじめ用意した素材などを中に入れておく用途かなぁ。用途が浮かばず。もともとはデバッグ用途なんですけど。
tmpfs自体は実体はon memoryなRAM Diskなので、保存をしなければプロセスが終了すると中身は消えます。初期状態では / (ルート) ファイルシステムが tmpfs でマウントされています。
ちなみにセーブデータの保存には tmpfs よりも atomfs(アトミックなトランザクション処理ができるファイルシステム;未コーディング) がよいと思います。
いまのところJPEG/PNG/TLG5/TLG6を読み込めますが、すべて書き込み(エンコード)もできます。画像変換ツールや合成した画像を吐き出すツールなどを作る用途に。
標準入出力や標準エラー出力にアクセスできます。コマンドラインツールを作りたくなったときのため。
スクリプトでファイルシステムを拡張したり、スクリプトでファイルストリームを実装したりができます。何に使うんだろうか。とりあえずファイルシステムの名前空間をスクリプトで拡張できるのは大きいことかもしれません。
周辺の開発用ツールとかも吉里吉里3コア(Risa)で作成できることを意図しているためです。一応risa.widgetというパッケージにはwxWidgetsのラッパーが集まる予定なのでGUIアプリもそれなりに作れるようになる…のかなぁ。
何にしろやるべきことが多すぎて多くを語れませんorz
とりあえずしょぼい上にOpenALの作成に失敗しているところを表している現状のスクリーンショットをさらしてみる。
吉里吉里2は2.30から正式にWindows9x(95,98,98SE,Me)を動作対象外としましたが、実際のところ「そうした」と宣言しただけであって、Windows9xで動作しなくなった訳ではないです。ユーザーさんのほうで動かしてみて、動くって言うのならば「動く」としてしまっていいと思います。
ただ、2.31からは、Windows9xで動かないからという理由で機能追加をしない、ということはなくなると思います。つまり、これからの開発ではWindows9xを無視する予定です。
一応、時代の流れということで……。
吉里吉里3はWindows版ではUNICODEバイナリになる予定。
10月5日ですねー。
主目的は…ご挨拶まわりかなぁ。
再びとなりますが、もし会場で dee にお会いしたい方は dee@kikyou.info にメールくださいー。
スクリプターという職の人にluaでシナリオスクリプト(KAGにおけるKAGシナリオファイル)を書けとはさすがに言えませんよね。
汎用言語が必ずしも最適解になるわけではないので。現場それぞれに特化した言語を作った方がトータルコストが安くなるならば当然そういう方向になります。
あと、僕について言えば、TJSとかRisseとか作ってるのは半分は趣味。半分はそれ自体がゲームエンジンとしてのフレームワークそのものだからです。ヒープ管理やゲーム内で使うオブジェクトなどの基底のフレームワークは、吉里吉里の場合はスクリプト言語そのフレームワークその物なのです。
吉里吉里2も吉里吉里3もそうだけど、デフォルトの言語がTJS2なりRisseだったりであるだけで、たとえば吉里吉里2用のSquirrelプラグインとかあります https://sv.kikyou.info/trac/kirikiri/browser/kirikiri2/trunk/kirikiri2/src/plugins/win32/squirrel。吉里吉里3はパーザが分離しているので好きな言語のパーザからASTを生成する部分をかけば好きなタイプの言語かんたんに作れるかと。
あとは吉里吉里2はWindows Scripting HostをサポートしているのでVBScriptとかでもスクリプティングできますhttps://sv.kikyou.info/trac/kirikiri/browser/kirikiri2/trunk/kirikiri2/src/plugins/win32/win32ole。
21日のみみけっと行ってきます。主目的は某お方にステキな差し入れをするためですがw いまからプレゼントを買いに行ってこよう。
もし会場で dee にお会いしたい方は dee@kikyou.info にメールくださいー。ここに来るメールはケータイでも受けられるようになっているので、いきなりでもOKです。ラブレターなり脅迫メールなりお気軽にどうぞ~。
イベント案内 | 2008-09-26 (金) 同人ゲームの潮流① 「同人ゲームの過去、現在、未来」(DigraJ公開講座08年09月期) - DiGRA JAPAN | 日本デジタルゲーム学会
興味があるので、懇親会ともにちょっくら見てきます。
吉里吉里2 2.30 安定版をリリースしました。
実は今年の一月ごろに安定版はtrunkからbranchesに移ったのですが、現行のtrunkが安定しているのと長らくbranchesの2.30安定版ブランチをメンテしていなかったのとで、branchesの2.30安定版ブランチを破棄して、trunkから昨日の時点でbranchesの2.30安定版ブランチを作成しなおしました。
2.28に比べての大きなトピックといえば
ということになります。他にも細かい修正や機能追加がたくさんあります。
Vistaへの対応ということでは、書き出しが必要なデータはすべて datapath と呼ばれる領域に書き込むように変更されています。これはKAGのセーブデータや各種ログファイルなども含まれます。詳しくはドキュメントを参照してください。そのほかにもVista固有の諸問題(ほんとうにVistaでは些細な不具合が発生しまくる)に対応するためのワークアラウンドを多数含んでいます。過去の2.28などがVistaで動作しないわけではありませんが、よりVistaへの親和性が高くなったという言い方がしっくりきます。また、このバージョンではWindows 9x系とWindows NTへの対応を正式に取りやめました。
フルスクリーン表示アルゴリズムの刷新は、ワイドディスプレイの普及により、従来のフルスクリーン表示では対応が不充分になったためです。ワイドディスプレイではなくても、アスペクト比を保持したまま拡大できないディスプレイ(とくに液晶ディスプレイ)では潜在的に発生している問題でした(例:800x600を1280x1024で表示するなど)。吉里吉里本体はなるべくアスペクト比が保持できるような方法での拡大を試みようとします。必要ならばディスプレイ側の拡大機能でなく、エンジン側で拡大表示を行おうとします。
2.28から約1年ですかー。ながかったなぁ。
メイン環境をUbuntu(x86_64)にして五ヶ月目になります。
もう Windows に戻る気はしないですー。どっちがいいかというよりは慣れと使いたいアプリの問題なんだと思いますが……。
アンチエイリアスが効いたIPAフォントは可読性もよく、本当に綺麗です。
ただ遭遇したいくつかの問題は、たとえばソースにパッチをあてて自分でコンパイルしなおして修正とか、ディスプレイドライバはnvidiaから落として自分で入れるとか(しかもカーネルがアップデートする度にモジュールコンパイルし直しが必要orz)、まだ本当のエンドユーザが使うには辛いところが多い気がします。
とりあえずよく使うアプリを列挙します。
いきなりWindows用アプリですがWineで元気に動いています。XネイティブなIRCクライアントいくつか試したんですがしっくりくるのがなかったのでこれを使ってます。素の Wineでは日本語入力に問題があるので一部をコンパイルしなおして使っています。→ http://bugs.winehq.org/show_bug.cgi?id=9838
Windowsアプリを動かすために使いますが、そうは言ってもうごかないソフトはたくさんあります。とりあえず吉里吉里は動きます。Photoshopはうごくそうな。
ピジンと読むようです。Windows Live メッセンジャーの代わりとして使っています。標準のものだとOIM(オフライン中に送られたメッセージを表示する機能)に対応していないので、最新版をソースからコンパイルして使ってます。
とりあえず自分の用途には必要十分。
吉里吉里3開発用
極めてシンプルながら必要十分
MUA(メーラ)としてのみ使ってます。
最近はあんまり2ch見てないですが…。
とりあえずデフォルトのブラウザ。
Windows動かすときに使います。WindowsゲームでもDirectXをバリバリ使ってるのでなければ非常に元気に動きます。もちろん吉里吉里製ゲームは元気に動きます。GPU使いまくりなのはだめ。CPU合成系エンジンの底力が試される!(?)
UNIX標準のテキストエディタはedのようですが、GNOME標準のテキストエディタはgeditです。Windows標準のメモ帳とは比べ物にならないほど高機能。
これもシンプルながら必要十分なフィードリーダ。
出先からPCを操作するのに使います。Bフレッツ同士ぐらいならばほぼローカルで動かしてるぐらいのレスポンスの速さです。
デジカメ写真管理用。驚くべきことにC#で書かれてて、monoで動作します。しかも普通に。そつなく。
画像ビューアです。ViXみたいなもの。動作が軽快です。ファイルマネージャ(Nautilus)も画像サムネイル表示などはWindowsエクスプローラに比べれば非常に軽快に動作するのですが、やはり専用アプリにはかなわないですね。
とりあえずGNOME標準のファイルマネージャ。sftpやWebDAVでマウントされた先のファイルなどは、GNOMEアプリだったらまるでローカルにあるかのように扱えて極めて便利です。GNOMEアプリでなくてもfuseのおかげで一般アプリからもまるっきり普通のファイルシステムのようにあつかえたりして。
"The Movie Player" mplayerのGNOME版です。よく形式がわかんない動画に出くわした場合はこれで大抵再生できます。
RDP(Windowsの画面遠隔操作用プロトコル)に対応したクライアントです。Windowsマシンを遠隔操作するのに使ってます。
不満?ソース直せorz
水絆創膏とか液体絆創膏とか言われている種の薬がある。
なんというか人体用セメダイン?匂いがそう。傷口に塗ると乾いて、薄い皮膜を作って、それで傷口を保護する薬品です。
しかし、塗るときに傷がものすごくしみる。というか激痛。意識が遠のきそうになります。
こ の 激 痛 が た ま ら ん
やっぱりマゾでしょうか。