Aion на языке официального сервера

Booblik

Moderator
[Зам.Боженьки]
Командный игрок
По классическому официальному серверу, есть несколько игровых серверов, а именно:
1) 1-ый боевой сервер
2) 2-ой боевой сервер и последующие 50 серверов в зависимости от нагрузки
3) сервер компьютерного клуба
4) тестовый сервер на каждый боевой или один общий
5) тестовый объединённый сервер (арены и батлграунды)
6) объединённый сервер (арены и батлграунды)
7) сервер новичков

Первые два пункта, по договору с правообладателями, всегда должны быть. Т.е. у каждого настоящего официального сервера должно быть минимум 2 игровых сервера, контент которых решают сами официальные региональные правообладатели (администрация регионального официального сервера).

Сервер компьютерного клуба - прерогатива самого создателя игры (а именно корейского официального сервера). Сервер компьютерного клуба есть только на Корейском офе, но весь контент присутствует и на обычном боевом сервере. Отличие между ними - возможность играть в общественных местах без опаски оставить свои личные данные третьим лицам.

Тестовые сервера ставят для проверки будущего нововведения. В зависимости от общего прогресса серверов, администрация решает сколько должно быть тестовых серверов. Эти сервера ни чем не отличаются от боевых кроме пары пунктов:
1 - на серверах балуются ГМы
2 - просто так на эти сервера зайти нельзя
Одна из причин почему нельзя просто так зайти на эти сервера - очень детальное изучение игры и поиск всяческих багов. Ни один сервер не любит когда пользуются багами - лишний геморрой. Поэтому на тестовых серверах присутствует только узкий груг лиц, а обычные игроки попадают туда только по специальному приглашению и только на небольшой промежуток времени (отсылка на массовый тест батлграунда "Ущелье ветров" на российском официальном сервере).

Межсервер - он же арены и все батлграунды, где можно встретить игроков не только со своего сервера, но и с другого сервера такого же регионального официального сервера. Начиная с версии 7.0, понятие о межсервера начало немного терять свой первоначальный смысл. Если раньше межсервер использовался только ради батлграудов, то после апдейта 7.0 появляются новые зоны фарма где играют люди со всех серверов.

Сервер новичков - сервер где стоят повышенные рейты для упрощённой прокачки персонажей. На данном сервере урезан весь PvP контент до минимума. На данный сервер можно зайти через обычное системное меню игры. На сервере новичков были персонажи со всех сервером регионального официального сервера, но с отдельной экономикой. По классике (актуально до версии 4.9) на сервер могут перейти все желающие, чей уровень персонажа не выше 55-го, но персонаж мог самостоятельно перейти на обычный сервер в зависимости от локации в которую он перемещается. С последующими апдейтами, уровень был поднят до 65-го. После апдейта 5.8, из за прокачки, сервер новичков не пользовался спросом, а в апдейте 6.0 был отключен.

Всё что вы только что прочитали, лишь малая часть игры. Всё, что вы могли видеть на официальном сервере - это совокупность идиотизма и огромного количества проделанной работы над продуктом. Почему идиотизма? Я, как человек который занимается созданием чего-то нового на официальном сервере, могу с уверенностью заявить что огромное количество моментов можно было сделать проще. Взять, хотя бы, спавны мобов. На скрине ниже представлен спавн Мунина из Исхальгена.

1689096801537.png

Ради интереса посчитал количество строчек на офе для спавна, оно оставило 53 строчки. Пятьдесят три, мать вашу, строчек!! Ради чего? Ради того что бы он бегал обходил или не выходил за зону? Спасибо первым разрабам фришки - X, Y, Z, угол и респ. Почему нельзя было вот так же просто сделать, а дополнительные необходимые момента запихнуть в его АИ? И это только малая часть идиотизма.

С другой стороны, они сделали замечательную систему проверки. Как многие знают, официальный сервер это не 3 программы (логин, чат и гейм), это совокупность работы от 4х серверов до 17ти серверов. Один из этих 17-ти и один из самых основной - CacheServer (далее кеш сервер). Этот сервер должен быть всегда включен и без него на сервере не получится играть от слова совсем. данный сервер, на мой взгляд, выполняет работу защиты игрового контента т.е. защищает от дюпов и накруток (но не на версии 4.6 с накруткой статов🤣). Как же именно он работает? Он работает на очень интересной основе, у него даже слоган есть: "Что-то из нечего не может взяться. Всё и всегда должно откуда-то появляться.". Именно эту задачу он и выполняет - ищет что и откуда взялось. Если что-то у игрока появилось непонятное - он это устраняет. Приведу элементарное: на офе есть команда на повышение скорости передвижения персонажа movespeed (аналогично с //speed). Если так подумать, если персонаж умеет вводить команды - значит он разраб, значит ему можно, НО, кеш сервер с вами не согласится. Даже будучи ГМом кеш сервер проверяет его на наличие чего-то запрещённого или незаконно полученного. При достижении определённой скорости - команда сбрасывает своё значение до дефолтной. А как он понимает до какой планки её опустить? Он считает шмот на персонаже и его абсолютные характеристики, и за счёт них ставит нужную, беря в учёт дополнительные данные (свитки и ранее введённые команды).

Что же касается на счёт остальных серверов? Про все я подробно писать не хочу, поскольку во многих и не вижу смысла (т.к. их можно в один запихнуть), но немного их опишу:
  1. AuthServer - необходим для входа на выбор персонажа
  2. AuthGateServer - сервер настроек для работы с AuthServer
  3. AccountCacheServer - сервер работы с аккаунтами
  4. LogServer - сервер логирования действий и проверки данных
  5. CacheServer - сервер защиты и проверки игрового контента
  6. NpcServer - сервер работы со спавнами сущностей
  7. MainServer - основной сервер данных
  8. CaptCharServer - сервер каптчи
  9. ChannelChattingServer - чат сервер
  10. GMServer - сервер для работы с WEB-запросами в игру
  11. ICServer - сервер поддержки межсервера
  12. PetitionServer - сервер петиций
  13. ShopAgentServer - сервер магазина
  14. ServiceMonitor - сервер проверки работоспособности серверов
  15. PortalAuthServer - сервер проксирования подключений
  16. RankingServer - нет достоверной информации (новый сервер на сборке 7.7)
  17. NPRelayServer - нет достоверной информации (новый сервер на сборке 7.7)
Видите сколько геморроя они наплодили? И это при том что некоторые игровые моменты администрируются через web-панель. Как же хорошо фрихи писали не азиаты)))

PS данная тема написана лишь для ознакомительных целей и не несёт никакой весомой информации.
 
Нус) тут не соглашусь. На самом деле спавн система у "корейцев" очень интересная. Да местами она действительно глупа, но в теории интересно и очень правильна продуманна.

1) Спавны поделены на территории, и это логично, так проще делать выборку. На java сервере это сделано кастомными region'ами в виде кубиков 128х128 (по дефолту). И этакий knowList и выборка ближайших мобов/растений/игроков/объектов работает по этим кубикам. У корейцев это как бы в спавн системе в виде территорий. Я тоже хочу себе это реализовать, но пока не до неё)
2) Там очень интересная система выборки "кого спавнить". Чаще всего рандом определяет кого и сколько заспавнить, как в территории, так и на конкретном месте (точке).
3) Очень интересна система "групповых" спавнов. Взаимозаменяемость целых групп. Порой в одном месте может заспавнится 1 моб, и может и группа.

То есть в купе, если в java версии добавить эти механики, да и собрать различные моменты из разных аспектов GS (такие как region и сложить это в спавны, то по факту мы получим те же 53 строчки)))

Я почти месяц потратил на изучение этой системы, и реализации её в java) сейчас мне очень нравится по итогу что получилось. Появилась какая никакая динамичность. Если ещё немного приложить фантазии то можно сделать ещё интереснее спавн систему. Но это уже потом)))

 
Не, ну может быть конечно. Я не спорю, да, есть и шикарные благодарочки в этих же файлах. Например спавн растений. Не так давно переписывал спавны кустов в брусте. На офе появляется на одном поле (допустим) 5 штук из 15 возможных и таких полей несколько штук. На фрихе такое по тупому не провернуть, залупаться начинает что второй раз его используют

 
ага) я вот наебенил накодил себе парсеров)))

1689097205838.png
 
Последнее редактирование модератором:
он тебе мало поможет) я полностью переписал систему спавнов в java, соответственно и парсер там работает по другому.
Но, если время будет, могу написать парсер под обычную версию, но тут свои ньюансы есть, опять таки, всё из-за логики спавнов на ПТС-ке.

 
Назад
Верх