UoKit.com Форумы > Ultima Online : Dev > Работа с клиентом UO > Вспомогательные программы > Essence UDK
Страницы: 1, 2, 3, 4, 5, 6, 7, 8
StaticZ


EssenceUCS (UCS расшифровывается как Essence Ultima Client Shell), разработанный на основе EssenceUDK, является бесплатной с закрытым исходным кодом графической оболочкой и расширением классического клиента версий 6.0.0.0-7.0.23.1. Поддержки ни более старых ни более новых клиентов нет и не будет. Данный проект ориентирован на владельцев и адмнистрацию РП серверов и ставит перед собой следующие цели:
  • Расширение возможностей клиента (UO замечательна тем что в ней можно поменять почти все, но те кто этим занимаются знают что это "почти" нередко становится камнем преткновения).
  • Защита протокола, клиента и его данных от модифицирования, макросинга и использования сторонего ПО, кроме Razor'а.
  • Обновление пользовательского интерфейса клиента (Не для кого не секрет, что интерфейс UO в голом виде мало удобен).
  • Поддержка собственных макросов и простых скриптов (в далеком будущем).
  • Обновление клиента и его данных (что крайне необходимо для "живых" серверов).
  • Поддержка плагинов, например для организации чтения новостета в лаунчере.
Очевидно, что задачи у проекта ориентированного на РП сервера кардинальным образом расходятся с задачами что ставил бы перед собой проект ориентированный на ПВП или ОСИ-стайл сервера. Следует сказать, что почти все что сделано является настраиваемым, а это значит почти все можно отключить. Конечно обычному пользователю доступны далеко не все настройки, все ключевые опции которые могут быть расценены как "читерство" доступны только администрации сервера. Тем не менее, проект ориентирован только на РП сервера, а это значит что он ни когда не станет преследовать задачи для ПВП серверов.
Конечно надо понимать что для раскрытия всего потенциала EssenceUCS от владельца сервера потребуется реализация расширения протокола на сервере, в противном случае многие возможности задействовать не удастся. Чтобы лучше представить EssenceUCS стоит вообразить гибрид апдейтера, Fluo, UOExt и Razor'а. Конечно подобное сравнение крайне поверхностное и не точное, но оно как нельзя точнее описывает желаемый результат. И так пора перейти от общих слов к конкретному списку возможностей текущей версии:


== Особенности оболочки:
  • Защита исходного кода от модификации и использования "читерского" ПО (аля инжект).
  • Последовательное автообновление данных клиента на основе уникального алгоритма обеспечивающего наименьший размер "патч" файлов с проверкой целостности, подписи, исходных и конечных данных. Все это делает абсолютно не возможно появление ошибок в результате обновления. На данный момент поддерживаются следующие типы данных: cliloc, map, statics, gumpart, tileart, textures, tiledata, hues, radarcol, animdata, skills, animation.
  • Автообновление программы и Автономная система развертывания и обслуживания, позволяет обслуживать сервер его владельцу без непосредственного вмешательства разработчика.
  • Гибкая система лицензирования с привязкой к машине на аппаратном уровне. Лицензия позволяют активировать "скрытные" расширенные возможности для "продвинутых" игроков и\или администрации сервера. При этом только владелец сервера может создать лицензионный ключ.
== Расширения клиента:
  • Снижение загрузки CPU как в меню логина так и в целом для 7.0.Х клиентов (на многоядерных системах видно что клиент загружает дополнительное ядро на 100%, помимо основного).
  • Возможность использования локального пути для хранения профилей (по умолчанию клиент хранит их в "\Documents\EA Games\Ultima Online Legacy\User Data\")
  • Клиент работает с перепакованными данными в собственный *.EMP формат, что препятствует просмотру, модификации и извлечению ресурсов простыми пользователями. Администраторы и разработчики могут так-же грузить *.MUL файлы с HDD без необходимости перепаковки данных.
  • Возможность принудительной загрузки всех ресурсов в оперативную память, вместо виртуальной. (Теоретически может помочь решить ряд проблем с использованием виртуальной памяти на некоторых платформах, а также ускорить работу клиента, при наличии достаточного объема памяти (требуется 1-2 Гб памяти в зависимости от ресурсов клиента))
  • Изменение таблицы файлов и работа с мультитаблицами (может быть полезным например для автоматической смены времени года в стиле снег-трава).
  • Изменение таблицы карт и работа с мультитаблицами (необходимо для поддержки карт не стандартного размера).
  • Изменение загрузочного экрана и главного меню (возможность менять любые гампы, их местоположения и размеры, шрифты, веб-ссылки). Поддерживаются множественное описание, позволяющие автоматически менять при входе используемое меню и загрузочный экран.
==================================
Текущая версия: 0.6.01 (2012.12.31)
Поддерживаемые клиенты: 6.0.6.1, 6.0.14.3, 7.0.3.0, 7.0.8.2, 7.0.13.4, 7.0.16.1, 7.0.16.3, 7.0.18.0, 7.0.23.1
Системные требования:
* Microsoft Windows 7/2008/Vista/2003/XP
* Microsoft .NET Framework 4.0
* Microsoft Visual C++ 2010 Redistributable Package

Несколько скриншотов, чтобы добавить красок в голый текст:
Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла
Те кто дошол до этого места и судорожно рыщет глазами в поисках ссылки "скачать", вынужден разочаровать - хоть проект и является абсолютно бесплатным, это не мешает ему быть не свободно распространяемым. Чтобы воспользоваться данным решением вы должны связаться с разработчиком (т.е. со мной), при этом предоставить сведения о своем сервере и быть готовым подтвердить права владельца сервера. После получения "набора" и "инструкций" по развертыванию клиента, владельцы серверов могут свободно распространять полученные сборки клиентов, но им запрещено распространять любые файлы и сведения необходимые для развертывания клиента. Что бы получить доступ к проекту Ваш сервер должен удовлетворять ряду требований:
* Не являться сервером однодневкой, т.е. либо быть рабочим или находиться в состоянии активной разработки как минимум в течении года.
* Сервер не должен иметь доминирующую ПВП ориентацию, также крайне желательно наличие РП уклона и\или приличный реальный онлайн.
Конечное решение в предоставлении доступа к данному проекту остается за разработчиком, который допускает определенную субъективность, так что все истеричные посты в стиле "я не хуже Васи, почему ему дали а мне нет" будут расцениваться как флуд и удаляться. Все остальные желающие могут оставлять свои заявки. В заявках нужен адрес сервера, контакты для связи (jid или email) и обоснование использования данного продукта (иными словами зачем он вам, что вы от него ждете и чего хотите добиться используя его. Эта информация также будет мне крайне полезной для определения приоритетов для дальнейшей разработки).

P.S. Разработчик оказывает техническую поддержку только владельцам серверов, всем игрокам в случае проблем просьба обращаться к администрации своего сервера.

P.P.S. Хотелось бы выразить особую благодарность проекту UOExt. Именно он открыл мне глаза на возможности работы с клиентом, можно сказать что этот проект обязан ему своим существованием. Искренно желаю больших успехов и долгая лета UOExt...

Вверх
Nickname
Читал несколько раз в разное время, но информации об эмуляторе не нашёл (возможно я слеп). Поэтому возникает вопрос: работает только с RunUO или возможно настроить на любом эмуляторе?
Вверх
StaticZ
Цитата(Nickname @ 2.8.2013, 20:44)

Читал несколько раз в разное время, но информации об эмуляторе не нашёл (возможно я слеп). Поэтому возникает вопрос: работает только с RunUO или возможно настроить на любом эмуляторе?
Без разницы, но без возможности модифицирования протокола - добавления новых пакетов и логики большая часть плюсов пропадет, а поскольку на сколько мне известно на подобном уровне легко работать лишь с RunUO, со всеми другими будет жить сложнее..., хотя на данный момент это роли не играет вообще никакой, т.к. поддержка изменений протокола еще не реализована, но в будущем....


А вот с клиентами все жестко - поддерживаются только те что написанны, при спросе и обосновании могу добавить и другую версию но только если она не младше 6.0.0.0 и не старше 7.0.23.1
Вверх
Nickname
Я остановился на выборе клиента 7.0.18.0, он в списке есть. Меня больше всего интересует функция "Защита протокола, клиента и его данных от модифицирования, макросинга и использования сторонего ПО, кроме Razor'а", но я так понимаю, что без модификации протокола тут не обойтись или я ошибаюсь?
Вверх
StaticZ
Цитата(Nickname @ 5.8.2013, 14:11)

Я остановился на выборе клиента 7.0.18.0, он в списке есть. Меня больше всего интересует функция "Защита протокола, клиента и его данных от модифицирования, макросинга и использования сторонего ПО, кроме Razor'а", но я так понимаю, что без модификации протокола тут не обойтись или я ошибаюсь?
Все зависит от степени "паранои", технически без модификации разоров, инжектов и прочего к клиенту запущенному из шела не подключиться, хотя бы из-за того что они сами запускают его из под себя, а тут даже нет ехе'шника клиента. Другое дело, что без модификации протокола вы не как не сможете гарантировать запуск клиента из под шела, покрайней мере до тех пор пока мулы можно спокойно достать, так что если можно спокойно заменить клиент на осишный или старый без особого вреда то этим могут спокойно воспользоваться... В любом случае без возможности и желания модифицирования протокола плюсы шела будут сходить на нет, хотя не все так страшно так как на данный момент работа с сетью даже не реализована, но это главная задача на следующий реализ.... Да и честно говоря не знаю как в сфере но в ранке если вы знаете C# достаточно хорошо то модифицировать протокол не сложнее чем добавить пару новых предметов, но вот если ваши навыки ограничиваются "кат-копи" то конечно это будет сложно....

PS Да и кстати на данный момент совместное использование шела с разором также не поддерживается.
Вверх
StaticZ
После продолжительного застоя, вызванного нехваткой времени, работы над проектом возобновились. И в данный момент он готовиться к первому релизу. При этом я попал в неприятную ситуацию, из-за обновления компьютера и соответственно программного обеспечения (компилятора) - недописанный и полу рабочий код вызвал множество головной боли. Самое мерзкое, что проблемы оказались в безумном низкоуровневым коде связанным с инжектом и загрузкой PE в память. В результате чего пришлось его несколько раз переписывать и упрощать методы загрузки пока оно наконец-то не заработало... Да и вообще архитектура этого шела стала настолько запутанной и сложной даже для меня самого, что пришлось все упростить дабы все таки наконец зарелизить все это дело в ближайшем времени. Так что в каком-то смысле первый релиз с точки зрения архитектуры приложения будет существенным шагом назад.

Ну а теперь обратно к хорошим новостям - несмотря на все проблемы с архитектурой, за эти праздники шелл оброс кучей новых возможностей:
* Изменен формат конфигов, на более гибкий и удобный
* Изменение ограничения на число звуков
* Изменение ограничения на число музыкальных треков
* Были переписана реализация остальных фич, что позволила расширить их поддержку на весь диапазон поддерживаемых клиентов, упростить их использование и расширить возможности (так например теперь при изменении главного меню можно заменять текст на более длинный чем оригинальный, менять цвет текста, смена разрешения теперь идет через меню клиента без необходимости перезахода и тд)
* Добавлена поддержка расширенного адресного пространства, что позволит клиенту вместо 2 GB памяти использовать 3 GB. Это позволит решить проблемы с нехваткой памяти на первое время. Также в процессе работа над дефрагментатором используемого адресного пространства, что позволит использовать адресное пространство более эффективно, т.е. снизить его размеры за счет более плотного расположения данных (это особенно полезно в случае использования мулов размером более 200-300 мб).
* Ну а главным нововведением стало реализация апскейлера, пока правда из-за сложного рендера не работают фильтры (LQ2X, HQ2X, 2XSAI, SuperEagle, Super2XSAI, Scale2XSAI)), но это будет исправлено уже в следующих релизах, ибо задерживать ради этого первый релиз не хочется.


Ну а так теперь выглядит UO на мониторе с разрешение 2560х1440: http://www.kachalka.com/images/60f7cjsde1f3sv5gblvo.png (не обращайте внимания на кривые тайлы, это из-за путаницы с версиями мул-файлов).

Ну а кто все еще ждет - сам релиз будет в течении ближайшей недели-другой....
Вверх
StaticZ
Проблема с upscaler'ами была решена, и попутно добавлено несколько новых. Здесь полный список поддержанного фильтров с примерами:Также были добавлены дополнительные фильтры (могут применяться как на исходное изображение так и на увеличенное или и на оба сразу), для сглаживания и удаления шума с настраиваемой чувствительностью от 0 до 10. И решенная проблема с рамкой окна, также добавил возможность отключить рамку окна, чтобы увеличить полезное пространство.
Вверх
StaticZ
И так первый релиз готов, заняло немного больше времени чем думал, т.к. в начале у меня отвалился хард со всеми исходниками и папкой AppData винды, так что пришлось все переустанавливать и переписывать то что было утеряно, ну и под конец не обошлось без проблем со сборкой релиз билда, оказалось что часть кода была не дописана.... Тем не менее первая сырая, но рабочая версия уже доступна. Попутно не обошлось и без пары нововведений, типа быстрого логина, пропуска экрана выбора сервера и\или персонажа и уже не помню чего еще )))

Вот еще неполный список нововведений, что уже давно постил на форуме проекта:
Цитата
Translating\changing some hardcoded gump messages..
Changing encriptions keys (simplest way to prevent players from using other clients)
Getting info about game window possition (it's size, and win form window too)
Get full controll on music system (so now it's possible to play music, stop music, get info about playing or last played track, get playback state)
OSD with some helpful information (see screen below).
As you can see on OSD - I wrote code for getting info about application (CPU usage, RAM usage, VMS(Virtual Memmory Size), FPS, Network speed and total bytes sended\recived).
Get way for changing radarcol coolors at runtime (as for us - I whana to make on ower server radar quality depending on mapmaking skill)
As all configs was lost I replaced old *.ecs format by new *.ecd, that is much powerful (thow both were made by me xD).
Checking states (detecting connection lost event, and swithing stages at mainmenu(acctlogin, serverSelect, CharacterSelect, GameScene) )



Вверх
StaticZ
Обновление до версии 0.6.02, список изменений:
Цитата

Ошибка #214: Multiply license key in file
Ошибка #216: Bellow zero values in gumpinfo.ecd
Ошибка #217: Self restarting after closing client while loading
Ошибка #219: UCS override muls files without special rights
Ошибка #220: parsing resolution from key $useWinFrame
Ошибка #221: Wrong window size
Ошибка #222: Damaged window caption in window-border mod
Улучшение #210: Speedup license verification
Улучшение #211: Startup client without shell window
Улучшение #212: Improve *.emp data encryption
Улучшение #215: Taking screenshots
Улучшение #218: Hiding CMD window
Улучшение #223: Add option to close previous instance
Улучшение #224: Add ability to override using client version in config

Вверх
Warstone
Дашь с исходниками помацать? Обещаю не передавать исходники или бинари третьим лицам.
Вверх
Invision Power Board © 2001-2024 Invision Power Services, Inc.
Version for Pocket PC © 2006-2024, IPBest Studio.