[help]Кроссплатформенность
Сборка: lineage 2 interlude | l2CloseTeam.jar - 100 rev |
Краткое изложение СУТИ проблемы: как организовать кроссплатформенность сервера (поддержка более 1 клиента л2)
(хоть как-то натолкните на мысль....
Мои соображения по этому поводу: я думаю, что в клиенте грации пакеты функционала ц6 остались такиеже (могу ошибаться)
ЗАЧЕМ:
в клиенте грации достаточно много новой графики -> уменьшение патча!
универсальность, людям не придется скачивать еще 1 клиент!
фильтры, и прочие настройки графики, + более качественный движок!
пожалуйста, уважаемые, давайте без флуда!
Ну во первых....
Что б сделать Interlude vs Gracia 2 -ето очень долго епать там пакеты очень разные.
Реально сделать Gracia 1 vs Gracia 2 -это быстро
Нада просто найди человека с головой он тебе все пришьет
Нада сравнивать пакетнй уровень, если различия большие будет больше работы
раздаю халявные спасибки за хоть какие ответы, пакетный уровень, это я знаю, но мне кажется что не так уж и много там пакетов новых...
я знаю, что смелый делал такое, но он пока не заглыдвал в темку!
Во 1 уважаемый знаток.
Кросплатформеностью принято называть не то что вы выше описали.
Кроссплатформеность - (вкратце) это возможность использования/исполнения того или иного типа кода под разными операционными системами (windows/linux/unix/Mac). Ява код к примеру, кросплатформенный.
Сервер не как не может быть кроссплатформеным по отношению к клиенту.
По сути, смелли реализовал подобное при помощи C#. Там несколько иная обстановка нежели в java.
Реализовать - да, возможно. Но - у вас появится проблема - огромное кол-во файлов под импорты для того или иного протокола с теми или иными типами пакетов. Да и возможно всё ядро прийдется несколько переписать, если пакетный уровень будет отличен (не факт, но возможно реализовать всё можно на самом пакетном уровне, без вмешательства в основной код, но - маловероятно).
Сделать это может только опытный программист, с опытом работы в области пакетного уровная Клиент<->сервер.
уважаемый зенн, вы прекрасно поняли о чем я говорил, и -> я сказал все правильно, незачем придераться к словам!
1) надо знать чем отличаются клиенты принципиально
2) посмотрите на сборки грации, на ваш "пакетный уровень" много туда добавлено? НЕТ
3) мне интересно вообще какие действия (принципиально, код меня не интересует) нужно сделать, чтобы могли заходить с любого другого клиента!
если вы, уважаемый зенн, с нубо-портала (думаю его название упоминать не стану),
то в такие темы вам незачем отвечать, покаывать свою безграмотность!
да? и какая? расскажи поподробнее...
прям все? с 0? все 1339 файлов?
вы сами не знаете что надо делать, и как это устроено, зачем умничаете?
xxblxx:
после твоего последнего поста тебе еще и помогать?
а "Zenn" правильно сказал... знаток мля...
коль умный такой, гугл и вперед... ты же свою сборку клепаешь на основе сурцов базы, значит знаешь Java
и знаком наверно с пакетным уровнем?) работа клиент - сервер ?)
ну после этого тему можно крыть, так как любое высказывания по данной теме думаю можно будет считать что
автор поста "с умничал"...
убивают такие люди...
p.s. хотя там все давольное проще чем Zenn описал ^_^
— Жадный...
протоколы разные, и пакетов достаточно много новых, да и реализация их изменилась, не сильно, но есть. возможно тебе поможет тупо в конфигах поставить протоколы 1-999, но не думаю, у тя народ будет вылетать с критами, в этом я уверен. поэтому если хочешь ИТ, то ставь ит, если грацию, то не ипи мозг се :)
— 15
xxblxx: уважаемый зенн, вы прекрасно поняли о чем я говорил, и -> я сказал все правильно, незачем придераться к словам!
1) надо знать чем отличаются клиенты принципиально
2) посмотрите на сборки грации, на ваш "пакетный уровень" много туда добавлено? НЕТ
3) мне интересно вообще какие действия (принципиально, код меня не интересует) нужно сделать, чтобы могли заходить с любого другого клиента!
если вы, уважаемый зенн, с нубо-портала (думаю его название упоминать не стану),
то в такие темы вам незачем отвечать, покаывать свою безграмотность!
да? и какая? расскажи поподробнее...
прям все? с 0? все 1339 файлов?
вы сами не знаете что надо делать, и как это устроено, зачем умничаете?
У этого как говориш "нубо-потртала" сборь гораздо лучше базовской,а про "кроссплатформенность"в твоём понимании вообще молчу ,с первого же поста понял что ты за разработчик... просто игнорировал тему так как она изначально мёртвая.
Ты это реализовать не сможешь,как сказал zenn у smelli это получилось,бери его сервер и делай с ним что хочешь он вроде как говорится "open source".
p.s:Админы хорошь над людьми стебаться,тема обречена на флуд...
Вот знатоку пример реализации его деяний (:
Как ты реализуеш на разных протоколах (c4 - г2 финал) запрос на открытие статуса персонажа (CTRL+C) (requeststats). Как ты знаеш, там будет несколько иная информация в пакетном обмене сравнивая c4/il <-> kama/hb/g2. Это был пример того, что прийдется переписывать или дописывать лишние if {} else {} на протоколы подключения.
Я уже не говорю о пакетном уровне, таких как тот же enterworld - вед информация отсылается несколько иная различным клиентам(хотя это не самое страшное).
П.с. - нуб тут только 1 в теме, это её автор. ![]()
я же говорю, коли не знаете, не флудите...
вы тут щас сидите и несете бред, если вы такие уж прям разрабы, то расскажите, каже это сделать!
пс, сборь может лучше базовской, но не лучше моей!
я еще раз говорю, мне интересно:
1) не изменилось ли шифрование пакетов?
2) например в клиенте грации большее кол-во PAREDOLL слотов, если игрок попробует что-то одеть, то его выкинет из игры? или просто не даст одеть?
и еще раз говорю, нубо-умники мне не интересны...
antihrist44: протоколы разные, и пакетов достаточно много новых, да и реализация их изменилась, не сильно, но есть. возможно тебе поможет тупо в конфигах поставить протоколы 1-999, но не думаю, у тя народ будет вылетать с критами, в этом я уверен. поэтому если хочешь ИТ, то ставь ит, если грацию, то не ипи мозг се :)
если ставить просто протокол, то клиент не видит сервер в списке ( или видит, но как DOWN 9999 пинг)
Уважаемый - строго в лес.
Изменилось и изменилось очень много. Для начала - blowfish смотрите уважаемый.
Дальше не вижу смысла отвечать подобному труЪ кодеру.
Тему в флуд.
закрывайте тему, кроме флуда, я тут ничего не увидел.
а насчет тебя зенн, о твоем таланте кодера я наслышан, и знаю, что ты пустослов....
все, что я извлек из ответов:
1) не изменилось ли шифрование пакетов? -- изменилось
2) нашел парочку неадекватов
3) что я недокодер, эх.. ну что поделать, нубо-кодер, так нубо, что тут еще говорить
узнал, что все реализуется ппц как просто (xNEROSx) и что ппц как тяжело (zenn)
меня интересовала, если честно, реализация смелого, только не ввиде кода, а ввиде схемы...
зы. этот нубо-кодер сделал работу мафея и экстрима, которую они делали около 5 месяцел, за 2 недели....
не нужно перековеркивать чужие посты...
если не понял суть поста :)
— Жадный...
Думаю не получиться чтоб игроки не скачивая дополнительных патчей могли нормально играть на таком сервер.
нпс, итемы, локации и тд:
необходимо будет их добавить с клиент интерлюда если сервер будет грация.
Пакетный уровень:
по сути ничего сложного, но долго.
Сейчас на всех сборках сф что то похожее есть.
типа
if(Clien.isGracia)
writeD(12312312);
но думаю по ходу разработки данного сервер ещё много подводных камней попадётся.
L2NextGen
http://www.l2nextgen.ru
bloodshed: Думаю не получиться чтоб игроки не скачивая дополнительных патчей могли нормально играть на таком сервер.
нпс, итемы, локации и тд:
необходимо будет их добавить с клиент интерлюда если сервер будет грация.
Пакетный уровень:
по сути ничего сложного, но долго.
Сейчас на всех сборках сф что то похожее есть.
типа
if(Clien.isGracia)
writeD(12312312);
но думаю по ходу разработки данного сервер ещё много подводных камней попадётся.
Там вся соль то в
{
посылка_пакета(такой то такой то);
}
По сути, что он получит? Из небольшого :
{
подклас с типом данных
{
посылка пакета туда-то туда-то
}
}
вот в такой код :
{
подклас с типом данных
{
if (клиент типа грацо-подобных)
{
посылка пакета номер 1 туда то туда то
}
if (клиент типа камаэль-хелбануд)
{
посылка пакета номер 2 туда то туда то
}
if (клиент типа интерлюд)
{
посылка пакета номер 3 туда то туда то
}
else
{
просто посылаем в лес
}
}
}
И это - лиш для 1го пакета.
А теперь пошитай сколько их различных, и сколько тебе прийдется обьявить "пакет номер 1", "пакет номер 2" и т д под каждый клиент для каждого пакета? Ненаходиш что код - громоздкий?
Да и дальше, аналогичным методом - нужно будет наклёпывать ифы на все основные моменты игры, которые менялись.
Теперь обдумываем - как же будет работать такой код в плане пожырания ресурсов и функционала?
Так же - как вы думаете, кул пакет-хацкеры ненакажут вашу задницу? (:
В принципе нужно изменение логин шифра, частичное изменение блоуфиш. Изменение РЕВИЗИИ протокола (не путать с версией). Сервер может работать только С ОДНОЙ ревизией протокола. Изменения с4 - ИТ огромные, ИТ - г* - говорить не приходится (полностью переделана ревизия в грасии). А теперь уважаемый, как вы сделаете динамическое определение РЕВИЗИИ протокола, когда игрок только зашел в клиент? Получается на каждого игрока 1 (ИТ) + 1 (карамель) + 1 (хб) + 1 (грасия) + 1 (грасия 2) = 5 классов с индивидуальным кодом. При этом каждый пакет работает через один из 5-ти классов. Получается что нагрузка на серверную машину будет около 12 мгц в виде х2 хеон по 4 ядра каждый, это не учитывая синхронизаций потоков.







