Пятница, 29 Марта 2024, 08:24

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Дополнительные темы » Обсуждение игр » Моддинг игр » Внедрение мультиплеера ((от сторонних разработчиков))
Внедрение мультиплеера
In_SearchДата: Воскресенье, 25 Декабря 2011, 21:11 | Сообщение # 1
участник
Сейчас нет на сайте
Всем привет. Вот заинтересовался, как внедряют мультиплеер от сотронних разработчиков в игру, то есть мод позволяющий игрокам подключатся к серверу и т.д., как SA:MP, ещё не вышедший мод для Мафии 2 и Just Cause 2. Не понятен смысл вообще, как и каким образом всё происходит. По этому обрящаюсь к вам за помощью, чтобы узнать принцип работы.Я знаю как работают клиент и сервер, но не понимаю как мод, патч внедряется в игру, берёт информацию, и отдаёт её. В общем, кто меня понял и кто знает, прошу доходчиво объяснить как всё это происходит и что нужно, чтобы реализовать такое.
vicu2010Дата: Воскресенье, 25 Декабря 2011, 21:46 | Сообщение # 2
Сейчас нет на сайте
Создаётся программа, которая отправляет данные с клиента на сервер при этом залазив в движок самой игры...


Программист Ruby on Rails / COBOL | Веб-дизайнер(Bootstrap, HTML5, JS) | Викверс на Construct 2 / Classic
Nanotech_uaДата: Пятница, 25 Января 2013, 17:46 | Сообщение # 3
был не раз
Сейчас нет на сайте
Цитата (vicu2010)
Создаётся программа, которая отправляет данные с клиента на сервер при этом залазив в движок самой игры...

Можно поподробнее?
Что для этого нужно изучать, чтобы сделать например простое подключение игроков?
PsychoДата: Пятница, 25 Января 2013, 18:31 | Сообщение # 4
Психоламер
Сейчас нет на сайте
Насколько я знаю, это делается подменой адресов памяти. Подменяет эти адреса параллельно запущеная программа или (чаще всего) плагин.
Вот так к примеру выглядят адреса памяти GTA: San Andreas


Сообщение отредактировал Psycho - Пятница, 25 Января 2013, 18:37
Nanotech_uaДата: Пятница, 25 Января 2013, 18:49 | Сообщение # 5
был не раз
Сейчас нет на сайте
Цитата (Psycho)
Насколько я знаю, это делается подменой адресов памяти. Подменяет эти адреса параллельно запущеная программа или (чаще всего) плагин.

А тут поподробнее можна? Как именно подменять, что это вообще значит то? И что за программа такая (или плагин) ? Где его взять, или же нужно писать самому? Может есть хоть где нибудь, хоть какие нить туториалы по этому? Что да как там делать? Просто в этом деле я полный ноль d:
ringДата: Пятница, 25 Января 2013, 19:02 | Сообщение # 6
был не раз
Сейчас нет на сайте
"поподробнее можна?" - учи асм.
"Как именно подменять, что это вообще значит то?" - патч изменяющий файлы, которые загружаются в оперативку.
"Где его взять, или же нужно писать самому?" - только самому. У каждого прогера свой стиль написания. Шаблона нет.
"Может есть хоть где нибудь, хоть какие нить туториалы по этому?" - http://www.codenet.ru/cat/Languages/Assembler/ ; http://www.computerra.ru/softerra/raznosoft/33771/
PsychoДата: Пятница, 25 Января 2013, 19:40 | Сообщение # 7
Психоламер
Сейчас нет на сайте
Nanotech_ua, ну пробивать эти адреса при желании можно даже программой ArtMoney. Другое дело написать программу или плагин, который будет эти адреса заменять. Туторов по этому нет, ибо к каждой игре свой подход, а в общих чертах описать этот процесс не получится. Тут в качестве учебного пособия помогут только туторы по мемхакингу и написанию клиент-серверных приложений, а дальше долгая и упорная практика и всем известный метод научного тыка.
Цитата (Nanotech_ua)
что это вообще значит то?

Эти адреса отвечают за разные игровые аспекты. Положение игрока на карте например. Плагин, который ты напишешь для мультиплеера будет выяснять по этому адресу положение игрока на карте и передавать эти координаты на сервер. Это если объяснять так, "на пальцах". В реальности это очень адовый процесс.
In_SearchДата: Пятница, 25 Января 2013, 20:18 | Сообщение # 8
участник
Сейчас нет на сайте
Цитата (Nanotech_ua)
Можно поподробнее?
Что для этого нужно изучать, чтобы сделать например простое подключение игроков?


Не думал,что тема всплывёт(год назад создавал).
В общем, примером работы с памятью может послужить создание трейнера для игры + клиент серверное приложение.
Трейнер-клиент вытаскивает координаты и отправляет серверу,сервер отправляет координаты другому игроку,клиент-трейнер внедряет данные в нужный процесс в игре. В общем ищи "как создать трейнер для dma игр".
Может быть я ошибаюсь,но в сети инфы нет,поэтому пришлось самому соображать)
LightsoftДата: Пятница, 25 Января 2013, 23:56 | Сообщение # 9
частый гость
Сейчас нет на сайте
Цитата (Nanotech_ua)
Можно поподробнее?
Что для этого нужно изучать, чтобы сделать например простое подключение игроков?

Рассмотрим на примере SA:MP:

В gta:sa есть пул объектов класса CPed, каждый объект класса в этом пуле - бот в игре. В каждом объекте своя информация о позиции, оружие, здоровье и др. Для того чтобы сделать подключение надо залезть в движок игры и сделать так, чтобы создавались не игровые боты, а боты, которые управляются подключенными игроками (позиция, здоровье, ...). Для этого надо писать DLL библиотеку, которая будет подгружаться в процесс gtasa.exe, будет создавать в пуле объекты CPed и менять информацию в них, которая была получена от других игроков.

Т.е. подключается к серверу клиент, всем подключенным клиентам отправляется информация что нужно создать в пуле новый объект класса CPed.
Дальше игрок управляет персонажем, все данные передаются на сервер, а с сервера всем подключенным клиентам кроме своего.


Сообщение отредактировал Lightsoft - Пятница, 25 Января 2013, 23:58
Форум игроделов » Дополнительные темы » Обсуждение игр » Моддинг игр » Внедрение мультиплеера ((от сторонних разработчиков))
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг