Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Игровой клиент (https://forum.zone-game.info/forumdisplay.php?f=54)
-   -   Пишу сервер с 0 на c# (https://forum.zone-game.info/showthread.php?t=40832)

krisadr 04.06.2016 05:18

Пишу сервер с 0 на c#
 
Дальнейшее развитие проекта будет описываться на данном форуме.

И так поехали.
Немного лирики, можно не читать.:
Свернуть ↑Развернуть ↓

Дальше последует несколько вопросов, я в принципе и сам их могу решить но хочется узнать что другие об этом думают.
Сериализация вместо Mysql:
Свернуть ↑Развернуть ↓

Модель передвижения и PathFinding с Геодатой:
Свернуть ↑Развернуть ↓


Про экономику:
Свернуть ↑Развернуть ↓


Взаимодействие игроков:
Свернуть ↑Развернуть ↓


Оживление Неписей:
Свернуть ↑Развернуть ↓


Про классы:
Свернуть ↑Развернуть ↓


ПВЕ:
Свернуть ↑Развернуть ↓


Дроп:
Свернуть ↑Развернуть ↓


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

PS за ранее прошу прощение за местами не грамотно составленные реч обороты и тп. Честно говоря устал строчить)
И да я в данной теме не ищу ни спонсоров ни сотрудников.

HiredKiller 04.06.2016 08:03

Re: Пишу сервер с 0 на c#
 
проект умрет на стадии "идея"
слишком много работы для 1 человека
только на один "сервер с нуля" уйдет больше года (написание\отладка\тесты)

Hack 04.06.2016 08:15

Re: Пишу сервер с 0 на c#
 
Цитата:

Как считаете, ведь по идеи (и по тестам) сохранение\восстановление состояний объектов в бинарный файл в десятки раз быстрее нежели коннект к мускулу и SELECT нужных параметров для дальнейшего восстановления объекта. Так может все таки использовать сериализацию?
Зачем? У кого-то сейчас есть проблемы с производительностью ла2 серверов? Стоит ли эта "оптимизация" того геморроя, который ты получишь в итоге? Очевидно нет.

Цитата:

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

Завязывай страдать фигней.

kpNemo 04.06.2016 08:38

Re: Пишу сервер с 0 на c#
 
Вставлю свои 5 копеек.
Сериализация на самом деле не такая уж и быстрая операция(а вдруг структура классов изменится?). Потом, как время от времени хотя бы сохранять данные? И не дай бог случайно что случится с сериализованным файлом, его уже не десериализовать, а БД даже частично битую можно потрудиться, да восстановить. Может и не использовать БД настолько агрессивно, как её используют сервера, а заюзать ентити фреймворк + фаербёрд(говорят новая версия чуть ли не в 5 раз быстрее предыдущей), сам ентити позволит без особого труда не описывая каждый апдейт, инсерт и ремув делать с базой то, что вам надо на ходу. Причём делать это всё можно в определённые промежутки времени(раз в 5-30 мин, к примеру), а сами вычисления делать и сохранять в оперативную память(линки,это во много-много раз быстрее работы с БД и вообще с винчестером). Грамотно построенные выборки линков работают просто моментально + дата контекст облегчит выборку и апдейт значений в готовые классы, да и самим ентити можно сгенерить классы не описывая ничего ручками.

А вообще да, работы много. На одном энтузиазме много не наделаешь. Нужна команда, заинтересованная, а таких желающих работать за идею вряд ли сыщешь.

luslighter 04.06.2016 10:31

Re: Пишу сервер с 0 на c#
 
Цитата:

Сообщение от kpNemo (Сообщение 413101)
Вставлю свои 5 копеек.
Сериализация на самом деле не такая уж и быстрая операция(а вдруг структура классов изменится?). Потом, как время от времени хотя бы сохранять данные? И не дай бог случайно что случится с сериализованным файлом, его уже не десериализовать, а БД даже частично битую можно потрудиться, да восстановить. Может и не использовать БД настолько агрессивно, как её используют сервера, а заюзать ентити фреймворк + фаербёрд(говорят новая версия чуть ли не в 5 раз быстрее предыдущей), сам ентити позволит без особого труда не описывая каждый апдейт, инсерт и ремув делать с базой то, что вам надо на ходу. Причём делать это всё можно в определённые промежутки времени(раз в 5-30 мин, к примеру), а сами вычисления делать и сохранять в оперативную память(линки,это во много-много раз быстрее работы с БД и вообще с винчестером). Грамотно построенные выборки линков работают просто моментально + дата контекст облегчит выборку и апдейт значений в готовые классы, да и самим ентити можно сгенерить классы не описывая ничего ручками.

А вообще да, работы много. На одном энтузиазме много не наделаешь. Нужна команда, заинтересованная, а таких желающих работать за идею вряд ли сыщешь.

Хуже другое ! люди хотят сделать велосипед, когда рабочий OFF сервер, имеется в свободном доступе, оттуда тупо можно вырезать основные методы и сделать симбиоз с тем же C# или Явой, тем самым работы будет в разы меньше.
Проблема правда тут в другом, мало людей которые имеют необходимые знания и время чтобы такое пилить, но результат от такой деятельности в разы будет превосходить все JAVA подобные форки и экстендеры типа ADvExt,

FaintSmile 04.06.2016 17:30

Re: Пишу сервер с 0 на c#
 
Похоже, что кто-то сильно угорел по SAO и Login Horizon, но l2 его не отпускает при этом :D

По теме же могу сказать, что делать сервер с нуля - нулем всё и поделится. Лучше взять что-то работающее и уже менять на своё усмотрение. Там и людей можно найти в команду. Мне бы, например, было бы интересно поучаствовать в чем-то таком, даже за бесплатно, ради хобби. Так что может и найдешь людей.

Но мой совет - в таких делах всегда нужен не столько тот, кто умеет на java программировать, сколько тот, кто умеет творить чудеса со старым клиентом линейки.

krisadr 04.06.2016 17:39

Re: Пишу сервер с 0 на c#
 
Цитата:

Сообщение от HiredKiller (Сообщение 413099)
проект умрет на стадии "идея"
слишком много работы для 1 человека
только на один "сервер с нуля" уйдет больше года (написание\отладка\тесты)

Возможно вы правы, я прекрасно понимаю объем работ, и то что меня может не хватить.

Цитата:

Сообщение от Hack (Сообщение 413100)
Зачем? У кого-то сейчас есть проблемы с производительностью ла2 серверов? Стоит ли эта "оптимизация" того геморроя, который ты получишь в итоге? Очевидно нет.


А ValidatePosition уже не в моде?:(

Завязывай страдать фигней.

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

Цитата:

Сообщение от luslighter (Сообщение 413103)
Хуже другое ! люди хотят сделать велосипед, когда рабочий OFF сервер, имеется в свободном доступе, оттуда тупо можно вырезать основные методы и сделать симбиоз с тем же C# или Явой, тем самым работы будет в разы меньше.
Проблема правда тут в другом, мало людей которые имеют необходимые знания и время чтобы такое пилить, но результат от такой деятельности в разы будет превосходить все JAVA подобные форки и экстендеры типа ADvExt,

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

Zubastic 04.06.2016 17:43

Re: Пишу сервер с 0 на c#
 
Многие пытались делать с нуля...пытались. Все-таки создавать архитектуру с нуля не каждый сможет, далеко не каждый.

krisadr 04.06.2016 17:56

Re: Пишу сервер с 0 на c#
 
Цитата:

Сообщение от Zubastic (Сообщение 413115)
Многие пытались делать с нуля...пытались. Все-таки создавать архитектуру с нуля не каждый сможет, далеко не каждый.

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

Классы объектов(model) - в них описание того или иного объекта (только лишь переменные и аналоги геттеров и сеттеров.)
Контроллеры - статические классы. для обработки взаимодействия между отдельными объектами или же между объектом и так сказать "физикой".
Например транзакция предметов - обрабатывается в контроллере.
Передвижение тоже обрабатывается в контроллере.
Менеджеры - статические классы. для "оживления" объектов, и для обработки их логики и действий. (все что связано с жизнью объектов обрабатывается в менеджерах)
Ну и классы - контейнеры - собственно все что необходимо из вне храниться тут...

В принципе стараюсь придерживаться этого.

Zubastic 04.06.2016 19:05

Re: Пишу сервер с 0 на c#
 
А третий раз будет иначе? Одному человеку нужно иметь железные яйца, чтобы пилить все это соло ибо в противном случае тотальный зашквар.

krisadr 04.06.2016 19:12

Re: Пишу сервер с 0 на c#
 
Цитата:

Сообщение от Connie (Сообщение 413113)
Похоже, что кто-то сильно угорел по SAO и Login Horizon, но l2 его не отпускает при этом :D

По теме же могу сказать, что делать сервер с нуля - нулем всё и поделится. Лучше взять что-то работающее и уже менять на своё усмотрение. Там и людей можно найти в команду. Мне бы, например, было бы интересно поучаствовать в чем-то таком, даже за бесплатно, ради хобби. Так что может и найдешь людей.

Но мой совет - в таких делах всегда нужен не столько тот, кто умеет на java программировать, сколько тот, кто умеет творить чудеса со старым клиентом линейки.

не всегда что то "работающее" работающим является... взять того же старичка l2jserver - проотца всех серверов l2j. Как видел в подписи у одного мембера зоны "то что написано в l2j это порнофильм с дешовыми порно актерами"(смысл такой) - я полностью в этом с ним согласен. Нужно понимать что тогда когда писался l2j - об организации глубокой и продуманной структуре они врятли думали - тем более разработка велась опять же энтузиастами. У кого то был хороших стиль программирования и продумывания алгоритмов, у кого-то не очень. Я не в коем случае их не осуждаю да и кто я такой чтобы это делать, они выполнили свою задачу в полной мере....
Но сетевой движок в один поток на селекторе и nio... давайте почитаем про проблемму 10к соединений и какие подходы с ним справляются... да и вообще сервер в один поток - это перебор сокетов в цикле что на мой все таки взгляд является не правильным подходом... да такой сервер может выдержать большое кол-во подключений, но время отклика увеличивается причем на много...
а у фреймворка есть такая мощная вещь как асинхронные операции (оптимизированный пулл потоков) с помощью которого можно справится с 10000 соединениями...

Добавлено через 1 минуту
Цитата:

Сообщение от Zubastic (Сообщение 413121)
А третий раз будет иначе? Одному человеку нужно иметь железные яйца, чтобы пилить все это соло ибо в противном случае тотальный зашквар.

Я просто теперь, когда уж вкрай за*бет, иду гулять в парк или в бар с друзьями. Потом желание возвращается xDD

n3k0nation 04.06.2016 21:45

Re: Пишу сервер с 0 на c#
 
Цитата:

Сообщение от krisadr (Сообщение 413123)
Как видел в подписи у одного мембера зоны "то что написано в l2j это порнофильм с дешовыми порно актерами"(смысл такой)

Призыв меня удался:D

Цитата:

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

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

В то время, когда это все писалось, еще не было NIO2.0 (async network), был выбор: писать на cpp для каждой платформы свою библиотеку (poll/epoll для линуксов и WSA для вин; про бздю вообще молчу), которую потом еще придется поддерживать, или же писать все на первом NIO.
До выхода J7 (в котором появился NIO2.0), особого смысла от нескольких RW Selector-воркеров не было, т.к. нативный поток полинга оставался одним. С вводом NIO2.0 JVM научилась их масштабировать (даже если не использовать async), поэтому, именно, после релиза J7, имело смысл что-то и как-то делать, но не раньше.

Цитата:

Сообщение от krisadr (Сообщение 413123)
а у фреймворка есть такая мощная вещь как асинхронные операции (оптимизированный пулл потоков) с помощью которого можно справится с 10000 соединениями...

Конечно же, до выхода J7 существовал Netty, Grizzly и другие, но их использование... Хм... Об одном только Netty я могу много рассказать, особенно, про замечательный баг 100% CPU Use, который у них лежит на багтрекере уже лет десять, в состоянии Open.
В общем и грубо говоря: они предназначены для веб-серверов, но уж никак не для гейм лоад сети.

krisadr 04.06.2016 22:53

Re: Пишу сервер с 0 на c#
 
Цитата:

Сообщение от n3k0nation (Сообщение 413135)
Лирика: как раз таки с проблемой 10к справляются с помощью селекторов, только, обычно, нескольких, которые работают параллельно, но уж никак не созданием по треду на каждого клиента. И работает селектор далеко не так, как представлено:)
.

ну мне в принципе не важно как он там на самом деле работает... смысл такой что в l2j один поток обрабатывает все подключения... без всякого распараллеливания.

Из вики:
Свернуть ↑Развернуть ↓

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

Добавлено через 2 минуты
Цитата:

Сообщение от n3k0nation (Сообщение 413135)
Призыв меня удался:D


В то время, когда это все писалось, еще не было NIO2.0 (async network), был выбор: писать на cpp для каждой платформы свою библиотеку (poll/epoll для линуксов и WSA для вин; про бздю вообще молчу), которую потом еще придется поддерживать, или же писать все на первом NIO.
До выхода J7 (в котором появился NIO2.0), особого смысла от нескольких RW Selector-воркеров не было, т.к. нативный поток полинга оставался одним. С вводом NIO2.0 JVM научилась их масштабировать (даже если не использовать async), поэтому, именно, после релиза J7, имело смысл что-то и как-то делать, но не раньше.


Конечно же, до выхода J7 существовал Netty, Grizzly и другие, но их использование... Хм... Об одном только Netty я могу много рассказать, особенно, про замечательный баг 100% CPU Use, который у них лежит на багтрекере уже лет десять, в состоянии Open.
В общем и грубо говоря: они предназначены для веб-серверов, но уж никак не для гейм лоад сети.

То было одно время, сейчас другое, почему бы не использовать новые доступные технологии)

n3k0nation 05.06.2016 00:09

Re: Пишу сервер с 0 на c#
 
Цитата:

Сообщение от krisadr (Сообщение 413138)
ну мне в принципе не важно как он там на самом деле работает... смысл такой что в l2j один поток обрабатывает все подключения... без всякого распараллеливания.

Из вики:
Свернуть ↑Развернуть ↓

Суждение по nginx:
Свернуть ↑Развернуть ↓

FaintSmile 05.06.2016 13:31

Re: Пишу сервер с 0 на c#
 
Цитата:

Сообщение от krisadr (Сообщение 413123)
а у фреймворка есть такая мощная вещь как асинхронные операции (оптимизированный пулл потоков) с помощью которого можно справится с 10000 соединениями...

Лично мне не приходилось лицезреть выше 2к онлайна на одном сервере с 2014 года. Такие извращения либо бессмысленны и беспощадны, либо чрезмерно оптимистичны kappa

krisadr 08.06.2016 05:37

Re: Пишу сервер с 0 на c#
 
Цитата:

Сообщение от Connie (Сообщение 413155)
Лично мне не приходилось лицезреть выше 2к онлайна на одном сервере с 2014 года. Такие извращения либо бессмысленны и беспощадны, либо чрезмерно оптимистичны kappa

Ну я бы не назвал это прямо таки извращением.
Вот наконец то закончил с реализацией криптера-декриптера...
приведу примеры Stopwatch. Так вот в сервере на шарпе с асинхронным чтением\записью с момента получение пакета, до момента реакции на него проходит среднем 300к наносек (дешифровка пакетов включена в тест)
(sw.ElapsedTicks * ((1000L * 1000L * 1000L) / Stopwatch.Frequency), если не считать первый запуск пакет ридера(некешируемый). В то время как на selector в java тратилось порядка 1000к наносек (по крайней мере на моем железе.)
Получается чисто теоретически, чтобы одновременно обработать 5к подключений на у c# займет 1,5 сек.
у selector'a на всех l2j - 5 сек. Нельзя конечно слепо верить данным тестом, ведь все познается только в реальных условиях, но все же это придает мне оптимизма к развитию проекта на шарпе :redlol:
да забыл добавить тесты проводились на DEBUG, а с релизной оптимизацией все будет летать еще быстрее)

FaintSmile 08.06.2016 15:16

Re: Пишу сервер с 0 на c#
 
Цитата:

Сообщение от krisadr (Сообщение 413281)
Ну я бы не назвал это прямо таки извращением.
Вот наконец то закончил с реализацией криптера-декриптера...
приведу примеры Stopwatch. Так вот в сервере на шарпе с асинхронным чтением\записью с момента получение пакета, до момента реакции на него проходит среднем 300к наносек (дешифровка пакетов включена в тест)
(sw.ElapsedTicks * ((1000L * 1000L * 1000L) / Stopwatch.Frequency), если не считать первый запуск пакет ридера(некешируемый). В то время как на selector в java тратилось порядка 1000к наносек (по крайней мере на моем железе.)
Получается чисто теоретически, чтобы одновременно обработать 5к подключений на у c# займет 1,5 сек.
у selector'a на всех l2j - 5 сек. Нельзя конечно слепо верить данным тестом, ведь все познается только в реальных условиях, но все же это придает мне оптимизма к развитию проекта на шарпе :redlol:
да забыл добавить тесты проводились на DEBUG, а с релизной оптимизацией все будет летать еще быстрее)

Это круто, что у Вас получается делать то, что нравится.

Такие разговоры навевают на меня воспоминания о том, как кое-кто делал L2 на UE3.

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

krisadr 08.06.2016 19:05

Re: Пишу сервер с 0 на c#
 
Цитата:

Сообщение от Connie (Сообщение 413312)
Это круто, что у Вас получается делать то, что нравится.

Такие разговоры навевают на меня воспоминания о том, как кое-кто делал L2 на UE3.

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

не все сразу) тут нужно делать не спеша и постепенно... торопится мне пока что некуда. Я все таки считаю что сервер написать куда проще чем клиент, а про 3d анимацию, модели, текстуры я вообще молчу... а так хоть есть шанс написать что то свое и работающее так как ты считаешь нужным)) ибо колоссальная работа над клиентом сделана до тебя, к тому же пакетная чать тоже распилена до зубчика - бери не хочу.... по мне так это единственный возможный вариант одному сделать что то стоящие.
Честно говоря меня не сколько логика скиллов или АИ мобов пугает, сколько реализация геодаты, и поиска пути... в геодате я точно поплыву потому что там тупо байты, тут я не силен, что далеко ходить - для того чтобы понять как шифруется\дешифруется трафик и реализовать, у меня ушло часов 5 почти непрерывного шаманства... вроде все сделал как нужно и на тебе при дешифровке чексумма не сходилась... оказывается я с самого начала забыл про обратную последовательность байтов в трафике l2... пришлось переделывать. Вообщем пока что побегаем без геодаты и поиска пути... у меня уже дикие мысли возникают о ручной реализации геодаты и системы вейпоинтов xDD, а может мне просто нужно пойти поспать и завтра придумаю более оптимальный вариант.

iFailed 09.06.2016 01:52

Re: Пишу сервер с 0 на c#
 
Где 2009 , где 2016. Линейка умирает не по дням а по часам. Нет той аудитории, которая была даже в 2013.

JavaMan 09.06.2016 01:53

Re: Пишу сервер с 0 на c#
 
krisadr, https://github.com/Elfocrash/L2dotNET - тут ребята тоже пишут сервер л2 с нуля на шарпе, может будет интересно глянуть.
PS тему не читал, но осуждаю за шарп, а за предоставление результата бенчмарков без кода самих бенчмарков вообще тихо ненавижу.

Shell 09.06.2016 06:30

Re: Пишу сервер с 0 на c#
 
Цитата:

Сообщение от iFailed (Сообщение 413371)
Где 2009 , где 2016. Линейка умирает не по дням а по часам. Нет той аудитории, которая была даже в 2013.

Вы хотите сказать что сейчас аудитория которая начала играть в л2 с 2014+ осталась?)
Сейчас если кто и остался,так это люди с 2005-2010г~ основная масса..

FaintSmile 09.06.2016 09:16

Re: Пишу сервер с 0 на c#
 
Цитата:

Сообщение от Shell (Сообщение 413377)
Вы хотите сказать что сейчас аудитория которая начала играть в л2 с 2014+ осталась?)
Сейчас если кто и остался,так это люди с 2005-2010г~ основная масса..

Каждый год пишут что л2 вот-вот умрет. Это я вижу с 2011 года примерно.kappa

iFailed 09.06.2016 18:46

Re: Пишу сервер с 0 на c#
 
Цитата:

Сообщение от Connie (Сообщение 413379)
Каждый год пишут что л2 вот-вот умрет. Это я вижу с 2011 года примерно.kappa

Процесс уже виден. С 2011 года онлайн примерно упал на 60%

krisadr 09.06.2016 19:24

Re: Пишу сервер с 0 на c#
 
до тех пор, пока NCsoft будет работать над проектом, он не умрет, и всегда будет приток новых, возврат старых. Ибо реальной альтернативы нет... есть только l2 и wow. wow - пве, l2 - пвп. А все остальное вроде archeage, pw и прочего это простите, "суход*очка". Имхо

Shell 09.06.2016 19:37

Re: Пишу сервер с 0 на c#
 
Цитата:

Сообщение от iFailed (Сообщение 413413)
Процесс уже виден. С 2011 года онлайн примерно упал на 60%

Может еще потому что,в 2011 все игроки были с концентрированы только на пару проектах,а сейчас на сотнях.

FaintSmile 09.06.2016 20:24

Re: Пишу сервер с 0 на c#
 
Цитата:

Сообщение от iFailed (Сообщение 413413)
Процесс уже виден. С 2011 года онлайн примерно упал на 60%

(:
Свернуть ↑Развернуть ↓

Hack 10.06.2016 00:51

Re: Пишу сервер с 0 на c#
 
С 2013г заметен реальный отток игроков. Там где раньше было 800 тел сейчас 400-500, значительная часть которых боты. Личные наблюдения

iFailed 10.06.2016 01:47

Re: Пишу сервер с 0 на c#
 
Цитата:

Сообщение от Shell (Сообщение 413418)
Может еще потому что,в 2011 все игроки были с концентрированы только на пару проектах,а сейчас на сотнях.

Статистика СГ тебе в помощь. Запиши данные сейчас в прайм в субботу, и через месяц.

Добавлено через 4 минуты
Цитата:

Сообщение от krisadr (Сообщение 413417)
до тех пор, пока NCsoft будет работать над проектом, он не умрет, и всегда будет приток новых, возврат старых. Ибо реальной альтернативы нет... есть только l2 и wow. wow - пве, l2 - пвп. А все остальное вроде archeage, pw и прочего это простите, "суход*очка". Имхо

Есть сессионки, этого достаточно

krisadr 10.06.2016 09:44

Re: Пишу сервер с 0 на c#
 
Кому то достаточно а кто то взял платину 2 и ему надоело :D

smeli 14.06.2016 11:12

Re: Пишу сервер с 0 на c#
 
Цитата:

Сообщение от Connie (Сообщение 413379)
Каждый год пишут что л2 вот-вот умрет. Это я вижу с 2011 года примерно.kappa

а я читал большой очерк в 2004 где со слезами рассказывается что с выходом хроники 2 лайнедж-2 умер
и всё там правда кроме "лайнедж-2 умер"


а теперь по теме:

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

Zubastic 14.06.2016 12:38

Re: Пишу сервер с 0 на c#
 
Цитата:

Сообщение от krisadr (Сообщение 413442)
Кому то достаточно а кто то взял платину 2 и ему надоело :D

В лоле что ли? Играть в это невозможно...

krisadr 14.06.2016 21:50

Re: Пишу сервер с 0 на c#
 
На вкус и цвет... Это вообще уже холивар... Я лично в доту не могу - воротит.

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

luslighter 14.06.2016 23:36

Re: Пишу сервер с 0 на c#
 
Причем здесь игровой клиента - непонятно ?(Ты же не движок пишешь).

Да и как показывает практика - особых отличий от Явы C# не имеет, ребята на Maxcheaters пилят на Dotnet C# проект, та же самая ява только в "профиль".

glelf 16.06.2016 10:23

Re: Пишу сервер с 0 на c#
 
Цитата:

Сообщение от GabberBaby (Сообщение 413373)
krisadr, https://github.com/Elfocrash/L2dotNET - тут ребята тоже пишут сервер л2 с нуля на шарпе

а на первый взгляд там взяли исходы с этой темы https://forum.zone-game.info/showthread.php?t=25855 и l2cemu :)

а так вот еще какой то сурс https://github.com/Mellowz/L2.Net

KID 14.08.2016 15:36

Re: Пишу сервер с 0 на c#
 
Не хочу показаться тЕмным некрофилом, но:
- сериализация в файл дно, лучше подключи postgres с jsonb данными где ты сможешь просто и вариативно сохранять данные. и сохранять их лучше при отключении игрока и периодично, собрав из игрока весь спектр измененных данных, и аккуратно сложив их в бд. дергать игрока из бд в 10 подключений тоже бред (как сделано тут и очень много где еще)
- селектоор/цикл в 1,5 сек? мало того, что при красивых цифрах в 5 или 10 тыс, проблемы будут не с чтением полученных данных, а с взаимодействием этой тонны данных между собой. к тому же селекторы/циклы в любом случае надо распаралеливать от 300-500 подключений/поток. но опять же, это должно быть в спринте по доработкам уже после реализации основного фундамента.
данные игрока №1 считаются моментально, а игрока №5000 - спустя 1,5 сек после получения, рили это ок?
- с передвижением игрока над гео, меняющимися вокруг объектами (а также взаимодействия с ними), и особенно на разных скоростях игрока, а вдруг замес, да и еще массовый, и все жмут жмут жмут, активные зоны травят игроков, аое жарит их пердаки - у тебя моск в стратосферу вылетит, береги его, я знаю о чем говорю.

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

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

krisadr 14.08.2016 21:53

Re: Пишу сервер с 0 на c#
 
Цитата:

Сообщение от KID (Сообщение 416968)
когда у тебя в голове мысли не как найти мега курс, супер статью или книгу, осилив которые ты станешь супер спецом по языку - это одно, а когда ты берешь и делаешь - это дает совершенно другой результат, не бросай.

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

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

KID 15.08.2016 13:48

Re: Пишу сервер с 0 на c#
 
krisadr, а это прости, что?

KPAKEH 16.08.2016 07:45

Re: Пишу сервер с 0 на c#
 
как успехи то?

krisadr 18.08.2016 11:22

Re: Пишу сервер с 0 на c#
 
пишу код с расчетом на то чтобы к потом к старым кускам не приходилось возвращаться или воздействия были минимальными, по этому не все так быстро. Думаю что в феврале - марте можно будет хоть как то пощупать xDD


Текущее время: 20:06. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot