Submit Search
Upload
Doom3 commentary
•
Download as PPTX, PDF
•
6 likes
•
1,947 views
D
DADA246
Follow
Doom3 commentary
Read less
Read more
Technology
Report
Share
Report
Share
1 of 55
Download now
Recommended
Heliumエンジンの設計と実装
Heliumエンジンの設計と実装
Heliumエンジンの設計と実装
DADA246
#hbstudy
Hbstudy41 auto scaling
Hbstudy41 auto scaling
Fujishiro Takuya
Perlと出会い、Perlを作る
Perlと出会い、Perlを作る
goccy
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
Takeshi HASEGAWA
Linux SystemV IPC
SystemV IPC
SystemV IPC
Masami Ichikawa
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
Takeshi HASEGAWA
Javaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapi
Ken'ichi Sakiyama
OSC2011 Tokyo/Fall 濃いバナ(virtio)
OSC2011 Tokyo/Fall 濃いバナ(virtio)
Takeshi HASEGAWA
Recommended
Heliumエンジンの設計と実装
Heliumエンジンの設計と実装
Heliumエンジンの設計と実装
DADA246
#hbstudy
Hbstudy41 auto scaling
Hbstudy41 auto scaling
Fujishiro Takuya
Perlと出会い、Perlを作る
Perlと出会い、Perlを作る
goccy
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
Takeshi HASEGAWA
Linux SystemV IPC
SystemV IPC
SystemV IPC
Masami Ichikawa
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
Takeshi HASEGAWA
Javaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapi
Ken'ichi Sakiyama
OSC2011 Tokyo/Fall 濃いバナ(virtio)
OSC2011 Tokyo/Fall 濃いバナ(virtio)
Takeshi HASEGAWA
TakusutaTechConf #1 での発表資料です。 http://connpass.com/event/21361/
AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境
Katsutoshi Nagaoka
Free bsd jail入門
Free bsd jail入門
Tsubasa Nomura
cndjp第2回勉強会の発表資料です。
Kubernetes in プロダクション! -- cndjp第2回
Kubernetes in プロダクション! -- cndjp第2回
Hiroshi Hayakawa
GPUとは何か、GPUをJavaで使うにはどうするか
GPUをJavaで使う話(Java Casual Talks #1)
GPUをJavaで使う話(Java Casual Talks #1)
なおき きしだ
BHyVeってなんや
BHyVeってなんや
Takuya ASADA
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
shigeki_ohtsu
Bhyve Internals
Bhyve Internals
Takuya ASADA
CSS2020 3D2-1の発表資料
BLS署名の実装とその応用
BLS署名の実装とその応用
MITSUNARI Shigeo
BHyVe: The BSD Hypervisor
BHyVe: The BSD Hypervisor
Takuya ASADA
#ljstudy KVM勉強会
#ljstudy KVM勉強会
Etsuji Nakai
09/06/20 OSC2009-Hokkaidoにて発表したプレゼン資料です。
Osc2009 Do Xen Hara
Osc2009 Do Xen Hara
Kazuhisa Hara
BHyVeでOSvを起動したい 〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい 〜BIOSがなくてもこの先生きのこるには〜
Takuya ASADA
研修資料
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
物理マシンをケチる技術
物理マシンをケチる技術
Satoshi KOBAYASHI
Bhyve code reading
Bhyve code reading
Takuya ASADA
https://www.facebook.com/TonosamaLabo
㉒初期プロジェクトを改造!
㉒初期プロジェクトを改造!
Nishida Kansuke
Slub data structure
Slub data structure
Masami Ichikawa
圧倒的な速度で動作するadiaryの仕組みを解説します。勉強会等でスライド発表の要望がありましたらご連絡ください。
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
nabe-abk
DRBD、Heartbeat、Pacemakerを使って、たった2台のIAサーバのみでライブマイグレーション可能な高可用KVM仮想クラスタを構築しました。これは、このシステムの設計、ネットワークやストレージ構成の工夫箇所、パフォーマンスなどについて説明した資料です。 2011年3月4日に「オープンソースカンファレンス2011 Tokyo/Spring」で発表したときの発表資料です。
DRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタ
DRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタ
株式会社サードウェア
メモリ管理の話
shared_ptrとゲームプログラミングでのメモリ管理
shared_ptrとゲームプログラミングでのメモリ管理
DADA246
高度に最適化された移植可能なメモリマネージャ
高度に最適化された移植可能なメモリマネージャ
DADA246
Component basedgameenginedesign
Component basedgameenginedesign
DADA246
More Related Content
What's hot
TakusutaTechConf #1 での発表資料です。 http://connpass.com/event/21361/
AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境
Katsutoshi Nagaoka
Free bsd jail入門
Free bsd jail入門
Tsubasa Nomura
cndjp第2回勉強会の発表資料です。
Kubernetes in プロダクション! -- cndjp第2回
Kubernetes in プロダクション! -- cndjp第2回
Hiroshi Hayakawa
GPUとは何か、GPUをJavaで使うにはどうするか
GPUをJavaで使う話(Java Casual Talks #1)
GPUをJavaで使う話(Java Casual Talks #1)
なおき きしだ
BHyVeってなんや
BHyVeってなんや
Takuya ASADA
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
shigeki_ohtsu
Bhyve Internals
Bhyve Internals
Takuya ASADA
CSS2020 3D2-1の発表資料
BLS署名の実装とその応用
BLS署名の実装とその応用
MITSUNARI Shigeo
BHyVe: The BSD Hypervisor
BHyVe: The BSD Hypervisor
Takuya ASADA
#ljstudy KVM勉強会
#ljstudy KVM勉強会
Etsuji Nakai
09/06/20 OSC2009-Hokkaidoにて発表したプレゼン資料です。
Osc2009 Do Xen Hara
Osc2009 Do Xen Hara
Kazuhisa Hara
BHyVeでOSvを起動したい 〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい 〜BIOSがなくてもこの先生きのこるには〜
Takuya ASADA
研修資料
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
物理マシンをケチる技術
物理マシンをケチる技術
Satoshi KOBAYASHI
Bhyve code reading
Bhyve code reading
Takuya ASADA
https://www.facebook.com/TonosamaLabo
㉒初期プロジェクトを改造!
㉒初期プロジェクトを改造!
Nishida Kansuke
Slub data structure
Slub data structure
Masami Ichikawa
圧倒的な速度で動作するadiaryの仕組みを解説します。勉強会等でスライド発表の要望がありましたらご連絡ください。
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
nabe-abk
DRBD、Heartbeat、Pacemakerを使って、たった2台のIAサーバのみでライブマイグレーション可能な高可用KVM仮想クラスタを構築しました。これは、このシステムの設計、ネットワークやストレージ構成の工夫箇所、パフォーマンスなどについて説明した資料です。 2011年3月4日に「オープンソースカンファレンス2011 Tokyo/Spring」で発表したときの発表資料です。
DRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタ
DRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタ
株式会社サードウェア
What's hot
(19)
AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境
Free bsd jail入門
Free bsd jail入門
Kubernetes in プロダクション! -- cndjp第2回
Kubernetes in プロダクション! -- cndjp第2回
GPUをJavaで使う話(Java Casual Talks #1)
GPUをJavaで使う話(Java Casual Talks #1)
BHyVeってなんや
BHyVeってなんや
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
Bhyve Internals
Bhyve Internals
BLS署名の実装とその応用
BLS署名の実装とその応用
BHyVe: The BSD Hypervisor
BHyVe: The BSD Hypervisor
#ljstudy KVM勉強会
#ljstudy KVM勉強会
Osc2009 Do Xen Hara
Osc2009 Do Xen Hara
BHyVeでOSvを起動したい 〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい 〜BIOSがなくてもこの先生きのこるには〜
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
物理マシンをケチる技術
物理マシンをケチる技術
Bhyve code reading
Bhyve code reading
㉒初期プロジェクトを改造!
㉒初期プロジェクトを改造!
Slub data structure
Slub data structure
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
DRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタ
DRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタ
Viewers also liked
メモリ管理の話
shared_ptrとゲームプログラミングでのメモリ管理
shared_ptrとゲームプログラミングでのメモリ管理
DADA246
高度に最適化された移植可能なメモリマネージャ
高度に最適化された移植可能なメモリマネージャ
DADA246
Component basedgameenginedesign
Component basedgameenginedesign
DADA246
このスライドはピアプロ・キャラクター・ライセンスに基づいてクリプトン・フューチャー・メディア株式会社のキャラクター「初音ミク」を利用しています。
ゲームオブジェクトの管理
ゲームオブジェクトの管理
Shota Homma
4/15の海外ゲーム技術勉強会で発表した資料。 http://atnd.org/events/26621
次の世代のインタラクティブレンダリング5つの挑戦と10の滅ぶべき技術
次の世代のインタラクティブレンダリング5つの挑戦と10の滅ぶべき技術
Masafumi Takahashi
CEDEC2016で発表した内容です。 Cedilの資料ではPPTファイルできれいな画像でアニメーション効果などが確認できます。ここでは一部画像がにじんでしまっています。
GPU最適化入門
GPU最適化入門
Takahiro KOGUCHI
C Extension and GC in Ruby
メモリアロケーションからみた拡張ライブラリに大切なこと
メモリアロケーションからみた拡張ライブラリに大切なこと
Masaya TARUI
カスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについて
alwei
http://ozlael.egloos.com
Hable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr Lighting
ozlael ozlael
モバイル・コンシューマ開発比較勉強会 #3
ゲームエンジンの中の話
ゲームエンジンの中の話
Masayoshi Kamai
第5回VFX技術者交流会で発表した資料のフル版です。
なぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリング
Satoshi Kodaira
Viewers also liked
(11)
shared_ptrとゲームプログラミングでのメモリ管理
shared_ptrとゲームプログラミングでのメモリ管理
高度に最適化された移植可能なメモリマネージャ
高度に最適化された移植可能なメモリマネージャ
Component basedgameenginedesign
Component basedgameenginedesign
ゲームオブジェクトの管理
ゲームオブジェクトの管理
次の世代のインタラクティブレンダリング5つの挑戦と10の滅ぶべき技術
次の世代のインタラクティブレンダリング5つの挑戦と10の滅ぶべき技術
GPU最適化入門
GPU最適化入門
メモリアロケーションからみた拡張ライブラリに大切なこと
メモリアロケーションからみた拡張ライブラリに大切なこと
カスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについて
Hable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr Lighting
ゲームエンジンの中の話
ゲームエンジンの中の話
なぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリング
Similar to Doom3 commentary
ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話
Preferred Networks
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
Yoshihisa Ozaki
cocos2d-xとCocosBuilderでゲームを作ってみよう
cocos2d-xとCocosBuilderでゲームを作ってみよう
Tomoaki Shimizu
TypeScript 0.8.3 対応版です。
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
Akira Inoue
VimConf2014 LT slide
Using xvim with macvim
Using xvim with macvim
pebble8888
Exploring the x64
Exploring the x64
FFRI, Inc.
Webなどで人気の高いMySQLデータベースサーバーにおいて、DTraceを使った解析手法を紹介します。MySQLの構造的について簡単にお話しし、それをどのようにDTraceで追いかけるかについて説明します。
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめ
Mikiya Okuno
関西GPGPU勉強会(5/26/2012) DirectCompute の布教のために使用したスライドです. 内容の正確性は保証しません.
Hello, DirectCompute
Hello, DirectCompute
dasyprocta
DOMイベントの基礎から、細かい情報まで、最新のDOMイベントの仕様策定状況も含めて、解説しています。
DOMイベントの基礎から深淵まで
DOMイベントの基礎から深淵まで
Masayuki Nakano
オンラインゲームソリューション@トレジャーデータ
オンラインゲームソリューション@トレジャーデータ
Takahiro Inoue
Software Development with Symfony
Software Development with Symfony
Atsuhiro Kubo
株式会社オロ 新規事業開発チーム 後藤歩と申します。 NestJSは弊社の2つのプロダクトで1年ほど使っています。 (個人的にも1プロダクトで使っており、合計3プロダクトでNestJSを使って開発をしています) その実例をコードを交えてご紹介できればと思います。 システム構成 認証、認可、フレームワーク、DB、API、バリデーション、キューイング、スケジューリング、マイグレーション、テスト、- Swagger、i18nをどのようにやっているかのコードを交えて実例紹介 など
実践 NestJS
実践 NestJS
Ayumi Goto
Lecture at Yokohama National University
仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点
Kuniyasu Suzaki
2015/4/25のDroidKaigiの発表資料です。
進化するArt
進化するArt
Takuya Matsunaga
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
Akira Inoue
Presentation at MOSS10
Rとcdisc@moss10 公開用
Rとcdisc@moss10 公開用
Masafumi Okada
アンチウイルスという技術は我々が普段利用するコンピュータにおいて欠かせないものとなっている。今日ではほぼ全ての個人用パソコンにアンチウイルスソフトウェアがインストールされていると言っても過言ではない。 ではもしそんなアンチウイルスソフトウェアがセキュリティリスクを抱えていたらどうなるか? 我々は最も有名なアンチウイルスソフトウェアの一つであるWindows Defenderが持つ挙動を利用し、サンプルアプリケーションに対する検証コードを完成させた。 この攻撃に必要な条件はWindows Defenderが有効になっていることと、攻撃対象のアプリケーションがある一般的な方法で実装されていることである。 この攻撃手法は潜在的にかなり多くのアプリケーションに対して適用可能であると考えられ、唯一の汎用的な防御策はアンチウイルス機能を切るという、極めて非現実的な方法のみである。 本講演では、この攻撃手法の原理と現実のアプリケーションで起こりうるいくつかのケースについて説明し、一般的なアプリケーションの開発者やアンチウイルスソフトウェアベンダーがこれから気をつけるべき点について論じる。
[CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼
[CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼
CODE BLUE
詳解Dexファイルフォーマット
詳解Dexファイルフォーマット
Takuya Matsunaga
2019/12/07 に実施した Power Platform Winter'19 にて利用したスライド。Power Automate 上での JSON 値の扱い方あれこれ
JSON Value into Power Automate
JSON Value into Power Automate
Tomoyuki Obi
NetAdvantage for jQuery の グリッドコントロール、igGrid の入門編です。
IgGrid 入門編
IgGrid 入門編
Daizen Ikehara
Similar to Doom3 commentary
(20)
ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
cocos2d-xとCocosBuilderでゲームを作ってみよう
cocos2d-xとCocosBuilderでゲームを作ってみよう
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
Using xvim with macvim
Using xvim with macvim
Exploring the x64
Exploring the x64
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめ
Hello, DirectCompute
Hello, DirectCompute
DOMイベントの基礎から深淵まで
DOMイベントの基礎から深淵まで
オンラインゲームソリューション@トレジャーデータ
オンラインゲームソリューション@トレジャーデータ
Software Development with Symfony
Software Development with Symfony
実践 NestJS
実践 NestJS
仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点
進化するArt
進化するArt
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
Rとcdisc@moss10 公開用
Rとcdisc@moss10 公開用
[CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼
[CB19] アンチウイルスをオラクルとしたWindows Defenderに対する新しい攻撃手法 by 市川遼
詳解Dexファイルフォーマット
詳解Dexファイルフォーマット
JSON Value into Power Automate
JSON Value into Power Automate
IgGrid 入門編
IgGrid 入門編
Recently uploaded
Security-JAWS【第33回】 勉強会 https://s-jaws.doorkeeper.jp/events/173294
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
keikoitakurag
This presentation introduces a paper about offline reinforcement learning.
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
atsushi061452
2024/05/25 serverless Meetup osaka
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
サイバーエージェントAI事業部の新卒研修で利用したスライドを公開します。
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
This presentation introduces a paper about offline reinforcement learning.
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
YouTube nnabla channelの次の動画で利用したスライドです。 【AI論文解説】Consistency ModelとRectified Flow https://youtu.be/3IKCrAPe55k Consistency ModelとRectified Flowに関連する以下の論文を紹介しています。 Consistency models(解説編Part1で紹介) - “Consistency Models,” ICML 2023. - “Improved Techniques for Training Consistency Models,” ICLR 2024. - “Consistency Trajectory Models: Learning Probability Flow ODE Trajectory of Diffusion,” ICLR 2024. Rectified flow(解説編Part2で紹介) - “Flow Straight and Fast: Learning to Generate and Transfer Data with Rectified Flow,” ICLR 2023. - “InstaFlow: One Step is Enough for High-Quality Diffusion-Based Text-to-Image Generation,” ICLR 2024.
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
https://iotlt.connpass.com/event/318403/
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
Ayachika Kitazaki
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料) 2024年4月24日(水) 株式会社NTTデータグループ 技術開発本部 笠原 辰仁
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
Recently uploaded
(10)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
Doom3 commentary
1.
Doom3コード解説 (イベントシステムとカスタム
RTTI) @DADA246
2.
自己紹介 • 名前:多田 航@DADA246 •
ゲームプログラマやってます • 得意分野 C++,C#,GPU,javascript,PHP • 描画関係とかCIとか
3.
自己紹介 • 海外ゲーム歴 PC9801版Test Driveが最初? その後Doom、Diablo、StarCraft、
NetStorm から始まり、今ではSteam、Origin、iPhone で海外ゲームを遊んでいます 秋葉原で輸入ゲームも良く買ってます
4.
アジェンダ •
Doom3ゲーム概要 • Doom3コード概要 • idLib • エンティティ • カスタムRTTI • イベントシステム • まとめ
5.
Doom3とは? • id softwareが開発したFPS •
2004/8発売 • マルチプラットフォーム(Windows、Mac、 Linux) • メインプログラマはJohn Carmack • 2011/10にソースコードが公開された https://github.com/TTimo/doom3.gpl
6.
Doom3の特徴 •
狭い通路 • 懐中電灯と武器を切り替えるスタイル • ステンシルシャドウ • いくつかのカットシーン • スクリプトドリブンのレベルデザイン • コンソールウィンドウによるパラメータ 調整 →idの伝統
7.
John Carmack • id
Software設立者の一人で、 FPSの生みの親 • wolfenstein、Doom、Quake、 Rageなど数々のゲームを開発 • id Softwareのゲームはほとん どJohn Carmackが一人で書い ていると言われている
8.
Doom3のコードを読んでみる • Visual Studioで開く →neodoom.sln •
Visual Studio Expressでビルドするためにはコード からATLを外す必要がある →チャレンジしてみましたがビルド出来ませんで した… • ソースコードはGPLでもテクスチャなどのリソー スは公開されていません。Doom3を買う必要が あります
9.
コーディングスタイル •
C++ • stl、boostは不使用 • 例外、標準RTTIは不使用 • シンプルなテンプレート →2004年のコンパイラ事情や、John Carmackが書 いたコードということで、移植性と処理速度を 重視していると思われる(なにしろDoomを書いた プログラマーであり…そもそもQuake3まではC言 語だった)
10.
コーディングスタイル • C++の基本を押さえた書き方 →constの徹底 →最低限のvirtual →プリコンパイル済みヘッダー →クラスの前方宣言 • レガシーな書き方も残っている →変数宣言を関数の先頭で行っている →名前空間を使っていない
11.
全体構成 • Game →機種共通コード。別 verとしてGame-d3xpが ある • DoomDll →機種依存コード。 exeが出力されるのはコ レ
12.
idLib • ゲームタイトルに依存しない処理を集めたラ
イブラリ • エンディアンスワップ • 色定義 • タイマー • Key/value dictionary • ローカライズ用辞書 • 汎用ファイルフォーマット
13.
idLib • ハッシュ(CRC32,MD4,MD5) • テキスト(CmdArgs,Base64) •
コンテナ(2分探索,btree,ハッシュテーブル, リスト,リンクリスト,キュー,スタック,文字 列リスト, Vector Set …) →STLの代わり
14.
数学 • ベクトル • 行列 •
角度 • クォオータニオン • 複素数 • 乱数(線形合同法) • Lcp(Box Constrained Mixed Linear Complementarity Problem solver) • Polynormal(Polynomial of arbitrary degree with real coefficients)
15.
ジオメトリ •
DrawVert • JointTransform • Surface • Surface_Patch(Bezier patch surface) • Surface_Polytope(多面体) • Surface_SweptSpline • TraceModel(コリジョン用モデル) • Winding(任意凸形状) • Winding2D
16.
ODE(常微分方程式) • Euler法 • 4次のルンゲクッタ法
17.
衝突形状 • AABB,OBB,視錐台,球 • operatorオーバーロードを活用したシンプ
ルなコード
18.
プリュッカー座標系 • a way
to assign six homogenous coordinates to each line in projective 3-space(wikipedia)ら しいですが、詳細は理解していません。 • 衝突判定に6次元座標を使う?
19.
SIMD • Simd_GenericでC++の汎用実装をしつつ、一部
関数をSIMDに置き換えている • 以下の実装がある • 3DNow! • AltiVec • MMX • SSE • SSE2 • SSE3(2004年 Doom3発売年)
20.
SIMD • 処理負荷を計測する「テスト」が関数ご
と用意されている • 四則演算の他にTransformVertsなどの描画 演算や、UpSamplePCMTo44kHzなどのサウ ンド処理が実装されている
21.
アロケータ • MemoryBlock • DynamicAllocator •
ページアロケータ →大きめのメモリ確保はページ単位 小さめのメモリ確保はメモリプール (MemoryBlock)で行う
22.
TypeInfoプロジェクト • Type Info
Generator →NoGameTypeInfo.hを生成する
23.
CurlLib • Daniel StenbergのcURL(クライアントサイド
URL転送ライブラリ) • http://curl.haxx.se • ファイルシステムで使われている
24.
アジェンダ •
Doom3ゲーム概要 • Doom3コード概要 • idLib • エンティティ • カスタムRTTI • イベントシステム • まとめ
25.
エンティティ • ゲームオブジェクトはエンティティと呼ばれ、以下の種類が
ある • idAnimatedEntity(アニメーションするもの。ActorやPlayer) • idTestModel • idEntityFx • idAFAttachment(Articulated figure:多関節形状) • idAFEntity_Generic • idCursor3D • idWeapon(武器) • idLight(光源) • idBeam • idFuncEmitter • …
26.
エンティティの例 • idWeapon(武器制御) • 武器のOn/Offや、サウンド
などの他のモジュールの処 理を行っている
27.
idTypeInfo • カスタムRTTI • idClassでstaticな情報を扱うために存在する •
他のクラスからは直接触られず、idClass経由 で利用される
28.
idTypeInfo主なフィールド • クラス名 →文字列版とint版が用意されている →int版は通信対戦時のパケットに使う • 継承元のクラス名 •
イベント(メソッドを関数ポインタにしたもの。 後述) • セーブ、ロード時に使う関数ポインタ
29.
idTypeInfoの使い道 • クラス名の管理 →クラス名からインスタンスを生成する →デバッグ表示、エラー表示にクラス名を入 れる • 他のクラスと基底クラスが同じかどうか判
別 • イベントの管理
30.
idClass • idTypeInfoをstaticで所持している • イベントを実行する •
セーブ、ロードもある
31.
idClass主なメソッド • CreateInstance • GetClassname •
ListClasses_f → “Classname”, “Superclass”, “Type”, “Subclasses” の表示 • Spawn →エンティティ出現時に呼ばれる
32.
idClassイベント関連 • PostEventMS( const
idEventDef *ev, int time ) • PostEventSec( const idEventDef *ev, float time ) • ProcessEvent( const idEventDef *ev ) →各種イベント(関数ポインタ)の実行。後述
33.
idClass staticフィールド • static
int idClass::memused →クラスインスタンスの総メモリ使用量 • static int idClass::numobjects →クラスインスタンスの総数
34.
フィールド初期化忘れ対策 • idClass::CreateInstance →newするときにメモリ領域に0xcdcdcdcdを書い ておく →コンストラクタが走った後、メモリ領域に 0xcdcdcdcdがあるかどうかを調べて、フィール ドの初期化忘れを見つける Debugビルドでのみ上記チェックを行う
35.
idEntity • 様々な処理が集まっている •
thinking(物理更新やUpdate処理など) • visuals(描画処理) • animation • sound • entity binding(エンティティの親子関係) • physics • damage(体力を減らしたり) • scripting(スクリプトの処理、シグナル管理) • gui(GUIに命令を出す) • targets(別のエンティティのシグナルを送る)
36.
idAnimatedEntity • idEntityにアニメーション(idAnimator)を加
えたもの • idAnimator →複数チャンネルのモーションブレンドや、 親子構造が書いてあるが、詳細は割愛
37.
おさらい • idWeapon
38.
他のエンティティ • idLight(光源制御クラス) • 光源の方向や色を保持している •
On/Offやフェードも出来る • クラス階層がシンプル
39.
エンティティの一括管理 • エンティティはidGameLocalで一括管理さ
れている • idGameLocalでは全エンティティを所持す る他、エンティティの作成、削除、検索 ができる
40.
idGameLocal • 様々なモジュールの集合クラス •
Entity(全エンティティの管理) • Random • Program(スクリプト) • Clipping • Physics • PVS(potential visible set) • MultiPlayerGame • SmokeParticles • カメラ • ゲームの種類などの汎用情報 • …
41.
idGameLocal • 様々なメソッドを持つ •
Entityの出現、削除、検索 • ネットワーク対戦情報 • セーブ、ロード • ユーザー情報 • Draw • ゲームのリセット • Printf • マップのロード • AAS(area system)
42.
エンティティの検索 • 名前で検索
const char * name; idEntity* ent = gameLocal.FindEntity( name ); • Key Value Dictionaryで検索 const char * key; gameLocal.GetTargets(Key Value Dictionary, Entity, key );
43.
エンティティの検索 • クリッピング結果の取得 trace_t tr;//トレース結果用変数 gameLocal.clip.TracePoint(
tr,線分の開始地点,線分の終了地点, …); idEntity* ent = gameLocal.GetTraceEntity( tr );//エンティティの取得 ent->Signal( SIG_TOUCH );//シグナルの発行 ent->ProcessEvent( &EV_Touch, …);//イベントの実行
44.
エンティティ生成 • idTypeInfoで型指定してエンティティを生
成できる worldModel = static_cast< idAnimatedEntity * > ( gameLocal.SpawnEntityType( idAnimatedEntity::Type, NULL ) );
45.
アジェンダ •
Doom3ゲーム概要 • Doom3コード概要 • idLib • エンティティ • カスタムRTTI • イベントシステム • まとめ
46.
イベントシステム • C++の関数をスクリプトから呼ぶためのも
の • idEventとidEventDefで構成されている
47.
イベントを使った処理 • idWeaponで直接関数を呼
ばずにイベント (idClass::ProcessEvent)を経 由している
48.
イベントの登録 • 各種エンティティの先頭でidEventDefを宣
言 idEventDef EV_Weapon_Next( "nextWeapon" ); const … • その後マクロで関数をイベントに登録す CLASS_DECLARATION( idAnimatedEntity, idWeapon ) る EVENT( EV_Weapon_Next,idWeapon::Event_Next ) END_CLASS
49.
イベントの呼び出し • idClass::ProcessEventを呼ぶと、イベント登
録された関数が呼ばれる idEntity *other; other->ProcessEvent( &EV_Touch, this, &collision );
50.
スクリプト • イベントはスクリプトクラスでも使われ
ている • Script_Compiler • Script_Interpreter • Script_Program • Script_Thread
51.
スクリプトからのイベント呼び
出し • スクリプトからidInterpreter::CallEventでイ ベントを呼べる • idWeapon::Event_Clearといったメソッドを 直接呼び出さないでイベントを経由して いるのはスクリプトのため?
52.
まとめ • Doom3を読んでみました • 海外ゲームの基礎システムに興味を持って
頂ければ幸いです
53.
解説していないコード •
スクリプトコンパイラ • ファイルシステム • 物理 • アニメーション • Dedicated Server • 描画(renderEntity,qgl) • …
54.
Question?
55.
ご清聴ありがとうございました
Download now