A Milestone

At the heart of Scout’s Journey is the loot system. Unlike Quake, pretty much every item in SJ is defined in the global loot table, even weapons, armour and medkits.

That heart now has a pulse. We managed to get around the last bug tonight and finally have a working loot system. I would say that is definitely a milestone.

We can now:

Define every item in the game with all its properties, including drop chances for that item by all the enemies, filenames for models and GUI elements, item type, rarity and other associated info, as a lootdef in the global loot table. There are 50 lootdefs already, and that amount might easily double eventually.

Run a weighted random selection (taking rarities into account) on the entire loot table or parts of it. In the blink of an eye, I might add.

Spawn or drop a randomly selected or pre-defined item.

Spawn enemies with randomly selected loot in their own inventory that they will drop when killed.

Have monsters pick up loot items (including the ones dropped by other monsters).

Transfer items between entities, add and remove items from entities, including inventory housekeeping on each entity and keeping track of stack sizes.

That’s pretty much the basis for everything else; looting and loot exchange is at the heart of the game. A usable CSQC-driven inventory and trading GUIs etc. look very possible now.