Course Outline - Introduction to Game Programming Overview of course expectations and outcomes Students will gain a functional introduction to programming for games and similar interactive media. The result will be competency in JavaScript and two popular game programming frameworks. This will be demonstrated by the creation of several digital game prototypes using these tools. Instruction will be geared to the needs of non-technical students with no assumption of prior programming knowledge. This course forms part of the foundation of learning game design and the development of interactive digital media. At the beginning of the semester, students will use the free game building software, Construct 2, to rapidly create game prototypes using the program’s visual code-free interface. Students will simultaneously be learning plain JavaScript syntax and basic concepts outside of any game framework. This hybrid dynamic will continue for approximately four weeks, at which point students are to transition to using JavaScript to build their games. For the rest of the semester, students will employ a free and open-source game library called PandaJS which demands that the students write all of the mechanics for their game projects in JavaScript. In addition to learning important programming concepts and achieving competency with game development tools, students will increase their ability to use computational thinking as an inherent part of this curriculum. They will gain experience throughout the course in logical thinking, organizing and modeling data, and simulation as part of programming games. Students will gain experience with the decomposition of large problem sets through the process of analyzing existing games into their component parts. Computational thinking is the necessary bedrock on which the foundation of game programming rests. Students will work extensively with pattern recognition, abstraction, and algorithmic design throughout the course. These are exemplified in students learning core structures and processes such as events, arrays, logical conditions, state-maintenance, score-keeping, etc., and in designing their own algorithms based on existing patterns. Required Resources Students will need to acquire a clicker for purposes of attendance and participation in the ungraded quizzes each class period. Students will need to bring a laptop to each class period. If the student does not possess a laptop, there are a handful of computers in the classroom available for use, or students may optionally work in pairs during class sessions. Students will need to download and install the free version of Construct 2. This is Windows only software, so Mac users will have to run the software in Parallels, BootCamp, or virtual machine. Assessment Students will create a portion of a designated game project approximately every week, due on the following Sundays at 11:59PM. Game projects are to be made in Construct 2 for the first several weeks and JavaScript with the PandaJS library for the rest of the semester. Students will work on a final project the last six weeks of the semester. Extra credit is offered situationally on project assignments for specified achievements above the assignment requirements. Students will be required to complete introductory JavaScript courses on CodeCademy.com, an interactive e-learning platform dedicated to offer training on a variety of coding languages. The student’s progress is verified through the student’s public profile. There is a single exam, namely the midterm exam. This exam verifies competency in JavaScript syntax and basic concepts, as well as assesses the student’s ability to breakdown the rules of a simple digital game. There is a final project in the absence of a final exam. Attendance is required and graded. Grade Weights: Attendance: 15% Regular game projects: 40% CodeCademy series (completion): 10% Midterm exam: 15% Final project: 30% Grading Scale Grade Percent A+ 97+ A 93–96 A90–92 B+ 87–89 B 83–86 B80–82 C+ 77–79 C 73–76 C70–72 D+ 67–69 D 63–66 D60–62 F 0–59 Note: non-integer percentages use standard rounding to the nearest integer. Readings There is no required textbook, but there are to be numerous optional readings to complement project assignments and bolster a greater context for game development and computational thinking. These optional readings are to be in the form of web articles. Policies Attendance is taken at the beginning of each class period using clicker technology. Late work is accepted until Wednesdays at 4PM, where each successive day it is late, 20% of the maximum points are taken off. Since assignments build on each other, late work will not be accepted after Wednesdays of the week. No group work is permitted on any assignment. Assignment Format Policies - Construct 2 projects must be turned in as .CAPX files. - JavaScript/Panda projects must be turned in as a zip archive with all the necessary script and asset files (such as images, sound, etc). - Written code for JavaScript/Panda projects may use whatever style of variable naming, code commenting, and bracket placement. o However, written code must not be minified, that is, obfuscated and compressed by way of putting a significant portion of the code statements on a single line. - All turned in files, such as ZIP and CAPX files, must not be corrupted. It is the student’s responsibility to confirm the file is not corrupted, by downloading the turned-in file from Canvas and testing to see if it works. o The gold standard in this class for verifying a turned-in file is not corrupt is if the file can be downloaded from Canvas to a campus STC machine and work. Course Procedures Students will have access to the syllabus, weekly expectations such as assignments, and communication through Canvas. Students will also have to register their Clicker IDs with Canvas at the beginning of the semester. At the beginning of each class session, a 4–6 question quiz is administered through PowerPoint and the Clicker plugin on the instructor station. Students answer with their Clicker remotes, and the responses get recorded, along with the student’s Clicker ID, into Canvas automatically. This is conducted for purposes of attendance records, as well as allowing the faculty to determine student absorption of the material. Students will turn in assignments through Canvas for purposes of organization and timestamps. Construct 2 projects are to be turned in as the native .capx project file, and the JavaScript assignments are to be turned in as .zip archives of the project folder. CodeCademy series completion is designated with a badge, along with a timestamp on the student’s public profile. Each student will give the instructor their profile link at the beginning of the semester. Assignment descriptions are given on Canvas, which include links to playable complete versions of the assignment game projects for their reference. Project assets, such as image files, are also to be provided as downloads on Canvas. The material covered on each of the two times per week the class meets depends on learning objectives for the week or preparation for the assignment. Class sessions may see a variety of modes, such as stepby-step instructor-led tutorials, group discussions, or traditional instructor explanations of material. Early in the semester, the combination of learning Construct 2 and straight JavaScript will give students both practical knowledge they can put to use right away along with foundational computational concepts. This will help non-technical students in particular to quickly build an effective mental model of game programming. Final Project Week 9, students are asked to give a very brief pitch of a game design that meets three of a list of potential requirements, such as physics, multiple layouts, and opponent artificial intelligence (AI). The students will then vote on their favorite projects that meet the qualifications. The top three game designs then become the choices in which each student must choose one for his or her final project. Semester at a glance Week 1 Learning goals: Go over what to expect from the course. o What we will cover and what we won't. o What tools and supplies they need to have and install. Construct 2 game foundations o Sprites o Game world (layout) versus window o Simple events Setting position o Objects and properties o Basic input Assignments: In Construct, set up background and object art for simple game with basic input. Do CodeCademy JavaScript Getting Started with Programming o Synopsis of what is covered in that series is on the Resources page of this notebook Resources TornadoTwins intro to game development article (the one that emphasizes scope and completion): http://tornadotwins.com/?p=237 Download Construct 2: http://scirra.com , then click “Free Download” Running Windows programs (namely Construct 2) on a Mac: https://kb.iu.edu/d/ahjj Week 2 Learning goals: Construct 2 game foundations o Position offsets o Delta time o Collisions o Global numbers and text JavaScript o Variables o basic arithmetic o data types Numbers Strings o Properties, such as "string".length o Booleans, comparisons Assignments: In Construct, build on last week’s assignment to include collision handling, spawning and removing objects. CodeCademy JS Introduction to Functions and Introduction to For Loop in JS Resources Simple JavaScript sandbox: http://repl.it Week 3 Learning goals: Construct game foundations o Rotation by delta time o Complex logic branches Sub events multiple conditions JavaScript o Functions, return values o User input with prompt o Loops Assignments: In Construct, create new project and set up graphics and background. Use behavior to control velocity, manage stacking order, state management, end game instructions. CodeCademy JS Introduction to While Loops in JS and Array and Objects in JS series due at the end of the week Week 4 Learning goals: Construct game foundations o Modifying hit areas o Custom instance variables o Boolean object states JavaScript o More Loops o Data structures and collections Assignments: In Construct, expand previous week’s game with powerups, modifies collision areas, keeps track of resource CodeCademy JS Introduction to Objects Week 5 Learning goals: JavaScript o Setting up Panda, text editor, and live preview o Sprites, TilingSprites o Basic input handling Assignments: First Construct 2 assignment made in Panda Week 6 Learning goals: JavaScript o o o Creating classes and spawning instances of custom classes Movement behavior in classes, init, update Creating Timers Assignments: Build on last week’s assignment with spawning objects from custom classes on an interval. Resources Panda JS docs: http://ekelokorpi.github.io/panda.js-site/engine/docs/classes/Sprite.html Week 7 Learning goals: JavaScript o o o o Collision handling Object removal Class inheritance Super function Assignments Build on the previous week’s assignment by including collisions through custom child classes. Resources Sample final project short design document for reference Week 8 Learning goals: JavaScript Working with Text objects Keeping track of resource variable Midterm study guide Assignments: Build on the previous week’s assignment by including text reporting current resource value. Study for midterm Resources Midterm study guide Week 9 Midterm JavaScript syntax Logic with control structures and functions Break down the components of a game through analysis Select final project through voting on the game designs that students optionally pitched online. Week 10 Potential Learning goals: Mouse object clicking Changing scene Tweening Assignments: Final project milestone 1. Employ graphics and scene setup. Week 11 Potential Learning goals: Spritesheet animations Resource management Gravity manipulation Assignments: Final project milestone 2. Complete first new mechanic/concept as written in the game design spec. Week 12 Potential Learning goals: Particles Blocking collisions Sound Assignments Final project milestone 3. Complete first new mechanic/concept as written in the game design spec. Week 13 Potential Learning goals: Interactive HUD Basic AI - Pinning graphics Assignments: - Final project milestone 4. Complete final new mechanic/concept as written in the game design spec. Week 14 Potential Learning goals - Code organization and refactoring o Separate files o Making things modular o Defining in proper scopes Assignments: - Clean up code of final project to conform to proper coding practices Resources Finishing a Game blog article: http://makegames.tumblr.com/post/1136623767/finishing-agame Week 15 Learning goals - Principles of polish o Game instructions and flow o Menus Assignments: - Complete final project Week 16 Turn in final project Present your final project Instructor Communication Statement The following sections have been taken from the I399 Intelligence Analytics course outline document, with minor changes. Academic Integrity Statement Students are reminded that double submission of work for academic credit, fabrication, and plagiarism are serious academic offenses that can result in penalties up to and including failure on an assignment or failure in the course. According to the Indiana University Code of Student Rights, Responsibilities, and Conduct, they are defined as follows: 1. Cheating Cheating is considered to be an attempt to use or provide unauthorized assistance, materials, information, or study aids in any form and in any academic exercise or environment. 1. A student must not use external assistance on any “in-class” or “take-home” examination, unless the instructor specifically has authorized external assistance. This prohibition includes, but is not limited to, the use of tutors, books, notes, calculators, computers, and wireless communication devices. 2. A student must not use another person as a substitute in the taking of an examination or quiz, nor allow other persons to conduct research or to prepare work, without advanced authorization from the instructor to whom the work is being submitted. 3. A student must not use materials from a commercial term paper company, files of papers prepared by other persons, or submit documents found on the Internet. a. Exceptions can be made for including open source and free code libraries in assignments, only with the instructor’s consent. 4. A student must not collaborate with other persons on a particular project and submit a copy of a written report that is represented explicitly or implicitly as the student’s individual work. 5. A student must not use any unauthorized assistance in a laboratory, at a computer terminal, or on fieldwork. 6. A student must not steal examinations or other course materials, including but not limited to, physical copies and photographic or electronic images. 7. A student must not submit substantial portions of the same academic work for credit or honors more than once without permission of the instructor or program to whom he work is being submitted. 8. A student must not, without authorization, alter a grade or score in any way, nor alter answers on a returned exam or assignment for credit. 2. Fabrication A student must not falsify or invent any information or data in an academic exercise including, but not limited to, records or reports, laboratory results, and citation to the sources of information. 3. Interference A student must not steal, change, destroy, or impede another student’s work, nor should the student unjustly attempt, through a bribe, a promise of favors or threats, to affect any student’s grade or the evaluation of academic performance. Impeding another student’s work includes, but is not limited to, the theft, defacement, or mutilation of resources so as to deprive others of the information they contain. 4. Violation of Course Rules A student must not violate course rules established by a department, the course syllabus, verbal or written instructions, or the course materials that are rationally related to the content of the course or to the enhancement of the learning process in the course. 5. Facilitating Academic Dishonesty A student must not intentionally or knowingly help or attempt to help another student to commit an act of academic misconduct, nor allow another student to use his or her work or resources to commit an act of misconduct. Plagiarism Plagiarism is defined as presenting someone else's work, including the work of other students, as one's own. Any ideas or materials taken from another source for either written or oral use must be fully acknowledged, unless the information is common knowledge. What is considered "common knowledge" may differ from course to course. A student must not adopt or reproduce ideas, opinions, theories, formulas, graphics, or pictures of another person without acknowledgment. A student must give credit to the originality of others and acknowledge indebtedness whenever: Directly quoting another person's actual words, whether oral or written; Using another person's ideas, opinions, or theories and claiming them as one’s own; Paraphrasing the words, ideas, opinions, or theories of others, whether oral or written; Borrowing facts, statistics, or illustrative material; or Offering materials assembled or collected by others in the form of projects or collections. ADA Disability Compliance Statement The Americans with Disabilities Act (ADA) is a federal anti-discrimination statute that provides comprehensive civil rights protection for persons with disabilities. Among other things, this legislation requires that all students with disabilities be guaranteed a learning environment that provides for reasonable accommodation of their disabilities. If you believe you have a disability requiring an accommodation, please contact IU Disability Services for Students.
© Copyright 2026 Paperzz