A cozy Roblox game where you tap the pond to throw bread, hatch rare ducks and grow your pond. I designed and scripted it, built the UI and made the 3D art.
Real screenshots from the game. The HUD, menus, world and models are all my work.
Golden Duck catch. A rare visitor you catch with a hold-and-release reel bar. The server checks every catch.Blood Moon event. Server events change the whole world while they run.The village. A town square with shops, leaderboards and places to walk up to.Duckdex. Every breed with its odds, sorted by rarity, with rewards for finding them.Trading. Both players press READY, then the server swaps both bags at once.
What I built
The systems behind it
I built the whole game, then kept shipping updates after playtests with real players, kids included.
Gameplay loop
Tap or hold the pond to throw bread. Ducks swim over, eat and hatch more ducks. Sell them for cash, buy upgrades, then rebirth for Feathers to spend in a skill tree with three branches.
Seven pond worlds open up as you rebirth, each with better luck for its own mutation. Boats carry ducks on trips and bring back treasure crates.
UI and HUD
A comic sticker look: ink outlines, a hand-lettered logo, hard shadows and 51 flat sticker icons, warmed up with paper grain and stitched edges.
New players start with a short HUD: the pond, coins, SELL and the shop. More menus show up as they need them. Every list shares one scroll system, popups get their own lanes so nothing covers a button, and I check every screen at desktop and phone sizes.
3D art pipeline
The chunky toy models are made in Blender by Python scripts that run headless. Each one bakes colour and shading into a single texture and exports for Roblox.
Ducks, hats and props come out of the same pipeline, so the style stays consistent. The store icon and thumbnails are Blender renders too.
Rare finds
Every hatched duck rolls for its breed and mutation, and the Duckdex shows the odds for each one. Two mutations can combine into a combo.
The rarest duck, the Mara Duck, is 1 in 1 nonillion. Beginner's luck gives new players a gentler start, so even a 6-year-old can catch the Golden Duck.
Trading
Send a request from a player's profile and build the offer. Both players press READY, a 3 second countdown runs, and the server re-checks both bags. The trade goes through whole or not at all.
A red warning shows when you give far rarer ducks than you get, ducks you've hearted never trade, and you choose who can send you requests.
Fair monetization
Game passes and developer products, with the odds shown before any paid luck or random item. Store offers wait for natural moments.
I turned down tactics that pressure young players into spending. Donations to the Duck Pond Fund only give thanks and a spot on the board.
Live events
Server events like Gold Rush, Duck Storm, Meteor Shower and Blood Moon change the whole server, and each one shows up in the world: meteors, a red moon, falling coins.
Weather like petals, rain, snow and fireflies raises sale prices, with the bonus shown as a number. Duck Races put everyone in the server against each other.
Performance
I measured before and after. Render CPU went from 5.6 to 3.0 ms a frame after I pooled ducks, bread and effects and made far-away ponds lighter.
Player joins no longer cause spikes, and drawn ducks are capped per device: 70 on phones, 90 on PC.
Want systems like these in your game?
I build Roblox UI, scripts and 3D models for other developers, at fixed prices. Tell me what you need and I'll reply with a quote.