200 likes | 290 Views
Games Development Practices Semester 2 Overview. CO2301 Games Development 1 Week 14 - 1. Project Preparation. This semester you do a team games project in the Professional Skills module The primary goal is to work effectively in a team
E N D
Games Development PracticesSemester 2 Overview CO2301 Games Development 1 Week 14 - 1
Project Preparation • This semester you do a team games project in the Professional Skills module • The primary goal is to work effectively in a team • The next few lectures will cover several miscellaneous topics in Games Development • These will provide you with the technical background needed for the project: • Technology topics to enhance your projects. • Advice / techniques on dealing with artists/artwork
Working with Artists • 3D Modelling • Look at Autodesk Maya to help understand the art process • Study its features and do some simple modelling • Games programmers very, very rarely create artwork, but it is useful to understand the artist’s tools • Especially if you get involved in tools development (3rd year topic) • 3D Artwork Conversion • Practice exporting 3D models from various formats into a format suitable for the TL-Engine • Examine the problems that can occur at this stage and how to solve them • Again, very relevant for tools development (a common junior role)
Technology Topics • Game Loop and Timing / Front-Ends • Look at the outer loop of a game (in more detail than last year) • Ensure games speed is not linked to the computer speed • Look at different techniques for this and some problems/examples • Also look at putting code around the game loop: • Initialisation, front-end, menus etc. • Sound Effects • All our projects so far have been silent • Will use a sound API in a TL-Engine project to add sound effects and music • Will use OpenAL in this module, will look at fmod next year • Both widely used in games
More Technology • Physics Engines • Have manually created simple physics in our games • E.g. Basic collision with lines, spheres and boxes • This kind of work is central to games development • As well as good practice on common games match • But only appropriate for simple cases • For more complex physics we will incorporate a physics engine into the TL-Engine • We will use Havok Physics • Another rich API to look at • You will constantly see new APIs (e.g. DirectX, OpenAL, Havok) in games development, must be ready to adapt. • Decoupling the game and the physics engine brings some issues
Game Architecture • In the latter part of the semester, we will move on to look at the software architecture of a modern game engine • Using topics from Software Development and Advanced C++ • Lots of UML (class diagrams) to illustrate the points • Take UML seriously! • Will look at how we can make a general engine that is not tied to just one game • Use TL-Engine architecture as an example • Show problems with that architecture and suggest improvements • Material leads directly into 3rd year work • We expect 3rd year projects to be well architected
Games Development Practices3D Modelling CO2301 Games Development 1 Week 14 - 2
Today’s Lecture • Introduction • Modelling / Materials • Key-Frame Animation • Skeletons • Special Effects • Rendering
Introduction • 3D modelling is simply the design / creation of 3D computer graphics • Primarily an artistic skill • Also draws upon skills in orthographic visualisation • Can require technical know-how • 3D modelling tools are frequently very complex • Due to their huge feature-sets • The leading tools for games are 3ds Max and Maya • Both owned by Autodesk I, Robot Digital Domain Adidas
3D Modelling for Film • The film industry regularly uses 3D graphics to: • Create fantasy scenes / effects • Simulate difficult to shoot scenes • Even render characters • Few big-budget animations are not computer generated now • Have been a few attempts at 3D graphics as simulation of real film • All the example images here were created in an earlier version of Maya Spiderman Sony Pictures Imageworks Lord of the Rings New Line Productions
Advertising and Print Media • Companies and their advertisers want ‘perfect’ images for products and models • 2D photo retouching is commonplace • Now 3D modelling tools are also often used to produce this perfection • 3D modelling can save time creating the ideal shot, even for a simple photo-shoot • Many adverts are entirely virtual • More Maya examples here DHXProd Clinique
Other Uses • 3D graphics also used for: • Product Design • Architectural Visualisation • Scientific Visualisation National Geographic Magazine • These fields often have their own specialist tools to generate their imagery • Especially CAD tools (Computer Aided Design) • However, the high quality output and flexibility of tools such as Maya & 3ds Max can provide a realistic alternative
Computer Games • 3D computer games have always required modelling tools to generate the 3D content • A significant part of the user base for Maya and Max • Modelling tools can also be used for content creation: • Laying out scene related data: camera paths, sound effect locations, AI networks etc. • Helping author stats/attributes for visual elements • Tweaking technical factors for the target platform • However, common to use a level editor and associated tools for these tasks (see 3rd year) • The level editor interface often looks like a 3D modelling tool
Polygonal Modelling / NURBS • A brief look at some modelling tool features… • Most basic feature is ability to create and manipulate 3D shapes • Two kinds: • Polygonal, made of polygons • NURBS, mathematically defined curved surfaces (Non-Uniform Rational B-Splines) • Games usually use polygonal models • Although recent hardware advances in tessellation are increasing interest in spline-based models Polygonal NURBS
Modelling / Materials • Modelling is performed a little like sculpting • Create basic primitives first • Manipulate geometry directly – vertices, polygons • Also use tools such as: • Extrusions, Booleans, Bevels/Chamfers, etc. • Modeller must also specify the materials and lighting used • Textures (maps), surface properties, lighting propertied, etc. • Will need 2D artwork for maps • Use Photoshop or similar
Key-Frame Animation • Animation is achieved by creating key framesfor each object on a timeline • Key frames are added when any aspect of the object changes in some way • Position, rotation, scale • Geometry, texture, shader • Etc. • The modelling tool will interpolate the in-between frames to create a full set of frames for an animation
Skeletons / Skinning • Several objects can be connected with a skeleton • Hierarchical tree structure • Allows one object to parent and control another • A model may have an interior skeleton that moves different parts • The model surface will bend and deform with the skeleton • This is called skinning • Animate the skeleton to control the model • Covered in Computer Graphics module
Special Effects • There are many other effects that can be modelled: • Particle systems • Fur, hair, grass etc • Cloth simulations • Very many lighting effects, radiosity, volumetric etc. • Reflection and refraction, caustics • Rendering fluids and gasses • Physics: solid, liquid and gaseous • And much more.. Caustics Fur Effects Ice Age Series Twentieth Century Fox
Scripting • Scripting within modelling tools particularly important for games developers • All features of the application and all the scene content are exposed through a scripting language and SDK • E.g. Maya supports a C++ API, as well as both Python and MEL scripting support at runtime • Allows programmers to write tools directly in the modelling tool to: • Add new modelling features • Put specific support for their product or game, such as specific shaders or performance monitoring tools • Write custom file importers/exporters
Output / Rendering • 3D Modelling tools don’t render in real-time • It can take several minutes to draw a single image, several hours to render an animation • Their focus is more on: • A large range of features • Best possible output quality • Many settings controlling the rendered output • An image or a video file • But rendering is not important if you only want the 3D model, as with games development • So we will look the export of 3D models next week