忙しいのもほんのちょっと緩和した。あと慣れてきた。と思ったんだけどそうでもないな。平日頑張りすぎて土日死亡なのはかわらなかった。土日休みなだけいいんですけど。
日曜日は寝過ぎて逆に疲れてしまった……。忙しいなら忙しいなりに生活リズムを整えないとなぁ。とにかく朝飯を家で食うようにしないとちゃんと起きない。
発売日に買って未開封のまま4年程積んでたアサシンクリードを今月頭の土日から進めてやっと終わった。土日しかできないとはいえなげーよ。
技術的にはいろいろ凄いんだが、ゲームはクソゲーというなんとも残念な感じ。街が広くて最初歩いてるぶんには楽しいんだが、移動がめんどいと感じるまでも早くて同じ街で3ステージずつもあるもんだから最後はもうめんどくて仕方がない。まあ屋根の上をひたすら走っていけばいいんですけど。
移動がめんどいうえにマップがすごいわかりづらくて困る。ミニマップはカメラの向きが上になってくれるのでわかりやすいが街の道路が出てないので目標にどうやって行けばいいかがわからん。ポーズをしてフルマップを出すと道路も出てくれるが、常に北が上でキャラの向いてる方向に矢印が出てくれる。しかしカメラの向きとキャラの向きは一致しないんで何度もポーズ解除してにらめっこしないとミニマップでの位置とフルマップでの位置が対応しねーんだよ。これは厳しい。
ゲームは基本的には数種類のミニゲームをいくらかこなしたあとボスと斬り合いするだけだからなー。後半はお邪魔キャラがめちゃくちゃ増えてくるだけというめんどくさい仕様。
最初は楽しいがステージがループする中盤以降はひたすらめんどいゲームだった。いや、中盤以降基本全部のミッションこなしてたから大変だったのかな。最低限のミッションだけこなして進めちゃえば早かったのかもしんない。
ステージ進む度に成長と言っても戦闘スキルしか貰えないんで操作難しくなるばっかりであんまり嬉しくないんだよね。単調だって指摘は当時から出てたらしいんだが続編はどうなってるんだろう。ストーリーはまあ好きで最後ぶちっと切れるし続きは気になるんだがこのめんどいゲームまたやるのはしんどい。
洋ゲーらしい大作をやったので日本のゲームもちょっとやりたかったが、ある程度大作らしいものとなると特にやりたいの思いつかないな。Steam見てたらRAGEが日本語版も入ってるようだったんだが、難易度高そうな話なので俺にはちょっと厳しそうな気もする。動作環境は微妙。あとこれ結局Mac版出てないのな。ていうか日本のゲームじゃないじゃん。
Steamで思い出したがSteamは日本語のゲームだけ検索ってできないんだよな。数は少ないだろうがあると嬉しいんだが……。
irpackで作ったexeを日本語混じりのパスに置くとエンコーディング関係のエラーが出るなぁと思ってたんだが、irpackでなくIronRubyの問題だった。
#C:\新しいフォルダー にて
p Dir.pwd # => "C:/\u{65b0}\u{3057}\u{3044}\u{30d5}\u{30a9}\u{30eb}\u{30c0}\u{30fc}"
p Dir.pwd.encoding # => #<Encoding:UTF-8>
p 'foo.rb'.encoding # => #<Encoding:US-ASCII>
require 'foo.rb'
p $".last.encoding # => #<Encoding:US-ASCII> (あれ、#<Encoding:UTF-8>じゃないの?)
p $".last.valid_encoding? # => false (ですよねー)
p $".last # => character U+65B0 can't be encoded in US-ASCII (Encoding::InvalidByteSequenceError)
# (C:/\u{65b0}\u{3057}\u{3044}\u{30d5}\u{30a9}\u{30eb}\u{30c0}\u{30fc}/foo.rb"が出るべき)
こんな感じ。C:\新しいフォルダー
にbar.rb
をつっこんで上記のスクリプトを実行すると最後InvalidByteSequenceErrorで落ちる。
$".last
にはC:/新しいフォルダー/bar.rb
がUTF-8
で入っているべきなんだが、なぜかUS-ASCII
で入ってる。まあ上のコードでわざわざ’bar.rb’のエンコードを表示してることからもわかるとおり、requireに渡した文字列のエンコーディングを継承してる。しかし途中で絶対パスに展開してるのにパスのエンコーディングを無視して渡された文字列のエンコーディングをそのまま継承しちゃいかんべ、という問題だった。
いや上の例だと表示しようとして落ちてるんだが、普通$"
を表示しようとなんかしない。しかし次に何かrequireしようとするともう読み込み済みだっけかな?と$"
調べ始めてやっぱりInvalidByteSequenceErrorを投げるのである。日本語混じりのパスからrequireした時はまだ問題無くて次に何かrequireすると落ちるってので性質が悪いわな。
さて報告めんどいな。と思ったんだが上のコード貼ってそのまま報告すりゃいいのか。英語はわからなくてもRubyはわかる。Rubyは世界の共通言語!コードで語れ。
というわけで報告はしておいた。報告はいいんだけどIronRubyは報告しといたら誰かが直してくれるなんて甘い世界じゃないので自分で直さないといけない。というか手元ではもう直してあるんだが、githubでpull requestとやらを送らないといけないんだよな。作法とか操作がわからなくて困るなぁ。とはいっても一回やってみてわからんよね。
土日にやろうとしたが(俺が)ほぼ死んでたのでできなかった。本読んでゲームやって本読んだだけで休日二日終わったよ……。