diff --git a/Dockerfile b/Dockerfile index fe762f9..5065746 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,6 +18,7 @@ COPY --from=test /tests-passed /tmp/tests-passed COPY index.html manifest.webmanifest manifest-stg.webmanifest server.py /app/ COPY src /app/src COPY assets /app/assets +COPY promo /app/promo # THE SCORES LIVE HERE AND THIS MUST BE A PERSISTENT VOLUME. Without one the json sits in the # container's writable layer and every deploy silently resets the leaderboard to empty — which # looks exactly like the feature working until the first time you push. diff --git a/promo/index.html b/promo/index.html new file mode 100644 index 0000000..9eec96d --- /dev/null +++ b/promo/index.html @@ -0,0 +1,346 @@ + + + + + +SPLATTER TENNIS — the dead club plays you + + + + + + + + + +
+ +

Real tennis. Until the club turns.

+

SNES-STYLE PSEUDO-3D · UMPIRE VOICE · 15/30/40 · AND THE DEAD

+ ▶ PLAY NOW + MEET THE DEAD + FREE · IN YOUR BROWSER · NO DOWNLOAD · NO ACCOUNT +
+ +
+
+
+

What is it

+

A proper tennis game
with a body count

+

Splatter Tennis opens as a straight-faced 16-bit tennis sim — the kind you + remember from a SNES summer. Toss, time your swing, hold serve. Then you win a game, + the light goes wrong, and the club is on its feet — because the club is dead. From that + point on you serve at zombies, and every tennis ritual keeps running as if nothing + happened: the umpire calls the score, the ball boys still fetch, the crowd still applauds.

+

Hit hard enough and a body splatters. Hit soft and it just gets angry. + Kills score points, points make games, games make sets — and the dead keep coming faster.

+
    +
  • BUILT FOR ONE THUMB · PORTRAIT · ON YOUR PHONE
  • +
  • INSTALLS TO YOUR HOME SCREEN LIKE AN APP
  • +
  • GLOBAL LEADERBOARD · ONE LIFE PER RUN
  • +
  • RECORDED UMPIRE · REAL SCORING · REAL GORE
  • +
+
+
Splatter Tennis on a phone
+
+
+ +
+

How a run goes

+

Every game you win, it escalates

+
+
1

HOLD SERVE

+

Win a real game of tennis against a real opponent. He turns mid-match. They all do.

+
2

SERVE AT THE DEAD

+

Your serve is the weapon. Full power splatters; anything less only staggers them.

+
3

SURVIVE THE HORDE

+

Every set ends in a horde — the racket auto-fires and your finger just has to keep you alive.

+
4

WIN YOUR WEAPONS

+

Bombs, triple serves, flame balls. Never found, never bought — only won in sudden-death duels.

+
5

FACE THE CHAPTER BOSS

+

Every ten games the club sends someone who used to run this place. Contact is still death.

+
+
+ +
+

Five ways to play

+

Modes

+
+
+

CLASSIC TENNIS

REAL TENNIS · BEST OF THREE SETS +

No blood, no bites. A clean, honest SNES-style tennis match — the game the club used to play.

+
+

ARCADE

ONE GAME PER OPPONENT · BLOOD ONLY +

The endless ladder. Eighteen rungs of undead opponents, each one game, each faster and meaner than the last.

+
+

THE TOURNAMENT

FOUR ROUNDS · THE CHAMPION WAITS +

A drawn bracket: round one, quarter-final, semi, and a final that is always THE CHAMPION. Wounds carry between games.

+
+

SPLATTER GORE

NO WARM-UP · SURVIVE THE DEAD CLUB +

Straight into the splatter. Hordes, bosses, ball machines, permadeath — the run summary is the whole game.

+
+

VS A FRIEND

LIVE 1V1 · REAL TENNIS · TWO PHONES +

Live tennis against a friend, phone to phone. Share a room code and settle it on centre court.

+
+
+ +
+

Know your enemy

+

Meet the dead

+

Everyone who worked, watched or played at this club is still here. They have kept + their jobs. The jobs have changed.

+
+
+

SHAMBLER

THE ORDINARY DEADHe was here before any of this.
+
+

THE BALL BOY

STILL FETCHINGHe still fetches. He just bites now.
+
+

THE SPECTATOR

BLOCKS WITH HIS CHAIRHe paid for the whole seat.
+
+

THE STEWARD

HI-VIS · ONE HIT TOUGHERHe is asking you to leave.
+
+

THE RUNNER

ONE HIT · BUT HE SPRINTSHe covers the court. All of it.
+
+

THE BRUTE

SLOW · DRAGS A POLENothing gets past him twice.
+
+

THE BOUNCER

BUILT LIKE A DOORName's not on the list.
+
+

THE ROLLER MAN

HAULS THE COURT ROLLERHe flattened this court. Then the rest.
+
+

THE CLUB PRO

STILL HAS A BACKHANDBeat him and his weapon is yours.
+
+

THE BALL MACHINE

FIRES BACK · FURNITURESomebody left it on.
+
+
+ +
+

Every tenth game

+

The chapter bosses

+

The staff went down with the club — and every ten games one of them walks back on + court, clears the stage, and volleys at you until one of you stops moving. They don't shamble. + They remember the game.

+
+
+

THE GROUNDSKEEPER

He mowed this lawn for thirty years.
+
+

THE LINE JUDGE

Every ball of yours is out.
+
+

THE CHAIR UMPIRE

His call was always final.
+
+

THE HEAD COACH

He taught you every shot you have.
+
+

THE PHYSIO

He knows exactly where it hurts.
+
+

THE SPONSOR MASCOT

The crowd still loves him.
+
+

THE STRINGER

He strung your racket. He knows its limit.
+
+

THE TOURNAMENT DIRECTOR

He is calling security.
+
+

THE STRAWBERRY SELLER

Cream with that?
+
+
+
+ EVERY TENTH CHAPTER · THE FINAL +

THE CHAMPION

+

The name on every trophy in the clubhouse. He returns everything you can hit, he is + faster than anything else on court, and he waits at the end of every tournament. Nobody + has retired him yet.

+
+
+
+
+ +
+

Four surfaces

+

The courts

+
+
+

CENTRE COURT

GRASS · FAST, LOW SKID

+
+

TERRE ROUGE

CLAY · SLOW, HIGH KICK

+
+

THE SLAB

HARD · TRUE BOUNCE

+
+

THE NIGHT COURT

AFTER DARK · TRUE BOUNCE, NO LIGHT

+
+
+ +
+

The umpire is still calling the score.

+ ▶ PLAY SPLATTER TENNIS +

FREE · NO DOWNLOAD · NO ADS · NO ACCOUNT
+ BEST ON A PHONE, HELD IN ONE HAND · ADD IT TO YOUR HOME SCREEN
+ ZERO DEPENDENCIES · HANDMADE PIXELS · QUIET, PLEASE

+
+ + +