Исходник Исходный код неоф.мультиплеера для NFS MW 2005

ImmortalDev

Участник
Автор темы
90
50
Всем привет!
В общем, сливаю бешеную машину - клиент, сервер, лаунчер, в общем - мультиплеер для NFS MW 2005 года.
Сейчас люди начнут писать, что в NFS уже есть мультиплеер ( LAN ), ну или начнут писать про MWO.
Так вот, данный мультиплеер имеет часть кода самых ранних версий MWO.
А что говорить про LAN и gameranger - унылое дерьмо, в котором ты по сто раз запускаешь гонку и имеешь только 4 слота для игроков.
Писал я это чудо в 2018 году, местами поправлял что-то в 2019.
Что имеет этот мультиплеер и на чем написан?
1. Написан он на С++, сетевая либа - самописная, flexNetwork. По сути, это обычный winsock2, но более удобный.
2. Имеет такие вещи как:
Простой античит, синхронизация (говно) машин, сервер с логами, конфигом и возможностью редактирования, 100 слотов для игроков, свой лаунчер для клиента на С++, свое небольшое оформление игры ( худ очень маленький, как по мне это удобно ), недоделанный сервер для линукс, рабочий сервер для Windows, клиент также для винды. И очень, очень много разных багов и фич, перечислил я сейчас основное.
Как запустить это?
1. Чтоб запустить сервер, нам нужно запустить server.exe, логично, правда? Есть также конфиг файл server.cfg, но блин, он тут для галочки. После запуска и последующей остановке сервера, будут создаваться логи.
logs.txt. В них IP-адрес сервера, дата последнего запуска, порт на котором работал и его название.
2. Чтоб запустить саму игру, нам нужно 3 файла: itc.exe ( launcher ), client.exe и player.txt ( тут имя игрока храниться, ибо сука я тупой еблан сделал костыль ). Это всё мы перекидываем в папку с игрой. Чтоб зайти на сервер, ВНИМАНИЕ ---- от имени администратора запускаем itc.exe. Там вводит свой никнейм, жмем GO ONLINE! Появиться консоль, куда вводим IP сервера. Все, дальше игра сама открывается, уменьшается худ до размера моего мозга, после вы заходите в абсолютно любой режим. Будь-то свободная езда, или гонка.
Но работает это так. У каждого режима, как-бы свой единый мир.
Например, один игрок катается в свободной езде, а другой проходит гонку - они могут увидеть друг друга.

----
Баги:
Их тут много, перечислю основные:
1. Не видно настоящей модельки игрока, это все потому-что по-сути, все игроки - это боты. Мы просто отключаем ИИ ботов и передаем им наши координаты. Но это будет не всегда, сейчас я над этим работаю, ну, точнее, работал. Возможно через годик залью фиксы.
2. Убогая синхронизация, машину колбасит и дергает.
3. Самая важная проблема - я, сука, не сделал дисконект игроков.
Да, если мы зайдем на сервер с ID 1, а потом выйдем и снова зайдем, наш ID уже будет 2, и серверу будет похуй, что вы один играете ( а вот это грустно ).

-------------
Скриншот сервера:
45982



Исходники этого монстра:

https://yadi.sk/d/G8eiirFDpoHGtQ

Внимание!
В коде есть в большом количестве костыли и говнокод. Много говнокода.
 

Fyger

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

D3.Pheonix

🎹
Модератор
2,867
1,644
Flatout 2 круто было через хамачи играть. А в нфс ку хз, не зайдет
 
  • Нравится
Реакции: Fyger

ImmortalDev

Участник
Автор темы
90
50
Flatout 2 круто было через хамачи играть. А в нфс ку хз, не зайдет
Так хамачи в НФСКЕ нужен только если статического IP нет, а так, можно купить его у провайдера, держать сервер и абсолютно любой сможет к вам зайти. Кстати, забыл сказать про один баг в моем МП:
Если на сервере больше 5 игроков, то может начаться анархия, вплоть до краша клиента у игроков и самого сервера.
Кстати, если хотите - могу создать тему где будет подробно описана техническая часть сервера и клиента, дабы все могли понять как это работает.
 

D3.Pheonix

🎹
Модератор
2,867
1,644
Так хамачи в НФСКЕ нужен только если статического IP нет, а так, можно купить его у провайдера, держать сервер и абсолютно любой сможет к вам зайти. Кстати, забыл сказать про один баг в моем МП:
Если на сервере больше 5 игроков, то может начаться анархия, вплоть до краша клиента у игроков и самого сервера.
Кстати, если хотите - могу создать тему где будет подробно описана техническая часть сервера и клиента, дабы все могли понять как это работает.
я имею в виду игра не зайдет вообще).
Во флетаут -да, было круто, в дерби ебашить
 

ImmortalDev

Участник
Автор темы
90
50
я имею в виду игра не зайдет вообще).
Во флетаут -да, было круто, в дерби ебашить
Ааа, ну это кому как)
Я лично не фанат НФС, но выбрал именно её для написания мультиплеерного мода, ибо адреса дампить не нужно ( за меня это сделали ) и она чисто технически устроена не сложно.
Но даже несмотря на это, мне иногда становится приятно покатать с друзьями по городу, используя свою модификацию и осознавать себя всемогущим =)
P.S После того как создал эту тему и увидел что она некоторым интересна, у меня появилось желание фиксануть баги, сделать пару апдейтов, улучшить синхронизацию, в общем довести мультиплеер до совершенства. Возможно, на зимних праздниках выложу обновленную версию.
 
  • Нравится
Реакции: TheBadZero

D3.Pheonix

🎹
Модератор
2,867
1,644
Ааа, ну это кому как)
Я лично не фанат НФС, но выбрал именно её для написания мультиплеерного мода, ибо адреса дампить не нужно ( за меня это сделали ) и она чисто технически устроена не сложно.
Но даже несмотря на это, мне иногда становится приятно покатать с друзьями по городу, используя свою модификацию и осознавать себя всемогущим =)
P.S После того как создал эту тему и увидел что она некоторым интересна, у меня появилось желание фиксануть баги, сделать пару апдейтов, улучшить синхронизацию, в общем довести мультиплеер до совершенства. Возможно, на зимних праздниках выложу обновленную версию.
Давай), но мне кажется что мультиплееры для старых игр как раз сейчас (+-) умерли(умирают), тем более, гонки(((. Мало очень людей играет. Вот на флетаут народ просто перестал играть, а потом и сервера закрыли
 

ImmortalDev

Участник
Автор темы
90
50
Давай), но мне кажется что мультиплееры для старых игр как раз сейчас (+-) умерли(умирают), тем более, гонки(((. Мало очень людей играет. Вот на флетаут народ просто перестал играть, а потом и сервера закрыли
Как-бы то грустно не было, но ты прав.
Правда, мультиплееры, особенно для гонок так еще и фанатские - будущего не имеют.
Взять тот же NFS WORLD, который закрыли.
Пусть сейчас он работает из говна и палок благодаря фанатам, но уже не то, нет такой популярности как раньше.
Небольшое обновление мультиплеера ( v0.1_a )!
1. Теперь в логи сервера записывается кто заходил на сервер, имя игрока, ID, и его IP-адрес.
46100

2. Немного видоизменено окно сервера и клиента, все стало более минималистичное.
46101

3. Теперь важная, но простая деталь - Больше нельзя заходить на сервера с разных версий клиента.
Работает это так:
Мы отправляем серверу запрос на подключение, тот в свою очередь отправляет нам ответку, которая содержит версию сервера. Далее мы сравниваем ее с версией клиента, и если они разные = клиент закрывает соединение, и мы уведомляем об несовместимости версий игрока.
46103


Вот ссылка на исходный код + Клиент и Сервер.
MW Network Updated R1
Напоминаю, про то что это нестабильное говно. Если вам удастся вообще это запустить и поиграть, то прошу сообщать о всех багах и ошибках сюда, либо мне в ЛС. Постараюсь фиксануть.
 
Последнее редактирование:
  • Нравится
Реакции: CleanLegend и TheBadZero