All blogs / Algorithms / data structures
Red Blob Games: latest blog posts
Behind the scenes - how I'm making redblobgames.com - interactive explanations of game development algorithms and math
- Posts
- 265 from 17 Feb 2003 to 31 Mar 2024
- Posting
- quiet since 2024
- Kind
- personal blog
- Feed
- https://www.redblobgames.com/blog/posts.xml
2024 2
2023 13
- Jobs table implementation for r/roguelikedev project
- Summer r/roguelikedev event
- Writing HTML by hand
- Changing a URL
- Experiments and motivation
- Improving Mapgen4's boundaries, part 3
- Improving Mapgen4's boundaries, part 2
- Improving Mapgen4's boundaries, part 1
- Explaining the Hexagon Layout class
- Tank Control experiments
- Making-of: draggable objects
- Making-of: circle drawing page
- One letter variable names
2022 13
- What I did in 2022
- Introduction to hexagons, part 3
- Introduction to hexagons, part 2
- Introduction to hexagons, part 1
- Connected Components
- Little details
- Hexagon conversions
- Procedural tree generator
- Upgrading my PRNG for procedural generation
- Improving island shaping for map generation, again
- Offline access with File / Save As
- Ten Years of Red Blob Games
- Reaction-diffusion
2021 10
- What I did in 2021
- Summer of small projects
- Highlighting diagrams and text together
- Rewriting my grid parts page
- Redesigning my circle diagrams, part 2
- Redesigning my circle diagrams, part 1
- Learning by writing
- My personal information workflow, part 2
- My personal information workflow, part 1
- Hex diagram labels
2020 10
2019 24
- Experimenting with outlines
- Fun art projects
- Types of projects
- Curved region rendering
- Procedurally generated annotations
- Chaikin Curves
- Verb-noun vs noun-verb
- Square tiling of a sphere, part 3/3
- Square tiling of a sphere, part 2/3
- Square tiling of a sphere, part 1/3
- Coordinate transforms, still
- Coordinate transforms, again
- Reader experience with 404s
- Little details
- Brainstorming with reversal
- Brainstorming with factoring
- Brainstorming with transpose
- Improving hexagon map storage diagram
- Improving island shaping for map generation
- Improving the 2D Noise page
- Hex grid guide load time, part 2
- Orbits of planets
- Tiles and edges
- What I did in 2018
2018 36
- Printing my pages
- Website updates, part 3
- Website updates, part 2
- Website updates, part 1
- Mapgen4: finished
- Math explorables
- Procedural face generator
- Mapgen4: beta
- Tower Defense page: distance fields
- Touch events on the pathfinding pages, part 2
- Map generation on a sphere, part 2
- Map generation on a sphere, part 1
- Mapgen4: river representation
- Mapgen4: outlines
- Mapgen4: bug fixes
- Mapgen4: oblique projection
- Mapgen4: rainfall
- Mapgen4: elevation painting, revisited
- Mapgen4: river appearance
- Mapgen4: threads
- Mapgen4: elevation painting
- Mapgen4: elevation
- Mapgen4: goals
- Delaunator guide
- Modifying spelling
- Thoughts on explorable explanations
- April updates: hex grid guide, load time
- April updates: hex grid guide, iteration
- April updates: hex grid guide
- March updates: lots of small things
- Using Vue with Canvas
- How I implement my interactive diagrams, part 2
- How I implement my interactive diagrams, part 1
- Updating C++ code on the A* implementation page
- Updating mapgen2
- Thinking about writing
2017 15
- What I did in 2017
- Website updates, part 2
- Website updates, part 1
- Polygonal Map Generation, HTML5 version
- Noisy edges
- Generating details from map sketches
- Elevation control
- Elevation from rivers, part 2
- Elevation from rivers
- Procedural river drainage basins
- Data structure for triangle meshes
- Alternatives to Voronoi for procedural map generation
- Making-of: line drawing tutorial
- Global optimization applied to game design
- Five Year Mission
2016 7
2015 9
- Updating Probability of Damage Rolls
- Hex grids: finishing up the code generator project
- Hex grids: more on coordinate names
- Hex grids: code generator
- Hex grids: choosing data structures and generating algorithms
- Hex grids: procedurally generating code
- Hex grids: simplifying the variants
- Optimizing A* for grid maps
- Improving pseudocode on hex grid reference
2014 12
- Notes on line drawing on grid maps
- Implementing draggable handles
- Touch events on the pathfinding pages
- Pathfinding on isometric grids
- New Introduction to A* page
- Dijkstra's Algorithm and reprioritizing nodes
- Prospect theory and utility functions
- Map homunculus
- Writing more by writing less
- Pathfinding algorithms on grids
- Graph theory for pathfinding
- Pathfinding for Tower Defense games
2013 9
2012 8
2011 2
2010 8
2009 15
- Flash 10: drawTriangles() disappointments
- Parallel World Simulation
- Storytelling with Comics
- Noise in game art
- Switching to Flash 10
- Road representation
- Following multiple paths in RPGs
- Throwing away code
- Transport Tycoon: modular airports
- Animating stick figures
- Flash 9 triangle gradients
- Game Component: Spaceship editor, part 4
- Game Component: Spaceship editor, part 3
- Game Component: Spaceship editor, part 2
- Game Component: Spaceship editor, part 1
2008 8
2007 9
2006 25
- Water in strategy games
- Learning Flash 8
- Software pricing
- Rules of Algebra fail with floats
- Using oscillation to speed learning
- The Guild 2
- World of Warcraft Analyses
- Ruby scares me
- An old classic: Settlers II
- A Tale in the Desert 3: First Impressions
- World of Warcraft: First Impressions
- Playing Oblivion
- Do people really want innovation in games?
- Prediction, Chaos, and Order
- Transportation game, models
- Impolite game: Spellforce 2
- Transportation game, basic objects
- Selecting objects in a 3d world
- Navigating a 3d world
- Rough sketch for a transportation game
- Getting started, 3d world
- Getting started, again
- Change of Direction
- Polite games
- SRE on the web