In my PC this makes the character move the way i want (i adjusted the ticking time till i`ve got it to 0.02), but if i try to run it on another PC the character sprites change a lot faster... I`m using the same mechanics to make the bitmap move trough the screen from time to time, and i`m having the same issues..

1) You only want to call al_start_timer once. Calling it more than once does nothing.

2) You only increment your sprite index if the right arrow key is down and there is another event waiting in the queue. The timing of the sprite's frame change should not depend on whether there is an event in the queue.

3) If you increment your sprite index every time you check whether the right key is down, it will go way too fast to see and will just look flickery. You need to use a time based increment for your sprite index. See the animation class below for how to do this.

4) You should only redraw when you get a timer tick or when the state changes. With hardware acceleration, you might as well fully redraw on every timer tick.

5) Your timer should beat at the same rate as your monitor's refresh rate, since that is as often as you can display data to the user.

It also depends if the computer simulation is being executed on a server in high orbit and then displayed on your desktop.

It doesn't have to be a high orbit, as long as the relative velocity between the client and the server is sufficiently large. If the server moves away from the client at the speed of light, the timer will stop ticking altogether.