Asynchronous File IO Localization Services Optimal Media IO Movie Player Core

Asynchronous file io localization services optimal

This preview shows page 6 - 8 out of 111 pages.

Asynchronous File I/O Localization Services Optimal Media I/O Movie Player Core Systems Rigid Bodies Platform Independence Layer Platform Detection Atomic Data Types Collections & Iterators Network Transp. Layer (UDP/TCP) Threading Library Graphics Wrappers Physics/Coll. Wrapper Math Library Unit Testing Assertions File System Hi-Res Timer 3rd-Party SDKs DirectX, OpenGL libgcm, Edge, etc Havok, PhysX ODE, etc. Granny, Havok Animation, etc Boost++ STL/STLPort AI middleware Euphoria etc. OS Hardware (PC, Game Console, etc.) Drivers Water Simulation and Rendering etc. Spatial Indices (BSP/Quad-Tree) Level-of-Detail System Occlusion & PVS Culling Source: Jason Gregory Game Engine Architecture Lecture 2 2 Spring 2018
Image of page 6
CMSC 425 Dave Mount & Roger Eastman Platform Independence Layer: Since most games are developed to run on many different platforms, this layer provides software to translate between game specific operations and their system-dependent implementations. Core System: These include basic tools necessary in any software development environ- ment, including assertion testing, unit testing, memory allocation/deallocation, math- ematics library, debugging aids, parsers and serializers (e.g., for xml-based import and export), file I/O, video playback. Resource Manager: Large graphics programs involve accessing various resources, such as geometric models for characters and buildings, texture images for coloring these geomet- ric models, maps representing the game’s world. The job of the resource manager is to allow the program to load these resources. Since resources may be compressed to save space, this may also involve decompression. Rendering Engine: This is one of the largest and most complex components of any real- time 3-dimensional game. This involves all aspects of drawing, and may involve close interaction with the graphics hardware, or graphics processing unit (GPU), for the sake of enhanced efficiency. Low-Level Renderer: This comprises the most basic elements of producing images. Your program interacts with the GPU by asking it to render objects . Each object may be as simple as a single triangle but is more typically a mesh consisting of many triangular/polygonal elements. Objects are specified according to their coordinates in 3-dimensional space. Your program also informs the GPU what colors (or what image textures) to apply to these objects, where lights are positioned, and where the camera is positioned. It is then the job of the GPU to perform the actual rendering (projection, coloring, shading) of the objects. In particular, it determines where each object projects onto the 2-dimensional image plane, which objects are visible and which are hidden from view, what is the color and brightness of each object. Your program needs to convey all this information to the GPU. This also includes elements like displaying text messages and subdividing the window into subwindows (called viewports ) for the purposes of showing status information or maps. (Further details are provided later in this lecture.) Graphics Device Interface:
Image of page 7
Image of page 8

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture