a special mention. MathEngine's user guide for Karma gives a thorough, although dated, introduction to dynamical simulation for entertainment purposes.
You can still pull it from UDN at https://docs.unrealengine.com/udk/Two/r ... rGuide.pdf (from https://docs.unrealengine.com/udk/Two/K ... rence.html) and if not I think I should be able to upload it.
It does not explain how to write your own engine, rather it provides in-depth discussion of many topics and algorithms still relevant today, detailed glossaries, architectural details, and a long list of references in the bibliography section. You can also observe its parlance of the words farfield and nearfield, contrary to broad-/narrowphase which the community seems to have settled on today.
- Broadphase: Incremental SAP
- Narrowphase: GJK, discrete
- Solver: Force-based Lagrange multiplier method implemented by an iterative LCP solver called "Kea"
- Tuning: Epsilon (constant added to matrix diagonal for improved convergence) and gamma (Baumgarte) parameters which I believe are equivalent of ODE's CFM and ERP