Please enable JavaScript to use CodeHS

Standards Framework

for Florida Game Development Design

212

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.