
Game Programming Patterns
Class Taken at Bradley University, Game Programming 2: Design Patterns (CIS/IM 452/552). a course on software engineering design patterns and principles for game programming.
Course Goals: to develop the skills to use design patterns effectively for game programming, guided by software design principles.
Course grade: A
Development Environment: Visual Studio and Unity
Github repository to assignments using each design pattern.
Below are some highlighted minigames / prototypes made for this class uses Simmer.io for hosting.
Design Patterns Covered:
Strategy
Observer
Decorator
Factory
Command
Template Method
State
Adapter
Facade
Singleton
Iterator
Object Pooling
Course Objectives
Use and understand the purpose of each design pattern covered in this course
Identify appropriate contexts and uses for each design pattern for object-oriented programming
Understand and create Unified Modeling Language (UML) class diagrams for each design pattern, and implement design patterns with object-oriented programming using C# and the Unity game engine
Analyze and improve code based on design principles such as the Open/Closed Principle
Work as a team using an Agile project management approach and Github version control software with Unity
Playtest games and revise their games based on feedback from the playtesting
Participate in team presentations about their team project work to the class
This class was in the Computer Science Department at Bradley University as part of my Computer Science Minor, and focused on development principals and programming skills, creating many prototypes or minigames within a few days utilizing a newly learned programming design pattern.
This class was different than most of my other classes in the Interactive Media Department, where the focus is on game design and development cycles with testing to complete final games and was one of my final classes within the Computer Science Minor.
I learned a lot about coding optimization and different ways to approach a programming task utilizing a design pattern.
Sphere Sniper V2
This minigame uses both the object pooling and the facade programming design patterns.
This game is about getting or preventing spheres into a drain, from the idea of an object pool.
The blue spheres increase the player score when shot, and decrease going into the drain.
The red 'explode' sending it and other spheres around it into the air.
Platformer Prototype
Controls:
• WASD to move | S to drop down
• Space to jump
This is a basic 2D platformer prototype system built by me for use in the class.
This has wall sliding and wall jumping, along with has moving platforms, using 2D vector arrays and transform slerp, that players can both jump and drop through. As well as a reactive camera.

