top of page







Esophaguys is a capstone game from a team of 5+ that is still in development. I worked on this game as a programmer and designer from its concept to the first demo for 10 months. Click here to give it a try!

My main responsibilities included all programming features, but for my portfolio I'd like to highlight my prototyping of the player controller.


The main concept behind Esophaguys is the ability to control an old man's neck and use it in all sort of silly multiplayer settings, such as sports or performing activities in the form of mini games.

Having decided on a 4 player local couch game we came up with a variety of mini game concepts in which players cooperated or worked against each other using their neck mechanics. 

The main mechanics we settled on as a basis for our minigames were Pick up and Swing which derive from the same Biting action and make use of maneuvering the neck.





Due to the wackiness of our pitch, my main concern as a programmer at the start of the project was to prototype our main mechanics in the form of a retractable and swingable neck. 
Here's a breakdown of the steps I took!

  1. Joints​

The first step was to test out the most basic version of a rope-like object. A chain of joints that rotate around each other with some amount of restriction. This was quite an expensive solution in comparison to drawing the neck from point A to B, but it contributed to our priority for engaging physics interactions.

​  2. Rendering

The intended look for the neck was as simple outlined rectangle. I generated a mesh along the chain of joints and wrote a lit shader that repeats a texture along its Y axis. 

  3. Maneuverability

After having a functional and rendered neck I started adding the player's actions, starting with maneuverability. This took the form of moving the neck and having it elongate while being moved. With the rendering and joints working together, this was as simple disabling/ enabling the chain of nods according to the player's input.

As an extra visual effect I used the texture property of the neck shader to animate wrinkles according to the neck's length.

  4. Swinging

Having attached the neck to the player's body controller, all that was missing was the biting action and its secondary mechanics, starting with swinging. While overlapping a "swingable" object and biting it, the player's movement behavior changes to allow for Tarzan-like swinging from trees and other objects.

  5. Picking Up

The second derivative of biting is picking up objects of different uses such as a racket or another player. This happens when the bite overlaps a "Pickable" object.


I really enjoyed coming up with solutions to bring our concepts to life, but the reality is that these steps were not approached in a straightforward manner at first. From this example, and many others contained in this game, I learned to structure my plan of action for implementing features with as much forethought as possible, making sure to allocate time to all responsibilities.

bottom of page