Programming Patterns

2020

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's final project
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.
The final project was a team of 5 programmers, calling ourselves the BeardBoyz. Although my specialty is not art, Due to our lack of artists and the need for developed art for the final, I handled entirely designing the art assets, parallax scrolling, and tilemap. 
The final project's concept was for the player to control a witch, redeeming the land's lost magic, and utilize a magic umbrella to avoid water, use it as a weapon, and movement abilities such as umbrella dash or hover fall. We drew insipiration from Hollow Knight. 
Unfortunately due to COVID-19 the class and final project's development was delayed, and the game was not fully finished and is accompanied by bugs.

Other Projects

Back to Top