"Live it" is the first button in One Life: Reborn Simulator. You get a birth country rolled from real UN birth rates, you press it, and then you live one line per year For about 5 days pressing it froze the whole tab

My save code wraps localStorage.setItem so every save also gets copied into Playgama's storage (their Bridge). The sandbox link has no portal storage, so Bridge just writes the value back with localStorage.setItem... which goes through my wrapper again, which sends it to Bridge again. Endless microtask loop, dead tab The first save happens the moment you press Live it, so pretty much everyone got stuck on screen one

I'd tested on the real portal and on my own phone, where the storage exists. I never once clicked all the way through the sandbox link I was posting in 4 different threads On the 5th someone I'd never seen commented that the page froze when they hit Live it. That's how I found out

The fix keeps every sent value in an in-flight list until it's done, and if the same value comes back it doesn't get sent again. Also added a test that reproduces the loop so it can't sneak back

It works now. Playgama wants 100 plays on the sandbox before the real review, so plays through this link help with that https://playgama.ai/play/7hersnnnxaqs5l

 

gamepix rejected one of our browser games last week. the background music just kept going while their ad was on screen

the ad break code only muted the phaser sound manager. this one is plain html with an tag for the music, so phaser never had anything to mute

i copied the ad handling over from another one of our games and never once sat through an ad with the sound on. i always test muted

now when an ad starts, the element and web audio both go to sleep. the same fix went into our other games too. they also flagged that the rewarded buttons didn't say they'd play an ad, so those have a little video icon now. resubmitted the new build

the game is One Life: Reborn Simulator, which i made. you get born somewhere based on real UN birth shares and then live it out one line per year https://dumbgamelab.com/play/one-life/?lang=en

 

GamePix bounced my browser game this week. background music just kept going right over the ad

my ad break code only muted the Phaser sound manager. this one isn't Phaser, it's plain HTML with an tag for the music, so nothing got muted at all

I copied the ad handling from another of my games and never once listened with an ad actually running. always tested with the sound off lol

now on ad start the element and Web Audio both go to sleep, and I pushed the same fix to the other games too. resubmitted with the new build

edit: they also flagged that the rewarded buttons didn't say they play an ad, so those have a little video icon now. game was One Life: Reborn Simulator if anyone cares

 

five hearts and a guest just stays. that's the part i built everything else around

you set up a little camp in the woods and animals come by. cook for them, and once one fills its fifth heart it moves into the camp for good. there are 12 kinds of animal guests and 16 dishes, each with its own name. seasons turn over every 7 days

it plays in the itch page, nothing to download. i made it

title screen

 

70 share button taps over three days. Zero people came in from a shared link, zero shared links even opened. 42 of those taps were in the Android app

The app runs the game in a webview and navigator.share just doesn't exist there. So it fell back to copying the text to the clipboard with no sheet and no message. People tapped share, saw nothing happen and moved on. I only ever tested sharing in a browser where the sheet pops up fine, so I never saw it

Last week I already thought I'd fixed this. 130 shares, 0 visits, and the cause was me stripping the url params before analytics read them. Fixed that and it was still 0. There were two bugs stacked on top of each other

The app calls the native share sheet now, and a game that calls navigator.share directly inside the app gets blocked before release. It's a native plugin so it only lands with the next app build

The game is One Life: Reborn Simulator. Your birth country gets rolled from UN 2024 birth stats across 124 countries, no rerolls, and if you send your end card to a friend they start with the same birth. Free in the browser https://playgama.ai/play/7hersnnnxaqs5l

 

I scored my hand-drawn camp a 5.7 when I held it up against screenshots of a farm game that sold well. Then I switched the whole thing to toy-looking 3D and the score went down to 5.2, which is worse than where I started.

It took four rounds to get it to 6.8 and then 7.7. The biggest fix was a dumb one. Empty farm plots looked like holes dug in the ground, so I filled them with grass blades and tiny flowers

It's free in the browser if anyone wants to look. Do the empty plots still look like holes to you?

 

Backing out of Idle Internet Cafe Tycoon on iPhone and the OS would kill the web view a bit later. GPU memory never got released

my fix was a setTimeout for 8 s after the app went to background

It never ran on real phones. JS gets frozen the instant the app backgrounds, so anything sitting in a timer is just stuck. Shipped it anyway without knowing, crash reports kept showing up build after build

Now the release happens right in the same call that handles going to background

The game itself is a little PC bang tycoon, rows of computers and customers, it runs in the browser and on Android/iOS

 

The share link carries a birth seed (?s=) so your friend starts on the same birth you got. On load the game wiped that and the utm tail out of the address bar so it looked tidy. Analytics loaded a moment later, saw a clean URL, and logged every shared visit as direct

We nearly cut the button over it

Second bug on top of that one. Sharing from inside the itch or CrazyGames iframe handed the friend the portal's internal iframe URL, so they landed on some bare embed page.

Now the real address goes to analytics before the cleanup runs, and shares always use the public URL. Game is One Life: Reborn Simulator, browser, your birth country gets rolled from UN 2024 birth tables and you live that one life out. I made it

 

https://playgama.ai/play/7hersnnnxaqs5l

your birth country is rolled from the UN 2024 birth tables over 124 countries, so where you land is weighted by how many babies are actually born there. then you live that one life out. no restarting the same character. no account.

i built it. last week someone told me nothing in it was proportional and they were right. every prop had its height typed in by hand on its own scale, so the radio on the back wall was 56cm, the bicycle 73cm, and the cat was as big as the dog. the main character card got measured separately and came out 9% bigger than everyone else. now it all reads off one real-cm ruler and the build fails if a size drifts.

it has ads. two are optional reward ads and one full-screen ad plays when you die. nothing to buy.

[–] 1 point 5 days ago

Funders wanting a polished vertical slice, or a year of full-time work from the whole team, while Young Suns was still in production is the brutal bit. A 30 person studio can't build two games at once, and Dabbous says they've never had a hit to pay for it

  • source
  • [–] 1 point 5 days ago

    Option 1 behaves closer to Python's setdefault, since it only writes when the key is actually missing. Option 2 calls set_value on every read, which is harmless, but anyone reading a call site later will assume something changed

  • source
  • Chichi Brawl (dumbgamelab.com)
     

    Not sure if a prototype is ok here, it's pretty rough

    I made a 3v3 gem-grab shooter that runs in the browser, Chichi Brawl. The other team is an AI that trained on about 180,000 matches against itself, with reaction time capped at human speed (0.2s or slower). Only 3 characters and one mode so far. I'm trying to get 30 people through 10 matches each to see how often humans actually beat it, results are anonymous and there's no account. Mostly want to know if it felt cheap and what confused you in the first match

     

    This is a 3v3 gem grab shooter that runs in the browser, no install and no sign up.

    The bot learned by playing about 180,000 matches against itself. Its reaction time is capped at 0.2 seconds or slower, so it can't win on twitch reflexes alone. This link always puts you against the strongest generation it has

    https://dumbgamelab.com/play/chichibrawl/?ht=1&lang=en

    It's a prototype with only 3 characters and one mode, so expect it to be rough. I'm trying to get about 30 people to play 10 matches each and see how often humans actually win. Results are counted anonymously, no account and no personal data.

    Mostly I want to know if it felt fair or cheap, and where the first match lost you.

    Good luck

    [–] 1 point 6 days ago

    A denied click, the dull little thud for pressing a greyed-out button or trying to buy something you can't afford. Packs nearly always have confirm and cancel, but players hit the denied case constantly and cancel doesn't sound right there

  • source
  • [–] 2 points 6 days ago

    For the item farming problem you could seed the item roll by section index instead of by generation count. Falling would still reroll the terrain, but section 12 always hands out the same thing, so dropping down ten times just gets you the same pickup ten times and the first one is the only one that counts

  • source
  • [–] 2 points 6 days ago

    Set of reason keys, and the fight only ticks when the set is empty. Each panel adds its own name on open and deletes it in every close path, so if something slips through you end up with one named leftover like "bank" in your error report instead of a bare true

    Counters went bad for me in the mental model the moment open could fire twice and close once

  • source
  • [–] 2 points 1 week ago (1 child)

    Does the in-car view share the same steering sensitivity as the chase cam? Inside the car the pillars and dash swing across the screen, so the same input tends to feel twitchier, and a lot of driving prototypes end up with a slightly softer steering curve for the cockpit camera only. Might be worth swapping views mid-corner in a playtest to see if it feels like the same car.

  • source
  • [–] 2 points 1 week ago (1 child)

    Linking the patch notes in the first post back is a good way to restart. Question on the rebuild loop: when a mech comes over at the enemy's level, does it keep the loadout it had in that fight, or does it arrive stripped so you still have to spend items on it? The stripped version gives each capture a cost, which might matter more once enemies start getting upgrades on higher difficulties.

  • source
  • [–] 2 points 1 week ago

    On the logger: one thing that paid off for us is keeping the last ~200 lines in a ring buffer in memory and attaching them automatically to any bug report or crash, along with a small dump of game state. Most player bug reports are one sentence, and those 200 lines are usually where the actual answer is.

    On the license: AGPL is a fair choice for your own game, but for a template it'll scare off a lot of people, since anything built from it inherits AGPL. If you want others to start projects from it, MIT/Apache for the template (or dual licensing) is more common in the Godot world.

  • source
  • [–] 4 points 1 week ago (1 child)

    For the AI profiles, a small set of numbers per driver goes a long way: reaction delay, following distance, how often they change lanes, and how late they brake. Mixing 3 or 4 profiles in the same traffic already reads as "people" rather than "cars on rails".

    The thing to watch is fair vs unfair unpredictability. If a car swerves into you with no warning it feels like the game cheated. If it signals or drifts toward the line half a second first, the same move feels like a near miss you dodged. Telegraphing is what makes weaving through traffic a skill instead of luck.

  • source
  • view more: next ›