lifeについての解説その1
初めに
lifeは現在私が制作している、シミュレーションゲームに便利なライブラリっぽいものです。
機能面がシミュレーションゲームに向いているだけで、ゲーム内でどこにいるのかを管理するためだけに使うことも出来るし、パラメータ管理*1だけを使うことも出来ます。これはアドベンチャーゲーム、所謂ギャルゲーにも使えると思います。頑張ればRPGにも……?
ちなみに勢いで機能を列挙したので、テストも書いてないし動く保証がありません。この記事はそんなわけのわからんやつの雰囲気を自分のためにまとめるものです。
Overview
〜完〜って気分なんですが、大体全体図はこうです(元画像を含むツイートはこちら)。
life内に大きく5つの分類があって、必要に応じて問い合わせてViewScriptを受け取り表示するという仕組みです。
それぞれのアイテムやロケーション、アクション、イベントはrequireとeffectというFunctionを含むことが出来ます。これによって使用可能、移動可能、行動可能、発生可否やその結果を処理します。それらのFunctionにはparamsが渡さます。例えばeventであればstate.inventory.addItemでアイテムを追加してstate.lifeStatus.healthが減少。もしそのときにstate.lifeStatus.health < 30ならAパターン、それ以外ならBパターンのViewScriptを返す。みたいな処理をする形になります。
ちなみにitemはparamsを持っておらずstateがparamsを持っているのですが、これはstate.inventoryにitemが含まれていて、state.inventory.useでアイテムを消費するために持っています。なのでゲームを作る側からするとitemのほうがparamsを持っているという感覚に近いかもしれません。
〆
早くも〆です。マジで概要だけ書きました。眠いので寝ます。完成させられたら天才なので自分で自分を褒められるようにがんばります。
Twitter見てて、努力してる人とか頑張ってる人を見ていて、私もやらないとな……という気になってきて動き始めた感じがあります。
ポエムのコーナー
私にだって世界は変えられる。せめて今日見る景色は変えられる。
私が私を褒めるから、私は私に褒められるように頑張ってほしい。
〆の〆
そんなことで一歩ずつ、でも少し急ぎ足で進めていきたいと思います。また記事にするか、動く姿を見せるか……という感じです。
なんかきりよくいい感じに〆られないのでここで筆を置くことにします。読んでくれた方ありがとうございます。
*1:ブログを書いていて気がついたのでIssueが立てました。なのでまだ実装されていません