Coder Social home page Coder Social logo

rilieo / cs3113-material Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sebastianromerocruz/cs3113-material

0.0 0.0 0.0 252.16 MB

CS 3113 Intro To Game Programming lecture material

License: GNU General Public License v3.0

C++ 81.15% C 17.97% Objective-C 0.02% HTML 0.73% CMake 0.10% GLSL 0.03%

cs3113-material's Introduction

CS3113 Introduction to Game Programming

New York University Tandon School of Engineering

Sections

  1. Lecture Notes
  2. Exercises
  3. Instructor
  4. Class Information
  5. Description
  6. Objectives
  7. Computer/Software Requirements
  8. Grading Scheme
  9. Deadlines
  10. Getting Help and Slack
  11. Moses Center Statement of Disability
  12. Academic Integrity

Lecture Notes

  1. Week 1: The basics
    1. Introduction
    2. Triangles
  2. Week 2: Moving in video games
    1. You're getting old, Matrix
    2. Transformations
  3. Week 3: Applying art to our games
    1. Delta Time
    2. Textures
  4. Week 4: Player input and basic collision detection
    1. Player Input
    2. Collision Detection
  5. Week 5: Animation and refactoring our code
    1. Sprite Animation and Text
    2. Entities
  6. Week 6: Physics
    1. Physics: Gravity
    2. Physics: Colliding with Different Kinds of Entities
  7. Week 7: Music, sound effects, and basic enemy AI
    1. Music and Sound Effects
    2. Basic Enemy AI
  8. Week 8: Map and stage building
    1. Tilesets and Tilemaps
    2. Scenes
  9. Weeks 9 and 10: Special effects
    1. Effects
    2. Shaders
  10. Week 11: Playtesting and publishing your game
  11. Week 12: NES game development and playtesting your final projects
  12. Week 13: Presenting your final projects

To be released every lecture day before class.

Exercises

To be released every lecture day before class.

Instructor and Course Assistant

Sebastián Romero Cruz (They / Them)

E-Mail Office Hours
[email protected] calendly

Thu Vu

E-Mail Office Hours
[email protected] TBD

Class Information

Description

A programming intensive introduction to the creation of computer games. Using mostly two-dimensional sprite-based programming, we examine and experiment with animation, physics, artificial intelligence and audio. In addition, the course explores the mathematics of transformations (both 2D and 3D) and the ways they may be represented.

Objectives

You will be able to create simple 2D games. You will learn about vectors, coordinate systems, sprites, collisions, physics, audio and handling input. This will all be done with C++ programming and utilizing the SDL (Simple DirectMedia Layer) libraries along with OpenGL.

Computer/Software Requirements

You need to use either a Mac or Windows computer. You do not need a powerful machine as we are not writing anything super complicated. For Mac users, you’ll be using Xcode. For Windows, you will be using Visual Studio. These are both freely available.

You will also need a Github account!

Grading Scheme

Item Percentage
Project 1: Draw a Simple 2D Scene 10%
Project 2: Pong 10%
Project 3: Lunar Lander 15%
Project 4: Rise of the AI 15%
Project 5: Platformer 15%
Project 6: Students' Choice 25%
Extra Credit 05%
Participation 05%

Every assignment will have an "extra credit" portion. This will count for 5% to your final grade at the end of the semester if you complete the extra credit portion of at least 3 of the projects. While 5% may not seem like a lot, it can mean the difference between two letter grades. This can be especially helpful later in the semester, when the projects get more long and complex.

When I say "participation" I do not mean that I will literally be keeping track of how much you speak in class. It's basically an indication of how much I get to know you throughout the semester. I know speaking in an online class is not necessarily easy, so here are some other ways to get this participation grade:

  • Have your webcam on as much as you can.
  • Come to my and Thu's office hours.
  • Volunteer your projects to be presented to the class.

As for your final letter grade, the following scale will be used:

Letter Grade A A- B+ B B- C+ C C- D+ D F
Range 93-100 90-92 87-89 83-86 80-82 77-79 73-76 70-72 67-69 60-66 0-60

Deadlines

  • All projects are due at 11:59pm on Saturdays.

    • Due by 11:59pm means your project was successfully uploaded by that time. This means that the version to be graded must be uploaded in both Brightspace and GitHub at that time.
    • Start uploading your project at least an hour before the deadline.
    • Projects received 1 minute late are considered to be a day late.
    • The first project is due on the Friday of week 3.
  • If there are any issues with uploading your project, you must email me before the due date.

    • While I check email regularly, do not expect a response over the weekend or close to deadlines.
    • Your code must compile. Code that does not compile will receive a grade of 0.
    • Late projects will have 10 points deducted per day. Late projects will not be accepted after 2 days.

All work is to be done on your own. There are no group projects. There is no additional extra credit in this course and the grades are not curved.

Getting Help and Slack

If you are emailing me for help with your projects, upload your entire project to github and email me with the link (I need to see everything so I can help you). Do not email screenshots of your code.

Slack Server: We will be using Slack to answer quick questions that you may have about the course throughout the summer; the join link will be provided during the first day of class. While I’m usually pretty lax in terms of behavior in our server (see: #off-topic), this server is still a university environment and should be treated as such. Be respectful to me, your course assistant, and to your fellow students. Please adhere to the following rules:

  • Do not post your homework assignment code, or anybody else's, on this server. Doing so will have you automatically banned and flagged for plagiarism. You may, however, share small code blocks that don’t give away your implementation in order to ask questions.

  • Please use your real first and last name as your name for easy identification.

  • While we aim to be as active as possible on this server, we may not always have time to respond to a question. Please respect the team’s time as you wait for somebody to answer your question. As a student of this class, you should aim to try to answer your classmates' questions as well, instead of waiting for me to answer them every single time.

  • This is a productivity server. While we encourage a relaxed atmosphere, let's stay on topic. For absolutely necessary off-topic content (it happens), post in #off-topic.

  • Use #concepts-help to ask questions that pertain to the lecture material in general (i.e. not specific to a project).

  • Use #projects to ask questions that pertain to the project concepts in general.

  • Do NOT use this server to rant about your performance in the class. This is a professional environment, and so such behavior will result in a ban. If you would like to discuss your grades, schedule office hours with me.

  • You may not invite any people outside of our class into this server.

Moses Center Statement of Disability

If you are a student with a disability who is requesting accommodations, please contact New York University’s Moses Center for Students with Disabilities (CSD) at 212-998-4980 or [email protected]​. You must be registered with CSD to receive accommodations. Information about the Moses Center can be found at www.nyu.edu/csd​. The Moses Center is located at 726 Broadway on the 3rd floor.

Academic Integrity

NYU School of Engineering Policies and Procedures on Academic Misconduct Student Code of Conduct.

  • Introduction: The Tandon School of Engineering encourages academic excellence in an environment that promotes honesty, integrity, and fairness, and students at the Tandon School of Engineering are expected to exhibit those qualities in their academic work. It is through the process of submitting their own work and receiving honest feedback on that work that students may progress academically. Any act of academic dishonesty is seen as an attack upon the School and will not be tolerated. Furthermore, those who breach the School’s rules on academic integrity will be sanctioned under this Policy. Students are responsible for familiarizing themselves with the School’s Policy on Academic Misconduct.

  • Definition: Academic dishonesty may include misrepresentation, deception, dishonesty, or any act of falsification committed by a student to influence a grade or other academic evaluation. Academic dishonesty also includes intentionally damaging the academic work of others or assisting other students in acts of dishonesty. Common examples of academically dishonest behavior include, but are not limited to, the following:

    • Cheating: intentionally using or attempting to use unauthorized notes, books, electronic media, or electronic communications in an exam; talking with fellow students or looking at another person’s work during an exam; submitting work prepared in advance for an in-class examination; having someone take an exam for you or taking an exam for someone else; violating other rules governing the administration of examinations.

    • Fabrication: including but not limited to, falsifying experimental data and/or citations.

    • Plagiarism: intentionally or knowingly representing the words or ideas of another as one’s own in any academic exercise; failure to attribute direct quotations, paraphrases, or borrowed facts or information.

    • Unauthorized collaboration: working together on work that was meant to be done individually.

    • Duplicating work: presenting for grading the same work for more than one project or in more than one class, unless express and prior permission has been received from the course instructor(s) or research adviser involved.

    • Forgery: altering any academic document, including, but not limited to, academic records, admissions materials, or medical excuses.

cs3113-material's People

Contributors

sebastianromerocruz avatar thuvu17 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.