I don't need to test my programs. I have an error-correcting modem.

Legacy:Mod Ideas/GravityWell

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
Mod ideas for UT 2003 – Gravity well

Description[edit]

This map component creates a gravity well somewhere on the map. Designed for use in low grav areas to cause players to curve through the air. The gravity will effect players within it's radius. The gravitational effect can act both towards and away from the well. As with real gravity, the effect will be stronger the closer the player is to the well. At the point of touching the gravity well, the player will experience no gravity at all.

Options on the component are:

  • Area of effect (the radius within which actors are affected)
  • Gravity strength (Positive value for pull, negative value for push
  • Gravity constant (Physiscists be prepared to be offended)
  • Whether the effect is (strength * constant / r) or (strength / constant * r) or (strength * constant / r^2) or (strength / constant * r^2)

I'm not after a good simulation here, just one that's good enough to give the impression of gravity.

Interested Scripters[edit]

If you are interested in developing this mod for UT2003 then add your name to the list. Once you start development you should indicate that below (and hopefully include a link to a journal page). Before you start development you should also check this section to see if anyone else has started.

Discussion[edit]

EntropicLqd: I wonder what the replication implications of this component are. It's quite possible that this idea is unworkable.

DJPaul: No more than normal zone relpication info. No idea if it will pull projectiles, which i doubt. Hack0ring the Karma might be the way to go.

Papapishu Will it be able to twist the player 'feet down'?

That's be a cool way to make asteroid maps and such, just make asteroids and put a gravity-vertex in each one of them, and you got small boulders you can walk all the way around, without having to use warp-portals...

Highlander: I made an actor which does this (Pulls pawns towards it) not sure if it is what you are looking for. I never did figure out how to turn the way your feet go. Made it for a map i was making, never actually used it :/. Highlander/gravitypack Its a bit raw as i only wrote it for my own use. But the basics are there feel free to modify it to your hearts content.

Tarquin: You can paste in the code directly if you like, Highlander, either on this page or one of its own. Come to think of it, I need to clean up all the custom classes that are flying around this place...

Highlander: Changed the link to point to the actual code. Please dont laugh it was the first thing i wrote :)

Mortal Monkey: I'm also working on funky gravity (but for UT). I don't think replication and such is a problem as long as you only affect actors that have Physics of PHYS_Falling. As for the 'feet down' thing, it would require rescripting of the entire playerpawn movement code (I dare not even think about bots), and I would be very gratefull if someone besides me would do it.

Draconx: I've been trying to work this concept in UT. It all works fine except when it comes to projectiles, where you get a desynchronization between client & server on the projectiles (due to bNetTemporary being true on projectiles). So basically my current plan of action is to use DeltaTime in tick to come up with a formula which can accurately calculate the position, orientation, and velocity of the projectile without any input from the server whatsoever. I'm sure its possible, just fairly complicated. Maybe my Calculus teacher will have some ideas, I'll ask him.

The current algorithm I'm employing works as follows:

V = Location - Other.Location;
Magnitude = VSize(V);
VNormal = Normal(V);
V = VNormal * abs(Magnitude - 256);
 
Other.Velocity = Other.Velocity + V;
Other.SetRotation(rotator(Other.Velocity));

Works great except for it not being synchronized across different computers. Also the SetRotation just looks wierd on rocket grenades, so a check should be done on that one.

Foxpaw: I didn't pay enough attention when we learned orbital mechanics in physics class, but that's probrably exactly what you're looking for. (some formula relating to orbital mechanics.)