← Alle prosjekter

Dr. Zerg

Et puslespill med fallende kapsler for flere spillere, laget så vennene mine i California og jeg kunne fortsette å spille sammen.

2026 TypeScript, Canvas, Cloudflare Workers, WebRTC

Spill nå →

To flasker i pikselgrafikk side om side, én for spilleren og én for datamaskinen, med fargede bakterier og fallende kapsler.

Vennene mine i California og jeg pleide å spille Dr. Mario på nett på Switch mens vi snakket i telefonen. Da forsinkelsen ble så ille at det ikke gikk an å spille, lagde jeg vår egen versjon.

Det har vokst langt forbi den opprinnelige idéen. Du kan spille alene, mot datamotstandere, opptil fire på samme skjerm, på nett, eller med en blanding av sofa- og nettspillere i samme kamp. Det støtter spillkontrollere, har tale- og tekstchat, og fungerer på PC og iPad (og teknisk sett på mobil). Mye av det kom fra ønsker. En venn ville spille fra iPad i arbeidspausen, med kontroller, og blande folk i sofaen med folk på nett. Selv ville jeg kunne få søppelet til å falle raskere, noe originalen aldri lot deg gjøre.

Noen valg jeg er fornøyd med

  • Ingen forsinkelse, med vilje. Hver spillers spill kjører helt i egen nettleser, og serveren sender bare oppdateringer videre mellom spillerne. Forsinkelse i nettet påvirker når du ser de andres brett, aldri hvordan ditt eget spill reagerer. Det var hele grunnen til at jeg lagde det.
  • Sofa og nett i samme kamp. Folk som deler en skjerm, blir med i et nettrom som egne spillere, hver med sin kontroller, så en gjeng i sofaen kan spille mot venner i et annet land.
  • Datamaskinspillere fordelt rettferdig. I nettrom kjører datamotstanderne i spillernes egne nettlesere. Hver runde deles de ut jevnt, til den som kjører færrest, og en skjerm med sofagjester regnes allerede som travlere. Serveren kjører aldri et spill selv, så alt får plass på gratisplanen hos Cloudflare.
  • En datamotstander som føles menneskelig. Den varierer reaksjonstiden, nøler av og til på de letteste nivåene, bygger opp kjeder å angripe med, og går over til å overleve når stabelen blir for høy.
  • Tilkoblingsproblemer pauser alle. Faller noens tilkobling ut i et par sekunder, pauses alle brettene så ingen taper urettferdig, og det er en frist for å koble til igjen.
  • Tale går direkte. Talechatten kobler spillerne rett til hverandre, så lyden aldri går gjennom serveren.
  • Små sperrer mot uhell. «Tilbake til lobbyen»-knappen er ikke forhåndsvalgt etter en runde, så et tilfeldig knappetrykk ikke avslutter kampen for alle. Skriving i chatten er slått av mens noen spiller.

Musikk og lyd genereres i kode. Nettrommene kjører på Cloudflare i det østlige Nord-Amerika, omtrent midt mellom Norge og California. Spillogikken er enhetstestet, og en nettlesertest spiller en ekte nettkamp, inkludert at en spiller faller ut midt i.

Kildekode på GitHub

Neste: BeepKeep