1 / 20

XNA Development

XNA Development. Creating Games For Windows, Xbox 360, and Windows Phone 7 Ryan Plemons http://digitaltransfusion.net @ ryanplemons. Where to begin?. All demos in this slide deck are built with XNA 4. To follow along, you will need the following: Windows 7 or Vista

kioko
Download Presentation

XNA Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XNA Development Creating Games For Windows, Xbox 360, and Windows Phone 7 Ryan Plemons http://digitaltransfusion.net @ryanplemons

  2. Where to begin? All demos in this slide deck are built with XNA 4. To follow along, you will need the following: • Windows 7 or Vista • A DirectX 9.1c capable graphic card (or better) with up to date drivers and DirectX runtime. If you’d like to debug Windows Phone 7 XNA projects you need a DirectX 10 capable graphic card (or better). • Windows Phone 7 Development Tools • XNA 4 is part of this package, and will install VS2010 Express. If you use a better version of VS2010, then the templates are installed for it as well. • This will install an emulator for WP7 development

  3. What is XNA? XNA = XNA's Not Acronymed • XNA is a powerful .Net API that handles graphics, sounds, inputs, networking, and storage that targets multiple platforms within the Microsoft envrionment. • Windows • Windows Phone 7 • Xbox 360 • Zune • (and more to come)…

  4. Can I get an upgrade? If you are a student you can take advangate of the Dreamsparkprogram. You can get a copy of: • Windows 7/Vista • Visual Studio 2010 Professional • Expression Studio 4 Ultimate • (and much, much more)

  5. Demo: Creating your first projects

  6. So what are these projects? There are 2 types of projects that are created out of the box. • The main project targeting your platform • This is the starting point of your application. You load assemblies, load media, move objects from here. • A content project • This is where you put all of your assets. XNA supports the following formats out of the box, but you can build other format importers. • 2D graphics: .bmp, .png, .jpg • 3D models: .x, .fbx • Shaders: .fx • Audio: .mp3, .wav, .wma • WP7 requires PCM 16 bit mono/stero • Video: .wmv • Fonts: Any TrueType font • XNA provides a set of sample high quality fonts (Andy Regular, Kootenay, Lindsey, etc) more info can be found here • Any XML, text or binary files • XNA for windows can skip this if you want, but it is required for Xbox and WP7.

  7. Demo: • Adding assets to our game

  8. Basic Game Structure • Initalize: called after the constructor. This is where you configure all your default values. • Load Content: Called after Initialize, you load all assets for your game in here. • Update: This is where you update data, look for keyboard input, do collision detection, etc. • Draw: This is where you render your scene. • Unload Content: Once the game exits, this is where any cleanup would happen.

  9. Basic Game Structure (cont) What is the GraphicsDeviceManager? • This is the “graphical context” and is responsible for things like screen resolution, vertical synchronization, and anti-aliasing. It also gives you information on hardware capabilities. What is a SpriteBatch? • Simply put, this is what allows you to “draw” 2d images to the screen. You can draw an entire image to the screen, or only a small part of the image to a specific area. • There are no simple polygon “draw” methods. Everything is handled through textures.

  10. Consistency is the key! Speeds can vary from computer to computer, or device to device. • XNA runs at 60 FPS by default. • Can be adjusted • IsFixedTimeStep (Bool) • TargetElapsedTime (TimeSpan) • Use gameTime.ElapsedGameTime to adjust for drift

  11. SpriteBatch • Begin • Tells GPU to draw everything coming to it, in the order you send it. • Draw • 0,0 is the top left • Draw as many textures as possible in each SpriteBatch to keep speed up • End • Do this when done drawing, or when you need to change drawing settings. (such as AlphaBlend)

  12. Write once, Tweak for platform • Windows • Resolution can vary • Mouse/Keyboard Input • Xbox • (640 x 480, 1280 x 720, 1920 x 1080) • Controllers • WP7 • 480 x 800, 320 x 480 • Touch Screen • EXTREME memory restrictions.

  13. What’s that? I can’t hear you! • SoundEffect • quick sound effects • Background music loop • sound.Play(); • Used for quick audio. • sound.CreateInstance(); • Used for background music loops (allows pausing, volume adjustments on the fly, etc)

  14. Demo: • Add the Background • Add Paddles • Add Ball • Add Score Overlay • Add Input

  15. Let’s get that ball rolling • Ball starts in random direction • +/- X • +/- Y • Starts at Width/2, Height/2 • Change X or Y depending on collision • Y changes based on collision with top or bottom • X changes based on collision with paddle • If X < 0 or X > width, then a point is awarded to the other side

  16. Demo: • Animate ball • Collision detection • Bounding Box is top left • Because this is a simple demo, I am using a rectangular bounding box for collision detection. You should do more fine grained collision detection for the real deal.

  17. Building for Xbox • Create new project, • copy csproj and rename • Include in project • “add” appropriate files • Need creators club account • Download Xbox Connect app to connect computer to Xbox for deployment

  18. Building for WP7 • Create new project, • copy csproj and rename • Include in project • “add” appropriate files • Need windows phone developer account • Don’t forget to turn off services • Game hub or app hub?

  19. Further Concerns • WP7 • Multi-Touch input • Accelerometer • GPS • Higher Resolution, Smaller Screen • Tombstoning • Ram Issues • Applications can use (at most) 90MB of ram on a device with 256MB of ram. (lowest spec allowed) • If a device has more than 256MB of ram you may use more than 90MB of ram to the amount of MemorySize – 256MB. • If my device has 512MB of ram, I am allowed to use 512-256 + 90 = 346MB of ram • Xbox: • Development requires an Xbox for testing (no emulator)

  20. Q&A • What questions do you have? • Ryan Plemons • http://digitaltransfusion.net • @ryanplemons

More Related