Gamasutra is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Gamasutra: The Art & Business of Making Gamesspacer
View All     RSS
May 14, 2021
arrowPress Releases

If you enjoy reading this site, you might also want to check out these UBM Tech sites:


Making Loot Drops More Engaging in Bunker Punks

by Shane Neville on 11/20/15 02:00:00 pm   Expert Blogs   Featured Blogs

9 comments Share on Twitter    RSS

The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.


A big part of my work on Bunker Punks over the past six months has been tweaking and tuning existing systems. Taking something that works and making it work better.

This past week, I revisited the loot drop system in Bunker Punks.

The Bunker Punks loot drop system is a basic loot table. Loot is picked at random from a list and dropped by enemy units, chests and other objects in the world. Every piece of loot has a weight -- a number that determines how likely that loot is to drop. A weight of 20 means the item will appear in the loot table 20 times. Each entity in Bunker Punks can only drop specific types of loot.  One entity might only be able to drop Ammo and Health, another only Weapons, Creds and Tech.


Simple. Right?

Right. But it’s also prone to generating loot that is less than engaging.

What if a Health pickup gets dropped and you have full health? Or perhaps you are almost out of ammo and a piece of Armor gets dropped? Not very exciting, is it?

In Bunker Punks, one of my main goals as a designer is to alway keep the player moving -- preferably moving forward. Loot is a key part of this.

After the loot gets dropped, it sticks around for a few seconds, blinks a few times and disappears. If the player doesn’t run in and pick it up, it’s gone. Every loot drop should be something the player wants. If they are low on health and see a Health pickup across the room, they’re going to run for it.


Keep the player moving. Keep them moving forward.

A completely random loot drop system doesn’t do this. It drops Armor the player is wearing. It drops Ammo when weapons are loaded. It drops Health when the player is fully healed.

Random was too random. It was time to introduce some logic to the loot table.


Of course, if every drop is Health exactly when you need it, the game becomes predictable. That’s not fun either.


The trick is to make drops appealing without being predictable. In order to keep a sense of risk and reward with the spawning of every drop, there needs to be a sense of randomness.

In the new system, when a drop is spawned, the spawning entity polls the state of the game and drops the correct drop.

It will never drop Armor the player is already wearing.

If the player’s health is full, no Health drops are spawned.

If they are running low on Ammo, the Ammo drops are added to the loot table twice. If they are REALLY low on Ammo, they’re added a third time.

The chances go up, but nothing is guaranteed. Randomness is still in play, but it’s random with intention. This creates an added benefit in a roguelike such as Bunker Punks, especially for speed-runners and master players.


If you keep your health and ammo topped up, you’re more likely to get economic drops like Creds. With more Creds, you upgrade your bunker faster and better optimize your build for the run you’re playing.

The new loot table logic is a big improvement over the old one. During playtests, players are moving more -- and moving forward more. And that’s been the goal all along.


Related Jobs

Brightrock Games
Brightrock Games — Brighton, England, United Kingdom

Unity3D Programmer (Remote)
Square Enix Co., Ltd.
Square Enix Co., Ltd. — Tokyo, Japan

Experienced Game Developer
Yacht Club Games
Yacht Club Games — Los Angeles, California, United States

Mid-Senior Gameplay Programmer
Grove Street Games
Grove Street Games — Gainesville, Florida, United States

Systems Engineer

Loading Comments

loader image