120 likes | 137 Views
CO1301: Games Concepts. Lecture 8 Commercial Games Development – Programming Concepts. Dr Nick Mitchell (Room CM 226) email: npmitchell@uclan.ac.uk Material originally prepared by Laurent Noel. Lecture Outline. Game Program Components & Roles Technical Design Decisions Program Testing.
E N D
CO1301: Games Concepts Lecture 8 Commercial Games Development – Programming Concepts Dr Nick Mitchell (Room CM 226) email: npmitchell@uclan.ac.uk Material originally prepared by Laurent Noel
Lecture Outline • Game Program Components & Roles • Technical Design Decisions • Program Testing
Part 1: Game Program Components • A game usually consists of 100,000’s of lines of programming. • It can be broken down into several distinct sections: • Graphics or 3D engine • Responsible for drawing what you see on the screen. • Often the most complex and high-profile section. • Game logic & data • Manages characters, levels & objects from the design. • Implements the rules of the game (using the attributes and data tables from the game design). • AI (Artificial Intelligence) • The program that drives the behaviour of Non-Player-Characters. • This is also becoming a high-profile, complex area.
Further game program components: • GUI and Front End • In game graphical interface as well as the opening titles and menus. • Controller support • Network implementation • Will be linked to game logic • Miscellaneous Technical • Sound and Music, CD/DVD reading, Video playing, Copy protection etc. • Support Tools • Level design (‘Modding’) tools, scripting tools, artwork conversion tools, optimisation tools etc. • We will look at such applications throughout the course.
Programming roles can be put into three categories depending on the components they are responsible for: Graphics Engine Game Logic & AI Tools and Technology Most starting positions are in the ‘Tools and Technology’ category. Unless you can show flair in the other areas (i.e. with a portfolio). Programming Roles
Part 2: Technical Design Decisions • In the previous lectures we passed over the technical decisions needed in the early stages. • Now that you have a little experience in programming in a simple game environment, we will return to this point. • If you wish, you could cover some of these points in your current game design assignment.
Sourcing a Graphics Engine • A graphics engine is a complex program. An early decision when designing a game is whether to: • Create a new engine. • Reuse an existing engine. • Buy in a 3rd party engine • This is primarily a question of resources. • But it will have implications for the game programmers. • Create a new engine • Can be tailored for the game. • Will take a long time. • Will be able to reuse later. • Reuse an engine. • Quick and cheap. • API known but may not be quite suitable. • Technology becomes dated with too much reuse. • Buy an existing engine • Powerful, expensive. • API unknown and may not be quite suitable.
Sourcing of Other Components • This kind of sourcing decisions occurs for other components in the program. • There is usually the decision whether to create a new component, or whether to reuse an existing one. • Often components are reused, but updated. • In some cases there is also a choice of 3rd party components • E.g. Miles Sound System or DirectSound. • There will be cost considerations as well as technical ones.
Algorithmic Decisions • The more difficult algorithms or programming processes that are needed in a game should be assessed and documented in the design. • E.g. If the game needs hundreds of intelligent NPC’s, then the AI techniques that will be used should be outlined in the game design. • Or if the graphics engine will use a new technique it should also be described. • We haven’t covered these techniques yet - in your game design try to identify the technical challenges, but don’t worry about identifying the solutions.
Part 3: Program Testing • We have covered the need for testing in the lifecycle of a game. Now we will describe the process for the programmers involved. • After a game reaches its ‘beta’ stage, it will be sent to a test facility. • Within a matter of days they will report back with an initial set of error (‘bug’) reports. • The programming team will identify who ‘owns’ each bug and attempt to fix them. • The ‘fixed’ game is sent back for testing and the process repeats until the publisher is happy that the game is sufficiently ‘bug-free’
Bug Classification • Error reports are usually classified by severity, e.g.: • Class A: Program crashes or locks-up. • Class B: Major graphic, function or logic error. • Class C: Minor graphic, function or logic error. • Class D: Playability or other concern. • Notice in this example that class D reports are not really errors, but reflect the opinion of the tester. • Error reports also contain other information e.g.: • Hardware & operating system used. • Location (in the game) of the bug. • If the bug is repeatable. • Hours of play before the error.
Error Reports Exercise • Now classify the bugs identified on the handout. • Also, for each bug decide whether it should stop a game from being released to the public.