Search Unity

UMod Modding Support Framework

Discussion in 'Assets and Asset Store' started by scottyboy805, Sep 9, 2015.

  1. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    [In Development] UMod Modding support framework for Unity

    Want to support end user modding in your games?

    At Trivial Interactive we are currently developing a modding support framework that aims to reduce the amount of time required to add modding support to your Unity games.


    User modding can extend a games lifetime dramatically as it allows for new and exciting scenarios to be explored as extra content is added to the game. The imagination of the community supporting these games knows no bounds and it would be such a shame to waste that talent. UMod is one solution to allow modders to create and integrate new and exciting content into your games with little effort from the developer or the modder.

    UMod is a complete solution to supporting user created content within Unity games and as such handles all the complicated asset importing and script execution automatically resulting in a trouble free modding experience for both the developer and the community. The framework allows all types of content to be loaded at run-time allowing users to extend your game by including user created animated characters or even entire playable game levels.

    Features
    • Supports scripts, prefabs and scenes.
    • Easily allow the community to extend you game by adding mod support using UMod
    • Save valuable development time by using UMod instead of rolling your own system.
    • Basic mod support out of the box with the ability to add advanced support
    • Allow additional scripts, prefabs and scenes to be loaded at runtime
    • Allow your modders to create their content within the Unity Editor
    • Support for all content that Unity can load from animated meshes to audio clips
    • Allow modders to access game scripts using attributes to control which methods are available
    • Allow modders to attach scripts from your game to their custom content
    • Support for loading mods from file or from URL
    • You modders don’t need to buy expensive tools as the exporter plugin is free for anyone to download
    • Catch runtime errors and display them to the modder
    • All error messages have a unique reference number for quick lookup
    • Support for command line launching (Allows build and run functionality from the exporter)
    • Find all mods in a directory and access their name, description and version

    How it works

    UMod makes use of Unity asset bundles for storing all the mod data which means that the mods can be loaded from the local hard drive or from a URL if required. unfortunately, this also means that the mod has to be built for each platform you want to support. At present, UMod builds for all supported platforms and decides which bundle to load at run-time based on the current platform. This is not by any means an efficient method, especially with large mods, however we have yet to find a better alternative.

    By using Unity asset bundles to export the content, we allow modders to use the powerful Unity Editor to create all of their custom content. this means that all content loadable by Unity can be included from animated meshes to audio clips providing unlimited possibilities for custom content.

    UMod needs to insert lots of meta data into the asset bundle when it is built because it supports many advanced features to allow scripts created by modders to be used in the game. For this reason, UMod cannot work with any asset bundle that was not created with the exporter as the exporter is responsible for linking scripts, prefabs and assets pre-build. Don't panic thought, the exporter will be free to download and feature detailed error messages if something goes wrong to give modders a fighting chance at extending their favorite games.


    Visit our website for more information: Trivial Interactive

    Simple level example




    Feedback

    We would like to get feedback on UMod from all developers so we can improve the end product.

    • Would you use a mod support framework in your game?
    • Do the features sound appealing to you or would add or remove features if you could?
    • Would you do anything different you were developing a similar asset.

    Look forward to some feedback...
    Thanks for looking.
     
    Last edited: Sep 11, 2015
    Ony likes this.
  2. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    I thought I would give a bit of an update as to what UMod can currently do.

    At the moment we are testing our system with very large mods to make sure it works as expected and i am pleased to say that it seems to be working correctly so far, although there are a few smaller issues that appear when using large scenes.

    For testing purposes we are currently using the Unity viking scene from the asset store which comes out at just under 500mb when built into mod form.

    The main problem we are facing at the moment is loading time. It takes about 20 seconds on average to load the mod from the file system and then a further 3-4 seconds to load the scene. It seems like a long time staring at a blank screen so we hope to improve this.

    Another problem that we did not expect is the amount of time it takes to build and export the mod using our custom exporter. We hoped that this would be a quick process taking no more than a few minutes, however on the viking scene in particular, the exporting took over 20 minutes. Must try harder...

    Anyway... here are some screenshots of the viking scene loaded in mod form from file :)



    If you look closely the inspector show all the mod information and the console shows the output from loading the mod.

    Let me know what you think.
     
    Ony likes this.
  3. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    Updated the main post with a short video showing how easy it is to export a basic level in UMod and then load it from a different application.
     
  4. Ony

    Ony

    Joined:
    Apr 26, 2009
    Posts:
    1,977
    We built pseudo-mod support into one of our older games and used an XML format for most of the modding data. Users really liked the idea and it became a large part of the game's appeal. Today, five years later, there are still people actively making and distributing mods for the game. So yes, modding ability can truly add a whole other layer of awesomeness to a game. :)

    Our current game is somewhat set up in the same way but due to the greater complexity of the newer systems it's less robust than in the older game. I'd very much welcome a framework that would expand on modability. Definitely going to keep an eye on your progress.

    Let's say that I wanted to start laying the groundwork for incorporating your system down the line when it's ready. Are there steps I can take now to help facilitate integration later on? Anything I should keep in mind about formats, code structures, etc?
     
  5. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    Thanks for the reply.

    Its good to hear that modding support in games is not a dying art and that it still has a place in modern games. Just out of interest, you mentioned using an XML format for one of your games with regards to modding. Were you able to add new content to your game or only modify the properties of objects?

    With regards to our framework:
    We allow modders to access scripts included in the game if they are tagged with a certain attribute. This allows you as a developer to keep private data away from the modders and have the ability to choose what functionality is exposed. The one thing i would recommend if you were planning to make use of our framework is make your exposed classes bomb proof since incompatible arguments can cause null values to be passed.

    As an example, our current framework allows the modder to access an exposed property in a game script using the following C# code:

    Code (CSharp):
    1. Mod.Property["Player.Weapon.Ammo"] = 32
    This code would find the game object called player and modify the ammo property of the weapon script. Of course since the value is a proper, you can handle invalid values the the 'setter'.

    I plan on uploading the documentation in a few days which will provide a much better overview of the framework so you can see exactly how it works.
     
  6. Ony

    Ony

    Joined:
    Apr 26, 2009
    Posts:
    1,977
    XML was used to control the settings for everything from character shape and textures to the speed and placement of animations. Users could also bring in their own textures to apply to characters, and they could make their own clothing using a combo of XML and custom textures. The only thing I never got in that I wanted to was the ability to import custom objects for the environments. I'd planned on it but never got around to it.

    Pretty much everything in the game was left open for people to mess around with. Someone made a super cool random character generator, and a ton of people make custom characters and clothing, etc. I added a section to the site where they can upload their creations and other users can download them. It worked out nicely.
     
  7. goat

    goat

    Joined:
    Aug 24, 2009
    Posts:
    5,182
    I'll buy a copy. I would definitely use this.
     
  8. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    Thanks, Its nice to know that there is a market for this sort of product
     
  9. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    As promised, I have now uploaded the first draft of the documentation for UMod.
    you can download it from Here to get a better understanding of how UMod works.
     
  10. movi

    movi

    Joined:
    Jan 8, 2010
    Posts:
    4
    Looks good! I'll get one too when this can be get from asset store.
     
  11. Linus

    Linus

    Joined:
    Feb 22, 2012
    Posts:
    112
    Me want.

    For the scripting part... Will the be any security features? Or can any modder wipe your drive?
    Not that using any mod to any game is the safest thing you can do.
     
  12. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    I'm glad you like it.

    At the moment there are no security features so modders have full access to the .Net API. I would however consider adding an extra security layer in the future if there is enough interest.
     
  13. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    The first version of UMod is currently being verified and will be available on the asset store very soon.
     
  14. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
  15. lukamas233

    lukamas233

    Joined:
    Jan 6, 2015
    Posts:
    29
    is there any way to implement this to android or mobile devices?
     
  16. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,193
    Unfortunately no, because the scripting support requires support for JIT compilation which is not available on mobile platforms (Must be AOT). Looking at the Unity docs it is possible that it could run on android as there are no such restrictions but we do not currently support android.