Also you should have an engine you are actually familiar with that is suited to your project. That's the most important thing, unless you want to sperg and write your own for years while you slowly go broke and die of hunger because you spend time writing basic features for everything.
The worst thing you can do in the middle of a project, besides scrapping everything and starting over, is switching engines and porting everything to a new one.
Graphics software depends on who the artist is and what he is used to. You want art to be made efficiently as that either translates to more time for coding (if you are a one man dev team) or into more art assets.
In general, avoid learning shit from scratch so for now pick tools you or the other people know instead of whatever some idiots online say is "bestest" according to their inner autist. They might be "bestest" when you have 5+ years of experience and a worked-out technique. Do you have 5+ years to learn how to use the tool to its full potential?
Your biggest challenge will be finishing the project and your obstacles will be limited funds (how long before we go broke?), feature creep/scope and unexpected shit that seems obvious in hindsight but you forgot about at some earlier stage when it was easier to implement/change it.
This sounds about right, but adding some extra comments:
By the sound of things, OP is not sufficiently familiar enough with the development process to be efficient, so OP should take extra care with research and extracting money out of said investor. If the intention is to jump into indie dev with limited knowledge, you will need a pretty serious backer in terms of investment (because it's unlikely you will be able to estimate costs realistically, or account for a variety of common pitfalls). If money is covered, then you can hire someone who knows the relevant engine to create what you want (maybe?).
Hardware & Software: both questions are fairly irrelevant simply because these are dictated by the type of software you are making.
Photoshop is basically the industry standard in texturing & 2D art, but indies will often use GIMP and a variety of other free software, so it's really about if you want to cough up money for the license or work using free tools.
3D modelling it's probably a bit more of a mix up and you can get by using Blender. I'm not sure about the 3DSmax options these days, but they're no doubt horribly overpriced.
Both things depend on whom is making assets, since if you throw someone experienced but has never used these apps, they will probably not produce anything useful making a pre-emptive choice moot.
As for going without an engine, the key to getting out a finished product is to take as many shortcuts as possible, so creating your own is out of the question. People who create their own engines number in the few and said few are unlikely to release anything in a timely manner. Indie development usually means a very limited budget, so go in with an iron fist and identify the fastest path to getting things happening. If you can beat out a prototype and get the attention of the public with it you have already won at life. Conversely if you are re-writing systems or writing boiler plate code then you are losing development time and money; using something like Unity or UE will be infinitely quicker for development, especially in regards to cross-platform games. Both are quite capable of producing a huge variety of games and help and libraries are abundant for these.
When you have a project that does more than vomit fire when you compile it, then you'll probably get by with public testing for compatibility. It wouldn't hurt to pick up a laptop or tablet (if those are part of your intended release targets, choose them wisely), but you'll never be able to cover the majority of hardware combinations either way.
The road is pretty long and not particularly profitable for most, so it's critical that you know every aspect of development before you start and why exactly your game is going to be more popular than the 2000-odd new releases on steam at any given time.