Dev log
Notes on what we learned while building these games.
- Oct 25, 2026I deployed, and the old page kept showing for an hourI set cache headers by file extension, so clean URLs without an extension never matched and got Firebase's default one-hour cache. I didn't know the rule is chosen by the requested address.Operations
- Oct 25, 2026Why there is always a cloud within reach in Cloud HopCloud Hop places clouds at random, yet you never get a board you can't climb. The largest gap between clouds is capped below the height a jump can reach.Game design
- Oct 25, 2026Why the crumbling clouds never sit on the pathIn Cloud Hop a gray cloud crumbles when you step on it and gives no bounce. Putting it on the path could make a board impossible to climb, so it is only ever added on top as a bonus.Game design
- Oct 25, 2026I removed the background and a pink edge was leftAfter erasing the magenta background from Cloud Hop's art, a pink and purple fringe stayed on the edges. A tool that paints the fringe with the nearest inner color fixed most of it, but the thin wind lines on the blue cloud needed separate work.Art and sound
- Oct 25, 2026Three tries in one day to decide what not to deployI tried three ways in one day to keep files off the live site. Filename rules couldn't tell me what had slipped through, so I switched to folder names only and made the deploy stop when it sees a file it doesn't know.Tools
- Oct 25, 2026A ten-line FPS counter for browser gamesTo find a slowdown that only happens on iPad, I needed a number first. How to count frames per second with requestAnimationFrame, and what it took to read that number in an iPad simulator that needed an 8GB download.Tech
- Oct 25, 2026The game only moved once a second, and only on iPadCloud Hop ran at 60fps in Chrome and 11fps in Safari on iPad. I trusted the simulator, shipped a fix, and hit the same problem again on a real device.Tech
- Oct 25, 2026The cloud that looks touched but isn't stepped onWhen art and hitbox disagree, you either touch a cloud and don't land, or land without touching. I measured the topmost pixel of each cloud image and matched the hitbox's top edge to the art's top edge.Art and sound
- Oct 25, 2026I set no-cache and the CDN sat idleWith no-cache on JS, CSS and HTML, the CDN couldn't store anything, so even unchanged files were sent in full every time. Pairing max-age=0 with s-maxage let the browser check and the CDN store.Operations
- Oct 25, 2026Getting a transparent background out of AI art that can't make oneWhen the image generator can't give a transparent background, draw on magenta and erase only the background color connected to the edges, so identical colors inside the character stay.Art and sound
