Vampyre game html

Based on the old tsr game vampyre (from 1981), for the gang at bronze age monsters podcast (Youtube link)

https://boardgamegeek.com/boardgame/2216/vampyre

Destroy 3 coffins, and get into dracs castle to snuff him out, before your rival gets him, or monsters get you

Vampyre v0.08

Version 0.08 Implements:

Action cards, roads, hex map movement, items, weapons, dice combat arena, a CPU rival, drac castle interior

Still needs multiplayer, better dracs castle

Vampyre game box cover

Need to add – 3 bites rule, safe villages, evasion, host element, vampire turncoat

First edit v 009

https://svonberg.org/wp-content/uploads/2026/04/vampyrehex9bites.html

Possibly final until multiplayer is ironed out

https://svonberg.org/wp-content/uploads/2026/04/vampyre010sanct.html

Added safe villages, 3 bites, host as an inventory item, evasion, other hunter a little smarter.

No Kings – Roanoke VA

Roanoke Today Felt Like People Showing Up for Each Other

I walked into downtown Roanoke today not really knowing what to expect.

You hear the word protest and your mind fills in the blanks. Noise. Anger. Division. That kind of thing.

But this was different.

The “No Kings” gathering felt calm in a way that is hard to explain unless you were standing there. People were present. Not just physically, but emotionally. A kind of quiet steadiness ran through the crowd.

There were signs and chants, sure. But what stayed with me were the small human moments.

Someone handing out water without being asked.

A couple making room on the sidewalk for an older man to sit.

People laughing while painting signs like it was a shared project instead of a task.

It didn’t feel like strangers gathered in opposition. It felt like neighbors recognizing each other.

You could tell this was part of something bigger happening across the country. That energy was there, but it never felt like a copy of something national. It felt grounded. Personal.

People were talking to each other, not past each other. There were conversations happening on the edges of the crowd that mattered just as much as the chants in the center.

Tables were set up. People were sharing information, inviting others in, offering ways to stay connected after today. No pressure. Just open space.

That stood out to me.

What surprised me most was the tone.

It was not heavy. It was not hostile. It was purposeful without being overwhelming.

There was a sense that people came because they cared, but also because they wanted to be around others who cared too.

That feeling matters more than any slogan.

It is easy to forget how isolating things can feel when you are sitting at home scrolling through headlines. Being in a space where people are showing up in real life shifts something inside you.

Even if you do not talk to anyone directly, you feel it.

You are not alone in paying attention.

Roanoke is not the biggest city, and that’s exactly why today mattered.

When people show up here, it says something simple and important. It says this is not just something happening somewhere else. It’s happening where we live.

It’s easy to assume that civic engagement belongs to larger places. Today pushed back against that idea.

People here care. Enough to come out. Enough to stand together. Enough to be visible.

That counts.

I did not leave feeling drained.

I left feeling grounded.

Not everything was solved today. That was never the point. The point was showing up. Being present. Letting others see you and seeing them in return.

That kind of moment stays with you longer than the signs or the chants.

Today felt like something steady.

It felt like people remembering they are part of something bigger than themselves, and choosing to stand in that together.

Fruit merge v11

https://svonberg.org/wp-content/uploads/2026/03/fruit011.html

Spent some time tonight building out a fruit merge game, which started as a very small idea and then kept quietly expanding in every direction.

The core of it is simple enough. You drop fruit into a container, they bounce and collide using Matter.js, and when two of the same type meet they merge into the next one up. It is the kind of loop that explains itself within a few seconds, especially with the little evolution guide sitting across the top showing the path from cherries up to a full watermelon. No instructions needed, just a gentle nudge in the right direction.

What makes it feel good is the physics. Everything has weight and presence, so even small interactions feel intentional. A piece rolls a little too far, bumps something else, and suddenly you have a chain reaction you did not plan for. It never feels scripted, which makes even the messy moments feel earned.

I built the interface to sit comfortably on a phone screen, keeping everything vertical and easy to reach. The layout behaves nicely, even with mobile browser quirks, and the theme toggle lets it slip into a darker mode that feels a little calmer at night. It is the kind of thing you can pick up for a minute or two without thinking about it too much.

Of course, it did not stay that simple. There is a hidden tools panel that opens up into something closer to a sandbox. You can slice fruit apart, drop a bomb when things get too crowded, shake the entire playfield, or turn on a brief zero gravity effect and watch everything drift. There is even an autoplay mode that takes over and makes its own decisions, sometimes better than you would, sometimes much worse.

The audio ended up being one of my favorite parts to work on. Instead of using sound files, everything is generated on the fly with the Web Audio API. Small tones for drops, brighter notes for merges, and a kind of layered progression when combos start stacking. It gives the whole thing a subtle rhythm that matches what is happening on screen.

There is also a quiet bit of persistence in the background. High scores are saved through Firebase with anonymous login, so it remembers your best run without asking you for anything. It just sits there, keeping track.

One small feature that ended up changing the feel of everything is the size toggle. With a single button press, the entire game scales up or down, including fruit that are already in play. It shifts the balance immediately. Suddenly the space feels too tight or oddly empty, and you have to adjust how you think about each drop.

Somewhere along the way, it stopped feeling like a simple merge game and started feeling more like a small interactive space. Something you poke at for a bit, watch it react, and then try again when it inevitably collapses in on itself.

It is a nice kind of loop. Quiet, a little unpredictable, and easy to come back to.

Welcome to my wall scrawls.