Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

[McServer] Сервер на ЯП C++

Тема в разделе "Альтернативные серверные платформы", создана пользователем Vitto, 22 ноя 2012.

  1. ensirius

    ensirius Старожил Пользователь

    Баллы:
    123
    Забудьте вы уже про майн на C++ :)
     
    Mik1313, BeLkA и alexandrage нравится это.
  2. Хостинг MineCraft
    <
  3. MySt1k

    MySt1k Старожил Пользователь

    Баллы:
    173
    Про майн может быть, но про сервер так не скажешь. Он развивается очень даже прилично, правда если не будут идти в сторону мультипоточности смысла от него будет мало...
     
  4. КириллН

    КириллН Активный участник

    Баллы:
    63
    Minetest, не?
     
    InterWall нравится это.
  5. maniak89

    maniak89 Активный участник Пользователь

    Баллы:
    63
    "С многопоточностью умеют работать только боги и лжецы"(с)
    корректнее им было бы в сторону не потоков расти, а в сторону отдельных нод аля http://habrahabr.ru/company/mailru/blog/220359/, читая статью мы видим что?яву. почему - потому что как у нас в офисе говорится "с++ гавноподелка студентов колледжа в качестве курсовой работы, которую почему то используют для разработки серьезных вещей". Умные указатели, счетчики ссылок, дидлоки, ахтунг.
    ява тоже не лучше, хотя бы в плане прожорства(ведь у них ГК!), зато много что из коробки.
    Где то выше про D - да, удобнее красивее - его бы заиспользовать, но у них проект уже разросся и врядли что то они сделают.

    +1
     
  6. InterWall

    InterWall Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    InterWall
    Насчет отношения к плюсам совсем не согласен. Это не было поделкой студентов. Более того - плюсы разрабатывались с Си, а си писался для создания ОС. Подробнее на вики. Если проще - на си написали UNIX.[DOUBLEPOST=1398976452,1398976283][/DOUBLEPOST]А если уж говорить про быстроту работы, то си/++ - компиляция в байт-код, который идет не через ВМ, а почти напрямую в процессор. Если взять что-то более быстрое, то подойдет только язык Ассемблера, он вообще напрямую в процессор идет. Если уж брать ту же яву, то в ней все идет через JVM, что сильно сказывается на скорости выполнения программы.

    Поправьте, если не прав.
     
    КириллН нравится это.
  7. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    В сторону нод в майнкрафт сервере расти не получится. 20 милисекунд на тик не дают просто и шанса получить часть расчётов с другой машины. А побить мир на части или на инстансы не имеет смысла, потому что тогда это уже будет не общий мир на много игроков, а просто циферки в окне онлайна.[DOUBLEPOST=1398976590,1398976495][/DOUBLEPOST]
    У JVM есть JIT благодаря чему производительность серверного приложения написанного на джаве будет выше чем такого же на c++ через определённое время работы программы.
     
    КириллН нравится это.
  8. InterWall

    InterWall Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    InterWall
    И все таки, все зависит от прямоты рук разработчика. Кривыми руками даже на ассемблере производительность будет нулевая.
     
  9. ensirius

    ensirius Старожил Пользователь

    Баллы:
    123
    Не нравится мне стиль вашей речи @maniak89. Система шардинга идея не новая и уже есть такая вещь как BungeeCord. Но если вернутся к сути топика, то каждый раз когда заходит речь о написание сервера с 0, то обязательно господа обвинят java и говорят что будущие за C++. Нет, она не виновата. Господа из mail.ru имея возможности и средства выбрали java. Это отличный язык для написания сервер сайд приложений. Проблема майнкрафта в том, что они решили за счет одного потока обработать все. В майнкрафте очень много мобов в сравнение с другими играми. В java есть прекрасный пакет начиная с 7-ой версиии - concurrency. Можно легко и красиво разделить нагрузку на каждый поток. Разработчики GreenCubes просто создали для каждой части по потоку. Этот подход менее эффективен, но даже такой подход дал им большой прирост. Безусловно C++ более эффективен, допустим на 30%...но надо понимать что тут и на java мало кто умеет писать хорошо, а что уже говорить о C++...Я считаю что время разработки аналогичного сервера на C++ займет в 5 раз больше :) Потому я тихо с улыбкой при виде таких топиков продолжаю писать спокойно себе сервер на JAVA.

    В действиях Mojang много нелепости. Лаги - это первое что бросается всем, а что творится под капотом это женский детородный орган.
     
  10. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Моджанги просто не умели в многопоточность когда выпускали майнкрафт (Да и сейчкас особо не умеют, но стараются.)
    Никто не предполагал что кто-то будет пытаться держать больше 20 человек на сервере.

    Сейчас же они вроде как наконец врубились что вокруг мультиплеера крутится много чего, хотя и утверждают что большинство игроков играют в одиночку и только, и наконец таки стали оптимизировать сервер хоть немного. Привинтили netty в 1.7, в версии 1.8 каждый мир обрабатывается в своём потоке. Может и до нормальной многопоточности доживём. Хотя пусть сначала PluginAPI допилят, с производительностью и умельцы смогут разобраться.
     
    gamerforEA и InterWall нравится это.
  11. ensirius

    ensirius Старожил Пользователь

    Баллы:
    123
    А какой смысл городить каждому миру свой поток? Можно пруфы по этому поводу? Что касается 1.7, то было много изменений, но большинство я оцениваю позитивно..ну кроме как инфа о чате в json передается и серилазции пакетов. Кстати, зачем вообще придумали NBT? Serialization класс удобнее же.
     
  12. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Зачем каждому миру по потоку - да просто так, всё лучше чем обрабатывать последовательно. Пруфы - читайте твиттер dinnerbone, декомпилируйте ванильный сервер снапшотов.

    А вот насчёт NBT - просто нотч тогда видимо не знал про такое, вот и сгородил свой велосипед.
    А теперь настолько свыклись со своим форматом, что теперь с него точно не уйдут.
    Вообще до версии 1.6 майн наполовину из велосипедов состоял, потому до них наконец допёрло что можно брать готовые библиотеки которые нормально написаны, и с тех пор вроде сервер пошёл на улучшение.
     
  13. ensirius

    ensirius Старожил Пользователь

    Баллы:
    123
    Сколько им лет надо что бы научится чему-то? Вы не прав, они в лицо харкают сообществу. Все сделанно для сингла. За изменения в AI 1.6.4 можно убивать. Серверный тик из-за новой логики значительно просел. Вроде обещают изменения. Будем ждать. А первое, что надо сделать было им, это не обусфицировать код. Они все равно на сколько я знаю обещали его открыть..да и не пофиг ли им? Они заработали достаточно. Не боятся они пиратства..

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

    Benseeley Старожил Пользователь

    Баллы:
    123
    и лошадок :D
     
  15. maniak89

    maniak89 Активный участник Пользователь

    Баллы:
    63
    С++ писался позже С укуренным Страуструпом, даже строк нормальных изначально не запилили. 1х стандарты повыходили подабавляли лямбд, стало удобнее, но строки так и оставили кривыми. Нельзя сравнивать С и С++, или у вас это С с классами?) Никто и ничто напрямую в "процессор" не идет. все вам через преслаутую прослойку с ОС если уж разибраться(вы же не под ulinux пишете со своим блекжджеком MCU). Почему про шардинг заговорил - легче разносить по серверам, в то время как монолит тяжело куда либо унести. С другой стороны имеем 48GB оперативы ява съедает все и грузит проц на 1 ядро из 16. разбить на 16 инстансов и заставить паралелиться было б правильнее. на плюсах это реализовать можно - но геморойно. на д - легче, на яве - из коробки почти, на Erlang - изначально там. А по счет криворукости - согласен, ЯП здесь не виновен.
     
  16. Heiwen34

    Heiwen34 Старожил Пользователь Заблокирован

    Баллы:
    123
    Skype:
    HentaiZ
    Имя в Minecraft:
    HentaiZ
    Глубоко не прав, это UNIX написан на C++ :D
     
  17. InterWall

    InterWall Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    InterWall
    Ну, а я что сказал?[DOUBLEPOST=1399264314,1399264131][/DOUBLEPOST]Стоп. Какие плюсы? Они возникли на лет десять позже unix. Даже на 15.
     
    Jers нравится это.
  18. Heiwen34

    Heiwen34 Старожил Пользователь Заблокирован

    Баллы:
    123
    Skype:
    HentaiZ
    Имя в Minecraft:
    HentaiZ
    А вы дорогой мой сударь написали что C++ написан на UNIX :D
     
  19. Jers

    Jers Старожил Пользователь

    Баллы:
    153
    Первые версии написаны на ассемблере, а потом переписали на Си
     
  20. Heiwen34

    Heiwen34 Старожил Пользователь Заблокирован

    Баллы:
    123
    Skype:
    HentaiZ
    Имя в Minecraft:
    HentaiZ
    А вообще какой был первый ЯП?
     
  21. InterWall

    InterWall Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    InterWall
    Стоп. Когда я такое писал? Я вообще про плюсы там не писал.
     
    ПриветОтЛайки нравится это.

Поделиться этой страницей