Как считаете, как лучше хранить геодату:файл,mysql,nosql, в памяти (загруженные классы)?
Форум → Программирование → Общие вопросы программирования → Архитектура игрового сервера
Архитектура игрового сервера
Страницы: ← Предыдущая страница • Следующая страница →
- 
                    
                    
                        
- 
                    
                    
                         Апрель 3, 2016, 11:23 д.п., спустя 2 часа 42 минуты 47 секунд Апрель 3, 2016, 11:23 д.п., спустя 2 часа 42 минуты 47 секундну и вопросы где хранить данные зависит от требований к ним и того, как ты с ними будешь работать. 
 посмотри ещё CAP-теоремуне всё полезно, что в swap полезло
- 
                    
                    
                         Апрель 3, 2016, 3:08 п.п., спустя 3 часа 45 минут 25 секунд Апрель 3, 2016, 3:08 п.п., спустя 3 часа 45 минут 25 секундну вот хоть какие то ссылки нашел сам, это хорошо :) Сапожник без сапог
- 
                    
                    
                         Апрель 3, 2016, 6:13 п.п., спустя 3 часа 5 минут 21 секунду Апрель 3, 2016, 6:13 п.п., спустя 3 часа 5 минут 21 секундуПосмотрел Cap теорему - целостность данных и ролл бэки с бэкапами можно организовать. А вот рэйд массив и дополнительные сервера не по карману. 
- 
                    
                    
                         Апрель 8, 2016, 7:54 п.п., спустя 5 дней 1 час 40 минут Апрель 8, 2016, 7:54 п.п., спустя 5 дней 1 час 40 минутнаписал небольшой ман по java книги оракл интернет   Java_samples.PDF View and download from Yandex.Disk yadi.sk 
- 
                    
                    
                         Апрель 12, 2016, 3:39 п.п., спустя 3 дня 19 часов 44 минуты Апрель 12, 2016, 3:39 п.п., спустя 3 дня 19 часов 44 минутыВ формете грабить корованы "Архитектура" Архитектура- Клиент
- Сервер
- База данных
- Сайт
 Клиент- Посылает и принимате сообщения от сервера.
- Отображает графику и объекты
- Отображает интерфейс пользователя и диалоги
 Сервер- Принимает и отправляет сообщения.
- Осуществляет контроль версий клиента.
- Отвечает за безопасность.
- Игровая механика и взаимодействия игроков.
- Играет за монстров AI.
- Отвечает за целостность и сохранность данных.
- Держит необходимые данные в памяти и совершает репликации в базу
- Крон задачи
- Чат
- Бэкапы
 Сайт- Регистраци
- Авторизация
- Настройки
- Форум
- Новостная лента
- Медиа
- Админка
- Библиоткека
- Обратная связь
 Админка- Управление пользователями
- Обратная связь
- Управление новостями
- Управление бд
 Особенности и узкие места- Разделение логики:3д движок jmonkey,клиент-сервер.
- Сущьности и модели:3д движка,игровые сущьности, сущьности базы данных.
- Грид: для разделения на локации.
- Шаблон Observer: Для оповещения близконаходящихся объектов.
- Очередь сообщений: для оповещения клиентов.
- Сбор сообщений: сбор сообщений от близко находящихся игроков.
- Игровые вычисления: вычисление игровой механики для близко находящихся игроков и объектов
- Отправка: рассылка общего пакета с вычислениями для близко находящихся игроков и объектов
- Синглтон: создание единичного экземпляра объектаю
- Фабрика: для получения типовых объектов
- Абстракции: для определения полей и методов типовых классов.
- Модульность: 1)гибкость подгрузки вспомогательных классов. 2) разделение на модули. 3)роутинг.
- MVC: отделение логики базы данных, представления, и бизнес логки.
- AI монстров: модуль управления монстрами.
- DAO/ActiveRecord: 1) для работы с базой данных 2) ленивая загрузка
- Балансировка и масштабируемость: запуск нескольких экземпляров приложения, возможность запуска на разных физ машинах.
- Jar библиотеки, оптимизация.
- Сервер авторизации.
 Игровые особеноости клиента и сервера- Чат (отдельный демон принимающий и передающий очереди сообщений по тикам - таймеру)
- Инстансы (подземелья с отдельной логикой, с таймаутом посещения, физически отделены от общего игрового мира)
- Локации - грид (hex grid coordinates) - оповещение о действиях только рядом стоящих игроков и объектов
- БД: во время старта демона приложения делаются выборки из базы, все объекты находятся в памяти.
 во время авторизации игрока создается формирующий запрос в бд и создается объект игрока. Переодически демон сбрасывает данные обратно в бд и чистит память.
- Гвард: проверяет целостность данных клиента, проверяет code-injection, key-press, speed-hack,map hack,drop hack, подмену пакетов.
- Апдейтер: проверяет контрольные суммы файлов и папок, вычисляет разницу, заменяет и докачивает необходимые файлы.
- Установщик: ставит все необходимые библиотеки,создает папку назначает права, распаковывает архив или закачивает файлы, запускает апдейтер, запускает игру.
 
- 
                    
                    
                         Апрель 12, 2016, 3:53 п.п., спустя 13 минут 52 секунды Апрель 12, 2016, 3:53 п.п., спустя 13 минут 52 секунды@Padaboo, крут, а для чего это делаешь? https://smappi.org/ - платформа по созданию API на все случаи жизни
- 
                    
                    
                         Апрель 12, 2016, 3:54 п.п., спустя 1 минуту 36 секунд Апрель 12, 2016, 3:54 п.п., спустя 1 минуту 36 секунд@adw0rd, игру делаю пока в gitlab вики делаю описание текстовой и графическое сущьностей архитектуры слоев шаблонов сценариев 
- 
                    
                    
                         Апрель 12, 2016, 4:01 п.п., спустя 7 минут Апрель 12, 2016, 4:01 п.п., спустя 7 минут@Padaboo, для фана или по работе? https://smappi.org/ - платформа по созданию API на все случаи жизни
- 
                    
                    
                         Апрель 12, 2016, 4:06 п.п., спустя 4 минуты 24 секунды Апрель 12, 2016, 4:06 п.п., спустя 4 минуты 24 секунды@adw0rd, звучит как "серьезно" или "на отъ*ебись". Хороший серьезный проект планирую скажем так) 
- 
                    
                    
                         Апрель 12, 2016, 4:22 п.п., спустя 16 минут 46 секунд Апрель 12, 2016, 4:22 п.п., спустя 16 минут 46 секунд@Padaboo, понял ) https://smappi.org/ - платформа по созданию API на все случаи жизни
- 
                    
                    
                         Апрель 13, 2016, 1:55 п.п., спустя 21 час 32 минуты 36 секунд Апрель 13, 2016, 1:55 п.п., спустя 21 час 32 минуты 36 секундКак думаете иммет ли смысл шифровать пакеты например: 
 * Формат пакета клиента: [time,user_id/session_id,controller_id,skill9-target]
 * Формат пакета клиента: [time,user_id/session_id,controller_id,barter-target]- Формат пакета сервера: [time,кому,['object1','move' => 'xyz'],['object1' => 'object2','effect32']]
 
- 
                    
                    
                        
- 
                    
                    
                         Апрель 13, 2016, 2:04 п.п., спустя 1 минуту 57 секунд Апрель 13, 2016, 2:04 п.п., спустя 1 минуту 57 секундесть смысл шифровать абсолютно весь трафик каким нить rsa. Спустя 15 сек.иначе к твоей игре бот появится на следующий день :) Сапожник без сапог
- 
                    
                    
                         Апрель 13, 2016, 2:07 п.п., спустя 2 минуты 13 секунд Апрель 13, 2016, 2:07 п.п., спустя 2 минуты 13 секундк твоей игре бот появится @phpdude, как будто в этом есть что-то плохое не всё полезно, что в swap полезло
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!
 
         
                                     
                                     
                                    