bk2427 / CS3113-material

CS 3113 Intro To Game Programming lecture material

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CS505 Introduction to Game Programming

New York University Tandon School of Engineering

Sections

  1. Instructor
  2. Class Information
  3. Description
  4. Objectives
  5. Computer/Software Requirements
  6. Grading Scheme
  7. Deadlines
  8. Course Weekly Schedule
  9. Lectures Links
  10. Getting Help and Discord
  11. Moses Center Statement of Disability
  12. Academic Integrity

Instructor

Sebastián Romero Cruz (They / Them)

E-Mail Office Hours
src402@nyu.edu calendly

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

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%
Final Project: Students’ Choice 25%

Deadlines

  • All projects are due at 11:59pm the day before lecture.

    • Due by 11:59pm means your project was successfully uploaded by 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.
  • 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.

Course Weekly Schedule

Week Topic
Week 1 Introduction
Week 2 Linear Algebra
Week 3 Basic Graphics with OpenGL
Week 4 Input, Time-Based Movement
Week 5 Sprites and Sprite Animation
Week 6 Game Physics and Fixed Timestep
Week 7 Audio
Week 8 AI Programming
Week 9 Platformer Levels
Week 10 Effects and Shaders
Week 11 Particle Systems
Week 12 Introduction to 3D Graphics
Week 13 Advanced 3D Graphics
Week 14 Prototyping and Polishing
Week 15 Final Project Presentations

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

Lectures

  1. Introduction
  2. Triangles
  3. You're getting old, Matrix
  4. Transformation Practice
  5. Delta Time
  6. Textures
  7. Player Input
  8. Collision Detection
  9. Sprite Animation and Text
  10. Entities
  11. Physics
  12. Colliding with Different Kinds of Entities
  13. Music and Sound Effects
  14. Basic Enemy AI
  15. Tilesets and Tilemaps
  16. Scenes
  17. Effects
  18. Shaders
  19. Intro to 3D
  20. 3D Models

Getting Help and Discord

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.

Discord Server: We will be using Discord to answer quick questions that you may have about the course throughout the semester. Discord is a very lightweight instant-messaging platform very similar to Slack. Please click here to join (you will need to make an account). 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 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.

  • 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 #project-questions 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 add the instructors as Discord friends until after the semester ends.

  • 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 mosescsd@nyu.edu​. 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.

About

CS 3113 Intro To Game Programming lecture material

License:GNU General Public License v3.0


Languages

Language:C++ 85.7%Language:C 13.3%Language:HTML 0.9%Language:CMake 0.1%Language:GLSL 0.0%