【プログラミング全般】CEDEC 2017 雑記

概要

2017年8月30日〜9月1日にかけて開催された、CEDEC2017に参加(タイムシフトパス)しての感想をメモ。

Fate/Grand Order VR feat.マシュ・キリエライト」制作秘話 ~プログラム・デザイン・サウンドについて、すべて明かします~

Unityで作成されたらしい、使用アセットは下記。

各アセットについては詳しく調べる。

ユーザを飽きさせない高頻度の更新を可能にする開発運用ノウハウ ~ハイスピードな開発、リリースを実現するために~

DSLを利用したマスタ更新、バリデーションの話は興味深かった。

特に、こういった汎用的な機能を作成する時はどこまで自由度を持たせられるかが難しいが、自動で生成されるスクリプトとは別に、partialで手動追加できるようにしたという点は使ってみたい。

スマホ版「ダビスタ」の操作テンポと開発スピードを上げたUIフレームワークの作り方

UIフレームワークの話だけど、最近のゲームはほぼUIだからゲームのフレームワークに近く一番興味深かった。

ローディングを表示する際に、UXを損ねないために表示まで1秒間隔を空けた話は、同じことを実装したことがあったので、共感できた。

UIの管理を、レイヤー(Main, Middle, Front, Dialog, System)、グルーピング単位で行い、シングルトンのマネージャーを介して操作するように作られている。イベント発火やコールバックもすべてマネージャーに登録する。

UIフレームワークを作るにあたって、汎用的に必要になるのは下記。

  • 複数ボタン押下時の排他制御
  • オンメモリキャッシュ管理
  • 戻るボタンやAndroidのバックキー
  • チュートリアル
  • UIアニメーションによる遷移
  • 汎用ポップアップ
  • タッチエフェクト

同じような仕組みを作っていたので個人的な課題。

  • ロード完了を アセットロード込みでも判定できるようにする
  • 2D、3Dの共存はカメラごと分けてしまう
  • 通信のキュー実装

高品質なアニメーションと低負荷を両立させるShadowverseにおけるアニメーション制作事例 ~カードバトルゲームとして快適にプレイできるUXを実現するために~

2Dアニメーションの実装にSpineを採用しているらしい。エフェクト画像で、メッシュ面積を減らすためにべき乗に合わせていっぱいに拡縮し、表示側でスケール変更して対応しているのは勉強になった。ShaderのStancilよくわからなかったので調べる。

複雑化するAssetBundleの配信からロードまでを基盤化した話

全体的にレベルが高く追いつけなかったが、タイムアウトを毎フレームの受信サイズで判断しているという点は興味深かった。

サーバー環境構築にはDocker、GKEを利用しているらしい。

ローカルDBはProtocolBuffersを利用?ちょっとここうろ覚え。

ダウンロードするファイルの差分管理用ファイルはAESで暗号化してローカルに保存している。

クラウドの分析システムを活用したアクセスログにもとづくリアルタイム不正ユーザBANシステム

Amazon Kinesis Analyticsを利用したユーザーの行動監視と、ストリーミングデータの扱い方の話がメイン。

ストリーミング系のプロダクトはPipelineDBなどが有名らしい。

誤検知には2パターンあり、フォールス・ポジティブは正常なものを不正だと判断してしまう誤検知。フォールス・ネガティブは不正を見逃してしまう検知漏れ。

At Least Onceは重複するけど欠損しない。At Most Onceは欠損するけど重複しない。Exactly Onceは欠損も重複もしない。

ゼルダの伝説 ブレス オブ ザ ワイルド』のUIが目指したこと~世界に溶け込み、かつ印象的なUI表現

オフスクリーンレンダリング楽しそう。

SECCON 2017 x CEDEC CHALLENGE ゲームクラッキング&チートチャレンジ

CTF楽しそう!nonce、証明書ピン留めは知らなかったので調べよう。

Unity(ILCPP)で作られたゲームの解析は簡単らしいので、チート対策についてもっと詳しくなっておかなくてはいけない。

アナザーエデンにおける非同期オートセーブを用いた通信待ちストレスのないゲーム体験の実現

重要な処理以外はすべてクライアント側で行い、サーバーにはDBの差分だけを送る仕組みにしているらしい。ゲームはCocos2d-xを使用していて、クライアントはLevelDB、サーバーはDynamoDBを使用している。データスキーマはFlatBuffers。

クラウド時代の長く効率よく運用するためのゲームサーバとインフラ設計

prefork、bluegreem、http以外のプロトコルがよくわからなかった。