Introduction to Game Development Lessons and Tasks

Developed by: Aaron Brumbaugh [email protected] Summer 2016

DISTRIBUTION A: Approved for public release; distribution unlimited. Approval given by 88 ABW/PA, 88ABW-2016-4906, 03 Oct 2016.

TABLE OF CONTENTS Table of Contents................................................................................................................................................... 2 1.

2.

3.

Introduction .................................................................................................................................................. 4 1.1.

Tools and Software ......................................................................................................................................5

1.2.

LogBooks ......................................................................................................................................................5

1.3.

Additional Resources....................................................................................................................................5

1.4.

Collaboration Opportunities ........................................................................................................................6

1.5.

Course Website ............................................................................................................................................7

Powerpoint Presentations ............................................................................................................................. 7 2.1.

Writing Prompt: Games and Genres ............................................................................................................7

2.2.

Writing Prompt: Video Game Jobs and Industry ..........................................................................................7

Creating Concept Art ..................................................................................................................................... 8 3.1.

Providing Feedback and Peer Review ..........................................................................................................8

3.2.

Creating Concept Art Task Background ........................................................................................................9

3.2.1. 3.3.

Creating Concept Art Task ..........................................................................................................................10

3.3.1. 4.

Introduction to 3D Modeling Task Background .........................................................................................12

4.1.1.

Pictures: .............................................................................................................................................13

4.2.

Introduction to 3D Modeling (Task 1) ........................................................................................................13

4.3.

Introduction to 3D Modeling (Task 2) ........................................................................................................14

4.4.

Introduction to 3D Modeling (Task 3) ........................................................................................................14

4.4.1.

Introduction to 3D Modeling (Task 3) Grading Rubric ......................................................................14

Introduction to Computer Programming ..................................................................................................... 15 5.1.

Introduction to Computer Programming With Scratch (Task Background) ...............................................16

5.1.1. 5.2. 5.3.

Task 1 Scoring Guide .........................................................................................................................17

Analysis of Game Code (Task 2) .................................................................................................................18

5.3.1. 5.4.

Pictures ..............................................................................................................................................17

Game Production (Task 1) ..........................................................................................................................17

5.2.1.

6.

Creating Concept Art Grading Rubric ................................................................................................11

Introduction to 3D Modeling ....................................................................................................................... 12 4.1.

5.

References and Pictures ....................................................................................................................10

Task 2 Scoring Guide .........................................................................................................................18

Python® Programming Assignments and Tasks .........................................................................................18

5.4.1.

Assignment 1 – Chapter 1 (programarcadegames.com) ...................................................................18

5.4.2.

Assignment 2 – Chapter 3 (programarcadegames.com) ...................................................................25

5.4.3.

Assignment 3 – Chapter 4 (programarcadegames.com) ...................................................................32

Introduction to Game Engines ..................................................................................................................... 45 6.1.

Introduction to Game Engines Background ...............................................................................................46

Introduction to Game Development Distribution A.

2

6.1.1.

Pictures ..............................................................................................................................................47

6.1.2.

Task for Beginners .............................................................................................................................47

6.1.3.

Task For Non-Beginners.....................................................................................................................47

6.2. 7.

Task Scoring Guide .....................................................................................................................................48

Game Development Capstone Project ......................................................................................................... 49 7.1.

Development Stage 1 & 2 (Week 1) ...........................................................................................................50

7.1.1.

Game Design Document ....................................................................................................................50

7.1.2.

Game StoryBoard ..............................................................................................................................50

7.2.

Main Production Stage 3 (6 weeks) ...........................................................................................................51

7.2.1. 7.3.

Creating Milestones For Student Teams ...........................................................................................51

Capstone Components ...............................................................................................................................51

7.3.1.

3D Asset Creation ..............................................................................................................................52

7.3.2.

Character Creation and Animation ....................................................................................................52

7.3.3.

2D Asset/Texture Creation ................................................................................................................52

7.3.4.

Level Design .......................................................................................................................................52

7.3.5.

Sound Design .....................................................................................................................................53

7.3.6.

Menu Design .....................................................................................................................................53

7.3.7.

Game Engine Programming ...............................................................................................................53

7.3.8.

Progress Documentation ...................................................................................................................53

7.4.

Alpha and Beta Stage 4 & 5 (1 Week) ........................................................................................................53

7.5.

Gold Stage 6 (1 Week) ................................................................................................................................54

7.5.1.

Game Trailer ......................................................................................................................................54

7.5.2.

Presentation ......................................................................................................................................54

7.6.

Game Development Capstone Project Rubric ............................................................................................54

7.7.

TEamWork and Collaboration Self-Assessment Rubric ..............................................................................56

7.8.

Team Work and Collaboration Peer Evaluation Form ................................................................................58

7.9.

Student Presentation Rubric For Audience ................................................................................................59

Introduction to Game Development Distribution A.

3

1. INTRODUCTION After facilitating a modeling and simulation course where students simulated a fire evacuation drill, I realized just how much students enjoyed working with 3D modeling and game engines. Students were willing to persevere to overcome challenging problems that arose almost daily and with very little direct teacher assistance. I also noticed that many students tried to incorporate more interactivity (i.e., game mechanics) into their simulations to make them more fun to “play.” It was with this insight that I began working on a collection of materials and resources that comprise the Introduction to Game Development course. The goals of and the rationale behind the Introduction to Game Development course are to give students the opportunity to begin developing a working knowledge of many of the tools, skills, and traits of a video game developer and several other professionals. Students will have the opportunity to learn how to create 3D models on a computer, some of the fundamental concepts of computer programming using Python®, and create a playable game prototype using a 3D game engine. Alongside these tangible skills that are not only valuable to game developers (i.e., engineers, architects, military personel), students will also have several opportunities to work with one another throughout the course in order to build their communication and team work skills. Lastly, students will have several opportunities to solve the inevitable problems that will arise in their work. Through working together with peers, independent and group research, and perseverance, students will have the chance to build their problem-solving and critical thinking skills. The Introduction to Game Development course is designed to be a predominantly projectbased semester long course that is student-centered. Much of the materials provided herein are self-paced and easily differentiated depending on the background and ability levels of the students. The teacher’s role in this course is to launch the tasks, ensure students are maintaining a strong work ethic, and provide assistance in helping students break down problems when they encounter. The teacher does not have to be an “expert” at any of the technical skills presented in this course, and should be comfortable not always having an answer for students. The teacher needs to be willing to help students troubleshoot and think logically about issues that are encountered during a task. Rather than giving answers to students, the teacher’s role is to help guide students to a possible solution that they can claim as their own. The teacher will discover that this method of teaching (as opposed to direct instruction), not only helps students retain knowledge, but greatly increases the students’ confidence in problem-solving. As a result, the teacher will see students peer-teaching as they encounter similar issues throughout the course. NOTE: Most of the materials in this lesson and task guide can be found at https://padlet.com/abrumbaugh/introgame. Please feel free to download any of the documents and modify as necessary. Introduction to Game Development Distribution A.

4

1.1. TOOLS AND SOFTWARE The main tools and software used for this course are: 

3ds Max® (http://www.autodesk.com/education/free-software/all)

3ds Max® is a 3D modeling software that is used by professionals in many different fields including video games. The software is free for educators and students once the teacher or district has completed the necessary online forms. 

Python® 3.X (https://www.python.org/downloads/)

Python® is a programming language that offers a great introduction to computer programming. The language has relatively simple syntax and a large amount of resources exist online for people who are starting to learn Python®. This course guide and its materials use Python 3.4® or newer. 

Unreal Engine 4® (https://www.unrealengine.com/)

Unreal Engine 4® is a 3D game engine created by Epic Games. The application suite is free to anyone who creates a free Epic Games account. Unreal Engine 4® is a very powerful engine that is used by dozens of professional game developers for its ability to produce high fidelity graphics and visual scripting feature (i.e., blueprints). 1.2. LOGBOOKS One of the ongoing assessments throughout this course comes in the form of engineering logbooks (logbook). A logbook is a written document (physical/digital) that acts as a journal for the student. Logbooks give students a place to record the learning that occurs each day throughout the course. This document also provides a place for students to write down the problems they might encounter, resources they may find, and ideas they may have for a project. Ultimately, each logbook should clearly illustrate the learning process of a student throughout the course. For more information on logbooks, see http://www.webpages.uidaho.edu/mindworks/Capstone%20Design/Project%20Guides/Logboo k_Handout.pdf. 1.3. ADDITIONAL RESOURCES Introduction to Game Development Distribution A.

5

The following resources are not required for the course, but the teachers and students may find these useful: 

GIMP 2, PhotoShop, or other photo editing application (https://www.gimp.org/downloads/)

Once students begin texturing 3D models using pictures they find online, scan, etc., photo editing software might be necessary to modify a picture so that it fits the model correctly. The process for texturing in this method is very time consuming, but it produces the best looking work. There are many different photo editing suites to choose from, many of which are free (e.g., GIMP 2, Pixlr). 

Mixamo (https://www.mixamo.com/)

Mixamo is an online application used to rig and animate 3D biped characters. Once students have created an account through Adobe®, they are able to upload character models created in 3ds Max® or other 3D modeling program and choose from hundreds of pre-made animations for the model. This application greatly decreases the time it takes to animate a character and all of the animations can easily be imported into Unreal 4® or other game engine. Fuse is an extension of Mixamo that allows students to create biped characters from the ground up. 1.4. COLLABORATION OPPORTUNITIES Video game development encompasses many different skills and talents. There are several opportunities for interdisciplinary collaboration during the game development process. The following list offers a selection of examples that teachers could utilize in an interdisciplinary project: Art/Graph Design – Create box art for games that are currently in development Music/Band/Choir – Compose, play, and record music for a game project Language Arts – Peer-edit game teams’ game design document (features the game’s story) and storyboard Study Hall/Other Courses – Play and provide feedback (beta testing) to development teams’ products that are near completion Computer/Web Design – Create a website that can host the final products from the game development teams

Introduction to Game Development Distribution A.

6

1.5. COURSE WEBSITE The course website (www.padlet.com/abrumbaugh/introgame) contains the majority of the resources for this class. Teachers can also find supporting materials (e.g., extra tutorials, links to optional software applications, video game technology-based articles) on the website. To access and/or download content from the website, a user can click the rectangle that he/she is interested in. After doing this, a window displaying the content should appear on the screen. By clicking the View Original button in the upper right hand corner of this window, the user will be taken directly to the website that the link is affiliated with or download the material (e.g., documents) to their computer. The website is updated occasionally as students find helpful resources that are not currently on the website. If there are any useful resources that a teacher or student discovers and would like to see it on the course website, please send a link and brief description of the content to Mr. Aaron Brumbaugh at [email protected]. 2. POWERPOINT PRESENTATIONS At the beginning of the course, the teacher should present the information in the PowerPoint presentations provided in the link below. While the presentations will take a few days to cover, they provide an important foundation (modeling and simulation, terminology, history of the industry) for the course. Both the PowerPoint presentations and the guided notes for students can be found at www.padlet.com/abrumbaugh/introgame. 2.1. WRITING PROMPT: GAMES AND GENRES After completion of the Intro to Game Development (Day 1) PowerPoint presentation, assign the following writing prompts: 1. We looked at two definitions of the word “game.” Find a video game that you feel really doesn’t fit either of the definitions, and explain why. (write 1 paragraph) 2. Name two or three of your favorite games. What genre does each fit into? Explain the defining feature(s) of each game that allow you to classify its genre. (write 1 paragraph) It is recommended that students type these prompts and email them to their teacher. Printable versions of the prompt are located at www.padlet.com/abrumbaugh/introgame. 2.2. WRITING PROMPT: VIDEO GAME JOBS AND INDUSTRY Introduction to Game Development Distribution A.

7

After completion of the Intro to Game Development (Day 2) PowerPoint presentation, assign the following writing prompts: 1. If you could pick any role/job on a video game development team, which would it be and why? (write 1 paragraph) 2. It seems that in the past several years, games are released with many bugs and glitches that affect the gameplay requiring users to download day one patches in order to play the game they just purchased. Why do you think this is? Explain. (write 1 paragraph) It is recommended that students type these prompts and email them to their teacher. Printable versions of the prompt are located at www.padlet.com/abrumbaugh/introgame. 3. CREATING CONCEPT ART In this task, students will create ‘concept art’ for an object they will use within a game. Encourage students to spend some time researching and finding good examples of video game concept art before attempting their own. The goal of this lesson is to help students focus on their object and think about what it will look like. Creating concept art is very much like brainstorming for a 3D modeler. It allows them to see and test different details on an object before the 3D modeling process begins. During this task, emphasize the need for three different angles/points of view for their model; common viewpoints for concept art are from the front, side (left or right), and back of the object. Also stress to students the importance of maintaining a uniform size for each drawing, as once they begin 3D modeling it will be easier to import these pictures into the 3D modeling program. Finally, while the artistic quality is important, teachers should emphasize that every student should create neat and clean concept art that will be beneficial as a reference in 3D modeling. 3.1. PROVIDING FEEDBACK AND PEER REVIEW After students have had some time to create their concept art (two days maximum), have students critique each other’s work. At this time a teacher may want to have a discussion on providing and receiving effective feedback. The teacher should stress that good feedback is specific, helpful, and constructive (not mean spirited). The teacher should also stress that incorporating other’s feedback into a piece of work can greatly increase its quality. The teacher may want to show the video of Austin’s Butterfly (https://www.youtube.com/watch?v=hqh1MRWZjms) to demonstrate the impact giving and receiving feedback can have on a piece of art.

Introduction to Game Development Distribution A.

8

One protocol that a teacher may follow for peer review/critique a gallery walk. In a gallery walk, students will display their work at their seat/station for all others to see. Students are NOT to talk during a gallery walk. Next, each student should receive two sticky notes per each other student in the class (e.g., in a class of 15 students, each student would need 28 sticky notes). After students have their sticky notes, students should move around the room and examine each piece of work at all of the other seats/stations. Students are to give each piece of work a compliment (e.g., “I like …”) using one sticky note, and a critique (“I wonder if …”) using the second sticky note. Once all students have had the opportunity to provide feedback to all other pieces of work, they should return to their seats and reflect quietly on the feedback they received. Students can then use the feedback to make adjustments to their model. Depending on the class size, a gallery walk may not be possible and the teacher may need to modify the protocol if time is a factor. 3.2. CREATING CONCEPT ART TASK BACKGROUND One of the first steps in creating a video game is to give a visual representation of the ideas you have. Concept artists are responsible for this task, bringing a game designer’s visions to life in the form of a series of two dimensional drawings. Concept art involves sketching character designs, world designs, and storyboards (Figure 1). Character designs include drawings of characters and creatures that appear in the game from multiple angles/points of view (Figure 2). World designs are drawings of the game environments and objects that go within those environments. Storyboards are drawings that portray the progression of the game, giving the development team a general idea of what the game is to look like from start to finish. It is also important to point out that the appearance and look of a game evolves from the concept art. Oftentimes, the objects in a finished game look quite different than the early concept art pieces (Figure 3) (Pardew, 2004).

Figure 1: Concept Art as Reference Images

Figure 2: Example of Concept Art

Introduction to Game Development Distribution A.

9

3.2.1. REFERENCES   



Figure 3: Concept Art to Game

AND PICTURES

The Last of Us (Ellie):- http://venturebeat.com/wp-content/uploads/2014/05/capellie.jpg Example of Concept Art:https://louiecrabbgraphics.files.wordpress.com/2015/01/assassin_concept_art_final.jpg Zoro Model Sheet:- https://s-media-cacheak0.pinimg.com/564x/26/66/76/266676792dd3523f8c51399f20e3fc3e.jpg Pardew, L. (2004). Game Art For Teens (pp. 47-53). Boston, MA: Premier Press.

3.3. CREATING CONCEPT ART TASK After going over the task background with students, inform students that they will be creating a piece of concept art for an object that they would see within a video game. This object may be a person, a creature, or an item that may be a part of the environment. Students should create at least three sketches of their object, each sketch from a different angle/perspective. Also make students aware that the object that they choose may also be used later in this class for another task. The object that students select must be school appropriate and is their own work (e.g., students cannot draw a picture of a person or object that belongs to another game). The following are examples of ways students may create their concept art: A) Pencil and Paper, B) Photoshop or other computer software, and/or C) Brushes 3 or other iPad apps. If students would like to create their concept art using another method other than the options listed above, they should speak with the teacher. The concept art that students create does NOT have to be perfect. The art needs to clearly convey what features and characteristics of the object should carry over to the actual game. It is also important to stress that students should have three sketches of the object from different angles. These sketches may then be used to aid in 3D modeling. Introduction to Game Development Distribution A.

10

Note: A printable student version of this task is located at https://padlet.com/abrumbaugh/introgame. 3.3.1. CREATING CONCEPT ART GRADING RUBRIC

Technique / Concepts

Critique and Reflection

Craftsmanship

Effort

UNSATISFACTORY

DEVELOPING

PROFICIENT

DISTINGUISHED

Work contains one sketch of a game object. The sketch is cannot be effectively used as a set of reference images for 3D modeling.

Work contains two sketches with each being from a different perspective. Sketches are similar but not exactly the same size and details are slightly unproportioned from view to view. Art is created so that it can be effectively imported into a 3D modeling program as a set of reference images.

Work contains three sketches with each being from a different perspective. Sketches are similar but not exactly the same size and details are slightly unproportioned from view to view. Art is created so that it can be effectively imported into a 3D modeling program as a set of reference images.

Work contains three sketches with each being from a different perspective. Sketches are the same size and details are proportional to the angle they are viewed from. Art is created so that it can be effectively imported into a 3D modeling program as a set of reference images.

Work incorporates minimal changes (no more than 1) based on peer reviews and the artist’s personal reflection. The artist is unable to clearly justify most of the changes that were made in a short written/typed document.

Work incorporates a couple of modifications (at least 2) based on peer reviews and the artist’s personal reflection. The artist is unable to clearly justify most of the changes that were made in a short written/typed document.

Work incorporates some modifications (at least 3) based on peer reviews and the artist’s personal reflection. The artist is able to justify most of the changes that were made in a short written/typed document.

Work incorporates a variety of modifications (at least 4) based on peer reviews and the artist’s personal reflection. The artist is able to justify the changes that were made, and explain those changes in a short written/typed document.

Sketches are messy and need more work before they can be used as reference images for 3D modeling.

Sketches are neat, but edges need smoothed out and smudges are present in the art. Sketches need more work before they can be used as reference images for 3D modeling.

Sketches are neat and clean, Rough edges are smoothed out and smudges are not present. Edges are darkened to make the art effective as a set of reference images.

Sketches are neat and clean. Rough edges are smoothed out and darkened to make the art effective as a set of reference images. The art is in color and clearly depicts the artist’s idea for their game model.

The task is not completed in a satisfactory manner. The artist shows minimal effort. The artist is not committed and engaged most of the time for the duration of the project.

The task is complete but it lacks finishing touches or can be improved with a little effort. The artist does just enough to meet requirements. The artist was not committed and engaged some of the time for the duration of the project.

Completed the task in an above average manner, yet more could have been done. The artist was committed and engaged most of the time for the duration of the project.

Completed the task with excellence and greatly exceeded the teacher’s expectations. The artist was committed and engaged for the entire duration of the project.

.

Introduction to Game Development Distribution A.

11

Note: A printable version of this rubric can be found in the Creating Concept Art Task document located at www.padlet.com/abrumbaugh/introgame. 4. INTRODUCTION TO 3D MODELING In this series of tasks, students will work through several video tutorials located on www.padlet.com/abrumbaugh/introgame to learn about 3D modeling and the program 3ds Max. The ultimate goal with these tasks is to give students the working knowledge and confidence they need to begin creating their own 3D game models. During the first task, all students will complete the same series of tutorials in order to create a 3D model of a mailbox. Students will begin to learn some of the basics of 3D modeling and 3ds Max, as well as important characteristics of 3D models like polygon count and topography and how they can affect engine performance if used in a video game. During the second task, students will have the choice as to which tutorials they would like to complete. Each tutorial on the course website is given a specific point value based on difficulty. In order to earn full credit for this task, students must complete at least 5 points worth of videos. If students wish to use different tutorials other than the ones on the course website, they may do so with teacher approval. Note that the teacher will need to possibly preview the video in order to judge its difficulty and appropriateness for the class. Some tutorials, like those that show how to model 3D characters and people, take an immense amount of time to complete. The teacher should keep in mind that it should take no longer than five days for students to earn their 5 points for this task. Lastly, in the third and final task for 3D modeling, students will create their own 3D models from scratch using their previously made concept art as a reference. Students may opt to create new concept art for this task if they wish. If students would like to scan and use their concept art as a reference in 3ds Max, they will need to do some extra work. Students will need to utilize Photoshop, GIMP 2, or some other photo editing program to prepare their drawings for 3ds Max. A tutorial for setting up reference images in 3ds Max is posted on www.padlet.com/abrumbaugh/introgame under 3D Modeling - Other 3ds Max Resources. It takes extra time to get reference images set up for modeling in 3ds Max; however, students may find that it saves them time in the actual modeling process as a result. Also, during this task, the teacher may want to use a day for peer review of the models (see Providing Feedback and Peer Review). 4.1. INTRODUCTION TO 3D MODELING TASK BACKGROUND Introduction to Game Development Distribution A.

12

Video games have evolved greatly over the last several decades. Early video games were comprised of vector graphics (Figure 4) that consisted of a series of lines drawn to create each object in the game. As technology advanced, pixel art (Figure 5) was used to create titles such as Super Mario Bros. and The Legend of Zelda for the Nintendo Entertainment System. By creating game assets with pixels, gamers no longer had to rely on their imaginations to make sense of a game. In the present day, many games utilize 3D graphics (Figure 6) to create more realistic, life-like models that help players become immersed in their stories and gameplay.

Figure 4: Vector Graphics

Figure 5: Pixel Graphics

Figure 6: 3D Graphics/Model

3D modeling is one of the most important roles in the video game industry, as it is one of the first things a player sees. While a game does not have to have “good graphics” to be enjoyable, the 3D models and game world can greatly affect a person’s opinion of a game as soon as they begin playing. Depending on what is to be modeled (e.g., character, level, game object/item), developers will determine during pre-production what programs will be used. Levels might be created using the game engine (e.g., Unity3D or Unreal 4), where character models might be created with another program such as Maya or Blender. In this task, you will be creating several 3D models using 3ds Max, a professional 3D modeling and animation program that is used by many artists in the game industry. 4.1.1. PICTURES: Figure 4: http://www.othercinema.com/otherzine/archives/otherzine19/cox/cox10.jpg Figure 5: http://oyster.ignimgs.com/wordpress/stg.ign.com/2014/03/the-legend-of-zeldanes.jpg Figure 6: http://www.007cad.com/uploads/120526/1_013400_1.jpg Note: A printable version of this task is located at www.padlet.com/abrumbaugh/introgame. 4.2. INTRODUCTION TO 3D MODELING (TASK 1)

Introduction to Game Development Distribution A.

13

For this task, have students watch the 3ds Max – Beginner Game Modeling 101 Part 1 through 9 on www.padlet.com/abrumbaugh/gameintro to learn some of the basic features and abilities of 3ds Max. By the end of this video series, students will have created a basic mailbox that they may choose to use in a game created later in this course. 4.3. INTRODUCTION TO 3D MODELING (TASK 2) For this task, have students complete at least 5 points worth of 3ds Max tutorials located on the course website www.padlet.com/abrumbaugh/gameintro. Remind students to save their progress/final products of the tutorials they complete. 4.4. INTRODUCTION TO 3D MODELING (TASK 3) In this task, explain to students that they will create a 3D model based on the concept art they designed earlier in the course. Inform students that they may opt to create new concept art of another object that they would like to see within a game if they wish. See the attached rubric for the guidelines for this task. 4.4.1. INTRODUCTION TO 3D MODELING (TASK 3) GRADING RUBRIC

UNSATISFACTORY

Technique / Concepts

Reflection and Understanding

DEVELOPING

PROFICIENT

DISTINGUISHED

Model is created using no more than one 3ds Max tool (e.g., extrude, bevel, connect). Tool will be identified and explained in a short written document.

Model is created using two different 3ds Max tools (e.g., extrude, bevel, connect). Tools will be identified and explained in a short written document.

Model is created using three different 3ds Max tools (e.g., extrude, bevel, connect). Tools will be identified and explained in a short written document.

Model is created using at least four different 3ds Max tools (e.g., extrude, bevel, connect). Tools will be identified and explained in a short written document.

Artist’s explanation of the overall creation process used to make the model is vague and lacks many details. The artist identifies the 3ds Max tools they used for the model, but does not describe the tools, nor do they explain why they were necessary or made the work easier. The artist loosely communicates issues they had while creating their model, but are unable to give a specific area in 3D modeling they need more work on. The written

Artist’s explanation of the overall creation process used to make the model is vague and lacks many details. The artist identifies and describes the 3ds Max tools used for the model, but does not explain why they were necessary or how they made the work easier. The artist loosely communicates issues

Artist can explain the overall creation process used to make the model, although the explanation may be unclear at times. The artist can identify and describe the specific 3ds Max tools used to create the model, as well as why they were necessary or made the work much easier. The

Artist can clearly and concisely explain the overall creation process used to make the model. The artist is able to identify and describe the specific 3ds Max tools used to create the model, as well as why they were necessary or made the work much easier. The artist is able to clearly communicate issues they had while creating their model and can

Introduction to Game Development Distribution A.

14

Craftsmanship

Effort

document falls short of the 3to 4-paragraph requirement.

they had while creating their model, but are unable to give a specific area in 3D modeling they need more work on. The written document falls short of the 3- to 4paragraph requirement.

artist is able to communicate issues they had while creating their model and can identify areas of 3D modeling they need to continue to work on. All of the above are written in a short 3- to 4paragraph document.

identify areas of 3D modeling they need to continue to work on. All of the above are written in a short 3- to 4-paragraph document.

Model does not resemble the concept art that it is based on. The model lacks details and neatness or is incomplete. The model is not textured. Model contains gaps and/or overlapping in the geometry. There are one or more stray objects in the project.

Model loosely resembles the concept art that it is based on. The model lacks the details and neatness required to be proficient. The model is textured, but some of the textures appear to be stretched or distorted. Model does not contain any gaps or overlapping in the geometry. There are one or more stray objects in the project.

Model is neat and clean looking, closely resembling the concept art that it is based on. The model is textured, but some of the textures appear to be stretched or distorted. Model does not contain any gaps or overlapping in the geometry. There is no stray geometry in the project.

Model is neat and clean looking, closely resembling the concept art that it is based on. Every face is appropriately and accurately textured (e.g., textures are not stretched or distorted). Model does not contain any gaps or overlapping in the geometry. There is no stray geometry in the project.

The task is not completed in a satisfactory manner. The artist shows minimal effort. The artist is not committed and engaged most of the time for the duration of the project.

The task is complete but it lacks finishing touches or can be improved with a little effort. The artist does just enough to meet requirements. The artist was not committed and engaged some of the time for the duration of the project.

Completed the task in an above average manner, yet more could have been done. The artist was committed and engaged most of the time for the duration of the project.

Completed the task with excellence and greatly exceeded the teacher’s expectations. The artist was committed and engaged for the entire duration of the project.

Note: A printable version of this rubric can be found in the 3ds Max Modeling Task document located at www.padlet.com/abrumbaugh/introgame. 5. INTRODUCTION TO COMPUTER PROGRAMMING In this series of tasks and lessons, students will learn some of the fundamentals of computer programming (e.g., syntax, variables, loops), as well as the importance of programming to the development of a video game.

Introduction to Game Development Distribution A.

15

Because programming can be very intimidating and possess a steep learning curve, students will research programming with MIT’s Scratch. Scratch is a visual scripting application that allows users to program and create games using code blocks as opposed to typing lines of code. This eliminates the necessity of complex syntax when writing code, and allows the students to focus more on the logic behind the code. Students’ first task with computer programming will require students to make a video game using Scratch. The recommended game requirements are listed below in the Task 1 Scoring Guide. Students should take no more than one week to complete their games. Once students have completed their Scratch games, they should reflect on the completed scripting. Students will then write a short paper that explains the large sections of their code rather than the individual blocks. For instance, there might be a section of code made up of several blocks that controls the movement of the character based on the input from the player. A student would take a screenshot of these blocks and not only explain what they do in the game, but also how they work. The rationale behind this task is to encourage students to think more deeply about their code and understand how it works. The second half of this unit has students working with the Python® programming language. Students will learn many programming basics by utilizing some of the online text from the website www.programarcadegames.com. By the end of their work with Python®, students will have created several programs that range from simple formula calculators to a short text-based adventure game. 5.1. INTRODUCTION TO COMPUTER PROGRAMMING WITH SCRATCH (TASK BACKGROUND) Scratch (Figure 7) is a free online application (https://scratch.mit.edu/) that allows users to create programs and games through computer programming. As opposed to writing lines of code to create a program, the user is given a large toolbox of blocks that can be used to manipulate objects on the computer screen. Scratch is used by many people of all ages as an introduction to the world of computer programming.

Introduction to Game Development Distribution A.

16

Figure 7: Scratch Programming

Note: A printable version of this task is located at www.padlet.com/abrumbaugh/gameintro. 5.1.1. PICTURES Figure 7:http://static1.squarespace.com/static/51545d53e4b0ebbbab48bec7/t/52e789b8e4b0782b6d6 567cf/1390905786027/car_race-_Scratch.png 5.2. GAME PRODUCTION (TASK 1) In this task, students will learn how to use code blocks to create a game of their own. Explain to students that their game may be any genre; however, students should keep in mind that it must be school appropriate (i.e., no blood/gore, language, excessive/realistic violence, guns, etc.) and it must be of their own creation (i.e., students cannot “borrow” a game or parts of a game from the Scratch website or any other online site.) To get started, explain to students it might be beneficial to write out some ideas of gameplay mechanics, locations, characters, and story that they would like to see in the game. Remind students to utilize their logbooks throughout this task to document their progress, learning, and ideas they come up with each day. 5.2.1. TASK 1 SCORING GUIDE Each game created in Scratch should incorporate the following: Introduction to Game Development Distribution A.

17

       

At least one character/sprite that is controllable by the player [5 points] Character/sprite has at least one instance of dialogue (written/spoken) [5 points] A Title screen and Game Over/Credits screen [5 points] At least three different backgrounds/levels [5 points] At least one cutscene that includes movement and/or dialogue [5 points] At least two different sound effects [5 points] Background music while the game is running [5 points] Game should be playable without any major bugs/glitches [5 points]

NOTE: Inform students that this task must be completed within five days after it launches. If submitted late, a student will have 5 points deducted for each day that is past the deadline. 5.3. ANALYSIS OF GAME CODE (TASK 2) In this final task, inform students that they will be explaining the sections (not individual blocks) of code that were used to make their game. Students should take screenshots of their code and explain the purpose and function of each section. This explanation will come in the form of a typed document that students will email to their teacher when completed. 5.3.1. TASK 2 SCORING GUIDE  Paper is written using 12 point Calibri, Arial, or Times New Roman font, and is double spaced [5 points]  Writing is easy to read and understand, and utilizes screenshots of the code being explained [10 points]  Paper accurately explains and addresses all sections of code within the game [10 points] Inform students that this task must be completed within three days after it launches. If submitted late, a student will have 5 points deducted for each day that is past the deadline. 5.4. PYTHON® PROGRAMMING ASSIGNMENTS AND TASKS 5.4.1. ASSIGNMENT 1 – CHAPTER 1 (PROGRAMARCADEGAMES.COM) Students should read through Chapter 1 (all sections) on the www.programarcadegames.com website. Next, students should complete the Python Programming Worksheet #1 located on www.padlet.com/abrumbaugh/introgame and submit to the teacher after completing the two chapter programs.

Introduction to Game Development Distribution A.

18

5.4.1.1. CHAPTER 1 WORKSHEET Python Programming Worksheet #1 Name:______________________

Date:___________________ Period:________

Read and work through Chapter 1 and its examples located at http://programarcadegames.com/. Be sure to take notes of any important information in your log book as you work. When finished with the reading, complete the following questions and problems below (type your answers in either red or blue.) Submit your final answers to your teacher via email.

Sections 1.1 – 1.2 1) What does the print function do in Python? What is its syntax (i.e., if you want to print something on the screen, how must it be typed in)? 2) How do you print multiple items using only one print function? 3) Examine each of the following lines of code. Determine what will be printed to the screen. If the code will result in a syntax error, give a brief explanation of why. A)

print(“This is a test.”)

B)

print(100 – 4*20)

C)

print(Programming is fun!)

D)

print(“The answer to C is,” 20)

4) Write a line of code that will do each of the following: A) displays the text Python is cool!

B) performs the calculation 9*7 – 10/2 + 13*3 and displays only the solution on the screen

C) displays the calculation/text of 100*6 + 4*9 – 823 as one item/input, and also displays the calculation’s solution as a second item/input

Sections 1.3 – 1.4 Introduction to Game Development Distribution A.

19

5) What does inserting a backslash ( \ ) before a double quote ( “ ) do in Python?

6) Explain the difference between the outputs (i.e., what the computer displays) of the two lines of code below: Code 1: print(“My name is Adam.”, “My favorite game is Borderlands.”) Code 2: print(“My name is Adam. \n”, “My favorite game is Borderlands.”)

7) Write a line of code that would display the following exactly as it is (i.e., same formatting): The Playstation 2 is the best!

8) In Python, what does # do when placed at the beginning of a line of code? 9) Why are comments in code important? Give at least two reasons.

Sections 1.5 – 1.6 10) Use the following line of code to determine the variable, assignment operator, and expression. Game = 2 * Disc + 9

11) In Python, and most other programming languages, what is a variable?

12) TRUE / FALSE: When assigning a value to a variable in Python, the expression can be typed on the left side of the assignment operator (e.g., 3x – 1 = x). Introduction to Game Development Distribution A.

20

13) Examine the following code:

What is the final value that will be displayed on the screen?

14) Examine the following code (NOTE: The numbers to the left of each line are NOT intended to be part of the code):

A) What is the value of xbox in line 5?

B) What is the value of playstation in line 5?

C) What is the final value that will be displayed on the screen?

15) What does the following program print out?

16) Why does the following code NOT work? Explain.

Sections 1.7 – 1.9 17) Use Python to calculate each of the following (NOTE: ⌊ ⌋ represents floor division and mod represents modulus) A)

1385 − 234

Introduction to Game Development Distribution A.

B)

2.37(910) 21

C)

673(1.4)+7(−38) 13

D)

4(

32−43+89+13 2 8

)

E)

⌊5675/7⌋ (Floor Division)

F)

10,543 𝑚𝑜𝑑 9

18) What does floor division (floor function) do? What does modulus (modular arithmetic) do?

19) What line of code allows a user to use trigonometric functions (e.g., sine, cosine, tangent)?

20) Use Python to calculate each of the following to the nearest hundredth if necessary. A)

sin(6.28)

B)

cos(0.76)

C)

tan(0.5)

Section 1.10 21) In Python, what is a script? Answer in a complete sentence.

22) What is the file extension (i.e., the last letters of the file such as .docx and .xls)? 23) What is the proper syntax for an input statement? What does an input statement do?

24) What is the difference between an int and a float?

25) Examine the following script below:

What errors and/or mistakes, if any, exist in the code? Introduction to Game Development Distribution A.

22

26) Create a script that asks a user for information necessary to find the area of a trapezoid. Once the information is collected, the program should calculate the area of the trapezoid. Be sure to search online if you are unsure how to find the area of a trapezoid. Copy and paste OR take a screenshot of the script and paste in the space below. Your script should be created in the Editor Window and saved to the Desktop of your computer.

27) Create a script that calculates the area of a triangle using Heron’s Formula. The script should ask the user for the three side lengths of a triangle. (For more info see https://en.wikipedia.org/wiki/Heron%27s_formula). Note: You will need to import the math library (see 1.9 Trig Functions) at the beginning of your script in order to use the square root function for this problem. The syntax for using square root is: sqrt(number) 5.4.1.2. CHAPTER 1 PROGRAM #1 – THE AREA OF A TRAPEZOID SAMPLE AND KEY Create a script that asks a user for the information necessary to find the area of a trapezoid. Once the information is collected, the program should calculate the area of the trapezoid. Be sure to search online if you are unsure how to find the area of a trapezoid. Here is a sample run of what the program could look like (Figure 8):

Figure 8: Trapezoid Area Program Sample Run

Below is one possible way the program could be written (Table 1): Introduction to Game Development Distribution A.

23

Table 1: Trapezoid Area Program Code

print('This program calculates the area of a trapezoid.') base1 = int(input('What is the length of the first base of the trapezoid? ')) base2 = int(input('What is the length of the second base of the trapezoid? ')) height = int(input('What is the height of the trapezoid? ')) area = 1/2 * (base1 + base2) * height print('The area of the trapezoid is ' + str(area) + ' square units.')

5.4.1.3. CHAPTER 1 PROGRAM #2 – HERON’S FORMULA SAMPLE AND KEY Create a script that calculates the area of a triangle using Heron’s Formula. The script should ask the user for the three side lengths of a triangle. For more information, see https://en.wikipedia.org/wiki/Heron%27s_formula. Note: You will need to import the math library at the beginning of the script in order to use the square root function for this problem. The syntax for using square root is: sqrt(number) Below is a sample run of what the program could look like (Figure 9):

Figure 9: Heron's Formula Program Sample Run

Below is one possible way the program could be written (Table 2): Table 2: Heron's Formula Program Code

from math import * Introduction to Game Development Distribution A.

24

print('This program calculates the area of a triangle using Heron\'s Formula.') side1 = int(input('What is the length of the first side of the triangle? ')) side2 = int(input('What is the length of the second side of the triangle? ')) side3 = int(input('What is the length of the third side of the triangle? ')) semi = (side1 + side2 + side3)/2 area = sqrt(semi * (semi - side1) * (semi - side2) * (semi - side3)) print('The area of the triangle is ' + str(area) + ' square units.')

5.4.2. ASSIGNMENT 2 – CHAPTER 3 (PROGRAMARCADEGAMES.COM) Students should read through Chapter 3 (all sections) on the www.programarcadegames.com website. Next, students should complete the Python Programming Worksheet #2 located on www.padlet.com/abrumbaugh/introgame and submit to the teacher after completing the chapter program. 5.4.2.1. CHAPTER 3 WORKSHEET

Python Programming Worksheet #2 Name:______________________

Date:______________________

Period:_________

Read and work through Chapter 3 and its examples located at http://programarcadegames.com/. Be sure to take notes of any important information in your logbook as you work. When finished with the reading, complete the following questions and problems below (type your answers in either red or blue.) Submit your final answers to your teacher via email.

Section 3.1 – 3.2 1) An if statement is also known as a/an _________________________ statement. 2) What is the primary purpose of an if statement? Give an example of when an if statement would be used. Introduction to Game Development Distribution A.

25

3) What is the proper syntax for writing an if statement in Python? You may need to look at examples in the text to generalize the syntax, or look online for a more direct answer.

4) Examine the following code. Determine the output (in other words, what will be printed) when the code is run.

5) Write a script (sequenced lines of code) in the Python Editor (NOT the shell) that does the following: A) Assigns two different variables to numeric (number) values B) Uses a pair of if statements to compare them C) Outputs a true statement that compares the values 6) In Python, what comparison symbols are used for less than or equal to and greater than or equal to respectively?

7) Examine the script below. Determine what the output of the script would be given each set of variable values.

A) Sony = 6, Nintendo = 13

B) Sony = 165, Nintendo = (Sony / 5) + 100

C) Sony = 16, Nintendo = (Sony * 2) / 3 Introduction to Game Development Distribution A.

26

8) The comparison operator == means that two variables are _________________.

9) The comparison operator != means that two variables are _________________.

10) Explain the difference between = and == in Python. Use complete sentences.

11) TRUE/FALSE: Spacing/Indentation after an if statement is not important in Python. Section 3.3 to 3.4 12) What is a Boolean variable? Answer using a complete sentence.

13) In the Python Shell, type: a = True b = False c = True Use the Python Shell to determine the Boolean value of each statement. Write True or False within each cell.

and

a

b

c

or

a

a

b

b

c

c

Introduction to Game Development Distribution A.

a

27

b

c

14) Under what conditions will an and comparison evaluate to True? Use your tables to find a pattern. 15) Under what conditions will an or comparison evaluate to True? Use your tables to find a pattern.

Section 3.5 to 3.6 16) In general, explain how an if…else statement is executed in Python. Use complete sentences.

17) Examine the following code:

A) What will the output be if myGrade = 88?

B) What will the output be if myGrade = 64?

C) What will the output be if myGrade = 51?

18) Write a script in the Python Editor that uses at least three if…else statements (the above example has 5 of these statements). The script should take a user’s input and output a message based on the value entered. Copy and paste your code in the space below.

19) Examine the following code.

Introduction to Game Development Distribution A.

28

A) Why does the program output “It is hot outside,” when 150 is the input for temperature?

B) What could be done to fix this problem? 20) Identify the specific error in the following script.

21) What does the lower command do in Python? Why is it beneficial to use?

22) Create a short 5-question quiz game using what you have learned so far in chapters 1 and 3. The quiz must meet the following requirements:  

   

Must contain at least 5 questions Questions can be answered with numbers (e.g., “What is 9 + 10?”), text (e.g., “What game character from the Final Fantasy universe has long spiky blonde hair?”), or a selection (i.e., a multiple-choice question.) If choosing to have text-based answers, be sure to allow for some flexibility (e.g., Should “Nintendo” and “nintendo” be the same answer?) Provides user feedback as to whether the question was answered correctly. Quiz will keep track of and print how many questions the user got right at the end of the program The percentage correct should also be printed at the end of the program

Copy and paste your finished program on this document. 5.4.2.2. CHAPTER 3 PROGRAM #1 – QUIZ GAME SAMPLE AND KEY Create a short 5-question quiz game using what you have learned so far in chapters 1 and 3. The quiz must meet the following requirements   

Must contain at least 5 questions Questions can be answered with numbers, text, or a selection (e.g., multiple-choice) If choosing to have text-based answers, be sure to allow some flexibility (e.g., is “Pokémon” and “pokémon” the same answer?)

Introduction to Game Development Distribution A.

29

  

Provide user feedback as to whether the question was answered correctly Quiz will keep track and print how many questions the user got right at the end of the program The percentage correct should be printed

Here is a sample run of what the program could look like (Figure 10):

Figure 10: Quiz Game Program Sample Run

Below is one possible way the program could be written (Table 3): Table 3: Quiz Game Program Code

score = 0 print('Welcome to the Classic Games Quiz!') player = input('Before we get started, can you please tell me your name? ') print('It\'s nice to meet you, ' + player + '! I hope you enjoy this quiz! ') print('') question = input('What is the name of the main villain in Super Mario Bros? ') if question.lower() == 'bowser': score = score + 1 Introduction to Game Development Distribution A.

30

print('Good job! You got it right!') else: print('Incorrect!') print('') question = int(input('How many Donkey Kong Country games were released for the SNES in the United States? Answer using a numeric key. ')) if question == 3: score = score + 1 print('Good job! You got it right!') else: print('Incorrect!') print('') question = input('Which of the following game characters is blue? Select the correct letter. \n A. Mario \n B. Pac-Man \n C. Sonic \n D. Crash Bandicoot \n') if question.lower() == 'c': score = score + 1 print('Good job! You got it right!') else: print('Incorrect!') print('') question = input('Who was the developer of the classic SNES RPGs Chrono Trigger and Final Fantasy III? ') if question.lower() == 'squaresoft': score = score + 1 print('Good job! You got it right!') else: print('Incorrect!') print('') question = input('Nintendo originally partnered with which company to create a CD player addon for the SNES? ') if question.lower() == 'sony': score = score + 1 print('Good job! You got it right!') else: print('Incorrect!') print('') average = (score / 5) * 100 Introduction to Game Development Distribution A.

31

print(player + ', you answered ' + str(score) + ' correctly. That is a ' + str(average) + '%!') print('') print('Thank you for playing!') 5.4.3. ASSIGNMENT 3 – CHAPTER 4 (PROGRAMARCADEGAMES.COM) Students should read through Chapter 4 (all sections) on the www.programarcadegames.com website. Next, students should complete the Python Programming Worksheet #3 located on www.padlet.com/abrumbaugh/introgame and submit to the teacher after completing the chapter program (see below). 5.4.3.1. CHAPTER 4 WORKSHEET Python Programming Worksheet #3 Name:________________________ Date:___________________ Period:_________ Read and work through Chapter 4 and its examples located at http://programarcadegames.com/. Be sure to take notes of any important information in your log book as you work. When finished with the reading, complete the following questions and problems below (type your answers in either red or blue.) Submit your final answers to your teacher via email.

Section 4.1 to 4.2 1) What does a loop in computer programming do? Answer in a complete sentence.

2) Loops have a lot to do with graphics in a video game. For instance, the FPS of a game relies on looping. What does FPS stand for in terms of game graphics? How does FPS affect the look of a game? Answer in a complete sentences.

3) In your own words, what is the difference between a for loop and a while loop? Answer in complete sentences. Introduction to Game Development Distribution A.

32

4) In terms of looping, what is the range function used for? Answer in a complete sentence.

5) How many times will the sentence, “Praise the sun!” print in the following loop?

6) Write a for loop that prints the string “I do not like the Smelter Demon” a total of 50 times. Type or copy and paste your code in the space below.

7) Numbers from _______ to ________ will be printed when the following line of code is ran.

8) How can one specify the increment that a for loop is to count by? Answer in a complete sentence.

9) Examine the following loops. What increment is each loop counting by? Loop 1: Loop 2: Loop 3: 10) Write a for loop that counts down from 20 to 0 by an increment of 2 (e.g., 20, 18, 16…0). Type or copy and paste your code in the space below.

11) Write a for loop that counts the first ten prime numbers. (NOTE: 1 is NOT considered to be prime.) Type or copy and paste your code in the space below.

Introduction to Game Development Distribution A.

33

12) Explain how the following loops run differently. Why is this?

13) Explain, in general, what the following script does when ran.

14) Write a for loop that will find the sum of all even numbers from 1 to 100. Type or copy and paste your code in the space below.

Section 4.3 to 4.4 15) Create a while loop that prints the numbers from 0 to 20. Type or copy and paste your code in the space below.

16) True/False: A while loop requires the use of the range() function.

17) Examine the following while loop. The code will continue to loop until what condition is met?

18) What is the shorthand version of the increment operator (counter), i = i + 5?

19) Examine the following code:

Introduction to Game Development Distribution A.

34

How could you change the code so that when y is typed the game ends and the second loop does not begin? The code should also move to the second loop if n is typed during the first loop. Copy and paste your revised code in the space below.

20) This code does not print anything. What is the problem and how could it be fixed?

21) What must be typed in order to gain access to Python’s random number library?

22) What is the syntax used to create a range of random numbers?

23) Write a line of code that randomly selects a number between 30 and 50.

24) In this program, you are to create a game where you ride a camel across the desert while being chased. You will need to monitor and manage your thirst, how tired the camel is, and how far ahead of the pursuers you are. The game is won by making it all the way across the desert alive. The game can be lost if the player dies of thirst, the camel dies from fatigue, or the player is captured by the natives. The player can take a limited number of drinks from a canteen to restore their thirst, and rest overnight to restore the camel’s energy. When resting overnight or traveling during the day, the natives will continue to pursue the player. Managing the travel speed of the player during the day and deciding when to stop for the night is crucial in surviving through the game. Your game should include the following: 

Variables that keep track of whether the game is over (Boolean), how far the player has travelled, how far the natives have traveled, the player’s thirst level, the camel’s tiredness level, and how many drinks are left in the canteen. (NOTE: Other variables

Introduction to Game Development Distribution A.

35

 





may need to be to be created when making the game, but the one’s mentioned above are the main ones.) Gameplay section should exist within a while loop that executes so long as the player has not lost the game or decided to quit Players should have at the minimum, the following choices during a game session/turn (the sub-bullet points are suggestions as to what each choice does and affects): o A. Drink from the canteen  Restores player’s thirst level o B. Travel at moderate speed  Moves player a random number of miles  Moves natives a random number of miles  Increases camel tiredness by 1  Increases thirst by 1 o C. Travel at full speed  Moves player a random number of miles (more than moderate speed)  Moves natives a random number of miles  Increases camel tiredness by a random number (e.g., between 1 and 3)  Increases thirst by 1 o D. Stop and rest for the night  Camel tiredness is restored  Moves natives a random number of miles o E. Check your status  No movement or stat changes occur  Displays how far the player has traveled in total  Displays how far away the natives are from the player  Displays how many drinks are left for the player o Q. Quit  Ends the game Players should be able to check their status at any given time: o Gives the distance that the player character has traveled o Gives the distance between the player character and the natives o Gives the number of drinks that are still available to the player o NOTE: No stat or variable values should change when doing a status check o NOTE: The pursuers do not move when doing a status check Warning messages should display when certain statistics reach a certain level: o Warn player when thirst is above 4 (i.e., “You are thirsty”) o Warn player when natives are within 15 miles (i.e., “The natives are close by.”)

Introduction to Game Development Distribution A.

36



  



o Warn player when camel tiredness is above 5 (i.e., “The camel is getting tired.”) Losing conditions need to be programmed into the game: o Player dies if thirst rises above 6 (i.e., “You died of thirst.”) o Player is captured by natives (i.e., “You have been captured!”) o Camel becomes over-fatigued when tiredness is above 8 (i.e., “The camel died.”) o The game must end and the program stops when any of these conditions occur There should be code that checks to see if taking a drink is valid (i.e., is there any water left to drink?), and if not return an error message (e.g., “You are out of water!”) Create a random event where the player could find an oasis that restores the number of drinks, thirst, and camel tiredness stats Winning condition needs to be programmed into the game: o Player wins when they travel across the entire desert  You will need to determine how big you want the desert to be o The program should not print out any other messages (e.g., “The camel is getting tired.” or “The natives are close by.”) when this condition is met Game should be glitch and bug free

You can get very creative with this game and are not limited to a camel and the desert. You can change the setting and transportation methods to fit your interests (e.g., riding a motorcycle to escape a pack of zombies). You may also add other parameters to your character and incorporate other random events if you wish, but what is outlined in the above section must be present in the game. 5.4.3.2. CHAPTER 4 PROGRAM #1 – SURVIVIAL TEXT-BASED ADVENTURE GAME In this program, you are to create a game where you ride a camel across the desert while being chased. You will need to monitor and manage your thirst, how tired the camel is, and how far ahead of the pursuers you are. The game is won by making it all the way across the desert alive. The game can be lost if the player dies of thirst, the camel dies from fatigue, or the player is captured by the natives. The player can take a limited number of drinks from a canteen to restore their thirst, and rest overnight to restore the camel’s energy. When resting overnight or traveling during the day, the natives will continue to pursue the player. Managing the travel speed of the player during the day and deciding when to stop for the night is crucial in surviving through the game. Below is a sample run of what the program could look like (Figure 11):

Introduction to Game Development Distribution A.

37

Figure 11: Survival Game Program Sample

Here is one possible way the program could be written (Table 4): Table 4: Survival Game Program Code

# Importing time module to create a slight delay between information being printed on the screen (this is NOT a requirement) # Importing random module to handle the random number generation required by the program import time import random Introduction to Game Development Distribution A.

38

# This section displays text that sets up the game scenario for the player. The time.sleep() function causes a slight delay between the printing of each line of text. print('Welcome to Desert Chase!') time.sleep(1) print('You have stolen a camel and are making your way across the desert!') time.sleep(2) print('The natives want their camel back and are chasing you down!') time.sleep(2) print('Survive the desert trek and out run your pursuers!') time.sleep(2) print('')

# Initialize all variables. “done” variable is for determining when the game is over. player_travel, thirst, camel_tiredness, native_travel, and drinks are all stats/parameters needed for the game done = False player_travel = 0 thirst = 0 camel_tiredness = 0 native_travel = -20 drinks = 3

# Main program loop that runs so long as “done” is false (i.e., the game is NOT over). Prints out player choices for each turn while done == False: print('A. Drink from your canteen') Introduction to Game Development Distribution A.

39

print('B. Travel at moderate speed') print('C. Travel at full speed') print('D. Stop and rest for the night') print('E. Check your status') print('Q. Quit game') print('')

# Allows player to choose from the list of options choice = input('What would you like to do? ') print('')

# Quits game and loop if user types “q” or “Q” if choice.upper() == 'Q': done = True

# When choosing to check status with “e” or “E”, program prints out how far the player has traveled, how many drinks are remaining, and how far the natives are from the player elif choice.upper() == 'E': print('Miles Traveled: ',str(player_travel)) print('Drinks in Canteen: ',str(drinks)) print('The natives are ' + str(player_travel - native_travel) + ' behind you.') print('')

# When choosing to rest for the night with “d” or “D”, the program resets the camel’s tiredness to 0, prints out a notification message to the player, and moves the natives a random number of miles Introduction to Game Development Distribution A.

40

elif choice.upper() == 'D': print('Your camel is rested') camel_tiredness = 0 native_travel = native_travel + random.randint(7,14) print('')

# When choosing to travel at full speed with “c” or “C”, the program moves the player a random number of miles, adds one to thirst, increases camel tiredness by a random amount, moves the natives a random number of miles, initializes the “oasis: variable to calculate the random event of discovering an oasis, oasis is assigned a random value between 1 and 20 and if the value is “5”, then the player discovers the oasis and stats are restored elif choice.upper() == 'C': player_travel = player_travel + random.randint(10,20) print('You were able to travel ' + str(player_travel) + ' miles at full speed.') print('') thirst = thirst + 1 camel_tiredness = camel_tiredness + random.randint(1,3) native_travel = native_travel + random.randint(7,14) oasis = 0 oasis = random.randint(1,20) if oasis == 5: print('You have found an oasis!') time.sleep(2) print('All of your stats have been restored!') thirst = 0 camel_tiredness = 0 drinks = 3 Introduction to Game Development Distribution A.

41

# When choosing to travel at full speed with “b” or “B”, the program moves the player a random number of miles, adds one to thirst, increases camel tiredness by a random amount, moves the natives a random number of miles, initializes the “oasis: variable to calculate the random event of discovering an oasis, oasis is assigned a random value between 1 and 20 and if the value is “5”, then the player discovers the oasis and stats are restored

elif choice.upper() == 'B': travel = 0 travel = travel + random.randint(5,12) print('You were able to travel ' + str(travel) + ' miles at moderate speed.') print('') player_travel = player_travel + travel thirst = thirst + 1 camel_tiredness = camel_tiredness + 1 native_travel = native_travel + random.randint(7,14) oasis = 0 oasis = random.randint(1,20) if oasis == 5: print('You have found an oasis!') time.sleep(2) print('All of your stats have been restored!') thirst = 0 camel_tiredness = 0 drinks = 3 # When choosing to take a drink, the program checks first to see if the player has any drinks left (drinks > 0) and sets thirst to 0 and subtracts one drink from the “drinks” variable and displays a confirmation message, if drinks is not greater than 0 (no drinks left), the program informs the Introduction to Game Development Distribution A.

42

player that they are out of drinks elif choice.upper() == 'A': if drinks > 0: thirst = 0 drinks = drinks - 1 print('You feel refreshed.') print('') else: print('You are out of drinks!') print('')

# Checks to see if thirst is in range of 4 (inclusive) and 6, and if so, display the message that the player is thirsty and needs to take a drink if thirst >= 4 and thirst < 6: print('You are thirsty!') print('')

# If thirst rises to or above 6, the player dies of thirst, player is notified that it is game over, and the “done” variable is set to true and program exits the loop elif thirst >= 6: print ('You have died of thirst!') print('') time.sleep(2) print('Game Over') done = True

Introduction to Game Development Distribution A.

43

# If the camel_tiredness variable is between 5 and less than or equal to 8, the player is notified that the camel is getting tired and needs to rest if camel_tiredness > 5 and camel_tiredness 8: print('Your camel is dead!') print('') time.sleep(2) print('Game Over') done = True

# Checks to see if the “native_travel” variable (i.e., how far the natives have traveled) is the same as or greater than the “player_travel” variable (i.e., how far the player has traveled), if this is true, then the natives have caught up to the player and captured them, the player is notified that the game is over and the “done” variable is set to true and the program exits the loop

if native_travel >= player_travel: print('The natives have captured you and are taking their camel back!') print('') time.sleep(2) print('Game Over') done = True Introduction to Game Development Distribution A.

44

# Checks to see if the difference between the player_travel and native_travel (i.e., the distance between the two parties) is less than 15 miles AND the game is NOT over, and if this condition is true, notify the player that the natives are getting close to the player

if (player_travel - native_travel) < 15 and done != True : print('The natives are catching up to you!') print('')

# This is the win condition, the desert is 200 miles long and if the player_travel variable reaches 200 or higher before any of the losing conditions are met, the player is then greeted with a congratulations message and the game ends when the “done” variable is set to true if player_travel >= 200: print('You have made it across the desert!') print('') time.sleep(2) print('Congratulations! You won!') done = True

6. INTRODUCTION TO GAME ENGINES In this unit, students will begin investigating game engines. Game engines essentially bring together 3D modeling and programming into one package in order to create games and simulations. Students will be working with Unreal Engine 4®, a professional-grade game engine, used currently by large AAA developers and small indie developers. The rationale for the tasks within this unit is to give students an introduction to working with Unreal Engine 4®. The tasks are designed to illustrate many of the different features of the game engine that will be commonly used by students. Also, the requirements for each task were selected based on the availability of online resources that could assist in meeting them. Introduction to Game Development Distribution A.

45

Beginner students will learn how to create a new Unreal Engine 4® project, use project templates, import 3D models from an external modeling program, apply textures to models and terrain, apply physics to objects, create animation within Unreal Engine 4®, and generate realistic lighting within their project. Students who have had some experience with Unreal Engine 4® prior to this course will also review several of the above objectives, but also learn how to create a title screen for their project, create multiple levels within a project and be able to transition between them, and create a gameplay system that allows the player to pick up collectable items (e.g., coins, rings) and keep track of the number collected onscreen. For these tasks, students will need to do much internet research and collaboration with their peers to complete. Some useful resources for this task are located under the Unreal Engine 4® Materials and Resources section of www.padlet.com/abrumbaugh/introgame. 6.1. INTRODUCTION TO GAME ENGINES BACKGROUND A video game engine is a software package that people use for the creation and development of video games. The core features of a game engine allow it to render 2D and 3D graphics, apply physics and collision to in-game objects, add sound and animation to levels and objects, as well as provide a platform for scripting (i.e., coding). There are many widely used game engines like Unity3D®, Project Anarchy® (Havok), CryEngine®, GameMaker®, and Unreal Engine 4® (Figure 12, Figure 14, and Figure 13). Once a development team has decided on a game idea/concept, they will determine what tools they will need to complete the task during the Pre-Production stage. It is at this time they will choose the game engine necessary to create their game. Depending on factors like the type/genre of game, visual aesthetic, and the team’s familiarity with a particular engine, they will begin development using an appropriate game engine or develop one of their own (NOTE: many Japanese developers do this).

Figure 12: Unreal Engine 4 by Epic Games

Introduction to Game Development Distribution A.

Figure 13: CryEngine by Crytek

46

Figure 14: Unity3D by Unity Technologies

6.1.1. PICTURES Figure 12: http://ffden2.phys.uaf.edu/webproj/211_fall_2014/Rohan_Weeden/Images/unreal_engine_4.png Figure 13: http://cdn.wccftech.com/wp-content/uploads/2015/05/Cryengine4-logo.png Figure 14: http://blog.gfx47.com/wp-content/uploads/2011/02/unity3d1.jpg Note: A printable version of this task is located at www.padlet.com/abrumbaugh/introgame. 6.1.2. TASK FOR BEGINNERS The following task is for students who have little to no experience working with Unreal Engine 4®. Using Unreal Engine 4®, create a project that meets the following requirements: 1) Create a new Unreal 4 project using your last name as the file name. 2) Select an Unreal 4 template that allows you to control a 1st Person or 3rd Person character. 3) Create a basic building in 3ds Max or other modeling program and import into Unreal 4. 4) Use textures in Unreal 4 or import your own textures that can be applied to objects in Unreal 4. Texture the objects in your level so that it looks more life-like. 5) Apply physics to at least one object in your Unreal project. 6) Create at least one moveable door that opens when the player moves close to it or when a certain key is pressed. 7) Apply lighting and particle effects to your Unreal 4 project. 6.1.3. TASK FOR NON-BEGINNERS The following task is for students who have had some experience working with Unreal Engine 4®. Using Unreal Engine 4®, create a project that meets the following requirements: 1) Contains requirements 1 through 5 of the beginner task (see above) 2) Contains a title screen that allows the user to play the game or quit 3) Contains at least two levels, where the player can transition from one to the other from within the game Introduction to Game Development Distribution A.

47

4) Contains a collectible item that disappears after being touched by the player and a visible counter shows how much of the item the player has collected. 6.2. TASK SCORING GUIDE The following scoring guide (Table 5) can be used to grade student work. A printable version of this document is located at www.padlet.com/abrumbaugh/introgame. Table 5: Introduction to Game Engines Task Scoring Guide

Requirement (Points Possible)

Points Earned

Unreal 4 project is saved as student’s last name (5 points) st rd Unreal 4 project has a 1 or 3 Person character controller (5 points) Student is able to properly import a 3D house model from an external modeling program (10 points) Student is able to texture objects in their Unreal 4 project (5 points) Student is able to apply physics to at least one object in their Unreal 4 project (5 points) Unreal 4 project contains at least one moveable door that is triggered by a key press or proximity (10 points) Student has incorporated lighting and particle effects into their project (10 points) * Unreal 4 project contains the first five requirements from the beginner’s task Introduction to Game Development Distribution A.

48

Comments

(20 points) * Unreal 4 project incorporates a working title screen (10 points) * Unreal 4 project that contains two levels that are linked and can be transitioned between (10 points) * Unreal 4 project contains a working collectible game mechanic with disappearing items and counter (10 points)

7. GAME DEVELOPMENT CAPSTONE PROJECT This capstone project is designed to take students through the video game development life cycle in order to give them a realistic understanding of how development teams create a game. The end goal for the project is to create a fully playable game or game prototype built from the ground up. Students will need to utilize the tools explored and knowledge gained from the first 9 weeks of the course in order to do this. The capstone project is a group effort requiring students to work collaboratively in small development teams. Students will have to communicate frequently and effectively with their team members to make sure that all pieces of the capstone come together and the development milestones (assigned by the teacher) are reached by their respective deadlines. Teachers should keep a couple of things in mind when creating the groups for the capstone. First, the teacher should be familiar with the types of games that each student is interested in. This information can be found out by using entrance/exit slips throughout the semester, journal prompts given at the beginning of the course, or simply through day-to-day conversation and interaction with the students. It is advisable to create teams with students that have similar gaming tastes. The second factor teachers should keep in mind is group size. It is recommended that each team is made up of 3 to 4 students. With the capstone requiring so much work to be done, groups smaller than 3 students is ill-advised. Likewise, if a team grows too big (i.e., more than 4), there is the chance that some students will not work to their full potential. There are exceptions to this recommendation (e.g., game involves large levels/worlds) where more team members would be beneficial, but it is completely up to the teacher and the knowledge of his or her students to make that decision. Introduction to Game Development Distribution A.

49

Note: A printable version of this task is located at www.padlet.com/abrumbaugh/introgame. 7.1. DEVELOPMENT STAGE 1 & 2 (WEEK 1) Remind students that in the beginning, all games start with an IDEA. The more detailed and documented a team’s ideas are, the easier it will be to develop them into a functioning game. Stress that this stage is a lot of work, but students’ commitment at this stage will serve them well in the future. 7.1.1. GAME DESIGN DOCUMENT Inform students that they will be creating a game design document (GDD). A GDD is a living document (i.e., a document that can be modified throughout the course of development) that a development team creates to organize all of their ideas that they wish to put into a video game. One purpose of this document is to help the team visualize the scope of the project and determine the order in which tasks should be completed. Also, because a game contains many parts ranging from models to vital code to game mechanics, a team will want their GDD to be as detailed as possible to ensure that as many of the initial ideas are incorporated into the game as possible. For this task, have students download the game design document template located on the course website (www.padlet.com/abrumbaugh/introgame). The document should be completed collaboratively all members of a team, and only one document should be submitted by each team. GDDs should be shared digitally, and it is recommended that the teams use a file sharing application such as Google Drive or Dropbox. Sharing documents this way allows teams and the teacher to have access to the most up-to-date version of the GDD and helps eliminate confusion during development. 7.1.2. GAME STORYBOARD Once their GDDs have been completed, students should begin creating a storyboard for their game projects. A storyboard should:   

Outline the basic story running through your game Include any cut scenes, title/credit screens, and basic illustrations of the core gameplay (Use the internet to find sample game story boards) Be created collaboratively, and must be approved by all members of the team

7.1.2.1. STORYBOARD TEMPLATE Introduction to Game Development Distribution A.

50

Full storyboard template can be downloaded from www.padlet.com/abrumbaugh/introgame. 7.2. MAIN PRODUCTION STAGE 3 (6 WEEKS) Like most game developers, student teams will spend most of the quarter working in the MAIN PRODUCTION stage. It is here where students will take their ideas and use them to develop their game. During this time, each group will be given a set of game-specific milestones (checkpoints) that must be reached or surpassed in order to ensure successful completion of the capstone. The following sections outline the work that should be done by student teams during this 6-week stage of development. 7.2.1. CREATING MILESTONES FOR STUDENT TEAMS Assessment during the main production stage comes in two main forms. First, teachers should monitor the use of student logbooks on a weekly basis. Students should be utilizing their logbooks regularly throughout the week. The teacher should use these logbooks as a source of what students have been learning as well as give teachers another avenue for providing feedback to students. By reading through student logbooks, the teacher can also see where students are struggling and help students break down problems and find resources. The second form of assessment during this stage is teacher-set milestones. Milestones are typically set by the video game publisher when a game is in development. In order for a developer to receive more money to complete their game, they must first accomplish a set of milestones. In a similar way, the teacher will set milestones for each student team based on the team’s game design document. Milestones allow the teacher and students to monitor their overall progress they are making with their game. It is recommended to set weekly or bi-weekly milestones for each team. An example set of milestones could be: 1) 2) 3) 4)

Create and texture at least 4 different models for the game Create the first/opening area of the game Create and import a controllable character for the game Find/Create sounds for the game and import them into the game engine

Depending on the type of game a team is creating, the milestones could be different (i.e., not all teams will necessarily have the same milestones). Again, the teacher will need to be familiar with each team’s game design document and the kind of assets each one will require. 7.3. CAPSTONE COMPONENTS

Introduction to Game Development Distribution A.

51

Each of the sections below outlines the components that will be required in each game. Teams will need to work collaboratively to ensure that their projects contain each component and that each is addressed in accordance to the milestones set forth by the teacher. 7.3.1. 3D ASSET CREATION Below are the 3D modeling requirements for each game project:  



All 3D assets (e.g., buildings, items, in-game objects) are created using 3DS Max or similar/equivalent 3D modeling application All games should include a minimum of 12 unique, custom-made 3D models. These models should have some complexity containing multiple parts and textures (i.e., no simple, single-primitive objects) Each team member is responsible for creating at least two 3D assets for their game

7.3.2. CHARACTER CREATION AND ANIMATION Below are the modeling and animation requirements for characters in each game project:  

All character and/or monster models are created using 3DS Max or similar/equivalent 3D modeling application Character and/or monster models animated using 3DS Max, Unreal Engine 4, or similar/equivalent animation application

7.3.3. 2D ASSET/TEXTURE CREATION Below are the requirements for 2D assets and textures for each game project:  

Acquisition of all 2D textures necessary for 3D models Apply 2D textures to all 3D models

7.3.4. LEVEL DESIGN Below are the level requirements for each game project:     

Each game should include a minimum of 3 different levels/areas that are incorporated All levels should be accessible from within the base project Levels should include all fully textured 3D models created by the team Levels include realistic and appropriate lighting throughout Each level contains at least one game object that the player can interact with

Introduction to Game Development Distribution A.

52

7.3.5. SOUND DESIGN Below are the sound design requirements for each game project:   

Game incorporates background music or ambient sounds throughout Game incorporates at least 5 different sound effects Game incorporates spoken/written dialogue

7.3.6. MENU DESIGN Below are the menu design requirements for each game project:  

Game incorporates an interactive title screen containing START and QUIT Game incorporates a credits screen (either beginning or ending) that acknowledges each member of the team and their contribution to the project

7.3.7. GAME ENGINE PROGRAMMING Below are the programming and game mechanic requirements for each game project:   

Game incorporates at least 3 different game mechanics that are not native to an Unreal Engine 4® template (e.g., health bar, experience system, power-ups) Programming is clear of bugs and glitches Code contains comments that explains its purpose in the game

7.3.8. PROGRESS DOCUMENTATION Each member will be expected to keep an up-to-date logbook that documents the work completed each day, resources they used, problems they have encountered, and weekly goals they set. 7.4. ALPHA AND BETA STAGE 4 & 5 (1 WEEK) Once a team’s game has reached a playable state and contains most of the assets and programming, a team will enter the ALPHA and BETA stages. During these stages, the games will be played by other people and feedback will be given. This feedback will be used to make adjustments to the game if time is available.

Introduction to Game Development Distribution A.

53

To get feedback, one option is to have students in the class play the other groups’ games. Another option is to invite students and teachers from other classes to test the games and provide feedback. 7.5. GOLD STAGE 6 (1 WEEK) In the final stage, each student team will have a playable game or game prototype. It is during this stage that student teams will present their work to a live audience (e.g., school administration, teachers, community members). 7.5.1. GAME TRAILER  Create a game trailer to show off between thirty seconds to one minute of gameplay from your game (Screencast and video editing programs should be utilized to complete this task) 7.5.2. PRESENTATION    

Each team will create a PowerPoint or similar presentation that briefly outlines and explains the process the team went through to create their game Strategically place video trailer in presentation to create excitement for game project Each team member will present their contributions to the game, discuss difficulties they had and solutions they found, as well as what they learned throughout the project Presentations should be between 9 and 10 minutes each (this includes the game trailer)

7.6. GAME DEVELOPMENT CAPSTONE PROJECT RUBRIC The following rubric is for assessing student teams’ final video game projects.

3D Assets and Textures

UNSATISFACTORY

DEVELOPING

PROFICIENT

DISTINGUISHED

Game contains less than 8 unique, custom-made 3D models utilizing 3ds Max or other equivalent 3D modeling application. Not all models are created using multiple parts and/or 3D modeling techniques. Models do not have textures or the textures do not map appropriately to the entire model. Not all team members contributed 3D models to the game.

Game contains between 8 and 11 (inclusive) custom-made 3D models utilizing 3ds Max or other equivalent 3D modeling application. Not all models are created using multiple parts and/or 3D modeling techniques. Models contain textures that do not map appropriately to the entire model. Each team member is responsible for at least 1 3D model in the game.

Game contains 12 unique, custom-made 3D models utilizing 3ds Max or other equivalent 3D modeling application. Each model is created using multiple parts and/or 3D modeling techniques. Models contain textures that do not map appropriately to the entire model. Each team member is responsible for at least 2 different 3D models in the game.

Game contains 12 or more unique, custommade 3D models utilizing 3ds Max or other equivalent 3D modeling application. Each model is created using multiple parts and/or 3D modeling techniques. Models are properly textured through the use of photo editing applications and UV mapping. Each team member is responsible for at least 2 different 3D models in the game.

Introduction to Game Development Distribution A.

54

Game uses the default character of the game engine or imports a premade character from another website. Little to no programming is used for animating the playable character.

Game contains a custommade playable character that can be controlled with either a mouse and keyboard or gamepad. 3rd person characters contain textures that do not map appropriately to the entire model. Character has 3 animations. Animations do not transition smoothly from one to the next. Game contains some animation glitches during play.

Game contains a custommade playable character that can be controlled with either a mouse and keyboard or gamepad. 3rd person characters contain textures that do not map appropriately to the entire model. Character has 4 different animations. Animations are programmed transition smoothly from one to the next. Game contains very few animation glitches during play.

Game contains a custommade playable character that can be controlled with either a mouse and keyboard or gamepad. 3rd person characters are professionally textured through the use of photo editing applications and UV mapping. Character has at least 5 different animations. Animations are programmed to transition smoothly from one to the next. Game contains very few animation glitches during play.

Game contains no custom-made NPCs/enemies within the game. NPCs/enemies do not have animations.

Game contains 1 or 2 NPCs/enemies within the game. NPCs/Enemies are custom-made and animated with at least 1 animation. The NPCs are able to wander the level. NPCs experience some animation glitches during play.

Game contains 3 or 4 different NPCs/enemies within the game. NPCs/Enemies are custom-made and animated with at least 2 animations. At least 2 of the NPCs are able to wander the level. NPCs experience very few animation glitches during play.

Game contains 5 or more different NPCs/enemies within the game. NPCs/Enemies are custom-made and animated with at least 2 animations. At least 3 of the NPCs are able to wander the level. NPCs experience very few animation glitches during play.

Game contains 1 level/area that is accessible to the player. Level/Area has few 3D models/assets, including those created by the team, placed within it. Lighting effects are used, but are not varied within each level/area. The lighting provides very little immersion into the level/area. Game does not contain any objects for the player to interact with.

Game contains 2 levels/areas that are accessible by the player from within the game. Levels/Areas have realistic placement of 3D models/assets, including those created by the team. Lighting effects are used, but are not varied within each level/area. The lighting provides some immersion into the level/area. Game contains only 1 unique object that can be clearly interacted with by the player.

Game contains 3 levels/areas that are accessible by the player from within the game. Levels/Areas have realistic placement of 3D models/assets, including those created by the team. Lighting effects are used, but are not varied within each level/area. The lighting provides some immersion into the level/area. Each level/area has at least 1 unique object that can clearly be interacted with by the player.

Game contains 4 or more levels/areas that are accessible by the player from within the game. Levels/Areas have realistic placement of 3D models/assets, including those created by the team. A variety of lighting effects are used within each level/area to create an immersive world. Each level/area has at least 2 unique objects that can clearly be interacted with by the player.

Game incorporates 1 game mechanic that is not native to an Unreal Engine 4® template. The programming for the mechanic is incomplete and/or inefficient, and has an overall negative impact on gameplay. There are no comments on the code.

Game incorporates 2 different game mechanics that are not native to an Unreal Engine 4® template. The programming for each mechanic is incomplete and/or inefficient, and has an overall negative impact on gameplay. The code for each mechanic has comments giving a

Game incorporates 3 different game mechanics that are not native to an Unreal Engine 4® template. Each mechanic is programmed with very few minor bugs and glitches, and does not have a major impact on gameplay. The code for each mechanic has comments explaining

Game incorporates 4 or more different game mechanics that are not native to an Unreal Engine 4® template. Each mechanic is programmed with very few minor bugs and glitches, and does not have a major impact on gameplay. The code for each mechanic has comments explaining

Character Creation and Animation

NPC Creation and Animation

Level Design

Game Mechanics

Introduction to Game Development Distribution A.

55

partial explanation of what the code does and how it works.

what the code does and how it works.

what the code does and how it works.

Game incorporates the use of title or game over screen. Game lacks efficient coding that allows players to start the game or quit the game with consistency. The title screen and game over screen are simple with plain text. The game does not contain a credits screen.

Game incorporates the use of title and game over screens. Game lacks efficient coding that allows players to start the game or quit the game with consistency. The title screen and game over screen are simple with plain text. The game contains a credits screen that displays the team member’s names and their roles in making the game. The credits are only accessible through the title screen.

Game incorporates the use of title and game over screens that allow the player to start the game or quit the game. Either the title screen or game over screen is visually appealing and utilizes custom graphics and/or images. The game contains a credits screen that displays the team member’s names and their roles in making the game. The credits screen should be accessible to the player from the title screen or when the game is completed.

Game incorporates the use of title and game over screens that allow the player to start the game or quit the game. Both the title screen and game over screen are visually appealing and utilize custom graphics and/or images. Game incorporates a pause menu that allows the user to quit the game during play without getting a game over. The game contains a credits screen that displays the team member’s names and their roles in making the game. The credits screen should be accessible to the player from the title screen or when the game is completed.

Game does not contain any sound effects. Game contains background music and/or ambient sounds. Music and/or ambient sound play with some glitches.

Game contains between 1 to 3 different sound effects throughout its levels. The sound effects occur at inappropriate times and add little to the game. Background music and/or ambient sounds are present within the game. All sound effects and music play with some glitches.

Game effectively uses 4 to 5 different sound effects throughout its levels. Background music and/or ambient sounds are present within the game. All sound effects and music play with very few glitches.

Game effectively uses 6 or more different sound effects throughout its levels. Background music and/or ambient sounds are present within the game. The game contains spoken dialogue. All sound effects and music play without any glitches.

Menu Design

Sound Design

7.7. TEAMWORK AND COLLABORATION SELF-ASSESSMENT RUBRIC The following rubric provides both students and teachers with a set of expectations for team work and collaboration through the duration of the capstone. This rubric is also for students to assess themselves at the end of the game development capstone. Students should provide clear evidence from their coursework to help justify their placement on the rubric. Individual Performance

Below Proficient 

Takes Responsibility for Oneself



rarely prepared, informed, and ready to work with the team rarely used the technology or class time to communicate and manage game

Introduction to Game Development Distribution A.

Approaching Proficient  



usually prepared, informed, and ready to work with the team used technology or class time to communicate and manage development tasks, but not consistently completed some tasks for 56

At Proficient 



prepared and ready to work each day, as well as well informed on the project topic, and able to provide evidence through logbook or other form of record consistently used technology or class time to

  





Team Player  

 

Respect

 

Makes and Follows Agreements

 



Organizes Work 

development tasks very few tasks for the game development project completed tasks were not completed on time did not use feedback to improve individual work

 

rarely helped team solve problems, and sometimes caused problems within team rarely asked questions, expressed ideas, or elaborated in response to questions during team meetings rarely gave useful feedback to others rarely offered help to other team members that needed it



rarely polite or kind to team members rarely acknowledged or respected the perspective of my team members



did not discuss how the team would work together did not follow the rules for team meetings, decisionmaking, and conflict resolution did not discuss how well agreements were being followed allowed breakdowns in team work and required the teacher to intervene



completed the project without creating a goal or task list did not set a clear



Introduction to Game Development Distribution A.



 

the projects, but had to be reminded on occasion by team members to get tasks done completed most of tasks on time for the project used feedback from team and others to improve work some of the time

cooperated with team during the project, but did not actively help the team solve problems sometimes asked questions, expressed ideas, and elaborated in response to questions during team meetings gave feedback to others, but it was not always useful sometimes offered help to other team members that needed it



 

 













usually polite and kind to my team members usually acknowledged and respected the perspectives of team members, and disagreements were handled professionally



discussed how the team would work together, but not in detail, and went through the motions when creating team agreement usually followed the rules for team meetings, decision-making, and conflict resolution discussed how well agreements were being followed, but not in depth, and ignored small issues that occurred was aware when agreements and norms were not being followed, but asked the teacher for help to resolve the issue helped create a goal and/or task list that divided project work among the team, but it lacked details and was not



57



 







communicate and manage development tasks completed or consistently worked on all tasks given without having to be reminded completed tasks on time for the project used feedback from team and others to improve work regularly helped team solve problems and manage conflicts made team meetings effective by clearly expressing ideas, asking questions, making sure everyone was heard, and responding thoughtfully to new information and perspectives gave useful feedback (specific, feasible, supportive) to others so they could improve their work offered to help others with their work if needed polite and kind to team members acknowledged and respected the perspectives of my team members, and disagreements were handled professionally

helped create detailed agreements about how the team would work together, including how technology would be used followed the rules for team meetings, decision-making, and conflict resolution honestly and accurately discussed how well agreements were being followed took appropriate action when agreements and norms were not being followed, and attempted to resolve issues without asking the teacher for help helped create a detailed goal and/or task list that divided project work reasonably among the team actively set and adjusted a



 





Works as a Whole Team

pacing guide or track personal progress toward goals or deadlines did not help assign roles or share leadership responsibilities was off task most of the time during the project logbook is not detailed or wellorganized

did not recognize or utilize the special talents of team members completed task(s) separately and did not integrate them with the rest of the team’s work





 





followed closely kept a clear pacing guide to track progress toward goals and deadlines, but did not follow it closely helped assign roles to the team members, but did not always follow them and allowed a “team leader” to make most of the decisions spent most of the time working on the project, and very little time off task kept detailed notes in logbook, but specific notes are not always wellorganized

made some attempts to recognize and utilize the special talents of team members completed most tasks separately and integrated them with the rest of the team’s work at the end of the project deadline



 

  

clear pacing guide to track progress toward goals and deadlines helped assign roles if and as needed, based on the individual team members’ strengths used time wisely during the project logbook contains many well-organized and detailed notes that were taken during the project

recognized and utilized the special talents of team members developed ideas and products with involvement of all team members all tasks completed separately were brought to the team for critique and revision throughout the project

7.8. TEAM WORK AND COLLABORATION PEER EVALUATION FORM The following guide is for team members to assess each other at the end of the capstone project. Encourage students to be honest in their evaluations of each other. Tell students that their evaluation forms will be kept confidential, and that student evaluations will NOT determine students’ final grades for the capstone. The peer evaluation forms offer the teacher more evidence and insight into each student’s work on the capstone. A printable version of this form is located on www.padlet.com/abrumbaugh/introgame. Table 6: Team Work and Collaboration Peer Evaluation Form

Below Proficient (1)

Approaching Proficient (2)

Communicates ideas clearly with team members Uses time wisely in class Introduction to Game Development Distribution A.

58

Proficient (3)

Provides useful and effective feedback to other team members

Helps team persevere in solving problems

Shows kindness towards other team members and respects their perspectives and ideas

Handles group conflicts professionally

Helps the team assess and adjust daily goals to meet the milestones of the project

Values and utilizes the unique talents of other team members

Write any additional comments in the space below. 7.9. STUDENT PRESENTATION RUBRIC FOR AUDIENCE The following rubric can be used by audience members and the teacher to assess student presentations. It is advised that audience members (e.g., school administrators, teachers, community members) receive this rubric several days before the student presentations so that they may familiarize themselves with the criteria in the rubric. Below Proficient 

Explanation of Personal Game Development Process Introduction to Game Development Distribution A.



Approaching Proficient 

explanation of story and game mechanics are not clear or easy to understand does not describe difficulties that were encountered during

 59

explanation of story and game mechanics is somewhat clear and easy to understand briefly describes difficulties that were

At Proficient 



explanation of story and game mechanics is clear and easy to understand clearly describes difficulties that were encountered during







Organization 

  

Eyes and Body 

development does not discuss any initial mechanics that were to be implemented in the game



introduction and conclusion are weak and do a poor job of captivating the audience presentation is unorganized and the entire presentation or many parts of it are too short or too long video trailer is absent from the presentation



does not look at the audience; reads notes or slides does not use gestures or movements lacks poise and confidence (fidgets, slouches, appears overly nervous) wears clothing inappropriate for the occasion













  

Voice





Presentation Aids

Introduction to Game Development Distribution A.



mumbles or speaks too quickly or slowly speaks too softly to be understood frequently uses filler words (“uh, um, so, and, like, etc.”)







does not use audio/visual aids or media attempts to use one or a few audio/visual aids or media, but they do not add to or

 60

encountered during development and provides explanation of how they were overcome discusses some mechanics that did not make it into the game due to time constraints, but offers little detail in how they would impact the game introduction and conclusion are fair, but lack clarity and hooks to interest the audience presentation follows a logical organization, but specific part(s) of the presentation are too short or too long video trailer is placed in the presentation with little consideration of its impact makes infrequent eye contact; reads notes or slides most of the time uses a few gestures or movements but they do not look natural shows some poise and confidence (only a little fidgeting or nervous movement) makes some attempt to wear clothing appropriate for the occasion speaks clearly most of the time speaks loudly enough for the audience to hear most of the time, but may speak in monotone occasionally uses filler words

uses audio/visual aids or media, but they may sometimes distract from or not add to the presentation sometimes has











  

 







development and explains in detail how they were overcome discusses in detail some of the mechanics that did not make it into the game due to time constraints and how those mechanics would impact the game has a clear and interesting introduction and conclusion presentation is well organized and no part of the presentation is too short or too long video trailer is placed in a logical part of the presentation for maximum impact

keeps eye contact with audience most of the time; only glances at notes or slides uses natural gestures and movements looks poised and confident wears clothing appropriate for the occasion (business casual)

speaks clearly; not too quickly or slowly speaks loudly enough for everyone to hear; changes tone and pace to maintain interest rarely uses filler words

uses well-produced audio/visual aids or media to enhance presentation and add interest smoothly brings

may distract from the presentation



Response to Audience Questions



trouble bringing audio/visual aids or media smoothly into the presentation

does not address audience questions (goes off topic or misunderstands without seeking clarification)



not all team members participate, only one or two speak



 answers audience questions, but not always clearly or completely

all team members participate, but not equally







Participation

Introduction to Game Development Distribution A.

audio/visual aids or media into the presentation

61

answers audience questions clearly and completely seeks clarification, admits “I don’t know” or explains how the answer might be found when unable to answer a question all team members participate for about the same length of time all team members are able to answer questions about the topic as a whole, not just their part of it