Cuphead: How the Unity Engine Possesses Extensibility and Renders the Illusion of a Playable Cartoon

Cuphead is a game that after several years of development and financial challenges, became a critical darling for its stunning hand-drawn visuals and difficult gameplay. The game was developed in the Unity engine, one of the most popular game engines for independent and AAA developers, where it featured a plethora of tools to help bring Studio MDHR’s vision to life such as the Sprite Renderer and 2D physics. The way the Unity engine contributes to the game’s construction falls in line with how Henry Lowood defines a game engine, which “encompasses the fundamental software components of a computer game. These components typically include program code that defines a game’s essential “core” functions, including graphics rendering, audio, physics, and artificial intelligence, although the components vary considerably from one game to another.” (Lowood 25) What Cuphead demonstrates is that Unity can be used to power multiple titles, regardless of their art style or genre, because it has more than enough tools to help accommodate a studio’s vision for what they want their game to look and play like. For example, if a studio wants to make a graphically intense and realistic first-person shooter, Unity has tools including but not limited to Ray Tracing, Particle Systems, and audio components to provide an immersive experience for players. On the other side of the spectrum, if a developer wants to create a simplistic puzzle game for mobile devices with a colorful aesthetic that is easy on the eyes, Unity features tools such as C# programming to ensure the puzzles function as intended, 2D animation and shaders to create an inviting atmosphere, and some UI-related tools such as Text Mesh Pro for implementing clean interfaces for players of all skill levels to understand.

The first part of Jackscepticeye’s Let’s Play series on Cuphead

In order for Unity to render the illusion of a game environment for players to move and act within, it varies depending on the type of genre a studio has the desire to make. For 3D games, having an open space for players to move around in, combined with responsive controls and visuals that convey all the necessary information and environmental subtext for players (i.e. What kind of terrain players are walking on, any points of interest for players to explore like buildings or landmarks, etc.) help create an environment for players to get lost in. For 2D games, having distinguishable foregrounds and backgrounds along with techniques like parallax scrolling can go a long way in giving players the sense that they are running around in an environment that feels tangibly real in the game’s universe. In the case of Cuphead, the latter approach was used with tools such as tilemapping to help map out each of the levels that players will be moving around in alongside layer sorting to organize which parts of the level belong in the foreground or the background. Additionally, the hand-drawn 2D animation makes the player’s movement that much more convincing and only adds to the game’s charm. These elements show how Unity is one of the most versatile game engines available as they allow developers to create believable environments for players to traverse through with the right tools and techniques.


Lowood, Henry, and Raiford Guins. Debugging Game History: A Critical Lexicon (Game Histories). First Edition, The MIT Press, 2016.