はてなブログに移ってきました

事実上は開店休業状態なのですが、そのまま放置してしまうのも心苦しい感じがしておりまして、『はてなダイアリー』から『はてなブログ』へ移行してきました。

 

何があるというわけではないのですが、もう少し真面目に運用していきたいものですね、、、

 

別件になるのかもしれませんが、いろいろとやりたいことも出てきておりますし、また頑張って生きていこうと思いますので、よろしくお願いたします。

iQOS を買いました

興味はあったものの、品薄でなかなか手に入らなかった iQOS ですが、先日知人の紹介で買うことができました。
iQOSを手に入れるまでは、マルボロゴールド 100's を日に20本程度吸っていたのですが、iQOSを手に入れてからは慣れるためにも極力iQOSを吸うようにしています。
おおよそ日に2〜3本程度紙巻たばこを吸って、15本程度iQOSのヒートスティックを吸うというペースといった感じだと思います。
全体的な本数は、iQOSにして少し減ったのかな?といった感じです。

iQOSを使い始めてみてちょうど1週間になるのですが、せっかくなので少し感想を書いてみたいと思います。

独特の後味にはなかなか慣れない

当然個人差があるものだとは思うのですが、ヒートスティックを吸っているときの芋を燻したような独特の後味には、なかなか慣れることができませんでした。
最初は、王道であろう"REGULAR"とサンプルで貰った"SMOOTH REGULAR"を交互に吸っていたのですが、どうにも独特の後味に違和感があって、結局全種類のフレーバーを試してみることにしました。
フレーバー毎に味わいの違いは感じるのですが、あの独特のいぶした芋っぽさってのはどのフレーバーにもついて回るものなんですね...
吸っているうちに慣れてしまうものなのかもしれませんが、結構癖が強いのでだめな人はだめなのかもなぁ...
1週間ほど吸ってみて多少は慣れてきたと思うのですが、まだ違和感を感じてしまいます。

"MENTHOL"は、メンソールの味が強くて一番芋っぽさを感じにくいので普段からメンソール系のタバコを吸っている人には良いと思うのですが、そんなに強いメンソール感は私には要らないんですよね...
"MINT"は、メンソール感はスッキリとした味わいで割りと吸いやすく感じました。

暫くの間は、いろいろなフレーバーを試してみるつもりなのですが、なんとなく"MINT"と"SMOOTH REGULAR"を気分によって使い分けるというスタイルに落ち着きそうな気がしています。

最初は気持ち悪く感じた

ヒートスティックには、タール/ニコチンの含有量が記載されていませんが、以外にニコチンが強いんじゃないかと感じました。
普段吸っていた紙巻きタバコはマルボロゴールドで、タール6mg / ニコチン0.5mgなのでそれなりに強い部類に入るタバコだと思っていたのですが、最初に数本吸ったあとは、ヤニクラというか少し気持ち悪くなってしまいました。
意外にニコチンは多いんじゃないのかなぁ

タバコを吸っている感は十分にある

最初は「ちょっと物足りないかな?」「(連続して)もう一本吸いたいかな?」とも思いましたが、少し慣れてくると吸い足りない気分はあまり感じなくなりました。
紙巻たばこを吸っているときには、結構な頻度で連続吸いをしていたので、1回数ごとに充電が必要になるiQOSには物足りなさを感じるんじゃないのかと懸念していましたが、吸えなければ吸えないなりに満足できてしまっているようです。

紙巻きタバコに比べて匂いが少ない

iQOSのメリットと言えば副流煙が出ない点とか、紙巻きたばこと比べて匂いが少ないという点が上がると思うのですが、これには期待以上の成果を得ることができました。
紙巻たばこを吸っていたときにはベランダに出てタバコを吸っていたのですが、家族と交渉して一度家の中で吸わせてもらいました。
最初は、換気扇の下で吸ってみたのですが、2〜3m離れた場所に座っていた家族からは「もう吸い終わったの?」と言われるほど匂いが気にならなかったようです。
そして、何回か試してみた結果、換気扇の下ではなく試験的にリビングでも吸ってみても良いということになりました。
しばらく試してみて匂いが気になるようだったらまた相談ということになったのですが、紙巻たばこのときには換気扇の下ですら吸わせてもらえなかったことを考えるとこれは革命的な出来事です。

紙巻たばこを吸うとオイル臭く感じるようになった

iQOSの独特の後味に慣れず、紙巻きたばこのほうが良いんじゃないかと思ったりもして、日に何回かは紙巻たばこを吸っているのですが、今まで気にならなかったタバコの臭いが気になるようになってきました。
燃えた紙の匂いなのか、オイル臭いっていうのか...
あんまり美味しく感じなくなったというか...以前よりも紙巻たばこを楽しめなくなってしまったような気がします。

まとめ

1週間程度だと、あの独特の後味にまだまだ慣れませんね...
とはいえ、家の中でも気軽にタバコを吸えるというのはとてもメリットに感じています。
暫くの間は iQOS 中心のタバコライフを過ごしてみたいと思いました。

RDS の mySQL で日本語が文字化けて困った時の対応方法


RDS に作成したDBで日本語を格納しようと思ったのですが、以下のように日本語が文字化けてしまいました。

mysql> select * from SeriesData;
+----------+------------+
| SeriesID | SeriesName |
+----------+------------+
|        0 | ???        |
|        1 | ????       |
+----------+------------+
2 rows in set (0.00 sec)

調べてみると、RDSのパラメーターグループというものでDBで利用するキャラクターセットなどを設定できるようなのですが、新しくパラメータグループを作り

  • character_set_client
  • character_set_connection
  • character_set_database
  • character_set_results
  • character_set_server

あたりを、utf8 に設定しても文字化けが治りませんでした。

どうもすでに作成されているDBに対してパラメターグループの設定を行っても"character_set_database"は、latin1 のまま変更されないようです。

色々と知識が不足していて、日本語対応に手こずってしまったので、軽くやったことをメモとして残しておこうと思います。

DB に設定されているパラメーターの確認

DBに設定されているパラメータは以下のように確認することができます。

mysql> show variables like 'character_set%';
+--------------------------+-------------------------------------------+
| Variable_name            | Value                                     |
+--------------------------+-------------------------------------------+
| character_set_client     | utf8                                      |
| character_set_connection | utf8                                      |
| character_set_database   | latin1                                    |
| character_set_filesystem | binary                                    |
| character_set_results    | utf8                                      |
| character_set_server     | utf8                                      |
| character_set_system     | utf8                                      |
| character_sets_dir       | /rdsdbbin/mysql-5.6.27.R1/share/charsets/ |
+--------------------------+-------------------------------------------+
8 rows in set (0.01 sec)

ここで、"character_set_database" に latin1 が設定されていることがわかると思います。

テーブルに設定されているキャラクターセットの確認

すでに作成されているテーブルにもキャラクターセットの設定が行われているようです。
これは、以下のように確認することができます。

mysql> show create table SeriesData;
+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table      | Create Table                                                                                                                                                                                       |
+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| SeriesData | CREATE TABLE `SeriesData` (
  `SeriesID` int(11) NOT NULL,
  `SeriesName` tinytext,
  PRIMARY KEY (`SeriesID`),
  UNIQUE KEY `SeriesID_UNIQUE` (`SeriesID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

ここでも、"CHARSET=latin1" のように latin1 が設定されていることがわかります。

グローバル設定のキャラクターセットの確認

それでは、DBの設定ではなくグローバルの設定も確認してみることにします。

mysql> show global variables like 'character%';
+--------------------------+-------------------------------------------+
| Variable_name            | Value                                     |
+--------------------------+-------------------------------------------+
| character_set_client     | utf8                                      |
| character_set_connection | utf8                                      |
| character_set_database   | utf8                                      |
| character_set_filesystem | binary                                    |
| character_set_results    | utf8                                      |
| character_set_server     | utf8                                      |
| character_set_system     | utf8                                      |
| character_sets_dir       | /rdsdbbin/mysql-5.6.27.R1/share/charsets/ |
+--------------------------+-------------------------------------------+
8 rows in set (0.00 sec)

RDS のパラメーターグループで、utf8を設定したあとだったのでグローバルの設定は全てutf8 に設定されいることが確認できました。

DBを作成した時のキャラクターセットの確認

また、DBを作成した時のキャラクターセットも確認してみます。

mysql> show create database totsuka_dev;
+-------------+------------------------------------------------------------------------+
| Database    | Create Database                                                        |
+-------------+------------------------------------------------------------------------+
| totsuka_dev | CREATE DATABASE `totsuka_dev` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+-------------+------------------------------------------------------------------------+
1 row in set (0.00 sec)

"DEFAULT CHARACTER SET latin1" となっています。
これは、パラメーターグループの変更を行う前に CREATE DATABASE を行っているので、latin1 が設定されしまっているようです。

DB のキャラクターセットの再設定

DB に設定されてしまったキャラクターセットはパラメーターグループを変更しても切り替えることはできないため、以下のように直接再設定を行います。

mysql> ALTER DATABASE totsuka_dev default character set utf8;
Query OK, 1 row affected (0.00 sec)

そして、DBの設定を次のように確認してみます。

mysql> show create database totsuka_dev;
+-------------+----------------------------------------------------------------------+
| Database    | Create Database                                                      |
+-------------+----------------------------------------------------------------------+
| totsuka_dev | CREATE DATABASE `totsuka_dev` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+-------------+----------------------------------------------------------------------+
1 row in set (0.00 sec)

"DEFAULT CHARACTER SET utf8" のように utf8 に切り替わったことが確認できました。

そして、パラメーターの方も確認してみると、

mysql> show variables like 'character%';
+--------------------------+-------------------------------------------+
| Variable_name            | Value                                     |
+--------------------------+-------------------------------------------+
| character_set_client     | utf8                                      |
| character_set_connection | utf8                                      |
| character_set_database   | utf8                                      |
| character_set_filesystem | binary                                    |
| character_set_results    | utf8                                      |
| character_set_server     | utf8                                      |
| character_set_system     | utf8                                      |
| character_sets_dir       | /rdsdbbin/mysql-5.6.27.R1/share/charsets/ |
+--------------------------+-------------------------------------------+
8 rows in set (0.00 sec)

このように、utf8に変更されたことが確認できます。

この状態でテーブルを select してみると次のようになります。

mysql> select * from SeriesData;
+----------+------------+
| SeriesID | SeriesName |
+----------+------------+
|        0 | ???        |
|        1 | ????       |
+----------+------------+
2 rows in set (0.01 sec)

これは、先ほど書いた通りテーブル側にもキャラクターセットの設定が行われているからでした。

テーブルの再作成

今回は、レコード数も少なかったのでテーブルを再作成することにしました。

mysql> drop table SeriesData;
Query OK, 0 rows affected (0.01 sec)

mysql> CREATE TABLE `totsuka_dev`.`SeriesData` (
    ->   `SeriesID` INT NOT NULL,
    ->   `SeriesName` TEXT(20) NULL,
    ->   PRIMARY KEY (`SeriesID`),
    ->   UNIQUE INDEX `SeriesID_UNIQUE` (`SeriesID` ASC));
Query OK, 0 rows affected (0.03 sec)

これで、日本語を含むレコードを追加してみます。

mysql> insert into SeriesData (SeriesID, SeriesName) values (0, 'にほんご');
Query OK, 1 row affected (0.01 sec)

select してみると、日本語が設定できていることが確認できました。

mysql> select * from SeriesData;
+----------+--------------+
| SeriesID | SeriesName   |
+----------+--------------+
|        0 | にほんご     |
+----------+--------------+
1 row in set (0.00 sec)

おまけ(DBを新規作成した時の状態を確認してみる)

RDS のパラメーターグループのキャラクターセットにutf8が設定されている時に、DBを新規作成した時の挙動を確認しておきます。

すでにグローバルのパラメーターにutf8が設定されているので、何も考えずに CREATE DATABASE をしてみます。

mysql> create database jp_test;
Query OK, 1 row affected (0.01 sec)


そして、作成したDBに切り替え、パラメータを確認してみると、

mysql> use jp_test;
Database changed
mysql> show variables like 'character_set%';
+--------------------------+-------------------------------------------+
| Variable_name            | Value                                     |
+--------------------------+-------------------------------------------+
| character_set_client     | utf8                                      |
| character_set_connection | utf8                                      |
| character_set_database   | utf8                                      |
| character_set_filesystem | binary                                    |
| character_set_results    | utf8                                      |
| character_set_server     | utf8                                      |
| character_set_system     | utf8                                      |
| character_sets_dir       | /rdsdbbin/mysql-5.6.27.R1/share/charsets/ |
+--------------------------+-------------------------------------------+
8 rows in set (0.00 sec)

このように character_set_database に utf8 が設定されていることがわかります。

まとめ

RDS のインスタンスを作成するときに、パラメーターグループを適切に設定できていれば今回のようなキャラクターセットの再設定は不要になると思います。

AWS は、便利ですが色々と覚えることがあって大変ですね。

とにかく手を動かして見ながら覚えていくしかなさそうなので、がんばっていこうとおもいます。

参考

MySQLでcharacter_set_databaseがlatin1になってしまう問題の対応方法

なぜ文字化けが起きているのか、状況の確認を行いながら対応の手順を示してくれいます。
とても参考になりました。

今日の気になったエントリー

【CEDEC 2016】『シャドウバース』にも応用されたCygamesの次世代技術研究とは

Cygames Researchは、「最高のコンテンツを作るには、Cygames自身がテクノロジー・リーダーとなり、最高の技術を自ら生み出すべき」という理念のもと設立されました。

研究開発への継続的な投資は必要だと思う。


【CEDEC 2016】新たなトレンドはゲームにどのような変化をもたらすのか―シブサワ・コウが考えるゲームの未来

開発費の高騰化の話は、なかなか頭の痛い話ではあるのですが、なんとなく『イノベーションのジレンマ』を思い出したりもするんですよね。
スマホゲームの開発費が高騰化しているのは、それだけ業界が煮詰まってきてしまっているということなんだろうなぁ

イノベーションのジレンマ 増補改訂版 (Harvard Business School Press)

イノベーションのジレンマ 増補改訂版 (Harvard Business School Press)


なぜ賃金は上がらない?/人手不足倒産の原因

では、ソーシャルゲーム業界が「産業の長期均衡」に似た現象を経験している。ソーシャルゲームの場合は基本プレイが無料なので、サービスの価格はゼロ、つまり最初からそれ以上下げられない水準になっている。

だから、「無料でどれほど豪華なコンテンツを提供するか」が競争になる。

非常に興味深いエントリーだった。


[CEDEC 2016]「デレステ」のグラフィックスは多種多様なスマホで60fpsの実現を目指した。開発陣のこだわりが見えた講演レポート

スマホはターゲット端末の性能の差が激しいのが困るよなぁ
性能が世代によって上がる一方ってならまだしも、最近は多様化してきちゃっているしなぁ...


CEDECで語りたかったこと

色々と思うところがある


これ知ってる?WEBの人なら押さえておきたいツール&サービス50選

何の気なしに読んだけれども色々なサービスが紹介されていて面白かった。
何個か試してみようかな


AIに支配される人達のイラスト

機械学習クラウドソーシング!!


20世紀最大の発明はどう考えても「コンテナ」だったという話

『コンテナ物語』読もうと思っていたのに忘れてた

コンテナ物語―世界を変えたのは「箱」の発明だった

コンテナ物語―世界を変えたのは「箱」の発明だった

今日の気になったエントリー

Web Services の本気がみたいか !? スピードと高可用性を両立したゲームインフラの構築と事例

CEDEC の公演で利用された資料が公開されていました。


【CEDEC 2016】『チェンクロ』開発者が語る「摩耗しない」モバイルゲーム運営...ストーリー性の価値を説く

モバイルゲームには運営はついてまわる話だからなぁ...
チェンクロはとても丁寧に運営していると感じました


【CEDEC2016】カーネギーメロン大学・金出武雄氏の基調講演「画像を調理する」レポ―研究におけるストーリーの重要性とは

楽しんで取り組むってのは大事なんだと思う。
金出先生は楽しそうだもんな


【CEDEC 2016】バンダイナムコが挑戦する、子供でも楽しめるVR遊具は「飽きてもOK」

「飽きを許容する」ということで、ゲーム的な熱中を生む要素は排除しました。他のプレイヤーとの競争や、魚を全部集める、といった要素は含まれていません。熱中させることはあえて控えて、本物の砂浜と同じように遊べる。子供に熱中させないというのは、親にとっても安心感を与える材料になるかもしれないと本山氏は話していました

「飽きを許容する」という考え方は非常に興味深いとは思いますが、現実の再現にしかなっていないVRにどれほどの価値があるのか疑問を感じました。
VRにはVRならではの面白さが必要なんじゃないのかと...


『ストリートファイター』シリーズに受け継がれるアートの哲学! “正しさ”よりも重視したのは“わかりやすさ、カッコよさ”【CEDEC 2016】

これは良エントリー!!
ゲーム開発に関わっている人は、目を通しておいたほうが良い。
“あやしい美術解剖図” 読んでみたいなぁ〜


【CEDEC2016】アイドルたちをもっともっと可愛く! Cygamesクリエイターが『デレステ』開発・運営でみせた飽くなき追求

この講演聴きたかったなぁ...


【CEDEC2016】人々がソーシャルゲームにハマる理由を"行動経済学"の観点から紐解く…『ポケモンGO』普及の要因についても言及

こういった講演はもっと増やしてもいいと思う。

CEDEC2016に行ってきたよ(3日目)

少し日が経ってしまいましたが、CEDEC2016最終日の雑感をまとめておこうと思います。

...毎年、CEDECが終わると年末に向けて時が加速するような気がするので、気を引き締めていかないといけませんね。

まだまだ今年中にやっておきたいことは山積みの状態なので、一日一日を大切に過ごしていきたいと思います。

そんなわけで、雑感です。

「ゲームの未来」(襟川 陽一/株式会社コーエーテクモホールディングス)

色々なところで語られていたりもしますが、襟川さんの生い立ちやコーエーテクモの成り立ち、基本理念などを聞かせていただきました。

元々は染料工業薬品の卸問屋だったのに、本屋でマイコンの雑誌に興味を惹かれてからプログラミングにハマり、ゲーム開発業にシフトしていくという話は胸熱です。

講演の後半では、タイトルの通り「ゲームの未来」について襟川さんの思い描く未来を語っていただきました。
印象に残っている点としては、

  • ゲームソフト開発専業のモデルだったものが、「IPの想像と展開」に変化していった
  • 2010年を堺に課金の仕組みが大きく変わってきた(課金形態が複数になってきた)
  • 開発予算は高騰化を続けている
    • パッケージビジネス
      • パソコン用ゲーム : 10億円未満
      • 家庭用ゲーム機用ゲーム : 1億から50億円(欧米は1億から数100億円)
    • デジタルビジネス
      • 携帯電話用ゲーム : 5千万から2億円 + 運営費
      • スマホ : 2億から10億 + 運営費
  • 高騰化する開発予算を抑えるためにも基礎技術開発が必要
  • 2000年代経営統合が進み、2010年頃M&Aが進んだ。今後もプラットフォーム展開を見据えた統合化が進んでいく
  • 新しいトレンド

といったあたりが印象に残りました。
特に開発予算の高騰化については、前半の光栄のなりたちの話を聞いた後だけに、時代の流れを強く感じました。
先人たちが道を切り開いてきてくれたからこそ今があるとはいえ、中小企業や個人開発者などには厳しい情勢になっているということも感じました。

大規模学習を用いたCGの最先端研究の紹介(小山 裕己/東京大学大学院・飯塚 里志/早稲田大学)

アイドルマスターシンデレラガールズ スターライトステージ 制作事例・テクニカル編 − 多種多様なスマホで5人のアイドルが躍動するライブの舞台裏 (60fpsリズムゲームの開発手法)』を聴きたかったのですが、定員オーバーのため会場に入れませんでした。

こちらの講演は Game Watch で紹介されているようですね。
(参考 : 2Dアイドルのかわいさを3Dで再現する! 「デレステ」開発事例公開 )

さて、『大規模学習を用いたCGの最先端研究の紹介』ですが、いわゆるディープラーニングと呼ばれるような機械学習クラウドソーシングを利用したCG研究の論文紹介をしていただきました。

クラウドソーシングとは、ランサーズやクラウドワークスで有名ですが、その形態として以下の様なものがあります。

  • コンペティション
    • デザイン作品(e.g ロゴ)を公募
    • 優れた作品にだけ報酬
  • プロジェクト型
    • 短期(e.g 1ヶ月)のプロジェクトに関わる労働力を酵母
  • マイクロタスク型
    • 誰でもできる簡単なタスク
    • 数行で終わる内容を数円で発注
    • いつでも安価に大量に発注可能

CG研究者は、マイクロタスク型に注目しており、機械学習に必要となる教師データをアンケートのような形でクラウドソーシングにマイクロタスク型で発注を行い、安価に大量のデータを集めるということを行っているそうです。

以下の論文が紹介されました。

Body Talk: Crowdshaping Realistic 3D Avatars with Words

  • 言葉から形状を推定する
  • 形状から言葉を推定する
  • 写真1枚から3Dスキャニング

Attriblt: Content Creation with Semantic Attributes

Semantic Shape Editing Using Deformation Handles

  • 言葉に基づく形状変化
  • 「履き心地がよい」などのパラメーターで形状を変化させる

A Similarity Measure for Illustration Style

  • イラストの近さ

Style Compatibility for 3D Furniture Models

  • 三次元モデル間のスタイルの親和性を学習
  • アセットストアなどで親和性の高いモデルの検索などにつかえるかも

Crowd-Powerd Parameter Analysis for Visual Design Exploration

  • 美的感覚に基づくパラメータ調整

Mirror Mirror:Crowdsourcing Better Portraits

  • ポートレード写真の良し悪しを学習
  • 写真撮影でシャッターを切らなくなる?

まとめとして、

  • マイクロタスク型クラウドソーシング
    • かんたんなものならいつでも安価に大量の
  • クラウドソーシングと機械学習の組み合わせ
    • 認知好みに関する教師データ
  • デザイン支援技術としての将来性

といった事が挙げられていました。

後半は、『大規模学習を用いたCG』として、白黒写真の自動色付けやラフスケッチの自動線画化が紹介されました。

人の手で(アルゴリズムとしては)実装しづらい"感覚"のようなものが、機械学習クラウドソーシングによって実現されていく可能性があるというのは非常に興味深いと感じました。

ドラゴンクエストへの道 〜ドラゴンクエスト30周年を迎えて〜(堀井雄二/ゲームデザイナー・齊藤陽介/株式会社スクウェア・エニックス)

ドラクエ30周年ってすごいですね。
数多くのタイトルがナンバリングタイトルとして発売されていますが、一人のゲームデザイナーが同じタイトルに関わり続けているという事例はドラクエぐらいしか見当たらないと思います。
改めて堀井雄二さんの凄さを感じました。

講演の内容は、色々なところでも紹介されているみたいですね。

堀井雄二氏がドラクエの30年間を振り返る ゲームデザイナーとして大事なことは…

堀井雄二氏が「ドラゴンクエスト」の30年を一挙に振り返る!

ドラクエ堀井氏、プログラミングの思い出をCEDEC 2016で語る

ドラクエファン、堀井雄二ファンが喜びそうな講演内容だったと思うのですが、もう少し CEDEC っぽい内容を話して頂きたかったなぁ...なんてことも感じてしまいました。

手描き感を再現するペイントシミュレータの最新研究紹介(大河原 昭/シリコンスタジオ株式会社)

『AIによるゲームアプリ運用の課題解決へのアプローチ』を聴きたかったのですが、定員オーバーのため入れず...

『手描き感を再現するペイントシミュレータの最新研究紹介』として、油絵のペイントシミュレータの研究紹介をしていただきました。
最新研究のアプローチとしては、

  • (ブラシの)毛先を1本ずつシミュレーション
  • (グリッドとパーティクルの)ハイブリッド流体モデル

といったアプローチをとっているようです。

なぜグリッドとパーティクルを組み合わせるのか?と言うと、

  • グリッドのみ
    • ぼやけた見た目になってしまう
  • パーティクルのみ
    • 大量のパーティクルが必要(計算負荷的に辛い)

とのことでした。

FINAL FANTASY XVの開発を支えるバックエンド ~ アセットビルドシステムの仕組みと、ゲームプレイログの収集・可視化の取り組み ~(南野 真太郎/株式会社スクウェア・エニックス)

コンテンツが複雑化してきているので、アセットビルドシステムに対する要求ってのは重要になっていると思う。
FF XV というビッグタイトルだとかなりの複雑さになるんだろうな...

前半はアセットビルドシステムの仕組み、後半はゲームプレイログの収集と可視化をどのように進めたかという話でした。

全体的にあまり目新し話はなかったと思うのですが、ゲームプレイログを統一的に収集できるように専用のAPIを介してログを収集しているという点は興味深かったです。

オンラインゲームでの導入事例なんかがでてくると面白いんじゃないかなぁなどと感じました。

モバイル最適化!〜モンスターハンター エクスプロアの場合〜(井上 真一/株式会社カプコン)

講演の前半は、(PSP3DSのように)携帯ゲーム機用に開発されたモンハンをただ単純にスマホに持っていくだけでは遊びづらくなってしまうので、どのような点に注意をしながらスマホ向けの仕様として落とし込んでいったか、といった話しでした。

後半は、急遽マルチプレイ対応を行うことになってしまい、どのような対応を行ったのか、リリース後にどのような問題点が発生したのか、といったポストモーテムでした。

急遽マルチプレイ対応が決まりチーム内にサーバエンジニアがいない状況で、どのようなことを考えどのような選択を採り、どのような問題が発生して、どのように対応していったのかという話はとても貴重な話だと感じました。

後日、CEDiL で資料が公開されるようなので、改めてじっくり資料を読みたいと思います。

ざっと印象に残った点だけ挙げてみると、

  • エクスプロアのサーバはすべてnode.js
  • 負荷対策はミドルウェアに任せたい(mongoDB)
  • 負荷試験
    • Rest サーバ : おとなしく Jmeter を使用した
    • Socket サーバ : 負荷かけ用クライアントを自作
  • 耐久試験(連続稼働)限界試験(性能限界)を行った
  • 可能な限り実際のユーザプレイに近いシナリオ作成にこだわった
  • 目標は同時接続10万
  • 同時接続5万までの道
    • 最小構成だと同時接続3万人まで。
    • フロントサーバを増やして同時接続5万人まで達成
  • 目標の10万を突破し15万を達成
    • 垂直分割をやってみる
  • 緊急メンテ
    • 同時接続20万突破(想定通り15万で落ちた)

といったあたりが印象に残りました。
同時アクセス10万と想定していたところ、20万まで伸びたって話はさすがモンハンだなと思いました。

まとめ

今年も三日間参加してきたのですが、なんとなく開発の大規模化が進み、中小デベロッパーのふるい落としが更に進んでいるといった印象を受けました。
一部大型タイトルを除いて、自社でエンジンまで開発する時代というのはもはや過去のモノになりつつあるんですかね...

グラフィックスに関してはかなり顕著に現れていると思うのですが、高度化・専門化が進み、一部のエキスパートがつくったものを現場のスタッフが使うという構図がより鮮明になっているような印象を受けました。

そんな中で、大半を占める普通のエンジニア(開発スタッフといっても良い)の生存戦略とは、中小デベロッパーの生存戦略とは...そんなことを考えさせられる三日間でした。

CEDEC2016に行ってきたよ(2日目)

CEDEC2016 も二日目です。

毎年、6Fのカフェでお昼ごはんを頂いているのですが、今日はタイミングが悪かったのか15分ほど行列に並ぶことになってしまいました。

午後の公演に備えてサクッとお昼は済ませてしまいたいので、相席でも良いのでガンガン案内をして欲しいです...

...さ、それでは軽く雑感などをまとめてみたいと思います。

Amazon Web Servicesの本気がみたいか!?スピードと高可用性を両立したゲームインフラの構築と事例(森 祐孝/アマゾンウェブサービスジャパン株式会社)

いま開発を進めようとしているタイトルで、AWSの導入を検討していたので基本的な情報収集を目的に公演を聞いてきました。
AWSはサービスがいっぱいあってどれを組み合わせていいのかよくわからないです...

そんな中、実例を交えての構成例を示して頂いたのはとても参考になりました。

公演を聞く前から、Cognite / Lambda には興味を持っていたのですが、従来のゲームサーバアーキテクチャと違っていて少し不安に感じていました。

いわゆるサーバレスアーキテクチャというものになるかと思うのですが、Lambda がインフラ関連の不安要素を払拭してくれるのであればとてもありがたいと思います。

公演だけでは今ひとつわからかなかったところがあったので、AWSのブースに行って詳しい話を聞いてきたのですが、

  • Lambda を使うと負荷分散などは考えなくて良い(Lambda の設定だけ考えれば良い)
  • CloudFront は CDN として S3 のキャッシュのように取り扱うことができる
  • CloudFront では、セキュリティのため数分だけ利用できるアクセスキーの設定を行うことができる
  • アクセスキーは Lambda からも発行することが可能

といった話を聞くことができました。

なるほど〜。

少し疑問も解消されたので、サーバレスアーキテクチャを前提に設計を進めてみたいと思います。

バイオハザード7」を実現するレンダリング技術(三嶋 仁・清水 昭尋/株式会社カプコン)

2017年1月にPS4/PS VRで発売予定の 『バイオハザード7 レジデントイービル』のレンダリング技術の解説なのですが...
話の内容についていけませんでした...

「細かな最適化って大事だよね」程度にしか話を聞くことができませんでした。

う〜ん、最新動向についていけてないからなのか?

後半の、流体をビルボードに表示するあたりの話は少しだけ面白く聞くことができました。

「僕たちは作りたいものを作る」自主制作ゲームの今(下田 賢佑/株式会社degG・一條 貴彰/ヘッドハイ・木村 征史/room6 LLC.・三原亮介/N/A (個人)・若葉 章/Project ICKX)

インディーズゲームの開発者の方たちによるパネルディスカッションで、どのように自主制作ゲームの環境を捉えているか?といった内容の公演でした。
話を伺っていると、インディーズゲームってどういった定義でインディーズと呼ばれるのだろう?と疑問に感じてしまいました。

どの程度の数になるのかわかりませんが、資本的な意味で独立をしている状態でゲームをリリースされた販売されている方たちは、日本国内だけでも組織形態かかわらずかなりの数がいるのだとおもいます。

そして、(当然の事ながら)パネルの内容はそのごく一部の意見を表しているだけなんだと思うのです。

個人的には、インディーズという言葉には『独立した』という意味合いを強く感じていて、趣味の同人活動 = インディーズでも、小規模 = インディーズでもないと感じています。

話はとても興味深く聞かせていただいたのですが、"自主制作ゲームの今"というのには違和感を感じてしまいました。

シリコンスタジオによるHDR出力対応の理論と実践(川瀬 正樹/シリコンスタジオ株式会社)

HDRレンダリングという言葉はすっかり定着して、やっとディスプレイデバイスの出力もHDRに対応しはじめたということで、その出力に対して考慮すべき点などの話でした。

細かな内容は、私には難しすぎてついていけない部分も多かったのですが、

  • 出力するだけならそれほど手間はかからない(色域の変換だけで良い)
  • HDR出力に対する理解を深めるためには色空間に対する正しい知識が必要
  • 魅力的な絵を出そうと思うと検討しなければいけないポイントがたくさんある
  • SDRとHDRの画像比較を行う際にも検討点がたくさんある
  • HDR出力デバイスの規格はまだまだ統一されていない
  • HDR出力デバイスが一般的に普及するのはまだまだ先の事になりそう

といった事を思いました。

昨日のPolyphony Digital 内村さんの公演である『ゲームのための色彩工学』が理解できていると、もう少し詳しく意味がわかると思うので、資料が公開されたらゆっくり見なおしてみたいと思います。

わかりやすいプロシージャラル・シェーダのはなし(大垣真二/オートデスク株式会社・四倉達夫/株式会社オー・エル・エム・デジタル)

わかりやすくなかったです。
ボロノイ・セルをつかってプロシージャルに石のテクスチャを作るとか、宝石の模様を作るとかトピックとしては面白そうな雰囲気があったのですが、まったくついていけませんでした。
...資料を見直すと少し理解が進むのかなぁ...

フーリエ変換を元にしたアルゴリズムでは、フーリエ変換してコンボリューションをかけると、波の表現や、パッチを画面に散りばめるといったことができるようなのですが、こちらもイメージが全く掴めず...

完全に消化不良な感じになってしまいました。