So my main question is that why alot of you use API/libraries like directx/opengl/sfml/allegro/sdl/xna and etc to make games rather than use an engine like unity/udk/troque? Doest using an engine make game dev a lot more streamlined and easier than using an api? What are your reasons?
If I were to make a 3D game, I will definitely use an engine like Unity, UDK or Torque. Developing a 3D engine myself as an indie developer is complete waste of time.
Many people who come to this forum underestimate the amount of work it takes to write an engine from scratch, and would say things like "I am going to make a full 3D MMORPG/RTS/RPG/FPS and I will write my own engine from scratch". Most give up after a short time. There are those who make progress, but I see a lot of abandoned projects.
For myself, I don't do 3D games. I do browser games. And I use libraries and engines whenever I can to cut down development time. We're game developers, not software engineers lol.
I used to use Adobe Flash, which makes it very easy to churn out games. Now, developing HTML5 web applications, I try to use Javascript engine whenever possible but because the technology is so new, there isn't anything as versatile as Flash yet. Most HTML5 engines are for platformers and physics based games. There are engines like Construct 2 but they are aimed at non-programmers and quite a hassle to use for programmers.