So I am making something in unity for VR and am trying to remove slope bounce when going down slopes. Every tutorial I see is manipulating the player movement functions in the player script, but I am using the Action Based Continuous Move Provider for my movement so I don't have access to that stuff do I?
Basically, I am wondering how to smooth slope movement when using this locomotion system.
I have tried looking at a bunch of Youtube tutorials but they all end up modifying the players' movement directly so that it is parallel with the plane you're walking up. I understand it but I'm not sure how to do it with the continuous move provider.
Related
As stated in the title. I will include a video of what I'm trying to make. I'm not sure how to make the part that the player swings on.
https://youtu.be/Z_RVr0nFpVE
Description of the mechanic: when the player taps a "web" is created that goes from the player to the roof at a slight angle forward. This web gets shorter over time. When the player stops tapping the web goes away.
I’m sure that there is no physical rope or string simulation. The easiest way is to slow the horizontal speed down, add decelerating up-directed velocity, and draw a rope from the origin to the player. After parameters adjustment the result should look similar to what you’ve shown.
So I have a game that I'm working on and its a simple platformer kind of like mario bros, I have a simple physics engine to move the player (Things like gravity e.t.c), But I have no idea how I would go about stopping an objects movement on collision, the best I've managed to do is to stop all movement if it collides with an object, but it is still left intersecting the object and can not move at all as the movement script is just turned off at that point.
Any help with the theory or snippets of code would be appreciated :)
I want to know, is there any way to detect within our game against speed hack applications like game guardian?
I searched all over the internet but I didn't get a satisfying answer.
The solution is not more software on top. The solution is not being vulnerable to this from the start.
Example:
If you allow your users to send your server their coordinates on the world map ("I am the blue player and since I moved my full allowance, I'm now at 156/467"), it's trivial for somebody to write a teleport cheat. Just send different coordinates, boom teleported. Kids play.
If you only allow your users to send messages of intent to your server ("I am the blue player and I intend to move my full allowance in the direction of 156/467") and let your server figure out what that means (is the player allowed to move, what is his allowance, how far will the blue player get in one unit of time) and send the result back, you will never have that problem.
Do not trust client input. First rule of video game security: The client is in the hands of the enemy.
There is little point in shoving more and more software on top of your client if you keep trusting your client. Just stop and design your game so the client can send intent and the server determines outcome.
It depends on your game, but you can try detecting speed hacks by simply checking player position every frame.
Determine maximum possible move distance per second and put it in constant, so that the player wouldn't be able to change that at runtime.
Cache current position.
On next update, check the distance the player travelled and multiply it by the Time.deltaTime.
If the player travelled more than maximum allowed, the player must have cheated.
Return to step no. 2
It will be framerate independent checking as you will be using maximum allowed distance per second.
If the server has all player positions at all time and your problem is with speed hacking the solution is not that hard (assuming player position is being sent to server constantly).
Please do the following, first before updating player position check if the distance between current position and old position isn't too big
var distance = Vector3.Distance(old.position, currentposition);
if(distance<=alloweddistance)
...
and if it is avoid updating position\set player to old position\kick player. A better solution to even that, is to not allow players to send their current position to server, rather send direction they are moving and speed. The server should change their position with the direction and move speed, not client.
I found Solution for my own project that is online multiplayer and it works for any online game.
For solving this problem just we need to calculate time in server. for example we can use stopwatch and doing this in client side... and in an specific situation we can compare them over network and if there was any difference between them, (some thing like more than 3 second) then becomes clear that player is used speed hack.
I tried this method in my game and it works fine.
I am currently working in a Unity 3D project (in version 5.0.1 to be precise) in which the character can walk in different-shaped planets without falling. So it is always attracted by the planets gravity (similar mechanic to the Super Mario Galaxy games).
Now, the problem is when I try to code the AI for the enemies. This AI should be pretty much simple, but because of this thing that I have with the planets shapes, I haven't been able to come up with a solution. The enemy should check where the player is and move ahead to its position. It's a really dumb enemy. But the thing is, that the enemy must be able to track the player and get to its position no matter what planet he is in. So, if the planet is circular, I cannot make the enemy look at the player and then move forward, as I would do in a plane planet.
I have already tried using a NavMesh, but Unity doesn't want to collaborate and ends up making a NavMesh of 1/3 of the planet. I don't understand why. I have tried changing every single parameter of the NavMesh baking but I haven't succeeded.
Another problem that I would like to do is: ¿How would you make a player be able to walk on the surface of any planet, no matter what its shape, in a smooth way while using a Mesh Collider? I am currently achieving this by getting the planet's normal with a raycast, rotating the player so that the Y axis is perpendicular to the normal and applying a force in -Y to simulate gravity. But this brings lots of problems when I implement the Mesh Collider. It results in a jittery effect. But, when I use a primitive collider from Unity, it works fine...
Anyway. What I need the most now is the answer to the AI question. The other one is kinda like a plus.
P.S: It doesn't matter if the solution is in Javascript. I can then translate it to C# :)
Anyone know how to use Goblin XNA to implement ball control in the same way as one might find in the board game labyrinth?
There don't appear to be any tutorials or information at all regarding how to do this, despite there being a demo video displaying just such a thing.
I've setup the environment and gravity and added the ground and a sphere. I use WorldTransformation.Decompose to extract the current orientation of the board. I know the next step will be either ApplyLinearVelocity or AddForce to the sphere based on the current board orientation, but I don't know how to constantly apply these methods to the ball so that the ball is moving in response to the movement of the ball. Adding code to the Draw or Update methods only executes the code a single time. Anyone familiar with Goblin XNA at all and able to help?
As far as I can see in Goblin XNA the Update and Draw methods are called the same way as standard XNA games. Can you give more specific information? source code perhaps?