ダリアメモ@ブログ

日々思ったことや自分用のメモも含めプログラムの技術を淡々と書いていきます

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

今回は先日行われたEvent for Diverse Game Engineers(略してEDGE)という
ゲームプログラムの勉強会に参加して思ったことを書いていこうと思います。

peatix.com


セッション内容を見ると
shared_ptrを使ったメモリ管理、UnrealC++、アケゲ開発
などガチガチな講演内容なんだろうなーついていけるか不安だなーと勝手なイメージを思って身構えていましたが、実際に当日になってセッションを聞いてみるとそんなことなくとても分かりやすく丁寧に説明してくださったおかげでなんとかついていけました。


○shared_ptrを使ったメモリ管理


メモリリークは生ポインタをスマートポインタにして気をつけていましたが、断片化のことなどまったく気にしないで、コードを打っていたのでとても勉強になりました。
今まで作っていたのが主にPCで遊ぶゲームが多かったので、それに甘えた結果ですね…。


シングルトンやグローバルインスタンスを使う場合は、
最初にメモリ確保しておいた方がいいみたいで、
最初に確保しないといつ削除されるか分からないから
断片化が発生しやすいのかなーと勝手な解釈をしています。


今回の主題はスマートポインタによるリークを発生しないようにする事なのでshared_ptrが使われてたと思われますが、実際にやろうとするとshared_ptrは重いという話(実際にその質問もありました)を聞くので、場面に応じて他のスマートポインタに切り替えたほうがいいみたいですね。


○UnrealC++


今までブループリントでやっていたのでUE4でのC++はとても新鮮でした。
どんなときにC++を使うのかというと、パフォーマンスの向上や拡張機能、外部ライブラリなど、上記の事がない限り使わないそうです(基本的にブループリント推奨みたいですし)


ホットリロードの実演を見た感じだと開発の速度を求めるならブループリントのほうが良いのかなーというのが印象でした。
マシンによると思いますがコンパイルに結構時間がかかっていたのと、
コンパイルが終わってもスペルミスが発生してもう1回コンパイルしてさらに時間がかかったりするの見るとそう思わざるを得なかったので…。
ブループリントだとalweiさんが言っていた通りスペルミスがないですし、何より他業種の方と分業出来るのでしばらくはブループリントのお世話になりそうです。


とはいえ、やはりやっておいたほうが後々拡張機能を自分で追加したりするときに必要になりそうなのでぷちコンの制作が終わり次第着手したいと思います。
10/18にUnrealFesがあるみたいなので参加してもっと知見を得たいと思います。


○アケゲ開発


昔はSTLやBoostの使用制限(このハードだと動かないなどがあったらしい)、
ハード依存のコードを書かないなど色々と制約があったみたいですが、
今はほとんどPCゲームを開発するに近くなったみたいです。
PCゲームに近い感じで出来るのは個人的に嬉しかったです。

PCゲームに近いおかげでC++11の機能たくさん使えるのはいいけど、
バグや高速化にも注意を払わないとね、ということでした。


○まとめ

上記のような技術力も大事なのだけど、
最後に自分の事を周りに認知してもらう大切さを土田さんに教わりました。
Twitterでは技術的なことをつぶやいているつもりですが、色んな人にまだまだ自分のことを知ってもらえてないので外部イベントに積極的に参加して自分のことを認知してもらえるように頑張りたいと思います。

最後に主催者様、登壇者様、イベント参加者の皆様、お疲れ様でした!

ここまで読んでいただきありがとうございました。