忍者ブログ

RPG製作ソフト「Role Paint」を作っていくぜ!ツクールのようなRPG製作ソフト「Role Paint」を作っていくブログ。 相互リンク募集中

スクリプト言語をLuaからRuby(mruby)に変更

かなり専門的な話になる。ビジュアルプログラミングで大量に問題が発生し、中々前に進めないでいる。問題はいろいろとあるが、主に二つ。

まず、こういう意見があった。

>ユーザーがスクラッチを使って組むのはいい方向だとして、そのスクラッチで、
>kureteさん自身がバトルやメニュー、乗り物の乗降などを作って、
>それを標準装備していることの方が大事です。
>初心者を脱した人が標準に設定されているスクラッチを改造することで、
>拡張できるという利点に結び付きます。
>ユーザーはスクラッチだけど、メニューなどはLuaですという場合には、
>MVと何も変わりません。


セブン 2017/04/13(Thu)22:30:26

なので計画を変更した。

専門的な話になるが、最初はツクールのようにプログラムの構成を

・CやC++のような非スクリプト言語

・Luaのようなスクリプト言語

ツクールのイベントコマンド(ビジュアルプログラミング)

という形にしようとした。これを

・CやC++のような非スクリプト言語

ビジュアルプログラミングとスクリプト言語を相互に変換可能

にする事にした。これなら扱いやすいし、プログラムに慣れている人でもすぐに対応できるだろうと考えた。が、ここで問題発生。

まず、スクリプト言語をLuaにし、それをビジュアルプログラミング言語に変換しようと考えたのだが、Luaがスクリプト言語とは思えないぐらい癖がありすぎて、中々ビジュアルプログラミングに変換がしづらい。

そもそもLuaが使われている要因の一番大きな物は組み込みやすさもあるが、速度である。「Javaは使いやすいけど遅いから、わかりづらいC++やCを使おう」みたいな物だ。

現在、Luaは相当の実績を積み重ねてきているが、このような使いづらい物を使わせる事でユーザーに負担を強いるべきか否か?

そこで、独自言語の実装も含めていろいろと手段を考えた結果、二つ方法が見つかった。
Lua以外の言語を使うのである。その中で良いのは二つ。

一つはSquerral。Luaに代わる言語として最近注目されているらしい。C++に構文が近いなど、扱いやすい部分がかなりある。ただし、ネット上に参考資料があまりない。

もう一つはあのツクールで使われていたRubyである。「Rubyは遅くて難しいのでは?」と思うかもしれない。だが、方法が見つかった。

それはmrubyである。ご存じの方も多いかもしれないが、あの組み込み用のRubyである。従来のRubyと比べて非常に早く、流石にLuaには負けるが問題にはならないぐらいの速度がある。使ったことがある人なら分かるが、書きやすさは他の言語とは比にならない。おそらくC#と良い勝負だろう。また、mrubyが採用できればRuby(CRuby)をスクリプト言語に採用してきたRPGツクールXP、VX、VXACEの存在も有り、フリーゲームの開発者にとって、かなり使いやすいツールが出来上がる。だが、実績が殆ど無いので見送っていた。しかし、ここに来て考えが変わってきた。

たとえ実績がなくても、優秀かもしれない機能は使うべきなのである。例えばRole Paintの開発に使っているUltimate++は残念ながら非常にマイナーで実績があまりないが、私が使った分には非常に扱いやすく、これほど良いツールも中々無いと感じている。おそらくmrubyも同じ可能性を秘めている。

Rubyの生みの親であるまつもとゆきひろ氏が「Rubyは使いやすい分遅い。だが、今のコンピュータの性能なら問題にはならない」という趣旨の発言をしていた。これは真理をついている。アセンブラからC言語、C言語からJavaへと変わっていたように、プログラミング言語は速度を捨てて分かりやすさ、書きやすさを進化させる事で発展してきた。
確かにLuaは早いが使いづらい。おそらく、今後遅くてもいいから使いやすい言語が求められていくだろう。むしろ、「今は実績があるから」と採用する事のほうがユーザーに無駄な負担を強いる可能性が高い。

また、Rubyならビジュアルプログラミングへの変換もしやすい。例えばLuaにはクラス宣言の機能がなく、プロトタイプベースでクラスを記述する必要があるのだが、これをビジュアルプログラミングでやろうとすると、非常にやりづらい。その点、Rubyは議論があるが、基本的にクラスベースであり、ビジュアルプログラミングにしやすい。

というわけでmrubyに変更する。これが吉と出るか凶と出るか

拍手[6回]

PR
Comment
name
title
color
mail
URL
comment
pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
コメントの修正にはpasswordが必要です。任意の英数字を入力して下さい。