サイロス誠はじめにお久しぶりです、サイロスです。使えるものを」という話があり、色々考えた結果、自前でライブラリを作ろうと考え、『EGSR』として公開いたしました。途中、タイトルを『Miyako』に変更、更に使い易いインタフェースを目指して邁進中です。現段階での状況を中心に書いていこうと思います。勉強用環境としての方向性について話がありました。始める人のための取っ掛かりとしても使える教育用環境としても扱える環境の作成を始めました。ちなみに、当初のタイトルは『EGSR』。なった今でも、製作ポリシーの一つとして存続しています。使ってラッパークラスを作り、気楽にスクリプティングが出来る扱いやすさと、様々なジャンルのゲームに応用できる拡張性を心がけて設計していきました。作成することになった勉強会の会場、京都にちなんで「Miyako」に変更し、今に至ります。元に解説していきます。モジュールを用意しています。ゲームなどのコンテンツを作成している時に、一番頭を悩ませるのが「シーン管理」です。シーン間の移動など、実装に困る箇所でもあります。Rails」にヒントを得て2、「ゲームを作る際のお約束」として大抵使われている「ゲーム開発のタスク」をクラスとして実装できるように実装しました。このような経緯で生まれたのが「Authorモジュール」です。継承して必要なメソッドをオーバーライドする方式をとっていますので、シーン構造を一から構築する必要がありません。内部で処理いたしますので、各シーンの実装だけに絞ることが出来ます。ラベルは単なる文字列ですので、移動先のチェックが容易になり、デバッグしやすいのも特徴です。モジュールの構造を図に致しましたので、ご参考ください。メソッドを使うことによって、実装したシーンの一覧を取得することが出来ますので、表計算ソフトなどを使ってシーン管理するなどといったこともできます。使ってスプライトに装飾を施すクラスです。登場や退場の装飾に、また、キャラクターに属性が付いたときのアイコン追加にお使いいただけます。クラス」を用意しています。つのメソッドをオーバーライドすることで実装できるようになっています。概要を以下の図で表してみましたので参考にどうぞ。今後を考えると、いくら汎用とはいえどもそれが足枷となって開発効率が損なわれるならばそれは本望ではありません。(miyako_ext.rb)」を追加しています。ここで、ジャンル毎に特化したクラスライブラリを用意することになります。作成してみてください。ついては次章で......。Extension」という2つの構成要素で成り立っています。API」では、ジャンルに囚われないゲーム製作するため、必要最低限の機能を持たせたクラスライブラリを用意しています。クラス」などがあります。必要最低限以外の箇所のみ実装し、利用者が改変・拡張する可能性が高い箇所は利用者に任せる方針を取っています。API」に属しています。クラス階層図を載せておきます。ここで疑問が沸き起こりました。勉強のため、そのとっかかりを無くすため」というものがありますが、このままではどこから手を付けたらよいのか分からないのではないか、そうなると、最初の理念に矛盾してしまう。拡張の余地は残しておかないと自由なゲーム開発に支障が出るのではというディレンマがありました。Extension」です。クラス」はビジュアルノベル向けですし、「Dice」クラスは懐かしのゲームブックを実装するために用意したものです)。(自分の趣味でかよ!)。この記事を読んでいただいた方で、「アクションゲームに適した拡張ライブラリを作ってみたけど......」「やっぱこれでシミュレーションを作りたかったので用意してみました」という方がいらっしゃればご連絡ください。今後の開発の参考にしたいと考えています。ウィークポイント......やっぱり、これ書かなきゃいけないですよねぇ......これ。