ローグライク実験室の裏側2013-12-17 00:00

Roguelike Advent Calendar 2013 の17日目の記事です。

悪い話と良い話がある。
パシフィック・リムのブルーレイ版をレンタルして、PCで観ようとしたら案の定トラブってドライバー入れ直そうと削除したら再インストールが失敗する。ATI Radeon HD4200はWindows8.1には古すぎるか。8インチWindowsタブレット買っちゃおうかと調べたら今使ってるAMD Athlon II X2 240eとあんまりパフォーマンス変わらないって進歩しているようなしていないような。

良い話は、さっき起動したら消したドライバーが復旧してたよ。
実験室ページ用の半自動ビルド環境構築をメモって記事にしてWindows環境つぶしちゃおうと思ってたのにー。

「ローグライク実験室」はいろいろローグライクゲーム(といってもAngbandバリアントのみ)のパッチ作ったりするページにしようかなーと思ったこともありますが、結局CVSから最新ソース取ってきてコンパイルしてWindows用バイナリをうpするページになりました。
最初期は自分が遊ぶ用なのでリビジョンとか気にしない、CVSにはリビジョンなかったしね。パッチ適用変愚蛮怒のファイル名が年月日のものはその名残。

現在はほとんどのバリアントはSubversionに移行してるのでちょこっと洗練してリビジョン毎にビルドしてます。全自動まではいけてないけれど、今では手作業は苦にならないくらいには減らしてる。

作業は以下の流れ。
1.コミットの検出はRSSリーダーで
 SourceForgeならRSSフィードがあるし、GitHubにもある。
 Googleリーダー亡き後はFeedlyに移行。
2.コミット内容の確認
 trunk以外は無視するポリシーで運用。
3.ビルド対象のリビジョンをコンパイルする
 バッチファイルの引数にリビジョン番号を付けると、自動でzipファイルにパッケージングまでできちゃうBATを作ってある。
4.Dropboxのpublicフォルダにコピー
 Dropboxのpublicにファイル置くだけでサイト公開できるのでらくちん。
 ドメイン用意してないのでURLがあやしい感じなのはいなめないが。
 一覧HTMLはシェルスクリプト(Cygwin入れてる)で生成。容量足りなくてファイル消すことになっても一覧HTMLの維持がらくちん。
5.トップページの更新は手作業
 コピペして数字変えるのにたまに間違えてるのは手作業だから。
6.Twitterでつぶやく
 リビジョン○○をビルドしました。
 実験室ページにはTwitterの投稿表示するようにしたり結構マッシュアップ?
 でもFacebookとGoogle+のボタン用意したのにだれもいいねしてくれないよ。

まだ結構手間ひまかけてるけど、全自動にしちゃったら興味関心を維持できなくておしまいかな。

BATのビルドスクリプトは無くすとまた作るの面倒なのでアップロードしてるzipに一緒に入れてます。
CVSからソース取っていたころはwgetでtarballダウンロードしてたけど、コミット数多いのとダウンロードサイズの大きいDeeangband対策としてローカルにSubversionサーバ立ててコミット内容を同期するようにした。
VisualSVN Serverインストールして、他のリポジトリから同期するように設定。svnsync sync http〜で同期が実行される。
実行すると取り込まれたリビジョン番号がずらずら出てくるので、それ見て指定範囲のリビジョンをビルドするBATファイルを実行する。(ビルドBATをループで実行するBATファイル。)

おおざっぱにはこんな感じ。
バリアントによっては公式に無い俺おれmakeファイル用意してるのもあって、これは自分の都合のいいコンパイル環境を使うため。
今はMacbook Airがメインマシンなので、隣の部屋のWindows PCにChrome リモートデスクトップでインターネット経由で操作したり。

今時のゲームは時間だけでなくてお金も吸い取られるので、変愚蛮怒でなくてもスマートフォンでローグライクゲームができればね。あるにはあるんだけどねPCのと同じのが。操作しにくいよ。
昔作った携帯電話Java向けのmiRogueは、10キー操作に特化してたんだけどタッチパネル操作に合わせるにはどうしたものか。このネタは来年にまわして、今年のAdvent Calendarが埋まらなかったら「爆発だよ鉄獄は」の2013年バージョンを作ろうかな。

次はClockさんにバトンタッチ。

モバイルAdobe AIRアプリをPCに展開する2013-12-06 00:00

Adobe AIR Advent Calendarの6日目に飛び込み参加。

モバイルAIRアプリはAndroidとiOS向け、そんなふうに考えていた時期が俺にもありました。
(BlackBerryサポートはいつのまにか消えてる? )
実は、モバイルAIRアプリはAndroid向けのapk、iOS向けのipa、だけでなくWindowsやMac OS X向けのairファイルも書き出せるんですね。
これで1つのソースコードから4つのOS(Android、iOS、Windows、Mac)をカバーできちゃうぞ。

Flash Builder4.7で新規Flexモバイルプロジェクトを作成するとき「ターゲットプラットフォーム」には「Apple iOS」と「Google Android」があるだけ。
Flexモバイルプロジェクト作成画面

でも、リリースビルドの書き出しで「書き出し形式」項目の選択を「デスクトップでのインストール用の署名済み AIR パッケージ」にすると、.airファイルにパッケージされるのでWindowsやMac OS Xにインストールできるぞ。
モバイルFlexプロジェクト書き出し

ただし、AIRパッケージではネイティブエクステンションを使えないので100% Pure ActionScriptで限界に挑戦しましょう。
実際に1つのソースコードから4OSサポートのアプリ開発をしてますが、まあなんとかなります。

1つのソースといっても、OSや端末によってサポートされる機能が違うので気をつけないといけない部分はあります。
私はFlexモバイルプロジェクトで開発してますが、この時点で(デスクトップ向けの)Flexプロジェクトとサポートされる機能が違います。

デバイスプロファイルの記述通り、mobileDeviceプロファイルの機能だけサポートされます。「チェック」と書かれている機能は、実行時にisSupportedメソッドを呼び出して機能を使えるか確認しましょう。センサー類等のハードウェアが必要になる機能は使える使えないが想像できますが、NetworkInfo.isSupportedはiOSでは常にfalseだったりしてひどい。

OS毎に処理を分けたい場合は、Capabilities.osを見て分岐しましょう。
const isAndroid:Boolean = (Capabilities.os.toLocaleLowerCase().indexOf("linux") >= 0);
const isIOS:Boolean = (Capabilities.os.toLocaleLowerCase().indexOf("iphone") >= 0);
const isWin:Boolean = (Capabilities.os.toLocaleLowerCase().indexOf("windows") >= 0);
const isMac:Boolean = (Capabilities.os.toLocaleLowerCase().indexOf("mac os") >= 0);
こんな感じでいけます。
NetworkInfo.isSupportedの他に、SWFLoaderもiOSでは動作しないとか試してみてわかることが多すぎ。

あとは、app.xmlのinitialWindows要素内の記述はもともとデスクトップアプリ向けで、AndroidやiOSでは意味のないものが多いですが、モバイルAIRアプリでもWindowsやMac上で動作させる場合は有効です。(widthとかheightとか)
fullScreenをtrueにするとデスクトップでも全画面表示になってしまうので、実行時にOSを判別してモバイル端末だけ全画面にするとよいでしょう。
stage.displayState = StageDisplayState.FULL_SCREEN;
で全画面に切り替え、
stage.displayState = StageDisplayState.NORMAL;
で全画面解除になります。


クロスプラットフォーム開発の暗黒面はまた今度。
NativeApplication.nativeApplication.exit();でiOSじゃアプリ終了しやがらねえなんてかわいいもんだぜ。

ゲームは一日ワンコイン 艦隊これくしょん2013-09-29 12:50

カテゴリをソシャゲとしたけれど、艦これはゲーム内での他のプレイヤーとの関わりあいはほとんどない。演習で対戦があるくらい。
対戦も演習相手が限られているし、ゲームの内容は実際のところプレイヤーの自由度は結構少ない。

艦隊を編成してエリアを指定して出撃。進めるルートはいくつかあるが、プレーヤーは針路を選択できず、羅針盤を回してランダムに決まるためエリアのボスに到達できないこともある。エリアのボスに勝利すると次のエリアが解放される。

ゲームを構成する要素はいろいろあるけれど、艦これではプレイヤーはリソース管理を中心に据える必要があるだろう。
出撃すると艦船は「燃料」と「弾薬」を消費する。戦艦は大飯食らい。
被弾すると修理には「鋼材」と「燃料」が必要になる。航空機の補充には「ボーキサイト」が必要になる。
新しい艦船の建造や装備の開発には「燃料」「弾薬」「鋼材」「ボーキサイト」が必要になる。
艦船の建造と修理には時間がかかる。戦艦や空母はものすごく時間がかかるが、時間を短縮するアイテムもある。

建造と開発には4つのパラメータにどれだけつぎ込むか指定できて、結果にも影響する。戦艦が出やすい数値、空母が出やすい数値があり、インターネット上には「レシピ」として出回っている。
レシピの表記は100/200/300/400のように数値の羅列で、これは燃料
/弾薬/鋼材/ボーキサイトの順番のようだ。
エリアの表記も2-4などと書かれることが多いが、ゲーム内ではこのような表示は無い、よね?

まあ、艦船(艦娘)それぞれにボイスがたくさんついてるし、被弾すると半裸になるし、被弾し過ぎると轟沈してロストするし、レシピの統計を取るもよし、楽しみかたはたくさんありますね。

ゲームは一日ワンコイン マジョカ†マジョルナ、サウザンド†エンペラーズ2013-09-29 10:48

ケリ姫はやめて、あんさんぶるガールズ連携のゲームを増やす。

マジョカ†マジョルナとサウザンド†エンペラーズは同じ会社のゲームだけれど、開発と運用は連携してないのかな。
安くて遅いSIMで遊んでると、あんガル>マジョマジョ>エンペラーズでプレイしやすい。あんガルはキャッシュしまくりさくさく、ストーリー読むときはうまく画像が表示されないこともあるけれどもう一度ストーリー読み直すとOK。マジョマジョは通信かかる部分は←で戻ってキャンセル、処理はサーバでされてるからOK。エンペラーズはUIもバランスもNG。


マジョカ†マジョルナは以前に一度ためしてみたけれど、その時はわけがわからない&ギルド参加がめんどくさいのでやめた。
改めてはじめると、あんガル系ギルドにぶちこまれてたのでそのまま居つく。ギルドに所属すると、他の人のレベルアップボーナス、ギルドのスキルボーナス、その他特典が付く。
カードは3つの属性があり、月(ムーン、Moonのおつきさま)の満ち欠けで強い属性が決まるだけ。じゃんけんのような三すくみは無い。
レアの種類は多いけれどほとんどのSR未満はゴミ扱いでOK。カードの強化には、他のカードを消費して経験値を得てレベルアップさせる。他には、同じカード同士を消費させて「進化」したカードを得る。

ほとんどのカードは5段階進化させることができる。パラメータを最大化するには、レベルを最大まであげた同進化段階のカード同士を進化させる必要がある。
つまり最強のカードに仕立て上げるには、同カードを16枚集める→16枚のレベルを最大に上げる→8枚の進化2段階目カード→8枚のレベルを最大に上げる→4枚の進化3段階目カード→4枚のレベルを最大に上げる→2枚の進化4段階目カード→2枚のレベルを最大に上げる→1枚の進化5段階目カードを得る、という工程を経る必要がある。
16枚程度であれば、トレード(バザー)もあるので集められないこともない。

特殊なカードがいくつかあり、10段階進化するカードもある。(えーと、最大化するには512枚?)
ガチャコ系はスキルを上げる。ガチャコのレベルを上げてもスキルの上がる率はかわらなそう。
チョメコ系は他のカードより経験値が良い。R以上はチョメコのレベルを上げるとトータルで強化費用が安上がり。
ゼルコは引退させて強化費用に当てる。ゼルコ、ガチャコの必要魔力は1と少ないので、他の召喚魔力が少ないカードとデッキに組み込んでデッキ8枚ボーナスを得るのにも使える。

よーし無課金で遊んじゃうぞーと普通に進めると、クエストボスに歯が立たなくて積み。
あんガル連携でSR、SSR、ウェポンガールズ連携でSSR四枚、コミケに行ってSSRゲットするとアリーナで連戦連勝。
通常クエストは追加待ちまで進み、HR16枚集めてたけど育成しきれない&SSR以上も入手できてきたのでSR以上と10段進化の育成に切り替えているところ。


エンペラーズはいいところがあまり無い。
バランスがいいソーシャルゲームも無いだろうけど、レア度ではデッキに組み込むコストがたいして変わらないのに攻撃力は段違い。

カードを強くするには、他のカードを食わせて熟練度を上げる、同カードを集めてランクアップ、進化に必要なカードを集めて進化させる、という方法がある。
優先度は進化>熟練度。進化すると熟練度はリセットされる。

熟練度上げは、キングチョメコを食わせるのが安上がり。すでに容易にキングチョメコを狩れるのであまりまくり。
進化カード以外のNやRは売却用途にしか使い道がない。売って、ロールとギルド施設強化。

HR以上のカードを集めても、デッキには9のロールの適性があるのでなかなかうまくはまらない。ロールが合わなくてもレア度高いやつのほうが攻撃力でたり。
システム的には、リアルタイムチャットとかいいんだけど。

ゲームは一日ワンコイン マジカル少女大戦編2013-04-07 11:27

マジカル少女大戦はiOS用のアプリ。
「私は無課金でーす」と主張したがる輩を見かけるが、当然私のようにiPod touchで遊んでいるのだろうね。iPhoneでauとかソフトバンクに課金されているようじゃ無課金厨としてはまだまだだな。

内容は着せ替えを楽しむゲームなのだろうかねえ。最終目的はアルティメット魔法少女の育成かな。キュゥべえよろしく魔法少女を召喚しては育成してクォーツに変えては★6素質の魔法少女に与え、★6魔法少女のクォーツのみを与えた★6魔法少女のクォーツを(ry

魔法少女は魔力を消費して召喚する。魔力消費量によって召喚できる魔法少女の素質下限が違う。最初は素質よりも魔法少女の頭数を増やしたほうがいいだろう。ちなみに20人まで召喚してはべらしておけるぞ。

このゲームではカードは引かない、1日1回無料で引けるガチャでは武器・衣類・アクセサリ等・髪(カツラかよ!)が出てくる。1日1回無料の他に、「想いポイント」を消費してガチャも可能。

「想いポイント」のため方の基本は他のプレイヤーへの挨拶。無差別に送りまくってためる方法もある。
有料の上級ガチャ引いたほうが良いアイテムでるんだろう。

魔法少女は召喚時に、素質・属性・肌の色・眼・口・性格が決まる。これ以外は髪も眼の色(それカラーコンタクトじゃねえし)も着せ替え可能。着せ替えパーツは、頭部・アクセサリ・トップス・ボトムス・ソックス・靴・コンタクト・髪。
ワンピース物はボトムス付けても非表示。組み合わせによってはポリゴン突き抜けたり違和感あり。ちなみに胸の大きさはトップスで決まるぞ。

他のプレイヤーと仲間になると、行動力と魔力が増える。フレンドを切ると失うのでなかなか非アクティブな人がいても切れない。


無課金新参者に優しいかはともかく、めぼしい課金性向は上級ガチャと回復アイテムくらいしかない。
魔法少女の身なりを見れば課金具合が分かるものなので、ファッションショー的なイベント多し。アリーナでは先頭3キャラでアピールして応援されるとバトルで有利になる。
現在開催されているイベントは、バトル抜きの純粋なファッション対決。セクシー、クール、キュート部門にエントリーしてポイントを稼ぐ。
エントリーするには行動力が必要なので回復アイテム買いましょう的な。このゲームは行動力の回復に時間がかかるし、エントリーした結果が出るにも時間がかかるので、逆にゲームに張り付いていなくてもいいので遊びやすいんじゃないかな。

無課金新参者はどのゲームでもスタートダッシュが重要。
バトルで勝つには、まずすばやさを上げて先手を取る。次に武器。グリモワールという争奪アイテムをコンプリートするとましな武器をゲットできる。バトルはレベルの近い人にしか仕掛けられないので、先に魔法少女の頭数を増やしてボコれば勝てる。グリモワール武器と先手があればそこそこ勝てる。
クエストのグリモワール武器はしょぼいのでイベントのグリモワール狙いのほうがいいかも。

ゲームは一日ワンコイン あんさんぶるガールズ編12013-03-31 15:22

ソーシャルゲーム王道なカードバトルものは、絵が違うだけの粗製濫造でえんえんと目標をセンターに入れてスイッチの繰り返し。パズドラの成功は、カードバトルに飽きちゃった人が新たな可処分所得の貢ぎ先を発見しただけじゃないのかな。

単調なルールは悪いわけでなくて、理解しやすく導入に無理がない。最近は複雑化してゲーム性を持たせようという風潮があるが、それはソシャゲのフォーマットに詰め込む必要ないんじゃね? 経営判断的につめ込まされてご愁傷様な感じ。
ゲームの導入部に、必ずチュートリアルがあるのもバカの一つ覚えみたいで、それは本当に導入の助けになっているのかな。


で、「あんさんぶるガールズ」はソシャゲ的な枠内でいろいろ模索してがんばってる感じ。
通常クエストは、行動力を消費して経験値に変換、たまにカードをゲットとへんてつもない。
カードは、ノーマル(N)、レア(R)、スーパーレア(SR)、ウルトラレア(UR)。カードは君咲学院の生徒、1年~3年生各20名の計60名。
ノーマルは60種類。カードは攻と守の数値と、一定のレベルで必殺技を習得し、また一定のレベルになると才能開花で能力値が向上する。

カードのレベルを上げるには、同じカードをゲットするか育成カードに設定する。同じカードをゲットすると自動的に合成されてレベルが上がる。
レベルは上限があって、育成カードでは上限を超えられない。同じカードを合成するとレベル上限が少し上がる(これもある程度まで)。でもまあNとRがエサなのにはかわりない。

バトルもあるけれど、対人は結構不満が続出する。殴りあって楽譜を奪い合うイベントは地獄絵図だったぜ。URの圧倒的な数値は覆せないからね。でもバトルイベントでは攻3倍タイムを設けたりと、この課金性向への余念のなさが好き。

なんだかんだと、連日イベント開催してる。バトルイベントは人気投票だったし、お金の使わせ方がうまいね。人気投票は3年生だけとか、今度2年生もしたので次は1年生か。人気投票前のイベントで出てるキャラが上位に入っちゃうので出来レースな感じもするがそれも作戦?


他には、シナリオに作家を起用して差別化もある。メインストーリーはプレイヤーのレベルで解放される。サブストーリーはそのストーリーに絡むカードをゲットして解放。サブストーリーはガチャしまくらんと無理。

カードのインフレは新カード投入の定石以外に、イベント中は超強いイベントカードを設けている。イベント終わったら弱体化でインフレ予防と課金性向にもいいね。
ただし現イベントではデッキ全体3倍効果とか、イベントカードもインフレさせないと成り立たなくなってる。もうRなイベントカードは役立たずなんで、収集アイテム数アップ効果も付いてるし。

新しいイベントの度に、課金性向が工夫されてるのでヲチするだけで面白い。

ゲームは一日ワンコイン ケリ姫スイーツ編2013-03-10 16:46

昔々ガンホーとかの韓国MMORPGはクリックゲーとか揶揄されていたわけだが、日本のソシャゲってさらにひどいタップゲーじゃない。そりゃパズドラのほうが面白いでしょ。私はケリ姫の方するけど。

ケリ姫はAngry Birdsのフォロワー。鳥さんは飛ばしたきり動かないけど、ケリ姫はお姫様が蹴っ飛ばしたキャラクターが次のターンにも自動で行動する。
初代のケリ姫クエストはストイックな遊び方、コンティニューしないでハイスコア狙いとか、ができたけれど、二作目のケリ姫スイーツではオールドタイプな遊び方はもはやできない。ステージに登場する王冠や敵さんはランダムによりコインを稼げるやつに差し替わるので、単なるコイン・アイテム・経験値を稼ぐ作業になってる。

ケリ姫では、装備アイテムに経験値が入った時にプレイヤーキャラクターにも経験値が入る。装備がMAXまで成長してしまうとプレイヤーに経験値は入らない。つまり所有アイテム数でレベルキャップが決まる。スイーツでは装備を強化してさらに経験値を取れるが、レアアイテムほどコインが必要になる。
新アイテム・新ステージが投入され続ければユーザが飽きるまで遊んでくれる。一応レベルキャップがあるからインフレはそこそこ防げるのかな。

前作はクラス毎に複数あったけれど、スイーツではクラスでスキル固定。パズドラ同様に金払って購入するのは1種類のアイテムというのもシンプル。購入しないと手に入らないわけでないのもパズドラ同様。ステージクリアなどでも手に入って、使用用途はスロット(ガチャ)回すかコンティニューに使うか。

スイーツでは、他のユーザーのキャラクターに助っ人に入ってもらうこともできて(最近はこういうシステムもよく見るね)、金を落とさなくてもそれなりにクリアできてしまう。パズドラもそんな感じみたいで、これでよく稼げるもんだ。

ケリ姫スイーツが一般的なソシャゲじゃないのは、プレイ続行に制約がないところかな。行動すると行動力が減って、時間が経つか回復アイテム使わないと動けないということがない。

2013の計2013-01-28 22:49

今年こそロード? でも細こいタイヤよりはファットバイクが良い。間を取ってシクロクロス? とりあえずクロスバイクは全天候型仕様にして、晴れてるけど路面が濡れてるから走らないはなしにする。emetersの秋田県1位になるかな。2012年はけっこうさぼっても2位だ。

サイトとかアプリとか作ってがっぽがっぽして床の間自転車を飾る。
ブルべ200kmか、センチュリーラン160kmくらいは走る。

WindowsPCは捨てる。MacにWindows入れるよりは、Windows VPS使うかな。
プログラミングは、PHPとJavaScript、あとはモバイルAIRでGPU使いまくる。

au IS11CA → docomo GALAXY Note SC-05D2012-11-25 07:53

auからdocomoにMNPした。
G'zOne IS11CAの後継機も出たけど、上下の区別がつかないデザインがやな感じと、頑丈さ優先だからスペックいまいち、あと値段が高すぎる。そもそもあれこれセンサー付いてても全然使わなかったし。

Galaxy Note2も出てるけど、MNPで0円のNoteにしてからそのうちauに戻るつもり。
docomoのスマートフォンはspモードが癌だね。Wi-Fiで使わせたくないのか、我慢して使ってもらえると思っているのか。
docomoのいいところは、多分どの端末でも同じメールアプリを使えるんだろう(いい話は聞かないけれど)。地図アプリとかiコンシェルとかももれなくついてくるけど、標準のマップアプリあればいいんじゃねとか羊がじゃまでもっさり原因だったりする。

Galaxy Noteはそんなにスペック悪くないはずなんだけど何するにももったりもったり。Android4.0版にアップデートして、羊はもちろん、あれこれ無効にしまくってブラウザはGoogle Chromeなど他のを使うべき。auでもこれくらい手間をかけたらもっと快適だったかな。

あとソフトウェアキーボードのレイアウトがダメすぎる。画面でかいんだからQWERTYに数字出せばいいのに。ATOK買って満足だけど、QWERTYに@があればメールアドレス入力が快適なのに!
あーauが良かったなー。というauステマだったのさ。

自転車2012夏2012-09-17 19:01

遠かったはずの田沢湖も、自転車で2時間で着いちゃうじゃないと近い距離になって、物足りないので一周して帰ってきたり。
走行距離が100km超えてくるとパワーダウンしてしまうので、センチュリーライドの100マイル(160km)走るにはもう少しペース落として走れるようにならないといけないかな。

今年の夏はなんとなく県北に行ってるな。
三種町のサンドクラフト。行きの片道だけ自走。朝早く出ても昼の日差しがきつい。大潟村のえんえんと一直線の道はたいくつ。

男鹿半島一周と寒風山コース。雑誌に載ってたコースの中では難易度低かったんだけど、白神ライン・アスピーテラインの山脈越えよりはマシに見えるだけじゃないか。これが獲得標高1000メートルか。
道の駅てんのうからスタートして男鹿半島の入道岬まで行って寒風山経由で戻ってきて距離は100kmくらい。半分以上は平地だけども傾斜きつー。

見物してる余裕なし。スプロケット12-23Tにするんじゃなかった。ずっとインナーローでもきつい。

バッグ満載自転車がたくさんいた。私だけフロントバッグ1つの軽装という。

日照りに完封負けの寒風山。木陰のない山きびしい。

山頂はスルーしたかったけれど、飲み物からっぽなんで補給しに行ってみた。
(頑張らなくても右の先にいけば補給できたよ。)

北はもうけっこう。でも東も南も峠だらけなのよねー。