HandmadeMath
cglm
Our great sponsors
HandmadeMath  cglm  

3  12  
949  1,695  
2.0%    
10.0  6.1  
4 months ago  21 days ago  
C  C  
Creative Commons Zero v1.0 Universal  MIT License 
Stars  the number of stars that a project has on GitHub. Growth  month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
HandmadeMath
 Matrix multiplication in C

mgmath  Header only vector/matrix math library
HandmadeMath does that for example, so you can take a look at how they've done it: https://github.com/HandmadeMath/HandmadeMath
cglm

converting a vec4 into a mat4
It's too bad you are using C. If you were using C++, you could use teh fantastic GLM library, which implements the vector math stuff from GLSL as CPU/C++ code. you might want to have a look at CLGM: https://github.com/recp/cglm

Matrix multiplication in C
But you can use cglm, it will do looooong way.
There's cglm, but I don't know how good it is. Really though for hobby OpenGL stuff, it's going to be 3x3, 4x4, 1x4 matrices, so rolling one's own stuff is not that terrible, if it proves to be a bottleneck (probably won't), you can drop in some fancy SIMD bullshit later.
 Portable SIMD library

In what way should I write a matrix library for my OpenGL game?
There is a cglm: repo

I want to make a game for Linux. Where do I even start?
GLM and CGLM should probably be mentioned as well since you'll probably want a good linear algebra library if you are going with just a rendering library instead of a full game engine.

GLSL like header only math library I made for C. What do you think about it? I am using it at work (3d image proc. & robotics) and for some hobby projects (games, etc.)
Another nice library is https://github.com/recp/cglm. It uses manually vectorized code (SSE2), so the vectors must be aligned. It would be interesting to know what the compiler can do with auto vectorization, in compersion.
What are some alternatives?
GLM  OpenGL Mathematics (GLM)
linmath.h  a lean linear math library, aimed at graphics programming. Supports vec3, vec4, mat4x4 and quaternions
raylib  A simple and easytouse library to enjoy videogames programming
plutovg  Tiny 2D vector graphics library in C
simd_utils  A header only library implementing common mathematical functions using SIMD intrinsics
sse2neon  A translator from Intel SSE intrinsics to Arm/Aarch64 NEON implementation
Mathc  A simple and clean, glsl like, math (linear algebra) header only library for C.
deka  Haskell decimal arithmetic
Box2D  Box2D is a 2D physics engine for games
Torque3D  MIT Licensed Open Source version of Torque 3D from GarageGames
bgfx  Crossplatform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
haskelligraph  Haskell bindings to igraph library.