This shows you the differences between two versions of the page.
kg:doc_spec_entities [2012/06/04 10:05] |
kg:doc_spec_entities [2022/04/07 13:13] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Игровые сущности ====== | ||
+ | ===== Мультисерверность ===== | ||
+ | |||
+ | ===== Общая и детальные части ===== | ||
+ | |||
+ | ===== Приложения ===== | ||
+ | ==== Чеклист на overland model ==== | ||
+ | |||
+ | === Классы Оверланда === | ||
+ | - Город (city) - локация, | ||
+ | - Пригород (suburb) - локация, | ||
+ | - Логово (lair) - локация, | ||
+ | - Армия (army) - мобильна, | ||
+ | - Процесс на карте (landaction) - вероятно, | ||
+ | - Фракция (fraction), частные случаи - игрок, НПЦ-мама, | ||
+ | - Ландшафт (landscape), | ||
+ | |||
+ | === Классы детальной информации === | ||
+ | - Город | ||
+ | - Пригород | ||
+ | - Армия | ||
+ | - Фракция **-Тут поподробнее, | ||
+ | |||
+ | === Логика сервера === | ||
+ | - **Финализация мира**: | ||
+ | - **Фракции**: | ||
+ | - пространство идентификаторов фракций общее для _всех_ серверов, | ||
+ | - **Города**: | ||
+ | - по умолчанию, | ||
+ | - некоторые города получают высокий уровень, | ||
+ | - город высокого уровня автоматически снабжается пригородами, | ||
+ | - все города хранят данные в 2х объектах: | ||
+ | - краткую информацию в Оверланде (видимую всем), класс overland.City | ||
+ | - детальную информацию в Детейл-дате (выдаётся кому надо), класс detail.City | ||
+ | - **Игроки**: | ||
+ | - **Армии**: | ||
+ | - **Добавление нового игрока**: | ||
+ | - создаётся фракция внутри мира для игрока | ||
+ | - выделяется случайный город из тех, которые имеют хозяина с ИД==0, то есть " | ||
+ | - город назначается игроку | ||
+ | - город получает уровень ==1 | ||
+ | - **Апдейт мира**: | ||
+ | - **Логова** | ||
+ | - увеличивается встроенный таймер, | ||
+ | - логово может исчезнуть | ||
+ | - логово может породить Армию (НПЦ) | ||
+ | - анализируется счётчик посещений, | ||
+ | - логово может получить статус " | ||
+ | - **Пригороды** | ||
+ | - растёт население: | ||
+ | - при максимальном урвоне, | ||
+ | - меняется уровень: | ||
+ | - если понижение уровня не совместимо с типом модуля - происходит потеря типа | ||
+ | - апдейт экономической системы (связан с апдейтом города, | ||
+ | - вырабатываются и добавляются на склад города товары | ||
+ | - со склада города изымаются товары, | ||
+ | - анализируется рабочий статус пригорода, | ||
+ | - порождаться новые процессы | ||
+ | - гаситься текущие | ||
+ | - **Города**: | ||
+ | - нулевой уровень города отключен от апдейта (?) | ||
+ | - растёт население (детальные данные): | ||
+ | - при нулевом владельце - падает население | ||
+ | - меняется уровень: | ||
+ | - понижение уровня любого города - отбирается случайный модуль, | ||
+ | - повышение уровня города для нулевого владельца запрещено | ||
+ | - повышение уровня города для владельца НПЦ: | ||
+ | - автоматическое создание пригорода (хардкод) | ||
+ | - имеющиеся пригороды анализируются на предмет возможной смены типа | ||
+ | - повышение уровня города игрока - ничего не происходит | ||
+ | - производится рассчёт экономики: | ||
+ | - вырабатываются и добавляются товары. Процесс может требовать на складе сырья. | ||
+ | - изымаются товары, | ||
+ | - **Армии** | ||
+ | - пока никакой логики | ||
+ | |||
+ | === Протокол связи === | ||
+ | * Логинимся - получаем данные игрока (в будущем - соединение на нужные игровые сервера) | ||
+ | * видовые операции на клиенте - никакого взаимодействия с сервером не нужно. | ||
+ | * информационные транзакции: | ||
+ | * выбираем в виде объект | ||
+ | * определяем - можем ли мы получить детальную информацию, | ||
+ | * отправляем на сервер запрос на данные | ||
+ | * пришедший ответ выкладываем в локальный кеш, если информационное окно всё ещё открыто - обновляем его содержимое | ||
+ | * что-то пытаемся выполнить с клиента: | ||
+ | * определяем как можем условия - можно или нет | ||
+ | * отправляем на сервер свою команду | ||
+ | * сервер обрабатывает команду, | ||
+ | * положительный - изменение на клиент придёт в регулярном обновлении | ||
+ | * отрицательный - отправляем внеочередное сообщение о фейле операции | ||
+ | * периодически получаем с сервера обновления, | ||
+ | * **-как быть с отменами? | ||
+ | |||
+ | === Информационные запросы === | ||
+ | - Логин | ||
+ | - хочу заглянуть в Город | ||
+ | - хочу заглянуть в Армию | ||
+ | - хочу заглянуть во фракцию | ||
+ | |||
+ | === Команды с клиента === | ||
+ | - напрямую изменить вертекс ландшафта (для режима редактора) | ||
+ | - построить для выбранного (моего) города новую деревню | ||
+ | - изменить тип деревни **- это как?** | ||
+ | - построить в городе домик **- нипонял** | ||
+ | - начать найм отряда | ||
+ | - изменить состав армии в городе **- с чего на что? просто перебросить? | ||
+ | - передвинуть армию (героя) в выбранную точку | ||