Trailer created by Logan Young

Ah, Puck! (Demo)

Ah, Puck! is a wacky physics sim where you get to play as the hockey puck attempting to escape the ice hockey rink. All while avoiding angry hockey players and dealing with exaggerated physics. Slide, hop, and fling yourself across the ice to find the many different ways of escaping and unlock fun new cosmetics for the puck.

Genre: Hockey Physics-Simulator

Engine: Unreal 5.3.2, Unreal Blueprints, C++

Software Used: Jira, Github Desktop, Git LFS, Wondershare Filmora

Team Size: 5

Duration: Feb. 2024 - May 2024

Platform: PC (Itch.io): link to the demo

Postmortem

The development of ‘Ah, Puck!’ isn’t over just yet, but the journey thus far has been fun and insightful. A lot of lessons were learned after the messy production phase of “Kameran.”  Find the fun. Keep the scope honed.  Playtest playtest playtest. And we applied those lessons when we started pre-production on this game.

This was the first project that I co-designed and co-led, and I learned a lot from my partner (Sami Scigouski) and my team. However, the biggest hurdle I had to overcome was the leadership shift in our team. The team behind this project was the same team that was developing “Kameran” (excluding 4 members), with the leadership role being shifted to me and my co-designer, and the other team’s lead was also Ah, Puck!’s team taking a smaller role. So it took me a little while to adjust to having leadership responsibilities. Another hurdle I had to overcome was trying to keep up with both my designer and programmer responsibilities. I would get lost in prototyping, and I would forget that I needed to finish designing more elements of the game to give tasks to my art team. I’ve improved my process from this experience, both as a leader and a designer.

The major lesson I learned was that I personally couldn’t program for two different games with similar deadlines. I was overworked, which unfortunately led me to not give Ah, Puck! enough of my attention, especially when technical issues arose. Some of these issues included the save system not working in the built version of the game (which still doesn’t for some reason) and the physics not remaining constant between builds. I used to think I was like some sort of Superman when it came to programming, but this experience made me discover my limits. My appreciation for reliable help also grew from this, as being able to describe pseudo code to Sami for her to program small tasks while I tackle big ones lifted so much weight from my shoulders. 

The game was demoed at Miami University’s CCA Sparkfest (2024) and the Spring 2024 ETBD Student Showcase, and it was so exciting to see so many people enjoy playing the game. Two quotes that have inspired me were “You have something here” (Unknown, ETBD Showcase 2024) and “I never saw anyone who was playing ‘Ah, Puck!’ that didn’t have a smile on their face.” (Austin Mace, Sparkfest 2024). This quote from Austin has stuck with me the most. Not all games need a serious storyline or a boatload of mechanics. As long as people are having a good time while playing a game, then it shouldn’t matter how wacky or simple a game is. And this joy is what I hope to achieve with ‘Ah, Puck!’

Notable Roles and Duties

Game Design:

  • Co-designed the entire game concept using the MDA framework and served as its Co-Creative Director

  • Documented the game’s features and concepts within a Game Design Document

  • Communicated with Artists as to what models, 2D art, and style needed for the game

  • Designed the UI for the Customization Menu

  • Designed the UI for the Achievements Menu

  • Wrote Puck’s opening monologue

  • Assisted in pitching the game to investors

AI Programming:

  • Became familiar with the PaperZD plug-in to implement the animations of the 2D enemies

  • Used Behavior Tree and BlackBoard to implement the AI behavior and chase functionality

  • Programmed the Enemy AI attack system

  • Programmed the Zamboni by making use of a Spline system

General Programming:

  • Programmed the player movement and Fling-Shot ability

  • Programmed all gameplay-related functionalities (including the game timer, reset when goaled, timer for when doors open and close, player escape trigger, etc)

  • Implemented the Main Menu, Customization Menu, Achievement Menu and Pause Menu functionalities

  • Implemented the Save System to keep track of the player’s achievements and the currently equipped customizations

  • Optimized the visuals- making the graphics render 10 times as fast

  • Delegated some programming assignments to a designer and provided pseudocode to decrease development time

Game Design

It was February 3, 2024 at approximately 9:30pm, Sami Scigouski (and soon to be co-lead) and I were watching a Miami Redhawk home hockey game. We were bouncing ideas back and forth on what game we’ll be making next, all while making jokes about the hockey puck wanting to leave. Then a hockey puck slides from one side of the rink to the other. Sami says “There he goes” But at that moment, an epiphany came to me. What if that was our game? What if we made a game where you were played as a hockey puck trying to leave an ice rink? I pitched it to her, we bounced ideas off each other, and the concept snowballed from there.

My team and I knew we had 3 months to create a playable demo, and since our focus was spread across two projects, we opted to hone in on what features were most important to the game. To do this, we used this phrase as our anchor (and also our pitch): “You are a hockey puck, and your one goal is to escape an ice hockey rink, all while dealing with angry hockey players and exaggerated physics.” From this, we added the features of multiple escape routes, a “fling-shot” ability, and an achievement system. And to add to the exaggerated and playful tone, we threw in the idea of escaping on a zamboni and fun cosmetics.

Designing  ‘Ah, Puck!’ was an interesting challenge because there wasn’t anything quite like it at the time. We opted to make the game 3D, as we felt that would best capture the feeling of being a hockey puck. We also wanted the hockey players to be 2D, as it represented the puck’s view of the players being “flat” and as “marker board drawings.” The player needed motivation to escape, so we added a timer. We looked at games like ‘Goat Simulator’ and ‘Golf With Friends,’ but they didn’t exactly capture the mechanics and aesthetics of ‘Ah, Puck!’. So the first major step was to create a prototype to see if this concept was even possible. And, luckily, I was able to get one to work with Unreal Engine 5.3 (earlier versions couldn’t handle the physics).

The first prototype served as a great first step, but it didn’t capture the “fun factor” that we were aiming for quite yet. The movement felt stiff. The player didn’t feel the stress of being chased down by hockey players because they were too slow. And it was missing the “fling-shot” ability. So for the next demo, I aimed to put in the ‘fling-shot’ ability, tweak the player physics, and add more ways to escape. and add more hockey players. While I worked on that, the artists added textures and models into the prototype so we could also test the visual aesthetics of the game. We playtested this prototype at the Sparkfest event, and received a lot of good feedback for the future prototypes such as; the player needing more control of the movement, some of the sound effect could be annoying, and the game was a bit too easy.

In the last major prototype (showcased at the ETBD expo), I wanted to fix a few issues. The enemies still felt a bit clumped up and couldn’t keep up with the player. So I made two hockey players on each team have the fastest speed, two players have a medium speed, and two players have a low speed. This ended up creating a more tense feeling for the player, as the hockey players were on their heels. There was also an issue where players didn’t know what to do, nor did they know how to use the ‘fling-shot’ ability. So on the HUD, I added text at the beginning of the puck drop to inform the player of their objective, as well as adding text above the ‘fling-shot’ meter to inform the player how to activate it. The button-mapping for the ability was also changed from ‘Q’ to ‘Left-mouse button’ because it felt much better for players. There were concerns about the original red arrow not being clear enough, so an improved arrow indicator was implemented. And although the gameplay was wacky, we were still missing the key feature: Googly eyes. I attempted to make them using static meshes, but struggled to do so. Sami offered to chip in, and she managed to create them using a niagara particle system. Look at them go!

Other than working on the prototypes, I designed the customization and UI menus. I wanted to lean into the marker board style that we set out for, while also being simple to use. My sketch and the final product can be seen below! (The art was created by the art team). I also wrote Puck’s opening monologue, and its iterations can viewed below as well. This served as the main reference for Puck’s way of speech and future lines.