Development Environment Advise

I've been learning how to write my own little 3D Game Engine for fun. This is my current dev environment:

- OS: Windows 8.1 64-bit
- Code Editor: Vim
- Compiler: mingw-w64
- Graphics API: OpenGL 3.3+ (Not interested in DirectX)
- Input and Windowing API: GLFW
- Math Library: GLM

- Targets: Windows and Linux

I'm not sure how limited I am using a compiler like mingw-w64. The main reason I decided on using it was to support Linux as well. I'm aware some API calls might change depending on the OS.

I'm looking for experienced opinions on what I'm missing out on when compiling with mingw-w64. Questions like the following come to mind:

- Is multi-threading supported when compiling with mingw-w64? (still learning...)
- Is Game development with such a compiler even recommended or should I stick to msvc when targeting Windows? If so, can I continue using msvc on vim instead of the bloated Visual Studio? Hopefully I can stick to mingw-w64.
- Would the executable g++ is building run on another Windows computer without the user having to install mingw-w64?

..any further advise is greatly appreciated!

I just want to make sure I'm going down the right road, I'm really enjoying the environment I got setup.

Thank you very much!
Last edited on
I'm not sure how limited I am using a compiler like mingw-w64. The main reason I decided on using it was to support Linux as well. I'm aware some API calls might change depending on the OS.

You could try to learn cmake next. https://cmake.org/ cmake creates makefiles and/or IDE projects from a file called CMakeLists.txt. This lets a developer pick whatever IDE/text editor setup and compilers that they prefer for building your project. If only certain compilers can build your code, that is something you would mention in a readme file explaining how to invoke cmake.
When compiling on Windows you can run cmake-gui and use Visual Studio projects to develop the code.
When compiling on Linux you can run cmake at the command line to generate unix makefiles to develop the code.

- Is multi-threading supported when compiling with mingw-w64? (still learning...)

I know that TDM-GCC has builtin support of OpenMP if you check that option during installation. TDM-GCC is a derivative of MinGW-w64. http://tdm-gcc.tdragon.net/

- Is Game development with such a compiler even recommended or should I stick to msvc when targeting Windows? If so, can I continue using msvc on vim instead of the bloated Visual Studio? Hopefully I can stick to mingw-w64.

Yes, you can. Simply run the visual studio vars batch file before starting vim, and you should have access to the msvc compiler tools such as nmake and cl. You could also just start it from the visual studio command prompt http://stackoverflow.com/a/18792893/2607949 That is probably the safer way of ensuring the proper environment variables.

- Would the executable g++ is building run on another Windows computer without the user having to install mingw-w64?

Not without statically linking a few libraries. MinGW for whatever reason decided not to do that linking by default. TDM-GCC did however, so you could simply switch compilers. It is still MinGW based, so there are not any compatibility problems that I am aware of. TDM-GCC has just proven to me that it is far more convenient with sensible defaults.

Also, if you find yourself wanting to uninstall MinGW completely, GnuWin32 Packages is a great source for getting back all of the unixy commands that MinGW comes with. http://gnuwin32.sourceforge.net/packages.html
Last edited on
Hey Kevin thanks for the great answer, helped out a lot!
Topic archived. No new replies allowed.