Your Playbook to Win Solana Speedrun
Product advice for devs participating in the first virtual Solana Game Jam
Solana’s first virtual game jam, Solana Speedrun, is being hosted by MagicBlock & LamportDAO from the 26th to the 30th of July.
All teams need to build their game around a main theme which will be revealed before the event starts. You have 120 hours to build a playable game that is either entirely on-chain or incorporates Solana in some meaningful way (e.g. on-chain assets, economy, etc). If you can do it, there are $25k worth of prizes up for grabs!
You don’t need to be an advanced game developer to participate. This is like gully cricket for hackathons, it levels the playing field between Sachin Tendulkar & S.Tendehar by introducing constraints. Don’t expect the next Fortnite to come out of this, but rather a large number of casual mini-games.
There are already some technical & community resources out there to help you get started. In this essay, we’ll provide what we think is one missing link, a product framework needed to build a working game in 120 hours.
TL;DR — It comes down to these 3 things:
Distribution. Build your game as an xNFT. You get better distribution, an integrated wallet & simplified development.
Gameplay. Keep it simple. Build a direct feedback loop & gradually increase the level of difficulty. Create shareable moments.
Table stakes. A few necessary but insufficient elements of a great game.
Distribution
There are 65+ xNFTs live on mainnet, 15 of which are games.
Here’s why we recommend you build your game as an xNFT:
You get to focus on building the best game you can. Backpack simplifies the process of connecting to the blockchain, managing a wallet, boilerplate components, etc. Additionally, primitives like soul abstraction enable you (and others) to carry out targeted airdrops for in-game assets, custom skins, etc.
You benefit from network effects generated by other successful xNFTs & Backpack itself. As individual apps within Backpack, or Backpack overall, becomes popular more users will see and potentially try out your game.
This is valuable early distribution from both ends of the spectrum; power user communities (e.g. MadLads) can unlock viral growth within CT & new-to-crypto users discover your app in a trusted environment with their freshly minted wallet ready to go in the background.
Casual games are best played on a mobile device. We’re more habituated to keep going back whenever there’s a few minutes of downtime, as opposed to desktop which is more deliberate. Your game will get its biggest form factor upgrade, for free, when the Backpack mobile app launches — soon.
We think these benefits far outweigh any trade-offs wrt the tech stack restrictions or client dependencies, especially in the context of this game jam.
Gameplay
Regardless of which platform you choose to build on, the most important thing is that your game is fun to play.
Onboarding
The design, context, and actions are somewhat unique to your game, so they’re unlikely to be intuitive. Use simple prompts & overlays to help players get to their first magic moment as quickly as possible. Avoid elaborate backstories & too much lore upfront — build it along the way. This blog post shows how you can use short texts, forced actions & visual goals as onboarding tools in causal mobile games.
If you have in-game assets ensure you give new players a starter pack for free which allows them to get a taste of the game. Asking people who’ve never heard about you or your game to spend $$ before they even try it, is guaranteed to result in high abandon rates.
Core Game Loop
Don’t feel compelled to design complicated gameplay with lots of moving parts. Keep it simple with a direct feedback loop. DRiP’s legendary lock-in literally requires you to push a button and it has 20k+ daily plays. Of course, that’s a function of their distribution and a chance to win a legendary — but there’s a lesson in there.
Whenever you ask your users to do something, show them the effect their action had on the game using both visual and audio effects. Here’s a small clip from a game called Pack Your Backpack by Quantum Jackson and team. It’s live in Backpack and free to play, try it out and let me know if you get past level 3.
Shareable moments
Growth is not an afterthought you arrive at after building the product. Giving users something they want to share or brag about on social media is a great way to build growth loops into your gameplay.
This is particularly important because the development effort you incur is very low and the potential for growth it drives is very high. For e.g. It is unlikely that Wordle would have achieved a million DAU and subsequently a million dollar sale without the sharing feature which lets you brag about the number of attempts you completed it in.
The important point is to not just enable sharing but to package it such that there’s something meaningful to share or brag about. If you could just share that you’d completed a Wordle - that wouldn’t be as cool as showing the number of attempts you solved it in.
Table stakes
Speed, Responsiveness & Low Latency
No one will play your game just because it is on Solana or has NFTs, it needs to be fun. Slow is boring.
Speedrun has a track for an entirely on-chain game, i.e. the state and logic are on-chain while the client could remain closed source. Presumably, this is useful if you want other developers to build on top of your game or if transparency is a feature (e.g. sports betting). However, in most cases, we think you’re better off integrating Solana partially and wherever appropriate. We’re open to hearing about more use cases that require the entire game logic to be on-chain.
Regardless, your game needs to feel fast. How fast? Anything over 40ms is noticeable, and beyond 100ms feels too slow when it comes to games.
You need to own this, not the underlying chain or the RPC provider, or Austin. This could mean using a cache or a local DB, and likely tens of other small performance optimizations.
Saving Progress
If your game has multiple levels ensure you save progress associated with each player. Nothing kills user stickiness faster than having to replay levels you’ve already completed. This is also a feature request for the Pack Your Backpack team — I’d have attempted level 3 many more times if I didn’t need to clear the first 2 levels each time I started a new session.
Basic Controls
It is ok to build invasive features as long as you give your users control over them. For e.g., if your game has audio then include the option to turn it off.
All the best to everyone who participates, we’re super excited to see what you build. Here’s the sign-up form once again for quick reference.
Pro-tip: Drop by your local Superteam’s discord and share what you’re building. You may find a teammate, co-founder, designer, or your first set of beta testers in there.