Я работаю над библиотекой RPG в Perl и хочу сделать каждую часть максимально взаимозаменяемой. В настоящее время я создаю подсистему Map и перейду к подсистеме Character. Как я должен обрабатывать взаимодействия между персонажем и картой?
$character->move('left'); # Character encapsulates a Map
или что-то вроде
$runtime->moveCharacter('left'); # Runtime encapsulates both Map and Character
Не похоже, что Карта должна быть частью Персонажа, но в противном случае это выглядит неловко.
Кроме того, как мне отделить графические элементы тайла карты и внешний вид персонажа от базовых данных? Или в этом случае графическая часть данных является его частью?
Я знаю, что обдумываю это и хотел бы сделать эту систему гибкой, не будучи полностью переоснащенной. Спасибо!