How to Distribute a Daily Challenge for your Game to your Players with no Server or Download Content
There are quite a few games (mostly mobile, but also on other platforms) which rely on a concept of infinite gameplay, with some additional time-gated content. You know how it works: “You only have XX hours left to finish this challenge!“.
These kind of content is great for several reasons:
Time-constrained content drives player adoption and make them loyal to your game. Think about how many games there are where you’ve gone online, maybe just to get a daily reward, or play the daily challenge?
These levels are often presented as being a challenge and harder than normal levels, which make them an excellent opportunity to sell some more game bonuses (extra lives, better weapons… You know the drill) or show some sweet ads.
The main problem with this is you’ll need to set up a system to handle all this:
Either the player will have to download extra content (through updates or DLCs)
Or you’ll have to set up a server to stream the special levels to the player and avoid all the mess related to adding extra assets to your game binaries
But there’s one more solution, which can be really nice to use, and is pretty simple. In this kind of cases, it is quite likely that you have an algorithm generating your content (don’t tell me these 1000s of levels of Candy Crush are handmade…), so how about basing the content of your daily challenge on a seed generated from the current date?
This way you can ensure that all players worldwide are playing the same levels, while avoiding any kind of data transfer. You’ll also get some nice added benefits: it is still possible to keep your ranking system or other related system if you have them, and check if the generation process is valid ahead of time (if you’ve written comprehensive tests on your content generation process, you can ensure there will be no problem for the next X periods by iterating on the seed).