• Hey Guest! Ever feel like entering a Game Jam, but the time limit is always too much pressure? We get it... You lead a hectic life and dedicating 3 whole days to make a game just doesn't work for you! So, why not enter the GMC SLOW JAM? Take your time! Kick back and make your game over 4 months! Interested? Then just click here!

(Discussion) How you would manage adding files to your game after its compiled (DLC) ?

Evanski

Raccoon Lord
Forum Staff
Moderator
I've been thinking a lot about being able to make a system for my game to load a .png file and use it as a sprite for an object, but I'm at a loss of how to make that sort of thing.
As I see it unless you make something for your game that allows that everything for your game is locked in the data.win and you'd need to replace the data.win file to add something new, maybe even replace the .exe
Im not really looking for help on the topic as Im not actively working on this feature right at this moment, but I'd love to hear how the experts that have done this go about doing so.

TL;DR
How do you go about adding support for dlc/updates for your game after its been compiled?

Thanks.
 

Yal

🐧 *penguin noises*
GMC Elder
Many games just include the DLC data in the main game and restrict access to it unless you've bought the DLC (and rolling out new content in a mandatory update for everyone). One of the reasons for this is multiplayer games, it would be pretty poor show if your game would just crash if you get matched with a player that has bought DLC your game doesn't even know exists. Of course, this solution makes it easier for people to hack your game and unlock the DLC for free, but let's face it, you're not gonna win against the pirates if not even the big companies can hold their ground.
 
D

Deleted member 45063

Guest
What I do is externalize the assets from the beginning. That way you already have all of the systems in place to handle that, even for the core of the game. Then adding a DLC is just a matter of extending the external assets to cope with the new content. You can then have some sort of catalog of what should be loaded by the game (in which case you'd need to update it as you add/remove mods/dlcs) or just scan the disk for all applicable content. You can then go to different lengths when it comes to validating the validity of the external assets (I don't usually care much, or at least I still haven't had any project where I would care), from simple hardcoded hashes for the core content to digital signatures to whatever you want.
 

YanBG

Member
What I do is externalize the assets from the beginning. That way you already have all of the systems in place to handle that, even for the core of the game. Then adding a DLC is just a matter of extending the external assets to cope with the new content. You can then have some sort of catalog of what should be loaded by the game (in which case you'd need to update it as you add/remove mods/dlcs) or just scan the disk for all applicable content. You can then go to different lengths when it comes to validating the validity of the external assets (I don't usually care much, or at least I still haven't had any project where I would care), from simple hardcoded hashes for the core content to digital signatures to whatever you want.
Same here, graphics are in Included Files as PNG spritesheets, then to choose the corect frame for animation i draw a part of that spritesheet like it's a background. If your data is also in csv/json files then even without any info for the DLC content in the exe you don't have to edit or resend it, just the new graphics and updated data files(anything that got changed).
This also makes it easy for fans to create mods and edit the graphics/data.

For a PvP multiplayer game, you might want players with base game to be able to play with DLC owners. Then have everything inside the game folders of all players like @Yal said, just lock the DLC from the base game. On Steam it compares all files and if something is different throws Out of Sync, everyone would have to use the same mod.
 
Last edited:
Top