Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Движок la2
#51
f1redark Написал:На счет серверов, я так же могу попросить примеры игровых Java серверов. Только не l2, пожалуйста, ибо его даже на php можно было бы написать, и все нормально заведется, т.к. речь про high load в сфере l2 не идет, особенно на гфш, которые еле еле 2к онлайна собирают.

Skyforge сервер написан на java. Они даже на хабре большую статью по этому поводу запилили, и они счастливы)
Ответ
#52
Это мыло. И им насрать. Им нужен профит максимально быстро....
Они в своем скайфордже проверяют тип объекта instanceof..... (проверяют всю сигнатуру класса) это просто жесть.
ладно так делают разработчики эмуояторов, но когда так делают разработчики в крупной фирме... просто слов нет.
Ответ
#53
Alay;423064 Написал:Они в своем скайфордже проверяют тип объекта instanceof
А как надо?
Ответ
#54
n3k0nation Написал:f1redark, League of Legends пойдет в качестве хайлоада и игрового сервера? Распределенные сервера, одновременных клиентов более 50 000 на каждом региональном "бутерброде" серверов. И да, я говорю про ретейл.

Пойдет, спасибо, с удовольствием почитал бы подробности, если они конечно есть в паблике, по поводу используемого стека технологий, архитектуры, и т п)
Ответ
#55
Java на PayPal
https://youtu.be/U1Wx3PDxWhk

TL;DR

Вы будете удивлены, но огромная часть мировых продакшнов которые вы знаете написана на более высокоуровневых языках чем цпп. Потому что скромный выигрыш в скорости теряется на фоне конских затрат на разработку/поддержку приложений на нём. Попробуйте организовать работу пары сотен с++ разработчиков одной платформы так, чтоб они не занимались исправлением багов друг друга, а делали хоть что-то полезное и успевали кататься в продакшн по несколько раз в день.
В современном мире задачи таких низкоуровневых инструментов немного другие - решить местечковую задачу, что-то там ускорить, где другие способы реально бессильны, постараться не сломать ни чей код, закоммитить и не трогать до тех пор пока работает.
Чем больше времени вы уделяете актуальной бизнес логике и чем меньше времени тратите на какие-то тривиальные штуки - тем более жизнеспособным будет ваш сервис, не важно что это, игровой сервак, биллинговая система, поисковый робот или простецкий сайтик со скидками.
Абсолютно не нужно заниматься преждевременной оптимизацией т.к. ваше супер-фаст-хайлоад спп аппликейшн внезапно может оказаться бессильным против сетевых лагов между нодами. И заказчик/менеджер(:Olen'Smile придет к вам за спросом, чо-ж оно тормозит то? А в ответ услышит: а мы чо, мы ни чо, сделали всё возможное, оно такое-сякое само лагает, по независимым от нас причинам :confused:
Ответ
#56
flopix Написал:А как надо?
Добавить верхнему графу(базовому классу от которого игровые объекты наследуются) допустим enum который будет содержать информацию о типеобъекта. А в конструкторах наследников указать тип. Как вариант.
Просвичить enum куда менее требовательно к ресурсам чем чекать весь инстанс.
Как вариант.
Ответ
#57
Alay Написал:Добавить верхнему графу(базовому классу от которого игровые объекты наследуются) допустим enum который будет содержать информацию о типеобъекта. А в конструкторах наследников указать тип. Как вариант.
Просвичить enum куда менее требовательно к ресурсам чем чекать весь инстанс.
Как вариант.

Это кривой способ, ведь давно придумали acyclic visitor.
Ответ
#58
а инстансоф самое то да:?

Добавлено через 2 минуты
f1redark Написал:Это кривой способ, ведь давно придумали acyclic visitor.

и чем же он кривой?
Ответ
#59
Alay Написал:а инстансоф самое то да:?

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


и чем же он кривой?

Хотя бы тем, что требует вагон каскадных if, и down casting, для того, что бы определить реальный тип объекта.
Ответ
#60
Статья на хабре Архитектура skyforge
[Изображение: 2f6cca16324edd4886711e6e37f231e5.png]

где тут down casting как вы выразились если можно сделать так

Код:
public enum ObjectType
{
Avatar,
Kto-to,
Kto-to2
}

if(abonent.objectType != ObjectType.Avatar) // Чтобыстрее сравнить 1-2 байта либо же сигнатуры. ????
{
Cast.logError(****);
return;
}

instanceof говорит лишь о том что архитекторы кода где то смухлевали.

Такой же способ к сожалению используется и во всех сборках l2 эмулей.
Вообще такое впечатление что разрабы пишут instanceof в любой непонятной ситуации когда особо не хочется задумываться. А зря.
А что если такая конструкция будет в коде который очень часто используется ? получаем колосальные задержки которых можно было б избежать чутка подумав. Но нет. Нам лень. Нам нужен продакшен и как можно быстрее.

Да и вообще мне кажется что ответ заданный в этой теме Вам был дан и она начинает скатываться в дебри. Кому лень читать.
Вопрос:
1)Почему java, а не С# или C++?
2)Какие преимущества будут у java над C# или С++, ну или наоборот?
Ответ:
1) Потому что на момент создания первого эмуля всех интересовал линукс. C# не был развит тогда как сейчас. Почему же не С++ - эмуль создавался в торопях и в основном энтузиастами. Они же хотели как можно быстрее увидеть хоть какой то результат. На тот момент java была лучшим решением для поставленных целей.
2) На данный же момент C# более перспективный язык. MS не любили потому-то мало кто знал что у них под капотом. Сейчас же наконец-то мелкософт понял что будущее за OpenSource и работают теперь в данном направлении. А это выталкивает C# вперед. ИМХО. Могу и ошибаться. Сам раньше любил кодить на Java. Пока не попробывал C#. С его WPF и прочими вкусностями. Переходить обратно не собираюсь и нет необходимости.
По поводу цены на win. С выходом Win 10.1 и 2016 сервером. Это того стоит. Темболее раз уж вы пираты - то кто вам помешает скачать KMSAuto Net и ставить серв на win10? или же вам прям так необходим Activedirectory?
Так почему же нет на шарпе работающих эмуляторов. - Потому что придется писать практический все с нуля, что писали 10 лет подряд. Все таки L2 хоть и бессмертная но через 10 лет врятли будет актуально.

Еще одна неоднозначность в Java - HotSpot - оптимизатор паттернов. Если вы пишите четко как робот по популярным паттернам, все ОК. Но как только вы начинаете придумывать свои варианты которые возможно работали б лучше, HotSpot вам все запоганит. Плюс это или минус. Каждый пускай решает сам.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Самописный движок pointvortex 2 1,806 11-29-2012, 09:27 PM
Последний пост: pointvortex

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


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