blog.risouf.net

YAPC::Kansai 2017 Osaka の記録、あるいは最近の YAPC について考えていること

行ってきた。

YAPC::Kansai 2017 Osaka

感想

箇条書きで。

自分のトーク

高速化の初歩 というタイトルで20分枠をいただいて話をしてきた。

トークすることになった経緯

そもそも、話すネタもないしプロポーザルを出すつもりなんて一切なかったのだけど、締め切りが数日後に迫ったある日、 moznion 君に「YAPC 行くんですよね? 僕、キャッシュの話で応募したんですよ。 risou さん何か話さないんすか? Perl 6 とか」みたいなことを言われたのがキッカケ。
(結局 Perl 6 とは全然関係のない内容になったのだけど、今でも Perl 6 ネタを振ってくれる人がいて、嬉し恥ずかし)

まあ枠が埋まらないことはないだろうけど、「応募したけど採択されなかったわー」ってつまらない自尊心を満たしとくかーと思って、ネタを考えて応募した。そしたら、何を間違えたか採択されてしまった。きっと採択されなかったトークの中には、僕が聞きたいトークもあったと思う。

トークの狙い

とはいえ、トークの内容はちゃんと考えていて、今回のトークは「初心者向け」のものとして用意をした(セッションの最初にも念押しした)。僕が初心者向けのトークをするのにはいくつか理由があって、

というのが主な理由。特に重視しているのが1つ目。

YAPC は例年レベルの高いトーク、その時々のトレンドを扱ったトークが多くあり、毎回満足度が高いのだけど、一方で「これからプログラマ/エンジニアになりたい」「最近、技術に興味を持った」人向けのトークってそんなに多くないイメージがある。しかし、おそらくどんな専門技術についても言えることだと思うが、新規参入者への間口は広い方が良い。 YAPC で初心者向けのトークをやるというのは、そういった層にたいして「あなた方もこのカンファレンスのターゲットなんですよ」という意思表示になると思っている。

端的に言えば、学生や現在別業界で仕事をしている人たちをターゲットにしたトークをしたかった。

これにはもう一つ理由があって、あわよくば技術に興味がある将来有望な人を採用したいという気持ちがある。優秀なエンジニアの採用はなかなか難しくて、その一番の理由は母数の少なさにあると思っている。将来の優秀なエンジニアを大切にしていくことは、業界にとっても会社にとってもメリットのあることだと思うので積極的にやっていきたい、という思惑もある。
(そういう意味で Perl 入学式は圧倒的に成果を出している素晴らしい勉強会だ)

そういう狙いでトークを構成したので、同僚や現役のエンジニア、CPAN Author が聞きにくることを一切想定していなかった。

トークの結果

当日、小さい部屋ながらも立ち見がでる程度には聞きにきてくれた方がいて、とても嬉しかった。あのトークで得るものがあったという人が少しでもいれば幸い。

ただ、中には先程書いたように完全に想定対象外の CPAN Author たちがいて、有名な @dankogai さんまで何故か聞きにきてくださっていた。その結果、以下のようなツイートが為されるような展開になってしまった。
(言い換えれば dan さんにトーク中にツッコまれるという実績を解除したとも言える。めでたい?)

risou さん、Dan the interruptionにめげずに頑張っててすごい #yapcjapan #yapcjapanB

— songmu (@songmu) 2017年3月4日

risouさんのDanさん捌きが凄すぎる #yapcjapan

— songmu (@songmu) 2017年3月4日

発表後から懇親会にかけて、僕のトークについて話しかけてくれる人のほとんどが dan さんの話に言及していたので、結局僕のトーク自体に関する感想はほとんど得られず、良かったのか悪かったのか全然わからなかった。

もし誰かの役に立っていたのなら、次回以降も初級レベルのトークを応募していきたい。

最近の YAPC

昨年の北海道から国内で開催されている YAPC については、一昨年までの YAPC とは運営のメンバーが全然違う。そのせいか、結構運営方針の違いみたいなのを感じている。以下に僕が今の YAPC について思っていることを列挙する。

ただの不満みたいになってしまったが、批判する意図もないし改善を要求するつもりもない。たぶん僕みたいに思ってる人はほとんどいなくて(そういう発言をしてる人に会ったことがないので)、僕だけが気にしてることだと思うので、こういうマイノリティがいるっていうことを表明しておきたいだけ。

2017-03-07 01:54:10.132764 JST

Tweet $B$3$N%(%s%H%j!<$r$O$F$J%V%C%/%^!<%/$KDI2C(B

ボドゲプレイヤーたちへの「のびのびTRPG」の紹介

はじめに

この記事はボドゲ紹介02 Advent Calendar 2016の18日目の記事です。投稿日がおそらく19日になっているかと思いますが、プライベートでゴタゴタしたためであり、閲覧者の端末に何かしらの異常があるわけではありません(遅れてごめんなさい)。

気軽にTRPGを楽しめるカードゲーム「のびのびTRPG」

最初にとってもイカす公式サイトへのリンクを貼っておく。

のびのびTRPG

現代においてはマイナなジャンルと言えなくもない TRPG について簡単に説明をしておく。 TPRG というのは紙と鉛筆、サイコロなど(それに準ずるもの)を使って、ルールブックに書かれたルール(制約)の中で対話しながら進めていく RPG だ。多くの TRPG はルールとともに世界観がある程度描かれており、その世界観の中で「ゲームマスター」が用意したシナリオを進めていく形式をとっている。ゲームマスターはストーリーを用意したり、プレイヤーの動きを(ルールにあわせて)判定する役割のプレイヤーである。他のプレイヤーはゲームマスターの用意したシナリオを進めていくためのキャラクタを用意して、そのキャラクタを動かすことでロールプレイングする。

読んでいて「複雑そうだな」とか「面倒そうだな」という感想を持たれる方も少なくないだろう。 TRPG は楽しいけれど、準備がそれなりに大変だったりするのだ。今回紹介する「のびのびTRPG」は先に説明したような TRPG と違い、初心者でも簡単に楽しむことができる、まさに入門の入門という言葉が似合うゲームとなっている。

やることは簡単、カードを引いて隣のプレイヤーが解決するだけ

「のびのびTRPG」には固定のゲームマスターは存在しない。プレイヤーが順番にゲームマスターの役を交代して行うのだ。ゲームマスターといっても、このゲームにおいては難しい知識などは求められない。山札のカードを1枚引いて、カードの内容によっては成否を判定するだけだ(この判定はゲームマスターの独断と偏見でかまわない)。

ゲームマスターの隣(次)のプレイヤーは、ゲームマスターが山札から引いたカードに書かれている内容を解決する。解決方法には2種類あり、カードに達成すべき数値が書かれていれば、サイコロを転がすだけで良い。そのプレイヤーが担当している(プレイしている)キャラクタのステータスとサイコロを転がして得た数値によって、目標数値に到達したかどうかが決まる。結果は誰が見ても一目瞭然だ。

達成すべき数値が書かれていないカードであれば、プレイヤーは即興でロールプレイをすることになる。たとえば「仲間たちを奮い立たせる」といったことが要求されるので、自分なりにそれを演じてみれば良いのだ。その演技が一般的に良かったかどうかはなんの意味ももたない。ただゲームマスターが OK を出せば成功なのだ(そして NG を出されれば、どんなに良い演技でも失敗となる)。

道中で詰むことはない

実はプレイヤーが成功するか失敗するかは、ゲームクリアにはあまり大きく影響しない。というのは、成功しても失敗しても得るものがあるからだ。成功したら光カードを引き、失敗したら闇カードを引く。どちらが良いということはなく、どちらにも自分たちを強化してくれるカードはあるし、「なんだこれは……」と思うようなカードもある。

ちなみにオンラインマニュアルには、光カードの説明に「いいかんじの特徴がつき、強くなる」と書かれており、闇カードの説明には「おかしな特徴がつき、おもしろくなる」と書かれており、必ずしもプレイヤーたちにマイナスの効果ではないこと(あと作者の説明のふわっとした感じ)が読みとれる。

のびのびTRPGオンラインマニュアル

ロープレは助け合いだ

ゲームマスターと問題を解決しようとしているプレイヤー以外の参加者たちが暇になるということはあまりない。プレイヤーが問題を解決しようとするとき、他のプレイヤーたちは各々のキャラクタのスキルや、それまでの冒険で得た光カード/闇カードを使ってプレイヤーを助けることができる。

それぞれのキャラクタには得手不得手があるし、物語を構築していく上でもキャラクタ同士の絡みは必須といえる。「のびのびTRPG」は非常に簡単化されたゲームシステムながら、 TRPG の楽しみに必要な機能をしっかり持っているのだ。

わかりやすいオチがある

プレイしていくと、最後にはクライマックスと呼ばれるボス戦のようなものがある。クライマックスカードという、最後に起きるイベントが書かれたカードが何枚かあり、その中の1つを引いて、その問題を全員で解決するのだ。クライマックスは皆でサイコロを振って合計を一定の数値以上にすればクリアできる。クリアできるかどうかはダイス運に左右されるが、クリアできなかったとしても物語はちゃんと終わるし特に問題はない。

カードに書かれていないことを妄想しよう

各種カードには様々なイベント、現象が描かれている。とはいえ、それだけでは骨でしかなく、肉付けはプレイヤーたちによって行わなければならない(必須ではないがその方が絶対に面白い)。何かを探す旅をしていたと思ったら、気がついたら借金取りに追われる生活をしていたりする。その間を面白く埋められると、爆笑必至のストーリーができあがったりする。

「のびのびTRPG」は、プレイの結果面白い物語が構築できればその話を肴に旨い酒が飲めるという、プレイ後の飲み会のことまで考えられた素晴らしいゲームなのだ。

2016-12-19 02:15:55.866418 JST

Tweet $B$3$N%(%s%H%j!<$r$O$F$J%V%C%/%^!<%/$KDI2C(B

同人誌・同人ゲームの世界を体験するカードゲーム「王たちの同人誌」

この記事はボドゲ紹介02 Advent Calendar 2016の16日目の記事です。投稿日がおそらく19日になっているかと思いますが、プライベートでゴタゴタしたためであり、閲覧者の端末に何かしらの異常があるわけではありません(遅れてごめんなさい)。

「王たちの同人誌」というゲームをご存じだろうか

「王たちの同人誌」という同人カードゲームがある。今現在、入手可能かどうかはわからないが、ルールも複雑でなく、手軽に遊べるアナログゲームだと思うので、ボドゲガチ勢じゃない人たちに紹介したい。

ひとまず、恰好良い公式ページを貼っておこう。

王たちの同人誌

「王たちの同人誌」はフェイズ制カードゲームである

このゲームには2つのフェーズが存在する。原稿フェイズ即売会フェイズだ。イメージができる経験者各位は、もし冬コミの原稿が終わっていないようなら、こんなものを読んでないでさっさと原稿に戻ってくれ。

ぜんぜんわからないという人向けに簡単に説明すると、即売会というのは趣味で本やフィギュア、ゲームなどを作っている人たちが集まり、自分の作品を頒布するイベントのことだ。即売会で自分の作品を頒布するためには原稿を完成させる必要がある。

カードゲームなので、いずれのフェーズでもプレイヤーは順にカードを引き、ときにはひっくり返したり、他のプレイヤーに押しつけたりする。

このあたりのルールや雰囲気はオンラインマニュアルを見て感じとってもらえれば幸いだ。

王たちの同人誌 オンラインマニュアル

「王たちの同人誌」に同人誌や即売会の知識は必要ない

オンラインマニュアルを軽く見てくれた方はもうわかってくれていると思うが、このゲームに専門的な知識や経験は必要ない。このゲームは、より高い得点を求めてカードをやりくりする、その点においては特段珍しいカードゲームではないと思う。

カードには同人カードイベントカード切札カードの3種類がある。

同人カードには同人誌の内容を示唆するキーワードがちりばめられており、同時に得点を示す数値が2つ書かれている。カードを取得したときにはプラスの得点を参照することになる([光]のカード)のだが、ゲームを進めていくうちにカードをひっくり返す(上下を逆にする)必要がでてくる。ひっくり返ったカードはマイナスの得点を参照することになる([闇]のカード)。たとえば、最も高い得点を誇る「18禁」というカード(頒布するの同人誌が18禁であることを示唆する)は+8点という強力なカードではあるが、このカードがひっくり返ってしまうと-8点という絶望的なカードに変化する。

イベントカードは即売会フェーズにおいて、同人誌の頒布を有利にしたりトラブルを発生させたりする愉快なカードだ。原稿フェーズでは順調に事が運び高い得点を揃えていたプレイヤーも、イベントカードの不条理によって身を滅ぼす危険がある。それぞれのカードに書かれているイベントは即売会経験者なら誰もが頷くあるあるばかりで、たとえば頒布する予定の本が会場に届かなかったり、頒布時にスムーズに金銭のやりとりを行うためのお釣り(小銭)が足りなくなったりする。経験者であれば思い出すだけで冷や汗がでてくるようなイベントがプレイヤーの精神と得点を削ったり、時には回復してくれたりする。

切札カードは、ゲーム開始時に各プレイヤーが1枚ずつ所持し、即売会フェイズにて利用できる必殺カードだ。中にはルールを変えてしまうような強力なカードもあり、使い方次第ではあっさりと逆転できてしまう。切札がある限り諦める必要はなく、油断してはならない。

「王たちの同人誌」は想像して楽しむゲームだ

このゲームの本当の目的(楽しみ方)はおそらく勝利することではない。

プレイしていくうちに、勝利を目指すよりもプレイヤー同士で笑えるような面白い組合せの同人誌を作りたくなってくる。たとえば、「幼女がでてくるちょっとえっちなコメディ」という同人誌を作ることができる。組合せが上手くいくと楽しい。しかし、油断してはならないのだ。「コメディ」のカードがひっくり返ってしまうと「筋肉」に、「幼女」のカードがひっくり返ってしまうと「おっさん」になってしまう……! 「おっさん」「えっち」「筋肉」……どんな同人誌なのだろうか。想像しない方が良いかもしれない。でも、ちょっと無茶でも想像すると楽しいかもしれない。

どうせ組合せは自由にはならないのだ。手元に来たカードがどんな同人誌になるのか、想像してみると楽しいと思う。そしてそれをプレイヤー同士で共有するのだ。きっと楽しい一時が過ごせるだろう。

2016-12-19 01:31:46.193607 JST

Tweet $B$3$N%(%s%H%j!<$r$O$F$J%V%C%/%^!<%/$KDI2C(B

興味の再確認と不思議な縁 (builderscon tokyo 2016 ログ)

builderscon に行ってきました。この手の技術カンファレンスに参加するのは(同種の勉強会を除くと)5ヶ月ぶり。

builderscon とは

builderscon tokyo 2016

builderscon は、サイトの情報を抜粋すると以下のようなイベントと言えます。

さらに個人的には、「昨年まで YAPC::Asia の運営の中心にいた人たちが主催する技術カンファレンス」という要素もあり、カンファレンス自体のクオリティ、採用されたトークのクオリティには一定の安心感がありました。

一応最初から懇親会の終わりまで参加していましたが、印象に残ったトークについて記録を残しておこうと思います。

今の自分にはちょっと遠い、印象に残ったトーク

人工知能によってプログラムを有機化する

ゲーム AI って一言でいってもいろいろあるし、どんな話になるのかあまり想像がつかなかったので、良い意味で期待を裏切られた感じになりました。ここ数十年のゲーム AI の進化について、結構メジャなゲームを実例に説明してただけたのはとてもわかりやすかった。参考にされた FPS は全部プレイ経験あったし、いくつか入れ込んでるものもあったので、親近感もありましたね。あと、最後に質問させていただいたのだけど、 AI に学習能力をつけていくとゲームデザイナのコントロールできる範囲におさまらなくなるというのは面白い話でした。

実は学生時代ちょっとだけゲームの AI 開発をやっていたことがあって、ゲーム業界で A* が使われるようになったという頃、僕も A* 使った実装してたりしたので、懐しさもあってとても良かった。僕は結局ゲーム業界にはいかなくて、当時の後輩たちが何人かそっちに行ったけど、あれからもう結構経っているので今その分野では僕は太刀打ちできないんだろうなあとも思うのだけど、時間に余裕ができたらまた AI 関連はやってみたい。

そろそろプログラマーもFPGAを触ってみよう!

今徐々に流行りつつあるらしい FPGA のトーク。最近は個人でも購入できる価格帯のものが増えてきているようで、これから FPGA の時代がくるというのも信憑性がありそうだな、と思ったり。 FPGA の得手不得手や競合との比較など、初心者にわかりやすい内容だったと思います。

僕は研究室時代、縁あって FPGA を少しだけ触っていた(VHDL を使っていた)こともあって、こちらも懐しさがあり。自分の研究は GPU の方だったけれど、当時 GPU (これは僕しかやってなかった気がするけど)も FPGA もやってた研究室の教授たちの先見の明には驚かされます。

面白かったトーク

OSS は Windows で動いてこそ楽しい

まさに普段 Twitter で目にしている mattn さんのトークだとすぐにわかる、面白いトークでした。内容もさることながら、 Vim 愛や絶妙なタイミングで挟まれる親父ギャグなど、聞いていて心地良かったです。

Bluetooth キーボードの作りかた

US 配列でセパレートタイプの無線キーボードを自作する話。キーボード好きとしては惹かれるトークでした。自作するコスト(個々のパーツの値段や切削加工機の値段など)など参考になったというか、挑戦するには覚悟が必要そうだなーと思ったり。使ってるパーツ的に押し心地は Ergodox EZ と同じっぽい(軸が何かわからなかったけど)。僕は静電容量無接点方式のキーが好きなので、その点でも自作はハードルが高いなあ。

懇親会

食事がいっぱいあって、満腹になりました。あと、ケーキおいしかったです。

2016-12-04 23:58:06.988162 JST

Tweet $B$3$N%(%s%H%j!<$r$O$F$J%V%C%/%^!<%/$KDI2C(B

朝4時、僕たちのミッションはもう来ない

Pokemon GO が世間を賑わせている。
僕もひとまずインストールして、ユニーク制約があるというプレイヤー名の入力まで辿りつき、無事 "risou" をゲットした。

ところで、位置情報ゲームといえば、僕はあるゲームを思い出す。 そのゲームは、今年の初めにサービスを終了してしまった。

このゲームがリリースされたのは4年以上前のことで、サービスの稼動期間は4年に少し満たないくらいだったと思う1。 僕はサービス開始日から一日も欠かさずプレイしてきた。 結局4年ではクリアすることはできなかった2

僕はあまり頻繁に旅をする人間ではないし、このゲームのためにわざわざ普段行かないところに足を伸ばすということもなかった。用事のついででプレイする程度だったが、それでも4年間で数百あるエリアの9割は制覇できた。というのも、このゲームにはプレイヤー同士で協力する機能があったからだ。自分が足を伸ばすことのできないエリアでも、そのエリアにいるプレイヤーの助けがあれば、時間はかかるが制覇できるしスコアも得られた。お互いに協力しあうことで、僕たちはクリアに向けて少しずつ着実に前に進んでいた。

またこのゲームではエリアの制覇を促すために、毎日1つ〜5つのミッションが送られてきた。ミッションには達成期限の他に受領期限もあったため、僕はプライベートで使っているチャットに常駐させているボットに「ミッションを受領する時間」を通知する機能までつけていた。夜更かしをして朝4時まで起きていた日は、寝る前に通知を見て、アプリを起動していた。むしろ通知によって「もう4時か……」という気分になっていた。

サービス終了に伴い、ミッションの通知機能を削除するコミット

サービス終了に伴い、ミッションの通知機能を削除するコミット

このゲームにも課金要素はあった。エリアの制覇やスコア獲得を促進したり、体力を回復したり……。しかし、記念の日などになると本来は課金して購入するポイントも幾分か貰えたし、アイテム自体もミッションをこなす中で稀に貰うことができたため、結局僕は全然課金しなかった。課金はランキングに名前を載せたい人向けのものだと思っていた。他にもそういう認識のプレイヤーは少なくなかったのかもしれない。僕はそのゲームを楽しむために必要なら少々の課金は躊躇わないつもりだったけれど、「サービス維持のために必要なものを買う」ことで僕自身のゲームの楽しみ方が毀損されることは望んでいなかったので、課金しなかったことに後悔はしていない。

僕にとってはここ数年で一番遊んだ、もうプレイできないゲームだ。今でもアプリを消さずにいる。最近ようやく、癖でアプリを起動してしまうことがなくなった。


  1. 実際には入院等でプレイできなかった日があったかもしれない。

  2. このゲームの目的はエリアの制覇とスコアの獲得だったため、ここでは全てのエリアを制覇し、かつ一定のスコアを獲得することをクリアと称する。

2016-07-25 01:55:46.832628 JST

Tweet $B$3$N%(%s%H%j!<$r$O$F$J%V%C%/%^!<%/$KDI2C(B