|
EssenceUCS, Essence Ultima Client Shell |
|
|
StaticZ |
31.12.2012, 21:09
|
Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009 Группа: Пользователи Наличность: 0 Из: РФ, Москва
Пользователь №: 11.948
|
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... Сообщение отредактировал StaticZ - 3.8.2016, 19:26
--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.Game isn't a dream, it is the reality, reality which is coming while we dream...
|
|
|
|
|
|
Ответов
StaticZ |
23.4.2016, 21:26
|
Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009 Группа: Пользователи Наличность: 0 Из: РФ, Москва
Пользователь №: 11.948
|
Цитата(Zergushka @ 3.2.2016, 18:11) Так что в итоге с проектом? Насколько я понял, речь идет не просто о "клиенте", а об отдельном игровом сервере в самую оригинальную ультиму, без всякой шляпы типа автоскриптов, автострелок при парализе, автоподпиваний алхи в пвп, автодобычи и так далее.
Если я правильно понял, то с радостью принял бы участие в тестировании.
Все правильно, для этого EssenceUCS и делается, но так как тема сложная и интересная и может быть применена и в других проектах я и распространяю ее среди заинтересованных разработчиков.
--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.Game isn't a dream, it is the reality, reality which is coming while we dream...
|
|
|
|
StaticZ |
14.6.2016, 22:36
|
Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009 Группа: Пользователи Наличность: 0 Из: РФ, Москва
Пользователь №: 11.948
|
Релиз версии 0.09.0111 Список изменений: - Ошибка #313: Intro cause client to terminate
- Ошибка #314: Bad compatibility with Windows 8,8.1,10
- Улучшение #232: Self patching, and client data patcher
- Улучшение #233: Changing emp contents by patchs
- Улучшение #312: Add support encoding UTF with BOM for *.ecd
- Улучшение #316: Create exception window for UCS with ability to send crush report to bugtracker
Если вкратце, то на сем вроде как полностью решены все известные на сегодня мне проблемы совместимости клиента и устранены ошибки влияющие на его стабильность. Помимо прочего добавлена полная поддержка кодировки UTF8 для файлов настроек (ранее воспринималась только UTF8 without BOM) и новая система обработки исключений (ошибок) с возможностью отправки отчета об ошибке прямо на багтрекер 1 кликом. Но главным гвоздем программы конечно стала система обновлений клиента и его данных. Основные достоинства системы обновлений: - Дефрагментация на лету как самих "mul'ов" так и данных в паках шела
- Низкое потребление памяти
- Поддержка патч-сессий для ускорения и уменьшения записи на HDD (в случае если патчей несколько они обрабатываются на лету, а все изменения сохраняются за один проход в самом конце или раньше в случае если вдруг возникнет нехватка памяти или для обработки последу.щий патчей понадобиться перезапустить клиент)
- Самообновление исполняемых файлов клиента
- Возможность добавлять, удалять, переименовывать и перемещать файлы в паках
- Сжатие патчей, подписывание, проверка целостности патчей, данных до и после обновления
- Индивидуальный настраиваемый подход к различным данным для более оптимального обновления различных типов данных, полный список поддерживаемых различных алгоритмов:
- Rewrited - простая замена файла целиком.
- TextFile - Обновления текстовых файлов алгоритмом LCS (Longes Common-Subsequence) для его строк, с перекодированием при возможности изменений в ANSI для уменьшения размера
- MulIndex - замена и обновление блоков в индексированных mul файлах клиента
- MulFixed - замена и обновление блоков в mul файлах клиента с фиксированным размером блока
- LocalDic - обновление текста локализации клиента (cliloc.enu, cliloc.fra и тд) с перекодированием при возможности изменений в ANSI для уменьшения размера
- MulFonts - обновление букв в файлах шрифтов клиента как ANSI так и юникодных (шрифты не являются mul контейнером с фиксированным размером блока не смотря на расширение)
- TileData - обновление tiledata.mul (хоть это и формат с фиксированным размером блока это один из наиболее часто обновляемых файлов и для большей оптимизации заслуживает индивидуального подхода)
- Surfaces - обновление графики (gampidx.mul, gumpart.mul, texidx.mul, texmaps.mul, artid.mul, art.mul). Хоть это и обыкновенные индексные файлы данный алгоритм предпочтительнее так как ведет сравнение не бинарных данных а декодированных изображений (если на пальцах мы можем одну и туже картинку сохранить в PNG c сжатием и без, размер и само бинарное содержимое файлов измениться в то время как изображения останутся абсолютно идентичными)
- MulAnims - обновление файлов анимации (anim*.idx, anim*.mul) - отдельное сравнение и обновление самих кадров и метаданных к ним (информации о положении кадров), все что было сказано для Surfaces справедливо тут и для кадров.
- MapLands - обновление карт (map*.mul), как и в случае с tiledata.mul данный тип файлов один из наиболее часто обновляемых и по сему заслужил индивидуального подхода для лучшей оптимизации
- MapTiles - обновление статики (staidx*.mul, statics*.mul) это не только наиболее часто обновляемый формат данных но и один из самых сложных для сравнения и обновления. Отличительной способностью алгоритма является анализирование и обновление файлов не блоками по индексам а группировкой блоков, объединением повторяющихся блоков с последующим обновлением блоков и их индексов. Проще говоря, алгоритм на лету объединяет совпадающие блоки уменьшая тем самым размер статики (в случае использования прозрачной воды речь идет о сотнях мегабайт) ну и конечно при этом значительно уменьшается размер самого патча статики.
- Алгоритмы что были запланированы но остались не реализованными пока:
- TextsLoc - обновление файлов локализации клиента (*.enu, *.jpn и прочих кроме cliloc.*). Размеры файлов не большие а сами файлы редко обновляемы.
- UopPackg - обновление данных в контейнерах (*.uop). Несмотря на внушительный размер данные файлы не удобны в работе и фактически не модифицируются
- MapFacet - обновление миникарт (facet0*.mul). Данные файлы представляют из себя по сути одно большое изображение и его частичное обновление сложно реализуемо.
[hr] Конечно это все много кода и ошибки и проблемы не избежны, так что до пре-альфы выйдет еще не одно обновление с исправлением ошибок, но особо рассказывать я о них уже не буду (кому интересно монитор багтрекер и\или форум проекта). А насколько много кода можете судить по данной статистике (слева приведена только для самого UCS, справа для проекта полностью (помимо UCS там еще несколько вспомогательных утилит, файлы естественно считались только с кодом)): (IMG: http://smages.com/images/pic2016061flf.png) PS Конечно как правило в любом проекте используется сторонний код, его доля составляет в районе 30% Сообщение отредактировал StaticZ - 15.6.2016, 0:46
--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.Game isn't a dream, it is the reality, reality which is coming while we dream...
|
|
|
|
Сообщений в этой теме
StaticZ EssenceUCS 31.12.2012, 21:09 Nickname Читал несколько раз в разное время, но информации ... 2.8.2013, 19:44 StaticZ
Читал несколько раз в разное время, но информации... 3.8.2013, 0:24 Nickname Я остановился на выборе клиента 7.0.18.0, он в спи... 5.8.2013, 13:11 StaticZ
Я остановился на выборе клиента 7.0.18.0, он в сп... 6.8.2013, 14:16 StaticZ После продолжительного застоя, вызванного нехватко... 13.5.2014, 20:16 StaticZ Проблема с upscaler'ами была решена, и попутно... 19.5.2014, 3:08 StaticZ И так первый релиз готов, заняло немного больше вр... 15.6.2014, 17:31 StaticZ Обновление до версии 0.6.02, список изменений:
24.6.2014, 0:10 Warstone Дашь с исходниками помацать? Обещаю не передавать ... 25.6.2014, 22:54 StaticZ
Дашь с исходниками помацать? Обещаю не передавать... 26.6.2014, 20:39 Warstone Весело у вас там... Норм. У тебя по другому и не п... 27.6.2014, 10:17 StaticZ Ладно... На Direct3D рендерер "переложили... 27.6.2014, 13:13 StaticZ хе-хе, уменьшенная \ нормальная \ увелич... 27.6.2014, 23:55 Warstone Ну там 2 части есть:
1) Ты на выходе получаешь пря... 28.6.2014, 1:25 StaticZ 1) Ты на выходе получаешь прямоугольник с текстуро... 28.6.2014, 1:34 StaticZ Немного пошаманив смог установить разные радиусы п... 28.6.2014, 2:08 StaticZ Итак, товарищи революция наконец-то совершилась, у... 28.6.2014, 14:05 StaticZ Релиз версии 0.6.03, список изменений:
Error#237... 28.6.2014, 20:12 StaticZ Перезалил скрины ) 28.6.2014, 22:20 Wap Круто! Поздравляю! ИМХО, патч, в котором б... 29.6.2014, 21:08 StaticZ
Круто! Поздравляю! ИМХО, патч, в котором ... 29.6.2014, 23:44 Mirage оно на стороне клиента (стандартного), сервер/кли... 29.6.2014, 22:54 Wap Кстати, то что скриншоте, это максимальное поле ре... 30.6.2014, 0:06 StaticZ
Кстати, то что скриншоте, это максимальное поле р... 30.6.2014, 0:14 Wap Ну, на первых скриншотах 1280х960 и это с черными ... 30.6.2014, 1:28 StaticZ
Ну, на первых скриншотах 1280х960 и это с черными... 30.6.2014, 1:56 Wap
Нет, там 1600х1200, просто скрины ужались видимо ... 30.6.2014, 8:27 StaticZ Я в курсе. Я про дальность видимости карты. Насчет... 30.6.2014, 12:27 Александр Needle™ Потрясающий результат, рад что у тебя все получило... 2.10.2014, 19:42 StaticZ
Потрясающий результат, рад что у тебя все получил... 8.10.2014, 17:51 StaticZ Демо в живую (коменты в сабах)...
https://www.you... 25.4.2015, 0:32 StaticZ Релиз версии версии 0.6.04, а при ней видео обзор ... 1.5.2015, 0:36 Warstone А я еще раз хочу это сказать: Чувак - это оxуенно.... 1.5.2015, 20:22 StaticZ
А я еще раз хочу это сказать: Чувак - это оxуенно... 1.5.2015, 20:50 StaticZ Релиз очередной версии за нумером 0.6.05 и уже тра... 20.6.2015, 4:58 Warstone Квинта когда будет? 20.6.2015, 9:36 StaticZ
Квинта когда будет?
После закрытого теста, что н... 20.6.2015, 15:48 Warstone Запиши в ЗБТстеры ))
Если будет время - могу код ... 20.6.2015, 18:44 StaticZ
Запиши в ЗБТстеры ))
Если будет время - могу код... 20.6.2015, 19:48 StaticZ Доступная версия 0.7.91!! Никаких новых ха... 16.7.2015, 0:24 StaticZ Little more good news - [b]version 0.8.96 released... 26.8.2015, 15:03 Narciruss Ты реально крут :) Наверное жаль, что лет 10 назад... 27.8.2015, 2:51 StaticZ
Ты реально крут :) Наверное жаль, что лет 10 наза... 27.8.2015, 14:20 Warstone Так вот как по твоему выглядит сер Шурф Лонли-Локл... 27.8.2015, 11:15 Warstone А где-же мантия Истины? 28.8.2015, 2:14 StaticZ
А где-же мантия Истины?
Порвал в порыве безумия ... 30.8.2015, 23:27 Aimed Эта тема ещё актуальная? Как получить лицензию на ... 9.12.2015, 23:56 StaticZ
Эта тема ещё актуальная? Как получить лицензию на... 11.12.2015, 14:23 Warstone Кстати... Статикз, а твоим UDK пользуется кто-нибу... 10.12.2015, 12:12 Aimed StaticZ,
По скольку Вап является главным владельце... 11.12.2015, 15:28 StaticZ
StaticZ,
По скольку Вап является главным владельц... 11.12.2015, 17:47 StaticZ Обзор нового мода увеличивающего FPS и его сравнен... 4.8.2016, 5:45 Aimed А можешь показать как двигаются другие персонажи н... 4.8.2016, 15:25 StaticZ
А можешь показать как двигаются другие персонажи ... 4.8.2016, 18:38 TeS картинка с лева прям как на салосе , а справа что ... 4.8.2016, 23:06 StaticZ картинка с лева прям как на салосеЭто все снято с ... 4.8.2016, 23:10 Wap
Это все снято с родного клиента, никакого салоса.... 4.8.2016, 23:46 StaticZ Конечно, вместо спидбуста было бы информативнее по... 5.8.2016, 0:09 Wap
скорость спидбуста аналогична скорости "бега... 5.8.2016, 0:41 StaticZ а вот в виде со стороны игрока есть разница. Из-за... 5.8.2016, 1:25 Aimed
В пакетном обмене разницы быть не должно, а вот в... 5.8.2016, 10:19 StaticZ Это не из-за плавности, а из-за отсутствия теней, ... 5.8.2016, 13:39 Aimed Как что-либо с мулами может влиять на отрисовку те... 5.8.2016, 17:19 StaticZ
Как что-либо с мулами может влиять на отрисовку т... 5.8.2016, 18:53 StaticZ [b]Version 0.11.0133 released!!
It's ... 24.8.2016, 1:18 StaticZ [b]Version 0.12.0136 released!!
List of a... 1.10.2016, 23:17 Wap Что сейчас с пользовательскими настройками UCS? Ну... 3.10.2016, 1:38 StaticZ Что сейчас с пользовательскими настройками UCS? Ну... 3.10.2016, 8:10 StaticZ Version 0.13.0160 released!!
List of all ... 4.12.2016, 4:52 StaticZ [b]Version 0.14.0167 released!!
List of a... 6.8.2017, 16:56 Robin_Hood
[color=#CC0000][b]Version 0.13.0160 released... 11.11.2017, 9:23 StaticZ ты проделал огромную работу! но не кажется ли ... 11.11.2017, 21:42 StaticZ [b]Version 0.15.0205 released!!
List of a... 5.5.2018, 3:18 StaticZ [b]Version 0.15.0207 released!!
List of a... 23.5.2018, 14:44
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|