Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

How to create DLC with Unity 2020.3 LTS

Discussion in 'Scripting' started by DomeCreator, May 6, 2021.

  1. DomeCreator

    DomeCreator

    Joined:
    Mar 5, 2020
    Posts:
    28
    Hello all,

    I've made some researches about the way to create DLC, I've seen old posts and some people talking about asset bundle other talking about adressable ...

    In fact after all thoses researches I still don't know what is the best way to create a DLC, should I first implement adressable, then use asset bundle to "package" my DLC download and then save my DLC content ? Does adressable really needed for a DLC ?

    I'm a bit lost on the right way to do that and as I'll do this on a huge project I don't want to lost time on the wrong direction, so does someone have a good idea on how to create DLC and most of all what are exactly their limitations ?


    I'm currently using Unity 2020.2.2f1 but I can upgrade if needed.
     
  2. Kurt-Dekker

    Kurt-Dekker

    Joined:
    Mar 16, 2013
    Posts:
    36,713
    Everything I have heard from Unity is that it's addressables forever from now on.

    They look scary and massive and daunting but just start working through a few tutorials.

    They're really not that bad.

    In fact, our entire team is spinning up for all of our new games to use Addressables.

    Do NOT UNDER ANY CIRCUMSTANCES try to implement this in your game first.

    Make a throwaway project and make some DLC for it and implement it that way, after you have done a few tutorials. Make yourself some different sprites or cubes or textures or whatever with your "test DLC" and download it to your test project. That should take you less than a day in all, and the learnings you will get will open your brain in amazing new ways.

    Nope, you can always write your own system... be my guest! Remember, you can also write your own game engine but you're using Unity3D, so why not use Unity3D's DLC system?
     
    Brathnann likes this.
  3. DomeCreator

    DomeCreator

    Joined:
    Mar 5, 2020
    Posts:
    28
    Thanks @Kurt-Dekker,

    So for you adressable is the new right way to create DLC things.
    Does assetbundle be deprecated in a few years you think ?


    You're so right :)
     
  4. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    The Addressables system uses Asset Bundles under the hood. It is more of a wrapper than a replacement.

    I just want to point out a common alternative approach to DLC's. Very often today all DLC content is actually included in the base game, and when a user purchases a DLC that content is merely allowed for use rather than downloaded. I believe most games for PC's and consoles use this approach today.
     
    Kurt-Dekker likes this.
  5. DomeCreator

    DomeCreator

    Joined:
    Mar 5, 2020
    Posts:
    28

    Thans @Joe-Censored , in fact I don't know now what could be added inside the project.

    I really want to create a base platform that contains some modules, and being able to add new modules with new content as soon as I want without re-building the entire project.

    For example on switch you can find that game : "sega megadrive classics", one game that contains many games, if they want to add another game inside the collection, they create a DLC and tadaaaa you can see a new game in the gallery.

    I really want to do that.
     
  6. Kurt-Dekker

    Kurt-Dekker

    Joined:
    Mar 16, 2013
    Posts:
    36,713
    Then do it!

    Just remember that new code cannot be (easily) delivered via asset bundle or addressibles, only non-code assets.
     
  7. DomeCreator

    DomeCreator

    Joined:
    Mar 5, 2020
    Posts:
    28
    Yes I know that's why I'm searching the best way to add everything I want in a "DLC"
     
  8. Kurt-Dekker

    Kurt-Dekker

    Joined:
    Mar 16, 2013
    Posts:
    36,713
    Why? That sounds like a LOT of extra work. Making fresh builds is so trivial, who cares if you have to cut a fresh build to go along with DLC? That's almost expected... nearly 100% of console and PC games actually require a TU (Title Update) when new DLC is released. There's always bugs that got fixed, libraries that must be updated in order to comply with technical requirements, etc.
     
    Joe-Censored likes this.
  9. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    All C# code has to be included in the game build anyway. They can't be added via Asset Bundles.
     
  10. DomeCreator

    DomeCreator

    Joined:
    Mar 5, 2020
    Posts:
    28
    Simply because I want to make the main project build but I want people to create content, not me or my team. And I won't give them the entire project but just a package to allow them creating DLC for the main project.
     
  11. DomeCreator

    DomeCreator

    Joined:
    Mar 5, 2020
    Posts:
    28
    I know that prefab can be added on assetbundles, it's not possible to add behavior on that prefabs ?
     
  12. Lurking-Ninja

    Lurking-Ninja

    Joined:
    Jan 20, 2015
    Posts:
    9,904
    It is not supported by Unity in any shape or form. If you are looking for patchers and those short of things, they are a couple available in the asset store.

    If you want your users to write code for you, then you will need to include either an interpreter (Lua, Python or whatever) or a compiler (Roslyn).
    Either way you need to work out yourself what to publish for these "mods", you need to build the API and plan for what happens if your users blow up each others computer. (kidding, they only will install keyloggers, cheaters, etc unless you sit there and check every line of code you allow your users to share and install).
    Also, there are countless Lua Unity plugins all over the internet or on the Asset Store, even for free. There are some python too, I saw PHP too if you're a sadist and masochist at the same time... :D
    And you can find a plugin-system /' Roslyn compiler asset on the asset store for cheap.

    If I remember correctly, for example Rust (the videogame) uses a Roslyn to allow the users to extend their games, maybe just the servers. You can look into it, I haven't spent too much time with these things.