1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Minecraft Social

Тема в разделе "Обсуждение Minecraft", создана пользователем Minecraft-social, 11 июн 2014.

  1. HyperCOGENT

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

    Баллы:
    88
    Но если такой сложный проект,то нужно реализовать защиту не только в клиенте,но и на сервере,я расскажу как:
    Надо написать протокол тонкого клиента и будет взаимодействовать с сервером нитями выполнения,но чтобы происходило соединение с сервером нужен поток.
    Для сайта я бы посоветовал базу данных SQLite.
    А ещё архитектура должна быть полностью лаконичной,с соответствием и клиента и сервера.
    Протокол который будет использоваться,будет полностью написан на C++,но чтобы это всё работало надо много времени,а суть я расскажу тонкий клиент это тот клиент который полностью соответствует серверу,но сервер с более большими зависимостями,нити выполнения это нити логики сервера и клиента,которые координируют и клиент и сервер,и эти нити сливаются в один поток.
    Дело в том что эта система должна быть очень низкоуровневой,и поток должен превращаться в http запрос.
    И ещё нужен рефакторинг всего лаунчера для реализации всего этого.
     
  2. new-sashok724

    new-sashok724 Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    sashok724
    Сам то сказал, что понял? :confused:
    > Нити выполнения
    > Соединение с сервером нужен поток.
    > Тонкий клиент
    > Поток должен превращаться в http запрос

    ----
    1) Переписать протокол майнкрафта по сложности сравнимо с написанием самого майнкрафта. Я это делал, и знаю что это такое.
    2) SQLite для больших проектов как раз таки лучше не использовать.
    3) Потоки клиента и сервера синхиронизировать через сокет (или HTTP запрос) - бред
    4) "Система должна быть очень низкоуровневой" и "поток должен превращаться в http запрос" - взаимоисключающие параграфы
    5) Нафига stream-протокол конвертировать в HTTP-запросы? Мало того, что это не имеет смысла (stream-протоколы гораздо гибче), так это еще и тормозить будет! (HTTP-заголовки, оверхед на парсинг и генерацию запроса, на выполнение запроса) + Так как HTTP - не stream-протокол, то для заворачивания потока в HTTP нужно будет что-то типа сессии или UUID, который должен передаваться с каждым запросом. Есть, конечно, Keep-Alive аттрибут, но это вовсе не панацея, ведь максимальный срок жизни Keep-Alive - 30 секунд по умолчанию.
    6) Нужен не рефакторинг, а полное переписывание и лаунчера, и клиента, и сервера. И в таком случае не вижу причины почему бы вообще не отказаться от лаунчера, как от не нужного звена запуска клиента (Клиент запускает сам себя и качает себе либы, тоже реализовывал на RMC)

    ---
    Tl;dr: Много затрат вникуда, и от читов это даст лишь временную защиту, пока этот весь костыль будут анализировать.
     
    Последнее редактирование: 22 авг 2014
  3. HyperCOGENT

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

    Баллы:
    88
    Но если великий создатель @new-sashok724 популярного в странах СНГ лаунчера то да это всё очень сложно реализовать.
     
  4. new-sashok724

    new-sashok724 Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    sashok724
    Ага. А ещё и реализовывать всё это бессмысленно. И у меня к Вам просьба: ставьте, пожалуйста, знаки препинания.
     
  5. MLP

    MLP Участник Пользователь

    Баллы:
    36
    Почитал тему. Вообще уже есть в какой-то мере связка, которой многие пользуется в развитых странах.
    Аутентификация на серверах Mojang, лаунчеры FTB/Techniс с возможностью добавления своих паков, игрокам дается код ссылка/для загрузки этого пака.

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

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