Let me preface this by saying I'm new to this site and forum, so I'm sure there will be loads of better advice from those that have browsed the site more as well as from those that just overall have way more knowledge on the matter buuuttt,
As far as Unity goes, Brakeys channel on youtube is pretty great lol It depends on the type of game you want to make as well. I have no experience with Unity as far as top-down 2d goes but Godot is really flexible and I believe Unity has a similar workflow for 2d. Unreal's paper 2d is relatively intuitive to work with as well. If you have no experience coding then both Unity and Unreal would be great to start with since they have blueprint style game creation (admittedly, unity is easier to navigate when new to the scene - from my experience at least xD). Unity is extended through C# while Unreal is extended through C++, Godot I believe uses it's own scripting language iirc (havent used godot yet) so if you are learning coding, that could also influence your decision.
As for other tools, I prefer GIMP and Blender for asset creation, texturing, sculpting, meshes and the like. What tools you use are up to you in all honesty though -> i.e. whatever you feel comfortable with and fits your workflow.
NOTE: for like 2d games and the like, GIMP, Tiled, SuperTiled2Unity, and Texture Packer provide a neat little workflow setup for asset creation and importing into Unity. <- personal opinion, super subjective lol
Unreal has a very well documented engine, unity is well documented too, but Unreal just looks and seems better documented in my opinion. Regardless though, both are really good; going forward make a basic, very simple racing prototype in multiple engines and see which feels best for you and go from there. Just like programming is about choosing a language best suited for the task, I personally feel it's the same for game engines where game design and creative/work flows come in.
Best of Luck Though!!!
Edit: Also, having a source control helps sooo much for working on updates without breaking the main branch as well as just in general having copies of files on a cloud based server and a local drive. I had a hard drive failure not too long ago and lost a lot of local projects that I hadn't pushed to Github; lesson learned here is whatever you change, push to a source control like Git or Perforce -> if its still a Work in Progress, just make a new branch that doesn't affect your main branch and so forth. Anyways this has been a lil wordy, sorry for that!