Vertical Slice made for the CMPM 171 class at UCSC, Winter 2024.
This vertical slice was made possible thanks to Akhror Rakhmatov, Daniel Do, Ernani Raffo, Jentsen Maniti, Jordan Reavis, and Lukas Licon.
The game is available to download for macOS Intel-64bit, macOS Silicon, and Windows 64-bit computers at the link: Crabity releases. Please download the zip file from the latest release. The latest release will have a green logo marked as "Latest". Lastly, uncompress the downloaded file and play the game!
Below is the trailer for our Vertical Slice and upcoming CMPM 172 game: Crabity!
Crabity TrailerOur game was designed under the following externally imposed constraints:
Requirement: the game needed to be completable even when simulating vision limitations such as constrast and color sensitivity.
Team's design:
Requirement: the game must be completable by a player using just one hand of the controls at a time.
Team's design:
Requirement: the game must be completable by a player who cannot hear any sounds from the game.
Team's design:
Requirement: during a completion run of the game, gameplay should always reach a natural resting point within two minutes of active play without the player needing to take an extra action to pause the game.
Team's design:
Requirement: the game must support two different written languages. At least one language must use either a logographic script or a right-to-left script.
Team's design:
Requirements:
Team's design
First, Jentsen and Daniel began our rapid prototyping in Minecraft; with the quick installation of the mods Freecam and Gravity Changer, we were able to create a basic prototype of what would be our game.
We quickly noted that by changing the gravitational axis, the controls of the game can feel a bit challenging to understand. Thus, we made sure to keep the controls the same regardless of the gravitational axis which helped alleviate player confusion in future builds.
Lukas was also able to generate a quick idea of what the camera switching would look like in Unity using primitives. This first introduced the idea that players would ONLY be allowed to move left and right.
However, we weren't completely sure if the snappy camera movement was exactly what we wanted.
Ernani generated another prototype revolving around smoother camera rotations. This ended up being the main script that we used in our final build. At the same time, he was able to use Github actions to auto build our Unity prototypes; this allowed us to expedite and test our games faster on our site compared to having to manually build the game over and over again.
Lukas also created another protoype that centered around the idea of pushing objects onto a platform to reveal new parts around the level. This opened the door for the idea of secret passages and easter eggs. However, this ended up being a bit confusing for some players as we saw during playtests they weren't sure exactly what to do with the spheres. Also, the rigid bodies on the spheres made it difficult for some players to guide around.
Jentsen was working on a seemingly 2D prototype for the gravity mechanic we wanted to include in the game. At this point, the x, y, and z rotations of the player object were not locked, allowing players to realize that this was actually a 3D game viewed through a 2D camera. This unlocked a plethora of new level design possibilities for us to explore in the future.
Afterwards, Jentsen quickly threw multiple aspects of our prototypes together and we ended up with the base for our mechanics in our final prototype.
But there were bound to be a few bugs while we were developing the game.
Lastly, after adding some free assets from the asset store, we gradually began crafting the narrative of the game. Jentsen noted that he came up with the idea of centering the story around a crab, as they are known for primarily moving left and right. With a few more assets, we decided to pursue our initial idea of a steampunk environment for the robot crab to explore, seeking objects that would enable it to survive in the ocean like a real crab. Finally, the game was starting to come together.
Our team was able to divide and conquer the work in a way that allowed us to work on our strengths and learn from each other. Here are the main contributions of each team member:
"I worked on the main menu, options menu, some of the sound as well as the background music. I was able to create the background music from scratch using Native Access's Maschine DAW. The main menu was created with the intention of making a menu that's not too basic and fits into the same theme and genre that the game is played in. The options menu continues on from that same menu. I also implemented the sound effects for the platforms and the player's movement."
"I worked on level design that involved intricately integrating the mechanics of camera rotation to create cohesive and engaging gameplay experiences. I also developed the key and door logic to follow the player once collected and to then enable the exit to be accessed. Additionally, I contributed to designing and delivering a total of four presentations with slides that showcased Crabity's ten week-long development and progress stages. During the final week of designing and developing our vertical slice, I put together a vertical slice shortplay trailer along with its longplay video component that emphasizes Crabity’s in-game experience. Lastly, I came up with Crabity's main concept of a puzzle-rotating platformer game. I essentially catered all of my contributions towards the visual, polish, and game feel side of Crabity."
"I worked on the camera rotation mechanic and contributed to prototyping player movement. I contributed into the deployment process of our game, as we wanted an easy way to automatically create builds through Github actions that published the game on our site. I also contributed in level design, specifically levels 2 and 3, to create a fun experience for the player. Lastly, I worked on integrating Unity’s Localization Tool to make the game playable in both English and Arabic."
"I was the Co-Design Lead as well as the Production Lead! For level design, I worked on Level 1, but my primary focus was on the game's core mechanics, such as gravity shifting, restricted side-to-side and situational up and down movement, as well as reworking the camera rotation to prevent motion sickness. Additionally, with the use of a few simple mathematical equations, I was able to make the movement feel snappy and responsive. Furthermore, I implemented the fading object shader that our game uses to allow players to see inside the level. I also worked on a large portion of the game's debugging. For production, I ensured that our team stayed on track by implementing Notion into our workflow. This allowed us to easily keep track of what was being worked on and by whom. After listening to players' feedback during playtests, I helped alleviate confusion by adding a minimap to indicate level orientation. I also ended up working on the fading audio when the player stops moving. Lastly, I was largely responsible for maintaining the aesthetic of the game by importing assets and creating the environment and narrative."
"I worked on the in-game dialogue system as well as coordinating in-class playtests of Crabity, collecting and passing along user feedback collected via Google Forms to the rest of the team. Additionally, I assisted Ernani with localization efforts by ensuring the dialogue system was available in both US English as well as Arabic. I also assisted Daniel and Ernani with creating and delivering end-of-sprint presentations detailing the development status of our game throughout the quarter."
"I worked on the pause menu and various UI aspects of the game. I also added assets and level design to puzzle 3 to make it look interesting artistically. I built a lot of pipes from scratch to make a level that would be fun to play from multiple angles. I made sure the pause menu could be fully accessible using one hand through hotkeys such as 1, 2, 3, and 4 for resume, menu, restart, and exit. I also implemented audio control, mute, volume slider, and UI assets. I also did bits of debugging to improve the overall functionality and polish of the game."