How do I find a trusted retailer to sell my games? Should it cost money to sell my game? What programming API's should I be looking to develop with that will encompass 2D and 3D desktop games? What do I do if I want to go mobile, the API's seem unrefined for beginners?
I know these are a little bit scattered questions, I'm just full of questions, I really want to make games.
How do I find a trusted retailer to sell my games?
Google is your friend, look for reviews, try to contact other people that use the service and ask questions. The internet is a very social place, if a retailer scams someone you will find it very easily. It's very easy to get a bad rep, very hard to get a good rep. Just do your research really, also make sure you protect (copyright) your game before submitting to a retailer you may or may not trust.
Should it cost money to sell my game?
YES! If the vendor / retailer is offering to sell it for free it's a scam. Why would they do work for you for free? Why would they spend their time updating their online catalogs? Why will they waste their money advertising and getting users so they can sell your game and not make anything? Sorry to say it but money makes the world go around and NOTHING is free, there's always a catch. You have to spend money to make money, even if it's commission or royalty based you MUST pay to sell your game. If you don't pay the retailer they will get their money somehow maybe by fudging your sales numbers and keeping a couple copies sales themselves, maybe never giving you a penny. NEVER EVER trust someone that says "Make money for free".
What programming API's should I be looking to develop with that will encompass 2D and 3D desktop games?
This is a much broader topic and the answer is "for what?" If you are looking to reach just windows platforms go with Direct X. Many will tell you Open GL is faster and they are right, unfortunately since Vista windows actively impairs the physical pipeline to the graphics card for anything that is not Direct X. "It's for security". Vista, 7 & 8 will actually make Open GL run slower than Direct X. On every other platform Open GL will be faster.
What do I do if I want to go mobile, the API's seem unrefined for beginners?
No. Not much else to say here, but the only way to cross between desktop and mobile seamlessly is HTML 5 / Javascript. The easiest way to say this is Mobiles are NOT pc's. That which works on PC does NOT work on mobile (in most cases) and vice versa. Android runs java and a lite version of Open GL that does not respond in the same way as Open GL for PC. iOS uses Objective-C (there are reports of Java soon but not yet) and a different lite version of Open GL. Blackberry uses Java and to my knowledge just simple custom API's that only apply to the blackberry platform. Windows Phones use C# and a lite version of Direct X 9 that has most of the same features as the PC DX9 but there are still some differences that can break major chunks of the game.
My Suggestion
For 2D games that you want the most portability with learn HTML 5 and javascript. For 3D games.... Well learn to do 2D first, the only really safe way to go multi platform with a 3D game is to hire an expensive specialized coder for each platform (in the range of $85 per hour) to build the engine wrappers for you or to license a big name engine that already does it (Such as Unity or UDK). Look into these license's VERY carefully before you just jump on board. They are a hell of a lot more expensive than you would think. The royalties add up, then your vendor royalties, paying the artists, devoting months if not years of your own time into the project and when it's all said and done maybe you get 10 - 20% of the sales... What if it doesn't sell all that great? Epic fail and it hurts... BAD!