Event for Diverse Game Engineers に参加してきました

2015/09/20 (日) に SQUARE ENIX 本社で開催された Event for Diverse Game Engineers に参加してきました。

思い描いてるものを形にするための事前準備 (挨拶と会場説明込み)

登壇者:ろっさむ ( @4_mio_11 ) さん

  • 東京旅行のついで勉強会を開催してみた。
  • 行動あるのみ。

shared_ptrとゲームプログラミングでのメモリ管理

登壇者:DADA ( @DADA246 ) さん

  • 扱うデータはどんどん増えている。
  • RAII を守ればメモリリークは原則起きない。
  • malloc を使うことで free を忘れる。(例 : バイナリデータ読み込みなど)
  • Blackhat 2010 - Understanding the Low Fragmentation Heap で詳しく触れられている。

  • Double ended stack allocator (ヒープの拡張方向を上下複数持つアロケータ) で断片化を防ぐ

UE4とUnreal C++でのプログラミング環境について

登壇者:alwei ( @aizen76 ) さん

  • コーディングルールが UE で規定されている。
  • 中の開発者が 100 人くらいいるが、その差異がわからないくらい。
  • STL や Boost は使わない方が良い。
  • 専用のライブラリが提供されている。
  • コンテナだけでも 50 種類くらいある。
  • プロファイラはスマフォでも起動が可能。
  • Q. コーディングルールを守らせるツールはあるのか?
  • A. ない。社内ではコードレビューで徹底しているみたい。
  • Q. ビルド速度を上げられないか?
  • A. 既にやられているため我々ができることはない。バージョンアップ毎に向上している。
  • Q. 他のコンパイラは使用できるのか?
  • A. 既に clang 対応がある。早ければ年内に正式に統合されるかもしれない。

元コンシューマ系PGがアケゲ開発やってみた~アケゲ開発でのC++~

登壇者:shw ( @shw95349 ) さん

  • (数年前) コンシューマゲーム開発
  • C99 や MSVC 依存、およびハード依存なコードが書けない。
  • STL/Boost の使用制限
  • 最近のアーケード開発
  • Windows PC と変わらない。
  • コンパイラも自由に選べる。
  • OSS の外部ライブラリやミドルウェアが使える。
  • HW も自由に設計できる。
  • C++11 で足りないところは Boost でカバー
  • コード設計は典型的な MVC
  • 使用してみた機能
  • ラムダ式
  • STL との相性が良い。
  • boost::bind だらけがマシになった。
  • 型推論
  • コンパイラに任せられるので記述がすっきりした。
  • range-based for
  • std::tuple
  • std::array
  • scoped enumeration
  • std::atomic
  • std::future & std::promise
  • static_assert
  • final & override
  • Boost.Property_tree
  • Boost.Preprocessor
  • バグ
  • クラッシュ
  • 高速化
  • std::list → std::vector → std:array への置き換え
  • そもそものアルゴリズムの見直し
  • メモリリーク
  • VS2012 のバグだったのでしかたなし → boost の同機能で対応
  • 思ったよりもバグが少ない → CI や静的解析がけっこう効いた。
  • 差異をかんじたところ
  • テストモードの実装
  • 筐体が物理的につらい
  • 風営法に抵触しないかを自己管理
  • まとめ
  • ソフトウェア面ではそれほど差異はない。
  • 現場の体験がある。

JUCEで作るオーディオアプリケーション

登壇者:ほっと ( @hotwatermorning ) さん

プログラマの生存戦略 ~生き残る為に出世しろ~

登壇者:金剛型5番艦娘さん

  • 専門学校生 : とにかく量をやる
  • 大学生 : 自分の専門武器を持つ
  • 自分の担当箇所を商品の売りにする
  • ○◯と言えば✕✕さん (by name)