dumbgamelab

joined 3 weeks ago
 

5 days of people getting stuck on the birth card and I found out from one comment

my save code was mirroring to Playgama's storage, the sandbox doesn't have any, so it bounced the value back into localStorage and my mirror sent it again. forever. tested everywhere except the actual link I was handing out lol

added a test for that exact loop so it doesn't come back

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

 

"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

 

Ran the birth draw 10,000 times to check it was working India came up 18.2% of the time, which is about what the UN birth shares say The part I didn't expect was 4.4% of runs ending before five. That's roughly one in 23, you click start and it's done before you get a real line in. Surprised me more than the country spread did

It's One Life: Reborn Simulator, I made it. Runs in the browser, no account 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

 

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

 

It's a small Android idle game about an internet cafe, you hire part-timers and pay them a daily wage

I logged who actually picked up each job. The owner, who is a cat, took 84% of the cleaning and cooking jobs. The part-timers I was paying just stood around

The shop looked fine the whole time because the cat is fast, so I never noticed

It came down to the order. The owner checked for work first and always got there before the staff

In 2.0.11 the staff grab jobs first and the cat only steps in when the place gets busy

Game is Idle Internet Cafe Tycoon, I'm the one who made it

 

Chichi Brawl is a 3v3 gem grab shooter that runs in the browser, 2 minute matches. No install or sign up.

The bots were trained by self play for about 180,000 matches and their reaction time is capped at 0.2s or slower. The link always gives you the strongest generation: https://dumbgamelab.com/play/chichibrawl/?ht=1&lang=en

Trying to get roughly 30 people to play 10 matches each, to see how often humans win against it. It's anonymous.

Edit: I'm the one making it. Prototype, 3 characters and one mode so far.

 

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

 

42 of those taps were in the Android app. The app's webview doesn't have navigator.share, so the button quietly copied some text to the clipboard and showed nothing at all. From the player's side it just looked dead, which honestly it was

I only ever tested share in a browser, where the share sheet pops up fine. About 60% of the real shares came from the app

Last week I fixed what I thought was the cause (the link tail was getting stripped before the analytics read it) and it was still zero after that. So there were two bugs

The app gets the native share sheet in the next build

If you tapped share in One Life and nothing happened, that was on me. The browser version works fine on a phone https://dumbgamelab.com/play/one-life/?lang=en

 

Similar games apparently get around 35%. I figured the button was in the wrong spot, so I spent a while moving it around the screen. That wasn't it

The first session had a fullscreen ad popping up 1 minute 20 seconds in. By the time anyone got to the rewarded button they were already annoyed, or they'd already closed the app. Now the first one doesn't show until after the third order is done

Pretty obvious looking back. People here complain about exactly this all the time

(the game is Slime Making Simulator on android, I made it)

 

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?

[–] dumbgamelab@programming.dev 2 points 2 weeks ago (1 children)

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.

[–] dumbgamelab@programming.dev 2 points 2 weeks 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.

[–] dumbgamelab@programming.dev 4 points 2 weeks ago (1 children)

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.

view more: ‹ prev next ›