CSS 452: 2D Game Engine Development
Winter 2018
Room Disc-061, M/W 5:45pm-7:45pm
Computing
and Software Systems
University of Washington Bothell
Name
Email |
Office Hours: |
Wednesday 11:00am-1:00 pm Or by appointment |
|
Phone |
(425)-352-5420 (phone for appointments only please) |
Office: |
UW1-260-O |
We will be
learning:
This
class studies the technical fundamentals and the implementation of a 2D game
engine from two important aspects: programmability and maintainability.
Relevant concepts from software engineering, computer graphics, mathematics,
physics, user interface, and game development will be presented in the context
of game engine architecture, world coordinate system specification, object
behaviors and interactions, camera manipulations, illumination, and game
physics. The coverage of each topic will be coupled with the analysis of sample
implementation source code and students will be challenged to extend the
provided functionality. Beginning from scratch, the implementation of the
concepts continuously build upon preceding results based on a software
architecture that facilitates programmability by game developers supports maintainability
which enables code reuse, ongoing system upkeep, improvement, and expansion.
Prerequisites: 2.0 in CSS 342 or equivalent.
Grading
Programming Assignments (5) |
55% |
Weekly Assignments Classroom Participation |
15% 5% |
Final Game Project in Groups of 3 or 4 |
25% |
Required Textbooks:
o Engine: Build your own 2D Game Engine and Create Great Web Games, Sung, Pavleas, Arnez, Pace. Apress, Sep 2015.
o Physics: Building a 2D Game Physics Engine, Tanaya, Chen, Pavleas, Sung. Apress, Feb 2017.
Reference Textbooks:
o Fundamentals
of Computer Graphics,
3rd edition, Shirley, Ashikhmin, and Marschner. A. K. Peters, 2009.
o Interactive
Computer Graphics: A Top Down Approach with WebGL. Angle and Shreiner. Pearson
Education, 2014.
o Elementary
Linear Algebra: Applications Version, 11th edition. Anton and Rorres. Wiley, 2013.
Approximated
Schedule: This is the first time this class is taught, the following
schedule is subject to changes. Please refer to course web-site for details of
assignment/mp due dates/times.
Week |
Topics |
Reading |
Date |
Note: |
1 |
Intro + Working with API |
Engine:1-3 |
Jan 3 |
Assign: MP #1 |
2 |
Common Game Engine Components |
Engine: 4 |
Jan 8, 10 |
Due: MP #1 Assign: MP #2 |
3 |
Martin Luther King Day: No Class Textures and Sprites |
Engine: 5 |
Jan 15, 17 |
Due: MP #2 Assign: MP#3 |
4 |
Behaviors + Collisions + Camera Manipulations |
Engine: 6+7 |
Jan 22, 24 |
|
5 |
Lights + Illuminations |
Engine: 8 |
Jan 28, 31 |
Due: MP #3 Assign: MP#4 |
6 |
Catch up |
|
Feb 5, 7 |
|
7 |
Rigid Bodies + Motion Simulation |
Engine: 9 |
Feb 12, 14 |
Due: MP #4 Assign: |
8 |
Presidents’ Day: No Class Final Game Pitch |
Feb 19, 21 |
Game Proposal |
|
9 |
Progress Demo Relaxation Loop + Impulse Response |
Physics |
Feb 26, 28 |
Due: Progress Demo |
10 |
Play testing Catch up |
|
Mar 5, 7 |
Due: Play testing |
11 |
Final’s Week: Final Game Demo |
Mar 12 |
Due: Final Demo |
Submitting Source MP Code: You will submit your source code of each programming assignment (or machine problem, or mp) and the grader and I will run/test your submissions. We will be using the same catalyst facility (refer to the course web-site for submission link). There is a folder with the corresponding mp number on the submission site (e.g. mp1, mp2, etc.). Before the due time of the assignment, you should:
Create a folder containing:
· all the relevant source files of your mp: I want to be able to run a script and unzip all your submission
· and no more.
Having extra useless/irrelevant files in that folder will results in lost credits. Please clean up your folders. WARNING: a significant percentage of each mp’s grade will be deducted if your submission includes useless files/folders. Use your first and last name and mp# as the name of your folder. Please do not include blank space as part of the name for this folder (i.e. do use “KelvinSungMp1” as folder name, and do not use “Kelvin Sung MP1” with blank spaces). Please zip up your folder into one zip file. Go to our course submission area and turn in you .zip file.
Submit as many times as you wish, we will only look at the
last one received before the deadline. Please do not submit hard copies
of your program. Let’s safe some trees, we will look at your source code
electronically.
There is a “Test Turn-in” assignment for you to try things out. Please do try it before the first MP due date! If I do not see a test submission and you have trouble submitting your first assignment at the last minute, I will not help you. I can only help those who tried.
In addition, and very importantly, you should always download your submission, un-zip/load-into-NetBeans/run to ensure your submission is correct. Remember, the grader (and/or I) will download your submission, unzip, load into NetBeans, and run. You will lose credits if anything in your submission should prevent us from automating this process.
You are responsible to ensure that the files you submitted are correct. On the due date, the corresponding directory will be close at precisely the due time. After which, you will not be able to submit your work!
Remember, our projects tend to be large, and it takes time to submit files over the network! If you start submitting 2 minutes before the deadline, and when deadline arrive your file transfer has not completed, your submission will be lost! It will be as though you did not submit, and you will receive 0% for the mp!!
If there is an emergency and/or personal difficulty, please
talk to me in person. Remember to document your code, and practice the good
programming skills you learned in CSS 342.
Assignment Deadlines: There will be no late assignments accepted. Let me put this in another way, there will be no late assignments accepted. These apply to both homework assignments and machine problems. Pay attention to the deadline on the assignments (including the time), there will be no late assignments accepted. Let me explain this again, there will be no late assignments accepted. I am actually a reasonable person, come talk to me about exceptional circumstances. Please plan ahead.
Lateness to classes: It does not bother me, just don’t disturb anyone. If you want to leave early, it would be very nice if you could give me an advance warning. If that’s too much trouble, or if you forgot, don’t worry, just don’t disturb anyone and leave quietly.
Commitments and such:
I am usually easy going. I like relaxed classrooms for learning and will try my
best to create such an environment. Please do not confuse relax environment
with relax requirements. I work hard, and expect students to work as hard. On
average, each percentage of your assignments should represent one to two hours
of outside-of-class time. For example, if an MP is worth 8%, then on average,
you will probably need about 10-15 hours to finish this assignment. Please use
this as a reference and let me know if you are spending too much time on the
assignments. If most of you are experiencing the same problem, then we will
have to adjust the amount of work. Please consider if you have the time this
quarter for this class. If you do have the time, please stay in this class, I will work hard and try my best to make this class
a worthwhile learning experience for you.
Group Assignments: MP5 and your final game will be done in groups of 3 to 4 students. We will decide the group forming policy as time approaches.
Problems?
If you have any problem with this course, please talk to me as soon as possible. I would like to help in any way I could, but I have to know there is a problem. If you fall behind in this class, it will be difficult to catch up.
If you believe that you have a disability and would
like academic accommodations, please contact Disability Resources for Students
(UW1-175) at 425.352.5307 or at drs@uwb.edu.
In most cases, you will need to provide documentation of your disability as
part of the review process. I will coordinate with the University to ensure
that the appropriate accommodations are made in this class.
Access and Accommodations: Your experience in this class is important to me.
If you have already established accommodations with Disability Resources for
Students (DRS), please communicate your approved accommodations to me at your
earliest convenience so we can discuss your needs in this course. If you have
not yet established services through DRS, but have a temporary health condition
or permanent disability that requires accommodations (conditions include but
not limited to; mental health, attention-related, learning, vision, hearing,
physical or health impacts), you are welcome to contact Disability Resources for Students
(UW1-175) at 425.352.5307 or at drs@uwb.edu. DRS offers resources and coordinates reasonable
accommodations for students with disabilities and/or temporary health
conditions. Reasonable accommodations are established through an interactive
process between you, your instructor(s), and DRS. It is the policy and practice
of the University of Washington to create inclusive and accessible learning
environments consistent with federal and state law.
For Our Veterans: If you are a student who has served in our
nation’s military forces, welcome home, and thank you for your service. I hope
that you feel comfortable enough to confidentially self-identify yourself to me
so I can help you make a successful transition from the military to higher
education.
Academic
Conduct
Student Code of Conduct: http://apps.leg.wa.gov/WAC/default.aspx?cite=478-120:
“The
university is a public institution having special responsibility for providing
instruction in higher education, for advancing knowledge through scholarship
and research, and for providing related services to the community. As a center
of learning, the university also has the obligation to maintain conditions
conducive to freedom of inquiry and expression to the maximum degree compatible
with the orderly conduct of its functions. For these purposes, the university
is governed by the rules, regulations, procedures, policies, and standards of
conduct that safeguard its functions and protect the rights and freedoms of all
members of the academic community.”
…
“An
instructor has the authority to
exclude a student from any class session in which the student is disorderly
or disruptive. If the student persists in the disorderly or disruptive conduct,
the instructor should report the matter to the dean of the school or college,
or, at the University of Washington Bothell and Tacoma campuses, to the dean or
director of the program in which the student is enrolled.”
Academic Integrity and Plagiarism: See http://www.uwb.edu/studentservices/academicconduct
for crucial
information regarding academic integrity. The library also has an
extremely useful website with resources at http://libguides.uwb.edu/ai. You are responsible for knowing what constitutes a
violation of the University of Washington Student Code, and you will be held
responsible for any such violations whether they were intentional or not.
Plagiarism is one of the most common violations of academic integrity, so
please pay attention to both the web information and when your instructor
explains all of this in class. In short, do your own work, and clearly
cite all your sources. If you are unsure, ask for help!
Privacy: The opinion you expressed (in class discussion, in
written assignments, on our course discussion board), are yours. None of this
information will be shared with anyone, not even your parents.
Other potentially
useful/important information
Inclement Weather:
Please
check if the campus may be closed due to weather. Information about
suspension
of operations will be made public and available through the media. Students can
learn of campus operations status from the website or by calling the Campus
Information Hotline 425.352.3333. You may also sign up with an alert system
that will contact you via email or text message if classes are canceled. For
more information on the alert process, please see http://www.uwb.edu/alert. Class activities will be rescheduled as needed.
Student Support Services:
IT Helpdesk: IT@uwb.edu , 425-352-3456
Library: http://library.uwb.edu/ 425-352-5340
Writing Center: www.uwb.edu/WritingCenter/ 425-352-5253
Quantitative
Skills Center: http://www.uwb.edu/qsc 425-352-3170
Student Success
Services: http://www.uwb.edu/cusp/studentsuccess
425-352-3776
Career
Services: http://www.uwb.edu/careers 425-352-3706
Student
Counseling Services: http://www.uwb.edu/studentservices/counseling 425-352-3183