neptune_explorer_0x9 (v0.000000001(β1)) | 2009-11-02 23:23 |
Neptune-UI (0.01.40.20) | 2008-07-12 20:15 |
>Yuki
Yukiは、動作の記述(コーディング)を、プログラミング言語/スクリプト言語等を用いずに、グラフィカルなインターフェースで行うためのサブシステムです。
データ、及び作りは汎用的であり、Neptune、2Dゲーム開発に限らず、ありとあらゆるプログラムを記述可能とします。
このサブシステムでは、ユーザへの表示(View)と入力の処理コンポーネント、データの管理とソースコードの生成までを行います。
Yuki 0.1ではとりあえずリスト型のデータ構造とします。このリストは、プラグインの呼び出しの構造体やif等を数珠繋ぎにしたものです。
Yuki 1.0以降では、ニューラルネットワークのようなネットワーク型の構造を取ります。
・・・別にニューラルネットワークを採用して人工知能的なうんたらとかではありません。
よくよく考えてみると、プログラムの構造と言うのはほぼネットワーク型みたいなものなのです。
・・・まぁ一本のソースだけで見ればそうではないのですが・・・。しかしYukiにはソースコードファイルという概念が存在しません。 全てのソースを合わせて、一本のYukiなのです。
また、そのデータ構造は、関数ごとで分離するような事もありません。 全ての処理は、一つのネットワーク構造の中に含まれ、関数と言う概念は(おおよそ)存在しません。
Yukiのデータ構造は抽象的なものであり、実際にそのままソースコードに変換するには不便な部分がままあるため、一旦中間言語(Intermediate Language=IL)へ落とし込みます。
この中間言語は、Yukiのデータ形式とそれ程大きく異なるものではありませんが、 しかし将来的にYukiのデータ形式が変更(例えばネットワーク型化)された時にも柔軟に対応可能とするためのものであり、 また、実際のソースコードにかなり近い形へと落とし込む(Cの#include、Javaのpackage宣言までをも落とし込む)事により 実際のソースコードの生成を容易に、また、柔軟(*1)に生成するためのものでもあります。
*1 : 実際のソースコードにかなり近い状態へ落とし込むと抽象度が落ちるのでは?と思われるかもしれないが 実際にはどの言語も似たりよったりである。もし、多くの言語と異なるような場合には、IL独自に含まれる「アリガタイデータ」に頼らず、独自に処理を行ってもらうことになる。
中間言語から実際のソースコードを生成します。
このコンポーネントは抽象化され、様々な言語のソースコードを生成可能にします。
とりあえず当面は C++ Converter を。余力があれば Java Converter も作りたいです。
「View」の通り、Yuki データの画面への表示と、ユーザからの入力を処理するコンポーネントです。
このコンポーネントは抽象化され、自由に入れ替えることが可能です。