Sora Example Project – Game Development Tied to Standards

Pre-Project Student Context:

Student is very interested in programming and game development. As part of their Sora experience, they wanted to work on their own game and learn a programming language.

Project Details:

In this project, the student wants to create their own video game. The student wants to write a story, code the game in C++, and deliver a playable product in 2 months.

Step One: The student sets deliverables:

What this looks like in practice: In their weekly PM meeting, the student sets deadlines for incremental parts of this project. Week 1-2 is learning the basics of C++. Week 3 is spec-ing out the parameters of the game and starting story work. Week 4-6 is coding the game and delivering a draft. Week 6-8 is testing, finishing the story, and presenting a playable game to the class for everyone to try and give feedback.

Student seeks resources / staff:

What this looks like in practice: Student works with PM to determine learning resource / path. In this project, the student chose an online course on Udemy. Student meets with Humanities Expert to discuss character development and how to outline a story for their game (setting initial deliverables).

Student meets with STEM Expert and the expert recommends supplementary materials from CodeWars and Code Academy (setting initial deliverables). They also determine the specifications of the game.

Step Two: Completing The Project:

Student completes deliverables decided upon through their conversations with Humanities and STEM staff members: - Create 5 characters - Create 5 backstories for the characters - Create a fictional world for the game - Start writing a script for the characters, with a sequence of events + 20 pts of dialogue - Design case art / poster for the game (by delivery) - Complete Udemy course in C++ - Sketch 5 character - Sketch 5 environments (GUI)

Student documents their experience and starts assembling the parts above into game documentation and the game itself.

Standards Addressed (Internal):

Storytelling (COM.STORY) ★★ ​ ● Student’s ability to confidently share a compelling narrative ○ Demonstration: ​The student wrote a high-quality story for their game which combined elements of historical fiction, interpersonal dialogue, and profound character development. Simplify Expressions (MATH.SIMPLIFY) ★★ ● Understand how to simplify monomials and polynomials. ○ Demonstration: Student further dove into using intermediate programming conditionals including simplification techniques like De Morgan’s law. Solve Functions (MATH.FUNCSOLVE) ★★ ● Understand how to evaluate rational functions. ● Understand how to solve equations with one or more unknown variables. ● Understand how to solve inequalities with one or more unknown variables. ○ Demonstration: Student wrote functions for a specific purpose in his program, which implies they understand the output. This is just the latest in a long line of experience with functions--finally earning them a second star. Shape Transformations (MATH.TRANS) ★ ● Understand how shapes can transform with operations such as translations, reflections, and rotations. ○ Demonstration: In order to render the 2D graphics, the student had to perform many translations, many rotations, and a few reflections of both the character and the game world. Vectors (MATH.VECTOR) ★ ● Understand what vectors represent. ● Understand how vectors can represent three-dimensional quantities. ○ Demonstration: Student had extensive exposure to vectors and how they can be used to map player movement. Scalars (MATH.SCALAR) ★ ● Understand the difference between vectors and scalars. ○ Demonstration: Student verbally demonstrated in session with STEM Expert that they chose to use a vector because scalars wouldn’t let them determine direction. Variables (MATH.VAR) ★★★ ● Understand why mathematicians use unknown variables and why they’re helpful. ○ Demonstration: Student has extensive exposure to variables and algebraic design due to their many programming projects. Functions (MATH.FUNCTIONS) ★★ ● Understand why functions exist and how to use them. ○ Demonstration: Student utilized programming functions to simplify their code--especially simplifying the progression through different rooms in the game. Matrices (MATH.MATRIX) ★ ● Understand what matrices represent and how to transform them with addition, subtraction, and multiplication. ○ Demonstration: Student had to learn the basics of linear algebra, and with that lots of matrix operations, when they were investigating adding 3D graphics. Numbers (MATH.NUM) ★★★ ● Understand the meaning of numbers and their relative value to each other. ○ Demonstration: Student now has proven a strong background in the basics of mathematics. They routinely use numbers and their relative value to each other when programming. Basic Operations (MATH.OPS) ★★★ ● Understand how to add, multiply, and divide integers. ○ Demonstration: Student routinely uses basic math operations in their programming projects--they have demonstrated mastery. Shape Properties (MATH.SHAPEPROP) ★ ● Understand how to quantify the various attributes of a shape including perimeter, area, volume, and surface area. ○ Demonstration: In order to make the 2D graphics move and not create a ghosting effect, the student learning the attributes of both circles and rectangles including perimeter and area. Revisions (COM.REVISE) ★★ ​ ● Student’s ability to improve work based on feedback. ○ Demonstration: Student has repeatedly demonstrated improvement based on feedback. For example, the student studied and implemented Gestalt principals when the Humanities expert recommended the content to improve the GUI.

Step Three: Project Delivery:

The student presents their game to the whole class, giving everyone a chance to play and give feedback. Student is encouraged to take this feedback and revise their project.

Reflection:

Student meets with their counselor and reflects on their project experience and interest in game development. The counselor works with the student to determine what’s next on their path, what to change, and what other experience/competencies they would like to gain.