Adam Schmidt Noah Medling Troy Doty World Builder Adam Schmidt Noah Medling Troy Doty
Problem Definition Already existing solutions The Elder Scrolls Construction Set CryEdit Neverwinter Nights BattleCraft42
The Elder Scrolls Construction Set
Neverwinter Nights
CryEdit
BattleCraft42
System Diagram
Three Major Parts The User Interface Layout Terrain Editing Troy Doty Terrain Editing Noah Medling Object Editing Adam Schmidt
Requirements Analysis The requirements analysis details how the system needs to be built and what functionality it will need to be complete
Operating Environment Will run on any OS Developed in Microsoft Visual Studio 6 and .NET (7.1)
System Components User Interface - Buttons, Tabs, Input Boxes, etc Routines for manipulating heightmaps - Brush, Elevation, Smoothing, Color, etc. Routines for placing and manipulating 3D objects in the world -Creation, Scaling, Translating, etc.
Software and Libraries FLTK (Fast Light Toolkit) libraries OpenGL libraries FLUID was used for GUI code generation
Performance Requirements The time to read/write files should be minimized Loading/unloading portions of the world should be done in reasonable time Rendering should be done at a rate pleasing to the eye (>30 frames per second)
Evaluation Metrics Creation Time - Usability Processing Time – Frames per second
Software Design Multiple Classes GUI GLWindow World Sector Brush Object
User Interface GUI class GLWindow class Automatically generated with FLUID GLWindow class Organizes and provides access to data and rendering methods contained in other classes
The World World class Sector class Contains a grid of Sectors Only stores in RAM those Sectors that have been modified Sector class Contains a grid of vertices (currently 32 x 32) Each vertex contains elevation and color
Brushes Brush class Uses a Sector internally to represent influence Falloff modes: none, linear, parabolic Shapes: circle, square Variable radius
Objects Object class Stores objects that reside separately from the terrain data Contains orientation in 3D space and an ID Will be rendered as loaded 3D models in the game itself
Difficulties OGRE was difficult to use with deformable heightmaps.
Future Work Model loading Texturing Better file format
The End