This library contains multiple utilities that can be used to build games for Godot 4.x using C# language.
It is mostly targeted to 3D games using Isometric and Orthographic camera, even though parts of it can be used for any type of game. It also contains utilities for Shaders and in the future will contain scripts fpr Blender as well. My goal is to release as much as possible of the code base I use to develop games with Godot, except for the final games themselves.
As you can read in LICENSE file, this repository is licensed under CC BY 4.0, which means you can do whatever you want with this code, but please refer to my work by mentioning this repository.
I will gradually add more information and content to this repository, as long as I manage to dettach parts of code of my games, shaders and artwork. That's because a lot of what I build got not a clear separation of concerns, as it's sometimes just a prototype meant to be quickly made. Regardless, I will continue moving this stuff into this repository and adding documentation as much as possible.
Be aware the code API may change drastically from a commit to another, as the code is still very fresh and I can learn new ways to do things I wasn't aware before. I have been using Godot since September 2023, which means a lot of what is here is made by a beginner in that engine.
That's how I do it:
- Go to or create an
addons
folder in your Godot game project - In a terminal window, execute:
git submodule add https://github.com/marinho/isometric-3d-engine.git isometric_3d_engine
- Try using the C# scripts in your nodes (I will soon provide a folder "examples" with a playground level and some exemples)
This toolkit is agnostic about how one setup collider layers, but it's recommended to use them to keep the code clean. The list below is just a suggestion.
Layer | Name | Description |
---|---|---|
1 | Static | Default layer used for ground, decoration and other objects with no relevant interaction |
2 | Player | Used for the player body only |
3 | Enemies | Used for enemies the player interact with |
4 | Enemy to ignore | Invisible walls and other objects the enemies interact with but the player doesn't |
5 | NPCs | Used for non player characters (such as story characters) |
6 | Items | Used for collectable items |
For some particular nodes, we use groups to distinguish player from enemies, but for the future, we tend to replace either them by collider layers or properties.
- Player
- Enemy
Please bear in mind this repository isn't aimed to become a well refined community-ready project, as I mostly have no time for such. Therefore, go ahead and fork the repository and make changes for your own need, and in case you see it can be helpful to share, feel free to create issues and pull requests, but don't expect much of my response 😉