creating 2d digital art assets for xna

Upload: kapullotonto

Post on 04-Apr-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/30/2019 Creating 2D Digital Art Assets for XNA

    1/8

    Creating 2D Digital Art Assets for XNA Game Studio

    Mark Thompson, [email protected]

    Department of Computer Science

    San Diego State University

    Spring 2010

    Intended Audience

    The content of this document is directed towards digital artists (referred to as artist for rest of document)

    who charged with creating digital art assets for games, or applications, programmed using the Microsoft

    XNA Game Studio. However, some XNA programmers may also find this document useful, especially if

    they are creating digital assets themselves, or implementing a menu or Heads Up Display (HUD) system.

    What this document is NOT

    This is not a tutorial, or how to, on using an image editor, e.g. Adobe Photoshop or GNU Image

    Manipulation Program (GIMP). The assumption is that the artist is competent in using such image editing

    applications. Also, this is not a programming guide that provides the technical details of using and

    displaying digital art in XNA. There is a variety of resources, both books and Web, which provide

    extensive tutorials on this aspect of XNA programming. Lastly, this is a not guide for techniques in user-

    interface design.

    1. Introduction

    No 2D, or 3D, XNA game can be created without an extensive collection digital art assets ranging from

    PNG images to 3D models. There are many books and articles about XNA game programming which are

    geared towards the technical aspects of programming. For these books, sample game code is often

    provided via the Web so that a programmer can download, compile, and then run the sample games.

    However, many of the digital art assets, specifically 2D assets, are simply just provided as is, with little

    background on why or how they were created. This article is to provide artists with little or no

    programming experience some background on creating usable 2D digital art for XNA.

    2. The XNA Game Studio and Framework

    The Microsoft XNA Game Studio (currently version 3.1) is a set of programming tools based on

    supported versions of Microsoft Visual Studio, with C# as its programming language. These tools allow

    student and hobbyist programmers to build games for Microsoft Windows, the Microsoft Xbox 360, and

    the Microsoft Zune[1]. The XNA Framework is built on Microsofts Direct X technology, with its graphics

    system using core Direct3D 9 graphics technology.

    So, what does this mean to an artist? XNA is a very powerful and complex programming toolset for

    creating highly-interactive, graphically intense, 2D and 3D games for the above mentioned platforms.

  • 7/30/2019 Creating 2D Digital Art Assets for XNA

    2/8

    File Formats for 2D Digital ArtworkFigure 1 lists the file formats which are acceptable for use with XNA. This information was collected from

    [2, 3, 4, 5]:

    .bmp Windows bitmap for graphics files within the Microsoft Windows; typically uncompressed; asimple format with wide acceptance in Windows programs [2].

    .dds DirectDraw Surface file format by Microsoft; stores graphical textures and cubic environmentmaps as a data file. [ 5] ; uncommon outside of 3D programming; specifically designed forDirect X.

    .dib Device Independent Bitmap file; Generic Windows or OS/2 bitmap graphic; similar to a .BMPfile [3].

    .hdr High Dynamic Range Image File; Raster image or digital photo; uncommon.

    .jpg JPEG (Joint Photographic Experts Group) is a lossy compression method; JPEG-compressed

    images are usually stored in the JFIF (JPEG File Interchange Format) file format; JPEG/JFIF;also will see it as .jpeg

    .pfm Printer Font Metrics File; Adobe Type 1 font for Windows; uncommon.

    .png Portable Network Graphics file format; created as the free, open-source successor to the GIF.

    .ppm Portable Pixmap Image File; 24-bit color image that is formatted in text format

    .tga Targa Graphic file format; Bitmap image format ; has become a ubiquitous format for storingtextures and screenshots from video games due to its ease of implementation and lack ofencumbering patents.

    Figure 1. List of acceptable 2D image formats for the XNA Graphics Frameword.

    Although XNA accepts a variety of formats, it is not necessary to have knowledge of them all. Much of

    the artwork for menus and HUDs is created using the PNG format. The next two sections will show

    examples which were taken from the game Rocket Commander, a free XNA sample game as described

    in the book Professional XNA Programming : Building Games for Xbox 360 and Windows with XNA

    Game Studio 2.0, 2nd Edition, by Benjamin Nitschke.

    3. Technical Overview of Using 2D Art Assets in XNA

    Before continuing onto examples, there are some technical details that need mentioning. First, on how

    XNA handles 2D art work. All digital art assets artwork are loaded when the XNA application is started.

    This means that a given PNG will be available to the programmer throughout the lifetime of the

    application, that is, until the user quits. (NOTE: the programmer could release the PNG resource during

    runtime to save memory. However, for small games this may be less of an issue).

  • 7/30/2019 Creating 2D Digital Art Assets for XNA

    3/8

    Second, The XNA Graphics Framework provides some common operations for manipulating 2D images,

    namely: screen position, color tint, rotation, origin, and scale. In addition, the order in which the 2D

    images are drawn, as implemented by the programmer, may also be used for effect. For instance, you

    can layer multiple PNGs to build menu screens since the PNG format contains transparency information.

    Third, drawing text can be accomplished in one of three ways: i) A PNG file can have text in it, e.g. a start

    button with START on it; ii) artist can provide an image file with a custom designed font; iii) use XNAs

    native string drawing facilities, which is restricted to fonts installed on a users system, as well as font

    licensing restrictions. However, XNA does have a set of freely distributable fonts to distribute with games.

    Lastly, determining whether or not a user can interact (e.g. a mouse rollover) with a given 2D element, is

    a coordinated effort for the artist, and programmer. A designer may determine what buttons and when

    can be interacted with, an artist may actually create the button in an image editor, and finally the

    programmer will write the C# code to place and draw the 2D image to screen.

    All this may sound rather complex in order to just draw a 2D image to screen. XNA is extremely powerful

    and capable of making commercial quality games. With great power, comes complexity. Remember that

    XNA is not a toy programming environment, but a full-fledged graphics and game programming

    environment.

    4. Example: Start Screen with Rollover Buttons

    Figure 2 is a screenshot of the initial screen when Rocket Commander is started. Although not visible in

    this static picture, the space scene with asteroids in the background is animated and gives the illusion of

    moving through space (this animation is a completely separate feature from the screen buttons). Figure 3

    shows the two PNG files that make up this screen. Notice that the PNG images have transparent

    backgrounds, which is very common when using them in this context.

    Figure 2: The main menu for Rocket Commander running on a monitor at 1280 x 800.

  • 7/30/2019 Creating 2D Digital Art Assets for XNA

    4/8

    Figure 3. Main background and buttons, with the actual PNG measuring at 1024x1024 pixels. The PNG with Helpand Options buttons measures 512x256 pixels, but the actual buttons are much smaller.

    It should also be noted that the Main background image is stretched in Figure 2 to fit the 1280 x 800

    screen resolution, but the menu buttons appear unchanged. The details are complex on why, but were

    hinted at in Section 3. XNA will always make a best effort attempt to draw images, but the programmer

    can also customize and manipulate how things are drawn via program code.

    If we once again look at Figure 2, well notice how the cursor (the little spaceship) is over the Highscores

    button. This rollover effect is achieved via providing two PNGs, one for non-rollover event, and one for

    rollover event. Finally, Figure 2 also demonstrates the use of layering PNGs that have transparency.

    Drawing the buttons in an arc requires the programmer not only to know the x,y coordinates of each

    button relative to the dimensions of the actual PNG, but must also tell XNA where to draw them on

    screen.

    5. Example: Help Screen

    Figure 4 example demonstrates two concepts: i) the use of a static and non-interactive PNG to display

    content (i.e. the game item descriptions); ii) the use of layering PNGs. Notice the same background is

    reused by using the PNG file shown from Figure 3.

  • 7/30/2019 Creating 2D Digital Art Assets for XNA

    5/8

    Figure 4: Rocket Commander Help Screen at 1280x800 on users computer.

    Figure 5. The Help Screen content PNG which is 1024x512 total.

  • 7/30/2019 Creating 2D Digital Art Assets for XNA

    6/8

    6. Example: Bitmap Fonts

    XNA provides a native font drawing mechanism, therefore it is not necessary to create a custom bitmap

    font for every game.

    Figure 6: Options screen shown on users computer at 1280x800.

    Figure 7: The bitmap file for a custom font.

  • 7/30/2019 Creating 2D Digital Art Assets for XNA

    7/8

    7. Example: Gameplay and Heads Up Display (HUD)

    Figure 8 below shows the actual gameplay screen. There are many elements at work here, but the focus

    should kept on the HUD and it s parts are shown in Figure 9. The rest of the scene is a combination of

    3D models (asteroids) and XNA special effects to achieve the blur and distant sun-like lighting.

    Displaying the HUD is the same process as described in Section 4.

    Figure 8: Actual gameplay in Rocket Commander at 1280x800 resolution on users computer.

    Figure 9: The PNGs that make up the HUD. These PNGs are both 256.x256 pixels in total size.

  • 7/30/2019 Creating 2D Digital Art Assets for XNA

    8/8

    8. Final Remarks

    This document by no means a complete overview of the different methods of creating menus and HUD s

    in games using XNA. However, many games use these same techniques to achieve similar effects. And

    as such, hopefully 2D the artist will have a better idea of what is required to make digital art assets for an

    XNA application.

    9. References

    [1] http://msdn.microsoft.com/en-us/library/bb200104.aspx

    [2]http://en.wikipedia.org/wiki/Image_file_formats

    [3]http://www.fileinfo.com/filetypes/image

    [4]http://msdn.microsoft.com/en-us/library/bb197848.aspx

    [5]http://en.wikipedia.org/wiki/DirectDraw_Surface

    http://msdn.microsoft.com/en-us/library/bb200104.aspxhttp://msdn.microsoft.com/en-us/library/bb200104.aspxhttp://en.wikipedia.org/wiki/Image_file_formatshttp://en.wikipedia.org/wiki/Image_file_formatshttp://en.wikipedia.org/wiki/Image_file_formatshttp://www.fileinfo.com/filetypes/imagehttp://www.fileinfo.com/filetypes/imagehttp://www.fileinfo.com/filetypes/imagehttp://msdn.microsoft.com/en-us/library/bb197848.aspxhttp://msdn.microsoft.com/en-us/library/bb197848.aspxhttp://msdn.microsoft.com/en-us/library/bb197848.aspxhttp://en.wikipedia.org/wiki/DirectDraw_Surfacehttp://en.wikipedia.org/wiki/DirectDraw_Surfacehttp://en.wikipedia.org/wiki/DirectDraw_Surfacehttp://en.wikipedia.org/wiki/DirectDraw_Surfacehttp://msdn.microsoft.com/en-us/library/bb197848.aspxhttp://www.fileinfo.com/filetypes/imagehttp://en.wikipedia.org/wiki/Image_file_formatshttp://msdn.microsoft.com/en-us/library/bb200104.aspx