Deverydoo no problem. Please consider support me by checking out my latest game, Thrusty Ship, on Steam. I can really use the support :) Thanks
@Deverydoo5 жыл бұрын
@@inPrincipleGames great looking game. You took courses from Ben too?
@inPrincipleGames5 жыл бұрын
@@DeverydooI don't know who Ben is... So I don't think I did. :)
@ibra.h4 жыл бұрын
@@inPrincipleGames Did you take any udemy courses?
@inPrincipleGames4 жыл бұрын
Ibrahim Hisham hi. I did not. I’m entirely self taught.
@nosteponsneek46166 жыл бұрын
This series made the daunting task of steam integration a breeze!
@inPrincipleGames6 жыл бұрын
Glad to be of service.
@magicsound5 жыл бұрын
Hey, have you managed to create achievements script?
@primegames70247 жыл бұрын
I've integrated my steam achievements successfully thanks to your great videos. I immediately went and purchased your OVO Smash game. Best of luck, kind sir!
@inPrincipleGames7 жыл бұрын
Thank you so much Prime Games! Hope your game does well on Steam! (Is it Dust and Salt? The art style looks great on that one! :D)
@primegames70247 жыл бұрын
Yes, it's Dust and Salt :) Thank you! I am glad you liked the art!
@TurnGameOn4 жыл бұрын
I'm working on my first steam game, you made it cake; thanks so much for your pioneering efforts!
@inPrincipleGames4 жыл бұрын
My pleasure. Please check out my most recent Steam release if you'd like to support me: store.steampowered.com/app/942520/Thrusty_Ship/
@rmt3589 Жыл бұрын
Can I see achievements from different games on the user's profile? There's some neat things I'd like to do. (Like how Rosalina was unlocked in Mario Kart Wii by having a Mario Galaxy save on the Wii)
@inPrincipleGames Жыл бұрын
Possibly? That’s pretty advanced. See if you find anything like that in the documentation
@aFewBitsShort5 жыл бұрын
Upload this to the asset store. You'll get more sales there than from your game.
@inPrincipleGames5 жыл бұрын
Stevepunk almost certainly true...
@temite806 жыл бұрын
Awesome video series! Very helpful! Thanks!
@AHPyXA4 жыл бұрын
Thank you so much! This tutorial is still actual in 2020.
@inPrincipleGames4 жыл бұрын
Glad to be of service. If you feel like supporting my work, please consider getting a copy of my most recent Steam game, Thrusty Ship: store.steampowered.com/app/942520/Thrusty_Ship/
@Unit02Games7 жыл бұрын
Thanks for this, it really helped!
@inPrincipleGames7 жыл бұрын
My pleasure.
@modernator4 жыл бұрын
Hey, thanks for the great vid. I just have one question, when you try to unlock/lock achievement, you called SteamUserStats.GetAchievement and save the result into the boolean member variable. I can understand til here, but don't get it why you compare this value it's false when trying to unlock the achievement and try to compare true in lock achievement. According to the document, the second parameter, which is out bool returns true in below conditions met: - RequestCurrentStats has completed and successfully returned its callback. - The 'API Name' of the specified achievement exists in App Admin on the Steamworks website, and the changes are published. So does it suppose to check true when you try to unlock the achievement? Because this will only return false if there is no achievement you try to unlock it or fail to load from Steam server. Steamworks documentation is pretty bad and it is hard to find any details in there. Am I understood wrong, or is there any specific reason you doing that?
@inPrincipleGames4 жыл бұрын
Most likely your objection is correct. You can use what Steam returns. In OVO Smash I track achievements in my save files, so I use achievements as a sort of cloud save, which is why I kept local booleans. You don't need those at all in your project, most likely. Bear in mind I did the tutorial on my real, existing project, so there are a few things I do in it that are not strictly necessary. But it has been a few years since I did this, so I'm not so sure. Thanks for your comment!
@modernator4 жыл бұрын
@@inPrincipleGames Ok, thanks for the quick reply :)
@petrruzicka4524 жыл бұрын
I am at 8:00 and while typing SteamUserStats, it's underlined red and won't compile. What I had to do was write using Steamworks; at top of the script and it worked. Dunno if you meantion it later in the video, might be helpful for someone NVM, you mention this in 10:00. Gonna leave it here. It might be useful to some dumbass such as me :)
@batyasf4 жыл бұрын
Thank you so much for this tutorial! I have one little question though. How do you show your achievements on the store page? Thanks again!
@inPrincipleGames4 жыл бұрын
Ciao Alberto. Achievements will appear on your store page automatically when your game is released. Cheers.
@batyasf4 жыл бұрын
@@inPrincipleGames Amazing, thanks! Grazie!
@yogeshben4 жыл бұрын
Hi Sir, can you please make a video explaining how to implement steam's wallet in unity for IAP in unity? By the way great series.
@inPrincipleGames4 жыл бұрын
Hi Yogesh, unfortunately I've never implemented Steam IAP, so I wouldn't know where to start. At the moment I'm building other things, so I don't have the time to research this. I may make a video about Steam leaderboards integration at some point though. Cheers.
@KandyMan906 жыл бұрын
I wonder if having to use -1 on your texture scale is a DirectX vs OpenGL kinda thing. If I remember correctly, DirectX has 0 on the y be top left, where as OpenGL has 0 on the y be bottom left.
@inPrincipleGames6 жыл бұрын
Hi there, would love to answer you with competence, but at least at this time I don't have the knowledge. :( Thanks for watching though!
@MadMarvtricks4 жыл бұрын
Nice video, it's really helpful. I have one question: If you publish a steam game, are you allowed to get free keys of your game, e.g. for giveaways?
@inPrincipleGames4 жыл бұрын
Glad to be of help. Yes, there is an in built system to request keys. It’s very efficient. There is also a way to track individual key states. All in the dashboard.
@MadMarvtricks4 жыл бұрын
@@inPrincipleGames ok, thank you very much
@alexisallal4 жыл бұрын
Hi ! Not being fluent in English, I don't understand or get the script steamachievements.cs. It does not come with steamworks.net. Would you help me? Thank you very much!
@inPrincipleGames4 жыл бұрын
Hey, that's just a script I made myself. You can copy all of the code there. It's not necessary, really, but it's a utility script that I like to use to test if achievements have been unlocked, if they haven't and get their icons from the Steam servers. All of the code you need is in the video. :)
@alexisallal4 жыл бұрын
@@inPrincipleGames Thank you for your answer I was able to find and integrate the achievements! Good continuation to you!
@johnbuise6 жыл бұрын
Thanks! Great Series, helps a lot with understanding how to communicate with Steamworks. i made a script that unlocks/locks the achievements like yours, the thing is : "it works only on actual builds" not a problem at all, but im curious if you know the cause of that. seeing that it works from within your Unity GameWindow.
@inPrincipleGames6 жыл бұрын
Hi John, thanks for your feedback and glad you enjoyed the tutorial. It's been a long time since I last did this, so I cannot quite remember, but from what I recall, if your SteamManager (or equivalent) singleton is running in Unity from start, Steam should have no way of differentiating between Unity and your actual game build. So it should do everything as normal. What won't work normally is all of the popups and everything like that. They will appear later in the Steam interface, but not as popups in "game", or in your case in engine. Unfortunately, as far as I know, testing of achievements and similar should never be done in engine because it's just such a non representative environment. What you want to use the engine for is just the most coarse of debug. But then the testing should be done in game and within Steam. Not a great answer to your question, but hopefully it's somewhat helpful anyway. Lastly, I'm streaming quite a lot recently on my new project Thrusty Ship. Soon (ish) I will be doing Steam integration on this project too. Feel free to join me on my streams on Twitch (www.twitch.tv/mike_inprinciple) and perhaps you will see some of it live and you can ask questions as well, I'm usually quite keen on interacting with my audience. :) Best of luck with your game!
@johnbuise6 жыл бұрын
Tnx for your reply, testing it in steam and got it working perfectly! Next up : leaderboards :) *followed you on twitch.
@inPrincipleGames6 жыл бұрын
Thanks buddy. Glad you managed to make it work!
@bluegoodev20856 жыл бұрын
Great tutorial! Thanks! But why not have a local copy of the icons in your game instead of downloading it from steam?
@inPrincipleGames6 жыл бұрын
Hi BlueGooDev. Thanks for your comment. You are absolutely correct, you could have the icons in your game instead of the server. I just wanted to see how it would work. :) The only drawback I can see regarding what you are suggesting is that you will need those icons on Steam anyway. If you happen to want to change them, for whatever reason, you need to remember to match them both on the source AND the server. Only updating them on the server may end up being less work and less mistakes. Cheers.
@Andre-LA6 жыл бұрын
Great tutorial! Thanks :)
@inPrincipleGames6 жыл бұрын
No problem, thanks for watching.
@Ragdoll006 жыл бұрын
Hey, I can't manage to get the actual pop up in the corner to appear. The achievement will unlock just no icon appears
@inPrincipleGames6 жыл бұрын
Hi there, I think this is explained at minute 11 of this tutorial? If you've followed the steps closely it should work. If it doesn't... then I"m not sure I can help you, especially without knowing your situation, sorry.
@I_ZackMan124 жыл бұрын
So my game is connected to steam and when I unlock an achievement I log to the console the string id of the achievement. It matches my steamworks id on the achievements page but doesn't unlock on steam. Why would this be happening?
@inPrincipleGames4 жыл бұрын
Steam needs to be "Updated". There is a call for that in my tutorial, I think (been a while, so I can't remember). What you can do, is implement a verification system in your game after the console log that checks the achievement status on Steam. If I'm right, what's going to happen is that when you exit Unity Steam will accept that your game is closed and then it will update the achievements. Again, to fix this I think you have to call the Steam Update.
@I_ZackMan124 жыл бұрын
@@inPrincipleGamesWhat am I checking to unlock it tho? Im not understanding what you mean.
@I_ZackMan124 жыл бұрын
I put the debug right before the steam unlock achievement. Then I thought the steam manager in its update would update that achievement that unlocked.
@inPrincipleGames4 жыл бұрын
@@I_ZackMan12 The problem is Unity doesn't quite work the same way as a game would. It's sort of a game that's both in an active and passive state at the same time. Do this: 1. Close Unity. 2. Close Steam. 3. Open Steam and log in. 4. Observe that your Steam name is blue and you're not playing anything. 5. Launch Unity. Observe that the Steam user is still blue. 6. Hit the play button in Unity. Notice your Steam user goes Green. You're now playing your game. 7. Hit the play button in Unity again. Notice you're still green and you will remain green until Unity is closed. This messes with Steam a bit. Don't worry too much whether Steam's achievement is appearing or not while playing inside of Unity. You can test that with a proper build later. If you send steam a "CheckIfAchievementUnlocked" sort of request, and Steam answers correctly, that's all you care about now. If you want to make sure that the pop-up notifications work correctly, make a build that has debug methods to lock and unlock achievements with the press of a key and test the notifications. If those aren't appearing then you forgot to add that "UpdateSteam" method I mentioned. Which I cannot remember what it is called exactly right now, but it should be obvious.
@twostrikesgame7 жыл бұрын
Should I check achievements box and publish in the changes before trying this? The problem is that my game is already released... And checking without providing achievements could lead to some backlash
@inPrincipleGames7 жыл бұрын
Interesting question. Perhaps you could make an announcement on your board (and whatever other channels of communication you have with your audience) that achievements are in the works, but won't be supported until a new version of the game comes out? I think it's possible that you may not be able to reach achievements in Steam from SteamWorks.net without Achievements being enabled? I don't know. Please share the knowledge here once you find out! :)
@twostrikesgame7 жыл бұрын
It is! You can test achievements without enabling in the steamworks page :)
@katyataraban57635 жыл бұрын
@@twostrikesgame How?
@twostrikesgame5 жыл бұрын
Through the code. Setting the variables to true while executing through steam, then you should @@katyataraban5763 :)
@EAugusto6 жыл бұрын
How to add Steam Achievements on RPG Maker game?
@inPrincipleGames6 жыл бұрын
Eduardo Augusto I don’t know, I’ve never used it. Sorry
@solomonmckay31265 жыл бұрын
Hi in Principle. I'm following your tutorial but I get an error whenever I unlock an achievement: "Steamworks.SteamAPIWarningMessageHook_t::Invoke'. This may cause application crashes, corruption and data loss. When passing delegates to unmanaged code, they must be kept alive by the managed application until it is guaranteed that they will never be called." This occurs when I'm calling "SteamUserStats.GetAchievement(ID, out unlocked);". I'm not familiar enough with C# delegates or callbacks to know how to proceed. I was wondering if you have any solutions for this?
@inPrincipleGames5 жыл бұрын
I'm not sure. I don't see any obvious reasons why this would happen. Retrieving achievements should basically be instantaneous. You need to ensure that your SteamManager is running and in the scene. You need to ensure that you've created all of the chievos on the Steam interface and that you're sending the correct ID. When all this is positively checked, then we can take it from there. In other words, I think you're getting a false positive error. The error isn't what you think it is. Something else underlying is causing it. But I'm not sure.
@solomonmckay31265 жыл бұрын
@@inPrincipleGames Okay I had a typo in the ID when I was passing the achievement ID to the function; however, now I'm getting a null reference exception at the same place that I was getting the exception in my previous comment. Not entirely sure why that is happening but I'll see if I can debug it.
@ДмитрийКотусев-е6х5 жыл бұрын
Hey, really good videos, I want to know whether you paid 100$ to steam in order to register your game.
@inPrincipleGames5 жыл бұрын
Yes, the $100 fee is necessary to put your game on Steam.
@marcoayala57026 жыл бұрын
hi excuse me but from where you call the coroutine? and what is _IconText or where you have it located?
@inPrincipleGames6 жыл бұрын
Hey there, can you give me a time stamp for the video, so I can help you better? I don't want to rewatch my whole video to try and remember what I did. :) Thanks.
@marcoayala57026 жыл бұрын
in Principle thanks for your answer and your video! I already figured out, soon i'll get ovo smash. Thanks!!!
@inPrincipleGames6 жыл бұрын
Good to hear! And since I have you here, why don't you take a look at my new work as well? I have been desperate to get feedback on it, but so far without much success. I'd be very grateful if you could take a look at my new stuff. You don't need to do anything with it if you don't want to, but if you think it's cool, please tell your friends about it! Here's a link to 2 of my new projects, one of them is free for download too: multi-core-collider.itch.io/. Good luck with your game!
@candenizgumus5308 Жыл бұрын
Bro, do i need to chance steam_appid. its 480 as default.
@inPrincipleGames Жыл бұрын
Yes. You should have your own AppID
@candenizgumus5308 Жыл бұрын
@@inPrincipleGames It worked but after i build the game. game opens and closes. After i integrated steamworks into my unity game. It works fine in unity launcher however after i build it. It crusher when i open it
@inPrincipleGames Жыл бұрын
Don't know what's wrong exactly without seeing it, but it looks like Steam doesn't recognise your game's standalone. You can rewatch the videos to see where all of the AppID references should be. That might help. Else, I don't know. Good luck.
@candenizgumus5308 Жыл бұрын
@@inPrincipleGames I manually added the steamapp.txt file into built files. It works now but do i need to do it manually always ?
@inPrincipleGames Жыл бұрын
@@candenizgumus5308 Possibly. I cannot remember. The videos should give you instructions on this. Otherwise, the comments on the videos may provide guidance too. Lastly, you can try the Steam documentation as well. Cheers.
@cybershockfutureparkour4 жыл бұрын
Thank you!!
@snakeplisken42782 жыл бұрын
Do I need achievements?
@inPrincipleGames2 жыл бұрын
No idea. The Steam documentation may answer that. But I do seem to recall games without them. Cheers.
@Setebe6 жыл бұрын
how many purchases do you made from this game ?
@inPrincipleGames6 жыл бұрын
Hi Setebe. At this time, 2018/09/09 less than 100. Thanks.
@pequenog23235 жыл бұрын
Hi in Principle!!! very good tutorials. I have a question... With what function of the api can I block the achievements again? I see in your videos that you use the function "DEBUGRESETSTEAMLOCKCOUNTER ()" but you never show its internal code. Greetings and thanks
@inPrincipleGames5 жыл бұрын
Hi! The code goes as follows: public void DEBUG_LockSteamAchievement(string ID) { TestSteamAchievement(ID); if (unlockTest) { SteamUserStats.ClearAchievement(ID); SteamUserStats.StoreStats(); } } void TestSteamAchievement(string ID) { SteamUserStats.GetAchievement(ID, out unlockTest); } Sorry for the bad formatting. Cannot control that in this tiny window.
@alexandermaghradze57397 жыл бұрын
Where can i get this code?
@inPrincipleGames7 жыл бұрын
If you mean that you want to know where Steamworks.net is, you have to go here: steamworks.github.io/ Please let me know if you meant something else.
@schneeritterstudios26486 жыл бұрын
I think he meant if you'd be willing to share the .cs files, so that we can import them into our game and fiddle around, instead of having to type manually type it :)
@inPrincipleGames6 жыл бұрын
Oh, I think I missed this one, sorry about the late response. I'm afraid the answer to your request has to be negative. I have a substantial amount of my own personal code in these scripts that I'd prefer not to share at this time. An alternative could be me stripping out these bits and give you the rest, but that would take me a significant amount of time to do and I'm a little busy at the moment with other work stuff. Maybe I'll do a tutorial from head to toe about these aspects in future. We'll see. Cheers.
@GameDevMoot4 жыл бұрын
10:20
@shihuacheng54295 жыл бұрын
have github address?
@inPrincipleGames5 жыл бұрын
Sorry, I never put this on any repository, because it's embedded in my own game. If you follow the tutorial carefully, you should be able to rebuild it all for yourself. Cheers.
@MartinVaupell4 жыл бұрын
SteamUserStats.SetAchievement(ID); _ SteamUserStats.StoreStats(); is what you came here for..