Syllabus¶
Projects Seminar in FLOSS Game Development¶
- Syllabus - http://ritfloss.rtfd.org/ – (subject to change)
- Course Number - 4080.590.01
- Room - Orange Hall, Room 1380 (013-1380)
- Tuesday, Thursday – 10:00am-11:50am
- Instructor - Ralph Bean <rjbpop@rit.edu>
- Office: Building 17, Room 3110 (17-3110)
- Office Hours: Friday, 1:00pm-3:00pm
- IRC - irc.freenode.net,
#floss-seminar
- Email list - floss-seminar@lists.rit.edu
- Blog Planet - http://threebean.org/floss-planet
- The source for this syllabus can be found at http://github.com/ralphbean/tos-rit-projects-seminar
Text Books¶
You can download the textbooks here
.
Casual Game Design¶
Casual Game Design: Designing Play for the Gamer in ALL of Us.
Making Isometric Social Real-Time Games with HTML5, CSS3, and Javascript¶
Making Isometric Social Real-Time Games with HTML5, CSS3, and Javascript.
Goals of the course¶
Having taken this course, students should be able to:
- Demonstrate competence with modern FLOSS development tools and conventions (git, public forges, unit tests, bug trackers, wikis, etc..).
- Demonstrate competence with modern web development technologies (HTML5, Javascript, CoffeeScript, CSS3, etc..).
- Document their work progress, accomplishments, and pitfalls by way of weekly blog posts.
- Work with and contribute to existing open source projects.
- Build and manage a new project using open source tools.
- Deploy a web application to the cloud.
- Have a fun, open-source web-based game for their portfolio and/or to show off to their friends.
The spirit of the course¶
While still a course where you will receive a letter grade, the spirit of the course is intended to be both open and fun. This is a seminar course, so an experimental approach will be taken.
An open course – students will have access to the ‘document source’ for the syllabus and grading rubric. While you are reading the syllabus right now, as a student of the class you have a right to fork the upstream repository, make modifications, and submit patches for review. Barring a troll festival, this can create a fun, dynamic environment in which the course curriculum can develop by the very same mechanism being taught during the quarter (community-driven).
A fun course – while the primary deliverable for the course is a working web-based game, we are going to subject the course itself to gamification. Instead of grading students’ final projects individually, projects will be pitted against one another through a scheme developed by the students themselves, called the Final Project Rubric.
For example, one way this could work is through simple accumulation of weighted point values awarded for the presence of certain features: a game that works in all modern browsers as well as on mobile devices gets +5 points, a game that includes a velociraptor gets +3 points, etc…
Licensing¶
All code developed by students in the course must be licensed (by the student) under any one of the licenses approved by the open source initiative.
Your code that you write is your code, with which you can do what you will; true. However, if you’re unwilling to license code you write for an open source course with an open source license, you’re in the wrong course.
Schedule¶
Week | Day | Topic | Reading | Assigned | Due |
1 | 1 | Introductions, Syllabus, Mailman, IRC, git, github | The Syllabus | Homework - First Flight | |
2 | Bugfix deep dive | The Open Source Way | Homework - Bugfix | ||
2 | 1 | Casual Games: Matching, Sorting, and Seeking | Casual - Week 2 | Homework - First Flight | |
2 | Introduction to HTML5 | Isometric - Week 2 | HTML5 - Programming Assignment #1 | ||
3 | 1 | Casual Games: Managing, Hitting, and Chaining | Casual - Week 3 | ||
2 | Audio, WebWorkers, and CoffeeScript | Isometric - Week 3 | |||
Holiday Break | |||||
4 | 1 | Pitch Session : Talk about your game. | HTML5 - Programming Assignment #1 Homework - Bugfix | ||
2 | Paper Prototypes : Lecture and Build | ||||
5 | 1 | Paper Prototypes : (con’t) Project Decisions | Homework - Rubric | ||
2 | Server choices, Social APIs, and le Cloud. (#openshift) | Isometric - Week 4 | HTML5 - Programming Assignment #2 | ||
6 | 1 | No class | |||
2 | Casual Games: Constructing, Socializing, and Physics | Casual - Week 4 | Homework - Rubric | ||
7 | 1 | Digital Prototype : Build | |||
2 | Digital Prototype : Play | ||||
8 | 1 | Digital Prototype : Report and Revise | HTML5 - Programming Assignment #2 | ||
2 | Guest Lecture | ||||
9 | 1 | Digital Prototype : Build | |||
2 | Digital Prototype : Report and Revise | ||||
10 | 1 | Play Testing/Development | |||
2 | Play Testing/Development | ||||
11 | ? | Final Presentations |
Required Reading¶
The Syllabus¶
- You’re reading the syllabus right now. It is posted at http://ritfloss.rtfd.org/
The Open Source Way¶
Casual - Week 2¶
- casual
- chapters 1-6 (139 pages). It’s light reading, trust me.
Isometric - Week 2¶
- Making Isometric Social Real-Time Games with HTML5, CSS3, and Javascript
- chapters 1-3 (65 pages). This reading is not quite so light.
Casual - Week 3¶
- casual
- chapters 7-9 (36 pages)
Isometric - Week 3¶
- Making Isometric Social Real-Time Games with HTML5, CSS3, and Javascript
- chapter 4 (18 pages)
Casual - Week 4¶
- casual
- chapters 10-12 (56 pages)
Isometric - Week 4¶
- Making Isometric Social Real-Time Games with HTML5, CSS3, and Javascript
- chapter 5 (25 pages)
Grading¶
Assignments are due at midnight of the day they are marked as due.
Late submissions will be deducted 10% per day they are late.
Your final grade for the quarter will be derived from the following weights.
Component | Weight |
---|---|
In-Class Participation | 10% |
FLOSS Dev Practices (Blogging, patching, writing, IRC) | 15% |
Homework Assignments | 10% |
Programming Assignments | 15% |
Paper Prototype | 10% |
Final Project | 40% |
Class partitipation is speaking in class, answering questions, etc…
Blog updates – students are required to keep a blog to which they post updates about their investigations, progress, success, and pitfalls. This blog can be hosted anywhere, but must be added to the course planet (there are instructions on how to do this in Homework - First Flight).
- You must make at least one blog post per week to receive full credit.
- You must participate regularly in the course’s IRC channel: asking and answering questions.
- You must participate in the course’s mailman list, floss-seminar@lists.rit.edu.
- Contributions to the course curriculum, syllabus, and rubric are factored in here as well.
Blogging is good for you and good for the FLOSS community at large.
The homework assignments are listed in the syllabus. You will be able to complete some of these in class.
Programming assignments are more in depth, but will amount to two deliverables derived from one of the course’s two textbooks, Making Isometric Social Real-Time Games with HTML5, CSS3, and Javascript.
- There are two assignments:
Students’ paper prototypes are presentations to the rest of the class on their idea for their game, before a single line of code is written.
These are ‘play sessions’. You will need to bring some playable version of your game so we can all try it out. For instance, if you’re thinking about a first-person-shooter, come with a set of rules for playing ‘pointing tag’ and we’ll all really play it, in person.
- The rest of the students will comment on your prototype. Take notes and:
- Use them to improve your design
- Turn in a copy for your grade
Your final project will be the culmination of the quarter’s work and will be graded according to the Final Project Rubric.
Additionally, graduate students are expected to complete some extra work as described in Grad Student Responsibilities.
Lightning Talks - Extra Credit¶
Every Tuesday for the first portion of class, any student has the opportunity to give a lightning talk on a topic of their chosing. Your lightning talk must be less than 5 minutes in length and must be at least remotely related to the course material.
You will receive +1 extra credit points towards your final grade for every lightning talk you give. Only the first three lightning talks offered will be allowed during a given class. Talks will be chosen from among those offered by students on a FIFO basis.