I know there are like hundreds of these questions but none answers me. I'm NOT a beginner in programming. I've worked in C,C++,PHP. So far, I've used 2 engines. Allegro(library) and Unity. I'm familiar with allegro. Although, i do not want to continue it since i cannot make a career out of it and its not strong enough. Unity, well i think it sucks. It gives me a "noob" kinda feeling. You gotta just drag-and-drop everything and use pre defined tools with little coding work(i do not want to start a 'Unity vs other engines' war. Its just my opinion).
I need something which needs more coding effort with less "software" like feeling. The genre i'm looking forward to is FPS or TPS and platform is PC. Its non-mmo. Graphics doesn't matter at all. It would be awesome if its C/C++ based engine and FREE.
Take a look at Ogre. I would disagree on Unity, though. The only way it's easy is if you use pre-written scripts. You will need to write plenty of code to make a game other than a mod of something that is already around. The editors save a huge amount of coding, that's true, but it's only placement coding and model loading.
If you're looking for something that's designed for programmers and feels less like canned game maker software, then I think you would like the C4 Engine. It's entirely based on C++, it's aimed toward FPS games, and it runs on PC, Mac, and Linux. The only one of your criteria it doesn't satisfy is that it's not free, but you get lifetime updates after purchasing a license.
UDK or CryEngine might suit your needs, or C4 (recommended above) might be suitable. You could also have a look at Irrlicht.
Personally I would suggest that you're wrong about Unity though -- it's a tool like any other, and can be (and is) used to create professional quality video games. Allegro is also perfectly capable for appropriate projects. Successful professionals use whatever languages, tools and engines allow them to get the job done. "Thinking it matters that you're using 'real' languages and 'real' tools" is #2 on my list of 4 reasons you aren't a successful indie developer. If it's really just your personal preference you should do what you wish, but don't feel you have to choose "less noob" tools or engines. Remember that players don't really care how games were made as long as it doesn't negatively effect them -- a rough installation process or similar -- they just care that it's a good game.
Hope that's helpful!
Sorry for double-posting, but you could also try Torque 3d which has recently been open-sourced. You can find the engine here, and documentation here. It's provided under an MIT licence, and is very similar to the formerly commercial packages.