現在のゲーム開発環境においてはC#を初めとする非ネイティブ言語を利用するケースも多いが、
いくつかの理由からC/C++等のネイティブ言語で書かれたライブラリを利用したい場合がある。
本セッションでは、ゲームエンジンからのネイティブ呼び出しコードを整備する方法や、その作業を効率化するための取り組みを紹介する。
- ネイティブライブラリについて、他言語からの呼び出しを想定する場合に推奨する作り方と、既存ライブラリの設計に不都合がある場合の回避策を紹介する。
- ラッパーコードの作成について、自動化の方法、差分更新や安全性の保証を行う取り組みを紹介する。
- 特に呼び出し元コードがC#の場合について、実行性能と使い勝手を両立するC#向けラッパーコードを提案する。
講演者プロフィール
久田 友海
ゲーム禁止の家庭でゲームプログラミングに熱中して呆れられる。
ゲーム制作を仕事にしたい気持ちとしたくない気持ちが衝突してミドルウェア企業へ。
CRI・ミドルウェアに入社以降、ゲーム向けミドルウェアの開発・サポートを主軸にエンジニア業務に従事。
《講演者からのメッセージ》
プログラミング言語を跨いだ関数呼び出し、数が多いと非常に面倒です。
また、C#ではランタイムの機能追加やランタイム実装自体の増加によって、現在どのような実装が最適かとっても分かりづらい状況です。
我々からの発表を通し、ネイティブコードを交えた開発を効率的に行う方法をお伝えできれば幸いです。
我妻 大樹
株式会社CRI・ミドルウェア エンジニア
社内の複数プロダクトの Unity インテグレーションの開発・サポート。ネイティブミドルウェア開発に従事。
趣味はギターと推し活。
《講演者からのメッセージ》
ゲームプレイ中の感動的な演出や推しとのイベントの最中で、なによりも回避したいのは不正なメモリ参照などで発生してしまうクラッシュです。
どうすれば安全にP/Invokeができるのか、これまで様々な苦悩をもとに積み重ねてきた知見をゲーム開発者の皆様に出来る限りお伝えできればと思います。