rugbyprof / 5443-2D-Gaming

2D games Api's and some database concepts

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

5443 2D Game Programming

Intro to 2D game concepts using PyGame

General Course Info

Topics

  • Game Design and Mechanics - knowledge of game design principles, mechanics, rules, and player experience.
  • Programming Fundamentals - knowledge of programming basics like variables, data types, control structures, functions, and algorithms.
  • Object-Oriented Programming - knowledge of OOP concepts like classes, objects, inheritance, polymorphism, and encapsulation.
  • Graphics and Animation - knowledge of 2D graphics, image manipulation, sprites, animations, and special effects.
  • Game Physics - knowledge of physics principles like collision detection, gravity, acceleration, and movement.
  • User Input - knowledge of how to handle user input like keyboard, mouse, and touch inputs.
  • Audio and Music - knowledge of how to play music, sound effects, and how to integrate them into the game.
  • Game AI - knowledge of how to implement artificial intelligence to control non-player characters (NPCs) in the game.
  • Networking - knowledge of how to connect players in multiplayer games and how to handle network-related issues.
  • Optimization and Debugging - knowledge of how to optimize game performance, reduce resource usage, and fix errors and bugs.

Grading:

Categories Category Percentage Grade Grade Range
Projects 1 ⇦ 60% A ⇨ 89-100
Assignments 2 ⇦ 10% B ⇨ 79-88
Github 3 ⇦ 10% C ⇨ 69-78
Grading 4 ⇦ 10% D ⇨ 59-68
Final 5 ⇦ 10% F ⇨ below 59

Participation: Obviously this has to do with going to class, asking questions, and generally being a physical part of class. But even more importantly it has to do with interacting with our class on Slack. Responding to queries on Slack either with text response or an emoticon reaction to a post. Asking me questions with direct message is a huge help, as I can turn that into (what the military calls) an "overhead correction". Most questions help bring to my attention things that need clarification for everyone. I will be gauging everyone's participation and the best guarantee is on slack as that creates a digital record.

1. Lowest exam grade can be replaced by Final Exam grade if deemed appropriate by instructor. This is for students who attend class and participate.

2. To earn an A in the course, every program must be: 1) turned in 2) must compile / run and 3) must at least minimally fulfill the requirements of the assignment. This does not mean that all your programs must receive an "A" to earn an "A" in the course. It simply means that "A" level work in a programming course means all programs should be submitted, and working.

3. The dynamic nature of the way I teach courses could result in a change in the grading categories. No two classes are the same and some classes need many smaller "homeworks" with a couple of programs and some classes need more "programs" with a couple of homeworks. HOWEVER! Nothing will be changed without input and agreement from the students in the class. The only time I will make changes to the grading policy is when 1) I feel it is in the best interest of the class (helpful to your grade) and 2) the class agrees by majority vote.

4. Plane ticket prices, weddings, trips out of the country, etc. are not valid excuses for missing the scheduled final exam time. I will not make accommodations for an early final exam other than an issue vetted by the dean of students.

5. Late work will be accepted on a case by case basis. Late penalty is 15 points (out of 100) for initial lateness and 1 half a letter grade (5 points) for every class period until the total reduced is 50 (half credit). Extremely late work is totally at the instructors discretion on whether it will be accepted or not.

My View on Cheating / Plagiarism

  • Most plagiarizing, when it comes to programming, happens for two reasons:

      1. You don't have a clue how to solve the problem, so you get a friend or the internet to help.
      1. You didn't start early enough, and you're desperate to get something working the night before it's due, so you get a friend or the internet to help.
  • Both are easy to fix.

      1. Come ask me to explain. I promise you're not the only one who is confused.
      1. Start early. Then when you get stuck, you can ask for help the right way!
  • Please read this article as it pertains to our field of computer science: How To Code Without Plagiarizing

  • Also, this might help: plagiarize and get an "F".

  • Ultimately it's not cool. It's an insult to those that actually do the work.

  • Lastly: Let me reiterate that I'm available for help ... a lot. No excuses. I've helped students at 1am via Slack. I'm online consistently afternoons and most nights, just shoot me a message.

Official Policy on Academic Honesty

The Department of Computer Science had adopted the following policy related to cheating (academic misconduct). The policy will be applied to all instances of cheating on assignments and exams as determined by the instructor of the course. (See below for link to MSU definitions.)

  • 1st instance of cheating in a course: The student will be assigned a non-replaceable grade of zero for the assignment, project or exam. If the resulting grade does not result in a letter grade reduction, the student will receive a one letter grade reduction in course.
  • 2nd instance of cheating in a course: The student will receive a grade of F in course & immediately be removed from course.
  • All instances of cheating will be reported to the Department Chair and, in the case of graduate students, to the Department Graduate Coordinator.

Official Policy on Testing Process

The Department of Computer Science has adopted the following policy related to testing.

  • All bags, purses, electronics (turned off), books, etc. will be placed in the front of the room during exams, or in an area designated by the instructor.
  • Unless otherwise announced by the instructor, nothing is allowed on the desk but pen/pencil/eraser and test papers.
  • No student is allowed to leave the room during an exam and return.

See Also: MSU Student Handbook: Appendix E: Academic Misconduct Policy & Procedures.

Major Points

  • All students need a Github account.
  • All course communication will be done via Slack or Discord.
  • All programs need to be turned in to pass the course.
  • Programs containing syntax errors are unacceptable and will be returned without grading (your programs must work).
  • Your name is required on ALL documents uploaded or turned in. Handwriting on any document is not acceptable (unless specified).
  • All files / programs created by you will end up in your assignments folder within your Github repository.
  • Attending class is one of the primary keys to doing well in this class. Students may be dropped for excessive absences. There is no distinction made between excused and unexcused.
  • Make-up exams are not given. If I see fit, then I will replace a missed exam with your final exam test grade (but this is optional to instructor based on circumstances, attendance, participation, etc.).
  • Cheating or plagiarism on any assignment will not be tolerated.

About

2D games Api's and some database concepts


Languages

Language:JavaScript 82.3%Language:HTML 6.8%Language:C++ 5.1%Language:Python 4.4%Language:Less 0.4%Language:CSS 0.4%Language:Shell 0.4%Language:CMake 0.1%Language:PLSQL 0.0%Language:Makefile 0.0%Language:Batchfile 0.0%Language:GLSL 0.0%Language:Cuda 0.0%Language:Starlark 0.0%Language:PHP 0.0%