Modular base for a first-person Godot 3D game with customizable interactive tiles and unique inventory mechanics.
Feel free to use as a starting point for your project!
Note
There's a newer version avalible at - godot-tile-game
Which uses a different, cleaner approach to tile customization!
- Interactive tiles system - with fully customisable behaviors (simple example)
- Unique inventory system - with smooth animations (details)
- Pixelation shader - for easy retro visuals
- Simple first-person controls
- Basic progression save system
- Clean signal-based code
Here's a very basic example of what you can do with just one type of custom tile behavior, this tile will destroy any objects that activate it:
Script to achieve the shown tile behavior:
extends Tile
func _on_just_pressed(object_pressing: Object) -> void:
object_pressing.queue_free()
$ActivationParticles.emitting = trueNote
Tiles store references to all the objects on top of them (which you can use for custom behaviors). But by default only one object at a time is considered to be the one currently activating the tile.
- Blue - no special effects
- Green - disappears after one use
- Yellow - saves the game
- Red - kills player & destroys items

You can store items in inventory by:
- Hovering & Clicking a hotkey
- Drag & dropping them in
All items stored in inventory will slowly float in a circle above the player.
As the player moves, the items will slowly follow them with a changeable delay.
You can hide inventory when its not active, to not abstract the sky view.
And you can lower it when you need to look at your items.
Tip
All 15 inventory parameters can be found & changed at the top of the /scripts/player.gd script.
- E - collect
- Tab - show inventory
- R - toggle inventory
- Lmk - drag
- Already handles the annoying stuff (item management, save system)
- Clean signal-based architecture (means easy extension and custom behaviors)
- All core systems are implemented and tested
- Easy to reskin for your own game
- Clone this repository
- Open in Godot 4.x (tested with 4.3)
- Run
scenes/demo.tscnto see the demo level
To create new tile types:
- Duplicate any of existing tiles from
/objects/tiles/or extend from the/objects/tile.tscn - Modify the assigned script to create custom behaviors (use signals provided by the parent object)
MIT - use however you want (credit appreciated but not required)



