就職してました

この記事はpyspa Advent Calendar 2017の5日目の記事です。
前回もpyspa Advent Calendarでした。
きっとこのブログはきっとpyspa Advent Calendarの更新のためにあるんでしょう。

プライベートのゴタゴタが重な2015年からニートのようなフリーランスのような生活を送っていたのですが、ひと段落ついたため今年の初めから BASE 株式会社PAY.JP チームにいます。




ほぼチーム最年長として、こんな感じで昼過ぎまで寝ていたり体調崩したりいらん波風立てたりしながらも働いています。

周りにはpyspaの人をはじめどこかで見たような人も多いですし

半年ちょっとですが「(……神か何かかな?)」って思えるようなもりよしさんと働けたのはとても勉強になりました。

それなりに居心地が良くて多少は貢献もできていると思うので、もうしばらくは働くのではないかと思いますが予定は未定です。

オンラインTCG(トレーディングカードゲーム)の歴史

この記事は pyspa Advent Calendar 2015: 12/6 分の記事です。
ソーシャルゲーム業界の雄Cygamesshadowverseを発表したことにより話題となっているオンライントレーディングカードゲーム(以下TCG)ですが、その歴史は意外と古くもう15年以上になります。
shadowverseがどのようなゲームを元に作られているのか、Cygamesが今まで作ってきたようなソーシャルゲームとは違うオンラインTCGの歴史を最初期から現在に至るまで順を追って見て行きましょう。


全てはここから始まった (MAGIC: The Gathering)


http://mtg-jp.com/img_new/logo.jpg
http://gatherer.wizards.com/Handlers/Image.ashx?multiverseid=600&type=card


オンラインTCGの歴史と言いつつ一番最初に取り上げるのはMAGIC: The Gatheringです。
1993年に発売されたこのゲームが全てのTCGの元祖であり、発売から20年以上に渡ってTCGの最先端を走り続けています。
1ゲームのプレイ時間は50分と昨今のソーシャルゲームに比べると長いのですが、当時はテーブルトークRPGボードゲームなどもっと時間がかかるゲームが大半だったので問題にはなりませんでした。
TCGの基本となる要素の全てを作り出したと言っても過言ではないだけに語れることはいくらでもあるのですが、本題とかけ離れていきそうなので詳しくは述べません。
僕も18年前にMAGIC: The Gatheringに出会わなければ医者にでもなっていたことでしょう。


初めてのオンラインTCG (The Tresure of Genum:トレジャーオブゲノム)


http://www.4gamer.net/news/image/2004.07/20040722194509_4.jpghttp://bandainamcoent.co.jp/corporate/press/bandainetworks/news/img/nw_000098_5.gif

初めて日本でオンラインTCGの名に相応しいゲームが登場したのは1999年。ちょうどNTTドコモiモードを始めた年であり、今日のMMO(大規模多人数参加型オンラインゲーム)の原型を作ったEverQuestが発売された年でもあり、まだインターネットが一般家庭に普及する前でした。
そんな1999年に開始されたトレジャーオブゲノムはデッキを組んで地図上のルートを決めると後は自動で移動したり戦闘したりしてくれるという仕様のゲームでした。他のTCGのようにプレイングの要素はありませんでしたが、当時の貧弱な環境でもストレスなく遊べることや、1日15分程度で良い手軽さ、漫画雑誌に広告を出したことなどによりユーザー数も多く、攻略本が出たり有志で大会が行われたりと人気をはくしました。
しかし新規プレイヤーを呼び込む有効な施策がなかったことや魅力的な要素の追加がされず既存プレイヤーも離脱を招いたことなどにより、2000年を過ぎた頃から下火となり2008年にはサービスが終了しています。


オンラインでも現実と変わらないTCGを (MAGIC ONLINE)


http://www.wizards.com/mtg/images/digital/magiconline/10_1_Update_Image_3.png


TCGはリアルでやるものだった2002年にMAGIC: The Gatheringを発売しているWizards of the CoastMAGIC ONLINEを開始しました。
これは現実のMAGIC: The Gatheringをそのままオンラインで行おうという実際に紙のTCGを発売している会社にしかできない何を考えているのかよくわからないゲームでした。
現実と等しいパックの価格デジタルなカードを紙のカードと交換することよりその価値が担保されるシステムトレード機能の実装など昨今のオンラインに特化したTCGでは行えない特有のシステムが盛りだくさんのこのゲームはMAGIC: The Gatheringユーザーの受け皿や入り口として、オンラインに特化できないが故の不自由さや面倒さ(リアルと同じく1ゲーム50分、大会だと3時間から半日以上拘束されます)をはらみつつ今日に至るまで多くのユーザーにプレイされ続けています。
MAGIC ONLINEの成功の後に遊戯王ONLINEなど現実のTCGでオンライン化したものが幾つかあります。
ですが、残念ながらMAGIC ONLINE以外の現実のTCGをオンラインでもやる取り組みは成功していません
またそれらのゲームも紙のカードとの交換などのシステムは採用していなかったということがいかにMAGIC ONLINEが特異かということを物語っています。
なお最近は紙のTCGQRコードを付与することにより紙のカードをデジタルでも扱えるオンラインTCGが出て来ているのですが、そもそもそれらのTCGは現実のカードの売り上げがいまいちなのでオンラインと紙を共通にすることに意味があるのかどうかはよくわかっていません。


オンライン専用のTCGを行おうとした意欲作(Alteil - 神々の世界『ラヴァート』年代記)


http://www.alteil.jp/alteil/rule/gide/img/gideimg/g_03_09.jpg


MAGIC ONLINEによりオンラインTCGと言っても現実のTCGをオンラインでやるものだと思われていた2003年にAlteil - 神々の世界『ラヴァート』年代記はサービスを開始しました。
カードを引かずに最初から全てのカードが(条件さえ整っていれば)使用可能なデッキ毎ターン増えるリソースランダムな要素がふんだんに含まれるカードなど、現実のTCGでは行えないようなデジタルならではの要素が満載で、オンラインに特化したTCGというもののあり方を最初に示したゲームとなっていました。
また1ゲームにかかる時間も10分から20分とソーシャルゲームと比べるとまだ長いですが、オンラインゲームとして負担にならない程度の時間となっています。
Alteil - 神々の世界『ラヴァート』年代記の要素を取り入れたゲームはその後いくつも作られており、最近日本でもリリースされたマビノギデュエルはその直系と言っても良いでしょう。
2008年には【Alteil II 〜銀陽帝大戦】アルテイル2も開始されAlteil - 神々の世界『ラヴァート』年代記と共に現在でもサービスが続けられています。


デッキさえあればTCGたり得るのか(Warstorm)


http://calltoreason.org/wp-content/uploads/2009/07/warstorm_reduced.JPG


2008年の秋にデッキを組んだ後は自動で対戦される結果を見るだけという特異なオンラインTCGがサービスを開始しました。
warstorm.comという独自のサイトでサービスをしていたそのゲームは、2010年にFacebookにサービスを移すとFacebook Game流行の波に乗ってユーザー数と売り上げを拡大し一躍人気となりました。
デッキを組んだ後は、毎ターン増えるリソースで手札のプレイできるカードを左から順にプレイされるのを5分程度見てるだけという実にシンプルなゲームでしたが、自分でプレイしている訳ではないのにTCGをやっている感が凄くありました。
ソーシャルゲーム全盛の時代に生まれたゲームだけあって、1プレイの時間も短くチュートリアルも充実しているなど現代のゲーム事情にあった受け入れられやすい作りをしており、TCGソーシャルゲームっぽくするとこうなるのかと当時は非常に感銘を受けたのを覚えています。
またシステムを簡素にしているだけではなく選んだ陣営ごとに異なる専用のカード毎ターン最大まで回復し1ずつ増えるリソースなど後述のHearthstoneにも取り入れられている要素がいくつもありました。
そんなWarstormですが2010年に当時飛ぶ鳥を落とす勢いだったzyngaに買収された後、2011年にZyngaの業績不振のあおりを受けサービスを終了しています。


オンラインTCGの集大成(Hearthstone)


http://us.battle.net/hearthstone/static/images/media/screenshots/ss1-med.jpg


WORLD OF WARCRAFT TCGの開発者を中心に当初少人数で開発が始まったHearthstoneは2014年にオープンβテストが開始されると、オンラインに特化したストレスのないゲームシステムリッチな音声と演出1ゲームが5〜10分で終わる手軽さ繰り返されるカードの修正による卓越したゲームバランスで徐々にユーザー数を増やしていきBlizzard Entertainmentの主要なゲームの一つとなりました。
warstormでもあったような丁寧なチュートリアルや、MAGIC: The Gatheringブースタードラフトをオンライン用に再設計したようなArenaモードなど、今までのオンラインTCGから良いところを抽出した集大成となっていて、その結果2015年現在ではNo.1オンラインTCGの位置を不動のものとしています。
オンラインTCGでありながら運の要素が見た目より全然少ないことも相まってeスポーツとして賞金大会も数多く開かれており、オンラインTCGの歴史を変えたゲームと言っても過言ではないでしょう。
今後もshadowverseを筆頭としたフレーバーだけ変えてシステムを流用したHearthstoneクローンがいくつも出てくることが予想されます。
ソーシャルゲームで言うところのドラゴンコレクションパズル&ドラゴンズのようなゲームだと思っておけば間違いないです。


まとめ

そんな訳でオンラインTCGの歴史を振り返ってみた訳ですが、これは即ち僕がたどって来たゲームの歴史でもある訳で、こうして並べてみると無駄に費やした時間に感慨深いものがありますね。
今後もたくさんのオンラインTCGが生まれるのでしょうが、何はともあれ興味のある方はHearthstoneをやってみることをお勧めします。


今回の注意事項

  1. 海外のものはあまり追えていないので抜けている可能性があります。
  2. 取り上げているのはカードが主体のものですのでカルドセプト等は取り上げていません。
  3. アーケードカードゲームは僕の守備範囲外なので取り上げていません。
  4. 画像は各ゲームのサイトから引用させてもらいました。

Python プロフェッショナルプログラミングの第二版(Second Edition)

Python プロフェッショナルプログラミングが3年の時を経て改訂されました。
初版の執筆をした縁でレビューに参加したのですが、全般的に初版に比べてこなれています。
特に @feiz が書き下ろした 11章. 環境構築とデプロイの自動化 がとても良い内容だったので、サーバ構築や自動化を始めようとする人に激しくお勧めします。
あと黒歴史的にクソみたいだった14章のSouthの部分が @hirokiky の手でちゃんとしたDjango Migrationsの内容に変わっていて感動しました。

Pythonプロフェッショナルプログラミング第2版

Pythonプロフェッショナルプログラミング第2版

2/27発売らしいです。是非お手に取ってみてください!

猿でもわかるDjango1.7のmigration

さよならSouth
Django1.7からmigrationツールが含まれることになりました。
それにより1.6までは必須なツールだったSouthがお役御免となります。
詳しくはここを読んで欲しいのですが、面倒な方のためにSouthからDjango1.7への移行について簡単に書きます。


Southの場合

アプリケーションを作ったら

$ python manage.py schemamigration myapp --init

アプリケーションを変更したら

$ python manage.py schemamigration myapp --auto

プロジェクト開始時は

$ python manage.py syncdb

migrationの適用は

$ python manage.py migrate

と、幾つか覚えることがあったのですが


Django1.7の場合

アプリケーションを作ったら

$ python manage.py makemigrations

アプリケーションを変更した時も

$ python manage.py makemigrations

プロジェクト開始時は

$ python manage.py migrate

migrationの適用も

$ python manage.py migrate

と、makemigrations と migrate さえすればよくなっています。


こんにちはDjango1.7

makemigrations は schemamigration と違いアプリケーションを指定する必要がなくなりましたし (指定することもできます)
migrate は syncdb をしていない場合やってくれるようになりました。

Southで作成されたmigrationファイルもそのままmigrateできるので、1.6からの移行も問題ありません。

いやー実に簡単ですね。
それでは皆様Django1.7で、よいmigrationライフを。

転職しました

BeProudはとても良い会社でした
BeProudで2年半ちょい働いた訳ですが、3000行超のファイルを書いていたような人間が、他人のコードレビューができるようになるくらいには成長できました。
それもこれも一緒に働いた同僚のおかげですね。
こんな社会不適合社である僕が、素晴らしい同僚と働けた日々は光り輝いていて、共にいられた幸運にとてもとても感謝しています。
そもそもBeProudで働いてなければPyConのスタッフもやっていなかっただろうし、もっと仕事ができないままだっただろうし、色々と感慨深いものです。
ありがとうございました。


転職理由らしきもの
一緒に働いていた人達に不満はありません。
また経営陣(というか社長)に不満がある訳でもありません。
昔の上司で師匠だと僕が勝手に思っている人に戻って来ないかと誘われたのが直接の理由です。
間接的には下世話な話とか受託の話とかもありますけど、ここに書くことでもないので割愛させて頂きます。


現在
そんなわけで12/1からきざしカンパニーで働いています。
相も変わらず東京でPythonを書いているので、今までと変わらずお付き合い頂けると幸いです。

転職して4日が経った

前職は2年半で辞めたので、前職生活の約1/200を現職で過ごしたことになる。
以下略

PyCon APAC 2013 終わりました

チュートリアルデー
朝受付をやった後はそのまま仕事していました。
チュートリアル終了後は懇親会に参加した後、翌日の会場である工学院大学でタイムテーブルの打ち合わせ後に帰宅。


想定より多くの方が参加してくれたり、前々日に突発的に企画した懇親会に1/3くらいの方が参加してくれたりと初の試みにしては成功したのではないかと思っています。
講師を引き受けてくれた @ransui@tokibito 、当日の会場周りの作業を代わりにやってくれた@natsu_bmには感謝です。


初日
発表者用受付を手伝った後は、本部にずっといて細々とした作業をしたり寝てたりしました。
発表は何も見ていません。


夕方からはPartyの準備とか誘導とかをしてました。
Partyでは突発プレゼント募集企画でスポンサーに突撃したりしつつ疲労困憊なため途中で帰宅。
さすがに都庁の展望台は眺めが良いですね。


二日目
基調講演を聞いた後で子供が熱を出したため帰宅。


三日目
Sprintにも参加せずに寝てました。
それなのに、翌日も寝坊したのは秘密です。


感想とか
「楽しかったー」って言うよりは「終わったー」「疲れたー」って感じでした。
今年ちょっと頑張り過ぎました。
カンファレンス当日は置物だったけどね!
去年も言ったけどプログラム担当はもう良いかなって思います。


あれだけキャンセルがあったのにプログラムに一つも穴が空いてないのは急遽講演をしてくださった皆様のおかげです。
本当にありがとうございました。


胃が痛くなたり食欲がなくなったりしつつも穴を埋めるために奔走した僕のことも少しは讃えてくれて良いんだからね!