言語の壁を超えろ!ゲームエンジン上で「安全に」「ラクして」ネイティブライブラリを使う取り組み

タグ:
日時:
2024年08月21日(水)13時40分〜14時40分
形式: レギュラーセッション(60分)
受講スキル:
- ネイティブライブラリ呼び出しを行うC#ライブラリを作りたいエンジニア - 他言語からの利用が容易なネイティブライブラリを作りたいエンジニア - 異なる言語間での相互運用を効率化したいエンジニア
受講者が得られるであろう知見:
- 他言語からの呼び出しが容易なネイティブライブラリの設計 - ネイティブライブラリの呼び出しコードを自動生成し、常に最新仕様に追従させる方法 - メモリ等のネイティブリソースを取り扱う場合に、安全性を保証する方法 - 現在のC#においてPInvokeを行う際のベストプラクティス
セッションの内容

現在のゲーム開発環境においてはC#を初めとする非ネイティブ言語を利用するケースも多いが、
いくつかの理由からC/C++等のネイティブ言語で書かれたライブラリを利用したい場合がある。
本セッションでは、ゲームエンジンからのネイティブ呼び出しコードを整備する方法や、その作業を効率化するための取り組みを紹介する。
- ネイティブライブラリについて、他言語からの呼び出しを想定する場合に推奨する作り方と、既存ライブラリの設計に不都合がある場合の回避策を紹介する。
- ラッパーコードの作成について、自動化の方法、差分更新や安全性の保証を行う取り組みを紹介する。
- 特に呼び出し元コードがC#の場合について、実行性能と使い勝手を両立するC#向けラッパーコードを提案する。


講演資料

  • CEDEC2024_CRIMW_PInvoke.pptx

※資料のダウンロードにはログインが必要です。


講演者プロフィール

久田 友海

久田 友海
所属 : 株式会社CRI・ミドルウェア
部署 : 第一開発部

ゲーム禁止の家庭でゲームプログラミングに熱中して呆れられる。
ゲーム制作を仕事にしたい気持ちとしたくない気持ちが衝突してミドルウェア企業へ。
CRI・ミドルウェアに入社以降、ゲーム向けミドルウェアの開発・サポートを主軸にエンジニア業務に従事。

《講演者からのメッセージ》
プログラミング言語を跨いだ関数呼び出し、数が多いと非常に面倒です。
また、C#ではランタイムの機能追加やランタイム実装自体の増加によって、現在どのような実装が最適かとっても分かりづらい状況です。
我々からの発表を通し、ネイティブコードを交えた開発を効率的に行う方法をお伝えできれば幸いです。

我妻 大樹

我妻 大樹
所属 : 株式会社CRI・ミドルウェア
部署 : 開発本部 第1開発部
役職 : エンジニア

株式会社CRI・ミドルウェア エンジニア
社内の複数プロダクトの Unity インテグレーションの開発・サポート。ネイティブミドルウェア開発に従事。
趣味はギターと推し活。

《講演者からのメッセージ》
ゲームプレイ中の感動的な演出や推しとのイベントの最中で、なによりも回避したいのは不正なメモリ参照などで発生してしまうクラッシュです。
どうすれば安全にP/Invokeができるのか、これまで様々な苦悩をもとに積み重ねてきた知見をゲーム開発者の皆様に出来る限りお伝えできればと思います。