Shadowgate progress (And inventory deep dive)


Hi all!

It's been a little while so I thought I'd share an update on how Shadowgate PD is progressing. TL:DR, it's going really well!

In this devlog I will be diving a little deeper to showcase how the inventory system works in Pulp but before that, here's some headlines:

- We got to artwork complete on all of the rooms

- I got about half way through programming the rooms to work as they should

- I had a few folks test the game so I can already start working on tweaks that I didn't notice

- Then I took some time to develop the inventory and torch systems so we can get to a place where the first half is really playable

- Next step will be to crack on with the second half of the game with these new systems in place!

Overall I'm really happy with the progress so far. Zojoi seem happy and this process is teaching me so much about Pulp and game development in general. Now for some nerdy stuff...

Inventory system

Itsalive GIFs | Tenor

But how does it work? Well, it's fairly simple actually! 

First thing's first, I wanted the inventory system to be more like the Mac version where you have visual items rather than in the NES version where you have a list of item names (You can easily see these in a quick Googling of the different versions). I think the visual style is way more fun and engaging but in Pulp it couldn't be fully freeform so first, the inventory is divided into a grid of different shaped/sized items (The following is a super technical diagram of how the inventory area is divided):



But how does it work? Let me try and explain it in a simple way:

- First, when you pick up an item, that item is allocated to a variable "p_item_ToStore"

- Then a custom function is called to store that size/shape of item (call "store1x1inInventory" for example in a small item)


- This function checks all spaces in that size/shape and if one is "white" (empty) then it allocates the "p_item_ToStore" to that space/variable

- There is also the reverse where there's a "p_itemToRemove" variable which does the opposite if you're using up an item


- Another custom function is called that refreshes the inventory ("InventoryUpdate") which swaps blank space for the item in every slot (If the slot is taken) depending on which page of the inventory you're on. 

- And that's basically it! It's a fairly elegant solution to having an inventory that looks visual and feels dynamic. I won't show you the inventory full as it will contain spoilers (And my item pics need some work still...)

Again, I'm really happy with how the work is going and the game is really starting to come to life. There's lots more work to do in the second half of the game but a lot of it now is just knuckling down and brute forcing through the work. 

Wish me luck!

Thanks for reading,

Ollie

Comments

Log in with itch.io to leave a comment.

This was a really interesting read, and it’s very cool to see Pulp used in a way it’s not strictly designed for!


Can’t wait to play it :D