@@creepysmilingcarl9742 Does that mean you could send a remote command, and really confuse other players? That would be much fun. (damn, did anyone else see that??!)
15:06 It really depends on what scripted events you want to make for an NPC. Like for your bunny a quick and easy solution would be to attach a second Collider, one that only activates if the player is near. So on one hand you would have one for the bunny and the terrain and on the other you would have the one for the bunny and the player, which obviously would have a much higer range of collision detection. This way the bunny can move around following any waypoint(s) that you give it and either follows a predetermined path or uses a path solving alghoritm to get to the final waypoint. As soon as the bunny is out of the range of the player, it is about similar as in your example the state of collision deactivates and the bunny movement stops and idle mode starts. When the player get's back in the area of the collider the bunny starts moving again. A nother solution would be to also use raycasting and that way the bunny could also stop, if like the player hid behind a tree, that would block the "view" for the bunny to see him, or simply something would come up between the bunny and the player (like the bunny goes further and needs to go round a huge boulder or say bush). However raycasting is expesive operation and you do not want to abuse it, you also want to cut down on the range so like the bunny wouldn't try to raycast for the player if he was on the other side of the map. That's why usually you still you a collider and then add in some raycasting features. Though like said it would really depend on what events you want for an NPC, mostly you would use triggers, colliders and bit of raycasting to have them react to something.
You can force a player to find the flag in an offline game by computing, like taking information they find using hacking tools and compute an optimal way with some tools. Some example that come to my mind is measuring the position and momentum with some tools. Or maybe some riddles that you can find hints for in some metadata associated with objects.
Path of Exile shout-out nice haha! Big fan of your videos, especially this new series on game development. I am a senior engineer on Path of Exile and your videos provide great inspiration for my work and hobby projects, keep on making great content! PS: As KuroNeko Felis commented below, use IL2CPP in Unity.
holy shit NO WAY!? I'm sure PoE also has to deal with cheaters - I would love to hear some (technical) war stories. That would be such a great video. Do you mind asking internally if there is anything that is sharable? RE: IL2CPP, wait for the next two episodes, it's going there. But spoiler alert: not effective :P
Love the idea man! CTF inside an actual video game. Maybe create the flag with individual letters, have a server side algorithm to make it different per person. Helps prevent people reverse engineering the flags and sharing the answers online.
I know its from Matrix, but think about it, there was a rabbit in LiveOverflow's videos, soo maybe some flag hidden in this rabbit? Something like FLAG{D0nt_be_4_scr1pt_k1dd1e}
Hey LiveOverflow, there is the piece of tech in Unity called IL2CPP, and yes, it does what it sounds. It compiles your C# code to IL like normal, but then it turns around and uses LLVM to convert IL into C++, then from there compiles C++ into a native binary. And let me tell you, IL2CPP changes up the project structure quite a bit. I haven't found tools that would be good at decompiling a project made using IL2CPP back into a usable Unity project since a lot, if not all, of the original C# code has been lost in the compiled version. Eco is a game that uses IL2CPP for the client and a .NET program as the server to prevent client-side hacking from what I can tell. Here is the Unity doc page on it, I think that would of solved the issue of players using dnSpy to decompile the game: docs.unity3d.com/Manual/IL2CPP.html Edit: Here is a snip-it from that doc, "Some of the uses for IL2CPP include increasing the performance, security, and platform compatibility of your Unity projects." So even Unity knows that one of the reasons to use IL2CPP is to increase security of the game, which would include removing tools such as dnSpy from the belts of decompilers.
@@Chadderbox because its building a static binary, everything needs to be Ahead Of Time compiled (AOT). Normally, Unity will just compile to IL, which is then Just In Time compiled (JIT) by the CLR. However, the C++ project contains everything required built in and does not do any JIT. As a result, many C# library that make heavy use of Reflection.Emit or JIT features will not work. Newtonsoft.JSON is a big example.
@@anonymoususer6801 Do you mean JIT? In the case of IL2CPP, it is considered AOT, with the exception being iOS devices where Unity has to use an AOT .NET Compiler instead of a JIT Compiler.
A better way to do chapter 11 is with unity's path finding and inverse kinematics. For the event I would've created a object that the rabbit moved towards, when you enter a certain radius (or saw the object with raycasting) the object updates the "next object to move towards" of the rabbit. In this way each object is responsible for sending it to the next, therefore not needing to hardcode it and allowing to easily scale the path
Great video! It's always interesting to see how people approach game dev and improve while they learn! I like how you showed that you often went back and did major changes to things like the island, it makes it a lot more comforting to know that other people often go through those times in development where they feel their vision has changed. I do have a slight gripe with the Alternative Stories bit in your log. There's nothing wrong with changing the story of a game in progress if you feel it might be more interesting or fit the gameplay better, but the way you describe changing the gender of the PC just sounds slimy and condescending. It's pretty telling that you consider having a female PC as a fun surprising novelty to "own the white male nerds even though I am one" as opposed to just another change that can occur in the development journey. 😒 We gals aren't a cheap twist, we're a normal part of life just like guys. (Also, bringing up and misrepresenting Gamergate in 2020? Talk about beating a dead slandered horse!) It's just a small gripe, but it's there regardless. I apologize if I'm taking a joke too seriously. 😅 Looking forward to future installments in this Dev journey!
Just so you know, Unity has the ability to compile games using IL2CPP, turning your C# code into compiled C++ code. This does a pretty good job at obfuscating your code, but can also lead to more issues like simple things being lost due to compiler optimizations. There are also obfuscators on the asset store that make the source impossible to read, though for your purposes that's probably not what you want. TL;DR, use IL2CPP when possible to prevent source docompiles
I think it's very hard to limit players from cheating 'teleportation' in a local game. In order to create more challenging tasks, turn it into server-client (unity can do this out of the box) where server would validate user movements, preventing teleports, flying, etc. On competition, you could make the server source code (or binary) available to players, but they are not allowed to manipulate it. And they'd have to find checks that are implemented poorly and exploit them
You inspired me to try to make a unity game! Gonna try to use free assets though since I’m cheap 😂 your game looks great, can’t wait for the next part!
Please note that some of the Unity Decompilers are actually spyware. The most prevalent paid "Project Compiler" has a dubious pass and includes spyware to "prevent piracy".
Machst du in Zukunft noch mehr solche Spiele bzw. gibt es ne Chance, dass du eins mit einer Community machst? Ich hab C# / Unity Erfahrung und würde mich für sowas interessieren.
Make gravity less, so you float down, harder to check for cheating on the server if calculations are done locally (and it's one change for a global effect) - just scan for a value of between 9 and 10 maybe (gravity constant on earth is 9.81m/s squared). You can also fake buoyancy underwater by making gravity ever so slightly negative, until you reach the surface (can also add in effects of any extra weight your character my be holding on to). Also sometimes there is no need for a hole hack, get caught on the edge, and as falling and getting 'stuck' on the 'slope' of the hole, keep jumping (sometimes this works).
Just and idea on how to solve flags problem: just split letters to separate objects and then place them independently in assets you will see separate letters, and maybe do not place them by code, but in unity designer (disassembling code it just too easy)
he said in the video that there are tools for windows that reverse engineer projects to the point where they let you open the project in the unity editor. this wouldn't work
For the scripted npc you could make a collider sphere that follows the rabbit. There are collider enter and leave events which you can basically use to control the rabbit movement
The magic and hacking theme sounds a bit like the magic 2.0 series of books. Wizards are just hackers who can manipulate the world through editing a text file.
There is a easy way to make things like cheat engine more annoying im not sure how this process is called, but instead of storing int or float you create a wrapper class/struct and everytime you update the value, the setter will generate two random values which you have to add to get the real number, for example let's say you store the value 42, then the setter would randomly pick the value 40 and 2 and the store them in fields, the getter would add these two values to return the real value. This way you can't search the number 42 in the cheat tools, because the value 42 isn't stored anywhere in memory and since the two internal valus are random you will always see different numbers. Of course this is only a small annoying thing, because you could just modify the decompiled source code to remove the random part and for example store the real value and zero in these fields instead of the random stuff etc.
Hey LiveOverflow! In order to protect code for Unity game you can try using Il2Cpp (you can find that in player settings). It'll do some magic to translate c# code to CPP as name sugest. Look it up :)
You actually can use C++ in Unity. Just write your lib, and attach it as a plug-in. As Unity itself is written in cpp, there's no issues with this approach.
Many people here post about IL2CPP Im sorry to disappoint you, but that doesn't solve anything, it can still be decompiled. Yes it's a bit harder than decompiling C#, but there are still enough tools out there to make it easy enough. The main point of IL2CPP is because some plattforms require AOT for example IOS and to improve performance (in some cases, mostly mobile). Don't use IL2CPP to "protect" your code, your code has to run on the machine, no matter what tool or language you use, there is always a way to read the code, the only way to solve this is by implementing online connection and let the server handle the "secret" code. Maybe for a hacking game you could make your own little script language (google game byte code pattern) for the important stuff, like puzzles. Obviously it can still be decompiled, but since it's your own language, there are no tools, so it should be annoying enough that people will no bother with it.
maybe u could encrypt the flag texture with AES and use the player coordinates rounded to the nearest integer or something similar as the key to decrypt it - so would only see it if you‘re in the right spot, i.e. either by teleportation hacking or disbaling fall damage. i dunno just an idea to make static analysis more difficult
Using pathfinding is usually too unreliable for scripted sequences because it is too likely that positioning or asset changes will break the sequence. In addition, it doesn't provide the level of customizability that you usually want (e.g. stopping at a specific place to force a specific view). That's especially true when the sequence has multiple triggers that advance an internal state, so that a failure to trigger could result in an invalid state.
Can you please include your logo in your video thumbnail. I skipped over the Game Dev Log because I thought it was a random algorithm suggestion and not one of my favorite creators videos.
@@LiveOverflow I'd recommend uBlock Origin instead, as you can just right-click and pick out elements to be blocked (The "Please disable your AdBlocker" elements, mainly, but can do it to anything you'd like.). It also doesn't accept money to allow advertisements to get past it, and has a lower memory foothold as far as I'm aware!
You inspired me to try to make a unity game! Gonna try to use free assets though since I’m cheap 😂 your game looks great, can’t wait for the next part!
Online hacking game? So like Fallout 76 then.
Lol
Nah he is only 1 guy working on it. He doesn't have enough time to add that many bugs.
@mina86 Fallout 76... that a good representation of a hacking game.
Any new online game (apart from casinos - they are really good at security). Most new software has bugs, the first time round.
@@creepysmilingcarl9742 Does that mean you could send a remote command, and really confuse other players? That would be much fun. (damn, did anyone else see that??!)
this is actually such a nice change from usual game devlogs, and it feels far more inspiring than those usual devlogs
15:06 It really depends on what scripted events you want to make for an NPC. Like for your bunny a quick and easy solution would be to attach a second Collider, one that only activates if the player is near. So on one hand you would have one for the bunny and the terrain and on the other you would have the one for the bunny and the player, which obviously would have a much higer range of collision detection. This way the bunny can move around following any waypoint(s) that you give it and either follows a predetermined path or uses a path solving alghoritm to get to the final waypoint. As soon as the bunny is out of the range of the player, it is about similar as in your example the state of collision deactivates and the bunny movement stops and idle mode starts. When the player get's back in the area of the collider the bunny starts moving again.
A nother solution would be to also use raycasting and that way the bunny could also stop, if like the player hid behind a tree, that would block the "view" for the bunny to see him, or simply something would come up between the bunny and the player (like the bunny goes further and needs to go round a huge boulder or say bush). However raycasting is expesive operation and you do not want to abuse it, you also want to cut down on the range so like the bunny wouldn't try to raycast for the player if he was on the other side of the map. That's why usually you still you a collider and then add in some raycasting features.
Though like said it would really depend on what events you want for an NPC, mostly you would use triggers, colliders and bit of raycasting to have them react to something.
you seem to encapsulate all my interests constantly. I'm surprised with your content I don't think I've ever found someone this good.
Many people in tech industry who are creative have tried game dev or 3d modeling stuff 🙂
Edit: I am gonna definitely try this out
I've tried 3d stuffs. Modelling is not hard. Texturing is okay, with the right tools. rigging is tough. Animation is 😐
@@evansjahja711 yups manual animation is hard without motion capture.
You can force a player to find the flag in an offline game by computing, like taking information they find using hacking tools and compute an optimal way with some tools.
Some example that come to my mind is measuring the position and momentum with some tools.
Or maybe some riddles that you can find hints for in some metadata associated with objects.
Path of Exile shout-out nice haha! Big fan of your videos, especially this new series on game development. I am a senior engineer on Path of Exile and your videos provide great inspiration for my work and hobby projects, keep on making great content! PS: As
KuroNeko Felis commented below, use IL2CPP in Unity.
holy shit NO WAY!?
I'm sure PoE also has to deal with cheaters - I would love to hear some (technical) war stories. That would be such a great video. Do you mind asking internally if there is anything that is sharable?
RE: IL2CPP, wait for the next two episodes, it's going there. But spoiler alert: not effective :P
Love the idea man! CTF inside an actual video game. Maybe create the flag with individual letters, have a server side algorithm to make it different per person. Helps prevent people reverse engineering the flags and sharing the answers online.
I just realized that the bunny from the game, could be reference to the bunny from your first episodes of binary patching
I know its from Matrix, but think about it, there was a rabbit in LiveOverflow's videos, soo maybe some flag hidden in this rabbit? Something like FLAG{D0nt_be_4_scr1pt_k1dd1e}
Ok
@@MichalGerwatowski It's originally from Alice in Wonderland. The Matrix just referenced it as well.
@@toboterxp8155 I knoow, i meant, it would be cool to reference to an older videos right?
@@MichalGerwatowski Trur
0:52 missed squarespace ad opurtunity
Hey LiveOverflow, there is the piece of tech in Unity called IL2CPP, and yes, it does what it sounds. It compiles your C# code to IL like normal, but then it turns around and uses LLVM to convert IL into C++, then from there compiles C++ into a native binary. And let me tell you, IL2CPP changes up the project structure quite a bit. I haven't found tools that would be good at decompiling a project made using IL2CPP back into a usable Unity project since a lot, if not all, of the original C# code has been lost in the compiled version. Eco is a game that uses IL2CPP for the client and a .NET program as the server to prevent client-side hacking from what I can tell. Here is the Unity doc page on it, I think that would of solved the issue of players using dnSpy to decompile the game: docs.unity3d.com/Manual/IL2CPP.html
Edit: Here is a snip-it from that doc, "Some of the uses for IL2CPP include increasing the performance, security, and platform compatibility of your Unity projects." So even Unity knows that one of the reasons to use IL2CPP is to increase security of the game, which would include removing tools such as dnSpy from the belts of decompilers.
I can't get it to compile some stuff though, for instance SteamVR just dies when used in IL2CPP.
@@Chadderbox because its building a static binary, everything needs to be Ahead Of Time compiled (AOT). Normally, Unity will just compile to IL, which is then Just In Time compiled (JIT) by the CLR. However, the C++ project contains everything required built in and does not do any JIT. As a result, many C# library that make heavy use of Reflection.Emit or JIT features will not work. Newtonsoft.JSON is a big example.
AOT compilation has also advantages.
@@anonymoususer6801 Do you mean JIT? In the case of IL2CPP, it is considered AOT, with the exception being iOS devices where Unity has to use an AOT .NET Compiler instead of a JIT Compiler.
As Edwin already said, used IL2CPP for Maze. So wait for the next two videos to hear how effective that is :P
9:30 Looks like a good doggo there left under
To write hints,Use pebbles and put it on the walls,that way it cannot be reverse engineered.
A better way to do chapter 11 is with unity's path finding and inverse kinematics. For the event I would've created a object that the rabbit moved towards, when you enter a certain radius (or saw the object with raycasting) the object updates the "next object to move towards" of the rabbit. In this way each object is responsible for sending it to the next, therefore not needing to hardcode it and allowing to easily scale the path
The magic spell part reminds me about: "system call create luminous object" ;-)
HA! good meme
System call cannibalize 200 people into sword
Great video! It's always interesting to see how people approach game dev and improve while they learn! I like how you showed that you often went back and did major changes to things like the island, it makes it a lot more comforting to know that other people often go through those times in development where they feel their vision has changed.
I do have a slight gripe with the Alternative Stories bit in your log. There's nothing wrong with changing the story of a game in progress if you feel it might be more interesting or fit the gameplay better, but the way you describe changing the gender of the PC just sounds slimy and condescending. It's pretty telling that you consider having a female PC as a fun surprising novelty to "own the white male nerds even though I am one" as opposed to just another change that can occur in the development journey. 😒 We gals aren't a cheap twist, we're a normal part of life just like guys. (Also, bringing up and misrepresenting Gamergate in 2020? Talk about beating a dead slandered horse!)
It's just a small gripe, but it's there regardless. I apologize if I'm taking a joke too seriously. 😅 Looking forward to future installments in this Dev journey!
I searched comments for "gate" after experiencing a wtf moment mid-video and agree with everything you wrote.
Just so you know, Unity has the ability to compile games using IL2CPP, turning your C# code into compiled C++ code. This does a pretty good job at obfuscating your code, but can also lead to more issues like simple things being lost due to compiler optimizations. There are also obfuscators on the asset store that make the source impossible to read, though for your purposes that's probably not what you want.
TL;DR, use IL2CPP when possible to prevent source docompiles
while rabbit is absolutely an amazing idea!
I think it's very hard to limit players from cheating 'teleportation' in a local game. In order to create more challenging tasks, turn it into server-client (unity can do this out of the box) where server would validate user movements, preventing teleports, flying, etc.
On competition, you could make the server source code (or binary) available to players, but they are not allowed to manipulate it. And they'd have to find checks that are implemented poorly and exploit them
Did you watch the video?
You inspired me to try to make a unity game! Gonna try to use free assets though since I’m cheap 😂 your game looks great, can’t wait for the next part!
Please note that some of the Unity Decompilers are actually spyware. The most prevalent paid "Project Compiler" has a dubious pass and includes spyware to "prevent piracy".
Machst du in Zukunft noch mehr solche Spiele bzw. gibt es ne Chance, dass du eins mit einer Community machst? Ich hab C# / Unity Erfahrung und würde mich für sowas interessieren.
the dog seems to enjoy your content too
Make gravity less, so you float down, harder to check for cheating on the server if calculations are done locally (and it's one change for a global effect) - just scan for a value of between 9 and 10 maybe (gravity constant on earth is 9.81m/s squared). You can also fake buoyancy underwater by making gravity ever so slightly negative, until you reach the surface (can also add in effects of any extra weight your character my be holding on to). Also sometimes there is no need for a hole hack, get caught on the edge, and as falling and getting 'stuck' on the 'slope' of the hole, keep jumping (sometimes this works).
Just and idea on how to solve flags problem:
just split letters to separate objects and then place them independently
in assets you will see separate letters, and maybe do not place them by code, but in unity designer (disassembling code it just too easy)
he said in the video that there are tools for windows that reverse engineer projects to the point where they let you open the project in the unity editor. this wouldn't work
Back in 2006/2007 there were a lot of hackers on the MMO maplestory. Great times. Wish I had the knowledge then that I have now!
For the scripted npc you could make a collider sphere that follows the rabbit. There are collider enter and leave events which you can basically use to control the rabbit movement
I have used colliders to trigger when the bunny starts running
This is super creative and cool
How did you achieve those graphics? That's beautifu. Could you do a tutorial?
Just noticed
Kurzgesagt calendar
very tnks my frend you are the best
very tnks for your help
dnSpy is so great i can't put it in to words.
9:29 look at the cute dog in the corner!
The magic and hacking theme sounds a bit like the magic 2.0 series of books. Wizards are just hackers who can manipulate the world through editing a text file.
We need gameplay videos of Following the white rabbit.
There is a easy way to make things like cheat engine more annoying im not sure how this process is called, but instead of storing int or float you create a wrapper class/struct and everytime you update the value, the setter will generate two random values which you have to add to get the real number, for example let's say you store the value 42, then the setter would randomly pick the value 40 and 2 and the store them in fields, the getter would add these two values to return the real value. This way you can't search the number 42 in the cheat tools, because the value 42 isn't stored anywhere in memory and since the two internal valus are random you will always see different numbers. Of course this is only a small annoying thing, because you could just modify the decompiled source code to remove the random part and for example store the real value and zero in these fields instead of the random stuff etc.
Hey LiveOverflow! In order to protect code for Unity game you can try using Il2Cpp (you can find that in player settings). It'll do some magic to translate c# code to CPP as name sugest. Look it up :)
Wait for next video ;)
This is a great idea! I have been having problems with people hacking my scoreboards, but this seems to fix it very well. Can't use dnspy anymore.
melonloader already gets around this
You actually can use C++ in Unity. Just write your lib, and attach it as a plug-in. As Unity itself is written in cpp, there's no issues with this approach.
If you want some feedback, the videos while sitting are better. Thank you for the good content
Many people here post about IL2CPP Im sorry to disappoint you, but that doesn't solve anything, it can still be decompiled. Yes it's a bit harder than decompiling C#, but there are still enough tools out there to make it easy enough. The main point of IL2CPP is because some plattforms require AOT for example IOS and to improve performance (in some cases, mostly mobile). Don't use IL2CPP to "protect" your code, your code has to run on the machine, no matter what tool or language you use, there is always a way to read the code, the only way to solve this is by implementing online connection and let the server handle the "secret" code.
Maybe for a hacking game you could make your own little script language (google game byte code pattern) for the important stuff, like puzzles. Obviously it can still be decompiled, but since it's your own language, there are no tools, so it should be annoying enough that people will no bother with it.
maybe u could encrypt the flag texture with AES and use the player coordinates rounded to the nearest integer or something similar as the key to decrypt it - so would only see it if you‘re in the right spot, i.e. either by teleportation hacking or disbaling fall damage. i dunno just an idea to make static analysis more difficult
BTW: can you open source your 2 games? I mean if you wanted to, is it even possible since you bought so many assets?
It depends on the licensing of the purchased assets.
The link for downloading the game sadly isn't working, is it only on my pc? :)
You forgot chapter 8 haha
is the game still available to download, it seems that the link is no longer in use
What about Unity's IL2CPP?
Sad that does not support Linux & MacOS, then I am not gonna touch it.
Unity should have path finding components as far as I know.
I think you have to bake first where the npc can move and then you can let it go anywhere
Using pathfinding is usually too unreliable for scripted sequences because it is too likely that positioning or asset changes will break the sequence.
In addition, it doesn't provide the level of customizability that you usually want (e.g. stopping at a specific place to force a specific view). That's especially true when the sequence has multiple triggers that advance an internal state, so that a failure to trigger could result in an invalid state.
Damn, now i want to do it too xD
how can i download the games, the links seem to be down?
Can you please include your logo in your video thumbnail.
I skipped over the Game Dev Log because I thought it was a random algorithm suggestion and not one of my favorite creators videos.
isn't my handwriting recognisable at this point? :D
Respect!
I am trying to reverse engineer a game to create a hack for it, what do you suggest or where should i start ? its MMORPG
12:50 and also your old intro?
Nice plant
Small spaceship? More like small DeLorean :)
Cool.
North Gang here send by Micheal REEEEEEEEEEEEves
CTFs and security nerds goes brrrrr
Download link not working
How is there enough time in the day for you to be doing all this!?
doggo!
What I've learned from this video is that LiveOverflow likes black hoodies. :D
I've explained the plot for you guys, no need to thank me ...
You can't really run most games in a VM, because they require hardware accelerated 3D graphics.
not if you use gpu passthrough
Maybe use www.preemptive.com/products/dotfuscator/overview or something like that? Or just name your variables from 'a' to 'z'...
i heard unity's particle system can solve every one of you problem in life
As always a very high quality video, but for my taste a bit too much advertising
What kind of advertisement? I would recommend AdBlock then it’s ads free ;)
@@LiveOverflow I'd recommend uBlock Origin instead, as you can just right-click and pick out elements to be blocked (The "Please disable your AdBlocker" elements, mainly, but can do it to anything you'd like.). It also doesn't accept money to allow advertisements to get past it, and has a lower memory foothold as far as I'm aware!
The download is broken
7:53 wrong subtitle
"hile" - "while"
Oh no.
There wherent any real rabbit's in this video 😔
Michael Cera computer hacker
Hey sir have u ever try to decompile android app mt manager thats a great time pass for u
Please like folks if u agree with me.
i don't have pc or laptop 😣
but have a smart phone
Your phone is also a computer
Hi
Hi
Hi
hi
HI
Don't read this
Why
@12:50 There's also WHTE_RBT.OBJ in Jurassic Park.
You inspired me to try to make a unity game! Gonna try to use free assets though since I’m cheap 😂 your game looks great, can’t wait for the next part!
Hello
...
Hey there brothers!
So YOU are the reason for my horizontal scroll