Presentation is loading. Please wait.

Presentation is loading. Please wait.

Games Development 2 Tools Programming

Similar presentations


Presentation on theme: "Games Development 2 Tools Programming"— Presentation transcript:

1 Games Development 2 Tools Programming
CO3301 Week 10

2 Contents Tools Programming Tool Chains Tool Specifics
Languages for Tools

3 Tools Programming We can divide games programming into 3 areas:
Game Engine - non-game-specific code: Renderer Sound, input, mass storage libraries and similar Generic scripting, data import, AI code Physics engine Game Code: Specific game logic, camera work, entity updates etc. Game Scripts Tools Game editors Asset / data preparation & manipulation Offline optimisation / pre-calculation

4 Tools Programming Tools development is often overlooked, but is a very important area Games are massively data-driven and that data usually needs considerable processing Example Tool types: (Level) Editor Major tool that allows the viewing and editing of the game world. Often game independent Mesh / material viewers, editors Post-modelling, engine specific work with 3D assets Texture manipulation: UV atlasing, normal map creation, etc Sound editors, data packing, testing systems etc.

5 Tools Development Where possible, lesser tools should written as plug-ins for existing software: Maya: Python scripts, C++ API plug-ins, MEL Similarly Max Script Photoshop plug-ins Or as plug-ins to a larger tool – level editor Extending existing programs is preferable: Don’t need to write everything from scratch Building on robust, documented platform Also allows the asset creators to work seamlessly with the game tools

6 Tools Development However, many specialised tools are required that do not naturally fit existing packages E.g. Particle system editor, AI editor Such tools are often written in C++ But may use higher level languages: C# is common Rapid to develop GUI applications Interface easily with the native C++ code Some tools don’t need a GUI: Asset copying / optimising / packaging, testing systems These may be console applications or scripts

7 Tool Chains A Tool Chain is the sequence of tools needed to convert raw assets through to usable game data A chain might be: Artist uses plug-ins in Photoshop to help create different map types (diffuse, specular, normal, transparency etc.) Export textures with plug-in to custom formats (one per SKU) Scripts for Maya import textures and outputs models in custom format. Also assists with shader creation Mesh optimised using console tool called by plug-ins Level editor imports art assets, allows viewing / manipulation. Also supports game entity layout, attribute setup, trigger and script attachment Level editor can provide oct-trees, help with waypoint generation and lighting pre-calculation. Exports custom level data Level data assembled into package using a console app

8 Tool Specifics Console-based Tools Usually used for file processing
E.g. Converting from one file format to another Directory and & file reading / writing is common Parsing Text and/or Binary Parsing command lines too E.g. “conv.exe –i ‘f.txt’ –o ‘f.bin’ –c –op:1” Also certain optimisation tasks just need console processing without any GUI Plenty of precise, low-level work

9 Tool Specifics Plug-ins Most frequently required for art-related tools
Not always: E.g for Visual Studio, or even for your own level editor Will often need to learn new API For program data & GUI Perhaps a new language too Support can be a problem, not all plug-in APIs are mature Working around limitations of program and it’s API Interacting with user requirements Tools are often written by request

10 Tool Specifics Editors Most powerful class of tool
Run graphics engine in one or more windows Classic 4-view often starting point Use standard windows GUI Or write your own components (e.g. DirectX samples) Frequently encompass many tasks Import / export, editing, pre-calculation, optimisation etc. Better architected and more flexible than standalone tools May call out to other tools, support plug-ins or even have its own API or scripting language Level editor coders must be skilled – a major role

11 Tools Developers Tools is common starting point for new games developer Helps gain familiarity with studio systems Designing tools interfaces requires interaction with other studio team members Good way to accelerate introductions The role is fairly taxing: Low level code is common Precision required A good test during a probation period But hopefully not too much of a problem if new employee struggles Consequently, employers are quietly impressed if projects come with tool chains / editors Should help with project anyway Quietly make sure people know they are there


Download ppt "Games Development 2 Tools Programming"

Similar presentations


Ads by Google