##Why I am sharing this Hi, I have decided, after being done trying to fix or improve my code on this little project, that I would share the way I did it in the hope that it could help someone in godot's community a little bit.
##Why am I sharing it like so I personally miss the older tutorials that were all written in text where even if some had videos the thread itself was complete and explained everything in understandable details. So I have decided to make this a written tutorial. If requested, I will make a video of it and add it to this thread in the future.
##Who helped me on this I would like to start off by thanking these amazing members of the community for helping me out on the questions I asked related to this project here on the forums: - cybereality - Helped me out a ton with making me understand that I didn't need multiple arrays and getting the mouse's world position. - xyz - Explained to me how to modify materials and sub-materials
##Setting up the scenes First off, please note that you can modify everything here to fit your scene hierarchy as needed. This is the setup I was using because I did not need anything else since I didn't plan on creating a full game with this. I am simply used to making my hierarchy this way.
##All the steps: Create a Spatial Node in your scene named Game and a Second Spatial Node named Map with Game as its parent. Then create another Spatial Node child to Map named UndergroundBase.
###Game: I was planning on making a UI at the time I made this project, but ended up simply doing this system instead for the time being, so the reason why Game is there in the first place was so that I can have scripts running the whole game.
###Map: This is where I deal with the grid stuff with a script. Create a script on Map and name it Map. (I know I'm really good with script names :) )
###UndergroundBase: This is where I store the tiles simply to keep everything a little more clean.
After you have created these nodes, create a new scene named PlayerCharacter.
In this scene, create a KinematicBody node named PlayerCharacter, a Spatial Node named Pivot child of PlayerCharacter, a Camera Node child of Pivot, and a Collision Shape child of PlayerCharacter.
Like so:
###PlayerCharacter: Keep everything default on the KinematicBody. We simply use this to move around. Add a script onto it called PlayerController. We will come back to the scripting in the next section.
####Pivot: Keep it on all default values.
####Camera:
Set the camera's Transform to: (Feel free to adjust to your preference.
Make sure the camera's projection is set to Perspective.
####CollisionShape: Set the shape to SphereShape. The rest can stay default.
This is it for the setting up. Feel free to adjust the PlayerCharacter's position to your liking as well as any values you see fit. I am simply sharing it the way I did it.