This is a question I have wanted to know for an extremely long time: how are graphics made? Not like tkinter and such where it is simple shapes but actual graphics like 3D video games? What program if any can you use for it? Any help is extremely appreciated.
They both do not cost anything as long as you're not making any money off of your game. Once you go over a certain amount of money that you're making, you must start paying for it.
Unfortunately, you can't use them on a mobile device as they are downloadable .exe files that you can get off of their website.
Quite the contrary! Both Unity and Unreal Engine are great at mobile development, and your own device can even be used to test your games. The only limitation is that you can't develop the games directly from the engine, only from a computer.
Unreal charges only based on your profit. First charge is when you make $3000 the next is insane AAA-level. IIRC, it's 5%. It's basically free for indies like us.
How graphics work is too complex, but calls are made to the system for drawing, usually through DirectX (Windows), OpenGL (Windows, Mac, Linux, FreeBSD), and the latest Vulkan (Windows, Linux). They provide APIs to make it easier than manually talking to the hardware and OS, though these are still pretty low-level compared to what engines like Unreal offer or abstraction layers like SDL, OpenGL is the sanest low-level API to learn, but people usually do so to make their own engines, tweak existing ones, or because they're masochists. It's better to use an engine. Unreal 4 comes with my vote for its pricing and beauty.