PRO Mods - Forums
PRO Mods
Ваш ID: Guest
Recent messages\ Последние сообщения форума · Users list\ Список пользователей · Site search\ Поиск
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум » Main partition\ Главный раздел » W.I.P\ Разработка модов » Реализация Мультиплеера
Реализация Мультиплеера
jhonyxakepДата: Среда, 2014-09-17, 18:18:50 | Номер сообщения: 1
Site Member
Группа: Site Member
Сообщений: 50

Награды: 0

Положение: Offline

)Здравствуйте.

Знаю что об эту тему много копий поломано  smile

И так.


Несмотря на заезжанность темы нормального мультиплеера в SLRR так и не появилось. Да, было много попыток сделать что-то подобное, и мы всё ещё ждём что же нам покажет RAXAT (если это когда-нибудь случится).

Руководствуясь принципом, что если решения проблемы нет, решить её надо самому я тоже взялся за подобный процесс. Дабы дело не застыло, энтузиазм не резиновый, а проблем много, решил создать веточку на форуме, для совместного решения многих вставших вопросов.

Мод базируется на патче 2.3.0LE (чистом), и на большой количестве Java файлов от 2.2.1 (широко доступный Java pack).

По идее для реализации большинства функционала я внедряю DLL файл в процесс SLRR, перехватывая некоторые вызовы WinAPI (пока только CreateFile).

На данный момент возникает несколько вопросов, которые пока никак решить не получается:

1. Как передавать информацию в JVM игры (WriteFile / ReadFile не катит из за своего формата игры)
2. Как узнать эту чёртову угловую скорость автомобиля

Есть информация, что RAXATу удалось встроить другую версию JVM в игру. (я нахожу это странным, т.к. версия JVM в игре вообще похожа на что то древнее и про что информации очень мало). Если ему действительно это удалось, то у нас отпадает 80% всех проблем.

[IMG SRC=http://f6.s.qip.ru/~Uvvpmez1.png]

Окно выведеное модулем (позиция, положение оси руля, загруженые машины, за кадром: скорость и ориентация)

(Пока проблемы с деланьем скриншотов игры игры, встроенная функция отключена Qip Shotом, Fraps не ставил)

Для теста в игре уже есть машина-призрак, те проблем с выводом других игроков особых нет.

ЗЫ. Угловую скорость физического объекта узнать достаточно легко, если есть способ получить физический объект кузова машины, то второй вопрос отпадает.

В будущем архитектура планируется на подобии SA:MP, сервер будет реализован как модуль к Node.JS

Спасибо всем, кто прочёл и тем, кто поможет  smile

Добавлено (2014-09-17, 18:18:50)
---------------------------------------------
Кстати IDA Pro неплохо разбирает некоторые куски кода игры. Вполне реально, что можно их даже заставить компилироваться и работать.


SLRR: Multiplayer coming soon!

Post edited by jhonyxakep - Среда, 2014-09-17, 18:11:35
 
RAXATДата: Четверг, 2014-09-18, 00:07:56 | Номер сообщения: 2
Legend
Группа: Master
Сообщений: 5209

Награды: 82

Положение: Offline

Привет!

Во-первых, круто. Это единственный адекватный подход к глубокой модификации игры без исходников и декомпиляции. Во-вторых, по сути нужно перехватывать набор параметров типа давление на педаль газа, тормоза, на сцепление и т.д. и передавать их по сетке, тогда если второго игрока подключить как бота, получится некое подобие мультиплеера. Подобие, т.к. для полноценного мультиплеера нужно передавать состояние всего пространства на каждом кадре с возможностью мотать его назад и вперёд, этого игра не позволяет сделать.

По поводу вопросов:

1. Объекты виртуальной машины это, по сути, объекты С++, т.е. на них есть обыкновенные указатели, которые ссылаются на вполне привычные структуры типа Object(). Задача - найти указатели;

2. Нужна скорость кузова по 3 осям, она хранится в трёхмерном векторе, на который тоже есть указатель в оперативной памяти.


Владелец сайта PROMODS.RU
Администратор сайта streetlegalmods.com (GOM-TEAM)
Разработчик Street Legal Racing: Redline v2.3.1
Skype: skype_raxat
PayPal: eversoft@bk.ru
E-mail: ceo@image-code.com
 
jhonyxakepДата: Четверг, 2014-09-18, 07:34:21 | Номер сообщения: 3
Site Member
Группа: Site Member
Сообщений: 50

Награды: 0

Положение: Offline

Цитата
Во-вторых, по сути нужно перехватывать набор параметров типа давление на педаль газа, тормоза, на сцепление и т.д. и передавать их по сетке, тогда если второго игрока подключить как бота, получится некое подобие мультиплеера. Подобие, т.к. для полноценного мультиплеера нужно передавать состояние всего пространства на каждом кадре с возможностью мотать его назад и вперёд, этого игра не позволяет сделать.

Я поступил немного иначе: по идее надо транслировать большинство параметров автомобиля, но самое важное это передать скорость и угловую скорость. Используя только эти параметры управление автомобилем-ботом становится вполне адекватным. Плюс небольшая проверка на позицию автомобиля с корректировкой (антилаг).
Возможности плагина перехвата для получения информации о действиях пользователя не требуются: все эти параметры доступны прямо из JVM игры. В том числе поворот колес это всего-лишь положение оси TURN деленное на 100.

Цитата
Это единственный адекватный подход к глубокой модификации игры без исходников и декомпиляции.

Поправка: Исходники class файлов все таки есть. Декомпиляция EXE файла тоже имела место быть, оттуда я подчерпнул некоторые команды автомобиля и её параметры.

Цитата
1. Объекты виртуальной машины это, по сути, объекты С++, т.е. на них есть обыкновенные указатели, которые ссылаются на вполне привычные структуры типа Object(). Задача - найти указатели;

2. Нужна скорость кузова по 3 осям, она хранится в трёхмерном векторе, на который тоже есть указатель в оперативной памяти.
Хочется пойти по пути минимального сопротивления и сложности и вытащить как можно больше из JVM без извращений с ней, иначе снова создадим много багов (в и так дырявой игре).

Я с Java пока знаком плохо. Если есть способ вывести на экран всех членов объекта с их типами, то будет намного проще.

У меня практически нет наработок в этой области, может есть идеи, куда, и чем копать?


SLRR: Multiplayer coming soon!
 
RAXATДата: Воскресенье, 2014-09-21, 21:31:32 | Номер сообщения: 4
Legend
Группа: Master
Сообщений: 5209

Награды: 82

Положение: Offline

В JVM вообще нет информации, которая может быть использована для управления машиной напрямую. С твоим богатым опытом лучше вообще не трогать встроенный в игру аналог Java, он бесполезен для модификаций такого уровня. Попробуй поработать с данными, которые можно выдернуть из ехе файла, это даст лучший результат.

Владелец сайта PROMODS.RU
Администратор сайта streetlegalmods.com (GOM-TEAM)
Разработчик Street Legal Racing: Redline v2.3.1
Skype: skype_raxat
PayPal: eversoft@bk.ru
E-mail: ceo@image-code.com
 
jhonyxakepДата: Понедельник, 2014-09-22, 05:05:08 | Номер сообщения: 5
Site Member
Группа: Site Member
Сообщений: 50

Награды: 0

Положение: Offline

Цитата
В JVM вообще нет информации, которая может быть использована для управления машиной напрямую.
А вот это неправда, управлять транспортом напрямую вполне можно из JVM, и даже нужно.
Цитата
Попробуй поработать с данными, которые можно выдернуть из ехе файла, это даст лучший результат.
Навыком беглого чтения ассемблера я не обладаю, максимум, это HexRays и псевдо-си код. Из этого много информации не выдернешь. Ну параметры команд узнать можно, типы данных и всё.

Добавлено (2014-09-22, 05:05:08)
---------------------------------------------
Я до сих пор не могу разобраться с передачей данных в игру. ИМХО редактировать данные в памяти процесса - самый большой костыль.


SLRR: Multiplayer coming soon!
 
RAXATДата: Четверг, 2014-09-25, 00:59:20 | Номер сообщения: 6
Legend
Группа: Master
Сообщений: 5209

Награды: 82

Положение: Offline

В яве нет прямого доступа к управлению педалью газа, сцеплением и т.д., я не знаю, как ты контролировал эти параметры. По поводу передачи данных, пока самые успешные попытки были только через редактирование в памяти.

Владелец сайта PROMODS.RU
Администратор сайта streetlegalmods.com (GOM-TEAM)
Разработчик Street Legal Racing: Redline v2.3.1
Skype: skype_raxat
PayPal: eversoft@bk.ru
E-mail: ceo@image-code.com
 
jhonyxakepДата: Пятница, 2014-09-26, 10:19:23 | Номер сообщения: 7
Site Member
Группа: Site Member
Сообщений: 50

Награды: 0

Положение: Offline

Цитата
В яве нет прямого доступа к управлению педалью газа, сцеплением и т.д., я не знаю, как ты контролировал эти параметры.
Есть через команды контроллера, очень ограничены, но для мультиплеера точно хватит. Если нужно прямо сделать бота, то проще привязать объект "Bot" к машине, а вот ботом уже управлять можно полностью.

Попробовал передачу данных через редактирование ячеек памяти - нестабильный отстой. Пока самое близкое это чтение файла (с эмуляцией конечно), но из за ошибки с закрытием файла открытого на чтение (дескриптор не освобождается), приходится открывать этот файл на запись, что убивает возможность считать что-то из него вообще (или это опять очень костыльно). Пока думаю над альтернативами.

Вопрос про угловую скорость пока открыт. Думаю уже ручками её считать. (получается лагануто, сильно зависит от FPS и скорости симуляции физики)

Сегодня-завтра выложу видео с тестовой машиной-призраком. Сразу будет видна текущая проблема.


SLRR: Multiplayer coming soon!
 
RAXATДата: Суббота, 2014-09-27, 02:25:06 | Номер сообщения: 8
Legend
Группа: Master
Сообщений: 5209

Награды: 82

Положение: Offline

Я до сих пор пытаюсь понять, ты програмер-системщик или маг реверсивной инженерии? smile будет весьма любопытно заценить видео

Владелец сайта PROMODS.RU
Администратор сайта streetlegalmods.com (GOM-TEAM)
Разработчик Street Legal Racing: Redline v2.3.1
Skype: skype_raxat
PayPal: eversoft@bk.ru
E-mail: ceo@image-code.com
 
jhonyxakepДата: Суббота, 2014-09-27, 17:21:27 | Номер сообщения: 9
Site Member
Группа: Site Member
Сообщений: 50

Награды: 0

Положение: Offline

Цитата
Я до сих пор пытаюсь понять, ты програмер-системщик или маг реверсивной инженерии? будет весьма любопытно заценить видео
Мне и до нормального программера-системщика далеко, и уж тем более до мага  smile
Так, небольшой опыт.

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



Как видно машина-призрак обрабатывается физикой (сбитый гидрант в начале, многочисленные поломки от твёрдых объектов, и столкновение между машинами в конце). Также можно заметить, что и колеса призраки и руль поворачиваются одновременно с игровой машиной. Водителя пока нет, но добавить проблема не большая.

Если бы видео было не такое лагающее, можно было бы заметить, что при поворотах (и перворотах) призрак ак бы подлагивает. Это результат отсутствия угловой скорости, поэтому при возникновении больших расхождений в позиции призраку жёстко задается позиция, угол вращения и скорость. Это реально плохо.

Ещё одна проблема: пока всё взаимодействие с призраком происходит внутри скрипта. Как только получится передавать данные в игру, нормальным путем, сразу же запишу видео первой сетевой игры.


На закуску:

1. Несколько используемых команд и костылей
Код
Командный интерфейс объекта Vehicle

Ghost.command("setsteer "+(Input.getInput(Input.AXIS_TURN_LEFTRIGHT)/100.0)); //поворот колёс Float 0-1
Ghost.command("setvel "+player.car.getVel().toString()/*+","+ЗдесьНужнаУгловаяСкорость*/);
Ghost.command("start"); //"активация" машины

2. Декомпилированный HexRays бинарник (годится только для изучения)
(в приложении)

З.Ы. Я тут уже натыкался в ютубе на видео попыток реализации мультиплеера, точнее гост кара. Там была похожая ситуация с лагами, но было всё намного хуже. Однако человек реализовал все-таки клиент-серверную архитектуру (надеюсь, что не через файлы). Попробую связатся.

Добавлено (2014-09-27, 17:21:27)
---------------------------------------------
Если честно в идеале хотелось бы избавится от встроенной JVM и все вызовы переводить на внешнюю машину, скажем, на V8

Прикреплено\Attachment: StreetLegal_Red.7z (1.23 Mb)


SLRR: Multiplayer coming soon!
 
АпДата: Суббота, 2014-09-27, 17:28:18 | Номер сообщения: 10
Starting Member
Группа: Site Member
Сообщений: 26

Награды: 0

Положение: Offline

Круто! Жду новостей с нетерпением!
 
RAXATДата: Воскресенье, 2014-09-28, 23:06:32 | Номер сообщения: 11
Legend
Группа: Master
Сообщений: 5209

Награды: 82

Положение: Offline

Полученный код вполне пригоден для редактирования, если он конечно сразу после декомпиляции обратно скомпилится. Угловой скорости и осей через JVM недостаточно для 100% копирования поведения машины (по крайней мере, по моим наблюдениям абсолютной точности достигнуть не удаётся). Виртуальная машина написана самими разработчиками (т.е. даже не портирована или позаимствована), мне сложно сказать, каковы шансы привести проприетарную технологию к некому общепринятому стандарту.

Если нашёл видео от мирана, то он прилеплял к ехе файлу костыль и работал в обход скриптов игры.


Владелец сайта PROMODS.RU
Администратор сайта streetlegalmods.com (GOM-TEAM)
Разработчик Street Legal Racing: Redline v2.3.1
Skype: skype_raxat
PayPal: eversoft@bk.ru
E-mail: ceo@image-code.com
 
jhonyxakepДата: Понедельник, 2014-09-29, 03:26:15 | Номер сообщения: 12
Site Member
Группа: Site Member
Сообщений: 50

Награды: 0

Положение: Offline

Цитата
Полученный код вполне пригоден для редактирования, если он конечно сразу после декомпиляции обратно скомпилится.
Не получится, там половины функций не декомпелировалось. 

Цитата
Угловой скорости и осей через JVM недостаточно для 100% копирования поведения машины (по крайней мере, по моим наблюдениям абсолютной точности достигнуть не удаётся).

Хотя-бы избавит от большинства визуальных лагов, уже ведь что-то.

Цитата
Виртуальная машина написана самими разработчиками (т.е. даже не портирована или позаимствована), мне сложно сказать, каковы шансы привести проприетарную технологию к некому общепринятому стандарту.

Приводить не обязательно, да в принципе там и так всё вполне нормально. Даже для создания мультиплеера встроенной JVM хватит.

Цитата
Если нашёл видео от мирана, то он прилеплял к ехе файлу костыль и работал в обход скриптов игры.
А другого и нет. По крайней мере от мирана оно первое в поиске. Что за костыль? Внедрение DLL модуля тоже неслабый костыль, который, как оказалось, не так много даёт.

Продолжу копать. Времени конечно мало на всё это (учеба, работа, развлекуха :))


SLRR: Multiplayer coming soon!
 
Z0R3KДата: Суббота, 2014-11-15, 19:29:30 | Номер сообщения: 13
n00bie
Группа: Site Member
Сообщений: 1

Награды: 0

Положение: Offline

привет, jhonyxakep

я так понимаю ты тот самый чел с sa-mp.com, который несколько плагинов для серверной части делал? biggrin
вообщем у меня есть в наличии полные исходники сампа(клиент - сервер - ракнет - остальное) 0.2x U1(не из паблика, именно U1), я занимаюсь разработкой чит-программ для сампа на C/С++ и не только, немного опыта в реверс-инжиринге есть.
если нужна помощь или еще чего-нибудь, пиши в скайп в подписи smile могу безвозмездно отдать сорцы сампа

Добавлено (2014-11-15, 19:24:52)
---------------------------------------------
вообщем вот как я вижу поэтапную реализацию мультиплеера:
1) найти адреса(не думаю что в SLRR динамичное адресное пространство) типа машины, колес, и т.д., ну, или сделать централизованную компоновку пакета данных через JVM для дальнейшей отправки через систему RakNet
2) написать серверную часть, которая будет кушать(и дешифровать, если необходимо) эти пакеты, и отправлять их остальным клиентам
3) написать систему на стороне остальных клиентов, которая будет также кушать эти пакеты, и приводить то что они отправили в действие, но вот тут уже затык, я не уверен что абсолютно все можно будет реализовать на уровне JVM, скорее всего придется реверсить biggrin
4) фиксить баги и оттачивать синхронизацию smile

также несколько затыков возникает:
1) кастомные моды на стороне игроков
2) для какой версии SLRR все это пилить, или же делать отдельную модификацию
3) в каком виде будет происходить сам мультиплеер(какие будут виды игры; где будет находится сервер, у разработчиков, или же у игроков, которые сами будут его потом запускать для совместной игры)

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

Добавлено (2014-11-15, 19:29:30)
---------------------------------------------
у меня мысли о МП возникали уже давно, все не находил партнера для более эффективной разработки, т.к. один не потяну


Skype: IMMAZ0REK

Post edited by Z0R3K - Суббота, 2014-11-15, 19:28:38
 
АпДата: Понедельник, 2015-02-16, 00:37:03 | Номер сообщения: 14
Starting Member
Группа: Site Member
Сообщений: 26

Награды: 0

Положение: Offline

Офигенно!!!! Крутая работа)))
 
White1337Дата: Пятница, 2015-02-27, 01:52:34 | Номер сообщения: 15
n00bie
Группа: Site Member
Сообщений: 2

Награды: 0

Положение: Offline

Довольно таки не плохо, продолжай!
 
jhonyxakepДата: Среда, 2015-03-18, 13:58:30 | Номер сообщения: 16
Site Member
Группа: Site Member
Сообщений: 50

Награды: 0

Положение: Offline

Немного новостей с фронта. Пока показывать особо нечего

Переписываю всю систему на связку node.js+Frida на клиенте. Минусы: эта фигня будет весить метров 200-300. Плюсы: Легко добавлять новые функции, поддержка полноценных скриптов на клиенте со всеми плюшками node.js, достаточно легко тыкать/подменять/модифицировать некоторые функции бинарника. Возможно мимоходом даже некоторые баги и выпадания сможем пофиксить. Может даже try-catch добавить.

Ребят, простите, но понадобится комп мощнее, чем суперигровой-супертоп 2004 года. wink

Новости по планам:

Как упоминал выше владельцы сервера смогут контролировать почти всё в игре. Даже рисовать свой интерфейс с анимациями и прочим.

Из вышесказанного вопрос в безопасности: Пока нет мыслей как отрезать руки серверописателям-кулхацкерам. Как варианты
  • Запускать игру в песочнице
  • Сделать сертификаты, которые можно будет получить в одном "центральном месте". Например на этом форуме. Не лучший вариант.
  • Ещё как-то
  • Забить


По поводу распространения:

Проект будет опенсурсным (открытый исходный код) и выложен на Github, НО. Но мультиплеер придется распространять вместе с остальными файлами игры, т.е. это тоже будет SLRR, но не будет никаких функций добавления нового транспорта (пока что), замены чего-либо. Это будет либо грязнаямодифицированная 2.3.0LE, либо вообще полностью перелопаченная версия без возможности запуска сингла. (меньше от этого она не станет)

Для "крикунов", которые любят спрашивать Зачем js/js фигня/подход отстой и т.д. ответ один: Я вас буду игнорировать

З.Ы.
Всё ещё ищу помощников! sad


SLRR: Multiplayer coming soon!

Post edited by jhonyxakep - Среда, 2015-03-18, 13:59:56
 
АпДата: Среда, 2015-03-18, 23:16:49 | Номер сообщения: 17
Starting Member
Группа: Site Member
Сообщений: 26

Награды: 0

Положение: Offline

Не думаю что на первом этапе хоть какая то реальная защита будет требоваться - сообщество не сильно большое, а сама игра среди школоло не популярна...
Пока все выглядит чрезвычайно красочно!) удачи!
 
SnakeRДата: Четверг, 2015-03-19, 10:47:01 | Номер сообщения: 18
Game Developer
Группа: Forum Moderator
Сообщений: 1508

Награды: 8

Положение: Offline

jhonyxakep, любую защиту все равно вскроют) а кто хочет играть честно тот так и будет, можешь просто сделать возможность банить игроков и все) Вес игры по моему не проблема, как и мощность компа) А так ждем хотя бы что то, что бы потетстить)
 
jhonyxakepДата: Среда, 2015-09-02, 14:14:26 | Номер сообщения: 19
Site Member
Группа: Site Member
Сообщений: 50

Награды: 0

Положение: Offline

В общем, ребят, такое дело. Перебрался в нерезиновую и пока кроме слабенького нетбука никакой другой машины нет, ко всему прочему и со временем туго (работа, учеба).

Я конечно буду продолжать разрабатывать мод в свободное время, но вполне реально это затянется настолько, что уже и SLRR перестанет запускаться на всех этих новых вендах.

Америкозы в комментах под ютубовским видео предлагали начать кампанию по сбору средств на кикстартере/инди но, честно говоря, для того, что-бы туда идти надо иметь хоть какие-то демо видео, и уже практически готовый продукт.
Лично мое мнение что код всеравно должен быть открытым, и я надеюсь на подключение к разработке остальных людей сообщества.

Сам готов рассказать-показать всё что знаю о способе написать мультиплеер мод для SLRR любому разработчику, которому интересно продолжить развивать идею.

Возможно это всё не стоит потраченных сил и смысла.

З.Ы. Хотя пока тестировал возможность мультиплеера успел погонять по Валосити по сети, и это, реально супер. smile


SLRR: Multiplayer coming soon!
 
SnakeRДата: Четверг, 2015-09-03, 11:12:44 | Номер сообщения: 20
Game Developer
Группа: Forum Moderator
Сообщений: 1508

Награды: 8

Положение: Offline

jhonyxakep, ну так делай репозиторий на том же git и уже через пару месяцев будет готовый продукт, в чем проблема то)
 
jhonyxakepДата: Вторник, 2015-09-22, 21:32:00 | Номер сообщения: 21
Site Member
Группа: Site Member
Сообщений: 50

Награды: 0

Положение: Offline

Мне казалось я уже выкладывал на него ссылку https://github.com/lailune/SLRRMultiplayer

Добавлено (2015-09-22, 21:32:00)
---------------------------------------------


SLRR: Multiplayer coming soon!
 
RAXATДата: Суббота, 2015-09-26, 18:42:47 | Номер сообщения: 22
Legend
Группа: Master
Сообщений: 5209

Награды: 82

Положение: Offline

Ты по сетке целиком состояние машины передаёшь или только скорость кузова с колёсами? Ютуб в Китае не работает, пока видео глянуть не могу. Кстати, куда в Нерезиновске поселился-то? smile

Владелец сайта PROMODS.RU
Администратор сайта streetlegalmods.com (GOM-TEAM)
Разработчик Street Legal Racing: Redline v2.3.1
Skype: skype_raxat
PayPal: eversoft@bk.ru
E-mail: ceo@image-code.com
 
jhonyxakepДата: Вторник, 2015-09-29, 18:23:43 | Номер сообщения: 23
Site Member
Группа: Site Member
Сообщений: 50

Награды: 0

Положение: Offline


Цитата
Ты по сетке целиком состояние машины передаёшь или только скорость кузова с колёсами
Передается как можно больше инфы, начиная от позиции в пространстве и углами поворота, заканчивая угловой скоростью. Была идея просто физически "пинать" машину в ту же сторону, куда она едет у игрока и изредка корректировать её положение и скорость. Получалось не очень гладко и сильно нестабильно, поэтому в видео обошёлся тупым заданием углов поворота и позиции. С лагами сети и асинхронностью это жесть, но уже результат.

Цитата
Кстати, куда в Нерезиновске поселился-то?


Красногорск


SLRR: Multiplayer coming soon!
 
modnkindДата: Четверг, 2015-11-19, 20:21:01 | Номер сообщения: 24
n00bie
Группа: Site Member
Сообщений: 14

Награды: 0

Положение: Offline

jhonyxakep, Если проблема с ПК все еще актуальна могу предоставить топовый ПК через удаленный доступ. Купить купил пользуюсь редко)

Slrr upload to head 25%
 
jhonyxakepДата: Четверг, 2015-12-31, 00:57:21 | Номер сообщения: 25
Site Member
Группа: Site Member
Сообщений: 50

Награды: 0

Положение: Offline

Цитата modnkind ()
Если проблема с ПК все еще актуальна могу предоставить топовый ПК через удаленный доступ. Купить купил пользуюсь редко)

Уже не актуальна, зато появилась проблема со временем  dry Разберусь с сессией, продолжу модификацию.

Добавлено (2015-12-31, 00:55:28)
---------------------------------------------
Новости с фронта разработки:

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


Для начала: это первое обновление проекта с момента выгрузки на GitHub. 
Репозиторий: https://github.com/lailune/SLRRMultiplayer

И так, как я и обещал я ушел от идеи плагина на Delphi в сторону крутого инструмента Frida (http://www.frida.re/)

Код теперь написан на JS, не требует никакой компиляции, простой для понимания, и при этом дохреналлион возможностей благодаря тому, что в роли прослойки между SLRR и сервером выступает Node.js

В данный момент пока реализована только передача данных из игры в прослойку. В тестовой сборке на делфи была также передача данных внутрь игры (см. видео), но сделано это было посредством файла, который, кстати, имеет свой формат. В общем то формат не сложный, но я пока не смог до конца разобраться в нём.

Как выход из ситуации видел несколько вариантов:

  • Остаться на файле, использовать какую-нибудь виртуальную ФС, типа Dokan или просто RAM диск
  • Перехватывать файловые вызовы полностью, и подставлять туда свои данные когда надо
  • Перехватывать функцию, скажем, определения названия джойстика и передавать данные через неё
  • Перехватить функцию листинга папки
  • Правка данных напрямую в памяти

Последний вариант самый быстрый и стабильный, но как я ни старался, так и не смог заставить работать функцию Memory.scan в Frida (маловато документации, возможно еще получится, либо буду думать над ещё одним модулем на делфи :)

Из предположений: Если я правильно всё разобрал, то Frida умеет находить даже не экспортируемую функцию внутри бинарника и вызывать её. Т.е. теоретически можно, используя знания полученные файла с псевдо-си кодом, который кидал ранее, фигачить свои функции прямо в JVM. Если это так, то отпадает сразу 90% всех проблем, и можно считать, что игра побеждена.

Интересные новости, которые будут понятны тем, кто не понял то, что выше:

Я думаю первый общий сервер игры запущу в первой половине 2016 года. Распространятся игра будет сборками, которые будут устанавливатся отдельно. Скорее всего поначалу будет ограниченный выбор автомобилей, никаких гаражей, и блокировка повреждений. В сборку нельзя будет добавлять моды, но я думаю, что неплохо выставлять моды на голосование и после голосования добавлять их в сборку.

А ещё меня бесит дикое количество консервных банок производства России, которые все зачем-то грузят в SLRR.

Добавлено (2015-12-31, 00:57:21)
---------------------------------------------
Ого, разработке мода уже больше года, я и не заметил


SLRR: Multiplayer coming soon!
 
oTvErTkA1337Дата: Четверг, 2016-02-04, 20:48:50 | Номер сообщения: 26
n00bie
Группа: Registered User
Сообщений: 1

Награды: 0

Положение: Offline

А что насчет денег?Игроки своими кровью и потом будут зарабатывать вгонках или просто начитерят скок надо и будут тазы строить?
 
jhonyxakepДата: Пятница, 2016-02-05, 22:50:41 | Номер сообщения: 27
Site Member
Группа: Site Member
Сообщений: 50

Награды: 0

Положение: Offline

Цитата
А что насчет денег?Игроки своими кровью и потом будут зарабатывать вгонках или просто начитерят скок надо и будут тазы строить?


Это будет зависить от кода сервера. Я планирую поддерживать официальный сервер, но не запрещать создавать свои. Насчёт процесса игры еще не придумал. Далеко до этого.


SLRR: Multiplayer coming soon!
 
RAXATДата: Понедельник, 2016-06-20, 10:53:29 | Номер сообщения: 28
Legend
Группа: Master
Сообщений: 5209

Награды: 82

Положение: Offline

Автор жив? smile тема актуальна в связи с появлением в игре нативного сетевого кода

Владелец сайта PROMODS.RU
Администратор сайта streetlegalmods.com (GOM-TEAM)
Разработчик Street Legal Racing: Redline v2.3.1
Skype: skype_raxat
PayPal: eversoft@bk.ru
E-mail: ceo@image-code.com
 
jhonyxakepДата: Четверг, 2016-06-30, 11:50:19 | Номер сообщения: 29
Site Member
Группа: Site Member
Сообщений: 50

Награды: 0

Положение: Offline

Стоп, что?
У автора сессия и автор снова все пропустил..


SLRR: Multiplayer coming soon!

Post edited by jhonyxakep - Четверг, 2016-06-30, 11:51:29
 
RAXATДата: Пятница, 2016-07-01, 09:18:12 | Номер сообщения: 30
Legend
Группа: Master
Сообщений: 5209

Награды: 82

Положение: Offline

У тебя почта есть какая-нить? Мне нужно понять, в каком состоянии у тебя сейчас мультиплеер и как его можно аккуратно прикрутить к новому релизу.

Владелец сайта PROMODS.RU
Администратор сайта streetlegalmods.com (GOM-TEAM)
Разработчик Street Legal Racing: Redline v2.3.1
Skype: skype_raxat
PayPal: eversoft@bk.ru
E-mail: ceo@image-code.com
 
Форум » Main partition\ Главный раздел » W.I.P\ Разработка модов » Реализация Мультиплеера
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:
Copyright PRO Mods 2005© All rights reserved