What started as a little experiment in Roblox Studio has gradually turned into something resembling an actual game.
The Cabin is a supernatural multiplayer survival project where Humans and Vampires share a world, but not necessarily the same interests. Humans have a cabin. Vampires have a complicated relationship with daylight. And, occasionally, somebody just wants to put a chair beside the fireplace.
I've been building it one mechanic at a time with coding help from Cove, my AI development partner. Here's what's actually working as of this first published checkpoint.
What's working so far
🌗 Day and night
An automated day/night cycle changes the world lighting. One in-game day currently takes about two real-world minutes while we're testing.
☀️ Sunlight and safe shadows
Vampires take damage in direct sunlight, but trees and roofs can provide shelter. For now, sunlight damage stops at 1 HP instead of killing them.
👁️ Vampire night vision
Vampires get a red-tinted view after dark, giving their nighttime experience a different atmosphere.
🧛 Two playable factions
A custom selection screen lets players join Humans or Vampires. The choice affects abilities, restrictions, and interactions.
🩸 Biting
Vampires can bite Humans for 10 HP of damage. The current prototype won't let a bite reduce the victim below 1 HP. We tested this with two clients.
🚪 Supernatural thresholds
Humans can enter the cabin freely. Vampires encounter an invisible barrier that blocks them at the threshold unless they're invited in.
🕯️ Knocking and invitations
A vampire can knock, triggering a gothic notification for the Human homeowner. The Human can invite or ignore them; an accepted visitor is teleported inside and can use a separate exit interaction to leave.
🔥 Interactive fireplace
A proximity prompt switches the fireplace's flame and light on or off. Small feature, excellent atmosphere.
🌲 Wood gathering
Human players gather 3 Wood per interaction at a tree, with a short cooldown between chops.
🔨 Crafting
At the crafting station, 6 Wood can be exchanged for 1 Wooden Chair. The server handles the resource transaction.
🎒 Inventory
A custom inventory interface tracks resources and crafted items, with tabs for Materials, Ingredients, Food, and Furniture. Some categories are still placeholders.
🪑 Furniture placement
A transparent chair follows the mouse and rotates in 90-degree steps. It turns green when all four corners fit inside the cabin's placement zone, and red when they don't. The server verifies the placement, spawns a real chair, and deducts one from inventory.
Gather wood → craft a chair → preview its position → place it inside the cabin. Attempting to place more chairs than you own gets rejected, too. We checked.
Adventures in development
Of course, there have been hiccups. At one point, practically the entire forest decided to disassemble itself during a test run. Trees fell, scenery went flying, and Roblox physics made its feelings known. The solution turned out to involve anchoring the environment properly.
There have also been texture mysteries, missing objects, and a furniture-placement script that initially ignored mouse clicks because it was too busy waiting for someone to press P.
Game development, apparently, involves quite a lot of asking: “Why on earth is it doing THAT?”
What's next?
Furniture placement still needs polishing: choosing a chair directly from inventory, ending the preview neatly after successful placement, checking obstructions, and eventually saving furniture between sessions.
Beyond the prototype cabin, the larger plan includes multiple Human homes, an underground Vampire settlement, more gathering and crafting, and plenty of opportunities for the two factions to interact—peacefully or otherwise.
For now, though, the forest exists. The vampires bite. The sunlight burns. The doorbell works.
And we can finally put a chair next to the fireplace.
— Shadeewolf
With coding assistance (and occasional logistical complications) from Cove.
Development After Dark is my ongoing journal of games, projects, experiments, and whatever technical disaster happens next.