Inteligencia articifial.
Básicamente tienes que pasar a código lo que tu harías al estar donde él.
Por ejemplo, en una recta acelerarías, al avistar una curva frenarías hasta tener una velocidad que haga que no te salgas de la carretera y girarías al entrar en la curva.
Hay dos formas de hacer esto : la basta y la fina.
La basta es hacer un precalculo de todas las posibilidades y tomar la mejor. Eso en este juego es un poco inviable porque la cantidad de posibilidades son enormes.
La fina es decirle en el momento exacto como debe actuar. así, el objeto estará en una acción a la espera de que otra orden cambie su coportamiento. El problema es como decirle "oye, hay una curva cerrada, tienes que frenar ya"). Para eso se pueden usar muchos métodos. Yo soy fiel a usar sensores. Por ejemplo, el punto de visión. Ponemos el punto a 100 píxeles en al dirección que esté mirando el coche, en el momento en el que el punto se salga de la carretera indica que hay una curva, es en ese momento en el que debes muirar si es hacia la derecha o la izquierda. También puedes poner el punto más lejos o más cerca dependiendo de la velocidad de giro del coche y de la velocidad que tenga, así si va despacio, puedes ponerlo a 32, y si va muy rápido a 150, así se simularía el tiempo de reacción. Eso sí, tendrás que hacer muchos cálculos para que no se salga.
De hecho el hecho de que el punto sea dinámico y se acerque al coche haría que este reduzca su velocidad cuanto más cerrada sea la curva. Así si es una curva poco pronunciada, al frenar un poco y girar minimamente elp unto volverá a estar en carretera, y el coche volverá a acelerar, mientras que si es cerrada, al girar un poco seguirá fuera de la carretera porque irá muy rápido y el punto estará lejos, tendría uqe estar mirando en dirección al nuevo tramo de carretera para que acelere, pero al reducir la velocidad al mínimo, llega un momento en que el punto se sitúa dentro de la carretera y el coche vuelve a acelerar siguiendo la curva.