2014/12/23

なんやかんやダクソ 2

ダクソ 2 を再開しています。発売直後は途中放棄しましたが、今は様々なビルドで攻略を楽しんでいます。キッカケはニコ動で観た某 RTA プレイヤのダクソ 2 初見動画です。

時系列では、

  1. 理力ビルドでクリア(非純魔)
  2. 技量ビルドでアマナ前放棄
  3. 脳筋ビルドでクリア
  4. 上質ビルドでクリア
  5. 信仰ビルドでオジェイ前放棄
  6. 闇ビルドで攻略中

という感じで遊んでいます。

なんやかんやと 100h を超えてプレイしているので、今はダクソ 2 の評価を改めています。発売直後は、過剰な期待から不満が爆発したのかもしれません。

それでも不満は多々あります。それらは、不満を言う人々が感じる内容そのままだと思います。僕の中で特に大きい不満は、

退屈なマップ デザイン

ですね。発売直後に「やらされている感」と述べた印象は変わりません。まぁ、それは初見時限定の話なので、様々なビルドで遊び始めた状況では重要ではなくなります。

そろそろ DLC を購入するか否か悩んでいます。ダクソ 1 の DLC 発売時は、

面白いゲームを体験させてくれた開発者に対する敬意

から購入し、やはり購入して良かったと感じました。ダクソ 2 では敬意が生まれず、躊躇う感じです。ゲーム購入程度の金にケチる生活はしていませんが、

価格に見合う価値があるか否かの判断

は、僕の中で非常に重要です。この判断は、ゲームに限らず、衣服、音楽、旅行、仕事でも同じです。

2014/10/19

パカパカパッションの思い出

ゲーセンで最も狂ってプレイしたのがパカパカパッションです。今でもパカパカパッション全作のための筐体と基板を買おうかと真面目に考える程です。初代からパカスペまでを考えると、数十万を注ぎ込んでいると思います。ただし、やっている割には上手くないです・・・。

一応 PS 移植も買い、PS アーカイブでも即 DL しましたが、パカパカはゲーセンの筐体でプレイしてこそのゲームです。「ボタンを叩く感覚」とセットと言うか。PS では専用コントローラが発売されて買いましたが、ゲーセン筐体でなければテンションが上がりません。

パカパカはゲームとしても面白いですが、パカパカで作られたオリジナル曲が優秀で、それらが一層パカパカを魅力的にしていたと思います。Navigator、FLOATED CALM、Escape、XL TECHNO、Private Service、Blue Noise 2 などが好きで、もちろん CD  購入済みです。

狂ったようにプレイした経験からの想像ですが、ある程度音楽に関わる何かをしていないと、パカパカは上手くなれない気がしています。ボタンを押して Perfect をとるタイミングが異常にシビアで、体で譜面を記憶してリズムに合わせて叩かないと無理な感じがします。僕にも隠しステージまで進んでクリアする腕はありますが、その上を目指すとなると非常に難しく、明らかな才能の壁を感じながらプレイしていました。まぁ、それでも楽しいです。

元はゲームなどやらない妹が、たまたまパカパカをプレイして僕に教えてくれた事から始まりましたが、妹はピアノをやっていたせいか、僕が越えられない壁を当たり前のように超えるんですよね。ゲーセンでも、まるでバンドのドラマーのようにボタンを叩いている人を何度も見ました。ニコ動や Youtube で動画を見ても人外に見えます。まぁ、そんな音ゲなので、一部マニアにしかウケなかったのでしょうね。

2014/10/11

ちょっと過去の投稿動画

自分のブログから参照する用に、ちょっと過去の投稿動画へのリンク。






2014/09/27

AsyncTaskLoader を使うのを止めた

Android 版アプリ開発で非同期処理に AsyncTaskLoader を使っていましたが、どうにもしっくりこない。

Fragment で利用する Loader が 1 つになるような局面では、Fragment に LoaderCallbacks を 実装するパターンで可読性が下がるわけではなく、Fragment/Activity のライフライクルとも連動して便利なのかなと思います。

しかし、開発中のアプリでは、1 つの Fragment から幾つものサーバ通信処理(非同期処理)を呼び出すので、Fragment に LoaderCallbacks を実装して onLoadFinished で分岐するにしても、非同期処理別に LoaderCallbacks を実装しても、どちらにせよ可読性が大きく低下します。

また、非同期に実行したい処理は、極自然に実装したクラスのメソッドであるため、それら各メソッド毎に AsyncTaskLoader のサブクラスを実装する必要もあり、これも可読性を下げます。仮に、単一の AsyncTaskLoader のサブクラスで共通化できるように API を整理したとしても、onCreateLoader でのインスタンス化処理の可読性が下がるでしょう。これは、CursorLoader の使い方が示す通りです。

ってことで、何か良い枠組みが無いかと検索したところ、直ぐに以下が見つかりました。
JDeferred
非同期に実行する処理を直後に、done/fail/always でコールバックを書けるのが良いですね。ある非同期処理に関連する全ての処理の把握が容易です。
非同期処理では、その開始でプログレスバーやプログレス ダイアログを動かし、成功と失敗の両方でそれらを止めるなどの UI 制御が必要となりますが、そのような後処理を always で共通化できるのも便利です。

しかし、JDeferred は導入せず、考え方だけを取り入れてフレームワークを自作して利用しています(Deferred/Promise には従っていません)。
開発中のアプリでのみ利用する物として考えれば、必要な部分だけを洗い出し、より簡潔に可読性の高いフレームワークを作ることは容易です。
必要としない型パラメータを排除し、非同期に実行する処理は Runnable/Callable の実装としたりなどで簡素化した感じですね。

・・・つーか、ラムダ式を使いたい。匿名クラスによるコールバック実装では、可読性の向上に限界があります。

2014/09/10

そういやぁ KL1

学生の頃、並列処理に特化した言語をやったのですが、「なんて名前だっけ・・・」と長く思っていて、ようやく思い出しました。また忘れた時にブログを見て思い出せるようにメモ。最近、痴呆気味なので・・・。

KL1 - Wikipedia

僕自身が KL1 ベースの研究をしていたわけではなく、勝手にいじって学んでいただけです。
まぁ、習得した言語のほぼ全てが、そんなノリで独学した物ですが。

KL1 に触れた時には、それまで得ていた知識では理解に及ばず、新たな概念の習得を余儀なくされ、それが刺激的だった記憶があります。
そういうのが一番楽しいですね。3D グラフィックスを突然やり始めたのも、そんな刺激を求めていた所があります。

Wikipedia には第五世代コンピュータを目指した国家プロジェクトで生まれたと書かれていますが、そんな大事が関与していたとは知りませんでした。
プロジェクト終結が 1992 年、僕が KL1 に触れたのはその数年後なので、何でうちの研究室でそんな時期に KL1 が突然始まったのだろう?と思う所がありますが・・・まぁどうでも良いか。

仕事で KL1 などのような言語を扱う機会を得られる人は特殊だと思うので、貴重な体験をしたなぁとしみじみ感じています。

2014/09/03

懐古: FF11

丁度仕事を辞めた時で、丁度新居に移った時で、丁度 ADSL を引くという時で、ならば、「ADSL の性能とやらを見せてもらおうか!」と意味不明のテンションを挙げ、当時始めたネトゲが FF11 です。
当時の仕事を辞めずに続けていたならば、FF11 の存在すら知ることが無かったでしょう。当時の僕は、仕事の事ばかり考えていましたから。

もう 10 年以上前の事ですね。サービス開始から数日経過してからの参加でしたが、時期を見れば初期組というやつです。

あの頃は、僕を含めて FF11 プレイヤの殆どがネトゲ初心者でしたので、本当に自由で混沌としていて、でも、何かの期待を抱かせる世界でした。
あれは言葉では表せない経験だと思います。くだらなくてどうでも良い事が特別な何かでした。今でもセルビナの BGM を聞くと、特別な感情が沸き起こります。
経験していない人には伝えにくいですが・・・中学や高校や大学に入学した直後のテンションみたいなものですかね、アレは。

僕は飽きやすいので、1 ヶ月程度で飽き、ウダウダと不満を言いながら惰性で 3 ヶ月程やり(あんなマゾいゲームだと不満は言うでしょう)、半年(?)くらいで辞めた記憶があります。ただ、既に FF11 内の友達とは現実でも友達になっていたので、復帰を求められて何となく復帰したり、また飽きて辞めたり、でもまた復帰したりを繰り返していました。

本格的に辞めたのは数年前です。価値観が合わないと感じて完全に辞めました。僕は数多のゲームの一つとして FF11 を捉えるのですが、延々と FF11 を続ける人には FF11 が日常なんですよね。
とは言え、日常としてくれていたお陰で、僕は復帰してもスムーズに、懐かしさも含めて楽しめたので、とても感謝しています。
と言っても、日常としていた友達らも、IL 制が導入された辺りで「もう FF11 じゃない」と思って辞めたようです。

まぁ、もう年齢や時代を考えても、あの時と同じ何かをネトゲから感じる事はないだろうなぁ、と思っていますが、しかし、何かブレイクスルーが欲しいな!と期待している所もあります。

2014/07/28

Hitman: Absolution

ステルス ゲームを楽しみたくなり、何となく Hitman: Absolution を DL して遊んでいました。先日、Easy でクリアし(僕はヌルゲーマなので必ず最低難易度で開始します)、今は Normal でチャレンジ クリアを狙いながら周回している所です。

Hitman は攻略法が多岐に渡っていて楽しいですね。ステージに慣れていないうちは、敵に見つかって銃撃戦に陥るパターンが多かったですが、そうなったらそうなったで敵を殲滅し、次の周回に備えてアイテムやギミックの配置を調べていました。各ステージはいつでもリトライできるので(スタート地点 or チェックポイント)、気軽に試行錯誤を繰り返す事ができて良い感じです。

初見プレイ中、演出や銃撃戦が「Kane & Lynch に似てね?」と感じたので調べたら、同じ会社(IO Interactive 社)だったんですね。僕は数年前に Kane & Lynch 2 にもハマり、最高難易度まで何度も周回していました。
ただ、Hitman の過去作は Absolution とは趣が異なるらしく、Absolution では Kane & Lynch の開発者(?)が加わったせいで Hitman の良さが失われてしまった、との批判も見ました。

気になったので、過去作の購入を考えて動画を調べてみましたが、Absolution はステージ攻略方法の試行錯誤に焦点が置かれているのに対し、過去作は暗殺方法の試行錯誤に焦点が置かれている感じがしましたね。Absolution のステージは必ずしも暗殺目的ではないと言うか。ただし、Absolution にも多様な暗殺方法が用意されたステージが幾つかあり、クリア後に調べたら驚く物があります(2nd ステージの King of Chinatown で 10 パターン程)。

まぁ、僕はステルス プレイを目的にしていたので、Absolution のデザインで楽しいです。

libgdx いじり

Google が提供している Java 版の Tango Examples は Rajawali をベースにしているため、自分が仕事で開発する Tango アプリも Rajawali ベースとしていましたが、最近は libGDX への移行を進めています。一応、要点については移行が...