создаешь массив $map[x][y], где x, y координаты. к примеру карта 10х10 ячеек
Code
for ($x=0;$x<10;$x++) {
for ($y=0;$y<10;$y++) {
$map[x][y] = 0;
}
}
Далее отобразить карту:
Code
for ($x=0;$x<10;$x++) {
for ($y=0;$y<10;$y++) {
if ($map[x][y] == 0) {
echo "<img src='img/empty_cell.png'>";
} elseif ($map[x][y] == 1) {
echo "<img src='img/hero.png'>";
}
}
}
С помощью js узнаешь на какую ячейку нажал игрок ajax'ом передаешь координаты, php обрабатывает как туда можно пройти и можно ли вообще туда пойти. Если можно, то возвращает координаты по которым туда можно пройти, далее js передвигает картинку игрока по ячейкам. Но это огромная нагрузка на сервер, лучше юзать сокеты, node.js+socket.io как раз тут получится такое реализовать с меньшей нагрузкой. Либо phpDaemon юзать.