The latest release of XNAExtras is 1.0.1201 (beta). It can be downloaded here.

XNAExtras is a collection of tools and classes designed to help out with some aspects of writing XNA applications. It currently consists of:

  • BMFontGen : A tool to create bitmap fonts from Windows system fonts. Supports Unicode and allows glyph ranges and custom glyph images. See the full documentation for more information.
  • BitmapFont : Class to load and render fonts created with BMFontGen. (BitmapFont.cs)
  • TextBox : Class to manage more complex text rendering, includes support for rendering text borders to create UI elements. Makes use of BitmapFont and Border. (TextBox.cs)
  • XSprite : Classes to manage sprites. Supports shared textures, different framerates for each sprite, keeps sprites sorted by depth (so that transparency works correctly) and allows sprites to be loaded from an XML descriptor file. (XSprite.cs, XSpriteBase.cs, XSpriteGroup.cs, XSpriteManager.cs, TexturePool.cs)
  • Border : Class to draw sprite-based borders. Makes use of XSprite. (Border.cs)

Version 1.0.1201 beta (2006-Dec-01)

Updated project files for beta2
Added #ifdefs around code that won't compile on Xbo360
Added readme.txt to note that CollisionDemo has known bugs
(BMFontGen) Include 1119 build of BMFontGen
(BitmapFont) Add ContentManager support
(TextBox) Fixed bug where background wasn't being deleted
(XSpriteManager) Added ContentManager support
(TexturePool) Added ContentManger support

Version 1.0.0923 beta (2006-Sep-23)

(BMFontGen) Fixed bug where including undefined chars in your font -range would cause a crash
(BitmapFont) Changed loading embedded resources - now the resource name is specified in the same format as file-based resources
(BitmapFont) Fixed bug where font files wouldn't be found unless they were in a subdirectory
(TextBox) Added accessors for the text string
(XSpriteManager) Changed default FPS to 60
(XSpriteManager) Added support for collisions
(TexturePool) *Really* fixed bug in AddTexture(string,Color) where the texture wasn't being created if the GraphicsDevice already existed - the fix got lost for the last release
Thanks to redwyre, David Zakar (DMZ) and Matt Moore for comments/suggestions.

Version 1.0.0916 beta (2006-Sep-16)

(XML Schema) Added XML schema definition (XSD) files for bitmap and texture files
(BMFontGen) Fixed bug where custom glyphs couldn't replace chars that didn't exist in font
(BitmapFont) Added Dispose method
(BitmapFont) Fixed TextBox to format the string only once
(BitmapFont) Allow fonts to be loaded from embedded resources
(BitmapFont/XSpriteManager) Changed GetXMLAttribute to not throw exceptions
(XSpriteManager) Changed sprites to sort by order of creation when at the same depth
(XSpriteBase) Added Visible property
(XSprite) Added SetTexture method
(XSprite) Expose sprite alpha value directly
(TexturePool) Fixed bug in AddTexture(string,Color) where the texture wasn't being created if the GraphicsDevice already existed
Thanks to David Zakar (DMZ), redwyre and Martin Szinger for comments/suggestions.

Version 1.0.0910 beta (2006-Sep-10)

Initial XNAExtras release
Initial release of TextBox, Border, XSprite, XSpriteManager, XSpriteBase and TexturePool.
Add font face name, size and style info to BMFontGen output
Add option to BMFontGen to prevent custom glyphs from being tinted when drawing colored text
Fix BMFontGen crash when cancelling the font select dialog
Fix path problem in BitmapFont where font image files weren't found if the font was in a subdirectory
BMFontGen no longer uses a substitute font when the requested font is unavailable
Changed GlyphInfo struct (in BitmapFont) to use bytes/sbytes instead of ints
Changed "origin" attribute in font XML files to "loc" (location) since this is a better description and is more consistent with usage in sprite/texture XML files. Fonts created with "origin" attribute are still supported.
Removed support for ClearType font rendering in BMFontGen because the antialiasing introduces color around the edges of the font. These color bleeds don't render properly and are inappropriate for cases where the font bitmap is rotated or used as a texture on a 3D object.
Thanks to David Wyand, Thijs Kruithof (Gleoi), Jim Welch and Roger Bocksnick for their comments/suggestions.

Version 1.0.0830 beta (2006-Aug-30)

Initial BMFontGen/BitmapFont release

XNAExtras (0923).zip

Comments (12)

  1. XNA Diaries says:

    In order to simplify releases, I’m collecting all of my XNA tools, classes and sample code into a single…

  2. The folks over at XNA Diaries have been building and packaging up their XNA tools for the community! …

  3. amadrias says:


    I started a week and a half ago the eXperience project in CodePlex.com which goal is to provide a unique set of assemblies where game developers would find the major free open source game components and utilities.

    I wondered if you would like to be part of this?

  4. XNA Diaries says:

    Author: Gary Kacmarcik (garykac@microsoft.com)Revision: 14 September 2006


    The BMFontGen…

  5. XNA Diaries says:

    This release includes a bunch of small enhancements and bug fixes. The only major class addition is XSpriteGroup,…

  6. XNA Diaries says:

    The XNAExtras.Border class provides a general border mechanism for UI elements. While currently only…

  7. XNA Diaries says:

    Major addition for this version: collision detection has been added to XSpriteManager. Both bounding…

  8. XNA Diaries says:

    The latest release of XNAExtras added support for sprite collisions, and allows the collision detection…

  9. Chris says:

    Will these Extras be included in the XNA framework? I think they should!

    [I’m not a member of the XNA team, so I (sadly) have no information as to what will or will not be included in future releases of the XNA Framework.

    If you want to provide feedback to the XNA team – what you like about it or what you feel should be added – you can send an email to xna@microsoft.com.

    Thanks for the comment! I’m glad that you find these classes useful.


  10. XNA Collision Detection This was another good weekend for XNA.  First off, XNA Diaries has…

Skip to main content