Drop #588 (2025-01-09): ⚔️ Random Acts Of Violence

<blink> Is Back! (Sort Of); rpg-cli; Rogule

A double dose of browser-based violence and one bit of violence at the CLI (I mean, one of the most popular shells is called “BASH!”, after all) await the brave readers of the Drop today.


TL;DR

(This is an AI-generated summary of today’s Drop using Ollama + llama 3.2 and a custom prompt.)

  • Valve’s signature flickering light pattern has been recreated in CSS by Ted Unangst, who adapted the Quake source code sequence to create a modern implementation of the classic HTML blink tag (https://flak.tedunangst.com/post/valve-flicker-css)
  • rpg-cli transforms your shell operations into an RPG adventure with monsters and treasure, created by Facundo Olano as a Rust-based CLI tool that gamifies terminal navigation (https://github.com/facundoolano/rpg-cli/tree/main)
  • Rogule is a minimalist daily browser-based roguelike game where players get one attempt at the same dungeon each day (https://rogule.com/)

TIL that all broken lights in Valve games flicker with the exact same pattern.

Ted Unangst decided that he should break the internet by creating the same (it is more precise to say “very similiar”) effect with CSS animations.

He plucked the fluorescent flicker character-encoded sequence from the Quake source code (mmamammmmammamamaaamammma), and adapted it to CSS keyframe steps.

The HTML <blink> tag has an actual origin story that emerged during the early days of web browsers. It was conceived in 1994 when Lou Montulli, who had previously created the Lynx text-only browser, joined Netscape. During a night out at a bar, Montulli joked that the only “effect” Lynx could possibly handle would be blinking text.

The next morning, he discovered that one of his colleagues had stayed up late and implemented the <blink> tag in Netscape Navigator. Initially intended as a harmless easter egg, the tag wasn’t even documented in Netscape Navigator 1.0. However, once knowledge of its existence spread, websites began using it extensively for attention-grabbing elements like advertisements and special offers.

The <blink> tag unintentionally exacerbated browser wars of the 1990s. In response to Netscape’s <blink>, Microsoft created their own proprietary <marquee> tag for Internet Explorer. This competition between browsers led to a fragmented web where certain features only worked in specific browsers. Sadly, this still occurs today.

The tag had an extremely simple syntax:

<blink>This text would blink</blink>

In browsers that supported it, like Mozilla Firefox, the text would alternate between being visible for 0.75 seconds and invisible for 0.25 seconds.

The <blink> tag was ultimately deprecated for several reasons:

  • it posed accessibility issues for users with cognitive disabilities and photosensitive epilepsy
  • the constant flashing was widely considered distracting and annoying
  • it was never part of the official HTML specification

In a notable turn of events, Netscape and Microsoft made a deal during an HTML Editorial Review Board meeting in 1996 where Netscape agreed to remove the <blink> tag if Microsoft would remove their <marquee> tag.

Now, sure; you could just apply Ted’s CSS class to any visible HTML element to get the flicker effect.

But, why not fully resurrect the <blink> tag with a custom WebComponent?

Normally, I’d use Lit when making components, but we don’t need the full bloat of Lit to just wrap the CSS into a lightweight, vanilla WebComponent.

Just source the component:

<script type="module" src="https://rud.is/data/blink.mjs"></script>

(or just copy the source into your site/project) and wrap your blinking text in:

<blink-tag>Blink</blink-tag>

and, you’re good to go!

The hosted WordPress this newsletter is (sadly) on is not at the paid tier where I can add arbitrary JS, so this CodePen embed will have to suffice as an example:

Make Blink Great Again!


rpg-cli

Before we get to the resource, I let myself get distracted by something the author of said resource penned, and is related to the resource itself, so I thought I’d take a moment to digress and also distract you! Feel free to skip down to “👉” in this section if you just want the resource.

Facundo Olano really likes role-playing games (RPGs). So much so, that he penned a great “Deconstructing the Role-Playing Videogame” essay that acts as guided tour through the rich, winding history of RPGs, from their tabletop roots to their digital incarnations. It’s doesn’t just explain what RPGs “are”, but take us on a journey through how their core ideas—storytelling, character growth, and choice—have been translated into the video game medium.

The story starts with tabletop games like Dungeons & Dragons in the 1970s. These games weren’t just about rolling dice — they were systems for creating collaborative stories. Players could invent characters with personalities and motivations, and the choices they made shaped the narrative. The Dungeon Master, acting as both referee and storyteller, brought unpredictability, ensuring the story felt alive.

When video games began to take off, designers wanted to capture this magic. But the shift from table to screen wasn’t seamless. Computers in the 1980s were fairly limited — they couldn’t replicate the flexibility of a human “Dungeon Master”. Early RPGs like Ultima and Wizardry leaned heavily on mechanics like stats and combat, which were easier to program than nuanced storytelling. These games were more about exploring dungeons and fighting monsters than improvising a complex story.

As technology advanced, so did RPGs. The 1990s brought games like Final Fantasy and Baldur’s Gate, which began blending narrative and mechanics more seamlessly. Final Fantasy, for instance, leaned into cinematic storytelling, giving players a sense of being part of an epic tale. Meanwhile, Baldur’s Gate embraced choice, letting players make decisions that shaped the world around them. Both games highlighted how RPGs could balance player agency with a crafted narrative — a tension that’s still central to the genre.

Facundo’s essay also explores what makes an RPG feel like an RPG. Is it leveling up your character? Making choices? Immersing yourself in a story? Different games emphasize different aspects. The Elder Scrolls: Skyrim, for example, gives you a massive world to explore, where your actions define the story. On the other hand, games like The Witcher 3 provide a pre-written narrative but let you influence its details.

Olano also critiques modern RPGs, arguing that some have drifted too far into spectacle and away from depth. Big-budget games often prioritize graphics and set-piece moments, sometimes at the expense of the player-driven storytelling that defined early RPGs. The rise of “action RPGs” like Diablo and Dark Souls shows how the genre keeps evolving, blending faster gameplay with RPG mechanics.

👉 He took all this RPG 💙 and knowledge and funneled it into rpg-cli — a bit of Rust incantations that magically turn your shell ops into a dungeon, complete with monsters and treasure!

Every directory is a new location, and each time you navigate to a folder, you “travel” to a new place. You, the player, take on the role of a character in this world — a digital adventurer equipped with stats like health and experience points. As you move through directories, you encounter foes representing the challenges of everyday terminal tasks. Defeating these enemies earns you experience points and loot, just like in a classic RPG.

The gameplay itself is surprisingly rich. The tool has commands to initiate battles, check your stats, and manage your inventory. Combat involves a mix of luck and strategy, much like a traditional RPG, but it’s also non-intrusive, and designed not to get in the way of your actual work. If you’re deep in your terminal workflow and don’t feel like playing, you can bypass the RPG elements entirely and continue navigating like normal. It’s an optional layer of fun that you can engage with when you want a break or a little motivation.

You can install it via Cargo or from the pre-compiled binaries, and it may just add a bit of fun to your everyday work in the terminal.


Rogule

Rogule (GH) is “a minimalist online Roguelike game you play in your web browser. Everyone gets the same dungeon each day. You get one chance to beat each day’s dungeon. It is free to play.”

Chris McCormick started this project back in 2022 and kept a developer log on X (that’s a safe link as it uses xcancel.com to avoid shunting you to the actual Hades-site).

It has a similar obsessive (🦋) following (🐘) as that insidious Wordle game. But, this is one I don’t actually mind playing.


FIN

Remember, you can follow and interact with the full text of The Daily Drop’s free posts on:

  • 🐘 Mastodon via @dailydrop.hrbrmstr.dev@dailydrop.hrbrmstr.dev
  • 🦋 Bluesky via https://bsky.app/profile/dailydrop.hrbrmstr.dev.web.brid.gy

Also, refer to:

to see how to access a regularly updated database of all the Drops with extracted links, and full-text search capability. ☮️

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.