As you already discovered there is no special "particle" object in the BGE.
You can use ordinary objects (typically mesh objects).
As you want to get multiple copies of it, you place the original in an inactive layer.
Have one object (the emitter) in an active layer constantly add copies of the original (e.g. via edit object actuator). You can give the added objects an initial velocity when the original is a physics object (e.g. rigid body).
The particles copy the logic of the original too. So the particles can setup themselves e.g. they can play an animation or initiate a random motion.
Constantly find particle objects within the desired range (e.g. via a near sensors). To focus on particles you can filter the objects by a property (e.g. all particles have the property "particle").
Then you apply forces to all the found objects. You need to create a custom brick (python controller) to read the sensor and apply the according force/velocity/location change.
move_up (simple example)
sensor = bge.logic.getCurrentController().sensors["Near"]
for particle in sensor.hitObjectList:
The sample result looks like that:
To pull the particles near the force field center you need to calculate the according forces to do that.