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 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 …
Godot’s resources are quite powerful. However, modifying a resource class doesn’t automatically update any corresponding .tres files, unless you happen to edit a scene that uses that resource in some way. This doesn’t impact runtime behavior — the game still runs as expected. But it can impact version control and result in a messier diff …
Once I found out about the Steam Deck’s Desktop Mode, it got even more interesting. Steam Deck’s Gaming Mode vs Desktop Mode You see, the Steam Deck defaults to an analog of Big Picture mode on PC. It runs full screen in “Steam Deck gaming console” mode. But underneath all that is a Linux system …
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.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
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 …
Update all resources after modifying a resource class
Godot’s resources are quite powerful. However, modifying a resource class doesn’t automatically update any corresponding .tres files, unless you happen to edit a scene that uses that resource in some way. This doesn’t impact runtime behavior — the game still runs as expected. But it can impact version control and result in a messier diff …
Godot Engine on the Steam Deck – Developing games on the go?
Once I found out about the Steam Deck’s Desktop Mode, it got even more interesting. Steam Deck’s Gaming Mode vs Desktop Mode You see, the Steam Deck defaults to an analog of Big Picture mode on PC. It runs full screen in “Steam Deck gaming console” mode. But underneath all that is a Linux system …
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 …