星期四, 五月 31, 2007

在Vista上安装XNA Game Studio Express 1.0 Refresh

XNA GSE 1.0 Refresh发布已经有好一段时间了,一直没有去摆弄,今天有点时间就在我的Vista机器上装上了试试。我的操作系统是英文版的Vista Ultimate

首先,需要安装VC# Express,很多朋友机器上可能已经安装了VS2005,没有关系,VC# Express完全不影响VS2005,我的机器就是之前就安装了VS2005,装好后VC#并没有在任何地方添加快捷方式,需要到C:\Program Files\Microsoft Visual Studio 8\Common7\IDE下手动为VCSExpress.exe添加快捷方式到桌面,方便以后启动VC#。

接着需要安装VS Express SP1,这里是下载地址http://www.microsoft.com/downloads/details.aspx?familyid=7b0b0339-613a-46e6-ab4d-080d4d4a8c4e&displaylang=en
只要下载第3个安装就可以。下好后安装之。

1.0 Refresh的Readme中说需要去注册VC#,就是打开VC#后,在Help菜单下选择Register Product...,我去注册了,也收到邮件了,但是收到的邮件里面只是一些相关链接,最终我也没有弄明白什么样算把VC#注册成功(如果你注册成功了,请也告诉我方法,我的邮箱ledwinka@gmail.com)。不管它,启动一次VC#,再关闭,记住,这很重要,必须运行一次再安装XNA GSE。

现在就可以开始安装XNA GSE 1.0 Refresh了,一切顺利,next到底。

再启动VC#,新建工程,可以看到有几个新的工程选项,Window Game,windows Game library,Xbox 360 Game,Xbox 360 Game library,SpaceWar windows starter Kit,SpaceWar Xbox 360 starter Kit。新建一个SpaceWar windows starter Kit项目,ctrl+F5,看到熟悉的Spacewar啦,Xbox 360的我没有试过,有机器的同学可以试试啊。这个Spacerwar不需要修改任何代码就可以使用键盘操作了,比以前的XNA GSE beta方便多了。

星期五, 五月 25, 2007

关于搜索引擎

How to become an MVP

这个是一个老外MVP的blog,很赞同他的观点,大多数的人仅仅是懒得用搜索引擎去查找他们需要的问题答案,论坛里面可以非常方便提问再等人回答。

如果想真的研究什么东西,勤劳点使用搜索引擎吧

星期四, 五月 24, 2007

XNA GSE入门(七)不写代码,制作粒子效果

利用Mercury Particle 引擎中的粒子GameComponent,我们可以很快的制作跟随鼠标的粒子效果。
先去Mercury Particle Engine的网站下载源码,解压缩开。然后新建一个XNA工程,在解决方案中把Mercury的工程添加进来。

切换到Game的设计窗口,在toolbox中拖出来3个组件,分别是Mouse Controller,Particle System,Spray Emitter,

选择Mouse Controller1,在它的属性窗口中,把ControlledEmitter选成sprayEmitter1


选择Spay Emitter1,在它是属性窗口中,把Particle System属性设置成ParticleSystem1,AutoTrigger设置成True,将FinalColor设置成Cyan,将AutoTriggerFrequency设置成10

Ctrl+F5,运行游戏,移动鼠标




XNA GSE入门(六)让GameComponent的属性可视化

上一次说过了可以制作GameComponent实现代码的共享,重用。我们制作好的GameComponent可以直接从toolbox中拖拽到游戏中,而不编写任何代码。

如果某个GameComponent有的属性需要让用户可以通过属性窗口更改,可以在属性前添加如下代码 private int myVar; /// /// Gets or sets the initial myVar /// [Category(”Misc”)] [Description(”init myVar “)] [DefaultValue(0)] public int MyProperty { get { return myVar; } set { myVar = value; } }这样就可以在属性窗口中修改myVar这个属性的值了

补漏:需要在TestComponent.cs文件开始的地方加入 using System.ComponentModel;
才可以正常使用

UBI大量未发布的游戏资源泄露


大量没有发布的游戏的截屏,图标,演示动画被泄露在因特网上,包括很多Far Cry和Splite Cell的新作,下面是涉及到的游戏的名单
Far Cry 2
Far Cry PSP
Far Cry Wii
Lost
Naruto 360
Open Season
Prince of Persia 4
Rainbow 6: Vegas
Rocky PSP
Splinter Cell Conviction
Surf’s Up
Star Wars PSP
Shaun White Snowboarding
Teenage Mutant Ninja Turtles GBA
这个是UBI今年第二次发生类似事件了,今年3月份,一份开发计划被泄露,包括了很多当时未发行的游戏的制作发行计划。

XNA GSE入门(五) GameComponent

GameComponent是什么?
GameComponent在XNA中是实现可视化游戏编程的一个重要方式。从概念上说,GameComponent应该算是一种编程模式,只要按这种模式写出来的代码,就可以在其他XNA项目中重用。这种编程模式非常利于代码的分享,这和XNA定位于免费发放给游戏爱好者是相关的。
GameComponent有什么用?
任何一个GameComponent都派生于GameComponent 类,GameComponent类有3个函数可以覆盖(override)
Draw 添加新的绘图代码
Update 添加逻辑更新的代码
Start 添加在游戏初始化时候需要运行的代码

在VC# 2005 EE里面,我们可以通过选择Project->Add New Item添加新的GameComponent,并且向导会为我们生成这3个函数的覆盖(override)代码
Game类里面的DrawComponent函数会依次调用每一个注册过的GameComponent的Draw函数。UpdateComponent则调用注册过的GameComponent的Update函数。在一个Game类里面注册GameComponent,要通过调用Game 类成员变量GameComponents的Add函数,GameComponents是一个GameComponentsCollection的对象。例如:
this.GameComponents.Add(this.testComponent);


GameComponent一般用来封装一些用户操作,也可以用来管理用户界面,比如在3D游戏中对第一人称摄像机的控制代码封装在一个GameComponent中,那么其他人需要实现一个FPS游戏就可以直接用了,如果将一些GameComponent做成dll发布,并将这些GameComponent添加到ToolBox里面,还可以实现可视化的编程。也可以将GameComponent作为游戏中的对象,比如一个游戏中的3d人物,把3d人物更新代码和绘制代码都放入一个GameComponent。不过这种用法我觉得是不可取的,因为这已经失去GameComponent类设计本意了。目前老外已经发布了一些好用了GameComponent了,大家有兴趣可以收集来做备用。如果你写出来也个好用的GameComponent,也请和大家分享。我觉得很有可能以后有专门收集XNA GameComponent的网站:)

XNA GSE入门(四) 输入设备

输入设备的种类
XNA GSE支持三类输入设备,键盘,鼠标和Xbox360的手柄,前两者是在PC上支持的,而后两者在Xbox360上支持。
XNA将输入的内容分为两类,一种是模拟的,输入的内容是有一定数值范围。一种是数字的,只有2种状态,0和1。这并不是说某一个设备就一定是模拟的或者数字的,比如说鼠标,即有数字的输入,比如左右键的状态作为输入;又有模拟的输入,比如滚轮的位置和指针的位置。具体的内容参见XNA文档里面的列表
Input Device
Digital Buttons
Analog Controls
Vibration Effects
Supported on Windows
Supported on Xbox 360
Number Allowed on System
Xbox 360 Controller
14
4
Yes
Yes
Yes
4
Keyboard
> 100
0
No
Yes
Yes
1
Mouse
2
2
No
Yes
No
1
我们可以看到,出了键盘是完全数字的,其他两种都同时包含数字输入和模拟输入。列表中的最后一栏表示支持同时使用设备的数量,手柄可以同时用4个。也就是说,我们最多可以开发4人在同一台机器上操作的游戏。
输入内容的获取XNA的输入部分应该是封装了Direct Input的接口而来的。操作方式和Direct Input的非常类似,通过调用函数查询设备状态时,就是给输入设备拍一次快照,将结果保存在一个结构中,然后游戏根据保存的数据将用户的交互传递给游戏引擎。取得设备状态的静态类主要有Mouse,Keyboard,Gamepad,它们提供访问设备的方法;对应的状态类,保存状态数据和对状态数据做一些基本操作MouseState,KeyboardState,GamepadState。
键盘
KeyboardState类用来保存键盘状态,通过调用Keyboard类的静态函数GetState获得当前键盘状态
例如:KeyboardState currentState = Keyboard.GetState();
测试某个键是否按下currentState .IsKeyDown(Keys.A); 测试某个键是否是松开currentState .IsKeyUp(Keys.A); 取得哪些键是按下的Keys[] keys = currentState ..GetPressedKeys();由于这样一种查询的方式,我们如果要知道这一帧哪个见被按下,就需要做一些额外的工作,而不能像在windows下那么直接去捕获WM_KEYDOWN或者WM_KEYUP,文档中的例子刚好解决了这个问题。

鼠标
和键盘基本一样
例如:MouseState mousestate = Mouse.GetState();
取得鼠标位置 int x = mousestate.X
取得按键状态 ButtonState buttonstate = mousestate. LeftButton;
Xbox360手柄
取得按键状态和键盘鼠标基本一样,具体参见文档。和它们不一样的是,手柄需要可以是否连接上
GamepadState. IsConnected用来表示设备是否连上。不过记住,这个只是一个设备快照,要实时监控手柄是否连上,需要不断调用Gamepad.GetState查询。

游戏引擎列表

Engines
_AI Engine
BioGraphic Technologies - Advanced AI for Games, Animation and Simulation
FEAR — Foundations for Genuine Game AI
OpenSteer
_Net Engine
Rakkarsoft
Gamewiz
Arkhart — Arkhart
The ADAPTIVE Communication Environment (ACE)
enet
Hawk Software - HawkNL (Hawk Network Library)
www.lonesock.net - _The_ home for stuff
OpenTNL
_Physics Engine
Open Dynamics Engine - ODE
Tokamak Game Physics SDK
NovodeX - game development technology
Newton Game Dynamics
OPCODE
Antics by Kelseus
meqon – physics engine middleware for games and VR – Naturally Realistic
EZPhysics - Home
2D Engine
Tile Studio
The Scrolling Game Development Kit Homepage
OpenRPG Online Virtual Tabletop
SxDL Game Development Toolkit Latest News
Explorations 32bit (Official Home Page)
Cyberjoueurs.com Corporate Center
YOV408 Technologies - Projects
CDX Library
Game Maker Pages
Game Maker Games Home
Features
BYOND Games!
OHRRPGCE - News
Planet ZZT++
z2
The CImg Library - C++ Template Image Processing Library
Allegro.cc - Main
The SDL Archives
g2 graphical library
libAfterImage Imaging Library.
http–www.artofcode.com-libart.html
ImageMagick - Convert, Edit, and Compose Images
ClanLib - ClanLib Game SDK
DXGame Engine For Visual Basic - 2D Game Engine For Visual Basic - Program your own games using Visual Basic - The 2D Arcade Game Engine For Visual Basic
Wiz2D Game Engine
Haaf’s Game Engine - Hardware accelerated 2D game engine
Developer’s Lair
The Game Development Search Engine
Game engine for Mac os X and Win 32
crowsoft.net
Intro Page
Grim 2D API - hardware accelerated 2D graphics
freedesktop.org
Jarrod Davis Software
GemRB Infinity Engine Emulator Your personalized Infinity Engine Emulator
Official OpenGUI home page
K-werkx 2d REALBasic Game Engine Source Distribution - K-werkx Inc. Download Center
SciTech Software, Inc - Better Ideas, Open Solutions.
SourceForge.net- Project Info - engine testbed
Chunked LOD
New Virtual U - Home
Adventure Game Studio
Eclipse 2D Game Engine
OpenPTC
The Demo Effects Collection
Visual Effects Engine - VEE
SpriteWorld 3.0
OpenPTC vs. TinyPTC
isometric
IsometriX project - free isometric engine
PPTactical Engine
Other
HZ - a real-time action strategy engine
Links
Ultimate 3D Links - 3D Programming DirectX
Pcvelocity.com Computer Help Forum
WEB-GEEK.COM Computers Programming Games Libraries
Online
Quazal Multiplayer Connectivity
The VERGE game creation system free games since 1997.
The Cycon Online Gaming (COG) Engine
The Lost Realm of Anoria
. Sekoya etc. . Open-Source Game Dev.
Crossfire - The Multiplayer Adventure Game
Daimonin MMORPG
Underworld - Free Online Multiplayer Game
Ovorp The Worlds Most Powerful 2D Game Engien
Shadow Worlds Bruderschaft der Schwerter
BYOND Games!
3D Engine
- 2003 GameDev Vault
.. Auran Jet ..
3D Engines List
3DGE v2.2 - The Original Twilight 3D Engine
4D Rulers AMP 3D Engine
A6 Editions Table
AMP 2 Engine Demo
Aztica.Com
Crystal Space 3D
Crytek.com
Curriculum Vitae of Arnout van der Kamp
Cyberjoueurs.com Corporate Center
DarkBASIC Professional - Home
Fairy Engine’s Page
Flat Four Engine
Fly3D.com.br
FreeCraft - A free real-time strategy game engine
freshmeat.net Welcome to freshmeat.net
Game Programming, Easy 3D Development Engine
gameSpace - 3D game tools
GDSE - The Game Programming and Design Search Engine
Genesis3D Open Source Engine
http–alias25.cfxweb.net-
Jet3D
JTGame - 3D Game Framework for DirectX - Introduction
Nebula - WebHome
NeHe Productions Main Page
NeoEngine
OGRE Object-oriented Graphics Rendering Engine
Opus System Solutions Hosting Network Design Web Page Design Hardware Solutions
Panard Vision Realtime 3D Engine
Paralelo
Particle Systems API
PathEngine home
PLIB A Portable Games Library.
QSDK Administrative Authentication
Qube Software
Radon Labs GmbH Berlin Homepage
Radon Labs Homepage
Real-Time Rendering Resources
Real.com - Guide - Games
Reality Factory Open Source Project
RealNetworks.com - Request for RADS
Relic Developers Network
Revolution3D Graphics Engine
S.T.A.L.K.E.R. - X-Ray Engine
S2Games
SeriousEngine.com - Main - WebHome
SilverBack Technologies - IT monitoring software solutions
SourceForge.net Project Info - OGRE (O-O Graphics Rendering Engine)
SourceForge.net Project Info - The Nebula Device
Synaptic Soup - News
The Engine Software Homepage
TrueVision3D When you have a clear picture, you have TrueVision3D
UDN - Main - WebHome
Ultrafast DirectX 3D Game Five Elements Masters Ultrafish 3D Tic Tac Toe
V3X - 3D ENGINE - Realtech-vr.com
Vulpine GmbH
Welcome to RenderWare
Welcome! - Quest3D
Nolf Girl - The Ultimate Nolf Site - @ NEW Server!
Axiom A free, open source C# 3D game engine for the Microsoft.Net platform
Nevrax.org home
Powered By Unreal Technology
Delgine Project
http–www.cyberloonies.com-game-engines.html
codecult - the realtime company
Hawk Software - HawkNL (Hawk Network Library)
cfxweb
open source
Irrlicht Engine - A free open source 3d engine
Definition of Game engine - wordIQ Dictionary & Encyclopedia
Devlib Central
OpenGEL’s Website Site Web d’OpenGEL version 2.0
Agency9 AgentFX 2 - 3D-engine
3D 3DSTATE
Gamebryo.com ~ Home
Zona - The complete MMOG Network Solution
Free Graphics Libraries, 3D-2D Engines, Image Drawing, Animation Source Code (thefreecountry.com)
Ovorp The Worlds Most Powerful 2D Game Engien
WikiNeL - Main.HomePage
CMLabs Simulations Welcome to CMLabs
Xeonx Studios Home of RealmForge, the open-source game development framework for Mono-C#
Source Licensing
DESGRAFF multimedia
kjAPI Home Page - Redirect by ulimit.com
Welcome to V3X.NET - 3D ENGINE
Game Physics Downloads
Welcome to MAXON - 3D for the real world
Panda3D Home
Reality Factory Game Creation Suite
WXP - The Whole Experience - Xbox Game Developers
The New Phantom Cyberspace 3D
GL Excess - The OpenGL Demo
TVDN Online Help
Visual Effects Engine - VEE
3D Object Converter
Aurora Interactive Aurora 3D Rendering Engine
OpenSceneGraph - the high peformance open source graphics toolkit
Prototype 3D Engine for Game Programming and Multimedia development.
Mythic Perspective
kjAPI - 3D GAME C++ API
http–www.ssassh.com
The Official Blitz Website
Magic Software
Titan Project
..– Auran Jet –..
Sylphis 3D Developer Network -
Ca3DE - Carsten’s 3D Engine - A high-quality, extensible, real-time 3D graphics engine with multi-player network support
Artificial Studios & Reality Engine
Soular Souls - X-VP Homepage
BuNg- 3D Game Engine
http—zengine.gotdns.com-
.- IrrlichtNX - Startpage -.
A U R A N . C O M
Gryps Engine
Bieh Software
The Omicron Engine Project
http—www.crack.com-golgotha-
Tanzanite TechNature
PC Game Programming
ELDERMAGE.COM - Your Internet Resource for music lyrics, sports, fun and online casino gambling
Link Portal to GizmoSDK (GizmoBase,Gizmo3D)
QBism Game Engine
SyFlex - The Cloth Simulator
ShaderWorks.com
Cal3d - Character Animation Library
Agency9 — AgentFX™ 2
Arkham Development
Eternity 3D Engine — home
Insanity3D - technology behind games
Virtools, The Behavior Company
OPCODE
The Yake Engine
physics
PC Game Programming
Tokamak Game Physics SDK
NeL
nel-all Archives
mtp-target
Shadows of Arborlon A Massively Multiplayer Online Role Playing Game
NeL - Summary [Savannah]
Index of -download-cvs
NeL - CVS [Savannah]
Gryps Engine
Unreal
Unreal Technology presented by 3DBuzz.com - Forums
Online
Psyberia.com - Home of PsyberSpace-3D!
XMUD
Vicarious Visions, Inc Technology
Gamebryo.com ~ Home
X-NAS Home
PlaneShift - A 3D Fantasy MMORPG
Nekeme prod. — Nekeme prod.
Athena - Welcome
eAthena Message Board Home
FSO Classic 1.4 The OFFICIAL first star online server - hosted by the creator.
Micro Forté
Welcome to the WorldForge Project.
Evil Gamers We Make The Game You Make The Rules
MindEngine Development
www.Eternal-Lands.com - The official EL Website!
Sauerbraten SourceForge Web Page
BigWorld Technology
Zona - The complete MMOG Network Solution
PLANESHIFT - A FREE 3D FANTASY MMORPG
Genecys
Arianne - A Multiplayer Online Role Playing Framework to develop games -
Nevrax
Ovorp The Worlds Most Powerful 2D Game Engien
Reality Factory Open Source Project - Advanced Game Creation Suite
The Official Blitz Website
Neo Productions.net - Release date When we feel like it(tm)
The Mana World Home page
Welcome to V3X.NET - 3D ENGINE
The Genecys Project - The Genecys Project
RuneScape - the massive online adventure game by Jagex Ltd
Amar o Sigon - MMORPG
Zero Point Gameplay
Nautix Let your Avatar rule the Planet…
Chrono Resurrection - Project discontinued
http–tdpteam.sourceforge.net-
Nebula
Cygon’s Nebula Device Tutorial
Nebula compilation notes
Links
3D Engines and 3D Game Engine
3dengines.net
CFXweb Links 3D_Engines-Demos
flipCode - Game Development News & Resources
GameEngines
DevMaster.net - 3D Game and Graphics Engines Database
Engine
Game Creation Resources
http—www.cgengine.com-
codemonsters programming
Info
3DAvenue.com - 3D Game Engines
Commercial
Ca3DE - Carsten’s 3D Engine - A high-quality, extensible, real-time 3D graphics engine with multi-player network support.
Cipher - Game Engine
Crytek Technology CryENGINE Specifications v1.0
Deep Shadows entrance
Quesa
crytek news v1.3
Seriously! - Official Fansite for the Serious Sam Series, Alpha Black Zero, and Nitro Family
Nevrax.org home
FarCry News Current
Welcome! - Quest3D
http–reality.artificialstudios.com-twiki-bin-view-Main-WebHome
Gamebryo.com ~ Home
4D Rulers AMP 3D Engine
IOI - Glacier Page1
Favorites
Haaf’s Game Engine - Hardware accelerated 2D game engine
codemonsters programming
Radiant
ゲーム開発系ニュース@ゲムデブ
kjAPI - 3D GAME C++ API
The Code Project - Free Source Code and Tutorials
Crazy Eddie’s GUI System
level Editor
Radiant
GUI
Programming
Irrlight
Irrlicht Engine - A free open source 3d engine
Irrlicht A GoGo - Top
Engine Lists
3dengines.net
DevMaster.net - 3D Game and Graphics Engines Database
http—www.cgengine.com-
TWINTAIL LOVERS.
GamDevPukiWiki - ライブラリ
3DEL- All engines
3D-Engines - Your 3D-Engine List
3DLinks.com - Ultimate 3D Links - 3D Programming - Engines & Toolkits -
Physice Engine
Open Dynamics Engine - ODE
PC Game Programming
OPCODE
Tokamak Game Physics SDK
Nevrax
NovodeX - game development technology
EZPhysics - Home
Network Engine
The ADAPTIVE Communication Environment (ACE)
Rakkarsoft
OpenTNL
OGRE
OGRE Object-oriented Graphics Rendering Engine
Ogre Forums Index
OGRE Tutorials
SourceForge.net- Project Info - OGRE (O-O Graphics Rendering Engine)
DIE
Jeff’s Ogre Projects
Crazy Eddie’s GUI System
Index of -nogredex
Icetec Studios
Green Eyed Monster
Ogre Forums — View topic - The OgreOde Thread
Bad Camel Gaming - Site News
Games
Pizza Game
Soccar- Soccer with cars
Engine
Scott Beckstead’s Home Page
openFRAG
Pages
Primed Games
Tools
3D Object Converter
Demos
water rendering with projected grid
Allegro
Allegro Vivace (seventh draft)
Allegro.cc - Main
ClanLib
ClanLib Game SDK ClanLib - Documentation
ClanLib - ClanLib Game SDK
SourceForge.net clanlib-user
TCL TK
Tcl-Tk中文网
TCL WWW Info
Tcl Developer Site
Torque
TorqueTerrain
ToRKGameDev Game Development with Torque
GarageGames - Torque Game Engine - Home Page
GarageGames - Forum Areas
Truevision3D
Truevision3D When you have a clear picture, you have TrueVision3D
Truevision3D Community Forums
.[ TV3dFilez ] .
Tokamak
adamdawes.com - Tokamak physics
NeoEngine
NeoEngine - Open Source 3D Game Engine
openFRAG
Nebula
T H E - F L O A T I N G - I S L E
Nebula - WebHome
Nebula Device Tutorials
The Nebula Device 2
SourceForge.net Forums for The Nebula Device
SourceForge.net- nebuladevice-discuss
SourceForge.net- Mailing Lists for The Nebula Device
Radon Labs GmbH Berlin Homepage
Core Nebula Device
enet
Japanese
3D Engine
NETDIMENSION Home Page
TWINTAIL LOVERS.
Irrlicht A GoGo - Top
バーチャルゲームライブラリー GameCatapult Ver0.3
Lamp:教育的かつ実用性のあるゲームミドルウェア
GamDevPukiWiki - EasyLinkLibraryまとめ
Links
各種ライブラリ紹介スレ
2D Engine
C MAGAZINE - ライブラリ
BM98′S ROOMつう
DXライブラリ置き場 HOME
Electrical Fireworks
LINKS
GamDevPukiWiki - ライブラリ
各種ライブラリ紹介スレ

关于XNA中如何显示汉字的讨论

XNA GSE beta版并没有字体显示的接口,但在游戏中字体的显示是必不可少的。下面就我收集到的关于解决这个问题的方法做一些简单讨论,我并未完整解决这个问题,所以本文只是给希望实现汉字完美显示的朋友做一个引子。
第一种方法:和显示英文的方法一样,将需要用到的汉字放入图片中,用2d texture载入,再根据一定算法显示出需要显示的汉字。这个方法的缺点是显而易见的,汉字最常用的就有1000多个,而英文只有26个字母加几个符号。是不可能同时将所以纹理同时载入内存的。对此方法的简单改进是,只把当前需要显示的字的纹理载入内存,在不用的时候适当释放,可以减轻内存压力。不过在最坏的情况下,即要显示的文字分散在很多纹理中,那么还是需要所有纹理都载入内存,仍然可能内存不足。此方法老外已经有人做了简单的实现(Creating and using bitmap fonts in XNA
第二种方法:在windows下面的XNA可以link .net的System.Drawing类,将系统里面的字体写入2d Texture,然后和第一种方法一样,将2d Texture的内容显示到屏幕上。作为cache的2d Texure可以在运行时被更新,可以运用LRU等算法管理里面的汉字,当出现cache miss的时候就用Drawing类把系统中的字体写入2d Texture,这样,只要cache miss不是很严重,游戏速度是有保证的,内存的问题也可以解决。不过用Drawing类写入Texutre的surface比较麻烦,要实现这个可以参考这篇文章(Writing to Texture Surface)。不过这个方法仅限于windows上面的开发,XBox360上面是不可以的。
第三种方法,其实不是方法,等待XNA正式版。我相信作为游戏开发RAD工具的XNA不会对于显示汉字这样一个简单问题都解决不了吧,在dx9中我们尚且可以简单的用sprite快速高效的显示汉字,XNA需要我们绕巨大一个圈子去研究这个,有背于它的初衷啊。即使XNA正式版不能,后面用TorqueX引擎这样的东西总不会再要我们自己写字体类了吧。我这样想的出发点不是想偷懒,如果是在directx下面开发,要我重新写个字体类,我觉得理所应当,但是,谁让它是XNA呢?

Evo FX 引擎将移植到XNA

3D Evolution的EVO FX引擎是一个基于.net的游戏引擎,用c#基于Managed DirectX开发。现在这个引擎准备移植到XNA Framework,计划于十月15日发布。这个引擎将在XNA beta期间是免费的,最终产品应该是收费的。
访问3D Evolution网站浏览更多信息
http://www.3devolution.net/

XNA开发的首款多人格斗游戏


这款游戏支持两人对战,需要用到USB手柄。这是目前第一个用XNA开发的对战格斗游戏。
开发者的blog
http://www.geekswithblogs.net/gambit_sunob

XNA Exchange

XNA Exchange是给自由职业的开发人员一个合作的平台。开发人员和团体可以提交他们的项目,在这里展开合作,这里目前是完全免费的。
XNA Exchange的链接
http://www.thexnaexchange.com/

一个俄罗斯团队宣布开发XNA物理库


XNA Physics API (XPA) is physics API designed for XNA.

It is based on OPAL (Open Physics Abstraction Layer) [url:http://ox.slug.louisville.edu/~o0lozi01/opal_wiki/index.php/Main_Page]At initial stage it will support ODE (Open Dynamics Engine) http://ode.org but later it will support something else for XBox360 support.
What is XPA?

XPA is a high-level interface for low-level physics engines used in games, robotics simulations, and other 3D applications. Features a simple C# API, intuitive objects (e.g. Solids, Joints, Motors, Sensors), and XML-based file storage for complex objects.
XPA Mission

Our common goal is to create a set of open source physics tools for the development of virtual environments.
XPA Philosophy

XPA has two main goals:1. to provide a high-level physics interface, and2. to provide an abstract interface that is independent of the underlying physics engines.Although some similar libraries focus mainly on #2, XPA is more focused on #1. Even though #2 is important for comparing physics engines or using multiple physics engines in the same application, XPA’s primary concern is giving developers a simple, powerful interface with high-level constructs.

东京电玩展游戏数量超记录

这次的东京电玩展向公众展示了573款游戏,比去年多了57款游戏。
在2002年由一年一次改为一年两次后,东京电玩展在最近几年有衰弱之势。然而经过日本电子游戏产业的复苏,E3展览宣布缩写展览规模后,东京电玩展也开始复苏。
这573款游戏中有,127款PC游戏,125款手机游戏,100款PS2游戏,52款NDS游戏,33款PSP游戏,20款Xbox 360游戏,18款PS3游戏,仅5款Wii游戏。
东京电玩展将于9月22日-24日进行。
消息来源
http://www.gamasutra.com/php-bin/news_index.php?story=10873

Wii 日本发售细节披露

在日本的Wii发布会上透露的新消息,Wii将以25000日元(213美元)的含税价格在12月2日在日本正式发售,比索尼的PS3晚3个星期。
和美国的发售不一样的是,日本的发售将不会捆绑Wii Sport。将单独以4800日元(41美元)出售。塞尔达传说:黎明公主的定价是6800日元(58美元)
任天堂表示将有30款游戏在发售时候同时发行。
消息来源
http://www.gamasutra.com/php-bin/news_index.php?story=10871

跑跑卡丁车同时在线超过70万人

跑跑卡丁车的运营商世纪天成星期一宣布,Q版3D赛车游戏跑跑卡丁车峰值同时在线人数在9月10日超过70万人。世纪天成从今年的3月7日代理运营跑跑卡丁车。目前已经有7000万注册用户。跑跑卡丁车中的人物也是Nexon的炸弹人游戏泡泡堂的人物。盛大在2003年开始代理这个游戏。在顶峰时期,盛大宣布泡泡堂同时在线70万人。世纪天成是上海邮电公司的子公司。
消息来源
http://www.pacificepoch.com/newsstories?id=74998_0_5_0_M

UBI发布Wii的首款外设


最近UBI公布了即将面市的Wii外设Wii Steering Wheel 。它将作为Wii大作GT Pro Series的附件有著名的外设提供商Thrustmaster开发的。
这个方向盘其实没有着地的部分,仅仅是把Wii 的遥控器放入其中作为控制器。
很显然Wii Steering Wheel 兼容UBI即将发布的大作怪物四驱:世界巡回赛(Monster 4X4: World Circuit)和其他的UBI发行的Wii游戏。
消息来源http://www.gamasutra.com/php-bin/news_index.php?story=10818

XBox 360 秋季Dashboard界面预览


这是首次泄露的XBox 360 秋季Dashboard界面更新,其中引人注目的就是新增加的XNA Lanch pad,通过这里就可以玩到那些游戏爱好者自己开发的游戏了。新的白色的 Xbox Live arcade LOGO取代了原来的LOGO。全新的界面将和一些新的特征和游戏在今年11月正式发布。
消息来源http://www.maxconsole.net/?mode=news&newsid=9846

星期三, 五月 23, 2007

XNA也可以使用C++

XNA除了可以用M$说的VC#EE开发,还可以用C++,以及一切CLR语言(VB,Iron Python等等)来开发。
我之前只有猜想应该是可以这样,现在已经看到老外朋友可以做到了,他的文章在http://mawsoft.com/blog/?p=31
源码下载地址http://mawsoft.com/blog/XNATest.zip
在运行代码前你需要安装了VS2005和XNA Game Studio Express beta。那些不想用vc#ee开发的朋友,在装好XNA Game Studio Express beta后就可以卸载VC#EE了,只是在建立工程时需要手动添加对XNA的引用,当然,你也可以自己建立一个工程模版,那样就和用VC#EE无异了。不过安装XNA时还是需要先安装好VC#EE:(

XNA GSE入门(三) 2d图像基本特效

XNA GSE入门(一) 显示图片一文中只是简单的把图片显示出来了,现在,我们在那个程序的基础上添加一些新的功能1. 添加透明效果
你需要先准备一张带alpha通道的图片,jpg是不支持透明色的,png图片可以支持,也比较小。(这里是我用的实验图片)
将编辑好的图片保存,并修改Construct函数里面载入图片的地方
ObjectTexture = Texture2D.FromFile(graphics.GraphicsDevice, “logo_head_transparency.png”);在draw函数里面做如下修改,设置绘制模式为alphablend
ObjectBatch.Begin(SpriteBlendMode.AlphaBlend); Vector2 pos = new Vector2(0, 0); ObjectBatch.Draw(ObjectTexture, pos, Color.White); ObjectBatch.End();这样图片中透明的部分将不会画出来了。

2. 半透明效果
在原先的绘制中,SpriteBatch的Draw函数第三个参数一直是设置成Color.White,就是让所有的颜色都绘制出来。其实Color出来包括RGB,还有一个A,就是Alpha值。如果我们设置Color的Alpha为0~1之间,就可以半透明的绘制图片了。
创建一个Color:
Color color = new Color(new Vector4(1.0f,1.0f,1.0f,0.5f));Color构造函数里面的向量的第4个参数就是Alpha值了,这里我们设成0.5,就是50%的透明,你也可以设置成其他的值。将绘制函数的第3个参数设置成我们的color
ObjectBatch.Draw(ObjectTexture, pos, color);就是半透明效果了



3. 反转图片颜色效果
ObjectBatch.Begin(SpriteBlendMode.InverseColor);这个就可以反转图片颜色了



这些是2d游戏里面常用的一些效果,SpriteBlendMode结构还有一个参数是Additive,也是一种特效,但是我怎么也试不出来如何使用,如果你知道请告诉我ledwinka@gmail.com


XNA GSE入门(二) 在三维世界中显示图片

上一篇文章中讲叙了如何在2d的世界中显示一张图片。我们知道XNA是支持3D的,这一篇和上一篇一样,显示一张图片,不过是在3D世界中。本文中需要牵涉一些基本的3D数学,比如世界矩阵,视矩阵,投影矩阵,纹理坐标,HLSL等等,如果不明白这些概念的读者,请先补充以下相关知识。接着我们进入正题。
建立一个工程,取名DisplayPicture3D,并保存工程。(方法同上一篇,点击这里看上一篇)
在Game1类文件中添加如下代码
//texture and effect object纹理对象和shader对象 private Texture ObjectTexture; private static Effect effect; //view projection matrix and view point投影矩阵和视矩阵,以及视点坐标,世界矩阵在这个程序中不改变,所有没有定义了 public static Matrix Projection; public static Matrix View; private static Vector3 ViewPosition = new Vector3(0.0f, 1.8f, 5f); //record last mouse wheel state记录鼠标滚轮的位置,用来控制视点的移动 private static int mouseWheelValue = 0; //vertex array顶点数组,这个程序中没有用复杂的模型,所以直接将顶点数据写在程序中了 VertexPositionTexture[] nonIndexedCube; 这些就是我们建立3D世界需要的元素的了
和上一个例子一样,我们用Construct函数初始化我们的资源
protected virtual void Construct() { IGraphicsDeviceService graphicsService = (IGraphicsDeviceService)this.GameServices.GetService(typeof(IGraphicsDeviceService)); //Inital textures, 从文件中创建纹理 ObjectTexture = Texture.FromFile(graphics.GraphicsDevice, “logo_head.png”);//从DisplayPicture3d.fx文件中创建效果对象 CompiledEffect compiledEffect = Effect.CompileEffectFromFile(”DisplayPicture3d.fx”, null, null, CompilerOptions.None, TargetPlatform.Windows); effect = new Effect(graphicsService.GraphicsDevice, compiledEffect.GetShaderCode(), CompilerOptions.None, null); //init vertex,初始化顶点 nonIndexedCube = new VertexPositionTexture[6]; Vector3 topLeft = new Vector3(-1.0f, 1.0f, 1.0f); Vector3 bottomLeft = new Vector3(-1.0f, -1.0f, 1.0f); Vector3 topRight = new Vector3(1.0f, 1.0f, 1.0f); Vector3 bottomRight = new Vector3(1.0f, -1.0f, 1.0f); Vector2 topLeftT = new Vector2(0.0f, 0.0f); Vector2 bottomLeftT = new Vector2(0.0f, 1.0f); Vector2 topRightT = new Vector2(1.0f, 0.0f); Vector2 bottomRightT = new Vector2(1.0f, 1.0f); nonIndexedCube[0] = new VertexPositionTexture(topLeft, topLeftT); nonIndexedCube[1] = new VertexPositionTexture(bottomLeft, bottomLeftT); nonIndexedCube[2] = new VertexPositionTexture(topRight, topRightT); nonIndexedCube[3] = new VertexPositionTexture(topRight, topRightT); nonIndexedCube[4] = new VertexPositionTexture(bottomLeft, bottomLeftT); nonIndexedCube[5] = new VertexPositionTexture(bottomRight, bottomRightT); //compute Porjection matrix and apply texture,计算投影矩阵,设定纹理对象 Projection = Matrix.CreatePerspectiveFieldOfView((float)Math.PI / 2.0f, (float)Window.ClientWidth / (float)Window.ClientHeight, 0.1f, 1000.0f); effect.Parameters[”UserTexture”].SetValue(ObjectTexture); }添加Construct函数后,在Game1()中调用它public Game1() { InitializeComponent(); Construct(); }
在Update函数中添加如下代码
protected override void Update() { …… //move camera according wheel state,根据鼠标滚轮位置移动摄像机 MouseState currentMouseState = Mouse.GetState(); int mouseoffset = mouseWheelValue - currentMouseState.ScrollWheelValue; mouseWheelValue = currentMouseState.ScrollWheelValue; if (mouseoffset != 0) { ViewPosition.Z += (float)mouseoffset / 5000; } …… }
在Draw函数中添加如下代码
protected override void Draw() { …… //设置顶点格式和消隐模式 using (VertexDeclaration decl = new VertexDeclaration(graphics.GraphicsDevice, VertexPositionTexture.VertexElements)) graphics.GraphicsDevice.VertexDeclaration = decl; graphics.GraphicsDevice.RenderState.CullMode = CullMode.CullClockwiseFace; //update camera position更新视矩阵,重新计算转换矩阵,并通过effect设置它 View = Matrix.CreateLookAt(ViewPosition, Vector3.Zero, Vector3.Up); Matrix matrix = View * Projection; effect.Parameters[”WorldViewProj”].SetValue(matrix); //开始应用效果 effect.Begin(EffectStateOptions.Default); effect.Techniques[0].Passes[0].Begin(); //绘制三角型 graphics.GraphicsDevice.DrawUserPrimitives (PrimitiveType.TriangleList, 2, nonIndexedCube); effect.Techniques[0].Passes[0].End(); effect.End(); …… }
和上一篇一样,添加logo_head.png到工程中来
新建一个DisplayPicture3D.fx文件,并添加到工程中,这个文件将用HLSL语言将纹理应用到我们的顶点模型上来。Fx文件的内容如下
uniform extern float4×4 WorldViewProj : WORLDVIEWPROJECTION;uniform extern texture UserTexture;struct VS_OUTPUT{ float4 position : POSITION; float4 textureCoordinate : TEXCOORD0;};sampler textureSampler = sampler_state{ Texture = ; mipfilter = LINEAR;}; VS_OUTPUT VS( float4 Position : POSITION, float4 TextureCoordinate : TEXCOORD0 ){ VS_OUTPUT Out = (VS_OUTPUT)0; //转换顶点 Out.position = mul(Position, WorldViewProj); Out.textureCoordinate = TextureCoordinate; return Out;}float4 PS(float2 textureCoordinate : TEXCOORD0) : COLOR{ //将纹理应用于顶点 return tex2D(textureSampler, textureCoordinate).rgba;}technique TransformAndTexture{ pass P0 { vertexShader = compile vs_1_1 VS(); pixelShader = compile ps_1_1 PS(); } }
Ctrl+F5,就可以看到运行效果了,用鼠标滚轮控制图片的远近 ,




欢迎与我交流分享ledwinka@gmail.com

XNA GSE入门(一) 显示图片






一 最简单的图片显示
在Visual C# 2005 Express Edition(以下简称VCSEE)里新建一个XNA工程,取名DisplayPicture
点击ok,生成一个xna的工程。在菜单中选择View->Class View,打开类视图,双击Game1类
在打开的Game1.cs文件中添加下列语句(红色部分为添加的)
partial class Game1 : Microsoft.Xna.Framework.Game { //the sprite to be displayed private SpriteBatch ObjectBatch; private Texture2D ObjectTexture;为Game1添加一个新的成员变量ObjectBatch,(用来显示精灵对象),一个纹理对象ObjectTexture
添加一个新函数Construct(),用来初始化精灵对象和纹理对象,
protected virtual void Construct() { //Inital textures, SpriteBatch here. ObjectBatch = new SpriteBatch(graphics.GraphicsDevice); ObjectTexture = Texture2D.FromFile(graphics.GraphicsDevice, ” logo_head.png”); }并在Game1()函数里面调用Construct函数。public Game1() { InitializeComponent(); Construct();
}

在Draw函数中DrawComponents();语句的后面添加如下代码,绘制我们的图片
ObjectBatch.Begin(); Vector2 pos = new Vector2(0, 0); ObjectBatch.Draw(ObjectTexture, pos, Color.White); ObjectBatch.End();选择File->Save All将整个工程保存。然后将logo_head.png文件(也可以是任意其他图片文件,只要是和Construct函数里面写的文件同一个名字就可以)拷到工程所在目录。选择Project->Add Exist Item,将这个文件添加到工程,并修改文件的Copy to Output Directory属性为Copy if newer。按Ctrl+F5,就可以看到我们的程序效果啦。


星期五, 五月 11, 2007

EA预计Madden NFL 将打破销售记录

EA宣布八月22号发布的《Madden NFL 07》已经销售了大约二百万份,是这款游戏的新的销售记录。
这款游戏目前在Xbox 360, Xbox, PlayStation 2, GameCube, PC, Nintendo DS and PSP,都可以玩到,Wii和PS3的版本也将在今天这2个平台发布是放出

WowMapViewer的sourceforge点被关掉了

今天在linghuye’s blog 上看到了wowmapviewer已经被关掉了,不免感到惋惜,在那个项目开始没有多久我就关注了。这是继blizzardhack网站后又一家被关闭的网站了。linghuye的blog上说最新的版本是0.47,我记得好像我硬盘上有0.5的,不过linghuye blog里面的wowmapviewer的wiki是很有用的。

XNA GSE beta中的载入3D模型

今天我在查看XNA GSE beta文档是发现最开始的FAQ有这样一段话

How do I import complex 3D objects into my XNA Game?

The XNA Framework will provide a content pipeline to make it easy to get rich content (3D, 2D, sound, etc.) from content creation sources into a game. The XNA Framework Content Pipeline is a large feature; in an effort to make sure we provide a usable end-to-end experience, we have decided to hold back this feature from the beta release.

顿时觉得有不详预感,作为XNA大势鼓吹的Content Pipeline在我们现在手上的beta版本中还是hold back的。也就是说,XNA对于资源管理的很大一部分功能,我们现在还无法接触到,其中就包括3D模型的载入。我当时作一个最坏的猜测,基于directX的XNA,总应该可以载入XFile的吧。


在文档关于3d图形部分,我们看不到任何关于3D模型载入的部分,在API的文档里面,我也没有发现任何关于mesh管理的参考。

打开昨天编译的SpaceWar游戏,其中管理3D模型的类是工程里面的SimpleMesh,也就是说,这个并不属于XNA的一部分。到此,基本可以认为XNA根本还没有提供如何载入3D模型的方法。

我转到XNA GSE beta的官方论坛,里面有位老兄说到

Those are big words but it does mean nothing else than having to program all the mesh functionality and animated mesh functionality Managed Directx supported all by myself now?It confuses me a little because it was said that XNA takes away all that overhead programming stuff and gets you started writing your game without worrying about anything else.

So in the current version of the framework, is the only way to use “mesh” functionality to define a 3d file format (or use the already existing .x format for example) and then write an a tool that loads that data into a vertexbuffer and material- and texturelist which i then can use to render the whole thing?

原贴地址

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=686368&SiteID=1

他也发现,除非自己写3D文件的载入方法,XNA是没有办法读取任何3D文件的,就是XFile也不行。晕倒……

为了验证他的说法和我的猜测是否正确,我又仔细查看了SpaceWar游戏里面的模型载入方法,果然,在SimpleMesh类里面有载入模型的代码

public static SimpleMesh Load(string fileName)
{
Stream stream = File.OpenRead(fileName);
BinaryReader reader = new BinaryReader(stream);
SimpleMesh mesh = new SimpleMesh();
// Version
Version meshVersion = new Version(reader.ReadString());
if (meshVersion != SimpleMesh.Version)
{
throw new InvalidOperationException(”Mesh ‘” + fileName + “‘ has version ” + meshVersion.ToString() + “. Expected version ” + SimpleMesh.Version.ToString() + “.”);
}
// Source File mesh.SourceFile = reader.ReadString();
// TriangleCount mesh.TriangleCount = reader.ReadInt32();
// VertexSizeInBytes mesh.VertexSizeInBytes = reader.ReadInt32();
……
}
在SpaceWar中用到的模型文件为*.swm。很明显就是Space War Mesh的缩写,具体的文件结构是这样的

数据类型
描叙

string
1.0.0.0v,文件的版本号

string
源文件地址,保存了转换成*.swm文件前的全文件名

int32
文件中三角形的数量

int32
顶点的大小,以字节记

int32
顶点数量

string
顶点格式

int32
顶点集合数量


顶点集合数据
(我自己分析的,可能有纰漏)
Space War这个例子就完全是自己定义的3D数据文件格式,如果需要给这个游戏添加新的模型,需要参考上面的文件格式,并做一个工具将3d建模软件生成的模型文件转为*.swm文件。Space War是不能直接使用XFile文件的,当然,如果你打算自己写XFile文件的分析器,另当别论。
基本上这次算是大家被ms忽悠一下,就凭我们现在手头的XNA,开发一个3d游戏,比我们直接用directX SDK开发更麻烦。不过2d游戏方面,还是值得参考一下的,下篇我将对2d部分做一下介绍。

IMGUI教程

新的IMGUI教程发布在http://iki.fi/sol/imgui/
IMGUI是一个非常适合实时运行程序的用户界面程序,非常容易使用

APOCALYX v 0.8.9 发布

APOCALYX 是一个基于Lua的3D引擎,在最新的v0.8.9版本中增强的3D硬件加速方面的控制能力,可以使用高级Shader语言
其他的新增功能包括
完全支持 GLSL,
内建人工智能算法 (寻路, FSM, 等等),
简单的 TTS引擎

APOCALYX官方网站Apocalyx Sourceforge site.

XNA GSE beta上手

一 首先安装XNA需要的环境,包括
  • DirectX SDK 点击这里下载

  • Visual C# Express Edition(必须是Express Editon,其他版本比如Team Suite,professional都不行)
    点击这里下载Visual C# Express Edition英文版
    如果你已经安装了vs2005的其他正式版本,也可以安装,他们可以共存,但测试版不行。我和中国 XNA 研发小组群中的琅轩已经做过小白鼠了,可以放心安装。
    如果已经安装vs2005,在安装过程中将不能改变安装路径,如图

  • 一块支持DirectX9.0c 和Shader Model 2.0的显卡,否则无法运行编译后的程序。

二 创建第一个xna程序

  • 打开VC#,在File菜单里选New Project,出现new Project对话框,选择Windows Game(XNA),点击OK。



  • Ctrl+F5,如果没有发生错误,第一个XNA程序就编译完成并运行出来了

一个蓝色背景的窗口,而且不能被缩放
三 编译XNA自带的范例spacewar
XNA Game Studio Express里面自带一个例子,你可以很容易编译这个游戏


  • 打开VC#,在File菜单里选New Project,出现new Project对话框,选择Space War Starter Kit,点击OK。


  • Ctrl+F5,即可以看到游戏的标题画面



这个时候的游戏还不能控制,除非你有xbox 360的手柄。我们需要修改一下才可以用键盘来操作

  • 双击打开GamePadHelper.cs这个文件
将文件头的
// #define USE_KEYBOARD
改为
#define USE_KEYBOARD
Ctrl+F5,这个时候就可以用键盘来控制游戏了,在开始画面按B键进入Retro的版本
按Home回到开始画面,再按A键进入Evolved的3d版本
按Home回到开始画面,按X键进入信息画面



Vista 将支持全面支持OpenGL的玻璃效果

gamedev消息来源
Khronos在最近的发布的一则报告上面表明,Vista将原生支持OpenGL API。通过安装用户驱动(ICD),OpenGL将可以得到完全的硬件加速,并且完全兼容Windows Vista的玻璃透明效果。Khronos还声称当Vista发布时,玻璃透明效果在OpenGL上的效果将会比Direct3D的更好。
此前的7月31号,Khronos宣布接管了OpenGL 规范的定制,相关链接http://www……_khronos_group/

Garage Games 展示基于XNA的Torque引擎

来自gamedev.net的消息,August 15, 2006 8:55:52 AM
2006年8月14号,GarageGames,业内领先的独立开发游戏引擎提供商,宣布发布Torque X引擎.包括新一代的Torque游戏引擎和基于XNA游戏开发平台的工具.这次发布和微软的公告表明XNA Game Studio Express将在这个暑期正式可用.
XNA Game Studio Express 可以让用户通过managed c#开发游戏,并且同时可以在windows PC和零售的Xbox360游戏机上运行.GarageGames的Torque 游戏开发包工具被很多商业化的游戏工作室,独立开发者和游戏爱好者使用,在全球100多所大学和学校里面的游戏开发课程中都有用到.Torque X室GarageGames Torque技术到C#的移植,可以运行在XNA平台上.Torque X是一个全功能的2d,3d游戏引擎,支持Torque游戏构建器里使用的直观的编辑器,还有曾获奖的Torque引擎的shader发生系统,对美术人员非常友好.
在西雅图今天微软主持的Gamefest的展示上面,GarageGames总裁Mark Frohnmayer展示了Torque开发包,展示了Xbox 360 Live上的街街大作Marble Blast Ultra,运行在XNA平台上.”今天,微软公司跨出了革命性的一步,让游戏爱好者和学生们都可以创作新一代游戏机上面的游戏”Frohnmayer先生说”让XNA Game Studio Express和我们的工具连接起来,为每个有创新和动力的人提供快速和容易的解决方案,让他们可以为Windows和Xbox360开发游戏,没有什么可以比这更让人高兴的了”