Ok, so what is happening directly is that because you are using move_towards_point the bullet is going to be aiming at a particular point on the screen. Let's say the bullet starts at an x and y of 0, 0 and is heading towards an x and y of 100,100 at a speed of 3 (forget about increasing the speed for now). The bullets x and y position are going to update each step, moving 3 pixels per step. So the first frame it's at an x and y of 3,3, then the next frame it's at x,y 6,6 and so on. Eventually it'll get to 99,99 (the nearest point divisible by it's speed of 3)...On the next frame it'll go to 102,102 (so slightly overshoot) and then the frame after that it'll start to move backwards to 99,99, because remember it is ALWAYS aiming at 100,100 and it'll keep bouncing between these coordinates forever. If we reintroduce the idea of increasing speed, the same thing will happen, but each frame the bullet will move back and forth at greater and greater intervals (instead of it being 99,99 to 102,102, it'll be 99,99 to 110,110 and then to 98,98 and then to 111,111 and so on, this is why it seems like there's "two" bullets that are slowly seperating, because it's jumping back and forth at increasing intervals 60 times a second (or whatever your room speed is)).
One way to fix this, that has already been mentioned by
@Nidoking, is instead of moving towards a particular point, simply set a direction and a speed and let the bullet continue in that direction forever. The simplest way is to put this in the Create Event:
Code:
direction = point_direction(x,y,obj_player.x,obj_player.y);
speed = 3;
Now the bullet will move in the direction the player was at the instant the bullet was created, it won't jump back and forth like it would with move_towards_point, because it's not aiming at any particular point, just a particular direction. Now how do we get it to increase in speed? We could do this in the Step Event:
Code:
speed += 0.1; // This number will probably be quite small as even a small speed increase every step will lead to a fairly rapid acceleration
This is the most simplistic version of what you are trying to achieve. As you get better, you'll want to start taking manual control of more and more things, and will probably drop the built-in speed variable in favour of your own custom speed variable (most people name it spd, since speed is already annoyingly taken).
One extra note is that since your bullet is now going to travel in a particular direction forever, don't forget to destroy it when it leaves the room or the screen or whenever is best for your game. Otherwise you'll gradually fill up the processing and memory of the computer with a ton of bullet instances that are all miles away from the play area and aren't needed.