I've been starting to learn about OpenGL and other Graphics Libraries and I've been noticing tutorials and people using "_tmain" instead of main. I have searched and all sources are vague and incomplete.
What is the difference and which/when should I use them?
You should always use int main() or int main(int, char**) (or an equivalent) unless you have to. In other words, if you have to drink a particular vendor's kool-aid.
Only those signatures are valid. I believe that _tmain (and WinMain, is _tmain a macro?) are artifacts of the NT kernel, e.g., of Microsoft.
Similarly, on some platforms (especially freestanding ones), it doesn't make sense for main to ever return, so you'll end up with code like void [[noreturn]] main() { ... }, or on some Unix-like machines you can get to the environment variables by writing int main(int argc, char **argv, char **envp) { ... }, but still, only the first 2 are standard.