A new version of the Inventory System is available with more multiplayer-related features. The Multiplayer Interaction Demo can now run in multiple modes, through two separate implementations of the Character scene: The simple character scene leverages the MultiplayerSynchronizer and can either let the client have authority and move the character, or have the client send inputs to the server, which then applies the movement logic server-side. A separate netfox character scene leverages the netfox addon to implement client-side prediction and server reconciliation.
Features:
Added a “drop all items” to the GGInventoryUI toolbar.
Added a GGAccessTestPolicy to the access manager for delay and failure testing of policies.
Added crafting to the main tour
Added crafting recipe collection
Added MyMultiplayerSpawner, which reads scenes from a directory to populate its auto spawn list
Added hotbar access policy
Hotbar tracks item when its moved around in the inventory
The GGInventory’s items_changed signal now supports batching
The GGInventory’s swap_items() method now atomic/emits a single items_changed signal
Added reusable MyItemDropHandler to drop items near character within configurable distance
Multiplayer Interaction demo character now includes two versions; A “simple” version, and a “netfox” version for client-side prediction.
Added Multiplayer Lobby demo; similar to the Multiplayer Interaction demo, but uses WebRTC with a lobby server that allows clients to join via lobby code.
Added window management examples to main tour
Added link to multiplayer lobby demo to main tour for web build
The main tour theme selector now uses the resource name as the theme name
Multiplayer interaction demo character can equip tools and weapons, with hotbar integration
Weapon types and item serialization enhancements
Bug fixes:
The inventory controller default action strategy handles touchscreen double-tap as double-click
Camera callback in physics process for smoother ux
Correction to sequencer action strategy method name
Correctly apply inventory search filter to inventory UI
Crafting component gdmaim enum compatibility
Disable project allow_hidpi and remove tour autoscaling via content_scale_factor due to issue with Godot’s drag-and-drop handling
Don’t export GGItemData active property
Don’t show sequencer’s save button on web
Adjust drag-and-drop order of operations to batch items_changed correctly
Drop filtered items compatibility with allow_gaps set to false
Enable access manager’s open access policy delay timer
Proper GGInventoryUI slot_scene handling when in list view
Inventory UI’s grid and list view allow for grid columns configuration
Correct architecture guide references to demos
Hide sort menu’s clip_text at label breakpoint
Inventory expirations updates item quantity via LUT
Fix for simple inventory UI support
Inventory transfer stacking strategy batches items_changed so items can unequip correctly during transfer
Inventory UI passes slot_scene to controller even when outside tree
Larger Multiplayer Interaction demo character client scope shape to avoid Godot 4.2.2 MultiplayerSpawner’s visibility regression issue
Main menu eats/handles inputs when visible
MDI Game UI allows interactions while inventory is open
Correct minimum inventory browse and transfer UI sizes
Correction to main tour overlay layer
Prevent dropping items from multiplayer interaction demo loot bag
Properly clean up access manager’s pending contexts
React to hotbar actions when button is released
SDI Game UI inventory browse UI focus handling
SDI Inventory transfer UI handles input events while open
SessionManager only reacts to server-side join/leave signals
Show WebRTC warning when in web mode
Open window with noopener option on web to preview separate Godot instance smashing ArrayBufferView
Splitting inventory items fills slots to the left, if the right side is full
Splitting items resets the TTL to item type expiration
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-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 …
I use an app called barrier. It allows you to share your mouse and keyboard with multiple devices. I use it, because I tend to have my laptop and Macbook sitting next to my PC, and it makes working across all devices very convenient. It’s a mix of a multi-monitor and multi-computer setup. Concept Your …
Any sufficiently large code base needs documentation. Documentation tends to come in all sorts of shapes and sizes. Among them are high-level architecture and design docs, class and method interface documentation, and inline comments to explain optimized or complex algorithms so the reader doesn’t have to parse the logic in their head (often, this is …
Inventory System v1.14 available
A new version of the Inventory System is available with more multiplayer-related features. The Multiplayer Interaction Demo can now run in multiple modes, through two separate implementations of the Character scene: The simple character scene leverages the MultiplayerSynchronizer and can either let the client have authority and move the character, or have the client send inputs to the server, which then applies the movement logic server-side. A separate netfox character scene leverages the netfox addon to implement client-side prediction and server reconciliation.
Features:
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.9 available
Another quick inventory system update. The Resizable Container Demo now includes preliminary support for controllers. Features: Additional bug fixes:
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 …
Share your Computer’s Mouse and Keyboard with your Steam Deck
I use an app called barrier. It allows you to share your mouse and keyboard with multiple devices. I use it, because I tend to have my laptop and Macbook sitting next to my PC, and it makes working across all devices very convenient. It’s a mix of a multi-monitor and multi-computer setup. Concept Your …
Generating documentation for GDScript
Any sufficiently large code base needs documentation. Documentation tends to come in all sorts of shapes and sizes. Among them are high-level architecture and design docs, class and method interface documentation, and inline comments to explain optimized or complex algorithms so the reader doesn’t have to parse the logic in their head (often, this is …