Skip to content

Instantly share code, notes, and snippets.

@NicknEma
Last active May 26, 2025 23:01
Show Gist options
  • Save NicknEma/25ee060b156452537323dd8d4771b185 to your computer and use it in GitHub Desktop.
Save NicknEma/25ee060b156452537323dd8d4771b185 to your computer and use it in GitHub Desktop.
Programming resources

Programming Resources

This list is a collection of blog posts, videos or stream reuploads that in some way or another have been useful for my programming.

Mindset and Experience

Two blog posts discussing how a typical C programmer and a typical C++ programmer approach the same problem, and the implications that those styles have in regards to program correctness (in part I) and efficiency (in part II).

Is a certain programming language expressive enough for your needs?

On a Handmade Hero stream, a user asks Casey why he doesn't use C++ "smart pointers". Casey answers by talking about how becoming a better programmer is tied to your ability to think about systems rather than individual elements. Smart pointers are, then, only necessary until you improve as a programmer and get past that phase that we all go through.

The game loop

A chapter in a book about game programming, explaining the basics of the game loop.

This game engine devlog explores various solutions to the variable framerate problem, and explains the reason behind the author's final choice.

An explanation and implementation of a fixed-duration timestep, building up from the naïve solution to the more robust one.

A blog post explaining a multi-threaded solution for the problem of monitors having different refresh rates.

A blog post that goes over the reason why many games stutter despite having a stable framerate, and why the problem is unfixable given the current graphics APIs.

A video version.

About double-buffering, triple-buffering and the window compositor.

Unity developers explaining a change they made to how Time.deltaTime is computed.

Rendering

A website containing articles explaining shaders, the math of transformations, colors.

Collisions

Topics covered:

  • Minimum Distance between a Point and a Line
  • Minimum Distance between a Point and a Plane
  • Intersection point of two line segments in 2 dimensions
  • The shortest line between two lines in 3D
  • Intersection of a plane and a line
  • Equation of a plane
  • The intersection of two planes
  • Intersection of three planes
  • Equation of a line in polar coordinates

Topics covered:

  • Point/Point
  • Point/Circle
  • Circle/Circle
  • Point/Rectangle
  • Rectangle/Rectangle
  • Circle/Rectangle
  • Line/Point
  • Line/Circle
  • Line/Line
  • Line/Rectangle
  • Polygon/Point
  • Polygon/Circle
  • Polygon/Rectangle
  • Polygon/Line
  • Polygon/Polygon
  • Triangle/Point
  • Object-Oriented Collision
  • Matrix Transformations

Topics covered:

  • Circle/Edge Collision
  • Circle/Point Collision
  • Circle/Circle Collision
  • Rectangle/Point Collision
  • Rectangle/Rectangle Collision
  • Collision Detection with Moving Objects
  • Snapping to an Edge
  • Collision Detection between Many Objects
  • Grid-Based Collision Detection
    • More Advanced Collision Detection

Topics covered:

  • The Basics and Impulse Resolution
    • AABB and circle collision detection
    • Position correction
    • Generating information about a collision
  • The Core Engine
    • Integration methods
    • Timestepping
    • Bodies, shapes, materials and forces
    • The broad phase
    • Halfspace intersection tests
  • Friction, Scene and Jump Table
    • Static and dynamic friction
    • The Scene class
    • Collision procedure jump table
  • Oriented Rigid Bodies
    • Cross Product
    • Torque and Angular Velocity
    • Inertia
    • Transforming shapes
    • Polygon/Polygon and Circle/Polygon impulse resolution

Topics covered:

  • An Introduction to Rigid Body Dynamics
  • Collision Detection for Solid Objects
  • Constrained Rigid Body Simulation

Game Physics

Topics covered:

  • The parabolic equation
  • Gravity
  • Determining jump height and duration

Topics covered:

  • What is numerical integration
  • Explicit Euler and its problems
  • Semi-implicit Euler
  • RK4
  • Comparison between Semi-implicit Euler and RK4

Topics covered:

  • Moving solids
  • Moving actors
  • Carrying and pushing
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment