DEV Community

Cover image for I remade my mobile game's trailer. Gameplay in a frame, text outside it.
Rahim Khan
Rahim Khan

Posted on AI-assisted

I remade my mobile game's trailer. Gameplay in a frame, text outside it.

This week I took every promo clip for my games off YouTube. They weren't broken. They were just too much: gameplay stretched edge to edge, big captions sitting on top of it, cuts so fast you couldn't follow the shot. My game is a puzzle game about one careful shot, and the clips felt like the opposite of that.

So I rebuilt the trailer for Bloop: One Bullet Ricochet, one game at a time, with a few rules I'm keeping from now on.

Rule 1: the gameplay gets a frame, the text stays out of it

The real game capture sits in the centre in a rounded card with a glowing border. Every headline lives in a band above the card, never on top of the gameplay. The card never moves out of place, only what's inside it changes, so the eye always knows where to look.

The band isn't random. On a 1080x1920 video, TikTok, Reels and Shorts cover the bottom and the right edge with buttons and captions. Combining their published safe zones leaves roughly y 288 to 1248 and x 120 to 888 for anything you want people to read. All my text sits inside that box. The bottom of the gameplay card can go under the buttons; the words can't.

Rule 2: gameplay in the first second

The video opens mid-ricochet, on a shot that says TRICK SHOT and DOUBLE in the first second. No logo first. Google Play's own guidance for preview videos points the same way: show the core of the game within the first 10 seconds, and keep at least 80% of the video as real gameplay.

Rule 3: one line of voice per shot

I wrote the voice-over before picking shots: 38 words, about 2.2 words per second over 18 seconds. Each line lands on the shot it describes: "Bounce it off the walls" on a bank shot, "Climb the global leaderboard" on the leaderboard.

I made 8 AI voice samples with ElevenLabs and picked one. The first three sounded too flat for a game ad, so the next five used ElevenLabs' newer, more expressive model, and that's where the winner came from. I can't judge audio by eye, so every take went through speech-to-text before I listened: all words present, no stage directions read out loud, no clipping. The final mix got the same check.

Rule 4: no slow motion on gameplay

My first cut slowed down the 3-star ending to make it dramatic. It looked laggy, like the game was dropping frames, which is the worst thing a trailer can suggest about a game. Every clip now plays at real speed. The one exception is the level map scroll, which runs faster than real time; speeding up keeps it smooth, slowing down doesn't.

Rule 5: cut on the beat, decorate the outside

The music runs at about 119 BPM, and every cut sits on a beat. The extra polish all happens outside the card: a small glow that ricochets around the border on each cut, a shockwave behind the card when something pops, the border colour changing per shot, and a few Bloops peeking out from behind the frame. The gameplay itself stays untouched.

Rule 6: one edit, more than one cut

Google Play's preview video rules ask you to avoid calls to action like "Download now" and words like "Best" or "New". So the Play version is a separate render: the same edit, with the App Store mention removed from the end card and the voice-over, and a shorter end card so more of it is gameplay. Apple has its own rules for App Store previews (screen captures of the app only), so that one gets its own cut later.

The numbers

  • 4 recording takes, about 11 minutes of footage, 7 shots used
  • 18 seconds for social, 16.5 for Google Play
  • 38 words of voice-over, 8 voice samples, 1 pick

The game itself is free on Google Play and the App Store. I used AI tools for some of the art; the design, code and levels are mine. The trailer was built in Remotion with help from AI tools, and the voice-over and music were made with ElevenLabs.

If you've made a trailer for a mobile game: what's the one rule you'd never break again?

Top comments (0)