Сущьности и модели:3д движка,игровые сущьности, сущьности базы данных.
Грид: для разделения на локации.
Шаблон Observer: Для оповещения близконаходящихся объектов.
Очередь сообщений: для оповещения клиентов.
Сбор сообщений: сбор сообщений от близко находящихся игроков.
Игровые вычисления: вычисление игровой механики для близко находящихся игроков и объектов
Отправка: рассылка общего пакета с вычислениями для близко находящихся игроков и объектов
Синглтон: создание единичного экземпляра объектаю
Фабрика: для получения типовых объектов
Абстракции: для определения полей и методов типовых классов.
Модульность: 1)гибкость подгрузки вспомогательных классов. 2) разделение на модули. 3)роутинг.
MVC: отделение логики базы данных, представления, и бизнес логки.
AI монстров: модуль управления монстрами.
DAO/ActiveRecord: 1) для работы с базой данных 2) ленивая загрузка
Балансировка и масштабируемость: запуск нескольких экземпляров приложения, возможность запуска на разных физ машинах.
Jar библиотеки, оптимизация.
Сервер авторизации.
Игровые особеноости клиента и сервера
Чат (отдельный демон принимающий и передающий очереди сообщений по тикам - таймеру)
Инстансы (подземелья с отдельной логикой, с таймаутом посещения, физически отделены от общего игрового мира)
Локации - грид (hex grid coordinates) - оповещение о действиях только рядом стоящих игроков и объектов
БД: во время старта демона приложения делаются выборки из базы, все объекты находятся в памяти.
во время авторизации игрока создается формирующий запрос в бд и создается объект игрока. Переодически демон сбрасывает данные обратно в бд и чистит память.
Апдейтер: проверяет контрольные суммы файлов и папок, вычисляет разницу, заменяет и докачивает необходимые файлы.
Установщик: ставит все необходимые библиотеки,создает папку назначает права, распаковывает архив или закачивает файлы, запускает апдейтер, запускает игру.