XNA Framework 2.0 M@STER SESSION 01.

Slides:



Advertisements
Similar presentations
TCP/IP によるチャットプログラ ム 薄井 秀晃. 基礎知識編 TCP/IP とは? IP とは・・・ Internet Protocol の略称であり通信方法の技術的なルールで あり、実際にデータを送受信する前にデータを小さなデータ に分割し、それに発信元と受信先の IP アドレスを付加させて.
Advertisements

オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也. 講義計画(あくまで予定) 第 1 回 プログラミング言語の種類と歴史 第 2 回 eclipse の基本操作 第 3 回 eclipse のデバッグ機能 第 4 回 構造化プログラミングの復習 第 5 回 演習 第 6 回 構造化指向からオブジェクト指向へ.
本プレゼンテーション ( 以下、本書 ) で提供されている情報は、本書が 発表された時点における Microsoft の見解を述べたものです。市場 ニーズの変化に対応する必要があるため、本書は記載された内容の実 現に関する Microsoft の確約とはみなされないものとします。また本 書に記載された情報の正確さについて、保証するものではありません。
Web アプリをユーザー毎に カスタマイズ可能にする AOP フレームワーク
モバイルエージェントシステムの実装 エージェント移動(状態とコードの一括移送) エージェント移動の特徴 システム構成 エージェントプログラム
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
IIS 4.0で開発をするコツ Webアプリケーション構築.
Windows HPC Server を使ってみる
ファイアウォール 基礎教育 (4日目).
7-1.WEKOコンテンツ 一括登録 マニュアル Version2.5
TeX で数式を書くための PowerPoint アドイン Ver (2011/06/26) Ver. 0.1 (2007/5/30)
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
Web-EDI方式 シナリオ1 [実験番号] : 実験タイトル 1 :標準類の評価
IGD Working Committee Update
Lync 会議 Lync 会議に参加する Lync 会議をスケジュールする 会議のオプションを設定する
USB2.0対応PICマイコンによる データ取得システムの開発
コンポーネントの再利用に必要な情報 えムナウ (児玉宏之)
コンポーネントの再利用に必要な情報 えムナウ (児玉宏之)
RTミドルウェアによるシステムの構築 現在,RTミドルウェアの利用が進んでいる ⇒機能要素のRTコンポーネント化を行うことで
オブジェクト指向プログラミング(2) OOPの三大要素 「クラス」「ポリモーフィズム」「継承」
「まめだくん Ver.1.0」 特徴と利用方法.
第9章 オブジェクトの構築 日下部研究室 修士2年 秋本 浩平.
USB2.0対応PICを用いたデータロガーの製作
トランスポート層.
第20章 Flyweight ~同じものを共有して無駄をなくす~
データ分析基礎c(2012年以降入学) 情報編集基礎c(2011年以前入学)
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
GoNET 競合比較 POPCHAT 2015年04月 アイビーソリューション株式会社.
Microsoft Office クイックガイド ~OneNote 2013~
Windows Phone 7.5 の データ アクセスとクラウド連携
プログラミング演習3 第2回 GUIの復習.
第8章 Web技術とセキュリティ   岡本 好未.
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
チーム FSEL 立命館大学情報理工学部 ソフトウェア基礎技術研究室
ネットワークプログラミング 中村 修.
過負荷時の分散ソフトウェアの 性能劣化を改善する スケジューリングの提案
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
XNAアプリ→WindowsPhone \(\◇ ̄ )ヘン~(  ̄▽/)ゝシン!!! \(○ `O´ ○)/トゥーー!!
Office IME 2010 を使う.
3D散歩ゲーム 08A2043 谷口盛海 種田研究室.
XNA Framework 2.0 SESSION 01.
ソケットプログラム(TCP,UDP) EasyChat開発
.NET Framework 3.0 概要 (旧称 : WinFX)
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
プログラミング基礎a 第10回 Javaによる図形処理入門(2) GUIの使い方
ゲーム開発モデルの基礎.
COM コンポーネント・オブジェクト・モデル.
プログラミング基礎a 第10回 Javaによる図形処理入門(2) GUIの使い方
プログラミング基礎a 第12回 Java言語による図形処理入門(3) アニメーション入門
プログラミング基礎a 第11回 Java言語による図形処理入門(3) アニメーション入門
ネットワークプログラミング 05A1302 円田 優輝.
1-3 UMLの図(ダイアグラム) コンポーネント図 システムの物理的な構成を表現 ソフトウェアコンポーネントの依存性を表現
とにかくゲーム作ってみよう (0からのゲームプログラミング)
情報共有による Z39.50データベース選択支援環境
★C++/オブジェクト指向実践企画★ Othelloゲーム作成
福岡工業大学 情報工学部 情報工学科 種田研究室 于 聡
C#プログラミング実習 第3回.
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
@MD-NET Web-EDI導入について ~ 説明会資料 ~
「拝啓、さかもとと申します」 2008年6月28日 わんくま同盟 勉強会初参戦。 ※最重要 -質問はご遠慮願います-
ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装
ゲームのタスクシステム 導入編 レベル2くまー By keychan.
バネモデルの シミュレータ作成 精密工学科プログラミング基礎 資料.
「拝啓、さかもとと申します」 2008年6月28日 わんくま同盟 勉強会初参戦。 ※最重要 -質問はご遠慮願います-
プログラム分散化のための アスペクト指向言語
WindowsグラフィックスとDirectX
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
プロジェクト演習Ⅳ・Ⅵ インタラクティブゲーム制作
プログラミング実習(Java) グラフィクス処理とGUIプログラミング 講師:坂口 利裕(横浜市立大学)
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
Presentation transcript:

XNA Framework 2.0 M@STER SESSION 01

システム基盤は .NET Framework マネージ環境で実行 クロスプラットフォーム DirectX, MDX から独立している XNA Framework の技術的背景 システム基盤は .NET Framework マネージ環境で実行 クロスプラットフォーム Windows, Xbox360, Zune DirectX, MDX から独立している

XNA Game Studio (Visual Studio 2005) 開発・実行環境の構造 XNA Game Studio Visual Studio 2005 を拡張したゲーム開発環境。 コードの他に、画像などのコンテンツ管理機能も備わっている。 XNA Framework クロスプラットフォームのゲーム開発用フレームワーク CLI 共通言語基盤    ISO で承認されている国際標準規格 XNA Game Studio (Visual Studio 2005) XNA Framework .NET Framework .NET Compact Framework for Xbox 360 CLI Windows PC Xbox 360

主な名前空間 Microsoft.Xna.Framework Microsoft.Xna.Framework.Graphics 基礎的なゲームの機能 Microsoft.Xna.Framework.Graphics グラフィック関連 Microsoft.Xna.Framework.Content コンテンツ管理 Microsoft.Xna.Framework.Audio オーディオ再生 Microsoft.Xna.Framework.Input コントローラ、マウス、キーボード入力 Microsoft.Xna.Framework.Storage ストレージ選択 Microsoft.Xna.Framework.GamerServices ゲーマーサービス Microsoft.Xna.Framework.Net ネットワーク

Game クラスを継承する コンストラクタ Initialize() メソッド LoadContent() メソッド ゲームループ ゲームの起動 Game クラスを継承する コンストラクタ 継承クラス固有の初期化 Initialize() メソッド Game に関連した初期化処理 LoadContent() メソッド リソース・コンテンツの生成・読み込み・初期化 ゲームループ Update() メソッド ゲームデータの更新 Draw() メソッド ゲームの描画 UnloadContent() メソッド リソース・コンテンツの破棄・解放

ゲームの流れ Run Initialize 初期化 ゲーム起動 LoadContent コンテンツの読み込み BeginRun 開始前処理 データ更新 Upload ゲームループ Draw フレーム描画 EndRun 終了前処理 ゲーム終了 UnloadContent コンテンツの解放

Update() メソッド Draw() メソッド ゲームデータを「次」の状態に更新する コントローラなどの入力を受ける ゲームループ Update() メソッド ゲームデータを「次」の状態に更新する コントローラなどの入力を受ける 関連するコンポーネント、機能の更新 他のあらゆる処理よりも優先される Draw() メソッド ゲーム画面(フレーム)を構築する 処理が遅れている場合は省略される

固定ステップ 可変ステップ デフォルトの設定 1フレームを呼び出す時間間隔を固定する 常に一定の速度でゲームを進行できる 固定と可変ステップ 固定ステップ デフォルトの設定 1フレームを呼び出す時間間隔を固定する 常に一定の速度でゲームを進行できる 処理が遅れた場合は Draw() を省略 可変ステップ 可能な限り早い速度でフレームを描画する

安定したゲームループの実行が重要 ゲームはリアルタイムシステム メモリ管理が重要 目標の時間内に処理を終わらせる パフォーマンス 安定したゲームループの実行が重要 ゲームはリアルタイムシステム 目標の時間内に処理を終わらせる 秒 60 回の Draw() が目標 1 フレームの描画は 16.6 ミリ秒 メモリ管理が重要 インスタンス化と破棄の効率化 変換処理の効率化

擬似的に2次元グラフィックスを描画できる(スプライト) Microsoft.Xna.Framework.Graphics 名前空間 高度な3次元グラフィックス処理が可能 基本的な機能は BasicEffect でサポート HLSLを使用したエフェクトの記述 モデルの描画(X、FBX に対応) 擬似的に2次元グラフィックスを描画できる(スプライト)

SpriteBatch クラス Texture2D 擬似的に、画像やフォントを描画する Draw() メソッド 画像の描画 SpriteBatch クラス 擬似的に、画像やフォントを描画する Draw() メソッド 画像を指定座標に描画する DrawString() メソッド 文字列を指定されたフォントで描画する Texture2D ビットマップ画像を表す

GraphicsDevice の管理は複雑 デバイス管理 GraphicsDevice の管理は複雑 適切なデバイスの選択 デバイスの初期化・設定 画面モードの遷移 GraphicsDeviceManager デバイスの生成・管理を代行 手動管理も可能だが、まずやらない

事前コンパイルによる最適化 アセット 画像・3Dモデル・音声・フォントなどには、ゲームに関係のないデータが含まれているため冗長である コンテンツ・パイプライン 事前コンパイルによる最適化 画像・3Dモデル・音声・フォントなどには、ゲームに関係のないデータが含まれているため冗長である ビルド時に、データをオブジェクト表現可能なバイナリに直列化し、実行時の負担を軽減する Windows 用プロジェクトと Xbox 360 用プロジェクトでリソースを共有できる 独自のデータ形式を組み込むことも可能 アセット ビルド時にリソースをコンパイルし、直列化したデータ アセット名から、実行時にデータを読み込むことができる

ContentManager ゲームのコンテンツを管理する Load<T>() メソッド アセットの読み込み 実行時にアセット名からファイルを読み込み、適切なオブジェクトとして返す

再利用可能なゲームの部品化 ゲームコンポーネント ゲームサービス GameComponent クラスを継承して作成 データ更新、描画の移譲 コンポーネント化とサービス 再利用可能なゲームの部品化 ゲームコンポーネント GameComponent クラスを継承して作成 データ更新、描画の移譲 ゲームに対し、任意に追加・削除できる ゲームサービス サービスプロバイダの提供 疎結合でコンポーネントを連携させる仲介機能

ゲーマーサービスの機能 ガイドの提供 アカウントのサインイン・サインアウト メッセージの表示 キーボード入力 ストレージの選択

GamerServicesComponent ゲーマーサービスへの対応 GamerServicesComponent XNA Framework の開発モデルに従う コンポーネントとしてゲームに登録可能 GamerServicesDispatcher のラッパー GamerServicesDispatcher ゲーマーサービスの提供 Initialize() と Update() の呼び出しが必須 開発モデルに依存しない

LAN (システムリンク)、Live に対応 クロスプラットフォーム セッション単位による通信管理 ネットワーク LAN (システムリンク)、Live に対応 クロスプラットフォーム セッション単位による通信管理 ホストによるセッションの作成 セッションの検索・参加 信頼性のあるUDPプロトコル パケット単位のデータ送受信 低水準なパケット管理は不要 信頼性の制御が可能

プレイヤーを接続させる部屋 ホスト セッションへの参加 セッションを作成したゲーム ゲームの状態、参加者数などを管理 他の参加者の参加を待機 セッションの検索 セッションの参加

セッションは GUID に関連付けられる Xbox Live アーケードの制限 セッション検索 セッションは GUID に関連付けられる 実行中のアセンブリと同一の GUID のゲームによって作られたセッションを検索する GUID を一致させれば、異なるプロジェクトによって作られたゲームの間での通信も可能 Xbox Live アーケードの制限 ゲームは GUID によって識別される 同じ GUID のゲームを複数配置できない 同一タイトルでも GUID が異なれば配置可能

PacketWriter によるデータ送信 データの送受信 バイト配列の送受信 最もシンプルな方法だが、データを直列化する必要がある。 PacketWriter によるデータ送信 BinaryWriter を継承するクラス 基本的なデータ型の Write() メソッドを実装 PacketReader によるデータ受信 BinaryReader を継承するクラス 基本的なデータ型の Read~() メソッドを実装

XNA Game Studio で作るマインスイーパ 参考 XNA デベロッパーセンター http://www.microsoft.com/japan/msdn/xna/ XNA Game Studio で作るマインスイーパ http://www.microsoft.com/japan/msdn/vstudio/express/learn/xna/ XNA Japan Team Blog XNA Team Blog (英語) http://blogs.msdn.com/xna/