Laiyipao — A Browser-Based Turn-Based Projectile Duel
What is Laiyipao
Laiyipao is a turn-based projectile duel game you can play right in your browser — no install, no signup. Aim, charge your shot, account for wind and gravity, and try to blow your opponent off the map.
If you grew up playing Worms, Gunbound, or the classic Chinese game Dandantang (弹弹堂), this will feel instantly familiar. The whole game lives at:
这是什么
来一炮 是一个回合制投射对战的浏览器小游戏 —— 不用下载、不用注册,打开网页就能玩。瞄准、蓄力、考虑风向和重力,然后把对手轰下场。
如果你玩过弹弹堂、百战天虫(Worms)或者 Gunbound,这游戏会让你瞬间找到熟悉的感觉。
Core Gameplay
Each match is turn-based: players take turns aiming and firing. On your turn you have three knobs:
- Angle — where you’re pointing
- Power — how hard you’re firing (charge it up by holding the fire key)
- Timing — the wind and the map don’t wait for you
A shot hits, kicks up a damage zone, and may break terrain or blocks. Drop someone’s HP to zero and they’re out. Last player standing wins.
核心玩法
每局都是回合制:玩家轮流瞄准开火。你的回合里能控制三件事:
- 角度 —— 你瞄哪
- 力度 —— 力多大(按住开火键蓄力)
- 时机 —— 风向和地图不会等你
炮弹命中后会产生伤害范围,可能炸开地形或方块。把对手血量打到零,对方出局。最后活下来的那一位赢。
Physics That Matter
This isn’t just a static target shooter. Every shot is shaped by:
- Wind — direction and strength change between turns, shown by an arrow at the top. A strong tailwind can carry your shot way further than expected
- Gravity — projectiles arc, so you’re solving “where will it land” not “where is it pointed”
- Destructible terrain — the ground itself gets eaten away. After a few rounds the map looks nothing like it started
- Destructible blocks — extra blocks placed on the map take HP-based damage and visibly crack before they shatter
The result is that the same opening shot rarely works twice — you have to read the wind and adapt.
真正起作用的物理系统
这不是个静态打靶游戏。每一炮都受这些因素影响:
- 风向 —— 每回合方向和强度都会变,顶部有个箭头指示。顺风炮能打得比你预想远得多
- 重力 —— 炮弹走抛物线,你解的不是"瞄准哪儿",而是"会落在哪儿"
- 可破坏地形 —— 地面本身会被啃掉一块块,几回合后地图早就不是原样
- 可破坏方块 —— 地图上额外的方块按 HP 受伤,破之前会有可见的裂纹
结果就是同一个开局打法很难连用两次 —— 必须读懂风向、随机应变。
The Charging Mechanic
Power isn’t a slider you click — you hold and release:
- Hold Space to charge the shot, power climbs smoothly
- Release Space to fire at the current power
Charge curve, max power, and resistance are all tunable in-game via sliders. The settings persist to localStorage, so you can find a feel that suits you and keep it.
It sounds small, but it’s the difference between “press button to shoot” and “I had to physically commit to that shot.” That tactile feedback is the whole point.
蓄力机制
力度不是点一下的滑块 —— 是按住再松开:
- 按住 Space 蓄力,力度平滑爬升
- 松开 Space 用当前力度开火
蓄力曲线、最大力度、阻尼都能游戏内通过滑块调整。设置会存到 localStorage,调到自己手感舒服的位置后会一直保留。
听起来是小事,但它决定了"按一下就开炮"和"我必须身体力行地把这一炮打出去"的区别。手感本身就是核心。
Modes
There are five modes, covering practice, tuning, and real matchmaking:
| Mode | Players | Notes |
|---|---|---|
| Practice 1v1 | You + 1 bot | Single bot opponent, good for learning the physics |
| Practice 3-player | You + 2 bots | Free-for-all with two bots — chaos training |
| Tuning Range | You + a target | No opponent shooting back. Pure target practice for adjusting your charge/power settings |
| Online 1v1 | 2 humans | Real-time matchmaking against another player |
| Online 3-player | 3 humans | Three-way free-for-all over the internet |
The two online modes share a global matchmaking pool, so as long as someone else is queuing for the same size match, you’ll be paired up in seconds.
五种模式
涵盖练习、调试和实时对战:
| 模式 | 玩家 | 说明 |
|---|---|---|
| 练习 1v1 | 你 + 1 个 bot | 单个 bot 对手,适合熟悉物理 |
| 练习 3 人 | 你 + 2 个 bot | 三人混战练习 —— 混乱训练场 |
| 调试瞄准 | 你 + 静态目标 | 没人打你,纯粹用来调蓄力/力度参数 |
| 在线 1v1 | 2 个真人 | 实时匹配真人对手 |
| 在线 3 人 | 3 个真人 | 互联网上的三人混战 |
两种在线模式共用全局匹配池,只要有人和你排同样人数的局,几秒钟内就能配上。
Custom-Recorded Sounds
This is the part I personally love.
You can record your own voice as the launch sound and the impact sound. The game uses your browser’s MediaRecorder to capture audio, validates it, and saves it locally. Then every time you fire or hit, it plays your voice.
I’ve heard people record:
- An exhale + “啊!” as the launch sound
- A muttered “boom” as the impact
- Their cat
- Cursed mouth-noises that should not exist
In online matches, your custom sounds are also sent to your opponents (sanitized server-side), so they hear your voice when you shoot at them. Friendly trash-talk has never been more direct.
自录音效
这是我自己最喜欢的功能。
你可以用自己的声音录制发射音和命中音。游戏用浏览器的 MediaRecorder 录音,做完校验后保存到本地。之后每次开火或命中,播放的就是你的声音。
我见过的录音方案:
- 吐气 + 一声"啊!“当发射音
- 自己嘟囔个"boom"当命中音
- 自家的猫
- 一些不知道该如何形容的鬼畜口技
在线对战里,你的自录音效也会发到对手那边(服务端做安全过滤),所以你开炮时对方能听到你的声音。互相口嗨从来没这么直接过。
How to Start
There’s nothing to install. Just open the link, pick a mode, and you’re in:
- For practice modes: pick “Practice” or “Tuning” — you’ll be in the arena instantly with a bot
- For online: pick “1v1 Online” or “3-Player Online” — you’ll go into matchmaking. Most pairings happen in a few seconds during peak hours
- Set your name and avatar from the menu so opponents know who they’re playing
- Record your sound effects from the menu before queuing for online — that way other players hear them in the very first match
Keyboard: ↑ / ↓ rotate aim, Space fires (hold to charge).
怎么开始
什么都不用装,直接打开链接选模式:
- 想练手:选"练习"或"调试瞄准”,立刻进场带个 bot 对战
- 想在线:选"1v1 在线"或"3 人在线",进入匹配。高峰时段一般几秒就能配上
- 在菜单里设你的名字和头像,对手能看到
- 进在线匹配前先在菜单录好你的音效,这样从第一局开始对手就能听到
键盘:↑ / ↓ 调瞄准角度,Space 开火(按住蓄力)。
Why I Built This
Honestly, because I wanted to play it. The original Dandantang from my teenage years is gone, the modern mobile clones are full of ads and gacha, and I wanted something that:
- Opens in 1 second
- Has zero accounts, zero ads
- Plays with friends just by sharing a link
- Lets me record dumb sounds with my friends and hear them in-game
Six weeks later, here it is. The whole stack is React + TypeScript on the client, plain Express in dev, and Cloudflare Workers + Durable Objects in production, so matchmaking and game state run at the edge with very low latency anywhere in the world.
If you give it a try, I’d love to hear what you think — especially what’s missing or what feels off. The fastest way to ruin a game is to ignore that feedback.
为什么做这个
说实话,因为我自己想玩。当年的弹弹堂早没了,现在的手游克隆品广告满天飞、抽卡满天飞,我就想要一个:
- 一秒打开
- 零账号、零广告
- 想和朋友玩就甩个链接
- 能跟朋友录些蠢音效然后在游戏里听到
六周之后,就有了这个。技术栈客户端是 React + TypeScript,开发期跑 Express,生产环境跑在 Cloudflare Workers + Durable Objects 上,匹配和对局状态都在边缘节点上跑,全球延迟都很低。
试玩之后欢迎反馈 —— 尤其是缺什么、哪里手感不对。毁掉一款游戏最快的方法就是无视玩家反馈。