Search Unity

  1. Unity 2017.2 beta is now available for download.
    Dismiss Notice
  2. Unity 2017.1 is now released.
    Dismiss Notice
  3. Introducing the Unity Essentials Packs! Find out more.
    Dismiss Notice
  4. Check out all the fixes for 5.6 on the patch releases page.
    Dismiss Notice
  5. Help us improve the editor usability and artist workflows. Join our discussion to provide your feedback.
    Dismiss Notice

Steam Workshop - Easy Steamworks Integration

Discussion in 'Assets and Asset Store' started by FreebordMAD, Mar 22, 2017.

  1. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    358
    Steam Workshop - Easy Steamworks Integration available in the Unity Asset Store

    As some of you know the Steamworks API is a complex thing. Hence, I want to create a super easy Steam integration that can be used by designers who will only need to drag n' drop a prefab into the scene. I want to minimize the coding part as much as possible.

    I'm still searching for Steam features that you developers need to work in an easy way. Therefore, feel free to say what you need for your projects!

    Description

    The Easy Steamworks Integration brings various Steam features to your game with a very few clicks. The Steam Workshop plugin allows to browse, vote, favorite, subscribe and upload user generated content. You can integrate this plugin within your uGUI menus or trigger a browse, upload or update popup with a single line of code. The UI is highly customizable and can be adapted to the look of your game.

    Features:
    • single prefab drag n' drop for static UI
    • single code line for popup UI
    • highly customizable uGUI prefabs
    • search items
    • sort items
    • subscribe and download items
    • vote items
    • add favorite items
    • upload items (create or update)
    • make and upload screenshots with defined resolution
    Screenshots
    [​IMG][​IMG]
    [​IMG][​IMG]

    Game using the Steam Workshop - Easy Steamworks Integration
    - Guts and Glory

    Documentation
    Getting Started
    Link App And Setup Workshop
    Show Independent Popups
    Add To Existing uGUI
    Scripting Reference

    Getting Started
    After importing the Unity package the browse example (in ExampleScenesPopup or ExampleScenesStatic folders) will work out of the box - Steam must be running.
    By default Steamworks.NET will use the Steam AppId 480 - SpaceWar, use it for your Workshop browser integration tests.
    However, it is not possible to upload new levels to SpaceWar.
    Please follow the instructions in Link App And Setup Workshop to browse the Workshop of your game and to use the upload feature.

    Link App And Setup Workshop
    Follow the steps below to set the AppId and to configure Steam Workshop for your game.
    • Start one of the test scenes to generate the steam_appid.txt file in the root of your project (the folder where Assets, Library and ProjectSettings directories a located).
    • Open the steam_appid.txt file and replace 480 with your Steam AppId.
    • Restart Unity Editor to load your new AppId.
    • Login to partner.steamgames.com and open your game's App Admin page.
    • Under Technical Tools hit Edit Steamworks Settings.
    • Go to Application->Steam Cloud and set your data quotas e.g. 1048576000 for data per user and 1000 for number of files.
    • [optional] Tick Enable cloud support for developers only to hide your Workshop work until it is finished for public use.
    • Go to Workshop->General and tick Enable ISteamUGC for file transfer.
    • Go to Publish and apply your changes.
    • Steam might need a few hours for the changes to be applied -> be patient if it doesn't start to work instantly.
    • Now you should be able to browse the items of your game's Workshop and to upload new items by using the provided example scenes (in the ExampleScenesPopup or ExampleScenesStatic folders). You can find a more detailed tutorial in the Steam partner portal.
    Show Independent Popups
    The single code line below will show a Workshop browser popup, which will list all comunity items of your game and allow to search, sort, vote, favorite, subscribe and download them. Please find detailed example code in addition with some other useful hints in the SteamWorkshopBrowseExamplePopup class.
    Code (CSharp):
    1. // show the Steam Workshop browse popup
    2. uMyGUI_PopupManager.Instance.ShowPopup("steam_ugc_browse");
    The code below will show a Workshop item upload popup, which will allow entering the name and description of the item. Besides, it will allow to make a screenshot, which will be displayed as the item icon in the Workshop. Please find detailed example code in addition with some other useful hints in the SteamWorkshopUploadNewItemExamplePopup class.
    Code (CSharp):
    1. // tell which folder you want to upload
    2. WorkshopItemUpdate createNewItemUsingGivenFolder = new WorkshopItemUpdate();
    3. createNewItemUsingGivenFolder.ContentPath = ...;
    4. // show the Steam Workshop item upload popup
    5. ((SteamWorkshopPopupUpload)uMyGUI_PopupManager.Instance.ShowPopup("steam_ugc_upload"))
    6.    .UploadUI.SetItemData(createNewItemUsingGivenFolder);

    The following code shows a Workshop item update popup, which allows updating the name, the description and the icon of an existing item. All changed files in the given folder will be updated or uploaded. Please find detailed example code in addition with some other useful hints in the SteamWorkshopUpdateOwnedItemExamplePopup and SteamWorkshopUpdateItemFromFolderExamplePopup classes.
    Code (CSharp):
    1. // load item data from existing item folder
    2. WorkshopItemUpdate itemUpdate = SteamWorkshopMain.Instance.GetItemUpdateFromFolder(...);
    3. // show the Steam Workshop item update popup
    4. ((SteamWorkshopPopupUpload)uMyGUI_PopupManager.Instance.ShowPopup("steam_ugc_upload"))
    5.    .UploadUI.SetItemData(itemUpdate);

    Add To Existing uGUI
    You will find two prefabs included in the package, SteamWorkshopItemBrowser and SteamWorkshopItemUpload. All you need to do is simply drag n' drop those into your Canvas or add them to any of your UI elements.



    Powered by Steamworks.NET

    The Easy Steamworks Integration series are powered by Steamworks.NET created by Riley Labrecquea. If you are lucky enough to earn some money with your game, then please consider a donation to Riley Labrecquea here.

    Unity Asset Store: https://www.assetstore.unity3d.com/en/#!/content/86189
     
    Last edited: Jun 23, 2017
    AlanMattano and theANMATOR2b like this.
  2. Shawn67

    Shawn67

    Joined:
    Jan 2, 2014
    Posts:
    1,887
    I haven't got a game close enough to be able to submit to Steam yet, so I'm not sure what all the issues/requirements are. But I'm definitely interested in seeing what you put together. :) Watching the thread.
     
    FreebordMAD likes this.
  3. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    358
  4. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    358
  5. iEpic

    iEpic

    Joined:
    Sep 29, 2013
    Posts:
    119
    does it have leaderboards?
    I would buy it if it had leaderboards with playmaker actions.
     
    FreebordMAD likes this.
  6. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    358
    The Steam Workshop asset that is on the store now does not have leaderboards.
    However, it is great that you are asking for leaderboards. This shows me that there is interest in such an asset.
    Currently I'm waiting to see if the Steam Workshop asset is selling at all and if there are people who want to pay for Easy Steam Integration assets.
    I took a look at Nose Goes and I think that Steam leaderboards would for sure improve it.
    Having said all of that above, leaderboards are next on the list, but I cannot tell you when they will be finished.
    Once I have coded the leaderboards it will be a separate Asset Store package.
     
  7. anunnaki2016

    anunnaki2016

    Joined:
    Jun 16, 2016
    Posts:
    53
    Helloooooo my friend

    i have purchase asset now

    Thanks for your work i go add workshop in my game sossurvival check steam please, for look game

    But i have steamworks 9.0.0 there is a few error, if one has the your assets ;( possible update please for steamworks 9.0.0, well if you have steammanager 7.0.0 ok is work steamworks 9.0.0 is not work

    [​IMG]

    thanks for help @FreebordMAD
     
    Last edited: May 27, 2017
  8. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    358
    First of all, thank you very much for using the Steam Workshop - Easy Steamworks Integration. I'm currently working on the Steam Leaderboards package. I took a look at your game. It looks very interesting. Maybe you can also use this package soon counting the days survived or other scores. Is there anything else you want to integrate with Steam?

    Steam Workshop - Easy Steamworks Integration is currently compiled with 9.0.0, but I was able to reproduce your problems with Steamworks.NET 9.1.0. Those are fixed in the current beta. Please send me your e-mail in a pm including your order number, I will then send you the current beta version.
     
  9. anunnaki2016

    anunnaki2016

    Joined:
    Jun 16, 2016
    Posts:
    53
    hi ,

    Great :)

    i need add editor map for add workshop, i go try add in multiplayer photon too, ^^

    i have send you pm
     
  10. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    358
    Already thought about using the Multiplatform Runtime Level Editor? :rolleyes:
     
  11. anunnaki2016

    anunnaki2016

    Joined:
    Jun 16, 2016
    Posts:
    53
  12. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    358
    The MRLE will simply instatiate prefabs that you place in the resource folder. Hence, you can add any script that you want. For example, you could add a script to the door object, which would allow the player to open it when he is close enough or looking at it. Besides, you could make huge levels with the streamed level feature. Objects would be instantiated only if the player is close enough, also they would be hidden if the player leaves the area.
    If you have any further questions regarding the MRLE, then please let us move this conversation to the right thread:
    http://forum.unity3d.com/threads/multiplatform-runtime-level-editor-any-one-interested.250920/
     
  13. Mattiebo

    Mattiebo

    Joined:
    Feb 11, 2013
    Posts:
    12
    Hey there, I'm getting the following error when I use the example upload scenes:

    All the fields are filled-in and the upload adds a blank file with no name, icon or description to my Workshop page. This is on Unity 5.6.1f1.

    Thanks.
     
  14. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    358
    First of all, thank you for purchasing the Easy Steam Integration plugin!
    This error message is coming from Steam:
    Code (CSharp):
    1. case EResult.k_EResultInvalidParam: return "A parameter is incorrect!";
    Have you correctly setup the Steam Workshop of your game in the Steam partner website (data quotas, Enable ISteamUGC and cloud support)?
    http://www.freebord-game.com/index.php/dev-tools/steam-workshop-easy-steamworks#doc_v1_00_link

    Also, please just try again, sometimes Steam needs some time to update their servers with your changes.
     
  15. Mattiebo

    Mattiebo

    Joined:
    Feb 11, 2013
    Posts:
    12
    Thanks for the help, looks like I missed the 'save' button at the bottom of the page after enabling ISteamUGC.

    Also, thanks for making this plugin! I expected to spend a long time working on Workshop implementation, but this will spare me some valuable time to work on other parts of the game.
     
    FreebordMAD likes this.
  16. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    358
    I'm glad that it works now!

    You're welcome. My aim is to create single code line/drag'n'drop plugins for every Steam API. I'm in the submission process of the Steam Leaderboards plugin, maybe you can use it in your game. You would help me a lot to push the Easy Steamworks Integration series on the Asset Store if you would simply copy paste your quote above to an Asset Store review!
     
  17. davenirline

    davenirline

    Joined:
    Jul 7, 2010
    Posts:
    30
    Hello. Do you have a demo version of your product? I just want to simulate the whole thing first before I buy. Like a test upload, download, then loading the downloaded items to the game. From the video, I can only see that it uploads a single file. Can it upload folders instead?
     
  18. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    358
    Steam allows to upload only folders not single files. Hence, the content of a folder is uploaded. In the code of the demo only one text file is uploaded with content, but you can add further files if you need it.
    Feel free to buy it and ask for a refund within 10 days if it does not satisfy your wishes.
    Please pay attention to the Steam configuration guide here: http://www.freebord-game.com/index.php/dev-tools/steam-workshop-easy-steamworks#doc_v1_00_link
     
    theANMATOR2b likes this.
  19. davenirline

    davenirline

    Joined:
    Jul 7, 2010
    Posts:
    30
    I already bought it, but haven't had the time to play with it yet. I'll post here if I encounter problems.
     
    FreebordMAD likes this.
  20. davenirline

    davenirline

    Joined:
    Jul 7, 2010
    Posts:
    30
    Does it have callbacks/hooks for cases when there are errors like during download or upload?
     
  21. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    358