Just because I don't care doesn't mean I don't understand.
656 stories
·
3 followers

DOOMscrolling: The Game

1 Comment

We’re all familiar with doomscrolling, spending too much time scrolling endless feeds of content that make you feel bad about everything.

But sometimes when I hear the word “doomscrolling” it makes me think of two other things: the classic video game Doom and, well, scrolling.

That got me wondering if I could make a Doom-inspired game in a web browser where the only thing you do to play is scroll. No moving your character laterally, no jumping. Just scrolling.

So I made it. And it’s fun! Here’s a small clip:

alt

That’s what the game looks like. But here’s what playing it feels like:

alt

You can go play it right now on desktop or mobile. The rest of this newsletter is the non-technical story of how I made the game.

The first time was a failure

As readers know, I’m not a coder, but I enjoy how vibe coding lets me turn an idea into something real. So naturally, I turned to vibe coding for this.

It didn’t work.

This was around nine months ago. I tried and tried, but none of the LLMs were able to help me go from idea to a playable game at all. Like, not even close. GPT-4 absolutely refused to understand that scrolling down a page means that the background should move up the page. I ended up with something kinda pathetic that didn’t even resemble a game. So I gave up, figuring this was either beyond an LLM’s skills, beyond my skills, or both.

But then GPT-5 came out a few weeks ago, and I tried again to see how much better it might be at coding. In just two hours I had a very good prototype. I even made a little title screen for my prototype so it felt more like a real game:

alt

I described the game design to ChatGPT very broadly at first. I said it should work kinda like Galaga turned upside-down. But I explained that unlike Galaga, the player moves forward and backward rather than side to side, and that the monster’s position should remain relative to the floor. That and a few more details got me surprisingly far as a first step.

For prototyping purposes, I asked ChatGPT to just come up with five different monsters, each one with a two-frame animation, like Space Invaders aliens. They were little more than basic shapes, and I figured at some point I’d replace them with actual pre-rendered monster sprites. But this worked for now.

alt
The original 5 monsters

Then I went on vacation. I spent an hour or two each morning over coffee working on this game until the kids woke up, gradually adding and refining features one at a time.

Improving the game

I focused on making the game more fun to play, with incentives to keep moving but also things to stop you from racing through it too fast. I added things like weapon upgrades for every 100 monsters you kill, a wall of fire that chases you if you stay in one place too long, and obstacles to slow you down, like brick walls and spider webs.

alt
Don’t let the wall of fire get you

Some other little quality-of-life features I came up with include:

  • Five different background textures so you can have a different visual experience each time you play.
  • Health potions. The first one appears when you’re down to three health points. After that, they are more rare and may require weapon upgrades to reach.
  • A visual marker when you pass your record distance
  • A pause screen with some stats

Making it really Doomscrolling

I was pretty happy with the game and ready to share it. But then at the last minute I got another nagging idea in the back of my mind: What if it was somehow more like actual doomscrolling?

It would be easy to get an RSS Feed of headlines from a news site. Could I make them appear in the game as you scroll, in a way that felt integrated with the game?

First I tried having headlines just appear on the floor as you play, but it felt very tacked-on. So I came up with some lore for the game that helped.

I decided that the game takes place in the future, in a lair that was sealed up today, whatever day you happen to be playing the game. And the civilization that sealed up the cave left behind plaques featuring today’s headlines for some unexplained reason. So as you play, you encounter these plaques that each has a bit of news from when the cave was sealed up. Today’s actual news.

alt
It’s not really doomscrolling if there isn’t awful news to read

The plaques have no effect on the game, except to the extent that they tempt you to read them and get distracted from the gameplay. But they’re just decorative elements. Feel free to ignore them. If you can.

The headlines all come from the New York Times front page RSS feed. So in a sense, this game is actually an extremely complex single-feed RSS reader.

Working with AI is still a pain. This was my solution.

If you’ve ever tried to work with AI, you’ve likely run into a roadblock where you’re describing something over and over and it’s simply not getting it. “No, don’t do it that way, for the umpteenth time, do it this way.

I still planned on making the monsters as pre-rendered sprites, but the background textures, plaques, and decorative items like torches could still be rendered in-game if I could just get GPT-5 to understand what I want them to look like. An LLM isn’t really good at making artwork like this.

So I simplified things. I had the AI set up simple “labs,” standalone test pages where we could work on different designs, using the style from the game. For example, here’s one “lab” I made for testing how some in-world elements would look on different backgrounds:

alt

Everything above is rendered on the fly. One big advantage of that approach is that I could randomize some visual elements in the game. For example, look at the spider webs above. They all follow the same rules but they’re all slightly different. The game’s background textures are also slightly different each time you play.

Next, I set about making pre-rendered monsters. But wow, small-scale pixel art is hard. I went through a lot of versions of different monsters. Eventually, I had a few I felt were good enough. The game looked like this:

alt

It had its own charm, but in the end, I didn’t love it. Somehow, my pre-rendered monsters made the game feel worse. Maybe it’s because I just am not a good pixel artist.

So I decided to see what I could do with ChatGPT in a “lab” like I did for other in-game items, but focused on monster designs. After a lot of experimentation, I settled on the simple monsters that ended up in the game:

alt

I assume doing all this computationally is more processor-intensive than using pre-rendered monsters, but it’s very smooth for me on both desktop and phone, so it must not be too intensive. I guess I’ll hear from people if it’s choppy on their device.

Sometimes I still needed a little more control over how something looked. So in those cases I had ChatGPT build labs with sliders that I could adjust to decide how I want things to appear, instead of getting frustrated with the chatbot. This way I could quickly settle on a look and feel.

Here for example is the lab page for the plaques. I wanted them to look integrated into the game world, so I described the parameters I wanted to play with for the text styling and plaque itself. We put a “copy settings” button that I could use to report back to the LLM once I liked it, so I could say “Okay, let’s go with these settings in the game.”

alt

I’ve made this lab page live for you to play with if you’re curious.

Ship it

There are still features and adjustments I’d like to add, but I’m not on vacation anymore, so think I just need to stop here. I may still tweak it, but for now I’m calling version 1.0 ready to ship. It has successfully scratched my itch to see if I could make a fun scrolling-only game, which was really all I wanted.

It should play equally well on mobile and desktop. The only difference is that with a taller device you can see more of the world at a time, which makes it a little easier.

Oh, and you can save it to your home screen so it acts like a standalone app rather than a browser game. That’s how I play.

Happy Doomscrolling!

alt

And that’s it for another newsletter!

Here’s where I remind you that you can support my endeavors by becoming a paid member, or making a one-time donation. Every little bit matters.

And if not, that’s okay, too. But maybe you can share the newsletter? Moving from Beehiiv to Ghost resulted in a subscriber hit, which I anticipated because the same thing happened when I first left Substack. It took a while to begin growing again after the first move, and you can help me get back to positive growth by spreading the word now that I’ve landed at Ghost. It would mean the world to me.

Until next time, thanks as always for reading!

David

Adblock test (Why?)

Read the whole story
jgbishop
4 days ago
reply
This is a clever little game
Durham, NC
Share this story
Delete

Nvidia gives fake Harrison Ford better hair using spheres

1 Comment

Indiana Jones and the Great Circle will be the first game to get Nvidia’s new RTX Hair features next month. Instead of using triangles to model hair, Nvidia will use spheres to improve Harrison Ford’s virtual hair in the Indiana Jones game.

RTX Hair is designed to improve lighting and shadows, all while maintaining performance in the game and not taking up too much extra memory. It also makes Ford’s hair look fuller and more realistic, and will be available as an update to the real-time path tracing mode in Indiana Jones and the Great Circle.

The RTX Hair improvements use new hardware capabilities in RTX 50-series GPUs, as Nvidia added hardware acceleration of ray tracing for hair and fur and support for the linear swept sphere (LSS) primitive. Nvidia says LSS is a “big step toward rendering high-quality digital humans in real time.”

Read the whole story
jgbishop
28 days ago
reply
Remember back when colored lighting was the hot thing in video games? We've sure come a long ways...
Durham, NC
Share this story
Delete

China is about to launch SSDs so small you insert them like a SIM card

1 Comment

MicroSD cards are tiny but slow; the M.2 storage sticks in your PC are blazing fast but bigger and fully enclosed. Now, a new type of SSD out of China could be the best of both worlds — and it’s already set to appear in two cutting-edge gaming portables.

Chinese storage manufacturer Biwin is calling it the “Mini SSD,” though another manufacturer refers to it as the “1517”; it measures just 15mm x 17mm x 1.4mm thick, smaller than a U.S. penny and just slightly larger than MicroSD. Despite that, it offers maximum sequential read speeds of 3,700 megabytes per second (or 3,400MB/s writes) over a PCIe 4×2 connection, and offers 512GB, 1TB and 2TB capacities.

To put that in context, the new MicroSD Express cards that work with the Nintendo Switch 2 top out at a theoretical 985MB/s, less than a third the speed. And while a full-size SD Express card could theoretically beat Mini SSD at 3,940MB/s, it would be nearly twice the size of Biwin’s creation.

The nano-SIMs used in recent smartphones are still smaller, though, and M.2 drives are still faster. I whipped up a quick chart so you can easily compare various storage cards and SIMs:

TypeLengthWidthHeightTheoretical max speed
Mini SSD15mm17mm1.4mm3,700MB/s
MicroSD11mm15mm1mm985MB/s
SD24mm32mm~2mm (varies)3,940MB/s
M.2 223022mm30mm~2mm (varies)~8,000MB/s
M.2 228022mm80mm~2mm (varies)~14,000MB/s
Nano-SIM8.8mm12.3mm0.67mmN/A
Micro-SIM12mm15mm0.76mmN/A
Mini-SIM15mm25mm0.76mmN/A

It’s not clear if Biwin’s Mini SSD is a true standard that other storage makers can easily adopt. But the company’s marketing it for laptops, tablets, phones, cameras and more, with its own dedicated slot that works exactly like smartphone SIM card slots: stick in a pin to remove the tray.

The company claims IP68 water and dust resistance, which could be handy for phones in particular, and three-meter drop resistance.

Two cutting-edge Chinese gaming portables already appear to be customers, both of which made announcements at ChinaJoy this past week. There’s the GPD Win 5, the monster battery backpack wielding Strix Halo handheld we told you about in July, which you can see with the new SSD in the video atop this story.

OneNetbook’s upcoming OneXPlayer Super X hybrid laptop/tablet, which has the same Strix Halo chip, is also now advertising a dedicated “card slot” for a mini SSD.

We don’t have any idea of pricing on these new SSDs, and have seen no product listings for them yet.

Read the whole story
jgbishop
32 days ago
reply
We live in a magical age.
Durham, NC
Share this story
Delete

Surveilling Your Children with AirTags

1 Comment

Skechers is making a line of kid’s shoes with a hidden compartment for an AirTag.

Read the whole story
jgbishop
41 days ago
reply
What could possibly go wrong with this idea?!?
Durham, NC
Share this story
Delete

Offline.kids – screen-free activities for kids

1 Comment

Sometimes kids need something they can do on their own — while you’re on a work call, cooking dinner, or just taking a breath. Here’s a list of solo activities you can try with your child, grouped by age. Some are linked to full activity guides on Offline.Kids, and others are simple ideas you can…

View post

Adblock test (Why?)

Read the whole story
jgbishop
41 days ago
reply
What a cool resource!
Durham, NC
Share this story
Delete

Quoting Steve Krouse

1 Comment and 2 Shares

When you vibe code, you are incurring tech debt as fast as the LLM can spit it out. Which is why vibe coding is perfect for prototypes and throwaway projects: It's only legacy code if you have to maintain it! [...]

The worst possible situation is to have a non-programmer vibe code a large project that they intend to maintain. This would be the equivalent of giving a credit card to a child without first explaining the concept of debt. [...]

If you don't understand the code, your only recourse is to ask AI to fix it for you, which is like paying off credit card debt with another credit card.

Steve Krouse, Vibe code is legacy code

Tags: vibe-coding, ai-assisted-programming, generative-ai, steve-krouse, ai, llms, technical-debt

Read the whole story
jgbishop
46 days ago
reply
Durham, NC
Share this story
Delete
1 public comment
yayadrian
46 days ago
reply
This makes a lot of sense
Leicester, UK
Next Page of Stories