Inspiration

One more swing, or enough stuffing to survive the reply? We wanted the chaos of a pillow fight to create real decisions. Pillow Wars puts tiny pajama ninjas in an oversized bedroom and makes their softest weapon the resource they must manage.

What it does

Fight across beds, ramps, and furniture with left, right, and overhead swings, a charged uppercut, guarding, temporary cover, and a throwable spare pillow. Hits build Daze, so later hits send a player farther toward the edge. The last dreamer standing wins a round; the match tracks first to three.

Attacks and blocks spend stuffing. To recover it, stop at a feather pile and restuff; moving or attacking interrupts the refill. Swing again, save enough to defend, or risk a pause while everyone else keeps moving.

How we built it

The hard part was making a bendy pillow feel like the thing that actually hit. In Unreal Engine 5.5.3 C++, the pillow follows an authored grip, swing arc, lag, and sag. During the active swing, the server samples four swept boxes along the moving pillow body across short time steps. It rejects scenery-blocked contact and repeat hits on the same target, then applies and replicates Daze and knockback. We used Blender and Python for asset preparation and scripts for editor tests. AI tools helped troubleshoot code, assets, and presentation; we checked the results in the engine.

Challenges and what we learned

Our first swing looked like a block being pushed forward. We reworked the grip and motion until the arc read clearly. A later loading flow reached the map while movement was still broken. Those failures taught us to pair code checks with footage and direct play: a registered hit still needs to look and feel like one.

Accomplishments we're proud of

Controlled Unreal editor checks passed 16/16 solo, 57/57 two-player, 12/12 same-machine 8- and 10-player PIE smoke checks, and 12/12 arena traversal checks. The larger sessions ran on one laptop; they are not separate-computer proof. We packaged a Windows v0.3.0 prototype and recorded solo Practice movement and swings in the executable, including the native stuffing meter falling 100 → 92 → 84. Custom source and the Windows prototype are available.

What the demo shows

The currently embedded video shows staged Unreal editor Practice clips of a dummy hit, miss, feather refill, and throw. It does not show a live multiplayer match. The packaged v0.3.0 solo Practice recording is separate and is not depicted in this video.

What's next

Run a complete packaged match and rematch, verify joining across two Windows computers, then capture an uncut two-player exchange and tune animation, sound, and balance with human playtests.

Built With

Share this project:

Updates

Submission history