A dev mantra I've come to believe is this: Control your runtime. Know why your code is running, when it's running, and how long it's running. Never let a dependency control your outer loop. In C, this usually looks something like this: while(1) { // The things my server does all live here. } ...or using raylib: // raylib while (!WindowShouldClose()) { // Update frame. } In JS, this might look…
Websites designed around the display of data often suffer from poor performance. This post will explore how to avoid this using the primitives of the browser, by changing how we think about data. A minimalist-styled website only requires plain HTML with a bit of vanilla JS for interactivity. This is not an exhaustive list, but these tips are usually sufficient for writing websites that are…
Today my friend, Dan Hanf , and I released a game for the 4MB game jam . It was the first game jam for both of us, and the first game either of us had released. The 4mb game jam The 4MB game jam is a game jam that takes place every other year. The rules of the jam state that every submission must be a standalone desktop application and it must be below 4MB. This year, the theme was 'Worms, Holes…
The Problem with protobuf I'll let Google describe the protobuf format: Protocol buffers are Google’s language-neutral, platform-neutral, extensible mechanism for serializing structured data – think XML, but smaller, faster, and simpler. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from…
I recently decided to write a parser for NOAA's Global Land One-kilometer Base Elevation (GLOBE) dataset. Compiled in 1999, GLOBE is a coarse resolution dataset, suitable for climate/weather modelling, non-safety-critical navigation aids, and other tasks where a finer-grained model is not necessary. This dataset is a convenient format for projects that need to approximate the geological features…