Перейти к содержанию
Авторизация  
Vetalll

Архитектура сервера

Рекомендуемые сообщения

Всем привет.. как хобби ковыряю сервер снуля.. были тут от меня вопросы..  Я программист с опытом на разных платформах.

Но есть одна задача которую я никак не могу решить...  Это архитектура без круговых зависимостей. 

К примеру.

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


Кто-то пытался вообще решить эту проблему?  Сделать красиво?  Часть проблемы могу решить через Observer паттерн.  Но часть нет. особенно  та что с сокетом.  Ни литературы ни статей толковых не нашел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
8 часов назад, Vetalll сказал:

Всем привет.. как хобби ковыряю сервер снуля.. были тут от меня вопросы..  Я программист с опытом на разных платформах.

Но есть одна задача которую я никак не могу решить...  Это архитектура без круговых зависимостей. 

К примеру.

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


Кто-то пытался вообще решить эту проблему?  Сделать красиво?  Часть проблемы могу решить через Observer паттерн.  Но часть нет. особенно  та что с сокетом.  Ни литературы ни статей толковых не нашел.

Там же тема такая что клиент шлет набор байтов игроку и сервер игроку распарсивает. Есть фреймфорк для работы с сокетами  netty.

Или я не понял что ты хочешь)

Изменено пользователем Evolution

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не ты не понял.. байты это я все понимаю. Просто  сама логика.   К примеру Пакет Чат.. 

Socket -> Client -> Player -> World -> Player -> Client -> Socket

Получается классы знаю про классы на уровень выше. А не должны..


в моем понимании должно быть что-то  КАКАЯТО_МАГИЯ -> World -> Player -> Client -> Socket
и вот вся суть в КАКАЯТО_МАГИЯ.  разве что подписку реализовать на пакеты...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

AOP, mvvm. 

Но опять же всё сводится к скорости отклика что важнее соблюдения solid

Изменено пользователем Edgar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну чисто для боевого сервера мой вариант не проканает.. Но  моя основная цель - Сделать Архитектуру довольно большого сервера пименно по SOLID и с паттернами.. Так как сказать визитку  на Гит хабе.

Если интересно вот https://github.com/lebedynskyi/L2Server
А еще если покапаться в моих репах то там и бот который обходит Акуму )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, Vetalll сказал:

А еще если покапаться в моих репах то там и бот который обходит Акуму )

l2ZMRwBSldnK0m.jpg


https://github.com/asweigart/pyautogui/blob/master/pyautogui/_pyautogui_win.py
Тут используются обычные keybd_event / mouse_event , которые не сложно контрятся  (например SetWindowsHookEx и WH_KEYBOARD_LL / WH_MOUSE_LL хуки с проверкой флага INJECTED)
Вы утверждаете, что Akumu не знает об этих базовых вещах?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 hour ago, EasyGameProtection said:

l2ZMRwBSldnK0m.jpg


https://github.com/asweigart/pyautogui/blob/master/pyautogui/_pyautogui_win.py
Тут используются обычные keybd_event / mouse_event , которые не сложно контрятся  (например SetWindowsHookEx и WH_KEYBOARD_LL / WH_MOUSE_LL хуки с проверкой флага INJECTED)
Вы утверждаете, что Akumu не знает об этих базовых вещах?)

Да.. как первая часть.. И она контрится тем же смарт гвардом на проверку isInjected event
Но если посомтреть глубже

class ArduinoKeyboard(Keyboard):


Маленькая железяка которая за  $5  + OpenCV. = обходит абсолютно все. 
Нет инжекта в процессы или память или еще куда.. просто парсинг екрана и вытаскивание всей инфы. Управление клиентов через физичесскую клавиатуру через сокет с ардуинкой.  

ПРУФ - 

 

Изменено пользователем Vetalll
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
18 минут назад, Vetalll сказал:

Маленькая железяка которая за  $5  + OpenCV

Если так, то отлично
Но там в запасе теоретически есть еще один трюк - можно запретить приложениям захватывать изображение с определенного окна
Надо еще железка, чтобы забирать изображение прямо из HDMI
Тогда в системе вообще не будет никаких признаков бота, и, соответственно, нечего будет детектить античиту

Но все же стоит отметить, что бот будет проигрывать по возможностям "традиционным" ботам, которые взаимодействуют непосредственно с клиентом игры, плюс надежность распознавания объектов в игре тоже вызывает вопросы
Это явно решение не для массового потребителя

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
8 minutes ago, EasyGameProtection said:

Если так, то отлично
Но там в запасе теоретически есть еще один трюк - можно запретить приложениям захватывать изображение с определенного окна
Надо еще железка, чтобы забирать изображение прямо из HDMI
Тогда в системе вообще не будет никаких признаков бота, и, соответственно, нечего будет детектить античиту

Но все же стоит отметить, что бот будет проигрывать по возможностям "традиционным" ботам, которые взаимодействуют непосредственно с клиентом игры, плюс надежность распознавания объектов в игре тоже вызывает вопросы
Это явно решение не для массового потребителя

Да.. проигрывает и колосально.. На выходе все равно это смесь Автокликера  + частички разума.. Это все делалось для личного пользования.. Акуму я писал еще весной. Там реально трудно отхендлить это все. а захват делается примитивно.. просто скрин всего экрана..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
18 минут назад, Vetalll сказал:

а захват делается примитивно.. просто скрин всего экрана

Если сделать определенный трюк, то даже при скрине всего экрана на месте клиента игры будет просто черный прямоугольник
Правда от этого пострадают стримеры. Но все же некоторые игры так делают

 

18 минут назад, Vetalll сказал:

Там реально трудно отхендлить это все.

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

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

Изменено пользователем EasyGameProtection

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ахахаха я так давно не смеялся) ардуино жабать ахахаха 

это как прикол про джаву и питон и ооп

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 hours ago, KillMilk said:

Ахахаха я так давно не смеялся) ардуино жабать ахахаха 

это как прикол про джаву и питон и ооп

Ну и дурак..   есть скрипты даже для Пилота.. От туда и черпнул идею.

С Января на Реборне стоит SmartGuard.. Работает на ура по сей день.  Каптча парсится.. Спойл спойлится.. Манор манорится и здается в 2 замка с 99% вероятностью

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
22 минуты назад, Vetalll сказал:

Ну и дурак..   есть скрипты даже для Пилота.. От туда и черпнул идею.

С Января на Реборне стоит SmartGuard.. Работает на ура по сей день.  Каптча парсится.. Спойл спойлится.. Манор манорится и здается в 2 замка с 99% вероятностью

Я юзаю шарной адрик на смарте на любом сервере) и?) чем меня удивить?

питон не плох, я не говорил что он уг, он реально божественен особенно после 3.9

Изменено пользователем KillMilk

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...