Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

defnotjoy

2
Posts
2
Topics
1
Followers
1
Following
A member registered 91 days ago

Recent community posts

Author: Joyce Shen

Posted: July 23rd, 2026

Part 1: The Problem

This week my primary task was implementing a reusable powerup system for War Pigs. Before this feature existed, every round of gameplay followed the exact same flow with no way for the player to influence the outcome outside of drawing cards. I wanted to introduce strategic gameplay while keeping the classic rules of War intact.

One challenge was making sure each power-up integrated cleanly with the existing gameplay loop. Some abilities modified the player's deck, others modified the enemy's deck, and others completely changed what happened after a round ended. Every powerup also needed to update the HUD immediately, activate correctly when the player pressed E, and avoid interfering with existing mechanics such as War rounds, deck counts, and card comparisons. If these systems were not synchronized correctly, players could see incorrect information or create invalid game states.

Part 2: The Solution

To solve this, I created a centralized powerup system inside the main GameMode using an enumeration to represent every available ability. The player can store one powerup at a time, activate it with the E key, and the HUD immediately updates whenever a powerup is earned or consumed.


Each powerup was implemented with its own gameplay behavior while still using the same activation system. For example, Recon reveals the enemy's next card before the player plays, Reinforcements moves the player's top card to the bottom of their deck, Sabotage performs the same action on the enemy deck, and Shield prevents the enemy from collecting the pot after the player's next loss by discarding the played cards instead.

In addition to the manual powerups, I implemented passive gameplay abilities including Hot Streak, Double Down, Battle Hardened, and Last Stand. These abilities automatically track gameplay conditions such as consecutive wins, completed rounds, or remaining cards and award bonuses without requiring player input. During testing I also discovered and fixed several gameplay bugs, including duplicate card reveals with Recon and ensuring Shield only activates after the player's next loss instead of disappearing after any round.

I then wrapped up by redesigned the gameplay HUD to better display powerup information. Instead of using a single text block, I separated the title and description into independent text elements, allowing different font sizes, colors, outlines, and word wrapping. I also added a temporary gameplay hint that teaches players how to activate stored powerups. These improvements make the feature much easier to understand while providing immediate visual feedback whenever a power-up is earned or used.

Overall, the completed system successfully adds strategic decision making to War Pigs while remaining modular enough for future powerups to be added with minimal changes. The feature has been tested across multiple full playthroughs, with only one known issue remaining involving the reset condition for the Last Stand passive ability.



Author: Joyce Shen

Posted: July 10th, 2026

Part 1: The Problem

 One of the biggest issues I needed to solve this week was replacing Unreal Engine’s temporary onscreen debug messages with a proper gameplay HUD. During development, the game relied heavily on “AddOnScreenDebugMessage()” to display important gameplay information such as the winner of each round, remaining card counts, and gameplay hints. While this worked for testing, it wasn’t appropriate for an actual game because the messages cluttered the screen, didn’t feel polished, and weren’t integrated into the user interface. This became even more noticeable as the gameplay loop became fully playable. Players needed immediate feedback after every round, but constantly displaying debug texts made the game feel like a prototype instead of an actual game product. Since the HUD is one of the primary ways players receive information, replacing those temporary messages with a proper interface became an important milestone before continuing with additional gameplay features. 

Part 2: The Solution 

To solve this issue, I created a gameplay HUD rather than relying on debug messages. I implemented a new widget class that became responsible for displaying all gameplay related information. The HUD now updates the player’s remaining card count, the enemy’s remaining card count, and the result of each round. Instead of leaving previous results on screen indefinitely, I also implemented a timer that automatically clears the round results after a short duration, so the interface always displays the most recent information. I also added a pulsing gameplay hint that appears when the match begins and automatically disappears after several seconds. These changes made the game feel much more polished and provided clearer feedback for players without cluttering the screen. As we continue adding new features, the HUD will also make it much easier to expand the game’s interface in the future.