Game Development using the Irrlicht Graphics Engine Ben

Game Development using the Irrlicht Graphics Engine Ben Mossman Danny Lee Dmitry Kallestinov Daniel Juel http: //www. engineering. uiowa. edu/~danlee/eedesign/

Preliminary Design Objectives Develop PC-based FPS (first-personshooter) � Model weapons and aliens � Animate weapons and aliens � Use simple game and character models � Object collision � Model bullets and weapon particle effects � Simple HUD (headsup-display) � Short, engaging backstory �

Software Process Pre-production – initial planning, pick team, assign roles, preliminary design, Production identify milestones � Production – final design, meet milestones � Preproduction Production Testing – alpha and Testing beta � Completion – deploy product � Maintenance – provide customer Pre-Production support � Milestones Testing Completion

Project Resources � Development team roles assigned based on National Occupational Standards for Interactive Media (2005)

Project Resources (cont. ) Ben: Lead Programmer, Project Manager � Danny: 3 D Modeler, Sound Engineer, Programmer � Dmitry: 3 D Modeler, Sound Engineer, Programmer � � Daniel: Level Designer, Programmer

Project Resources (cont. ) � � � Irrlicht graphics engine Direct. X SDK Irr. Klang sound engine Irr. Edit scene editor 3 ds MAX modeling software Google Sketchup � Microsoft Visual C++ Express Edition (IDE) �

Initial Planning Ogre 3 D Graphics Engine � Java binding for Ogre 3 D � Python binding for Ogre 3 D � Game Engines – Dark GDK, Stem. Cell, Cube 2: Saurbraten � Ogre 3 D has a steep learning curve � Team inexperience � Incomplete wrapper or binding � Little or no programming involved �

Irrlicht Graphics Engine Irrlicht: cross-platform graphics engine written in C++ (MS Windows Vista, Mac OS) � Supports Direct X and Open. GL � Abstracts details of Direct 3 D and Open. GL � � � � Open source GNU Lesser Public License (free) Stable Productive Extensive documentation Broad support community

Irrlicht Features � � � Basic physics, collision detection, rigid body Per-pixel lighting Bump-mapping Parallax-mapping Mesh loading and skinning Bill-boarding Skybox � Simple water and fog effects � Particle System � 2 D GUI System �

Irrlicht Features (cont. ) � � � Pixel and vertex shaders support Fast shaders written in assembly Other shaders written in Cg or Direct. X 9 HLSL Scene Management Scene querying features Fixed-function pipeline (use prefabricated Direct. X algorithm for modifying graphical output) � Supports Pixel and Vertex Shaders 1. 1 to 3. 0 � Programmable pipeline (write your own algorithm, aka “shaders”) �

3 D Modeling Tools Export from Milkshape 3 D, 3 ds Max, Maya, Blender and Wings 3 D � Irrlicht supports over 18 file formats including Maya (. obj), Direct. X (. x), and 3 ds MAX (. 3 ds) � 3 ds Max for character modeling � Irr. Edit for level modeling � 3 ds MAX includes Character Studio for modeling and animating characters � Used by FX experts in Hollywood � Irr. Edit can build scenes or meshes in native format compatible with Irrlicht �

IMPORTING MODELS This is a blender model rendered using Irrlicht.

Irrlicht Life Cycle � � � Link in Irrlicht graphics engine Setup 3 rd party libraries and plug-ins Setup Irrlicht device object Setup selected renderer (Direct. X or Open. GL) Create scene manager � � � Create a camera scene object Create a mesh scene object Choose render modes Create event receiver (listener) Start the render loop

IRRLICHT CLASS DIAGRAM Everything starts with the device object, which creates your render window and is the root object for any scene. A scene is programmed using a scene “node”. There are camera nodes, light nodes, and billboards nodes.

SPACE REPRESENTATION Irrlicht can represent 3 D space using Binary Space Partitioning (BSP). In BSP, space is subdivided recursively into “convex sets” (solid, no dents) using hyper-planes. It’s faster, but less intuitive, so we will use Octrees, which are tree data structures whose children can hold 8 nodes. The 8 nodes represent the 8 octants surrounding a point in space.

Simple Scene

Wiimote Enhanced Gameplay � Presents a minor challenge with major benefits � Allows the player to control the game more naturally � Expands marketability

Nintendo Wiimote Blue Soleil allows PC to wirelessly connect with wiimote � Requires a Bluetooth dongle � Requires Glove. Pie Input Emulator � Simple script maps mouse actions to wiimote � � � � Wiimote can be used to interface with game menu Navigation Strafing Aiming Volume control Event feedback in the form of vibration


Project Milestones – Fall 08 Milestone Work Allocation Date Status Purchase wiimote Daniel Juel 9 -12 -08 Completed Verify if Blue Soleil works with wiimote Daniel Juel 9 -19 -08 Completed Get Ogre 3 D graphics engine to work and program basic scene Ben Mossman 9 -20 -08 Completed Map wiimote and mouse actions together using Input Emulator Glove. Pie script Daniel Juel, Ben Mossman, Dmitry Kallestinov, Danny Lee 10 -8 -08 Completed Integrate wiimote with Ogre 3 D scene Daniel completes this verification 10 -8 -08 Completed

Milestones – Spring 09, p. 1 Milestone Work Allocation Date Status Make transition to Irrlicht graphics engine Ben Mossman 12 -28 -09 Completed Complete game framework with level loader and graphical configuration menu Ben Mossman 12 -28 -09 Completed Complete gameplay concept (Sci-Fi first-person shooter) Ben Mossman 12 -28 -08 Completed Complete targeting system for player (laser sights, modeling bullets) Ben Mossman 12 -28 -08 Completed Complete terrain and object collision Ben Mossman 1 -7 -09 Completed Complete parallax mapping and flashlight Ben Mossman 1 -7 -09 Completed

Milestones – Spring 09, p. 2 Milestone Work Allocation Date Status Complete targeting system for aliens Ben Mossman 1 -30 -09 Irrelevant if aliens don’t shoot. Build game Level (without props) Daniel Juel 1 -30 -09 Using Gtk. Radiant as level modeler. Build animate alien models Danny Lee 1 -30 -09 Build animate weapon models Dmitry Kallestinov 1 -30 -09 Create particle effects for alien models Danny Lee 2 -6 -09 Heads Up Display (HUD) Ben Mossman 2 -6 -09 Interim Report #1 Danny Lee, Daniel Juel, Dmitry Kallestinov, Ben Mossman 2 -23 -09

Milestones – Spring 09, p. 3 Milestone Work Allocation Date Status Complete in-game computer screens and mirrors Ben Mossman 2 -27 -09 In Progress. (need to fix all reversed reflections) Complete AI for aliens Danny Lee, Dmitry Kallestinov 2 -27 -09 Populate level model with 3 D sounds, dynamic lights, and props Daniel Juel 2 -27 -09 Interim Report #2 Danny Lee, Daniel Juel, Dmitry Kallestinov, Ben Mossman 3 -30 -09 Complete integration, alpha testing, and game installer Danny Lee, Daniel Juel, Dmitry Kallestinov, Ben Mossman 4 -10 -09 Final Report with poster and documentation Danny Lee, Daniel Juel, Dmitry Kallestinov, Ben Mossman 4 -17 -09 Identified Irr. Edit as level editor we will use for this. Identified Install Creator as wizard we will use for this.

Primary Customer Profile Meet The Customer Prof. Gary E. Christensen Affiliations: � Associate Professor Electrical and Computer Engineering, University of Iowa � Radiation Oncology Computational Imaging Group Leader, Iowa Institute for Biomedical Imaging
- Slides: 24