It is not possible to determine the result of a collision between point particles in 2D or 3D. This is because the directions in which they rebound off each other depends on the orientation of the line or surface along which they make contact, relative to their previous directions of motion.
This situation is familiar in billiards and snooker. A stationary ball can be made to move in a variety of directions depending on whether it is struck head on or to one side by the cue ball. For each ball the change in velocity is always directed perpendicular to the common surface at which they make contact.
However point particles have no structure so no such line or surface of contact can be defined.
In 1D the point particles are constrained to move along a straight line and can only rebound back along the direction from which they came. In 2D or 3D there is no similar restriction. In fact there is a more fundamental dilemma : whether the point particles have collided at all. Since they have zero size they almost never occupy the same place at the same time, and therefore do not touch.
Practically you could assign a small but finite radius to each particle. Otherwise the precision of your computer determines the size of particles.
The simplest solution is to assign at random a line along which contact is made (see Note), after it has been decided that there has been a collision - ie when the particles are within one diameter of each other. Each particle retains its initial component of velocity parallel to the contact line. The final components of velocity perpendicular to this line are calculated from the laws of conservation of momentum and kinetic energy as is usual for 1D collisions. For elastic collisions (in which no kinetic energy is lost) the relative speed of separation (along the perpendicular) must equal the relative speed of approach, regardless of the relative masses.
A more sophisticated solution is to model the particles as circles. The common tangent (or chord) along which these circles touch (or overlap) defines the line of contact. Allowing some overlap reduces computation and looks more realistic.
Note :
For point particles a realistic collision can be simulated without considering the spherical geometry of colliding billiard balls, and without avoiding overlap.