In this repo you will find the notes for this course.
You can view the pretty version of the notes here.
Welcome to Game Programming! I'm really excited to teach and learn the process of developing games with you. Even though we'll "only" be making 2D games in this course, I think you'll be surprised at how complex these (seemingly simple) games are to develop. Hopefully, you'll gain an appreciation of how developers back in the day were able to accomplish so much with limited (for their time) hardware.
In this course, we will be programming in JavaScript and making games with the HTML5 <canvas> element. This course is not about learning any particular engine or framework (ex. Unity, GameMaker, Phaser, etc.) as these kinds of software tend to have their time in the spotlight before the new shiny thing bumps them out. Instead, this course focuses on the fundamentals of game development that can be applied to any engine or framework that you might use in the future. This includes things like code organization, architecture, and design patterns that are common to game development. However, the ability to not use a framework is not just specific to game development; it is also the reason I specifically did not use a web framework last semester in Web II.
When your fundamentals are solid, you can learn any framework very quickly and you'll recognize how the components of the framework function under the hood. Ultimately, this leads to you becoming a pro developer!
Trust me 😉