Скажу сразу: Данная тема посвящена одной моей задумки (копирайты налеплены давно много и под ними основной идеи уже не видно =) ), поэтому просьба людей, не собирающихся создавать шарды или людей "I'm just passing through" © Vin Disel собственно - не мешать. Так как информация, скорей всего, пойдет техническая и довольно специфическая. Другими словами: Здесь еды нет.
Собственно идея: Реализовать прослойку между клиентом и сервером, запускающуюся на машине клиентов для гм... модифицирования протокола УО в целях добавления нового функционала.
Функционал может быть различный, от банального кеширования гампов для 2д клиентов (а-ля 3д клиент), до онлайнового патчинга статики и реализации на этом терроформации и прочих игр с землей.
Собственно реализация: Реализованно это будет (почти уже готово) на Дельфи (Open Pascal/Lazarus для защитников лицензии). В качестве сервера будет выступать... Вернее сейчас выступает - RunUO, но я не вижу никаких проблем в портации этого дела на Sphere/POL кои такие вещи там можно сделать.
Архитектура: Архитектура довольно проста: Запускаем локально приложение, которое слушает 127.0.0.1:2593, как только, к нему кто-то подключился подключается на xxx.xxx.xxx.xxx:xxxxx и начинает перегонять через себя УО пакеты. Основное приложение будет заниматься только поддержкой проксирования через себя протокола УО. Для этого надо менять 2 пакета:
0xA8: Servers List, где менять ИПы серверов на 127.0.0.1
и/или
0x0C: Play Server Accept
Возможно еще пакет перехода между серверами внутри одного игрового мира, хотя я не видел чтоб он использовался.
Инфа предоставлена
RuOSI вообще и Wyatt'ом в частности хотя он об этом и не подозревает.
Далее, как только через себя протокол проксируется - надо реализовать механизм плагинов, которые могли-бы обрабатывать эти пакеты и запрещать их передачу и/или передавать дополнительные пакеты.
В таком разрезе, программа уже будет мочь очень много, но этого мало. Необходимо так-же заставить эту программу запускать сам клиент (EnableDebugPrivilegies и Dll-Injection - рулят) для того, чтобы поуправлять и им.
Зачем я тут это расписываю?
1) Может я не один такой <вырезано анти-матом>?
2) Может кому будет интересно и он гм... Поможет что-ли.
3) Чтоб не умерло. Так как идея интересная, а вот с реализацией, как всегда, жопа. Она есть, по почему-то после передаче пакета о скиллах - все тормозится. Надо искать. Да и чтоб были гм... мотиваторы.
Do. Or do not. There is no Try!
© Master Joda, Dagobah, Star Wars: Episode V.