2010-11

2010-11-01 

旧日記だかウェブログだかシステムからのデータの移行とかやったと思いきや、ブログのタイトルを設定し忘れていた事に気がついた。まあ、誰も気にしないだろうけどな。まず何より俺が気にしてない。なのでタイトルはやっぱり適当。ってかどうせreturn0で通ってるだろうし。

このシステムを題材にCatyのチュートリアルを書こうかと思ったが、既にデカい変更が待ち構えている状態で書く気が起こるかというとまったく起こらないのがなあ。

FF13 

最近になってFF13を始めたが、ここまで酷いとは。ムービーが頻繁に入る上にそれなりに尺が長く、内容も似たような語感の造語を説明なしに垂れ流し、それでいてプレイヤーにゲームの目的を説明する気がない。戦闘システムは出来ることが増えて敵が手強くなってくれば、評判の通り面白くなりそう。でも序盤は出来ることが制限されすぎだろ。

一応はオートクリップのおかげで話の筋は確認できるし、マップが一本道だから「あれ、どこまで進んでいたんだっけ?」状態にならなそうだし、案外チビチビ進められそうなのは良いと思うのだが。ムービーを全部スキップすれば楽しめるのかも知れぬ。

しかしゲームの作り方としてアウトではないのかこれは。

追記:ムービーの長さに耐えられなくなったのでスキップ活用開始。普通にゲーム部分を楽しむだけなら問題なさげ。

2010-11-03 

何かもうよくわからないレベルで話題になってるエルシャダイ、その原動力と言うか元凶のプロモは狙って作ったらしい。ってかあれって狙って作れるものなのか。でもまあ、こういう純粋にユーザーを楽しませるような仕掛けで話題作りの勝負をかけてきたのは凄く印象が良い。

俺は買うぜ、エルシャダイ。

2010-11-05 

稲船さんの一件に関して、とりあえず開発中止はなさそうということ、スタッフのやる気は萎えていない事はわかった。

結局のところ、俺らファンは開発者の方々を信じて声援を送りつづけるしかない。

それにしても胃に悪い。


「プログラミングそれ自体が楽しくなる時期がそれなりにないと十分なレベルまで達しないという気がする」というのは、実際に常々感じている。もっとも、プログラミングそれ自体を楽しんでいるけど、何ていうか上達の兆しが見えずにダメなままだった奴もいたのだが。

そいつがどうして上達できなかったのか考えてみると、もしかしたらそいつの感じる「楽しい」の中に「上達を実感する」というのが抜け落ちていたか、あるいは上手/下手の審美眼みたいな感性が抜け落ちていたのではなかろうか。というかそうでもなければ、周囲からアドバイスを受けていながらそれをガン無視とか有り得ない。


上達することを楽しいと思える感性が強い事を、向上心があるというのだろうか。

向上心のない奴はどこ行ってもダメだと思うので、プログラミングに限らず手段と目的の混同的な熱中というのは、スキルアップのキーになるのかもしれない。

2010-11-09 

アーケードに関しては衰退しない理由がない。

「ラグや液晶モニタの遅延なしに対戦ができる」事に価値観を見出せない、あるいは回線の状況が悪くてオンライン対戦が使い物にならないのでなければ、家庭用を買えば済む話だからな。移植度?家庭用オンリーなら関係ないだろ。


IPアドレスとは、会社・団体・省庁といった組織ごとに割り振られている10けた程度の数字の羅列。郵便番号のようなものだ。

さらっと大嘘を書くな。


今度はボーンメカか!しかもメカ造型のデザインだけではなくボーンメカとのバトルのデザインまでとは。ってことはあれか、やたら細かく攻撃アルゴリズムを考えて送りつけてもいいわけか。ユーザー参加企画どころかユーザー参加開発とか、いくらなんでも斬新過ぎる。

そういや俺、ファミコン時代にボスキャラの募集企画に応募しようと、デザイン考えたりしてたなあ。まあ、当時から絵の腕は壊滅的で、いろいろとそれ以前の問題だったわけだが。

2010-11-11 

マシンを新調した後にうっかりkdiffをインストールし忘れて仕事してた。

んで、ここしばらくはコンフリクトが起こっていなかったんで気がつかなかったのだが、mercurialってmerge-toolsで指定されてるアプリケーションが見つからなくても何も言わないのな。いや、指定されてなかったらデフォルトのマージプログラムにフォールバックすんだろって事なんだろうけどさ。


マジで発売するのか。俺は去年輸入盤を遊んだのだが、こいつはとにかくもう斬新なゲームで、荒い部分全てに目を瞑れるだけのインパクトがあった。是非ともいろんな人に遊んでもらいたいと思いつつも、やっぱり言語の壁があるので不特定多数には素直にすすめにくい。そもそも俺にしたって、和英辞典を引いたり類義語を英英辞典で調べたりしてクリアしたしな。

ちなみに続編というかアップデート版のSuper Scribblenautsが最近発売された(未入手)。なんでも形容詞を組み合わせる事で「燃えるゾンビ」のようなオブジェクトを作り出せるとか。

……しかし「ヒラメキパズル マックスウェルの不思議なノート」って酷い邦題だなあ。原型を留めてないじゃないか。


ふと思い出したネタ。

ScribblenautsにはLeviathanだのCerberusだのといったクリーチャーも収録されている。いや、LeviathanとSea Serpentで同じオブジェクトが出てくるとか、恐らく容量の都合からかアレなのもあるんだが。で、それらのクリーチャー同士を戦わせることもできる、というか勝手に戦い出したりプレイヤーを殺しにくる(なのでDragonなどを出すときは敵の近くに出して、仕事が終わったらさっさと破棄する)。

それで思いつく限りのケースを調べたところ、

などといった事実が。

ちなみに強力なクリーチャーを敵の居るところに放り込むと、あっという間に敵を虐殺してくれる。敵を倒す必要のあるステージでは、プレイヤーにGunなどを持たせるよりはGodあたりを出した方が安全だった。

2010-11-16 

varnishのvclファイルにこんな設定を書いてみてる。

sub purge_if_backend_succ {
    if (obj.status == 200) {
        if (bereq.request == "PUT" || bereq.request == "POST") {
            purge("req.url == " bereq.url);
        }
    }
    pass;
}
sub vcl_fetch {
    call purge_if_backend_succ;
    if (!obj.cacheable) {
        return (pass);
    }
    if (obj.http.Set-Cookie) {
        return (pass);
    }
    set obj.prefetch =  -30s;
    return (deliver);
}

バックエンドにPUT/POSTでリクエスト出して、それの結果が200だったらキャッシュを削除。というのをやろうとしてるんだが、上手くいかん。

出来るとすればリクエストが行ってレスポンスが返されての間に仕込むしかないのだが(出来ない可能性もある)。

追記:よくよく考えればobjの出自はサーバからのレスポンスとは限らないから、キャッシュが効かなくなるのは当然だ(呼ばれるタイミングで特定できなさげ)。まあ、そんな即座にキャッシュ削除する必要性は今のところないのだが。


結局あれか、どうしてもキャッシュ削除したかったらバックエンドのサーバからvarnishにPURGEリクエストを投げさせるのが確実なのか。


登録した

2010-11-21 

妹のすすめでちょっと戦国BASARA3を遊んだ。使ったキャラは伊達政宗と島津義弘。以下はその感想。

キャラがぶっ飛んでる以外は普通に良くできたアクションゲーム。散々比較されてる無双シリーズはやったことないのでわからん。

2010-11-24 

「プログラマが読むべき10冊の本」とかそういうネタが出てくる度に思うのだが、そもそも一口にプログラマと言っても多様なプログラマが存在するわけで、例えば同じプログラマでも既存のフレームワークを活用してアプリケーション作ってるプログラマと、独自のプログラミング言語を構築して、それを応用したフレームワーク作ってるプログラマとじゃ要求されるスキルセットが全然違うよな。これは会社辞める前の俺と今の俺の違いなんだが。


CatyのJSONストレージのバックエンド候補にMongoDBが上がっているので、まあちょっと試したわけですよ。

$ mongo
MongoDB shell version: 1.6.0
connecting to: test
> db.x.save({a:1})
> db.x.save({a:2})
> db.x.save({a:3})
> db.x.find({a:1})
{ "_id" : ObjectId("4cecd61e43a3c9e5f0d40a40"), "a" : 1 }

ふむ、これは直観的。

> db.x.save({a:[1,2,3]})

MongoDBにはスキーマとかねえからなあ。まあ、これはCaty側で吸収可能だからいいや(挿入前にCatyのスキーマでチェックする)。

> db.x.find({a:1})
{ "_id" : ObjectId("4cecd61e43a3c9e5f0d40a40"), "a" : 1 }
{ "_id" : ObjectId("4cecd69743a3c9e5f0d40a43"), "a" : [ 1, 2, 3 ] }

どうなってんだこりゃと思ったが、Value in an Arrayにしっかり書かれてる動作だった。

他にも各種の制限($orはネストできないとか)がいろいろ書かれていて衝撃的なのだが、これはなー。どうしたもんかなあ。一応、Catyのクエリ言語にもスキーマは定義できるので、それでバックエンド毎にクエリのスキーマを定義すれば、利用者に対する説明にはなるのだが。しかし。

まだあまり検証が進んでないので結論めいたものは出せないし、実装するのは諸般の事情により大分先になると思うのだが、MongoDBのクエリ用にCatyスクリプトをコンパイルするコードはSQLへの変換並に気が重い。

2010-11-26 

おいこれかなり凄いことが書いてあるぞ。

協調性があること。漠然とした制作意図から自分で設計を進められる人

つまりこういうことか。

デザイナー
ラスボスは軍人っぽい感じで。アルゴリズムとかは好きにして。
プログラマ
じゃー好きにやりまーす。
出来た代物
カイザーナックルのジェネラル
プレイヤーの反応
どうしてこうなった。

以下、割と真面目な話。

ソフトウェアにおいて自然言語で伝える設計にはある程度漠然とした部分、曖昧な部分が出るのは仕方がない(だから形式手法の研究とかが長年続いてる)。また、そういった問題への対抗策を用意せずに設計者と実装者を分けるとろくな事にならないのだが、何故か結構な数のソフトウェア開発プロジェクトでは、無闇矢鱈と設計者と実装者を分けて悲惨な事になっていたりする。

そのただでさえ曖昧さの排除が難しいソフトウェア設計の、さらに源泉となる制作意図が漠然としているというのは相当な問題ではないのか。漠然とした制作意図からは、どんなとんでもないものが出て来ても不思議ではない。そして同時に、後でどんなちゃぶ台返しが待っているかもわからない。怖すぎる。こんな求人出されたら、その会社の開発部門の上層部が無能だとしか思えない。

ってか俺は曖昧な意図というか指示の元でR&Dやって不毛な時間を過ごした事があってだな。