Cowpocalypse Devlog #2: Quest Turn-Ins, Currency, and Whispering Animals

  • mdo   Sergio
  •   Game Dev
  •   October 19, 2025

Today’s push was all about tightening the RPG loop and dialing up the atmosphere. I reworked how quest rewards are delivered (no more instant payouts) and built a dynamic “whisper” audio system that grows louder as you fix fence posts—then snaps to total silence the moment you finish. It’s a small set of changes that made the game feel more intentional and eerie.

Quest Rewards After Turn-In + Currency System

Previously, quests paid out the moment the objective flipped to Completed. That short-circuited the loop I want: finish the task, return to the quest giver, and then get paid. I added a lightweight currency manager and moved reward logic from the quest system into the NPC interaction flow.

Currency Manager

A tiny singleton tracks the player’s coins, updates the UI, and persists across scenes. Nothing fancy—just enough to support shops later.

Rewarding Only on Turn-In

Instead of granting coins in QuestManager.CompleteQuest(), the quest giver now handles it. When you talk to them, they look for any completed parent quest that hasn’t been rewarded yet, pay out once, and show completion dialogue.

On the dialogue side, I added a quick gate: if any parent quest is completed but not rewarded, the NPC calls TryGiveQuestReward() and plays the “quest complete” lines. Talk again and you won’t get double-paid because the quest ID is recorded.

Result: objectives now complete quietly, the hand-in happens face-to-face with the NPC, UI updates immediately, and the flow leaves room for future item/XP rewards and shop spending.

Whispering Animals: Escalation → Snap Silence

To make the fence quest feel unsettling, I added an ambient whisper loop controlled by an AnimalWhisperManager. It scales volume based on how many fence posts you’ve repaired. Early on it’s barely there; by the last few posts it’s pressing against you.

Smooth Volume Ramps (Not Jumps)

The first pass bumped volume instantly each time a post was placed—audible, but robotic. I switched to a coroutine that lerps from the old level to the new target level over ~1.5s to sell the sense of “time passing” rather than “parameter changed.”

Linear Progress Curve

I experimented with fancier curves but they dipped near the end and ruined the build-up. A simple 0→1 linear curve delivered the constant escalation I wanted.

Hard Cut at the Finale

The big mood shift comes on the last post: instead of a polite fade, the world slams to silence. No tail, no reverb—just gone. It’s jarring (on purpose) and makes players pause.

Combined with despawning the animals on completion, the moment lands with a weird finality that fits Cowpocalypse’s vibe.

What’s Next

With turn-ins and currency behaving, the next steps are straightforward: wire up a basic shop that checks SpendCoins(), start handing out items alongside coins, and keep leaning into small audio stingers to punctuate quest beats.


© 2026 YazdiLabs - All rights reserved.