How do you code and deploy DLC's?

General discussion about LÖVE, Lua, game development, puns, and unicorns.
User avatar
togFox
Party member
Posts: 779
Joined: Sat Jan 30, 2021 9:46 am
Location: Brisbane, Oztralia

How do you code and deploy DLC's?

Post by togFox »

My target audience for my project is itch.io which lets customers download game files that need to be installed by the customer - in other words - it does not deploy or do any sort of local file management. It simple "serves" game files - usually zip files (developers decision).

I'm thinking of having a free demo of my latest project but also have a "supporters pack" that unlocks extra content. It will be voluntary of course but I'm trying to think how I would do that with a single code base so I don't need to apply new features and bug fixes to the demo and the 'full' project. Copyright/protection/DRM is not of interest to me as I find that to be a zero-sum game - especially for small scale projects with a small audience.

Maybe the best way to do this is to have two "projects" on itch.io - the first and most prominent project is the demo game and that is the draw card and is heavily marketed. Of course, it doesn't have all the features but cost to buy is $0. I'd have to set up a second itch.io project called "supporters pack" or similar, and it has a zip file with a single 'unlock' file the customer can place in the demo game directory. It be a text file with nothing particularly useful but my single set of source code can detect this file (contents irrelevant) and then make the full feature set available.

Because itch.io doesn't do any local file management (like STEAM does), I'd be entirely dependent on the customer installing that file into the same game folder. I'd have to make instructions super clear and be ready to field support questions for ppl that find that simple operation too complex.

Is there another way to do this without maintaining two versions of the project? Is there anything meaningful I could put in the unlock file?
Current project:
https://togfox.itch.io/backyard-gridiron-manager
American football manager/sim game - build and manage a roster and win season after season
User avatar
thestarknight
Prole
Posts: 10
Joined: Sun Nov 12, 2023 1:19 pm
Contact:

Re: How do you code and deploy DLC's?

Post by thestarknight »

Ok so, you can do that with just one project:

First in Edit project put the project as paid, you will se you can now set a different price for each file you upload .

So for the demo (that is the complete file) just check free download

And for the extra files, the unlocks, put the minimum price you want.
This way they will be unlocked when the user pays more than that price.
Example
Supporter pack 1 - cost 5
Supporter pack 2 - cost 8

If the user pays 8 he will unlock Supporter pack 2 and Supporter pack 1 too. So this way it works as tiers.

If instead you want to sell the packs separately then you need to create different projects.

As a note you can put a link to another itch.io project in your main page that redirects them to buy the right packs. Links to itch.io projects are instant and won't tell the user they are leaving the site, so they are handy but.. yes not ideal.

In the download instructions just tell them to put the files in the save folder where you can check it with love. Is the easier solution.
You could add a button in-game that opens up the save folder for them, so that they have not to browse to find it. Like.. Supporter keys, they click and you open up the folder. os.execute should be able to do that.^^
User avatar
thestarknight
Prole
Posts: 10
Joined: Sun Nov 12, 2023 1:19 pm
Contact:

Re: How do you code and deploy DLC's?

Post by thestarknight »

Another cool solution to check the files could be this

https://www.love2d.org/wiki/love.filedropped

Well, depends if your game's window allows that. Still... drag and drop the license file to unlock it makes the whole process feel so cool xD
User avatar
thestarknight
Prole
Posts: 10
Joined: Sun Nov 12, 2023 1:19 pm
Contact:

Re: How do you code and deploy DLC's?

Post by thestarknight »

...i don't know why I keep thinking about this :D

Yet there might be another more user friendly solution.

Let's use t.indentity !

In your conf.lua file the t.identity field is the name of your game and it defines the save folder aswell

So you can run the game from any folder but the save location will always be one = t.identity

This means that you can simply create some new little lua games, let's call them unlockers, that when run will just show a nice image with "thank you for supporting the game, i love you so much more now" xD. And a nice button to close it.

Now, this is the nice trick: If you set this games t.identity in conf.lua as the same as your main game their save folder will be the same!

So you can just tell the user to run the file to unlock the content. Very user friendly.

This little unlockers will run, say hello, and give you access to correct save folder.
At this point the choices are yours, write a little file ? Open the setting.ini made from your game and.. add a mysterious gibberish key with an obscure value there ? Is up to you.

Just deploy a little unlocker for each pack and upload it to the project, set the minimum price for each and you are set.

Easy, clean, user friendly. ^^

Also with this solution, if you work with tier levels, running the highest tear unlocker you should enable the lower ones too, because the user might run them all or just one. (probably all but you know, better safe than answer emails)
RNavega
Party member
Posts: 251
Joined: Sun Aug 16, 2020 1:28 pm

Re: How do you code and deploy DLC's?

Post by RNavega »

I like thestarknight's drag and drop idea, that's very clean.

But I'd probably just have the full game as the paywalled version. So there are two itch.io projects: A) game engine + shareware assets
B) game engine + shareware + commercial assets.

They're both self-sufficient.
You can totally unpack the paid version on top of the shareware version, and overwrite the common files.
If they accidentally unpack to a different folder, no problem, the full commercial game will still work and that's the important part.
Housekeeping (keeping their drives clean) is the users' responsibility.
User avatar
togFox
Party member
Posts: 779
Joined: Sat Jan 30, 2021 9:46 am
Location: Brisbane, Oztralia

Re: How do you code and deploy DLC's?

Post by togFox »

Some thoughtful thinking there. Thanks!

I didn't know itch can do tiers so I've learned something. I've coded file drop before and it is a very very simple feature that only needs one or two lines of code so that's a great idea. An unlocker exe with t.identity would give me a lot of control with minimal extra effort.

Having a two itch projects - one with a paywall, means I'm maintaining two sets of code.

Thanks both! Great ideas. :)
Current project:
https://togfox.itch.io/backyard-gridiron-manager
American football manager/sim game - build and manage a roster and win season after season
RNavega
Party member
Posts: 251
Joined: Sun Aug 16, 2020 1:28 pm

Re: How do you code and deploy DLC's?

Post by RNavega »

togFox wrote: Thu Feb 08, 2024 12:39 pmHaving a two itch projects - one with a paywall, means I'm maintaining two sets of code.
Just to clarify: the game engine (the executable with the embedded .love) would be the same in both projects.
But the game media assets, including your scene/level files, those would be different and reside outside of the .love archive.

One set of assets would represent the demo game, and the other set the complete game.
The distributed file is a zip archive with one folder, inside that folder there's the executable and a child folder with the assets.

If you're packing assets in the .love archive before embedding it in the executable, and/or describing scenes/levels directly in your Lua scripts, then I can see why it would produce two different .love archives and different executables.
Personally, I prefer structuring things in a slightly data-oriented way, so the .love embedded in the executable only contains engine scripts and is kept separate from other assets like images, sounds, custom data files etc. Then it mounts the local folder to read those assets and "performs" the game, whatever it is.
User avatar
togFox
Party member
Posts: 779
Joined: Sat Jan 30, 2021 9:46 am
Location: Brisbane, Oztralia

Re: How do you code and deploy DLC's?

Post by togFox »

Ah. I see now. That makes a difference.

Thanks.
Current project:
https://togfox.itch.io/backyard-gridiron-manager
American football manager/sim game - build and manage a roster and win season after season
User avatar
togFox
Party member
Posts: 779
Joined: Sat Jan 30, 2021 9:46 am
Location: Brisbane, Oztralia

Re: How do you code and deploy DLC's?

Post by togFox »

So, documenting for others in the future - if you want to use the "tier" system described above, here is what does NOT work:

- I set the free version to "paid" and then ticked the "this is a free demo" option on the free file
- I then uploaded the DLC and set an alternate price for that one (not zero)

Itch would not accept this because I specified PAID but it would not accept $0.00 for the free version. If I set to to something > 0 then it would not appear as a free game - which is important for my marketing strategy.

What I did instead, which was also suggested above, is simply created a 2nd project for the DLC and made that PAID. I then set the them, colours, banner etc to exactly the same as the free product with a hyperlink back and forth. Not hard at all and zero overhead/maintenance for myself. :)

You can click my itch project in the forum sig below and see how that looks.
Current project:
https://togfox.itch.io/backyard-gridiron-manager
American football manager/sim game - build and manage a roster and win season after season
User avatar
thestarknight
Prole
Posts: 10
Joined: Sun Nov 12, 2023 1:19 pm
Contact:

Re: How do you code and deploy DLC's?

Post by thestarknight »

togFox wrote: Wed Feb 28, 2024 1:30 pm
Itch would not accept this because I specified PAID but it would not accept $0.00 for the free version. If I set to to something > 0 then it would not appear as a free game - which is important for my marketing strategy.
My bad there, since I suggested to put Paid, that way It won't appear on the free games.. Obviously that way the whole strategy would backfire.

The solutions to have it free with Tiers is using "0 or donation", so the main file will always be free and if you put a "Tier" price on the extra files they will be unlocked only if the user pays that minimum amount. Also if you set "0 or Donation" it will appear on the free games list, I just tried to be sure and and yes It works and the game was showing as free.

I experimented putting 2 $ as the suggested donation (witch is optional) then I set one extra file at 4 $ and another at 8 $ and they were grayed out in the buy window unless the user pays that price as minimum.

So, yes Tiers works, for both paid and free :D I was sure about it because I brought assets with free and tiers prices. But I am sorry I gave you the wrong tip. Also yes having more projects is fine as well. Some people use the multi project approach, other the tiers one, depends on what bests fits your case.

To show you how free with Tiers looks like, I browsed the assets category and set price "Free", there were others but this one is multi tier and the perfect example ^^

https://kaylousberg.itch.io/kaykit-dungeon-remastered
Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot] and 57 guests