Preparing a project for DLC's

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,846
First Language
English
Has anyone provided, or is planning to provide, DLC's?


How would you go about setting up your project to prepare for the possibility that there will be new content added later on?


What kind of things should devs keep in mind if they are planning to go with DLC's?
 

Kaelan

Veteran
Veteran
Joined
May 14, 2012
Messages
797
Reaction score
537
First Language
Portuguese
Primarily Uses
RMMV
Sounds like the same kind of problem you'd have with episodic games. Bare minimum, you'd want to ensure new content doesn't break saves / is always backwards compatible.

You'd probably also want some kind of patching system in place so people don't have to re-download the game with the DLC.
 

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,846
First Language
English
Sounds like the same kind of problem you'd have with episodic games. Bare minimum, you'd want to ensure new content doesn't break saves / is always backwards compatible.


You'd probably also want some kind of patching system in place so people don't have to re-download the game with the DLC.
Let's assume a patching system exists so that DLC's can be downloaded separately and placed in a folder called "DLC", which the game would read as part of its start-up process.
 

Hudell

Dog Lord
Veteran
Joined
Oct 2, 2014
Messages
3,545
Reaction score
3,715
First Language
Java's Crypt
Primarily Uses
RMMZ
Let's assume a patching system exists so that DLC's can be downloaded separately and placed in a folder called "DLC", which the game would read as part of its start-up process.
In the case of my game, DLCs would be mostly script modifications.

I would only change a map or a map event if the DLC added some new kind of animal or a new NPC.

I've released 12 demo versions of the game up to now and some people have played it for over 10 hours. Most of them started on version 0.8, but I've kept save file compatibility since version 0.5 and I managed to never break anything for them (I've had to make a couple of "update scripts"), so I guess it would be the same thing for DLC, wouldn't it?

The only problem I see with this is that all DLCs would have to be downloaded and I would have to control which one is active in some other way.
 
Last edited by a moderator:

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,846
First Language
English
I've released 12 demo versions of the game up to now and some people have played it for over 10 hours. Most of them started on version 0.8, but I've kept save file compatibility since version 0.5 and I managed to never break anything for them (I've had to make a couple of "update scripts"), so I guess it would be the same thing for DLC, wouldn't it?
Yes, I would say that DLC's are equivalent to any other update to your game, except they are completely optional


If we think of it that way, then I guess the question just becomes "how do you prepare for new content oor updates?"

The only problem I see with this is that all DLCs would have to be downloaded and I would have to control which one is active in some other way.
Would it be possible to have the DLC's determine that? For example, if a DLC is installed, it will automatically do something when you first enter the game or something.
 
Last edited by a moderator:

Hudell

Dog Lord
Veteran
Joined
Oct 2, 2014
Messages
3,545
Reaction score
3,715
First Language
Java's Crypt
Primarily Uses
RMMZ
Yes, I would say that DLC's are equivalent to any other update to your game, except they are completely optional

If we think of it that way, then I guess the question just becomes "how do you prepare for new content oor updates?"
I wouldn't really do anything before hand. I would just make sure the DLC doesn't break anything. If there's any kind of data that needs to be initialized, I would create an "install script" that would be run when loading the game.

Considering this, I believe it would be wise to put something in the save header that says which DLCs were being used in that save.

 


Would it be possible to have the DLC's determine that? For example, if a DLC is installed, it will automatically do something when you first enter the game or something.

 
Sure, the DLC script could easily turn on a switch. And I would check that switch for everything related to that DLC.

It could even be standard: Make the "DLC system" require one switch for each DLC.
 
Last edited by a moderator:

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,846
First Language
English
Let's say you wanted to add a new actor to the game, along with a new set of events and maps that were related to the actor, and required that actor to be in the party in order to activate.


Would this introduce some difficulties, given that the actor and all of the events are provided in the DLC?


Suppose further that you have an existing event that will react differently depending on who approaches it, and your new actor will also need to be considered if the DLC was installed? Would the switch approach work here?
 
Last edited by a moderator:

Hudell

Dog Lord
Veteran
Joined
Oct 2, 2014
Messages
3,545
Reaction score
3,715
First Language
Java's Crypt
Primarily Uses
RMMZ
Let's say you wanted to add a new actor to the game, along with a new set of events and maps that were related to the actor, and required that actor to be in the party in order to activate.

Would this introduce some difficulties, given that the actor and all of the events are provided in the DLC?

Suppose further that you have an existing event that will react differently depending on who approaches it, and your new actor will also need to be considered if the DLC was installed? Would the switch approach work here?
In my case there would be absolutely no problem, because all my events are scripted. But even for other people, I don't see anything here that can't be achieved with a conditional branch or an event condition. 

I'm considering that the only difference between people who have the DLC and people who don't have it is the switch condition.

The only situation I see that maybe would cause some trouble to people is when there's something that should happen only if the DLC is NOT active. They can't add an event condition asking for the switch to be turned off, but you can usually solve that by adding another page on the event.
 

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,846
First Language
English
In my case there would be absolutely no problem, because all my events are scripted. But even for other people, I don't see anything here that can't be achieved with a conditional branch or an event condition. 


I'm considering that the only difference between people who have the DLC and people who don't have it is the switch condition.


The only situation I see that maybe would cause some trouble to people is when there's something that should happen only if the DLC is NOT active. They can't add an event condition asking for the switch to be turned off, but you can usually solve that by adding another page on the event.
I think a single switch to show whether a DLC has been added or not is a good solution.


One thing I'm concerned with is "on-disk DLC".


It's good to plan ahead, but planning to the point where you're already defining events for content that does not exist yet may be frowned upon if someone figures it out.


Because of this, I'm still wondering when the switch would actually be used. If you add a new event through DLC, would the switch be necessary for that event? Probably not, because the event wouldn't exist if the DLC wasn't there anyways.


Now, if you had an event that existed before the DLC was introduced, and you wanted it to only do something when a DLC is installed (via switch condition), wouldn't this imply that you're building DLC content into the game before players even buy the DLC?


This may lead to "why are we paying for things we already bought?"
 

Hudell

Dog Lord
Veteran
Joined
Oct 2, 2014
Messages
3,545
Reaction score
3,715
First Language
Java's Crypt
Primarily Uses
RMMZ
There's one more situation to consider: If the DLC changes an existing map. 

The only way I can see that working is through the Tile Swap script.

Using the switch aproach, there's nothing else we could do.

Not using the switch aproach, we could update the map, but would we be able to keep multiple updates to the map in different DLCs?
 

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,846
First Language
English
That's a good point.


If a DLC is going to update a map (or any existing data for that matter), it will have to do some sort of data merging.


It becomes more complicated when two DLC's have conflicting changes.


For example in the original game, there was an empty patch of land in the middle of the city.


However, when a DLC is installed, something will appear there. But depending on which DLC you install, different things will appear there.


In this case, I'd say the only thing the DLC framework needs to provide is a way for the dev to determine how this should be handled: keep the first one? Keep a specific one? Keep both?
 

Hudell

Dog Lord
Veteran
Joined
Oct 2, 2014
Messages
3,545
Reaction score
3,715
First Language
Java's Crypt
Primarily Uses
RMMZ
About the "on-disk DLC" thing: There's not really any reason to allow someone who didn't buy any DLC to update the game with the DLCs until there is a free update.

And that can be solved if the developer manages to keep track of different versions of the game using GIT or something. The only thing we need to do is make sure any possible combination of updates works for the user. So if I keep the main game + free updates as my GIT head, I can keep each DLC as a different branch. And everytime I release something new I have to make sure that all combinations of branches work as intended.

For example in the original game, there was an empty patch of land in the middle of the city.
However, when a DLC is installed, something will appear there. But depending on which DLC you install, different things will appear there.

In this case, I'd say the only thing the DLC framework needs to provide is a way for the dev to determine how this should be handled: keep the first one? Keep a specific one? Keep both?
The developer shouldn't let the player buy both DLCs in that case. Unless one is an "update" of the other, in which case he needs to say which one takes preference.
 

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,846
First Language
English
About the "on-disk DLC" thing: There's not really any reason to allow someone who didn't buy any DLC to update the game with the DLCs until there is a free update.
You're right, I was reading some articles about how DLC is implemented in the industry (business-side) and tried to steer the framework in a certain direction.


It's something devs should be deciding for themselves whether they want to provide on-disc DLC or not. It's definitely "easier" in a sense, because the only work you have to do is simply unlocking the data, rather than trying to figure out how to merge everything together.

And that can be solved if the developer manages to keep track of different versions of the game using GIT or something. The only thing we need to do is make sure any possible combination of updates works for the user. So if I keep the main game + free updates as my GIT head, I can keep each DLC as a different branch. And everytime I release something new I have to make sure that all combinations of branches work as intended.


Sounds like it can get pretty messy if you have say, 5 updates and you wanted to check that a combination of any 5 updates worked.
Complexity of the task depends on what kind of content is added (a new set of gear probably isn't going to need much testing vs a new story-line between new and old characters, potentially a mix of DLC characters)

The developer shouldn't let the player buy both DLCs in that case. Unless one is an "update" of the other, in which case he needs to say which one takes preference.
It sounds like there would need to be some sort of configuration file for each DLC.
 
Last edited by a moderator:

Engr. Adiktuzmiko

Chemical Engineer, Game Developer, Using BlinkBoy'
Veteran
Joined
May 15, 2012
Messages
14,682
Reaction score
3,003
First Language
Tagalog
Primarily Uses
RMVXA
The game will update the map if the version of the saved game is different than the current version of the game, so even without tile swap the map will get updated... Assuming the DLC will provide the new map data...

Anyway, a discussion about how to tackle DLCs was already present in another thread... I'm sure we have outlined there some considerations and an actual "usable" way to handle DLCs. I forgot the title of the thread
 

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,846
First Language
English
The game will update the map if the version of the saved game is different than the current version of the game, so even without tile swap the map will get updated... Assuming the DLC will provide the new map data...
 
I believe Hudell was suggesting the possibility that two DLC's will update the same map in non-conflicting ways.


For example, a new dungeon appears in the west for one DLC, and another dungeon appears in the east for another DLC.


Does the engine know how to automatically update this?

Anyway, a discussion about how to tackle DLCs was already present in another thread... I'm sure we have outlined there some considerations and an actual "usable" way to handle DLCs. I forgot the title of the thread
Would be useful to know what thread you're referring to if a solution was already found (and perhaps implemented?)
 
Last edited by a moderator:

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

How many parameters is 'too many'??
Yay, now back in action Happy Christmas time, coming back!






Back in action to develop the indie game that has been long overdue... Final Fallacy. A game that keeps on giving! The development never ends as the developer thinks to be the smart cookie by coming back and beginning by saying... "Oh bother, this indie game has been long overdue..." How could one resist such? No-one c
So I was playing with filters and this looked interesting...

Versus the normal look...

Kind of gives a very different feel. :LZSexcite:
To whom ever person or persons who re-did the DS/DS+ asset packs for MV (as in, they are all 48x48, and not just x2 the pixel scale) .... THANK-YOU!!!!!!!!! XwwwwX

Forum statistics

Threads
105,853
Messages
1,016,986
Members
137,561
Latest member
visploo100
Top