Standards in this Framework
Standard | Description |
---|---|
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. |