#As a game developer who has released

1 messages ยท Page 1 of 1 (latest)

urban sierra
#

I may never finish a game to put on Steam, but I've grabbed this just in case - thanks

hoary herald
#

Youre very welcome, like I said its unsecure but I have caught people with this!

signal violet
#

why would a pirated version of steam have the username set to PIRATE

hoary herald
#

no thats the default text box text

#

its literally just set to PIRATE if the steam username does not update

#

It was just an example, you can check it however you want

signal violet
#

oic

hoary herald
#

so if it doesnt change that means SteamManager did not init and that after 2 calls it still hasnt updated

final turtle
#

What I do is a bit of psychological tinkering

#

I add some code that sends a ping to my end about a potential hacker. It's super unlikely player will actually remove the code first time around

#

then idk man VAC ban go brr

hoary herald
#

Heres what I do ๐Ÿ˜†

final turtle
#

im putting too much effort into piracy prevention for a free game bro ๐Ÿ’€

final turtle
hoary herald
#

๐Ÿ˜†

final turtle
#

don't they solve like, murder cases?

urban sierra
#

If it's free, how can it be pirated? thinksmart

hoary herald
#

the feds investigate piracy too

urban sierra
#

The FBI do loads

final turtle
signal violet
#

if piracy is detected, iโ€™d throw a bunch of flashing malware detected popups on screen. when you press play

final turtle
#

I don't know why they want to pirate it so bad

final turtle
hoary herald
#
[13244/12548] [0.313000] DX11OverlayInit - Present() hooked
[13244/12548] [0.375000] Requesting interface SteamClient017. OK
[13244/12548] [0.375000] Requesting interface SteamClient020. OK
[13244/13592] [0.391000] Requesting current stats
[13244/13592] [0.391000] Creating HTTP request
[13244/13592] [0.391000] Requesting interface SteamMatchMaking009. OK
[13244/13592] [0.391000] Requesting interface SteamFriends015. OK
[13244/13592] [0.391000] Persona name=Test```

Heres the log of a SteamEmulator, and how it sets and emulates Steam Usernames, it does not successfully set the persona name even though it says it does due to Steamworks hooking an Interal version of the steam_api.dll
#

Since it can't reference the interal steam_api dll it does not set it to the internal Steam Manager, just one that spoofs the games launch

urban sierra
#

Is there a possibility that a legit user could be in a situation where the Steam Manager doesn't init?

hoary herald
#

Yes, however, checking their internet connection first can circumvent it showing if lets say they cant get a successful ping to google, their offline. Thats a bypass right there

#

SteamManager will init in offline mode though I believe

#

So actually, in a normal scenario unless their calls to the api are super long, I dont see why it wouldn't.

urban sierra
#

Excellent - will definitely test before releasing with that anyway

#

Thinking maybe mess up textures/ shaders/ player speed

#

Play a sound "I'm a pirate" loudly and continuously

hoary herald
#

Yeah, def, but, making it so the games unplayable will cause a cracking studio to actually make a crack for your game. Making it so it secretly does stuff over time so players and crackers, dont realize they are on a pirated copy makes it easier to catch them.

#

Like Game Dev Tycoon, after 20-30 mins of gameplay would have the player and their game studio in game get all of their games pirated

#

and they would go bankrupt in game

urban sierra
#

Yeah, I remember reading about that

hoary herald
#

so the crackers thought they cracked the game, since it launched and played normally, but then over time it altered gameplay

#

super smart solution IMO, delayed the cracking of the game and ruined pirates fun, and forced them to purchase a copy to keep playing

urban sierra
#

and showed the consequences of their actions

hoary herald
#

Literally, neat idea.

#

You can see it fails even in the editor with steam not open, so its easy to test solutions as well.

urban sierra
#

Good to know, I'll try to remember. I'm very far away from being ready to implement anything with Steam

hoary herald
#

Steamworks.NET is very easy to implement. Here's a tip for when you do get to this point. They don't have docs online regarding this issue, so I discovered this by trial and error. To set the AppID for your game, you got to declare it like this:

if (SteamAPI.RestartAppIfNecessary((AppId_t)your_game_id_number)) {
                Debug.Log("[Steamworks.NET] Shutting down because RestartAppIfNecessary returned true. Steam will restart the application.");

                Application.Quit();
                return;
            }```

With a converion of the int to AppId_t, I was setting just an int there and in the docs I couldn't figure out why it wasnt working.
placid nest
# hoary herald Yeah, def, but, making it so the games unplayable will cause a cracking studio t...

on the other side, this has the potential to backfire in a nasty way.
if you get false positives (especially a lot of them due to idk, some change or bug on Steams side or some factor you didn't took into account) you might end up with a lot of players having their progress ruined secretly, and depending on how your savefiles work it can be hard to recover when this is noticed (which again will take more time then a simple instant fail when the protection triggers).
just something to keep in mind, there is a risk with every protection scheme and a delayed one is on the more riskier side if something goes wrong

urban sierra
#

assuming you do any of this in a save file..