Essencialmente, você precisará de duas estruturas de dados (lógicas, intrusivas ou reais, dependendo do restante do seu código). O primeiro rastreará as cadeias de objetos e o outro o caminho.
Cadeia Simplesmente você precisa saber quais objetos estão seguindo outros objetos. No caso mais simples, isso será simplesmente A segue B, mas pode incluir mais seguidores. Existe um líder designado na cadeia.
Caminho Para cada cadeia, você precisará de um caminho. Dependendo de como o jogo funciona, determinará como isso está estruturado. Na maioria dos casos, será algum tipo de lista vinculada. Isso rastreará as posições que todos na cadeia precisam seguir.
Agora, o líder da cadeia estará adicionando itens ao caminho . Cada vez que se move, adiciona algo ao cabeçalho da lista. Cada objeto na cadeia lembra onde está a lista. Quando se trata de mover, simplesmente passa para o próximo item da lista (interpolado adequadamente, se necessário). À medida que o último item da cadeia passa por um item da lista, esse item pode ser descartado (estará na cauda).
Metaforicamente, o líder deixa uma trilha de migalhas para seus seguidores. O último seguidor na lista consome a trilha de navegação.
Se sua lista contém pontos individuais, ou apenas os vértices de um caminho, ou qualquer outra coisa, é determinado inteiramente pelo seu mecanismo de jogo. Mas, de qualquer forma, não vejo que você consiga evitar a própria lista.