game development using the irrlicht graphics engine
DESCRIPTION
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-person-shooter) Model weapons and aliens Animate weapons and aliens - PowerPoint PPT PresentationTRANSCRIPT
Game Development using the Irrlicht Graphics Engine
Ben MossmanDanny Lee
Dmitry KallestinovDaniel Juel
http://www.engineering.uiowa.edu/~danlee/eedesign/
Preliminary Design Objectives Develop PC-based
FPS (first-person-shooter)
Model weapons and aliens
Animate weapons and aliens
Use simple game and character models
Object collision Model bullets and
weapon particle effects
Simple HUD (heads- up-display)
Short, engaging back-story
Pre-Productio
n
Production
Testing
Software Process Pre-production –
initial planning, pick team, assign roles, preliminary design, identify milestones
Production – final design, meet milestones
Testing – alpha and beta
Completion – deploy product
Maintenance – provide customer support
Pre-production Production 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: 3D Modeler, Sound Engineer, Programmer
Dmitry: 3D Modeler, Sound Engineer, Programmer
Daniel: Level Designer, Programmer
Project Resources (cont.) Irrlicht graphics
engine DirectX SDK IrrKlang sound
engine IrrEdit scene editor 3ds MAX modeling
software
Google Sketchup Microsoft Visual C+
+ Express Edition (IDE)
Initial Planning Ogre3D Graphics
Engine Java binding for
Ogre3D Python binding for
Ogre3D Game Engines –
Dark GDK, StemCell, Cube 2: Saurbraten
Ogre3D 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 OpenGL
Abstracts details of Direct3D and OpenGL
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 2D GUI System
Irrlicht Features (cont.) Pixel and vertex
shaders support Fast shaders written
in assembly Other shaders
written in Cg or DirectX9 HLSL
Scene Management Scene querying
features
Fixed-function pipeline (use prefabricated DirectX algorithm for modifying graphical output)
Supports Pixel and Vertex Shaders 1.1 to 3.0
Programmable pipeline (write your own algorithm, aka “shaders”)
3D Modeling Tools Export from
Milkshape3D, 3ds Max, Maya, Blender and Wings3D
Irrlicht supports over 18 file formats including Maya (.obj), DirectX (.x), and 3ds MAX (.3ds)
3ds Max for character modeling
IrrEdit for level modeling
3ds MAX includes Character Studio for modeling and animating characters
Used by FX experts in Hollywood
IrrEdit can build scenes or meshes in native format compatible with Irrlicht
IMPORTING M
ODELS This is a blender model rendered using Irrlicht.
Irrlicht Life Cycle Link in Irrlicht
graphics engine Setup 3rd party
libraries and plug-ins Setup Irrlicht device
object Setup selected
renderer (DirectX or OpenGL)
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 3D 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 GlovePie 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 08Milestone Work
AllocationDate Status
Purchase wiimote Daniel Juel 9-12-08 Completed
Verify if Blue Soleil works with wiimote
Daniel Juel 9-19-08 Completed
Get Ogre3D graphics engine to work and program basic scene
Ben Mossman 9-20-08 Completed
Map wiimote and mouse actions together using Input Emulator GlovePie script
Daniel Juel, Ben Mossman, Dmitry Kallestinov, Danny Lee
10-8-08 Completed
Integrate wiimote with Ogre3D scene
Daniel completes this verification
10-8-08 Completed
Milestones – Spring 09, p.1Milestone Work
AllocationDate 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.2Milestone Work
AllocationDate 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 GtkRadiant as level modeler.
Build and animate alien models
Danny Lee 1-30-09
Build and 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.3Milestone Work
AllocationDate 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 3D sounds, dynamic lights, and props
Daniel Juel 2-27-09 Identified IrrEdit as level editor we will use for this.
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 Identified Install Creator as wizard we will use for this.
Final Report with poster and documentation
Danny Lee, Daniel Juel, Dmitry Kallestinov, Ben Mossman
4-17-09
Meet The Custom
erPrim
ary Customer
Customer Profile
Prof. Gary E. ChristensenAffiliations: Associate Professor Electrical and
Computer Engineering, University of Iowa
Radiation Oncology Computational Imaging Group Leader, Iowa Institute for Biomedical Imaging