Welcome to this corner of the internet

Welcome to this corner of the internet

Feel free to look around, enjoy your stay!






What's so neat about Sam?

What's so neat about Sam?

Lot's of things, I think. But hey, let's find out shall we?

I am a student at Boise State University studying the Games, Interactive Media, and Mobile Design major. That wasn't always the plan though! Originally, I wanted to be a neurosurgeon and was even accepted into the University of Rochester, NY for my undergrad. After some soul searching (and a realization of the cost both in regards to my wallet as well as personal life) I decided to do something closer to my heart.

Why games? An excellent inquisition indeed. The answer is quite simple: I want to make something that impacts people such that video games have impacted me. The possibilities of storytelling and emotional impact go far beyond that of movies or books due to the interactive nature that permeates the artform. They are an anchor when your ship is sailing off course. They are, without a doubt in my mind, the most expansive form of digital human experience.

I want to work with you on your next project. I am eager to explore new ideas. As some folks in my cohort of GIMM students have put it, I don't like to work on things because of a deadline or obligation, I like to work on things because I get addicted to solving the puzzle each project presents. I am always learning technical skills and am always excited to work with other like-minded people.

Favorite Pieces of Media (click!)

Games

Outer Wilds

Bioshock

The Legend of Zelda: Breath of the Wild

Hunt: Showdown

Destiny 2


Movies

Blade Runner: 2049

Arrival

Interstellar

Inception

Shutter Island


Shows

Avatar: The Last Airbender

Scrubs

Cowboy Bebop

Heroes

New Girl


Books

Children of Time

Supermarket

The Giver


Albums

Swimming - Mac Miller

CTV3: Cool Tape Vol. 3 - Jaden

Under Pressure - Logic

Pink is Better - Token

Hawaii: Part II - Miracle Musical

⌄Skills⌄

Unity

80%

C#

85%

C++

60%

Blueprints

60%

Unreal

40%

SQL

80%

HTML, CSS, Bootstrap

50%

Game Design Theory

80%

Multiplayer Development

70%

Virtual Reality

75%

Augmented Reality

40%

Ability to learn

98%

Works well in teams

95%

Comments code

99%

3D Animation

60%




Projects I'm proud of

I hope you love these as much as me!



Image of a virtual reality immersive simulation game!

Flynn's - A VR Experience

Github repo
Video Demo

My senior project, I attempt to make an immersive simulation style game. Featuring custom object snapping, stencil shading, 100% custom assets, this is the biggest undertaking I could have set myself upon. It started as but a proposal in the sophomore class GIMM 290. In the two and a half years since that concept I have iterated upon it with the skills I've acquired in every subsequent GIMM course. I made the mistake of initially using the Oculus VR toolkit, but after realizing how limiting that is for people who have a different headset I switched to the Unity XRTK. That meant I had to rebuild some of the code I had written already to get the same effect, but in the end the accessibility is worth it. Although it is far from finished, I am proud of the progress I've been able to make this far!

What I did: Set up an XR environment for the player which is accessible through any headset, created custom snap mechanics for placing objects, activation of audio based on where the player is, discoverable areas which act as a guideline for progress (accessed in the menu), saving and loading for moveable objects and player, custom shader for funny viewfinding, created a vent system that acts as an alternative way to navigate the building, a keycard system for activating elevators. Aside from programming, I also did everything else.

Image of a 3D platformer boss fight!

Henry

Github repo
Video Demo

This is a project that was concepted in the first semester of my senior year, class GIMM 480. It's a "special topics" game. I chose to explore a boss fight through the lens of a 3D platformer. In my research I learned one of the most important things to avoid in a setting like this is what I would call "left fielding" the player. For instance, you cannot have your game be all about making crazy jumps and then in the 11th hour turn it into a hack-n-slash arena fighter! The whiplash from that is incredible and hurts the player experience. With that in mind, I got to work on making some intuitive mechanics, such as double jump with variable height, ground-pounding (under the guise of a bird launching air downward), and a flashy dive! I had created a player movement script for a personal first person project in the summer prior to starting this one which I ended up adapting to third person and using for this project. Furthermore I needed a way for the player to activate buttons - which is where the ground pound came from - and I ended up creating a script that I can use in different ways in the Unity inspector. Feel free to check out both the player movement as well as the groundpound activation scripts linked in the code examples! I am most proud at how this project is turning out, so if you want to see my current progress check out the video!

What I did: Player movement with variable jump height, double jumps, pseudo-ground-pound, and dive. Camera controller that avoids collisions and alternates between a rotation around the character when stopped to rotating the character when moving. A boss who tracks the player, animates, and shoots webs at the player based off of animation timing. A button system wherein the designer can choose what functions to use when the button is activated. Moving platforms where it moves to locations within an array and then reverses said array when it reaches the end. Aside from programming, I did audio work, lighting, 3D Modeling and animation, and level design.

Picture of a multiplayer game we made called 'Dodgeball'

Dodgeball: The Game

Github repo
Video Demo

This was my first foray into multiplayer game development. Under the concept of the Movie Dodgeball starring Ben Stiller, my group and I decided to bring it to life. Having never touched networking before, I was pleasantly surprised how I was able to accomplish the task of creating and maintaining a working network through the use of Photon. I was able to utilize RPCs in a such a way to communicate what was happening to each player so that each player could locally track the score of the game, whether they were out or back in, who threw the ball they just caught, etc. If we had a bit more time to nail the animations and overall look of the game I think we could have produced something more worthy, but the multiplayer skills I gained from being the lead dev on the project propelled my understanding further forward!

What I did: Lead developer working on player vs player networking, RPC control, instancing over network, the Dodgeball based "out" and "back in" systems, catching, team selection, starting the game once all players select a team, throwing physics and pickup mechanics, movement mechanics (based off of the original first person script I mentioned in the Henry section. Aside from programming, I was the lobby level designer and an actor.

Image of a state machine based game known as 'Rabbits'!

Rabbits

Github repo
Video Demo

Rabbits was the introductory project of the GIMM 400 class, where we brushed up on our knowledge of enemy AI via state machines. It was also where we met the team we would be on for the whole semester, wherein everyone would get a chance to many jobs from project lead to asset creation. It's also where I started to hit my stride in gameplay programming. I utilized the custom stencil shader as seen in Flynn's shown above, where the player and the enemy have vision areas to find carrots and pick them up for upgrades. This project challenged me in thinking of ways to give a strong sense of player progression while giving the AI a reason to exist outside of being an obstacle for the player. Not only do the enemies wander, they can receive upgrades just as the player can, making the game world feel more alive.

What I did: Lead developer having made the movement from both player and enemies, level up mechanics using state machines for both player and enemy, abilities for the player and the enemy, custom shaders for funny viewfinding, level design.

Picture of a multiplayer game we made called 'Dodgeball'

Boise Schools: VR Bus Simulation

Github repo unavailable at this time
Video Demo

The VR Bus Simulation project was the start of an ongoing attempt to create an experience geared towards kids with special needs within the Boise Schools education system. My role within this project was lead level designer. I created a close representation of the downtown Boise area through a greybox level marked with key buildings such as Wells Fargo, Key Bank, Grove Plaza and its surrounding businesses, Freak Alley, and more. I was not on the art team for this one so I was told to leave the texturing of the building to the folks responsible! In addition to making the buildings, I also developed a traffic system to give the space a little more life. I used Unity's build in navigation and agent system to create cars that moved along a road towards "checkpoints" and would warp back to the start once the track was completed. Each car was kitted with a collider to tell if it was too close to a car or an intersection which would then cause the car to come to a stop and wait until it was safe to go again. The intersections were put on a timer to simulate real life intersection light changes. If the lights that were representative of the direction a given car was going was in the STOP state, any car travelling in said direction would stop if its collider entered the intersection, giving the impression of a living and breathing road system.

What I did: Lead level designer for the space, implementing a greybox version of downtown Boise. Created a working traffic system utilizing Unity's navigation and agent system with custom intersection and agent behaviors.

Image of a state machine based game known as 'Rabbits'!

GIMM Studio: Quests

Github repo
Video Demo of Quest one Video Demo of Quest two

I was the dev team lead for the GIMM major's studio space, with a focus on a topic new to the space this year called Quests. Quests is the GIMM Studio but gameified. My parter, the art team lead, chose to make an introductory quest for incoming students. This quest was to be a scavenger hunt wherein the player would go to a classroom that represented a respective professor within the GIMM major and complete a puzzle to unlock an artifact. Once the player had collected an artifact for each professor they would have completed the quest! The unfortunate part of this project was how long it took to get off the ground. We wanted each professor to have their own space that represented them but it took a full semester to get answers from all the faculty on what they wanted. We then decided to merge with the Classroms group as it made no sense to make two versions of one classroom when the quest could just be integrated with them. This took a huge load off of the art side. Another fault that we experienced was having only one developer, me. It was okay in the end, I was able to focus up and complete two interactions in one semester that represented Professor Jack Polifka as well as our resident treasury/secretary/planner/GIMM Grandma Jeanne Hansen. Jack wanted his interaction to represent the idea that programming was a social activity instead of one taken in solitude. I came up with the idea to have a robot help put objects on a pedestal after the player does and once all the robot's objects are in the correct order the player would win the prize! It sounds simple after having completed it, but it gave me a lot of trouble. I originally thought to use a behavior tree for the AI, but after building one I realized I didn't know enough about it to implement it smoothly. I switched to a state machine AI and went through three different iterations of data transfer before I finally landed on one method that worked for me: using the pedestals to communicate with the robot, sending appropriate data that would help the AI govern what state it was in! That is just one of the interactions I made. It and the other one are available to view as a video demo linked above!

What I did: Team Lead for development in the quests space, pioneering a new ongoing project for the GIMM Studio space. Developed a state machine AI to interact with the world and complete a quest. Created a three-question finish-the-lyric type interaction in which the order was randomized for each player. Implemented a reticle behavior class that governed desktop interaction with the game world. Adapted each interaction to work in both desktiop and virtual reality.

Flynn's Minigame

Github repo
Video Demo

Flynn's Minigame is a small project that I developed from concept to completion in seven weeks for GIMM 350. I wanted to experiment with abilities and ended up making two: a gravity flip and a goo launch! The gravity flip ended up being the first thing I developed and ended up spending the most time on it. I chose to use the character controller instead of a rigidbody to handle movement, which made the process of tracking player gravitational orientation more difficult. In the end I know what I could have done differently but am proud of what I was able to accomplish in just seven weeks!

What I did: Created a gravity flip mechanic, a goo launcher that does massive damage to enemies, a way to collect currency from dead enemies, spending of said currency to buy different power ups and end the game, basic movement, animations and animation events, audio triggers. Aside from programming, level design, lighting, and audio.

Augmented Reality Personal Space Demonstrator

Github Repo
Video Demo

One of my favorite group projects was an AR app where you can test the distance of difference social spaces. The target audience for this app was kids who presented on the spectrum of autism and was a client project from Boise Schools. While the app didn't end up being published, I learned some incredibly valuable skills when programming an app with a group such as making sure my teammates weren't overworking themselves, commenting code in a way that I am not the only one who can read it, and managing a repo where everyone is contributing.

What I did: Set up a XR environment in Unity, score increase based on distance calculations, instancing of objects to denote correct distance.

My First Group Project

Video Demo

And now we come to the beginning. This was the very first group project I was a part of in my career as a GIMM student. This was also the first time I experienced a heavy crunch, and I didn't mind it much! We had learned how to implement state machines and ours broke the night before it was due. That night I stayed up until I finished rebuilding the state machine and went to work right after. It was a struggle but we were able to pull through and make something our entire cohort enjoyed! The presentation of this game always puts a smile on my face when I think back on it. Without this I wouldn't be where I am today.

What I did: Created states for the enemy state machine where the creature will flee and wander, created an objective checklist that updates once each area is cleared, had to rebuild the enemy state machine in the 11th hour, level design.





Here's a cool paper

Here's a cool paper



Image of my resume

Click me to see PDF





Let's get in touch:

Let's get in touch: