Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Пишу сервер с 0 на c#
#1
Дальнейшее развитие проекта будет описываться на данном форуме.

И так поехали.
Немного лирики, можно не читать.
Дальше последует несколько вопросов, я в принципе и сам их могу решить но хочется узнать что другие об этом думают.
Сериализация вместо Mysql
Модель передвижения и PathFinding с Геодатой

Про экономику

Взаимодействие игроков

Оживление Неписей

Про классы

ПВЕ

Дроп

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

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

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

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

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

А вообще да, работы много. На одном энтузиазме много не наделаешь. Нужна команда, заинтересованная, а таких желающих работать за идею вряд ли сыщешь.
Хуже другое ! люди хотят сделать велосипед, когда рабочий OFF сервер, имеется в свободном доступе, оттуда тупо можно вырезать основные методы и сделать симбиоз с тем же C# или Явой, тем самым работы будет в разы меньше.
Проблема правда тут в другом, мало людей которые имеют необходимые знания и время чтобы такое пилить, но результат от такой деятельности в разы будет превосходить все JAVA подобные форки и экстендеры типа ADvExt,
Ответ
#6
Похоже, что кто-то сильно угорел по SAO и Login Horizon, но l2 его не отпускает при этом Big Grin

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

Но мой совет - в таких делах всегда нужен не столько тот, кто умеет на java программировать, сколько тот, кто умеет творить чудеса со старым клиентом линейки.
Ответ
#7
HiredKiller Написал:проект умрет на стадии "идея"
слишком много работы для 1 человека
только на один "сервер с нуля" уйдет больше года (написание\отладка\тесты)
Возможно вы правы, я прекрасно понимаю объем работ, и то что меня может не хватить.

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


А ValidatePosition уже не в моде?Sad

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

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

luslighter Написал:Хуже другое ! люди хотят сделать велосипед, когда рабочий OFF сервер, имеется в свободном доступе, оттуда тупо можно вырезать основные методы и сделать симбиоз с тем же C# или Явой, тем самым работы будет в разы меньше.
Проблема правда тут в другом, мало людей которые имеют необходимые знания и время чтобы такое пилить, но результат от такой деятельности в разы будет превосходить все JAVA подобные форки и экстендеры типа ADvExt,
При всем уважении... но сама основная цель почему я за это взялся - саморазвитие... это прийти своей головой к решению конечной задачи, либо хотя бы понять каким образом ее можно решить... а вообще птс тут не подходит совсем... я же повторюсь я не собираюсь сделать l2... я собираюсь сделать нечто иное.
Ответ
#8
Многие пытались делать с нуля...пытались. Все-таки создавать архитектуру с нуля не каждый сможет, далеко не каждый.
[Изображение: 4e38c909fcd08c5fcdf363b54a62.png]
Ответ
#9
Zubastic Написал:Многие пытались делать с нуля...пытались. Все-таки создавать архитектуру с нуля не каждый сможет, далеко не каждый.

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

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

В принципе стараюсь придерживаться этого.
Ответ
#10
А третий раз будет иначе? Одному человеку нужно иметь железные яйца, чтобы пилить все это соло ибо в противном случае тотальный зашквар.
[Изображение: 4e38c909fcd08c5fcdf363b54a62.png]
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Сервер IT(Lucera, лоу-рейт) c дополнениями. isysyura 0 1,356 03-15-2019, 01:25 PM
Последний пост: isysyura
  Клиент С4, настройка на сервер kotelok 1 1,557 01-31-2017, 09:41 AM
Последний пост: kotelok
  Куплю сервер. konanir 12 2,545 08-09-2016, 08:03 PM
Последний пост: Hack
  Не заходит на сервер Kassidy 2 1,298 08-09-2016, 10:48 AM
Последний пост: Rork
  Сервер установлен, критическая ошибка MalPorro 5 1,232 07-14-2014, 12:46 PM
Последний пост: MalPorro
  Клиент или Сервер? Teams 3 2,380 11-05-2013, 05:19 PM
Последний пост: Sisi
  Клиент не пускает на сервер... Evgeny2013 7 3,213 04-03-2013, 09:26 PM
Последний пост: Evgeny2013
  Редактирование описаний, копирайтов при заходе на сервер, клиент zasov 25 28,727 03-29-2013, 10:16 AM
Последний пост: Nasdomlan
  Не могу зайти на сервер KpoIIIuK 12 4,245 03-01-2013, 04:40 PM
Последний пост: DoGGeD'®
  Как правильно настроить сервер под no-ip Elemberg 0 1,382 11-06-2012, 09:47 PM
Последний пост: Elemberg

Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)