CS315 Game Programming: Overview

Course Overview

Section Information

The course catalog provides this short description:

Serves as an introduction to game programming, and topics include active and passive rendering, sprite animation, collision detection, audio playback, input devices, deployment, and applications of artificial intelligence.

Background

It is good to start with a distinction between “game design” and “game programming.” Briefly, game design determines what is made and game programming determines how it is made as software. We will only touch on the former in that it helps us succeed at the latter. If you are interested in game design, there are many excellent free and commercial resources available. You could also take CS215 Introduction to Game Design, which is also being taught this semester. That course complements this one with little redundancy.

One semester of game programming is just enough to get your feet wet. I have designed this course to be a springboard into any areas of game development that interest you. That is, by succeeding in this course, you should be well positioned to explore new areas in game development. I value game development because of the joy of the craft, and this is reflected in the course design. That said, it is important to understand that one course in game programming will grant neither success nor even entry into this hyper-competitive profession. Indeed, there are endemic problems in the profession that warrant serious consideration before one decides to pursue it. In any case, I hope that we can work together to give you the expressive tools to be able to breathe life into your own creations. What you do from there is your choice.

Learning Outcomes

The Computer Science Department has identified the following learning outcomes for this course.

A different way to put all that is this: if you succeed in this class, I want you to be able to enjoy the art of making games in events like Global Game Jam and Ludum Dare without the programming and technology being insurmountable hurdles.

Commitment

This is a three credit-hour class, and you are expected to invest nine hours of effort per week into it. This value is not arbitrary: it comes from federal student loan legislation. In a sense, it defines what you pay for—or what you commit to doing—with federally-backed student loans. Hence, it represents the standard for all of higher education in the United States.

It is worth thinking about the implications of this level of commitment. First, consider that taking 15 credit-hours of courses at Ball State translates into an expected commitment of 45 hours per week. That’s significantly more than “full-time” since you don’t have a union that negotiates meal and coffee breaks. Second, consider that this is expected to be focused effort, not to be confused with text-messaging, Instagram-checking, Netflix-streaming, browser-tab-switching effort. Maintaining this level of effort is challenging and requires discipline. Training yourself to consistently perform at this level of focus is a desirable outcome of a quality higher education. It prepares you to contribute to your community at peak levels after you graduate. Put another way, this work is formative, and the effort is moral.

This course is designed so that someone with no prior experience in game programming who succeeded in the prerequisite courses, and who commits nine hours of focused attention per week, can emerge with significant and measurable skills in this area. Remember that you can always talk to me if you feel like you’re not learning or working at your peak capacity. I am happy to help with course content and with learning strategies.

Resources

We will focus our learning around Godot Engine—a popular free and open source game engine. It supports both 2D and 3D graphics, and games can be deployed for desktop, mobile, and the Web. Godot Engine’s scripting language—GDScript—is very similar to Python and should be easy for you to pick up. This video from GDQuest gives a five-minute overview of the engine.

We will use git and GitHub for version control. You probably already have the necessary accounts and software installations from CS222 or other CS coursework. You will need to complete the account registration form on Canvas as soon as possible so that you will gain access to our GitHub organization.

The example used on the first day of class can be found at https://github.com/doctor-g/Godot-Collector-Tutorial.

Schedule

We will spend roughly the first half of the semester learning fundamentals of game programming in Godot Engine. This will be done through a series of small projects that expose you to important ideas of game programming. After this, you will have the freedom to develop your own original final project to demonstrate what you have learned this semester.

Expect a midsemester assessment before we get to work on the final project.

The withdraw deadline is TBD.

Attendance and Decorum

Your learning is commensurate to your participation, and so attendance is expected. You are responsible for your learning regardless of attendance. If you miss a class meeting, you should consult with trusted classmates to ensure you are caught up.

Always have paper and a writing implement on hand during meetings so that you are ready to take notes or record questions. The most frequent lie that we tell ourselves is, “I will remember this.” Transcribing your notes after the meeting is an excellent way to study, if not the best way. Doing this will help you structure your experience and strengthen your understanding. If you want to do your transcription on a computer rather than on paper, that’s up to you. Be careful, though, not to delude yourself into thinking that your distraction machine is an appropriate replacement for a notebook.

We will begin our meetings on time, which means you should arrive a few minutes beforehand. This gives you adequate time to get situated and exchange greetings with your classmates. Recognize that it is inconsiderate to miss or be late to a meeting. Should you be in a position where tardiness or absence is inevitable, consider bringing treats to a future meeting by way of apology: your classmates will not forget this show of respect.

Stow your phone in silent mode for the duration of meetings. If you anticipate receipt of a communiqué so critical as to merit interrupting a meeting, it is certainly better not to be in that meeting at all. Remember that online meetings are meetings, too.

Listen actively. Assume the speaker knows something you do not. Listening this way means you are not simply waiting for your chance to speak. More often, you are asking probing questions in order to build a better understanding of the other person’s experience.

Most of our face-to-face communication is non-verbal; a corollary is that it is easy to misread someone’s intention in text. Keep in mind The Rule of Three Interpretations. If you read something that rankles you—whether it appears to be bull-headed, offensive, or just plain wrong—pause for a moment. Think of three different possible interpretations of the text. The odds are that the most charitable one is correct.

Grading

Expect each week of your regular coursework to have an equal weight. Your final course grade will be a weighted average of your individual coursework, your group final project, and your final exam performance.

CategoryWeight
Individual coursework75%
Final project20%
Final exam5%

Communication

Talking with the Professor

I am glad to talk to you about your work and your plans.

You are welcome to email me any time with questions. I almost always respond within two working days and usually much faster.

I am also regularly on the BSU Game Design & Development Discord server; see Canvas for the link. Feel free to “at” me in discussions there.

My office hours are first-come, first-served. You don’t need an appointment for office hours.

Not every student is available during my posted office hours. If you want to meet at another time, simply email me your availability, and we will use that to set up a meeting. Be clear about whether you are seeking a Zoom meeting or a face-to-face meeting, and let me know what you would like to discuss so that I can be prepared.

Although my office telephone number is listed on my Web site, it is not a reliable way to reach me. Email or online meetings are strongly preferred. I will respond to every student email I receive; I may not respond to telephone messages.

Email

All email communication to the instructor should be from a BSU-affiliated address. This policy ensures that senders can be correctly identified and protects your privacy. Email sent from other domains may not be answered.

You are expected to process your email at least daily.

Please do not use Canvas’ Inbox system to contact me. I recognize that some faculty have the opposite recommendation, and I apologize for the confusion this may cause. Canvas’ Inbox is a proprietary and inferior email substitute; we will instead rely on the real thing, which is a robust and open standard.

Don’t email pictures of text (for example, a screenshot of your IDE) nor embed these in assignments unless specifically instructed to do so. Digital images lack all of the affordances of plain text. If you have a question about code, either include the code itself in the body of an email or include a link to the code on GitHub. These are the right tools for the job. In a course that is all about using the right tools for the job, there’s no reason to do it any other way.

Miscellany

YouTube and Advertisements

I have a large collection of tutorial videos on YouTube. When I started posting content there, non-commercial content like mine would show ad-free. However, a few years ago, YouTube changed their licensing scheme so that they could run ads on any video, not just for monetized channels. I apologize that the video tutorials now include ads. However, bandwidth is not free, and ads are the cost of keeping the content available to you and others outside the confines of our semester together. Should I receive enough views to be eligible for YouTube’s partner program, such that I would earn a portion of the advertising revenue myself, I intend to donate that money to local charities.

Academic Integrity

Students and faculty are bound by the Student Academic Ethics Policy of the Code of Student Rights and Responsibilities. This means, among other things, that putting your name onto work and submitting it indicates that this is your original work. Any exceptions are to be clearly identified, such as through citation or in the README file that accompanies project work.

Intellectual Property

It behooves you to be familiar with fundamentals of copyright law and the university’s intellectual property policies for student-created work. We will talk about some of these ideas during the semester.

The Writing Center

Want extra feedback on your papers? The Writing Center is a community of Ball State students and faculty who value writing. Come and collaborate with one of our trained peer tutors on any project for any major. The Writing Center is a comfortable, supportive environment for writers from all communities and backgrounds. It is located in Robert Bell 295. To make an appointment, go to https://ballstate.mywconline.com.

Disability Statement

If you need course adaptations or accommodations because of a disability, please contact me as soon as possible. Ball State’s Disability Services office coordinates services for students with disabilities; documentation of a disability needs to be on file in that office before any accommodations can be provided. Disability Services can be contacted at 765-285-5293 or dsd@bsu.edu.

University Statement

A university policy mandates the inclusion of this statement:

We are committed to ensuring that all members of the community are welcome, through valuing the various experiences and worldviews represented at Ball State and among those we serve. We promote a culture of respect and civil discourse.

It is an exercise in critical thinking to consider whether this is bunkum. Feel free to bring it up in class for discussion.


CS315 Course Plans (Fall 2026) © 2026 by Paul Gestwicki is licensed under CC BY-SA 4.0