C++ breaktime 2026/Summer
#cpp_breaktime
https://scrapbox.io/files/6a117f8265e24daf8cb15f83.png
開催日時
2026年6月19日(金) 19:00~21:00
開催URL
https://cpp-osaka.connpass.com/event/393713/
参加人数
14人
RAIIと所有権の話
発表者:@zbdk
昔作ったゲームのご紹介
発表者:風岡
昔作ったゲームをブラウザで遊べるゲームで作り直した
THREE.jsを使ったポリゴンのパズル
C++読書会なのでWindowsで作り直しました
この業界の人でもポリゴンを書いたことがない人もいるので詳細な説明をしてみる
アフィン変換
パースペクティブ
ラスタライズ
スキャンライン法
ディザ
C++版は半透明を使わない形にしてみた
今はスキャンライン法ではないやりかた
PCがブラックアウトしたので強制終了・・・
続きはLT枠で・・・
リフレクションの話
実行時に評価を許さないReflection@C++26
発表者:@decimalbloat
^^
リフレクションを取得する演算子
最近Xで話題になった気がする
アノテーション
[=123]
エンティティにユーザが自由に情報を添付できる機能
^^は実行時には使用できない
constexprを付ける必要がある
リフレクション関数を使ってクラスの中身を追加できる
メンバー関数は追加できないとされている
せやろか
関数オブジェクトデータメンバーにしたらそれっぽくはなる
怪しげな(char*)this - offset()があるけどこれは合法
offset()の中身はリフレクションでメンバのオフセット値を返してる
完全に合法
関数を外から指定できるようにする
operator()
C++なので使いやすいAPIは用意してくれない!
許せない!
std::vectorをconstexpr変数にできない
GC子曰く
列挙型と文字列の変換ができるようになった
字面が多い・・・
ハッシュ関数
hashableというアノテーションを付けて特殊化
位置指定初期化では並び変えられないがキーワードを使うと順不同に書ける
ゲームエンジンの話
Unity Scripting Backend
@hr_sao
Scripting Backend
エンジン本体とは別にゲームロジックを動かすランタイムを持つ基盤の概念
C#で書いてC++にコンバート
オリジナルの書式からC++にコンバート
Mono:JITコンパイル方式
ビルド時にC#からIL
実行時にJIT コンパイルが必要
IL2CPP
ビルド時にILからC++を生成する
実行時にJITコンパイル無し
Mono AOT
一般的なハードは公式が用意してくれるが、コンシューマ機向けには自社対応が必要。大変
Apple iOSアプリ64bit化必須対応
もともとIL2CPPはWebGL向けにやろうとしていたのにiOS向けが先にリリースされた
IL2CPP
C++にすればどこでも動くぞ!
起死回生の奇策
ビルドは長い
越境コンパイルはコストが高い
stringみたいなマーシャリングが必要なものはコピーが必要だがそれ以外はポインタを渡すだけ
速いけどこの往復すらしんどくなってきた
CoreCLR
MSが色々買収したのを統一しようとしているもの
なのでMonoは今そこまで注力されていない
Monoに依存するUnity「まずい・・・」
Burst Compiler
IL2CPPを置き換えるものではない
続・昔作ったゲームのご紹介
というか描画についての説明の続き