Winter 2017
Santiago Ontañón, santi@cs.drexel.edu
Rob Lloyd, reml@drexel.edu
Office Hours: By Appointment
This course introduces students to the computer game design process. Students also learn how the individual skills of modeling, animation, scripting, interface design and story telling are coordinated to produce interactive media experiences for various markets, devices and purposes.
This course will introduce students to the digital game design process. Students will learn how the individual skills of modeling, animation, storytelling, programming, user interface design, etc. are coordinated to produce interactive media experiences for various markets, devices, and purposes. Students will work in small teams to create or repurpose digital assets and scripts for one or more game engines.
This course will teach the asset pipeline for getting content into the game engine, and the use of scripting to implement game logic and connect to the imported assets.
Classes will be a combination of:
instruction and tutorial
class discussions
individual and group assignments
lab and presentation period
Class participation is an important part of your evaluation and grade. In addition, students will be required to work in teams outside of class in the computer labs, doing research online and in books and journals, and hands-on exposure to various video games.
Assignments must be done individually (depending on your section, assignment 2 might be different, ask your instructor).
Assignment 1: Unity Introduction (5%) (Due week 3)
Assignment 2: FPS Target Gallery (5%) / Assignment 2: 2D Game (5%) (Due week 4)
Assignment 3: Pac Man - AI & States (5%) (Due week 5)
The term project will be done in groups. The initial proposal presentation will be given to the class. Each week after the proposal, the group will give a brief 5-10 presentation to their instructor on what they've accomplished the previous week, showing off new features, highlighting what worked well, what they have trouble on, and collecting feedback. Each week, the instructor will be looking for progress based on the previous week's feedback. The final project will be presented to the class as well.
Project Proposal (5%) (Due week 6)
Project Status Reports (30%) (Due Week 7, 8, 9)
Final Project (30%) and Presentation (20%) (Due Week 10)
For individual assignments, create a web-playable version of your game. Upload it to the web. Email your instructor a link to the game with the subject line "CS/GMAP 345 <ASSIGNMENT NUMBER> - <YOUR NAME>".
15% - Assignments (1-3)
35% - Project Assessments
50% - Project Demo Presentation
You are expected to attend all classes. Class participation is an important part of your grade. Missing 3 classes results in automatic failure. If a student must miss class, it is the student's responsibility to contact me by email the day prior to the missed class. Students will also be responsible for getting missed notes from the other students.
Additional Requirements for Students of GMAP 545
Students of GMAP 545 are required to develop an innovative project that utilizes game engine technology in their graduate research area of interest. Examples include the use of Unity in gamification applications or the integration of novel user interface technologies for creating new game experiences.
Copying text, artwork, models, or animations without credit, whether copyrighted or made freely available on the web, is considered plagiarism for the purposes of this class (as it is in industry) and is forbidden. One illegal asset can open an employer up to litigation.
Having another student perform your tasks for you is considered cheating. Group evaluations, class participation, and project debriefings are a very effective means of determining this type of cheating, so do not cheat.
Cheating will result in at minimum a failing of the assignment and an automatic decrease of one letter grade for your final grade, and may result in your failing the course. Cheating and plagiarism are often done not due to sinister intentions, but because of laziness, fear, lack of preparation, overloaded schedule, or other reasons. If you are having a problem in class and are fearful that your grade may suffer, please, please come talk to me about it rather than attempting some shortcut. I am always eager to try to help, and I do not want to have to fail anyone. See Drexel policies below for more information.
http://drexel.edu/provost/policies/academic_dishonesty.asp
Drexel University Student Handbook
http://drexel.edu/studentaffairs/community_standards/studentHandbook/
http://drexel.edu/ods/student_reg.html
http://drexel.edu/provost/policies/course_drop.asp
The instructor reserves the right to change the course during the term at his or her discretion. These changes will be communicated to students via the syllabus, website announcement, or email.
Week 1: Intro to Unity
In class:
Course kick-off
Unity Interface, Controls, GameObjects, Components
Tutorial 1
Unity Package
Guide:
Due next week: Nothing, enjoy!
Week 2: Scripting
In class:
Writing your own scripts, basic debugging.
Publishing: http://unity3d.com/support/documentation/Manual/Publishing%20Builds.html
Tutorial 2
Unity Package
Guide:
Due next week: Assignment 1: Unity Introduction
Week 3: Vectors
Due: Assignment 1
In class:
All the wonderful things that Vectors can do
Get started on Tutorial 3
Unity Package
Guide:
Due next week: Assignment 2: FPS Target Gallery
Week 4: Simple AI, Animations, Pathfinding
Due: Assignment 2
How game objects "think"
Making and playing (2D) animations in Unity
How to get from point A to point B
Finish Tutorial 3
Due next week: Assignment 3: Pac Man - AI States
Other Resources:
A* explanation: http://www.gamasutra.com/view/feature/3317/smart_move_intelligent_.php?page=1
A* algorithm: http://wiki.gamegardens.com/Path_Finding_Tutorial
A* demo and code: http://briangrinstead.com/files/astar/
Planning algorithms: http://planning.cs.uiuc.edu/
Alternatives to A*: http://aigamedev.com/open/tutorials/theta-star-any-angle-paths/
Unity3D waypoint tutorial: http://www.youtube.com/watch?v=oytm0eYCQw4&feature=channel
http://www.burgzergarcade.com/hack-slash-rpg-unity3d-game-engine-tutorial (lessons 003-004, 108-110)
Week 5: GUI
Due: Assignment 3
In class:
Unity GUI system
Final group formation
Final project brainstorming
Due Next Week: Project Proposal
Design and develop a central gameplay concept. Be creative! Be experimental! For next class, have prepared:
1-page game proposal document (emailed to your instructor)
5-10 minute presentation to be given next class
Possible topics include:
A story-driven game and dialog system
A novel game concept such as Portal or Katamari
Re-imagining of old game (8-bit video game, board game, kids game, etc.)
Unique controller mapped to gameplay
Whatever you can think of!
Week 6: Audio
Due: Project Proposal
In class:
Project Proposal Presentations
Proposal Feedback
How to make beautiful music with Unity
Lab time to work on your final project
Due next week: Alpha
First version of your final project. Simple build of the basic essence of your game. Crude models, simplified gameplay. Is it fun?
Week 7: Graphics
Due: Project Alpha
In class:
Unity's Rendering pipeline, shaders, image effects
Review of the current state of final projects
Lab time to work on your final project
Due next week: Nothing!
However, your progress on your final project will be evaluated.
Other Resources:
http://artis.imag.fr/Members/Xavier.Decoret/teaching/MasterIVR/Visibility/
http://www.cgchannel.com/2010/11/cg-science-for-artists-part-2-the-real-time-rendering-pipeline/
http://www.burgzergarcade.com/blogs/petey/images-effects-and-going-blind
Week 8: Testing
Due: Project Checkin
In class:
Overview of modern testing techniques
Testing as a small team
Review of the current state of final projects
Lab time to work on your final project
Due next week: Beta
Prepare the beta build of your final project. Have some animations, most of the assets, functionality and tweaked to your liking in the game. The game should be functionally finished, but lacking polish.
Other Resources:
Presentation: Game System Engineering Lecture: Game Metrics
View more presentations from Lennart Nacke.
Presentation: Making a game "Just Right" through testing and play balancing
View more presentations from Julio Gorgé.
Half-Life 2: Episode Two Stats: http://www.steampowered.com/status/ep2/ep2_stats.php
Day Of Defeat Stats: http://www.dayofdefeat.com/stats/
Playlog session recording tools: http://www.buildintime.com/playlog/
iBeta: QA facility: http://www.ibeta.com/ie_gameplay.html
Halo Science of Play: http://www.wired.com/gaming/virtualworlds/magazine/15-09/ff_halo
Microsoft Play Testing: http://www.microsoft.com/playtest/FAQ.aspx
EA Testing: http://www.2theadvocate.com/news/business/27212424.html
Week 9: Performance
Due: Project Beta
In class:
How to keep your Unity game running smoothly
Review of the current state of final projects
Lab time to work on your final project
Due next week: Final
Final Project "Gold Master"
Final Project Presentations
Week 10: Networking
Due: Final Presentation
In class:
Making Unity games that are networked
Final project presentations