2013年08月25日

戦闘システムの洗い出し

ここしばらく更新が止まっていたけどダンジョンスペシャル。まだまだ生きてるぜ。
なんせ前作の5つの宝島は構想14年の大作だったし、
世界のすべての人が忘れても俺一人が覚えていれば再開できるさ!これが一人プロジェクトの強みだ。

で、今日のお題は戦闘システムの洗い出し

前の5つの宝島のとき、ひとまずの戦闘システムを作ってから拡張しようと思ったら
トゥンブクトゥの遊びシステムの追加(イニシアティブに関係なく戦闘と無関係のメッセージを出す)でバグったり
毒の仕組みが挿入できない(イニシアティブのはじめにダメージを受けて死ぬとバグる)とか
いろいろ不都合があった。それもこれも後先考えずに先に実装しちまったからだ。

この教訓を活かすため、RPGの戦闘とはどのような動きになっているのか先に洗い出そうと考えたわけだ。
 
続きを読む
posted by LoyalTouch at 20:51| Comment(0) | TrackBack(0) | ダンジョンスペシャル | このブログの読者になる | 更新情報をチェックする

2012年11月17日

SVGかCanvasか

久々にダンジョンスペシャルの話。

というかブラウザで作るゲーム全般の話ね。
今、html5でブラウザゲーム作ろうとすると、主力はCanvasなのかな?
パソコンでもスマホでもほぼ確実に動くし、WindowsのGDI使ってた時と使い方がにてるしー。

ただ、これ、あまり未来を感じないよね。
 
続きを読む
posted by LoyalTouch at 09:01| Comment(0) | TrackBack(0) | ダンジョンスペシャル | このブログの読者になる | 更新情報をチェックする

2012年10月02日

あれ、フリック情報うまくとれない?

前回の記事で長押しとかフリックとかの情報を取得してダンジョンゲーム作ろうと言ったんだけど、
Android上でHTMLを描画するWebViewでこの手の情報を取得しようとすると取得できない・・・
つーか単純な画面タップすら取得できない。

俺、画面描画はHTML+jQueryで手抜きして半透明とかアニメーションとかを作りこもうと
思ってたから、これはつらいなぁ。

ああ、もしかしてブラウザ上のjavascriptのクリック処理が優先されてるのかな
なんか対策考えないと。javascriptのフリックライブラリとか?
posted by LoyalTouch at 07:13| Comment(0) | TrackBack(0) | ダンジョンスペシャル | このブログの読者になる | 更新情報をチェックする

2012年09月30日

Androidでダンジョンゲーム、UIはどうする?

この前、5つの宝島はiアプリで作っていたけど今作るとするとAndroidだと思うなあ。
次のダンジョンスペシャルはAndroidゲームだ!と思ったんだけど、ちょっと思うことが。
 続きを読む
posted by LoyalTouch at 20:58| Comment(0) | TrackBack(0) | ダンジョンスペシャル | このブログの読者になる | 更新情報をチェックする

2012年01月05日

coffee-modeの設定続き

ちょっとした追記。
coffee-modeでは自動的にスペース2つで自動インデントが行われるんだけど、
coffeescriptはインデントでブロック構造を表現するので、インデントは自由自在にやらせてほしい。
といことで
  • Tabを押したら素直にタブ文字が入って欲しい
  • Enterを押したらインデント補完しないで単に改行して欲しい
こういう要望を満たすため、siteinit.lを改造する
 
っていっても、以下の2行を追加するだけだけど。
 

(undefine-key coffee::*keymap* #\TAB)
(undefine-key coffee::*keymap* #\RET)

 
これをやると、TabとEnterのキーマップが解除されて普通に改行やタブが入力できる。
ラベル:CoffeeScript xyzzy
posted by LoyalTouch at 00:47| Comment(0) | TrackBack(0) | ダンジョンスペシャル | このブログの読者になる | 更新情報をチェックする

2012年01月02日

xyzzy coffeeモードをUTF-8で 2012

2日しか立ってないけど去年の記事を修正します。
結論から言うと、UTF-8の.coffeeファイルをコンパイルするのに、特別な対応は全く入りません
訂正内容はこれだけでいいんだけど、頭を整理させるためにあらためて最初から手順を書くよー。
 続きを読む
posted by LoyalTouch at 11:09| Comment(0) | TrackBack(0) | ダンジョンスペシャル | このブログの読者になる | 更新情報をチェックする

2011年12月31日

xyzzy coffeeモードをUTF-8で

最近、ダンジョンスペシャルではQUnitのテストをCoffeeScriptで記述している。記述が簡単になるから使いやすかったんだけど、
CoffeeScriptを<script src="testcode.coffee" type="text/coffeescript"></script>タグで読み込んでたんだけど
  1. Chromeの環境ではうまく動かせない(※--allow-file-access-from-filesオプションで解決しました。hanachin様ありがとうございます!!)http://nmksb.seesaa.net/article/230685899.html
  2. デバッグ・エラー時にどの行を参照したらいいかわからない
という問題があって、一旦テスト用CoffeeScriptをコンパイルすることにした。
ところが問題が発生した。いちいちCoffeeScriptをコンパイルするのが激しくめんどくさい
 
 続きを読む
ラベル:CoffeeScript
posted by LoyalTouch at 09:20| Comment(0) | TrackBack(0) | ダンジョンスペシャル | このブログの読者になる | 更新情報をチェックする

2011年06月14日

qunitいいね!

javascriptで使える単体テストフレームワークがないなあ。ってなやんでたところでqunitってのみつけた。コレ便利!

http://docs.jquery.com/Qunit
 

続きを読む
posted by LoyalTouch at 22:45| Comment(0) | TrackBack(0) | ダンジョンスペシャル | このブログの読者になる | 更新情報をチェックする

2011年05月22日

ユニットテストを書きたいんだけど

せっかく作ったダンジョンスペシャルのロジックにユニットテストを書き込みたいところなんだけど、
ランダム関数使う処理が多いからユニットテストとっても書きづらい。
どうしたらいいものか・・・

あと、javascriptのみ使って簡単にかけるテストフレームワークってないかなぁ。
Javaと併用する重装備なやつは

http://webos-goodies.jp/archives/51186036.html

JsUnitっていうのを見つけたんだけど・・・

dunspe.zip
posted by LoyalTouch at 17:46| Comment(0) | TrackBack(0) | ダンジョンスペシャル | このブログの読者になる | 更新情報をチェックする

2011年05月08日

ロジックが決まれば必要なデータも決まるよね

前回戦闘ロジックをひと通り定義したけど、これで必要なデータが何かってのもあらかた定義できたなぁ。
 続きを読む
posted by LoyalTouch at 20:02| Comment(0) | TrackBack(0) | ダンジョンスペシャル | このブログの読者になる | 更新情報をチェックする

2011年05月06日

戦闘ロジックをまとめてみる。

ダンジョンスペシャルは、探索部分を非常に単純化してRPGの戦闘部分に特化した簡易ゲームだ。
というわけで、プログラミングの一番メインになる部分は戦闘部分だ。
今回は、戦闘に必要なロジックを整理してみようと思う。いわゆる詳細設計だな。
 続きを読む
posted by LoyalTouch at 09:08| Comment(0) | TrackBack(0) | ダンジョンスペシャル | このブログの読者になる | 更新情報をチェックする

2011年03月27日

mb_convert_encodingうまくいかない

うーん。キャッシュファイルを作ろうとしてphpのmb_convert_encodingを実行してるんだけど
どうも効いてる気がしない。
pukiwikiplusがeuc-jpで、ダンジョンスペシャルがUTF-8だからUTF-8に変換しようと思うんだけど、
どうしてもeuc-jpのままなんだよなぁ・・・
posted by LoyalTouch at 00:14| Comment(0) | TrackBack(0) | ダンジョンスペシャル | このブログの読者になる | 更新情報をチェックする

2010年12月12日

仕様書のようにプログラミングする

ダンジョンスペシャルはWikiに画面遷移やゲームデータを定義するのが特徴なんだけど、
その際仕様書のように定義を書き込めるようにするのを目標にしようと思っている
 続きを読む
posted by LoyalTouch at 21:26| Comment(0) | TrackBack(0) | ダンジョンスペシャル | このブログの読者になる | 更新情報をチェックする

1画面遷移1項目とする

ダンジョンスペシャルの作成メモ。

Wikiに画面遷移やらデータ定義をひたすら記載しておいて、
クライアントではjavascriptとcss3を駆使しajaxでWikiの定義を読み込むっていうのが
基本的なダンジョンスペシャルの構想だったと思うけど、
さらにもう一点。

Wikiの題名〜水平線までを1項目として、これをクライアント側での画面遷移とする。
つまり

<h3>戦闘コマンド</h3>
<p>コマンドを選択してください</p>
<ul>
  <li>攻撃</li>
  <li>特技1</li>
  <li>特技2</li>
  <li>道具</li>
  <li>防御</li>
<ul>
<hr />

こんな感じでWikiのhtmlが記載されていれば、これを1項目「戦闘コマンド」と定義する。

画面には当然

  • 攻撃
  • 特技1
  • 特技2
  • 道具
  • 防御

の5つの選択肢が記載されていて、例えば「攻撃」を選択すると

<h3>攻撃</h3>

<p>攻撃対象を選択してください</p>
<dl>
  <dt>選択肢</dt><dd>敵一人</dd>
  <dt>戻る</dt><dd>戦闘コマンド</dd>
</dl>
<hr />



こういう項目の画面に遷移する。

項目内に記載されている定義リスト(dl,dt,dd)はクライアントへの特別指示を出すディレクティブで、ここに選択肢=敵一人とか指定すると、選択肢に敵一欄が出てくる

こうすると、クライアント側はあまりjavascriptを重くせずにすむからいいよね!
posted by LoyalTouch at 01:17| Comment(0) | TrackBack(0) | ダンジョンスペシャル | このブログの読者になる | 更新情報をチェックする

2010年11月17日

javascriptでクラスを作るの巻

ダンジョンスペシャルのプログラミングについて。気づいたことをちょこちょこ書きます。

今回はプレイヤーキャラクターを表すクラス、Memberクラスの作成について。
今までJavaでゲームをつくってきたんだけど、javascriptのクラス作成はJavaと様子が全然違っていた…
 続きを読む
posted by LoyalTouch at 23:59| Comment(0) | TrackBack(0) | ダンジョンスペシャル | このブログの読者になる | 更新情報をチェックする

2010年10月31日

HTML5がすごい?いやいやCSS3とjQueryがすごい

ブラウザゲームでダンジョンスペシャルを作ってるけど、作ってる時の感想。
今ほんとにHTML5+CSS3+javascriptだけでアドベンチャーゲームライクなものは完全につくることできるんだね。
 続きを読む
posted by LoyalTouch at 17:47| Comment(2) | TrackBack(0) | ダンジョンスペシャル | このブログの読者になる | 更新情報をチェックする

2010年10月15日

jQueryに見るjavascriptの限界点

ajax実行のために便利ライブラリjQueryを使っているのですが。
一言だけいわせていただきたい。

each関数の

$("item", xml).each(function(){
  root.list.push($(this).text());
});

function()がうざい。

一度rubyに慣れてしまったせいか、

s("item", xml).each{|this|
  root.list.push(s(this).text()))
}

こんなふうに書きたい。

いきなりjavascriptにブロックを実装せよといっても難しいと思うけど、せめて

$("item", xml).each(->{
  root.list.push($(this).text());
});

このくらい短くならんか。
posted by LoyalTouch at 00:06| Comment(0) | TrackBack(0) | ダンジョンスペシャル | このブログの読者になる | 更新情報をチェックする

2010年10月10日

スクレイピング自前でやろうっと

前回までスクレイピング用のPHPライブラリ使ってWikiを解析しようとしてたけど、やっぱり自前で正規表現でやることにした。という話。
 続きを読む
posted by LoyalTouch at 22:40| Comment(0) | TrackBack(0) | ダンジョンスペシャル | このブログの読者になる | 更新情報をチェックする

2010年10月05日

atpagesでhtmlscraping、間違い

前回の記事のatpagesにhtmlscrapingを使ってみようとした件なんだけど、すごい間違いに気づいた。
スクレイピングを行うアプリケーションphpファイルって、htmlscrapingを解凍したフォルダ直下においておかないとイケないわけね!
そこに配置したら、前回ない、ないと言っていた各種phpファイルが全部参照できる位置にすでにおいてあったわ。
そりゃそうだよなぁ〜〜〜〜そういうふうに便利に作ってるっつうのこの手のパッケージはあ。

いやそれでもタイムアウトしちゃう問題は解決してないけどね。なんでだろ。
posted by LoyalTouch at 21:57| Comment(0) | TrackBack(0) | ダンジョンスペシャル | このブログの読者になる | 更新情報をチェックする

2010年08月01日

各種フロアで起こるイベント一覧

ダンジョンスペシャルは、トランプを引いてその札をダンジョンのフロアに見立て、
札の柄や数によってイベントが発生するというシステムだ。
イベントの種類は

  • スペード ... 複数の扉を持つフロア
  • ハート ... 回復の泉
  • ダイヤ ... 宝箱
  • クラブ ... 単なる通路

で、絵札以上が敵との遭遇な、はず

というわけで、各フロアにはこんな関数をわりあててやればいいわけね

  • function move ... 次のフロアに移動する関数、スペードの場合は複数フロア
  • function inn ... 回復の泉
  • function treasure ... 宝箱
  • function encounter ... 敵との遭遇

まずは次のフロアへの移動、そして敵との遭遇関数を作っていこうかな。
posted by LoyalTouch at 00:04| Comment(0) | TrackBack(0) | ダンジョンスペシャル | このブログの読者になる | 更新情報をチェックする