How do I make this feel more realistic?

Hello! Not sure if this should be in #help-and-feedback:game-design-support or this category, but here we go!

Alright, if you have ever played spider-man web swinging game, you know that they have really a fluid swinging motion. I am trying to replicate this but right now it just doesn’t feel like it, you know? It works, but its not really fluid, and you can’t gain height easily unless you swing in circles a lot.

How would I fix this and make the game much more fun? Thanks so much! :snowflake:

Here is the game link for you to see how bad and unrealistic it is lol:

And here is my code where it applies the forces;

--Server script in ServerScriptService
local Rope = Instance.new("SpringConstraint")

game.ReplicatedStorage.CreatePart.OnServerEvent:Connect(function(player, part, mousepos, isholdingdown)
	if isholdingdown == false then
		Rope:Destroy()
		return
	elseif (player.Character.HumanoidRootPart.Position - mousepos).Magnitude > 2000 then
		return
	elseif isholdingdown == true then
		local A0 = Instance.new('Attachment')
		local A1 = Instance.new('Attachment')
		A0.Parent = workspace.Terrain
		A0.WorldPosition = mousepos
		A1.Parent = player.Character.HumanoidRootPart
		Rope = Instance.new("SpringConstraint")
		Rope.Attachment0 = A0
		Rope.Attachment1 = A1
		Rope.Parent = player.Character:WaitForChild("RightHand")
		Rope.Visible = true
		Rope.LimitsEnabled = true
		Rope.Coils = 0
		Rope.Thickness = 0.1
		Rope.Color = BrickColor.new("Institutional white")
		Rope.MaxLength = (player.Character:WaitForChild("HumanoidRootPart").Position - part.Position).Magnitude
		local VF = Instance.new('VectorForce')
		VF.Name = "SpiderForce";
		VF.Attachment0 = player.Character.PrimaryPart.RootRigAttachment;
		VF.Parent = player.Character.PrimaryPart;
		player.Character:WaitForChild("Humanoid").StateChanged:Connect(function(_, state)
			if state == Enum.HumanoidStateType.Landed or state == Enum.HumanoidStateType.Physics then
				VF.Force = Vector3.new(0,0,0)
				VF:Destroy()
			elseif state == Enum.HumanoidStateType.Freefall or state == Enum.HumanoidStateType.Flying then
				VF.Force = Vector3.new(-500,-1500,-2500);
			end
		end)
	end
end)

It actually feels a little bit too fast in my opinion. Have you tried turning down gravity / acceleration and seeing if that affects the feel? As for gaining height you could give players a slight upwards boost for releasing at the right time.

How would I give them an upwards boost? Also where is gravity / acceleration?

I mean you could turn down the gravity in the Workspace, which would slow everything down. I did this once in a naval game to make the firing angles lower without changing anything else. You could give them a boost if they let go while their speed is close to changing directions at the end of a swing. Not sure how to calculate this, you may have to try things and see if they feel good.

1 Like

It did not give any different results unfortunately.