Standards in this Framework
Standards Mapped
Mapped to Course
Standard | Lessons |
---|---|
01.01
Evaluate game concepts. |
|
01.02
Compare different game concepts. |
|
01.03
Compose a game concept document. |
|
01.04
Present and justifying the game concept. |
|
01.05
Identify and compare the different genres of games. |
|
02.01
Identify different computer programming languages used for game development. |
|
02.02
Review different development environments for game development. |
|
02.03
Study automation software for game and software development. |
|
03.01
Distinguish the different stages of the game development process. |
|
03.02
Create a generic plan for developing a game. |
|
04.01
Reproduce simple objects in different coordinate systems. |
|
04.02
Manipulate screen coordinates to create new game levels. |
|
04.03
Convert and export objects and levels between different 3D environments. |
|
04.04
Create simple shapes and structures that can be exported to games or game editors. |
|
04.05
Modify an existing level in a game using editing tools. |
|
04.06
Create a level that can be ported to an existing game engine or editor. |
|
04.07
Create conditional statements and loops for games. |
|
04.08
Modify sprites to add simple motion to games. |
|
04.09
Develop a simple 2D side scrolling game using a game development software kit. |
|
05.01
Create texture maps for objects in games. |
|
05.02
Modify existing texture maps to work with new designs. |
|
05.03
Apply new textures for changing the look and feel of existing game levels. |
|
05.04
Distinguish between the different types of texture mapping. |
|
06.01
Distinguish the different level building tools. |
|
06.02
Examine the game development process and application to help design new tools for building levels. |
|
06.03
Distinguish the different types of levels in terms of fun factor. |
|
06.04
Discuss how to decrease and increase the difficulty for players in each type of game level. |
|
06.05
Create a new level for an existing game that is going to address all the issues of difficulty. |
|
06.06
Create building blocks for game level editors and existing engines. |
|
06.07
Create program that will be able to convert and export levels into game engines and level editors. |
|
06.08
Modify existing items to make them exportable into game engines and level editors. |
|
07.01
Write pseudocode and flow charts. |
|
07.02
Apply the techniques of functional decomposition to break a programming design problem into smaller pieces. |
|
07.03
Write code documentation. |
|
07.04
Create programs that use all data types (float points, integers, long, double, Boolean, characters, and strings) and operators. |
|
07.05
Create programs that use all existing operators. |
|
07.06
Explain the properties of a variable, such as its name, value, scope, persistence, and size. |
|
07.07
Create programs that use if, else if, and else statements to evaluate conditions. |
|
07.08
Create programs that use logical operators (and, not, or), functions, conditional statements, structured and unstructured data types, and loops. |
|
07.09
Write programs that use classes, data abstraction, encapsulation and polymorphism. |
|
07.10
Test and design tests of software solutions. |
|
07.11
Debug program code. |
|
08.01
Apply principles of object oriented programming (OOP). |
|
09.01
Analyze existing games and applications for interface usability and intuitiveness. |
|
09.02
Compare the requirements and limitations of games and application interfaces. |
|
09.03
Compare the requirements and limitations of PC games and console games interfaces. |
|
09.04
Use existing libraries to create new interfaces. |
|
09.05
Create reusable libraries for new interfaces. |
|
09.06
Create new interfaces for existing applications. |
|
09.07
Create new interfaces for PC and console games. |
|
09.08
Analyze existing input devices with respect to usability for different game genres. |
|
09.09
Analyze the restriction created by using different hardware for input such as, but not limited to: mouse’s, trackballs, joysticks, and game pads. |
|
09.10
Write small games that use different input interfaces such as: mice, trackballs, joysticks, and game pads. |
|
09.11
Analyze existing output devices with respect to usability for different game genres. |
|
09.12
Analyze the restrictions created by using different hardware for output such as, but not limited to: touch screens, 3D glasses, sound, and motion simulation devices. |
|
09.13
Write small games that use different output interfaces such as: touch screens, 3D glasses, sound, and motion simulation devices. |
|
09.14
Analyze the programming and interface limitations of the console. |
|
09.15
Analyze different libraries and development tools for different game consoles. |
|
09.16
Write code that takes advantage of the console hardware for improving performance. |
|
09.17
Use existing programming libraries to communicate with hardware. |
|
09.18
Create new reusable programming libraries and classes for handling hardware input and output. |
|
09.19
Research past interface hardware. |
|
09.20
Analyze the failures of past computer input/output hardware. |
|
09.21
Research current developments in interface hardware. |
|
09.22
Research trends regarding the future of interfaces and game consoles. |
|
10.01
Use popular existing 3D libraries to draw, move, rotate, scale, and render 2D and 3D graphics. |
|
10.02
Create 3D data files for storing simple 3D objects. |
|
10.03
Discuss articles about techniques and methods of programming 3D graphics. |
|
10.04
Create a design document for their final project using 3D graphics. |
|
10.05
Create programs that will read in 3D items from data files and display the items in 3D on the screen. |
|
10.06
Create their own 3D items to display in the program they write. |
|
10.07
Convert real coordinates to virtual and screen coordinates. |
|
10.08
Discuss different notation for 3D coordinate systems in games. |
|
10.09
Create a 3D world with multiple 3D items and moving cameras. |
|
10.10
Scale and skew all the 3D items in the 3D virtual world relative to their location to the camera to create realism. |
|
10.11
Apply hidden surface removal algorithms. |
|
10.12
Develop the 3D rendering pipeline. |
|
10.13
Summarize articles about new and current 3D rendering hardware on the market. |
|
10.14
Distinguish 3D rendering software and hardware available for developing games. |
|
10.15
Modify programs that do texture mapping. |
|
10.16
Develop 3D texture mapped objects. |
|
10.17
Apply their own texture maps to objects they create. |
|
10.18
Use texture mapping in the final project a 3D game. |
|
10.19
Extract 3D objects in from a file. |
|
10.20
Create 3D objects in a file. |
|
10.21
Use C++ structures to store 3D objects in memory. |
|
10.22
Use C++ classes to store 3D objects in memory. |
|
10.23
Use data files and classes/structures to store 3D objects in the final project. |
|
10.24
Create 3D objects that have curved surfaces and adding them to their 3D world of objects. |
|
10.25
Discuss papers on different ways to program curved surfaces. |
|
10.26
Use curved surfaces in the final project. |
|
10.27
Create a design document for a 3D game that they are going to develop. |
|
10.28
Create a 3D game that uses multiple 3D objects and textures. |
|
10.29
Modify and writing programming that uses matrices multiplication for moving rotating, scaling objects in 3D. |
|
10.30
Use matrix multiplication for converting from the real coordinate system to screen coordinates. |
|
11.01
Summarize research papers on multi-player game development, client/server and peer-to-peer networking. |
|
11.02
Explain the future of networking and multi-player game development. |
|
11.03
Create a presentation on a game networking topic for the class. |
|
11.04
Modify existing programs that use different protocols to communicate between computers. |
|
11.05
Use existing network programming libraries for creating a network messaging program. |
|
11.06
Create simple games that use the TCP and IPX protocols to communicate between computers. |
|
11.07
Distinguish different types of ISP provider connections. |
|
11.08
Examine the limitations of game development for certain types of ISP connections. |
|
11.09
Distinguish all of the layers of the OSI Model in terms of what is the function of each layer and how they work together. |
|
11.10
Summarize each of the layers of the OSI model. |
|
11.11
Relate the application layer and game development. |
|
11.12
Modify existing programs that use the application layer. |
|
11.13
Diagram the application layer of the OSI model. |
|
11.14
Modify existing programs that use peer-to-peer application programming. |
|
11.15
Write peer-to-peer based programs and games. |
|
11.16
Modify existing programs that use the client server model for network application. |
|
11.17
Install the DirectX Standard Development Kit (SDK) and its programming libraries. |
|
11.18
Modify existing programs that uses the DirectX’s DirectPlay for network and game applications. Writing small games that use DirectX’s DirectPlay to communicate over the network for their final project. |
|
11.19
Identify lobby based games and application. |
|
11.20
Explain code for lobby initialization and startup. |
|
11.21
Retrieve connection information for lobby based games and applications. |
|
11.22
Modify existing program that uses the sockets for application communication. |
|
11.23
Write sockets base programs for game communication. |
|
11.24
Use built in C++ libraries for creating a simple network based game. |
|
11.25
Examine new network technologies for game development. |
|
11.26
Summarize articles by giving a class presentation on future of networking and game development. |
|
12.01
Examine the origins of artificial intelligence for games, and the first games to use artificial intelligence. |
|
12.02
Analyze how AI is used in games. |
|
12.03
Distinguish the different methods used to create AI for games. |
|
12.04
Modify existing AI methods for games. |
|
12.05
Create new AI methods games. |
|
12.06
Discuss at what level of programming AI starts. |
|
13.01
Research path planning. |
|
13.02
Discuss the advantages and disadvantages of path planning. |
|
13.03
Modify existing path planning code to change the behavior of the game’s computer controlled characters. |
|
13.04
Enhance existing games by creating computer controlled characters. |
|
14.01
Modify code for different stimulus-response agent. |
|
14.02
Create computer controlled characters using stimulus-response agents. |
|
14.03
Combine aspects of stimulus-response agents systems with other artificial intelligence methods to create new systems for computer controlled characters. |
|
14.04
Modify code for different stimulus-response agents. |
|
14.05
Create computer controlled characters using stimulus-response agents. |
|
14.06
Combine aspects of stimulus-response agents systems with other artificial intelligence methods to create new systems for computer controlled characters. |
|
15.01
Modify code for different agent architectures. |
|
15.02
Create computer controlled characters using agent architectures. |
|
15.03
Combine aspects of agent architectures systems with other AI methods to create new systems for computer controlled characters. |
|
16.01
Modify code for different decision making systems. |
|
16.02
Create computer controlled characters using decision making systems. |
|
16.03
Combine aspects of decision-making systems with other AI methods to create new systems for computer controlled characters. |
|
17.01
Create and modify game tree systems. |
|
18.01
Modify code for artificial neural networks (ANNs). |
|
18.02
Create computer controlled characters using ANNs. |
|
18.03
Combine aspects of neural networks systems with other AI methods to create new systems for computer controlled characters. |
|
19.01
Modify code for genetic algorithms systems. |
|
19.02
Create computer controlled characters using genetic algorithms. |
|
19.03
Combine aspects of genetic algorithms systems with other AI methods to create new systems for computer controlled characters. |
|
20.01
Modify programs that use different graphics libraries. |
|
20.02
Use different graphics libraries in the final project and programming assignments. |
|
20.03
Develop libraries to use with 3D software development. |
|
20.04
Modify existing programs that use sound and music to add realism in game development. |
|
20.05
Modify sound systems to add direction and distance to sound effects. |
|
20.06
Use sound effects in programming assignments. |
|
20.07
Distinguish different sound file formats with respects to quality, and size. |
|
20.08
Use sound effects and music in the final project. |
|
20.09
Modify existing programs that use different types of input devices in game development. |
|
20.10
Use different input devices in the final project and programming assignments. |
|
20.11
Use forced feedback devices for input. |
|
20.12
Summarize papers on the future of input devices. |
|
20.13
Create 3D transparent objects. |
|
20.14
Summarize papers on alpha blending programming methods. |
|
20.15
Use transparency or fog in the final project. |
|
20.16
Distinguish partial systems in terms of their uses such as fire and explosions. |
|
20.17
Modify and write programs that use partial systems for special effects. |
|
20.18
Apply physics to particle systems for realism. |
|
20.19
Distinguish different methods for creating shadows. |
|
20.20
Experiment with different lighting effects. |
|
20.21
Modify 3D programs to include lighting and shadow effects in a 3D world. |
|
20.22
Apply light and shadow effects in games to add realism. |
|
20.23
Create light sources and shadows in the final project. |
|
20.24
Modify existing programs that use reflection and refraction. |
|
20.25
Develop programs that use light reflection and refraction. |
|
20.26
Use light reflection and refraction in the final project. |
|
20.27
Modify programs that use texture mapping. |
|
20.28
Create 3D texture-mapped surfaces. |
|
20.29
Use texture mapping in the final project. |
|
20.30
Modify programs that use collision detection and reaction. |
|
20.31
Compare different collision detection algorithms in terms of CPU usage and accuracy. |
|
20.32
Use collision detection in the final project. |
|
20.33
Discuss advantages of different collision methods. |
|
20.34
Modify programs that use visible-surface determination. |
|
20.35
Apply different algorithms for visible-surface determination to determine their effect on the performance of games and the game engines. |
|
20.36
Modify programs that use hidden line removal. |
|
20.37
Apply different algorithms for hidden line removal to determine their effects on the performance on games and the game engines. |
|
20.38
Apply basic physics to a 3D game environment. |
|
20.39
Create simplified calculations to mimic real life physics. |
|
20.40
Manipulate physics functions to be applied to existing data structures that store the 3D world. |
|
21.01
Distinguish game development projects. |
|
21.02
Discuss case studies on game development projects. |
|
21.03
Evaluate different types of projects in game development. |
|
21.04
Create a game proposal document for a game development project. |
|
21.05
Present and justifying the final completed project to the class. |
|
21.06
Distinguish different team structures used in game development. |
|
21.07
Work on a team project to develop a game from start to finish. |
|
21.08
Discuss case studies on team game development structures. |
|
21.09
Develop a game in teams from start to finish. |
|
21.10
Subdivide a game development project into parts. |
|
21.11
Research different game development processes. |
|
21.12
Apply one of the existing processes to develop a game from start to finish. |
|
21.13
Justify the game development process that was chosen for the project. |
|
21.14
Distinguish the stages of game development. |
|
21.15
Develop a game from start to end and working through all the stages of game development. |
|
21.16
Create a fully working game using all the skills gained in the game programming courses. |
|
21.17
Use all aspects of game programming development including graphics, sound, networking, software analysis, level building and design. |
|
21.18
Create a timeline, and meeting deadlines on their project. |
|
21.19
Use professional scheduling tools to communicate with the project team. |
|
21.20
Prepare progress reports. |
|
21.21
Use existing code from previous projects and publicly available code. |
|
21.22
Give credits or request permission to use codes. |
|