I don't know if there's a "correct" way to do it, but it's likely just an aesthetically pleasing linear transform applied with a falloff calculated from distance to a point.
So for any element you're working with, you'd:
- find the distance to the center of the warp (d)
- calculate 1 - d / the max distance of the effect you'd like (i for intensity)
- clamp that to [0-1]
- transform the element by lerp( identity, transform, i )
Iirc, Geometry wars applied that as a distorting warp to some elements, while other elements like particles were just affected by the "force", without being distorted. You could apply the distortion in a vertex shader, assuming you had enough vertices to smoothly sample the effect. Alternatively you could render everything that needs affecting to an offscreen buffer first, and then render the results onto a nicely tessellated quad that you apply the distortion to, before adding all the non distorted elements on top.
As for the transform, scaling will give you the sucking in look. If I remember correctly, there was also some twisting going on, which would just be a little rotation.
You can get fancier and fancier with your calculations of the intensity factor to get wackier looking effects. You could, for instance, calculate the angle (a) that an element is relative to the center, and factor that in. Take cos(a) and you can make radial waves in the effect. What you want to do is set yourself up with the necessary scaffolding code and then go to town experimenting with different combinations of factors.