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)