It’s been a while, but it was worth the wait. The latest version of the Inventory System is now available, with a long list of features, improvements, fixes, and documentation. This time the focus is on multiplayer. Let’s cover the features first:
Added a GGNetworkManager with pluggable strategies for ENet and WebSocket
Added a Multiplayer Interaction demo that works with ENet or WebSocket via the GGNetworkManager.
The Multiplayer Interaction demo can either trust the client for character movement or handle all movement server-side.
Added audio theme support to the inventory manager and inventory transfer UI
The main tour now has a fullscreen toggle button
The SimpleInventoryPersistence component now also supports JSON
Added a tabbed inventory UI
Added an inventory item filter strategy to allow for per-inventory item configuration without relying on the inventory access policy
Added ability to cancel pending contexts to the access manager component
GGUIManager now spawns new dialogs centered on screen
Added GameUI demo
Added access manager policy group logic for “any” and “all” combination of access policies.
Added dynamic inventory serialization strategy, which serializes item types and defers serialization of each item to the item’s script.
The multiplayer storage box reflects its open/closed state based on open access manager contexts.
The interaction demo now has a team-based access policy to show off team-based access.
The interactor/interactable components now have enter/exit range signals for proximity detection
The Inventory UI exposes ScrollContainer modes
The inventory UI now supports custom icons via theming
The multiplayer interaction demo character can browse their own inventory with TAB, or access other objects with E
The multiplayer interaction demo allows players to drop items individually, or collectively as loot bags
The multiplayer interaction demo’s dropped “loot bags” have expiration timers
The multiplayer interaction demo supports spawns random lootable chests
The multiplayer interaction demo supports saving and loading multiplayer games for the host
Added simple inventory drag-and-drop strategy that only swaps items
Bug fixes:
The abstract inventory controller implements get_item() for correct mouse, focus, and dnd signaling
Access manager cleans up await handlers, game UI concurrency locking
Access manager type hint correction when syncing with all clients
Access manager passes nonce, game UI rework to manage dialog state
Corrected a GGInteractor2D regression
Basic actions guide doc link correction
Rebuild inventory lookup table when assigning contents property
Click-to-pickup drag-and-drop strategy allows dropping while quantity modifier key is held
Inventory controller’s inventory_resized signal passes slot count
Correction to crafting; status UI shows crafted item until idle
Default action strategy only follows mouse focus when slot is focusable
Drag-and-drop correction: Don’t allow the same item stacking on itself
Drag-and-drop pickup with half-modifier correctly picks up 1 item from a stack of 1
Drag-and-drop strategy uses drag data’s actor property for client-side “preview” permission check
Drag-and-dropping item onto itself correctly restores control modulation
Ensure inventory is valid before refreshing slot
focus_control default focus gdmaim annotation
Single-dialog interface Game UI corrections
Game UI cleans up dialog if object vanishes
Handle inventory component’s stacking_strategy not set
Handle invalid drag and drop data on client after inventory is yanked
Handle multiplayer client leaving with open access context
Handle item transfer within inventory
Correctly update character label per Interactor signal
Inventory controller refreshes UI if inventory property changes
Inventory no longer erroneously sends contents to clients when host opens context
Multiplayer interaction demo visibility per peer works for all peers
Prevent duplicate game UI menus
Sequencer track properly builds LUT by calling parent ready method
Set theme for the WebSocket demo inventory manager
Transfer strategy stacking fix
Miscellaneous type hints and code doc blocks
The Inventory System Deep Dive and Architecture Guide helps game developers implement advanced multiplayer inventories using Godot Engine. The PDF Guide contains over 500 pages of code walkthroughs, diagrams, and explains concepts related to inventories, items, and more.
Godot Engine 4.0 has been released per official announcement. With version 4.0, Godot has gone through “3+ years of breaking and rebuilding from the ground up, a complete core overhaul and a full engine rewrite, through 17 alphas, 17 betas and 6 release candidates“. The announcement post is credited to “2000+ Godot contributors.” It’s a …
Right after I got my Steam Deck, I wanted to know how hard it is to get a Godot game running on it. What’s the developer experience for someone who’s stepping through this for the first time? It was really easy to do, so I’m sharing this here, whether you’re following along or like to …
Godot-matcha is an addon that lets you use WebRTC for multiplayer games by handling matchmaking using WebTorrent trackers. Conceptually it’s quite an interesting, novel approach. WebTorrent uses a modified BitTorrent protocol that allows it to work with WebSockets. A WebTorrent tracker is essentially a directory service that keeps track of torrents offered by users. A …
Inventory System v1.13 available
It’s been a while, but it was worth the wait. The latest version of the Inventory System is now available, with a long list of features, improvements, fixes, and documentation. This time the focus is on multiplayer. Let’s cover the features first:
Bug fixes:
The Inventory System Deep Dive and Architecture Guide helps game developers implement advanced multiplayer inventories using Godot Engine. The PDF Guide contains over 500 pages of code walkthroughs, diagrams, and explains concepts related to inventories, items, and more.
Related Posts
Inventory System v1.1 available
Hot on the heels of 1.0, version 1.1 allows for gaps in the inventory. This release also correctly bakes the release version into the PDF Guide.
Godot Engine 4.0 released!
Godot Engine 4.0 has been released per official announcement. With version 4.0, Godot has gone through “3+ years of breaking and rebuilding from the ground up, a complete core overhaul and a full engine rewrite, through 17 alphas, 17 betas and 6 release candidates“. The announcement post is credited to “2000+ Godot contributors.” It’s a …
Running Godot Games on Steam Deck
Right after I got my Steam Deck, I wanted to know how hard it is to get a Godot game running on it. What’s the developer experience for someone who’s stepping through this for the first time? It was really easy to do, so I’m sharing this here, whether you’re following along or like to …
godot-matcha: Free multiplayer without a server
Godot-matcha is an addon that lets you use WebRTC for multiplayer games by handling matchmaking using WebTorrent trackers. Conceptually it’s quite an interesting, novel approach. WebTorrent uses a modified BitTorrent protocol that allows it to work with WebSockets. A WebTorrent tracker is essentially a directory service that keeps track of torrents offered by users. A …