1
 
 

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

2
 
 

We thought updating Oh Deer would take a week. Nine months later, we’d end up rebuilding our multiplayer hide-and-seek game from the ground up. Enjoy!

We share how fixing performance turned into rebuilding almost everything: the Hunter, the maps, the NPC deer, the multiplayer systems, and even a tiny animated screen on a TrailCam. Along the way, we learned better ways to make games and discovered how much we still had to learn.

The new Oh Deer brings:

  • 10-player matches: one Hunter and up to nine player deer.
  • 100 NPC deer to hide among.
  • Reworked maps, improved visuals, and better performance.
  • Upgraded TrailCams and deer abilities.
  • A completely reworked night phase: survive 40 seconds while your friends hunt you as Wendigos.
3
 
 

In Love Me Not you are a flower that climbs out of a cave. The cave has been cursed by a witch, so the level is regenerated above you whenever you fall.

This is similar to the procedurally generated levels in infinite runners like Doodle Jump, except that instead of erasing the entire level on a failure, Love Me Not only erases the most recent sections. This style of level generation is novel to me. For the purposes of this post I’ll call it spool generation.

I often simplify a player’s time with a game into a “novice period” and an “expert period”. These are usually characterised by different goals. In Love Me Not a novice’s objective is to escape the cave by any means necessary, while an expert’s objective is to escape the cave as fast as possible.

Spool generation had some natural effects on the novice period:

[expert period] I wanted to find a scoring system that could bring spool generation back into the decision space of an expert player.

Love Me Not on itch.io

4
 
 

Small bug story from this week.

A player told me the game "froze". Attack did nothing, no damage, nothing. Turned out it wasn't frozen at all.

Opening Settings, the Bank or the Store pauses the fight. That part was on purpose. But if you then hid the menu or went fullscreen, the panel vanished and the pause flag stayed on. So the fight just sat there waiting forever.

The fix was boring. Closing a panel any way at all now clears the pause, and hitting Attack un-pauses too, just in case.

The part I liked more: I wrote a little random-click tester that mashes buttons, opens panels, toggles fullscreen and checks the fight still moves. It found no more stuck states after the fix. I also added a quiet error report so if it ever happens to someone again, I can see what they clicked last.

It's plain JS, no engine. The game is SnowRSPS Mini if you want to try to break it: https://snowrsps.com/io

How do you all handle pause state? One flag, or a stack of reasons?

5
 
 

It contains a handful of small bugfixes to smoothen the playing experience. Check out the Steam link for the full changelog.

6
7
 
 

I'm the creator. Sharing a practical SFX layout I used for an ice-mage kit — useful if you're wiring elemental spells and want hits to "feel bigger" without touching the mixer every time.

Pipeline that worked for me:

  1. Charge / crystal-form one-shots into a release (lance, bolt, shard, nova).
  2. Optional fly-by while the projectile crosses the listener.
  3. Impact and shatter files pre-leveled by size (small → large), so game code only selects a tier.
  4. A quiet frostbite tick for damage-over-time, plus wall/shield rise-loop-collapse chains and a short combo ladder.

The full Frostbite set is 203 sounds (WAV + OGG, same names); Free Lite is 28 sounds with the same folder names for prototyping. Godot 4 and Unity helpers ship in the download; snake_case names also import cleanly elsewhere.

Free Lite: https://yetiancai.itch.io/frostbite-ice-spell-sfx-free-lite (28 sounds)

Full pack: https://yetiancai.itch.io/frostbite-ice-spell-sfx (203 sounds)

I'm the creator. Sounds are generated by code written with AI assistance. AI tool: Grok Bot coding assistant (used only to write the generation code; current version as of Oct 2026).

Engine-agnostic questions on the tiering approach welcome.

8
 
 

[…] about some Celeste game-feel tricks. I don’t think that we invented any of these techniques, but they are important parts of the moment-to-moment experience of Celeste.

  1. Coyote Time
  2. Jump Buffering
  3. Halved-Gravity Jump Peak
  4. Jump Corner Correction
  5. Dash Corner Correction
  6. Semi-Solid Popping
  7. Lift Momentum Storage
  8. Wide Wall-Jump Window
  9. Even Wider Super Wall-Jump Window
  10. Stamina Refunds

You might have noticed a pattern! All are centered around widening timing or positioning windows, so that everything is fudged a tiny bit in the player’s favor. I think that this is a big reason why Celeste can feel kind even though it’s very difficult — it wants you to succeed.

9
 
 

Testing a crash reporter should be easy: add a switch, kill our app, inspect the result A real iOS device turned that into a different bug when the signal got intercepted before termination We were no longer testing whether crashes were reported We were fixing why the deliberately broken part would not break, which is a strange thing to put in a pull request.

10
 
 

A few years ago, I started working on my debut game RUTHLESS:1.

It's a science-fiction action-RPG, set in the near future. You control up to three Mechs in battle, which are equipped with weapons, buffs and items of your choice. Every enemy you destroy can be rebuilt and added to your roster.

Check it out here.

Last year, I was on a (poorly communicated) hiatus and decided that I want to keep the community updated by posting bi-weekly devlogs to show a bit of the development process.

Going forward, I will post these on Lemmy, along with other news regarding my game, starting today with the freshly released news of a new patch for RUTHLESS:1, which fixed a really annoying bug.

I hope you enjoy my game and my posts are welcome here.

11
 
 

Added in car view today and I'm liking the feel of this more and more now. Using Unity, it's a simple onswitchcameraperformed function calling up the next view.

12
 
 

I uploaded a build of my browser game to a game portal and the upload analysis came back with a 2 GB memory warning. The game is a life sim with a rotating globe on the title screen, so I suspected the globe canvas.

Fix one, 11:10: moved the globe onto its own compositing layer. Fix two, 11:21: switched it to a software canvas. Fix three, 11:53: pulled the logo out of normal flow with position: absolute, so nothing overlapped the globe anymore. That one worked. Forty-three minutes, three pull requests.

The first two were guesses, because I kept shipping the next change before the analyzer had finished judging the previous one. The thing I should have done at 11:10 was wait for the result and then change one thing.

If you've fought a portal's automatic checks, did yours ever blame the heavy thing when the cause was something sitting on top of it? The game is free in the browser: https://dumbgamelab.itch.io/one-life

13
 
 

In prototyping stage on an idea I've had for a while, a driving game where speed isn't everything but how well you can navigate traffic also This is the first driving test with roads and traffic. Different AI driver behavior profiles to be work on next to bring some variation and more unpredictability to the traffic. Testing out whether the idea is any fun or not

14
 
 

I'm the creator of a small game-audio store and wanted to share the approach behind my latest pack, Haunted Atmosphere.

Most horror ambiences are a single fixed track. I split each of 6 scenes into 4 stems:

  • bed: drone / room tone that is always there
  • air: wind, hum, vents, water
  • detail: creaks, drips, crows, chains
  • presence: high tension cluster and wordless whisper-like textures

Played together they reproduce the full mix sample for sample, so in-engine you can start all four and fade layers in as the player gets closer to the threat, then fire a stinger. Every loop is 60 s and seamless by construction (synthesized as a loop, no crossfade), with loop points embedded in WAV and OGG.

I'm the creator. Sounds are synthesized by code written with AI assistance; no generative AI audio or image models were used. AI tool: Grok Bot coding assistant (used only to write the synthesis code; current version as of Oct 2026). (Techniques: filtered noise, modal resonators, creak models, formant filters, synthetic reverb.)

15
16
17
 
 

I've started this template some time ago, and I think this is solid enough to talk about it and show this code. I'll discuss the template ins and outs along the way, this is the starting point and the reasoning for some decisions.

The first entry is the Logger class.

Keep in mind, all code is AGPL, so if you copy this code your codebase will be AGPL.

All feedback is welcomed.

18
 
 

the wave

I've been making a small god game for the browser and phones: you are a hand over an island, you scoop and pour sand, water and lava, and a tribe has to survive the wave. A few things I learned building the terrain, in case they help someone:

  • The whole land is one 96x96 height field with four layers (rock, sand, water, lava). Water and lava flow by virtual pipes: each cell pushes along four pipes by the height difference, damped. Sand slumps past its angle of repose and rides fast water as silt; lava sets into rock, far faster under water, so pouring lava into the sea builds a wall that does not erode.
  • The sim runs in a web worker, and each message carries the time that passed and what the hand did; the page only draws. A step costs about 4 ms on a mid-range Android phone.
  • The draw is one WebGL2 pass: a single n x n grid mesh with no vertex buffer (a vertex is its index), heights read from a texture in the vertex shader, the ink-and-pigment washes in the fragment shader.
  • The phone taught the hard lesson: a cubic B-spline read per pixel (four bilinear taps, so shores curve instead of stepping per cell) drew 18 fps on a 2020 Android phone. Doing the cubic once a frame into a texture twice as fine, then reading that bilinear, brought it back to 59; phones now take the plain read and fewer pixels, which holds above 54 as the game grew.

Everything (land, tribe, look) is drawn in its own code. It plays free here, no account: https://overflow.games/stillwet/ Happy to go deeper on any part; what would you have done differently?

19
 
 

I'm the developer of Bronze & Glory, a free turn-based gladiator game that runs in your browser on desktop or phone. Nothing to download, and Quick play needs no sign-up, so you can start a bout straight away.

Every attack shows its hit chance, damage range and energy cost before you commit, and your opponent telegraphs its next move. There are four classes (Sentinel, Duelist, Berserker, Arcanist), a 100-opponent campaign, and online duels against real players (those need a free account).

The problem with a small online game is that the queue is empty when you show up alone. So I'm trying a fixed slot: Arena Hour, every day 19:00–20:00 UTC (running now, and daily until 26 Oct). Come then and there's a good chance of a live opponent; if no one else is searching, a clearly labelled Practice Bot steps in so you're never left waiting. The home screen shows the time in your local time and has an "Add to my calendar" link: https://bronzeandglory.fun/?src=cal-ah-gamedev

For other devs, the design question behind this: with only a handful of players online, matchmaking has to decide how long to wait for a human before offering a bot. My answer so far is a Practice Bot that is always clearly labelled as a bot, and the fixed daily slot is my attempt to concentrate the few players there are into the same hour instead of spreading them across the day. If you've shipped a small multiplayer game, I'd like to know what you'd do differently (longer queue timeout? scheduled events? async duels?).

The bigger one is Arena Night II: Sat 24 Oct, 19:00–21:00 UTC (15:00 EDT, 20:00 BST, 21:00 CEST), two hours of live duels with whoever turns up.

Play: https://bronzeandglory.fun/?ref=r19-ah-gamedev

I'd love feedback from other devs: what would make you play a second bout?

20
 
 

Playthrough of a personal project I've been working on the last few months that I'm close to wrapping up.

21
 
 

Hello, this is a demo of my balance game. Drag a ball to catch fruits, the game gets harder over time. I want feedback on the controls and difficulty. Watch the video and play here: https://geam-moi.itch.io/meo-te

22
 
 

In this video I explain the methodology and techniques I used to make the physical-yet-arcadey physics in my game Parking Garage Rally Circuit, including a (possibly misguided) observation about Mario Kart that influenced my entire process.

23
 
 

Decomped Way of the Samurai 2 with fps, widescreen, high-res mods. Please report any bugs you find.

24
 
 

Hello! I was previously running these online courses through the Canadian school VFS' Short Circuit but have decided to focus on self-hosting my content more (in so many ways, I've been learning so much back-end these days, it's hard work to the surprise of no one) so now you can register for them through my website: https://erikamoya.com/intro-to-blender-classes/ https://erikamoya.com/intro-to-vfx-classes/ They're both aimed for beginners, live classes where we do work together, you can ask questions and get feedback in-between classes as well, limited to 7 students per group to assure no one gets left behind. The courses are aimed at teaching the technical knowledge of using the software plus good practices so you have all the tools needed to work by yourself and improve your craft through practice and feedback. With Blender I teach the whole generalist pipeline so students can get an understanding of areas that maybe they didn't have any idea on what they meant or they would like before starting (like rigging for example), also helpful for those that are looking to switch from Maya to Blender. I invite you to look at the pages I've written to see more about what each covers. Humble bragging but previous students have told me they really enjoyed the classes ;p I'll still be working with VFS occasionally teaching other topics, like maybe perhaps an introduction to freelancing course in a few months.

25
 
 

Some context first. The game is a shared 256x256 pixel canvas, people paint it by hand from the browser and an AI called La Maquina spends the day erasing it. Free, no account. Problem is it has basically no players and I'm not going to stream it myself every day, so I tried to let the canvas stream itself.

I already had a 3D spectator view (three.js) with a "stream mode", the camera goes on autopilot and jumps to whoever just painted a pixel and shows their name, and her lines go as captions. So the plan was just put that page in OBS as a browser source and leave it running. It runs on a PC at home that isn't free all day (4060 Ti, NVENC, 1080p30, around 6 Mbps up), that's why the schedule is a bit weird.

At first I wanted a cheap VPS for this but measured before paying. Without a GPU chromium falls back to software WebGL and the scene was doing 0 or 1 fps, with the GPU it's around 100. So no VPS.

Things that broke:

  • when the PC was off and comes back, the browser source started black two times and once with no sound, while the page inside was totally fine. reloading the source doesn't fix the black one, only restarting OBS does
  • if OBS gets killed instead of closed, next start it asks "start in safe mode?" and waits forever because nobody is there to click. the thing it checks is a folder, not a file, lost a whole evening with that one
  • so now there's a small watchdog every 5 min that asks OBS (obs-websocket) for a screenshot of the source and the audio levels. black or silent -> reload, still bad -> restart OBS

For the chat there's a little bot reading the same live events the game uses and posting her lines. Only lines from the bank the game already has, I don't want anything generated going out without me reading it first. When the channel is offline she shuts up, !play and !era work always. And since this week the chat can paint too, !near lights a pixel next to the last one and !more east or !more north keeps drawing from yours, one pixel per message with the same charges as on the web (you have to follow the channel, mostly to keep throwaway accounts out).

Since yesterday it also goes to Kick at the same time, and since today to YouTube too. The PC sends the stream once to a tiny nginx-rtmp relay on the game's VPS and that copies it to all three, so the upload at home stays the same. Kick only takes RTMPS and nginx-rtmp doesn't do TLS, so that one goes through stunnel.

First night without telling anyone: 9 hours, 10 unique viewers (I guess people browsing the Art category) and zero of them went to the game lol. So this post is kind of the real launch.

Live on Twitch, Kick and YouTube weekdays 03:00-12:30 UTC and weekends 01:30-07:00 UTC. The game works anytime: https://ultimaluz.com/r/lemmy-gamedev-canal

If someone is doing something similar ask me, happy to share how the watchdog works

view more: next ›