Вход в систему
Логин
Пароль
 

Sprint #26: Terrain.Сейчас на сайте 0 посетителей
WoWCore
История 2.0
История 1.0
SandBox

Ресурсы
Форум
Файлы

Документация
Литература
Ссылки


Здравствуйте,  Anonymous

Тема: Пара вопросовСписок тем

spa ··· 16.09.2008, 12:02
1. Почему (насколько мне извесно) сервер на делфи 0_0. Не хочу устраивать холивар, но сервера пишуться в основном на си(++) ну не как не на делфи. Главному разработчику сильно понравилсясинтаксис паскаля(уродскмй имхо)?

2. Сетевой код пишеться как я понял на winAPI (?) также непонятно почему, сервера за малым из ключениям стоят на LInux/*BSD.

3. В чем изюменка? Грубо говоря что ваш проэкт отличает от других эмулев? Ведь почемуто вы его развиваете.

4. Почему такая скрытность, вы хотите сделать его платным?

5. И повторюсь спрошу почему не СИ? Ведь есть какието причины.

6. Как получить снифиры, и вообще возможно ли получение их исходных кодов. При этом естественно не быть разработчиком естесно.

7. И последний. Есть ли хоть шанс что проэкт выживет? Я имею в виду обьективную оценку.


ЗАМЕЧАНИЕ, делфи уродский не из-за вкл а именно из-за паскаля(сам на билдере пописываю иногда помелочи, но не сервера, сервера по старинке на си).
RomanRom2 ··· 16.09.2008, 12:43
1. вопрос изначально стоит в ключе холивара :) не очень хочется сейчас чтото доказывать и объяснять в связи с этим. отвечу просто - так вышло.

2. сетевой код написан на дельфи :) с использованием WSA функций, да. мы сделали ядро кроссплатформенным. т.е. это не совсем так. мы сделали ядро отдельно для linux и отдельно для windows. "для прикола" под винду мы сделали два их типа - консольное и оконное. ну так, для прикола :) вот каждое ядро использует "свой" сетевой код - т.е. для *nix/bsd это kqueue, для винды IOCP. так же для винды (опять же для прикола) сделана модель WSAAsyncSelect для оконного приложения и WSAEventSelect для консольного. вроде так... мог что то забыть :)
собственно сам функционал приложения (как вы знаете, вовкоре состоит из трех приложений) интегрируется в сетевой код посредством некой, как мы ее называем, точкой входа и этот код уже не зависит от платформы. платформозависимый код мы называем ядром, он определяется на этапе компиляции. под linux наш код компилируется при помощи fpc.

3. изюминка в настойчивой и кропотливой проработке каждого байта каждого опкода. мы досконально разбираем все опкоды, соответственно мы можем использовать весь набор возможностей какого либо механизма. вам наверняка известно, что в широко известных эмуляторах опкоды разобраны крайне отвратительно, мягко говоря - не полно. отсюда частичная реализации механики какой либо системы. отсюда сильные ограничения в реализации этой системы и как следствие многочисленные "затычки", грубо нарушающие игровой баланс.
другими словами - все делают эмулятор, мы - делаем сервер :)

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

5. ну раз вы настаиваете... дельфи - это уже не паскаль. паскаль убог, верно. но дельфи сильно, очень сильно продвинул его вперед, дельфи дает возможности, с котороми уже трудно сказать, что на дельфи нельзя чтото сделать, что можно на си. это первое.
второе - большинство наших разработчиков предпочитали дельфи.
третье - я начал этот проект в одиночку и выполнил все до входа в мир на дельфи. остальные парни меня поддержали. как вам известно, мы - бывшая команда поддержки вадовского wowemu. именно мы делали базу, именно мы писали скрипты для квестов, именно мы делали снифы и высылали ваду. но это уже история...
четвертое - проект большой. нет, он очень большой. без ООП уже не обойтись. а как вы знаете, ООП был придуман на паскале :-р дельфи же дает невообразимые возможности в области ООП и я не вижу никаких проблем в использовании дельфи в таких больших проектах:
1. винапишная часть - она в африке винапишная. будет одинакова на всех языках.
2. остальное - исключительно дело предпочтений программистов.
на самом деле без разницы на чем такие проекты писать, были бы мозги в голове. которые могли бы создавать "правильные" алгоритмы, искать оптимизации, и разгадывать тайны близзов, используя снифы и дизассемблер - как же у них это сделано и для чего вот этот байт, "который иногда равен еденице, а не нулю".

вам лично не нравится сплошные begin - end? опять же - это дело вкуса и предпочтений. а так же привычки.
дельфи, как и паскаль, строг. это дает меньше шансов программисту ошибиться. мне лично это нравится. у нас даже на этапе первоначальных отладок НИКОГДА нет никаких крешей приложения. приложение четко отрабатывает ошибки, никто никуда не в свою память не лезет. ООП позволяет добиться механизма "каждый занимается своим делом".

ну наверное хватит :) вы можете сейчас все это с завидной правотой оспорить и будет выглядеть все более чем правдоподобно в ваших словах. так или иначе каждый останется при своем мнении. по работе мне приходится программировать на си, я работаю в области IP телефонии в компании Nortel Networks (Canada). я более чем знаком с си и я не могу сказать, что он чем то сильно лучше или хуже. это просто разные языки, вот и все :)

6. сниферы вы можете скачать с сайта. публичные ссылки мы убрали, если очень нужно - спрашивайте. но есть условие - нам бы хотелось, что бы сниферы давали снифы. и для чего вам исходные коды?

7. есть такой шанс :) лично я - никогда его не оставлю и доведу до конца, чего бы это не стоило. пусть даже это будет слишком поздно. у меня не было цели сделать деньги. это просто фан проект среди моих друзей, который во первых - дает возможность хорошенько прокачивать скилл «programming», что бы мозги не тупели, во вторых - больше узнать о любимой игре.

ЗАМЕЧАНИЕ, делфи уродский не из-за вкл а именно из-за паскаля(сам на билдере пописываю иногда помелочи, но не сервера, сервера по старинке на си).
не понял, не изза чего дельфи уродский?
нет никакой разницы на чем писать сервера. хоть на бейсике. главное:
1. что бы язык давал все возможности для этого.
2. компилятор этого языка выдавал более менее нормальный бинарник.

вот пожалуй единственный минус дельфи - это его компилятор, который не есть совершенство. но опять же, прогресс не стоит на месте, дельфи 2005/2006 гораздо продуктивнее чем скажем дельфи 7. я имею ввиду компилятор.
spa ··· 16.09.2008, 13:37
VCL :) это про то почему он не уродский. А так раз у нас мини и к тмуже конструктивно спокойный холивар, скожу что мне как раз ен нравяться бигин энды, и еще работа с указателями ЭТО просто УЖОС ((( но вы правы это не суть важно.


Снифы я дать не могу, тк на "офе" играть буду только через месяц, ссылку спрашиваю (мне не совсем понятно что значит спрашивайте :) ) Коды мне нужны для интереса что да как работает, грубо говоря покапаться, заодно и с вариантами снифания трафика познакомиться. Мне к примеру очень интересно как вов передает координаты монстров их передвижение и.п. ко всему я не прото так хочу поизучать я в далекой перспективе хочу поучаствовать в разроботке какойнибуть игры и уж изучение вов не как не будет вредно. И последние зачем они нужны так это познакомиться с вариантами снифания трафика )) как я уже сказал выше. КО всему у вас насколько мне извесно есть и ринг 0 пару вариантов, тоже будет очень познавательно, конечно можно взять тупо и читать статьи и смотреть специализированные примеры, но в тоже почемуто наращиваете скил, не на пустых сниферах и серверах. А возможно мне настолько понравиться что я захочу с вами, если кнечно сумею заслужить )
RomanRom2 ··· 16.09.2008, 14:45
и еще работа с указателями ЭТО просто УЖОС
хмм... постоянно пользуюсь указателями. вот например посмотрите, как я сделал таблицу процедур опкодов - http://wowcore.ru/tmp/OpCodesProcTable.pas.txt
файл из нашего сандбокса, только эти опкоды мы там "обрабатываем".
никогда не испытывал проблем работы с указателями.

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

если вам интересно, "как вов передает координаты мобов", то вам следует изучить опкод MONSTER_MOVE. снифер вам не обязателен для этого. вы можете взять снифы с нашего сайта, уверяю, этих опкодов вам хватит до конца жизни :)

что же касается самого снифанья - то пока вы сами не реализуете чтото свое, вы не получите левелап :) попробуйте начать с простого - тип прокси. клиент коннектится к вашему приложению, приложение "сечёт" куда лезет клиент и коннектится туда сам, создавая прозрачный "туннель" для клиента. это очень просто. весь сетевой трафик будет проходить через ваше приложение, в котором вы без труда сможете его скидывать на винт. мне не жалко исходники, рано или поздно я возможно поделюсь ими, но просто поймите одно - не узнаешь, пока сам не попробуешь. в свое время, когда я начинал строить свой сервер, я пытался спрашивать чтото у вада. он никогда не отвечал прямым ответом на прямой вопрос. все время пытался заставить меня думать и пройти все самому. за что ему огромное спасибо. если все время спрашивать - далеко не уедешь... нужно уметь самому.

вы верно мыслите. так же как и для вас, сервер вов для меня не цель как "сервер вов". вполне возможно, используя опыт и наработки я смогу учавствовать в создании новых серверов и/или игр. но пока такой перспективы нет, цель для меня по прежнему "сервер вов".

А возможно мне настолько понравиться что я захочу с вами, если кнечно сумею заслужить )
уверен, вам понравится. по крайней мере судя по опыту этих трех лет, что длится наша разработка, все кто хотел и пытался, а так же те, кому удалось - всем нравилось :) если наши парни читают этот диалог и им будет не лень - они подтвердят.

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

ссылку вам высылать на тот емаил, который указан в профиле?
spa ··· 16.09.2008, 14:54
[b]тип прокси. клиент коннектится к вашему приложению, приложение "сечёт" куда лезет клиент и коннектится туда сам, создавая прозрачный "туннель" для клиента[/b]

час-два работы от силы ;) мне из сорцов нужно было как вы расшифровывыете трафик и все по сути ) и еще как подбираете ключ, хотя я бы лучше сделал чтобы во время логина когда серер возвращает ключ брать его и ничего не перебирать, наверное я так и сделаю. Надо только найти описание протокола при логине, и описание самой структуры пакетов. Возможно вы мне просто дадите описание логина, да и ф/ю расшифровки, криптограф из меня лажовый, поэтому и хотел сорцы :) и еще не знаю если буду в дравах перехват делать как из пакетов сесии собирать, но это наверное надо курить доку по tcp/ip

Ссылку, можно на мыло, если не сложно.
RomanRom2 ··· 16.09.2008, 14:59
используйте обычные хтмльные теги для выделения текста :)

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

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

любую информацию касательно устройства пакетов и протоколов вы можете легко найти в опенсорцовых проектах.
spa ··· 16.09.2008, 16:12
Хм... раз мне не нужен протокол логина на сервер, то дело за "малым" научиться пот трафику узнавать ключ и расшифровывать, но я вообще хз с чего начать я в криптографии ноль полный. Мб хотябы направите на путь истенный.
RomanRom2 ··· 16.09.2008, 16:18
http://srp.stanford.edu
munche ··· 17.09.2008, 08:28
Ром, конечно нам нраваиться. :)
Я вот с отпуска вышел.. отдохнул... щас буду сервак переводить на ВОЛКа и переписывать под него спел систему - раз уж у нас появились аккаунты :)
Moin ··· 06.10.2008, 01:55
@OpCodeProc[SMSG_AUTH_CHALLENGE]:= @cmd_SMSG_AUTH_CHALLENGE;

АХАХАХАХАХ!!!!
Moin ··· 06.10.2008, 01:52
> под linux наш код компилируется при помощи fpc

^_^

> в широко известных эмуляторах опкоды разобраны крайне отвратительно, мягко говоря - не полно. отсюда частичная реализации механики какой либо системы.

ЛОЛ

> на дельфи нельзя чтото сделать, что можно на сиx

Ээээ... написать минимально кросплатформенный код?

Обойтись без объектов?

Сделать нормальный реп исходников?

Продолжать?

> винапишная часть - она в африке винапишная. будет одинакова на всех языках.

Да, на всех языках она будет ненужной. Это точно.

> на самом деле без разницы на чем такие проекты писать, были бы мозги в голове.

Может быть в этом и есть суть дела?

> изза чего дельфи уродский?

1. Он закрыт.

2. Он сдох и воняет. (одно из следствий п.1)

> нет никакой разницы на чем писать сервера

TT

> дельфи 2005/2006 гораздо продуктивнее чем скажем дельфи 7

Анабиоз. На дворе стоял конец 2007го года.
munche ··· 06.10.2008, 06:28
Пальцы пришли сюда погнуть? ВИдимо вы куртой специалист и уже написали как нимум пяток мморпг эмуляторов
Slayer ··· 06.10.2008, 09:07
Саня, спокойнее. Дураков везде хватает. Разве это первый чел который приходит всех уму-разуму учить, рассказывает как нужно правильно писать и работать, что на дельфи вообще ничего написать нельзя т.д.
Ну есть начинающие програмисты изучающиен написание хелло ворлд, но им "папки" (те кто уже в совершенстве освоил хело ворлд) сказали - что С++ язык языков и только на нем можно что то писать.
Moin ··· 06.10.2008, 01:53
> Как получить снифиры, и вообще возможно ли получение их исходных кодов.

google://wireshark
Список тем


Copyright © 2005-2024 WoWCore Team