Search Unity

[RELEASED] itchworks - Unity Itch Integration

Discussion in 'Assets and Asset Store' started by SkyTech6, Jan 29, 2017.

  1. SkyTech6

    SkyTech6

    Joined:
    Jul 14, 2015
    Posts:
    151


    ASSET STORE
    Example | Documentation

    Itch.io is the go-to platform for indies looking to share their games with the gaming audience. Itch is a great platform, but it lacks in-game integration.

    itchworks hopes to remove that con from the pro-con list all together! Integrating our framework into your game is super simple with very short setup steps (which our documentation will walk you through).

    From there you'll have access to numerous amounts of information about who is playing your game with very simple and easy to remember variables.

    Including:
    - Itch Display Name (if none, uses Itch Username)
    - Account ID
    - Profile Avatar (+ default itch icon)
    - Press Member Status

    Don't like itch.io because of the lack of DRM? It's understandable. If you're making an online multiplayer game you need it. Therefore we've added it.


    - DRM Purchase Validation
    - Anti-Crack Measures


    Optionally, you can force players to use the Itch App (for 100% DRM) by checking if they are using the App or not. (Shown in Example/Demo)

    In-Development Features:
    - DLC / In-Game Rewards
    - Itch Login w/o Itch App (view documentation for info)
    - Playmaker Integration
    Do you have any feature requests? Please post below! I'll be working towards making this the go-to integration of Unity & Itch. If it is possible to add, I will do it. (I'll be working my way into the itch staff's heads until they allow me access to login endpoints because I already know that'll be the #1 request)
     
    Last edited: Dec 29, 2018
  2. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    Playmaker integration would be very nice, though if it's as simple as you say - without having to code anything integration isn't needed.
     
    SkyTech6 likes this.
  3. SkyTech6

    SkyTech6

    Joined:
    Jul 14, 2015
    Posts:
    151
    I don't own Playmaker, but I'll see what I can do about getting that. ^_^
     
    theANMATOR2b likes this.
  4. SkyTech6

    SkyTech6

    Joined:
    Jul 14, 2015
    Posts:
    151
    Playmaker Integration Update: I now own Playmaker and will begin making an integration asset for them that will release (for free) shortly after itchworks' own release. ^_^
     
    theANMATOR2b likes this.
  5. SkyTech6

    SkyTech6

    Joined:
    Jul 14, 2015
    Posts:
    151
    itchworks has now released onto the asset store! Playmaker Integration still in the works.
     
  6. SkyTech6

    SkyTech6

    Joined:
    Jul 14, 2015
    Posts:
    151
    Update 1.0.1 Went Live.

    -Fixed the Itchworks assembly not being recognized on Unity 5.5.

    This was a high priority support email to address, as such it delayed other things. However, Playmaker Integration is still planned and is the next priority for working on.

    Thank you all to anyone who has so far purchased the app ^_^
     
  7. SkyTech6

    SkyTech6

    Joined:
    Jul 14, 2015
    Posts:
    151
  8. SkyTech6

    SkyTech6

    Joined:
    Jul 14, 2015
    Posts:
    151
    Do you wish you could release DLC for your games on Itchio? I know I do! That's why it's the next goal for Itchworks. In order to show the Itchio team that this is a feature people would like, please go comment in the following places

    https://itch.io/t/75228/suggestion-rewards-api

    https://github.com/itchio/itch/issues/1194

    ---

    Also for anyone waiting for the Playmaker Integration update, I promise it's still coming. I'm personally having a hard time getting a grasp on visual scripting as well a lot of other tasks to do. I'll try to get the integration completed before mid-June (E3)!
     
    theANMATOR2b likes this.
  9. SkyTech6

    SkyTech6

    Joined:
    Jul 14, 2015
    Posts:
    151
    Hey all. Just a little bit of random headsup. If you'll be attending the E3 Expo and happen to run into a guy (me) and we talk about Unity / Itchio. I'll bring up Itchworks in the conversation (that's word of mouth marketing haha). If this situation so happens just say you saw this post and I'll give you a free copy of Itchworks!

    Likely we'll run into each other? Idk. But I like the idea of it haha. I'll also be giving away voucher codes to my asset Deck Generator and my upcoming asset as well! Have a good expo everyone!
     
    theANMATOR2b likes this.
  10. Neo-Gamefactory

    Neo-Gamefactory

    Joined:
    Oct 18, 2012
    Posts:
    145
    Hey looks very nice :)
     
    SkyTech6 likes this.
  11. TheBored

    TheBored

    Joined:
    Aug 23, 2014
    Posts:
    10
    Was hoping to find out if there's an alternative to using the developer API key in such an open manner. By embedding the API key into the project like this, you give anyone with access to the game a way of seeing download count and total sales. I don't see a method of restricting API keys to specific usage, so I'm wondering if there's a way to not use the API key within this asset and still maintain functionality.

    Thanks!
     
    SkyTech6 likes this.
  12. SkyTech6

    SkyTech6

    Joined:
    Jul 14, 2015
    Posts:
    151
    That's a good point!

    I do want to avoid going into much detail about how I handle interfacing with the Itch servers (eventually someone will try to crack my DRM and I'm not wanting to make it any easier for them haha), but currently the EditorAPIKey is actually only for interfacing your account when you're testing In-Editor and isn't used during an actual standalone.

    So when you build your project you could just delete that variable and it won't be needed to have Itchworks functionality in a standalone. However, I'll also go ahead and make a change to the asset so that even if you don't erase it before building, it won't compile that variable into the builds.

    Thanks for bringing this to my attention, as it slipped my mind. ^_^
     
  13. Dorumeka

    Dorumeka

    Joined:
    Aug 19, 2017
    Posts:
    18
    Hi, I'm sorry if this is a too uninformed question, but, as an indie dev, what possible advantages would I have if my game has itch integration? I might just not have the vision or experience. This is an attractive buy, but I'm just not sure what usefulness it would have.

    Thank you.
     
  14. SkyTech6

    SkyTech6

    Joined:
    Jul 14, 2015
    Posts:
    151
    The biggest benefit of it is of course the DRM solution. The Itch platform, along with GOG, are completely DRM-free distribution channels. If you sell your game there then someone can purchase it, download it, and then share it on any website. With Itchworks, you can make it so the game will only allow them to play via the Itch App using an account that purchased the game.

    Other than that single-player games would get none of the other benefits, such as using Itch profile username/display name, profile picture, and other tidbits such as that. (Although you could use those integrations with your single player game if you wanted? haha) I certainly think online multiplayer games benefit from showing the player's usernames and profile pictures being integrated.
     
    Neo-Gamefactory likes this.
  15. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Quick question about DRM. My first thought was that if someone bought your game with a valid Itch.io account and then gave their login details to a bunch of friends. Does the DRM prevent multiple, simultaneous Itch.io logins to play the game?
     
  16. SkyTech6

    SkyTech6

    Joined:
    Jul 14, 2015
    Posts:
    151
    That's a question for the Itch.io team. I'm not really sure if you can multi-login to the Itch app. I'd say give it a try and find out?
     
  17. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    OK, thanks. I might give this a try when I release my first game on Itch.io.
     
    SkyTech6 likes this.
  18. SkyTech6

    SkyTech6

    Joined:
    Jul 14, 2015
    Posts:
    151
    Hey, it sounds like you forgot to make your App Manifest (.itch.toml) take a look at page 5 of the documentation and let me know if that fixes your problem or not.
     
  19. Djaydino

    Djaydino

    Joined:
    Aug 19, 2012
    Posts:
    48
    Hi.
    I am getting a null reference with ItchDRM.isVerified()

    using with Debug.Log(ItchDRM.isVerified()); and with a bool variable


    Code (CSharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2. SimpleJSON.JSONNode.Parse (System.String aJSON)
    3. SimpleJSON.JSON.Parse (System.String aJSON)
    4. Itchworks.ItchDRM.isVerified ()
    i also have populated and setup before doing this
     
  20. Djaydino

    Djaydino

    Joined:
    Aug 19, 2012
    Posts:
    48
    Hi again.

    probably it's because i did not use App Manifest Creation

    can i place that somewhere in the unity editor for testing?
     
  21. Djaydino

    Djaydino

    Joined:
    Aug 19, 2012
    Posts:
    48
    hi,
    Sorry for multiple post.

    in editor everything seems to work

    but ItchDRM.isVerified() and itchDRM.isItchApp() are always returning false.
    i purchased the app which i am testing (for the verification) but it still returns false.
    it does give the correct username/accountID/avatar

    i have ItchDRM.Setup() before that.

    in build i get an error :


    i have followed the documentation :



     
  22. FiniteReflection

    FiniteReflection

    Joined:
    Jul 29, 2017
    Posts:
    23
    I'm getting this same error in our current project while also following the documentation. Did anyone ever find a solution?
     
  23. Jon_Brant

    Jon_Brant

    Joined:
    Mar 22, 2018
    Posts:
    56
    What is .itch.toml supposed to look like for a WebGL based game (plays in browser)? Right now I have this, and it's not giving me output when deployed, but is working in the unity player

    [[actions]]
    name="Website"
    path="https://jonbrant.itch.io/restoflinknotneeded"
    scope="profile:me"
     
  24. Wikzo-DK

    Wikzo-DK

    Joined:
    Sep 6, 2012
    Posts:
    83
    Hi. We are using Itch to distribute keys for our alpha playtesters (Windows executable). With this plugin, can we make a login screen that can check if a person owns the game on Itch in order to proceed? (doesn't matter if they play via the Itch app or not). Right now, we store separate activation keys, so it would be nice to just use the Itch account for authentication.

    And how will it work? How can our exe file know the Itch account information? (not using the Itch app) Will it open their browser and ask them to login and then send that request back to the executable?

    EDIT:
    At the moment, our players won't PURCHASE the game but instead get a free download link (requiring to be claimed to their Itch account). Can we still check if the game is linked to their account?
     
    Last edited: May 16, 2019
  25. SkyTech6

    SkyTech6

    Joined:
    Jul 14, 2015
    Posts:
    151
    Free download links will show up as purchased in Itch's database, to my knowledge. (Last I knew it did, but you could ask on the Itch.io forums to be certain)

    Also, this plugin requires the Itch.io app. Otherwise players can just post a single email and password online and everyone could use it to play your game. Validating via browser isn't a secure DRM.
     
  26. Darren-R

    Darren-R

    Joined:
    Feb 11, 2014
    Posts:
    66
    I am trying to get itchworks to work with my app, it's so close to working...

    I have noticed when switching accounts on the Itch.io App and then I load the app up it will either remember the first account details its been installed with or load a random account from the accounts in the session list of the app, ignoring the currently logged in account details. So I get my Developer account details showing up even when logged into another account.
    When I delete all the sessions of the other accounts in the "switch user" itch.io app menu everything starts to work again.

    This is a HUGE bug. One that could break my app for anyone that's got more than one account on the itch app at any one time.

    Can someone explain whats going on here?
     
  27. SkyTech6

    SkyTech6

    Joined:
    Jul 14, 2015
    Posts:
    151
    This would be a problem with the Itch App not clearing environmental variables upon logging out. I don't have any control over how the app handles these types of variables and can only read whichever the application decides to pass into the executable.

    I would recommend opening an issue in the Itch App github repository, this is something that probably hasn't been noticed before as not many games use DRM on Itch.io.
     
  28. Darren-R

    Darren-R

    Joined:
    Feb 11, 2014
    Posts:
    66
    Thanks, I came to the same conclusion. And thanks for making itchworks, it does what I needed and was quite easy to setup!

    It's just annoying that the itch.io app has that bug! but shouldn't really be an issue for 99% of users.
    I'll go to the Github repository and report it, I did report it on the itch.io support for the app but I never got a response.
     
  29. SkyTech6

    SkyTech6

    Joined:
    Jul 14, 2015
    Posts:
    151
    I'm currently in the process of overhauling this asset. The biggest planned changes:
    • OAuth API / Verification
    • Updating to a more modern JSON structuring
    • Better Error Handling
    This update will probably be incompatible with previous versions of the asset, however I will be making the implementation as easy and user-friendly as I can to minimize having to update. I will however be moving up my minimum supported version to Unity 2018. If anyone is using the asset in a project from an earlier version, please let me know.
     
  30. masaliu

    masaliu

    Joined:
    Feb 4, 2013
    Posts:
    3
    Hey mate!
    I've bought your cool tool for my game.
    but it seems didn't work...
    it's working on Unity editor, but when I build it.
    it's not working on the export exe.

    Please help me!
     
  31. SkyTech6

    SkyTech6

    Joined:
    Jul 14, 2015
    Posts:
    151
    Did you create the .itch.toml file? Check page 5 of the documentation on how to create the file. Itch App requires this file in the directory folder to recognize it.
     
  32. masaliu

    masaliu

    Joined:
    Feb 4, 2013
    Posts:
    3
    Thanks for the help, I'm sorry I was too dumb and I already change my review of Asset store! you are awesome!! :D
     
    SkyTech6 likes this.
  33. SkyTech6

    SkyTech6

    Joined:
    Jul 14, 2015
    Posts:
    151
    All good! It's something a lot of people miss.

    Once work calms down I plan to completely overhaul the asset into a new version. It'll include a lot more automation to detect if you're missing the .toml file, better error handling/messages, etc... But I don't have any ETA at the moment unfortunately, probably sometime next year.
     
  34. masaliu

    masaliu

    Joined:
    Feb 4, 2013
    Posts:
    3
    Hey Sky,
    Ia me again, the dumb me...lol
    I use your tool on Windows perfectly, I really think all itch game developer should use your tool.
    but I meet the problem on Mac. I don't know where should put the itch.toml
    I tried put it on the toplevel, same way as Windows. but it didn't work.
    Do you know where should I put the itch.toml?

    and here is the ontent
    [[actions]]
    name = "Play"
    path = "mygamename.app"
    scope = "profile:me"

    I check the itch.io forum. they are talk about this:

    The same application for macOS could have this structure:

    FooBar-macOS/
    FooBar.app/
    .itch.toml

    but I don't need to do it on Windows and I don't know how to fix it on Mac.

    Could you help the stupid dumb me, Please?

    Masa
     
  35. SkyTech6

    SkyTech6

    Joined:
    Jul 14, 2015
    Posts:
    151
    It's been awhile since I've built a desktop mac game since they've required Apple Store license to publish for their platform haha.

    So for reference I just downloaded my ItchworksDemo zip from Itch.io and it has the following pathing
    ItchworksDemoOSX/
    ItchworksDemo.app .itch.toml
    So it should be in the same level as the .app folder itself, not inside it. And don't forget that your path for that toml file should be "GameName.app" instead of an exe.
     
  36. squallfgang

    squallfgang

    Joined:
    Sep 13, 2016
    Posts:
    21
    I am getting the same error.
    Any Solution to this?
     
  37. squallfgang

    squallfgang

    Joined:
    Sep 13, 2016
    Posts:
    21
    Hey Sky,
    in Editor everything goes great. But once in Build nothing works. I believe I have setup up the .itch.toml correct it looks like this.
    Should the build work before I upload it to itch? What is it that I'm doing wrong?

    In develeopement Build I get this Error:
    ArgumentException: Cannot set a Request header with a null
    at UnityEngine.Networking.UnityWebRequest.SetRequestHeader (System.String name, System.String value) [0x0001e] in <f59e1801dcb84ce49436eda773fc757c>:0
    at UnityEngine.WWW..ctor (System.String url, System.Byte[] postData, System.Collections.Generic.Dictionary`2[TKey,TValue] headers) [0x00089] in <c6e298b3ab1f41a3a20c4ffd698d1de7>:0
    at Itchworks.ItchAccount.LinkItch () [0x00069] in <0aa8c5d3019644ae8879e013fd94cbb5>:0
    at Itchworks.ItchHandler.Awake () [0x0003b] in <0aa8c5d3019644ae8879e013fd94cbb5>:0​



    toml file:

    [[actions]]
    name = "Play"
    path = "Itchworks.exe"
    scope = "profile:me"

    Please help me to fix this.
     
  38. SkyTech6

    SkyTech6

    Joined:
    Jul 14, 2015
    Posts:
    151
    Your path should be to your exe file, not "Itchworks.exe"
     
  39. squallfgang

    squallfgang

    Joined:
    Sep 13, 2016
    Posts:
    21
    Hey I am getting the same error. The toml file works and when using the Demo Scene it all works perfectly. But when I call the
    ItchDRM.Setup();
    and the
    ItchDRM.isVerified();
    right after each other i get this:

    NullReferenceException: Object reference not set to an instance of an object
    at SimpleJSON.JSONNode.Parse (System.String aJSON) [0x00453] in <0aa8c5d3019644ae8879e013fd94cbb5>:0
    at SimpleJSON.JSON.Parse (System.String aJSON) [0x00001] in <0aa8c5d3019644ae8879e013fd94cbb5>:0
    at Itchworks.ItchDRM.isVerified () [0x00001] in <0aa8c5d3019644ae8879e013fd94cbb5>:0

    Is it possible that ItchDRM.Setup() would require some time to wait before its ready? Anyway to check that?
     
  40. squallfgang

    squallfgang

    Joined:
    Sep 13, 2016
    Posts:
    21
    by the way that worked!
    Now got a new problem (see post above).
     
  41. SkyTech6

    SkyTech6

    Joined:
    Jul 14, 2015
    Posts:
    151
    Hey Squallfgang, sorry I didn't see your message until now.

    Yea it does seem that there needs to be some time between those two messages. It used to be faster, but I'm unsure if something has changed in the backend of Itch.io that is slower than when I originally designed this system.

    I'm still planning an entire overhaul of Itchworks in the near future and will be making it much more Task / Async based to fix this type of problems. As well better error messages haha.
     
  42. squallfgang

    squallfgang

    Joined:
    Sep 13, 2016
    Posts:
    21
    OK thanks. Fixed it by wating a second between calling comands.
     
  43. Ankaman

    Ankaman

    Joined:
    Feb 14, 2014
    Posts:
    37
    If you encounter an issue with the profile:me flag, make sure to add the sandbox flag to the toml too
     
  44. bennymax12

    bennymax12

    Joined:
    Jul 20, 2023
    Posts:
    1
    I would like you to be able to use your Unity Account to sign into Itch.io I'm not feeling like making an itch.io account.
     
  45. SkyTech6

    SkyTech6

    Joined:
    Jul 14, 2015
    Posts:
    151
    Huh? That is not really within my control. I don't work for Unity or Itch.io. How would you sign into a website using another website's account? Unity isn't a social media like Facebook....
     
  46. li0nleo

    li0nleo

    Joined:
    Nov 10, 2013
    Posts:
    1
    did you ever get an answer for this?
     
  47. SkyTech6

    SkyTech6

    Joined:
    Jul 14, 2015
    Posts:
    151
    WebGL is very different from an executable. This plugin is specifically designed for the Itch App which requires a user to be signed in; not for the website.

    Although Itch account management is planned for the next update which would allow it to work on WebGL or executables outside of the Itch App.
     
    DragonCoder likes this.