I have gotten pretty good at it, though. Pretty good. I still fail now and then. But I'm usually able to pull it off.
Here's my advice:
- Ask for everyone to commit to a long session length to begin with. Last one I did, I said "at least 5 hours" and everyone braced themselves accordingly. I'm not saying it's impossible to run a short one-shot (people manage it at conventions all the time, I hear). But I just feel like saying "we're gunna have a complete adventure, with a beginning, middle, and end, by the time we all head home tonight" and then only giving yourself 2 or 3 hours to do it is just setting yourself up for failure. You might pull it off, but it's so much safer to prepare for a longer session and assume you'll need that extra time. Nothing wrong with an occasional big marathon session anyway (provided that you let your players take a break every hour or hour-and-a-half).
- Have as much prep done ahead of time as possible, especially player prep. They should have their characters finished, equipment bought, basic setting info learned, and quest established before you even begin. It is so easy to lose precious time at the beginning of a session to "pre-adventure" gameplay. Regular readers of my blog will know that player-driven, open-world sandboxes are my favorite style of play, but they are optimized for campaigns. If it's only going to be a one-shot, then it's okay to just thrust upon the players your choice of today's quest, and then kick things off as close to the good stuff as you can get. They won't mind the lack of agency regarding that kind of stuff, because they'll be too busy having fun actually adventuring.
- Have something in-game that escalates the situation and keeps things moving forward. The stuff that tends to bog games down the most is player inaction. People talk a lot about "keeping your world moving even when the players aren't" but that's not just a saying. That's actionable advice. Personally, I like to use a timeline with planned events that make the scenario increasingly dire as the session goes on. I find that when I'm keeping track of time, and I'm routinely updating my players whenever the clock ticks ahead, then that does the trick by itself. You might prefer a more time-independent source of regular pressure application, like introducing more monsters or fatigue or darkness or whatever. Dread has escalation built-in because you're literally just playing a game of Jenga but with a story attached.
Most importantly of all, there should be a natural and visible conclusion to that escalation that will inevitably happen by the end of the session unless the players divert it. Think about it: how does a one-off end up needing 2+ sessions? Because you got to the end of that first session's scheduled time allotment but felt like the players still had more they could do. But if you decide beforehand that "the moon will crash into the PCs' hometown by the end of the session" and make it very, very clear to the players, then you can't be tempted into giving them a second session.
And if they fail? Then fuckit, they fail. Honestly, failure is funniest and most easy to deal with in one-shots anyway. It almost always makes for a better story years later. "Remember when we all got together to play D&D at Bob's bachelor party and we went in the dungeon and the dragon killed all of us?" Fuckin' hilarious.
- Similarly, you can combat player inaction by giving them lots of shit to think about. You don't just tell them what today's adventure is. You give them rumors, relationships, personal complications, and lots of telegraphed resources and points of interest to seek out. I know it might sound like a lot for just a one-off, but think of it this way: 1) Bro, you should be re-using your one-shots on multiple groups anyway, and 2) Your players otherwise won't have much to invest themselves in knowing that this character they've made won't be seeing any more action after today, so giving them a handful of little things to grab onto can go a long way towards, in a sense, jumpstarting their investment in the game and churning their imagination. In a campaign, it's usually best for those things to emerge naturally over time. Players will befriend NPCs they like, build a mental picture of the world piece by piece, entangle themselves in drama more and more each session, and so on. But in a one-shot... it's surprisingly effective to just skip ahead and say, "alright, here's your character's life. Spend a few minutes catching up."
- If your game has crunchy tactical combat, then don't plan to have more than one fight in the session. I'm serious. Better to prepare one really cool and dynamic boss fight at the end of a short dungeoncrawl than to deceive yourself into thinking you can run a medium-sized dungeon with 4 or 5 combats in it. Only folks with fast-paced, rules lite combat get to have that experience.