The Curious Engineer

All blogs / Game development

gridbugs

gridbugs.org

I post about game development, experiments with retro hardware, and DIY synthesizers.

Game developmentRustOCaml / F#Retro computingElectronics

Posts
262 from 10 Jul 2015 to 6 Mar 2026
Posting
monthly (11 in the last year)
Kind
personal blog
Feed
https://www.gridbugs.org/atom.xml

2026 9

  1. 7 Day Roguelike 2026: Day 7
  2. Devlogs
  3. 7 Day Roguelike 2026: Day 6
  4. 7 Day Roguelike 2026: Day 5
  5. 7 Day Roguelike 2026: Day 4
  6. 7 Day Roguelike 2026: Day 3
  7. 7 Day Roguelike 2026: Day 2
  8. 7 Day Roguelike 2026: Day 1
  9. Dial-Up over VoIP with a Commodore Modem from 1985

2025 13

  1. Restoring my Childhood Family Computer Part 4: Emulation
  2. Porting my Toy OCaml Build System to Windows
  3. Alice the Caml
  4. Fixing my Old OS Assignment with Machine Code Hacks
  5. Sound on OCaml on Windows
  6. Scope Creep
  7. 7 Day Roguelike 2025: Success!
  8. 7 Day Roguelike 2025: Putting it all together
  9. 7 Day Roguelike 2025: Map, Pickups
  10. 7 Day Roguelike 2025: Text, Item Labels, Central Hub
  11. 7 Day Roguelike 2025: Collision Detection and Enemies
  12. 7 Day Roguelike 2025: Oscillographics
  13. 7 Day Roguelike 2025: Vector 3D Renderer

2024 14

  1. Every Game I Made Since 2019 had a Lighting Bug
  2. Setting up WinGet for the First Time
  3. Restoring my Childhood Family Computer Part 3: Chime
  4. Restoring my Childhood Family Computer Part 2: Wasps!
  5. Restoring my Childhood Family Computer Part 1: Rust
  6. Frustrating Interactions with the OCaml Ecosystem while developing a Synthesizer Library
  7. Electric Organ
  8. 7 Day Roguelike 2024: Shops, Organs, Environment Effects, Boss
  9. 7 Day Roguelike 2024: Applying Items, Equipment
  10. 7 Day Roguelike 2024: Items
  11. 7 Day Roguelike 2024: Ranged Combat, Sound Effects, Message Log
  12. 7 Day Roguelike 2024: Title, Pathfinding, UI
  13. 7 Day Roguelike 2024: Animation, Music, Level Switching
  14. 7 Day Roguelike 2024: Procgen, Graphics

2023 14

  1. Component Pinouts and Notes
  2. Programming an Arduino the Hard Way
  3. Chargrid SDL Frontend
  4. 7 Day Roguelike 2023: Mechanics, Content, Playtesting
  5. Boat Journey
  6. 7 Day Roguelike 2023: Passengers, Art
  7. 7 Day Roguelike 2023: UI, Night, Loss, Menus
  8. 7 Day Roguelike 2023: Even More Procedural Generation!
  9. 7 Day Roguelike 2023: More Procedural Generation
  10. 7 Day Roguelike 2023: Procedural Generation
  11. 7 Day Roguelike 2023: Bootstrapping, Boat Gameplay, Vision
  12. Playing sound on the NES by directly setting its DMC output
  13. Demystifying Floating Points
  14. If you use a custom linker script, _start might not be your entry point

2022 8

  1. Rain Forest
  2. 7 Day Roguelike 2022: Complete
  3. 7 Day Roguelike 2022: Interactions
  4. 7 Day Roguelike 2022: Motivation
  5. 7 Day Roguelike 2022: Time
  6. 7 Day Roguelike 2022: Content
  7. 7 Day Roguelike 2022: Atmosphere
  8. 7 Day Roguelike 2022: Bootstrapping

2021 10

  1. Reverse-Engineering NES Tetris to add Hard Drop
  2. Orbital Decay
  3. 7 Day Roguelike 2021: Gamepad Support, Audio, Maps, Help Screen, Play Testing
  4. 7 Day Roguelike 2021: Enemies, Message Log, Space Gradient
  5. 7 Day Roguelike 2021: Weapons
  6. 7 Day Roguelike 2021: Upgrades
  7. 7 Day Roguelike 2021: Depressurisation
  8. 7 Day Roguelike 2021: NPCs, Pathfinding, First Level, Final Level, Projectiles, Destructible Terrain
  9. 7 Day Roguelike 2021: Procedural Generation, Rendering, Pretty Menus, End Text
  10. 7 Day Roguelike 2021: Preparation

2020 138

  1. 2020 Recap
  2. NTFS on FreeBSD
  3. NTFS on FreeBSD
  4. Daily Posts
  5. dmenu_histogram
  6. dmenu_histogram
  7. Stopping daily posts
  8. Disk image tool progress - Counter-intuitive header population
  9. Disk image tool progress - directory hierarchies
  10. Learning about kqueue
  11. Configuring Feh
  12. Chargrid HiDPI Scaling Fix
  13. Ruby shell with custom .inputrc
  14. Tmux runs a login shell by default
  15. Building this site sometimes crashes ruby
  16. How I start X
  17. Make sure your terminal emulator runs in the expected environment
  18. Make sure your terminal emulator runs in the expected environment
  19. Winit makes windows the wrong size in some cases I think
  20. Why you need a .bashrc and .profile
  21. Why you need a .bashrc and .profile
  22. Updating Library Dependencies
  23. How I spent 2020-10-31
  24. FreeBSD 12.2 intel graphics bug
  25. Vanilla Javascript and Under Engineering
  26. Simple Wolfenstein-3D-esque renderer
  27. Simple Wolfenstein-3D-esque renderer
  28. Parsing and Generating GUIDs in GPT Header Fields
  29. Cellular automata drawing prompt generator
  30. Repository of new words
  31. Boss fights in traditional roguelikes
  32. Boss fights in traditional roguelikes
  33. The latest rust release broke backtraces on FreeBSD
  34. Raidz setup
  35. Rust stacktraces are <unknown> on FreeBSD
  36. Train Game
  37. Fixing zpool after FreeBSD fresh install on ZFS mirror
  38. New URL and title formats for daily posts
  39. Time to start using language managers?
  40. Unsafely removing disks in a ZFS pool
  41. Yes WWW
  42. What if all your boot disks suddenly got wiped?
  43. I broke some things
  44. Formatting GUIDs in GPT header fields
  45. Encoding disk headers into disk images
  46. Gradually implementing a tool to create GPT FAT disk images
  47. All game links on this site now point to itch.io
  48. More of my 7DRLs are playable on itch.io
  49. Migrated browser games to nearlyfreespeech
  50. FAT32 FSInfo and its backup don't always match
  51. In praise of rEFInd
  52. Getting back into bouldering
  53. I accidentally let some of my TLS certs expire
  54. KID___PER? (2,4,3,3,6)
  55. Determining the size of a FAT32 partition
  56. I no longer feel like an imposter
  57. FAT32 FSInfo
  58. Cryptic Clues Repository
  59. I saw an eel in Moore Park
  60. Have I been using vi keys wrong my whole life?
  61. Crunch
  62. What exactly is a "Functional Programming Language"
  63. Is it a good idea, or are you just proud to understand it?
  64. Checking backup regions in gpt fat disk image tools
  65. Separable Convolution Kernels
  66. Move semantics and argument parsing
  67. Parsing command-line arguments with meap in real programs
  68. Problems, not Solutions, Part 2
  69. Meap Help Messages
  70. roglkpl
  71. New phone, and an arduous journey bootstrapping LineageOS
  72. Renamed "args_af" to "meap"
  73. Quality of life in command-line argument parsing
  74. Parsing my first command-line arguments
  75. I was briefly wrong about list's behaviour as an applicative
  76. Low-Level and High-Level Command-Line Argument Parsing
  77. New argument parsing library
  78. Re-added MBR parsing to my GPT disk image library
  79. First thoughts after playing Epistory
  80. Word navigation in Vim
  81. Reading and listing files with my disk image tools
  82. Qwerty Quirks
  83. Relearning Qwerty
  84. Disk image tool no longer reads entire image
  85. Disk image tool progress
  86. Creating and mounting a FAT32 partition in a GPT disk on FreeBSD
  87. Image Creation Tool - First Steps
  88. My keyboard backlight works!
  89. Planning to make a simple disk image creator
  90. Should I make my own bootloader?
  91. Fixing bugs in sample code
  92. Quick'n'dirty user-level switching
  93. x86 Basic Interrupt Handling Kind of Working
  94. Global Descriptor Table
  95. Trampolining
  96. More fun with linking
  97. I need to go learn more about ELF and static linking
  98. In Homogeneous Coordinates Addition is Multiplication
  99. Homogeneous Coordinates
  100. Printing over serial on x86
  101. Trekking is good because it's a problem you can solve
  102. Part 13 - Equipment
  103. Part 12 - Increasing Difficulty
  104. Chargrid Roguelike Tutorial 2020
  105. Problems, not Solutions
  106. BOOTBOOT
  107. Sticking with FreeBSD for now
  108. Bootstrapping Nightly Rust on OpenBSD
  109. Rust on OpenBSD
  110. Part 11 - Descending the Stairs
  111. Time to stop using language managers
  112. Roguelike Tutorial - Levelling up the player character
  113. OpenBSD
  114. stevebob.net
  115. Replace all the CSS!
  116. I'll probably move this site to nearlyfreespeech
  117. Part 10 - Saving and Loading
  118. Distro Hopping
  119. Part 9 - Ranged Scrolls and Targeting
  120. Part 8 - Items and Inventory
  121. Part 6 - AI and Combat
  122. Part 7 - User Interface
  123. Part 4 - Field of View
  124. Part 5 - Placing NPCs
  125. Part 2 - Entities, Rendering, Map
  126. Part 3 - Generating a Dungeon
  127. Part 0 - Setting Up
  128. Part 1 - Drawing and Moving the Player
  129. Conway's Game of Life on the NES in Rust
  130. slime99
  131. 7 Day Roguelike 2020: Day 7
  132. 7 Day Roguelike 2020: Day 6
  133. 7 Day Roguelike 2020: Day 5
  134. 7 Day Roguelike 2020: Day 4
  135. 7 Day Roguelike 2020: Day 3
  136. 7 Day Roguelike 2020: Day 2
  137. 7 Day Roguelike 2020: Day 1
  138. 7 Day Roguelike 2020: Plan

2019 12

  1. Zelda Screen Transitions are Undefined Behaviour
  2. NES Emulator Debugging
  3. Get Well Soon
  4. 7 Day Roguelike 2019: Content, Plot, Polish, Publish
  5. 7 Day Roguelike 2019: More Enemies, More Upgrades, More Cards
  6. 7 Day Roguelike 2019: Character Progression
  7. 7 Day Roguelike 2019: Card Gameplay
  8. 7 Day Roguelike 2019: Card Display, Death Screen
  9. 7 Day Roguelike 2019: Physics and Improved Pathfinding
  10. 7 Day Roguelike 2019: Procgen and Basic Pathfinding
  11. 7 Day Roguelike 2019: Planning and Preparation
  12. Procedural Generation with Wave Function Collapse

2018 10

  1. 2018 Recap
  2. Meters Below the Ground
  3. 7 Day Roguelike 2018: Success
  4. 7 Day Roguelike 2018: Meters, Objectives
  5. 7 Day Roguelike 2018: NPCs
  6. 7 Day Roguelike 2018: Character Progression, Melee Combat
  7. 7 Day Roguelike 2018: Items, Glossary, Combat, Railgun
  8. 7 Day Roguelike 2018: Procgen, Visibility, Missions, Colour
  9. 7 Day Roguelike 2018: Day 1
  10. Pathfinding on a Grid

2017 13

  1. Another Roguelike Lighting Demo
  2. Modifying Entity Component System for Turn-Based Games
  3. Programming Languages Make Terrible Game Engines
  4. Apocalypse Post
  5. 7 Day Roguelike 2017: Success
  6. 7 Day Roguelike 2017: Consumables
  7. 7 Day Roguelike 2017: Procgen and Explosions
  8. 7 Day Roguelike 2017: Mechanics and Descriptions
  9. 7 Day Roguelike 2017: Vehicles
  10. 7 Day Roguelike 2017: Shopping
  11. 7 Day Roguelike 2017: Day 1
  12. 7 Day Roguelike 2017: Plan
  13. Howl

2016 13

  1. Roguelike Lighting Demo
  2. Even Separation Algorithm
  3. Skeleton Crew
  4. 7 Day Roguelike 2016: Success
  5. 7 Day Roguelike 2016: Ending
  6. 7 Day Roguelike 2016: Polish
  7. 7 Day Roguelike 2016: Pathfinding
  8. 7 Day Roguelike 2016: Procedural Generation
  9. 7 Day Roguelike 2016: Day 1
  10. 7 Day Roguelike 2016: Plan
  11. Encoding Rules for Turn-Based Games
  12. Glacial
  13. Bug Catcher

2015 6

  1. Visible Area Detection with Recursive Shadowcast
  2. Cellular Automata Cave Generation
  3. 2D Phong Illumination in WebGL
  4. Post Mortem of an Abandoned Game
  5. Top-down Sidescrolling Engine
  6. Pitch Controlled Game

Undated 2

  1. Roguelike Tutorial 2020
  2. External Links