Наличие списка замыканий для выполнения каждого игрового хода звучит как очень хорошая идея: -)
Сериализация замыканий вполне возможна.Начиная с Groovy 1.8.5 это стало проще, так как два метода dehydrate
и rehydrate
были добавлены в замыкания (так что owner
, thisObject
иdelegate
можно удалить перед сериализацией)
Но у меня есть проблемы с нативной сериализацией Java для сохранения данных.Для отправки короткоживущих данных между системами это может быть хорошо (но даже тогда я бы посмотрел на буфер протокола или thrift )
Подумайте, что произойдет, если вам нужнообновить вашу игру?Если в аффекте poisoned
есть ошибка, то каждый пользователь, который сохранил с отравленным закрытием с ошибкой в своем файле сохранения, сохранит эту ошибку, пока она не исчезнет.В многопользовательской игре люди также могут манипулировать своими сохраненными игровыми файлами, чтобы получить неожиданные или нежелательные полномочия (поскольку функциональность самих полномочий будет храниться в файле).Я мог видеть, что манипулирование отравляющим эффектом, так что он добавляет HP вместо того, чтобы удалять их, может быть полезным; -)
Короче говоря, я предполагаю, что я хотел бы написать лист персонажа с идентификаторами длявещи, которые влияют на пользователя, инвентарь, счет и т. д., а затем проверяют и применяют замыкания при чтении файла.