1. Help us improve the editor usability and artist workflows. Join our discussion to provide your feedback.
    Dismiss Notice
  2. We're looking for feedback on Unity Starter Kits! Let us know what you’d like.
    Dismiss Notice
  3. We’re giving 2017.1 beta testers a chance to win t-shirts and a Nintendo Switch. Read more on the blog.
    Dismiss Notice
  4. Unity 2017.1 beta is now available for download.
    Dismiss Notice
  5. Unity 5.6 is now released.
    Dismiss Notice
  6. Get further faster with the Unity Plus Accelerator Pack, free for new Unity Plus subscribers for a limited time. Click here for more details.
    Dismiss Notice
  7. Check out all the fixes for 5.6 on the patch releases page.
    Dismiss Notice
  8. Learn how you'll soon be able to publish your games to China in four simple steps with Xiaomi. Sign up now for early access.
    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:
    339
    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 have started with a Steam Workshop plugin. It is finished and being submitted for approval right now.
    I want to get the first feedback here.

    Additionally, I'm 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. Next on the road map are Steam leaderboards and highscores, but I can change my plans if someone is in need for something else!

    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: Apr 11, 2017
    AlanMattano and theANMATOR2b like this.
  2. Shawn67

    Shawn67

    Joined:
    Jan 2, 2014
    Posts:
    1,772
    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:
    339
  4. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    339
  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:
    339
    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.