-
Notifications
You must be signed in to change notification settings - Fork 0
Visual components
While ProtoJam is not an asset library, it does include a small collection of visual resources and custom nodes to help you build your game faster.
While developing a level, it's often beneficial to construct geometry and items from a checkerboard grid material to help judge scale in relation to the player. To this end, ProtoJam provides two grid types in four different colors in addition to a shader you can use to create custom grids.
The model grid materials align their grid cells to the model's local coordinates meaning the grid does not shift when the mesh moves. Each cell is 0.25m. This is ideal for meshes intended to move like props.
| model_grid_dark_material | ![]() |
| model_grid_light_material | ![]() |
| model_grid_orange_material | ![]() |
| model_grid_placeholder_material | ![]() |
The world grid materials align their grid cells to the world coordinates meaning the cells will remain in place even if the mesh moves. Each cell is 0.25m. This is ideal for constructing CSG geometry with a consistent repeating grid.
| world_grid_dark_material | ![]() |
| world_grid_light_material | ![]() |
| world_grid_orange_material | ![]() |
| world_grid_placeholder_material | ![]() |
To create custom grids, make a ShaderMaterial with checkerboard_shader as its shader and modify the parameters as desired:
- color_a: The first cell color
- color_b: The second cell color
- cells: How many cells per meter
-
world_coordinates: Whether the cells will be in world space (
true) or model space (false)
Bobbing collectable objects up and down has been a common trope in games for decades. While not complicated to implement, doing so without causing adjacent items to bob in sync can be tedious. ProtoJam provides a custom SineBob3D component which can be used to bob a target Node3D without the hassle.
Simply add a SineBob3D to your scene, set the target node to whatever object you want to bob, and configure the speed and amplitude to your liking. Adjusting the phase_shift will control how out-of-phase adjacent target nodes are. It is recommended to place all visual components of a pickup under a Node3D and target that rather than targeting the root node.
Contributions are always welcome! Check out the contributing guide to get started.
Made with ❤️ for humans by humans.



