←Return Home

Game Portfolio

I have made a game in each of my game programming semesters, using a different engine/framework each time. Links below!

ChickenButt - [Link to Play] chickenButt.png
[Built with]: Unity, C#
[Description]: In ChickenButt, you play *as* ChickenButt. Tired of her peers refusing to cross the road, ChickenButt decides to use her butt, to take action!
[Features]: ChickenButt is an endless runner that tracks your high score. Cars and enemies will continue to spawn as time goes on and loop back around if not killed to increase difficulty, cars cannot be killed. ChickenButt has four lives, but can regain health through a 1/4 chance drop from enemies.

The Medieval Dark Acres - [Link to Play] theMedievalDarkAcres.png
[Built with]: Godot, GDScript
[Description]: You play as an out-of-place farmer in an otherwise bright and colorful world. The farmer's true colors are shown through the player's actions.
[Features]: Time-based fishing minigame, seed placement, crop progression, day/night cycle, and rebirth system.

Below is a showcase of custom collision and physics I've made in MonoGame!
The collision is discrete, calculating if the player rectangle plus the move amount would intersect with a rectangle in the "solid" list, and subtracting the height/width of the rectangle created from the intersection from the move amount integer that is then applied to the player's X/Y position. I used square rectangle structs for slope objects by seeing if the rectangle that would be created by the intersection of the player and the object would have a height equal to the height of the square "slope" object minus the width of the rectangle created from the intersection.


Below is a match of chess I played with my friend using the Lidgren network library to sync our clients, made with MonoGame!
The syncing code is currently all located in the clients, with the server only serving to relay the information. When one client picks up a piece, it sends move commands to the other clients until that piece is let go of. If a client joins after a piece has already moved, clients whose pieces have been moved send move commands for all their pieces to the newly joined client whose pieces have not yet been moved. Sprites all made by me.


Below is a prototype I made with Sonic to test Unity's physics engine. He gains the rotation of the obstacles he collides with, so his movement is always in the right direction, and I gave him enough acceleration to be able to go through the platforms with discrete collision as well as some deceleration, so stopping felt more natural. He also receives a force backwards on a timer whenever he takes damage.