Thanks for your replies!
To be honest, I didn't thought about using an open-source engine as a possibility. My main problem was actually with commercial engines that you can use, their binary version without source. Sure, their provide a plugin system, but in case that's not enough you get stuck and you depend on them to add/change what you want.
Maybe I had to be more specific in the title and in my first post.
Sorry if I've sounded like being "Superman" considering building cities. But, I admit that, as any beginner, when knowing almost nothing about what involves in programming a 3D game, I feel like I can do it or that is worth it.
But, this is why I came here asking for advice, to see what are my options, other than using a company's commercial engine, so thank you for your help with that.
Now that I'm thinking on using an open-source engine, it sounds like a very good idea, but I have 2 questions:
1. In order to be able to modify it to do what you want, you still need an understanding on how the basic stuff work under the hood, right? So, is it better for me to write small games without an existing game engine just to learn the necessary skills to use a better one in the future? Or, I could just try and use it without doing that?
2. I do not know too much of these open-source game engines, but from what I see in terms of rendering quality they are not that great. Why is that? Bad art, less powerful rendering engine, or both? Improving or rewriting a rendering engine to be more high-quality and close to its time, is still not a task for one person?