2016年09月16日

所持品をどのように管理するか

5つの宝島を作っていた頃からの課題なんだけど、所持品ってどうやって管理するのが楽なんだろうな
正しいじゃなくて。装備品も絡めると、結構厄介な問題になると思うんだ

RPGにおけるアイテムの扱い

ドラクエやWizなどの初期の雰囲気を残すRPGは除き、一般的なRPGでは所持品はキャラクターに属さずパーティーで一つの管理を行う
だからゲーム内で一つの連想配列itemsを持っておけば十分だ
一方、装備品はキャラクターに属するので、各キャラのequip.arms equip.armor equip.shieldなどの属性にアイテムインスタンスを突っ込むというのが大体の設計方針になると思う
ここで問題になるのは2つ

  • 装備したら所持品から1個減る処理
  • あるアイテムを持っているかの判定をitemsとequip両方見なきゃいけない

このうち上のやつは大した問題じゃない。装備品の管理を必ず1関数で管理スレばいいだけの話で、
それだけならプログラミングに一般的な責任の分離の規則で対応できる。

問題は下のやつだ。


続きを読む
タグ:龍の宝珠
posted by LoyalTouch at 06:43| Comment(0) | TrackBack(0) | プログラム全般 | このブログの読者になる | 更新情報をチェックする

2016年09月10日

ゲームブックではなぜ経験値稼ぎは許されないか、あるいはコンピューターゲームではなぜ許されるのか

龍の宝珠は、ゲーム作成復帰への肩慣らしにゲームブック風のコンピューターゲームを作ってみようという計画だ。
ゲームブック風なんで作りこむ部分は簡単だしすでにシステムは色んな所に転がってる(今や絶滅種とはいえ創土社中心にまだ入手可能だよね)
ただせっかくコンピューターで作ってるんだから、面倒なフラグ管理は自動でやってあげてるし、謎解きはパラグラフジャンプだけじゃなくて文字入力による回答も考えてる
そこで今、ふと疑問に思っている部分がある。
経験値稼ぎはOKにするべきなんだろうか?


続きを読む
posted by LoyalTouch at 07:44| Comment(0) | TrackBack(0) | ゲーム | このブログの読者になる | 更新情報をチェックする

2016年09月02日

タグパース機能の考察

龍の宝珠、タグパース機能を実装しようとしている。

タグはシナリオデータに付随している本文以外の情報だ。

[img image/oroas.png]
雪深いアンガタ村にも春がやってきた。
風はすっかり柔らかくなり、雪解け水と土とが混じった匂いを運ぶ。
村のすべてがゆるゆるととけていくようないい気分だ。
だが、オロアシ爺さんは冬囲いのイチイの木みたいなしかめ面のままだった。

村広場の溜池の水が濁ったままだからだ。
[link 002]
*001
いつもの年なら、雪解けから3日もすればカンマンガタ川の清流が
溜池の泥をすっかり洗い流してくれるのだが、
今年は10日過ぎても薄茶色の濁流のままなのだ。

4人はカンジキをジャクジャク言わせて上流に向かっていった。
寒さがぶり返して粉雪がチラつく、嫌な朝だった。
[link 003]

↑のシナリオデータがあるとして、[赤文字]の部分がそれ。
モックアップではString#replaceを使っていちいち全書き換えしてたんだけど、なんか違うような気がしてきた・・・


続きを読む
タグ:javascript
posted by LoyalTouch at 06:43| Comment(0) | TrackBack(0) | プログラム全般 | このブログの読者になる | 更新情報をチェックする

2016年08月26日

ゲームシナリオキャッシュのAPIは何がいいか

ぼちぼち龍の宝珠作ってます。
5つの宝島と同じく、初回アクセス時にゲームデータを予め保存しておいて、ゲームプレイ時にはキャッシュからデータを読みこむようにしようと考えてる。スマホプレイの時には初回アクセス時にwifiのところにいればいいって感じで。

ところで、ブラウザゲームの場合そういう一時データの保存先は何があるのか。というと、かつてはcookieしかなくてどうにもできなかったらしいけど、html5時代には複数の解がある模様

  • WebStorate
  • IndexedDB

どっちがいいのか調べてみた。


続きを読む
タグ:javascript HTML5
posted by LoyalTouch at 06:39| Comment(0) | TrackBack(0) | プログラム全般 | このブログの読者になる | 更新情報をチェックする

2016年08月19日

2in1PCでお絵描きしてて感じたこと

タブレット型にもなるwindows PC買って、スタイラスペンでお絵描きなんかしてます。
前々から液晶タブレットに憧れてたんだけど、あれタブレットだけで15万とかするじゃん。ただ絵を描く道具だけで。それで安いPC2つくらい買えるっつーの!
でもタブレット+スタイラスペンならPC買える値段だけで代用できて、少しは使い勝手いいかなって思ってやってみております。
で、使ってみた感想など。


続きを読む
posted by LoyalTouch at 06:48| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2016年08月12日

そろそろCoffeeScriptも卒業できそう

以前はcoffeescriptの書き味に馴染みまくってて、これしばらくjavascriptに戻れないわ、なんて思ってたけど
ここしばらくES5で書いてみると、なんとか慣れるものだね。
やっぱりコンパイルなしでセーブしたらそのまま実行できるっていうスクリプト言語の良さはあるっちゃーあるわ。

ただやっぱり行末のセミコロン、関数を閉じる閉じ中括弧にはなれないなあー。特にコレ

$(()=>{
  reflesh();
});

}); ってなんだよ意味わかんねー

$ ->
  do reflesh

cofeeだとこんなもんだったんだが、しょうがない、慣れよう。。。

その他近況報告

場面遷移のたびにajaxで読み込むのやめる。
これ、ゲームブック風ゲーム龍の宝珠の話なんだけど、html5でLocalStorageっていう5mb程度のデータをKVSで保持できる仕組みが現れたので、
初回でゲームデータをすべて読み込んでLocalStorageに保持、以降Storageから読み込んでオフラインでもゲームできるよう仕組みづくりすることにした
この作り、かつて5つの宝島でゲームデータをデータ保存域に保持していた作りを思い出してなつかしいわぁ・・・

ゲームスクリプトの様式を独自タグにする。
同じく龍の宝珠の方の話。以前はxmlでマクロタグ作ってたんだけど、データ圧縮のことを考えるとxmlより独自タグの方が有利。

  • <icon src=image/oroas.png />
  • [image image/oroas.png]

上と下の違いね。これだけだと大した差じゃないようにみえるけどもっと複雑なタグだと地味に効く。
要するに全般的にxmlから離れようという話。お手軽じゃないししょうがないね。
タグの書式は0から自分で考えてもいいんだけど、吉里吉里/KAGやらNScriptなどのノベルゲー作成ツールの文法を少しパクって

  • ジャンプタグは * で始める : 例) *enemy_encounter
  • マクロタグは[]で囲む : 例) [link enemy_encounter]

こんな感じでいくかと。
posted by LoyalTouch at 06:34| Comment(0) | TrackBack(0) | プログラム全般 | このブログの読者になる | 更新情報をチェックする

2016年07月28日

ミニWeb開発環境の更新

以前javascriptで作るゲームの開発環境を作ったって話したんだけど、


その時はsinatraでサーバ作ってた。
でも、よくよく調べてみたらgem入れる必要すらなくて、rubyに標準添付のwebrickでもwebサーバくらい作れるのね。
しかもワンライナーで

まあ俺はつい最近からwindowsではjrubyを愛好するようになってきたんだけど、例えばjrubyで書くならこんな感じですわ

jruby -rwebrick -e "WEBrick::HTTPServer.new(:DocumentRoot => './', :Port => 8088).start"

これバッチファイル化しておいて、あとはjavaとjrubyにパスが通る環境であれば簡単にサーバ構築可能。
やったぜ!

ただ、この環境だと開発環境に必ずrubyが必要なんだよね
俺の作る環境ではかならずruby入れるから特に問題なさそうなんだけど、
html+css+javascriptで作成しているゲーム環境にrubyが必須なのはなんか気持ち悪い・・・・

node.jsでワンライナーサーバー作れないか、そこが現在の課題だ。
タグ:ruby
posted by LoyalTouch at 22:16| Comment(0) | TrackBack(0) | インフラ | このブログの読者になる | 更新情報をチェックする

2016年07月22日

plantumlでredmineに図を挿入

昔UMLは使えねえっていう話をしたと思うんですね


今でも何でもかんでもUMLで書くのはおかしいとは思ってるんだけど、まあそれでもシーケンス図と状態遷移図だけは認めてやってもいいし、
if分がいくつもガチャガチャ続く場合はどうしてもフローチャートはほしい。フローチャートとアクティビティ図はほぼ等価だと思うんで、
ひとつのコンポーネント入れるだけでシーケンス図も状態遷移図もアクティビティ図も書けるんならまあ使ってもいいかなくらいに思ってきた。
適材適所ですな。

でもastahでいちいち図を描くのは面倒だしあれ起動むっちゃ遅い、しかもテキストデータじゃないから差分管理面倒くさいということで
すこし敬遠してた部分もあったんだけど、テキストでUML起こせるツールがあったんですね。しかもredmineと連携もできる。
今回はこのツール、plantumlをredmineと連携させて、設計資料を充実させようというお話。


続きを読む
posted by LoyalTouch at 06:28| Comment(0) | TrackBack(0) | プログラム全般 | このブログの読者になる | 更新情報をチェックする

2016年07月18日

納豆の概念を揺るがす『謎のアジア納豆』

↑で紹介されてて興味を持ち、見てかなり衝撃を受けた納豆ノンフィクション、『謎のアジア納豆』

著者はミャンマーやソマリアなど危険地域への潜入ルポで名を上げた高野秀行。でも今回はそんなきな臭い話はない
のに、むちゃくちゃ面白い。300ページ強のハードカバーでなんだけど一気に読めちゃう
内容はタイトル通り、世界の納豆を探求する紀行ものだ。
(追記でネタバレ)


続きを読む
posted by LoyalTouch at 14:44| Comment(0) | TrackBack(0) | 読書 | このブログの読者になる | 更新情報をチェックする

2016年07月15日

RedmineでToDo管理だ

このブログ、本来はゲーム作成の過程を綴るブログだったんだ。

ところが1つのiアプリゲーム、5つの宝島を作成してから6年あまり、他のゲームを全く作り終えていない。
作りたいと思っているゲームは
  • 龍の宝珠の物語 : HTMLで作るゲームブック風ゲーム
  • ダンジョンスペシャル : とにかく進むだけの単純ハック&スラッシュゲーム
  • 世界中の迷宮 : TRPGを模したシナリオ随時追加型RPG
  • Flidoneizia : 世界観を作りこんだハイファンタジーのフィールド型RPG
こんだけある。難易度の低い順番から上に並べたけど、コレ完成するのいつごろだ・・・?
そして、全く進まないのをなんとかしたい。作ろうと思うとついネットだらだら見て過ごしてしまうんだ・・・どうしよう。
そうだ、ToDo管理しよう!
続きを読む
タグ:GTD
posted by LoyalTouch at 06:46| Comment(0) | TrackBack(0) | プログラム全般 | このブログの読者になる | 更新情報をチェックする