top of page
CowNoirBackground3.png
cownoirintroscreen.jpg
noircow_title.png

Noir Cow is a 2D top-down action game that centers around an umbrella-wielding cow as he thwarts the operations of a gang of criminal pigs.

They're selling milk... Unforgivable...

-Available On-

CowNoirBackground.png

Overview

Noir Cow was created as part of a Sophomore-level Game Design class. It was developed over the course of one semester, and was then picked up by Bradley University's FUSE, where it was shown as part of it's Interactive Media Showcase for 2024.

The game sees our protagonist, Cow Noir

(confusing, I know), infiltrate a bar owned by a notorious gang of pigs. However, the only weapon Cow Noir has at his disposal... is an umbrella...?
Use the umbrella as a shield from the bullets fired by the pigs, and parry the bullets to reflect them. Make your way through the bar's many rooms to take down the gang and stop their morally dubious plans to sell milk. 
Beware though, the gang's leader does not mess around.

cownoirtitlescreenfin.png
bulletknockback.png
CowNoirBackground.png

My Contributions

I wore many hats for this project. While my main role was Programming, I also contributed some 2D art and keyframe animation.
The first thing I scripted was the umbrella. Creating a fundamental system that the rest of the game would rely on was daunting, but also exciting. I could really make sure this mechanic was well built and supported iteration. The sprites for the umbrella were intended to be programmer art at first, but ended being satisfactory enough to wind up in the final build. With the main game mechanic done, I moved on to assisting with programming enemies, interactable objects, and UI animations. Alongside the programming, I also implemented all the keyframe animations for enemies. So now they have nice color flashes and stretchy animations for readability and aesthetic value. One of the last things I worked on is my favorite, though: The Boss.

The Boss is the player's final challenge. It has multiple attacks that it choses at random, with increasing frequency and speed the lower its health gets. Each attack asks for a different response from the player, resulting in a battle that feels fluid and dynamic. Overall, ​the game, in both its initial and FUSE iterations, has become a great game that I am proud to have helped create.

CowNoirBackground2.png

Designing: The Umbrella 

When Noir Cow was first being developed, we set out with the goal of creating a mechanic that ties the entire game together. A central throughline that connects all systems to itself, allowing for rapid iteration and challenge creation. During our initial conversations, we settled on the goofiest idea we could come up with- an umbrella. The player would use this umbrella as a tool of "conversation" with the game. A method by which each player would conquer challenges and interact with the world. Inspired by the Miyamoto quote, "A good idea is something that does not solve just one single problem, but rather can solve multiple problems at once." As the main programmer and designer of the umbrella mechanic, the responsibility of building a competent foundation for the rest of the game's systems to rely on was up to me.

I started by taking what we had discussed previously and turning it into an understandable system for the player to pilot. The most clear option to me was the mouse- the player would move the mouse around the screen and the umbrella (attached to the player) would rotate to face its position. This gave the game an almost shooter-esque quality, which fit with the plan of reflecting projectiles using the umbrella.

With this, I kept implementing the umbrella to be as easy to control as possible. The umbrella simply has two states and one input. By pressing left click, the player would perform a "poke" with the umbrella. This is used to open chests and break crates. This is your typical "interact button" with the caveat that you can also use it to damage stunned enemies, which is pretty funny. However, the more interesting part to me is the other state the umbrella has. If the player holds right click, the umbrella will open. This creates a type of "shield" in front of the player. Bullets fired by enemies will now ricochet off the umbrella in random directions. Letting go of right click closes the umbrella, returning it to its other state. This gives players a great sense of weight when using the umbrella, as the idea of holding an umbrella open is personified with the holding of a responsive mouse input. Finally, if the player presses left click while holding right click, they will perform a "bash" or "parry" move. This reflects bullets back in the exact direction the umbrella is facing. It can also be used to stun melee enemies. This is the main way players engage in combat. The act of perfectly parrying a bullet and seeing it take out an enemy is very satisfying, and one is my favorite contributions to this project.

All-in-all, Noir Cow's umbrella is a great example of a main mechanic. It is understandable, satisfying, and competently educates the rest of the design present in the game.

bossbulletexample.png
umbrellapokebashopencloseexample.gif
umbrellaanimatorexample.png
bottom of page