I work in games middleware and we mostly use float32, that doesn't mean we care about what is the default of an unspecified type.
The game industry really dislikes unspecified sizes, and therefore will systematically use an explicitly sized type, which means, Nim's float32. And typedef it to mycompany_float if the company culture has it this way (quite common). Personally I'm a big fan of boost/integers [https://www.boost.org/doc/libs/1_67_0/boost/cstdint.hpp](https://www.boost.org/doc/libs/1_67_0/boost/cstdint.hpp) inspired by C99 standard IIRC (uint8_t family). So again, no room for platform specific variability, we stay in explicit control of the sizes. Note that in C, nothing is guaranteed about types's sizes: the only thing that the standard says, is the relation wrt their sizeof. More explicitely, it is guaranteed that sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(x*) <= sizeof(long). And sizeof(char) is 1 by definition. But nowhere it is said that int must be the natural platform word size for example, that's an urban legend. Back to games and stuff, we also use half floats (16 bits floats), 10bits floats, and 11 bits floats (for R10G11B10A2 format); as well as fixed point precision with custom quantization of specific values, like depth in a shadow map, or particles data that must be heavily compressed.
