Hi, I want to know what platform is safe for developing games? C++ or Blueprints?
I see when developing game with blueprints and generating native code from it is very hard to understand, and the code witten with C++ is easy to understand, so after compilation the code is converted to binary but binary generated from blueprints is hard to understand for hackers?
This is just my opinion.
There is no difference between BP and C++.
At the end of the day everything will be compiled into binary files.
If someone with enough knowledge wants to disassemble your binaries and modify them, you can be sure that they will succeed.
It’s up to you to make your game unpalatable to hackers. For example, not putting an abusive price. No one is going to hack your game if it’s reasonably priced.
You can also try to put security on the server side (physical server)… But it’s no guarantee that someone won’t be able to cheat your server too… It’s just a step that makes Hacking more difficult.
Cheers!!
C++ compiles into DLL which can (just like anything) be reverse engineered but will never convert back into the original c++. How secure that is is questionable, there are decompilers which can do the dirty work (IlSpy). Blueprints can just be opened in UE and you get the exact same thing as the original. Packed games can be unpacked easily as well. I’d go with c++ any time.
and C++ is also convenient to write an standalone external anticheat? if yes how?
I do disagree with this, you can’t assume a hacker’s motive.
Motives could be:
- Stealing and reselling asset data.
- Stealing personal information / account / banking data from customers.
- Ransoms.
- Distributing viruses, creating botnets, (“device control”).
- “Fun” which is most common with gamers hacking the memory to create cheats.
- To earn money from the game, or people after selling game data such as hacked accounts.
List goes on.
You should use an existing anti cheat service to hook into your game process. Some MMORPGs are known for this and for example the recent Elden Ring. Anti Cheat is not a guarantee no one will attempt to hack you, your server or your game process, it’s just a tool. You should always implement server side validation for game code if you have an online game and additionally the security that is required for one.
You’re right.
Sometimes I forget that there are really evil people in this world
Define “safe”.
Nothing you can create in existence is incapable of being reverse engineered.
IMO, it’s not even worth the effort to try to protect your game from being… whatevered. Because it’s going to happen, and you won’t believe how fast it happens.
- this excludes multiplayer games – obviously your design practices in multiplayer games will protect the games from being messed with by others. If you’re trying to protect your assets or your code from someone else looking at them, there’s not really anything that will do that – you’d be surprised at the number of people who can read machine code. But anyway, once you’ve built something, even if it’s completely novel, and no one else has ever done it before, it becomes much much easier for people to just … re-create it.
this thread can go infinite, but you can take some coutions
1: use strong encryption while packaging your game
2: use instance updates for your game if the game is online mp
3: use anti debugger technologies
4: use anti track technologies
5: use anticheat technologies
6: use server-side validation for most of the logics while developing the game
7: use launcher base browser for launching the game
9: use your brain and trust nobody even your employee
as @Roy_Wierer.Seda145 said… List goes on....
Good question, best practice is to work offline when the project gets serious enough on a computer that is cut from the internet, and you only connect it when you have to test network, test alphas and when the game come’s out.
They are going to hack into your computer if they find it very interesting.
These people exist, they are real, and they are here on this forum under various id’s.