Как создать локальный сервер для игры

Как создать локальный сервер для игры

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

Настройка сервера при нахождении с другим игроком в одной сети Wi-Fi или Lan

Если несколько компьютеров находится не далеко друг от друга и находится в одной сети: Wi-Fi или Lan (по кабелю подключены), то вам подойдет данная настройка.

Windows: На компьютере, где будет открыт сервер, открываем Пуск и вписываем в поиск cmd, открываем данную программу:

В открывшемся окне вписываем ipconfig, нажимаем enter. Ищем ваш локальный IP, который начинается с 192.168.*.*, в примере он 192.168.1.47 (у вас будет другой!), копируем его.

MacOS: Для нахождения локального IP открываем Терминал (Terminal), вписать можно в поиск по Mac данную программу и найти её, в окне вписываем ifconfig |grep inet и ищем IP который начинается с 192.168.*.*, копируем его.

Теперь открываем TLauncher и выбираем версию с иконкой TL и запускаем игру (Под аккаунтом TLauncher.org тоже лучше авторизоваться). Если выбрать без иконки TL, то не сможете подключится к серверу без лицензии Mojang.

Заходим в свой мир и в меню Паузы (Esc) кликаем Open to Lan (Открыть для сети), в чате появится сообщение об успешном открытии сервера, а так же порт сервера, в примере это 31790 (у вас будет другой).

Теперь на другом компьютере, который должен подключится к вашему серверу, необходимо так же открыть версию с иконкой TL (плюс, версия игры должна быть одинаковая с первым компьютером), переходим в Multiplayer (Сетевая игра), открываем Direct connect (Прямое подключение).

Теперь вводим в поле IP адрес + порт, которые мы получили ранее, в примере это 192.168.1.47:31790. Если всё ок, то произойдёт подключение к серверу! Вы сможете теперь играть на сервере с другом.

Настройка сервера при игре по интернет с другим игроком с помощью Hamachi

Если физически вы не можете находится с другим игроком в одной сети, компьютеры находятся далеко друг от друга, то можно создать специальную сеть используя интернет с помощью Hamachi.

На обоих компьютерах делаем следующие действия: Создаём аккаунт Hamachi и скачиваем их программу (после перехода по ссылке, кнопка Download по центру).

Устанавливаем программу и авторизуемся под созданными данными. Теперь, на одном из компьютеров в Hamachi кликаем на "Создать новую сеть", вводим ЛЮБОЕ название сети и любой пароль. Появится в окне новая сеть.

Теперь открываем TLauncher и выбираем версию с иконкой TL и запускаем игру (Под аккаунтом TLauncher.org тоже лучше авторизоваться). Если выбрать без иконки TL, то не сможете подключится к серверу без лицензии Mojang.

Заходим в свой мир и в меню Паузы (Esc) кликаем Open to Lan (Открыть для сети), в чате появится сообщение об успешном открытии сервера, а так же порт сервера, в примере это 60000 (у вас будет другой).

На другом компьютере жмём "Подключиться к существующей сети", вводим название сети и пароль, созданные ранее. При успешном подключении, в окне Хамачи будет виден компьютер вашего друга.

Потом необходимо так же открыть версию с иконкой TL (плюс, версия игры должна быть одинаковая с первым компьютером), переходим в Multiplayer (Сетевая игра), открываем Direct connect (Прямое подключение).

Теперь вводим в поле IP адрес из Hamachi (компьютера, где открыт сервер) + порт, которые мы получили ранее, в примере это 25.1.80.229:60000. Если всё ок, то произойдёт подключение к серверу! Вы сможете теперь играть на сервере с другом.

Настройка локального сервера Майнкрафт с модами

После того, как вы настроили сервер для игры в одной сети WiFi (Lan) или же с помощью Hamachi, вы сможете установить моды и играть с ними с друзьями. Инструкция очень простая.

Устанавливаем на все клиенты абсолютно такие же моды, чтобы всё было идентично, плюс сама версия Forge должна быть одинаковая, к примеру, ForgeOptiFine 1.12.2. Незабываем, что версия должна быть с иконкой TL!

Теперь создаём и подключаемся к серверу абсолютно по тем же инструкциями выше, в зависимости от вашей сети. Готово, можете играть с модами в Minecraft!

Возможные проблемы и их решения

При подключении к серверу появляется: "Недопустимая сессия" или "Проверьте имя пользователя".

Решение: Необходимо запускать версию с иконкой TL (иначе нужна лицензия игры), если такую и запускаете, проверьте, стоит ли галочка (в лаунчере) в "Управление аккаунтами" -> "Использовать скины TLauncher".

Читайте также:  Как определить прямоугольный треугольник по сторонам

При подключении к серверу появляется: "Io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection time out: no further information"

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

При подключении к серверу идет прогрузка чанков и сразу выкидывает с сервера (разрыв соединения).

Решение: настройка сети выполнена верно, но антивирус и брандмауэр разрывает соединение. Отключите их или настройте правильно.

При подключении к серверу появляется: 1.14.2: Bad packet ID 26; 1.13.2: Bad packet ID 27; 1.7.10: Застряло на Logging in. или "received string length longer than maximum allowed"

Решение: длина вашего ника больше 16 символов, сделайте меньше.

Обсудить эту тему можно в комментариях ниже:

Нажмите на значке «подключения по локальной сети» правой клавишей мыши. Появится меню.
Выберите пункт «свойства» . Появится окно с настройками.
Выберите компонент «Протокол интернета TCPIP» и нажмите на кнопку «свойства» .
Поставьте галочку на «Использовать следующий адрес» .
Наберите IP-адрес (192.168.0.100). Маска подсети установится автоматически и будет иметь следующий вид: (255.255.255.0).
Нажмите на кнопку «ОК» .
Нажмите еще раз «ОК» .
Вам осталось только ввести компьютер в одноранговую сеть. Перейдите к настройкам. Пуск — Настройка — Панель управления – Система — Вкладка «Имя компьютера» — кнопка «изменить» .

Введите имя компьютера (обязательно латинскими буквами, можно использовать только буквы и цифры) .
Установите галочку «является членом рабочей группы» .
Придумайте название для рабочей группы и введите его на латинице в поле названия рабочей группы.
Нажмите на кнопку «ОК» .
Нажмите еще раз «ОК» . Система вам предложит перезагрузиться, для того, чтобы изменения вступили в силу. Согласитесь и выполните перезагрузку.

Поздравляем, вы ввели первый компьютер в рабочую группу. Чтобы создать локальную сеть, аналогичные операции проведите для остальных компьютеров, при этом выбирайте для каждого из них уникальное имя, отличный от других IP-адрес (т. е. 192.168.0.100 – 192.168.0…).

Важно: В настройках каждого компьютера локальной сети нужно указывать одинаковое название рабочей группы.

k0ttee » 17 янв 2016, 23:18

Сервер — удовольствие платное, мощный сервер — удовольствие дорогое.
Даже поставив его дома (на кухне из старого компа), придется доплачивать провайдеру за открытие нужных портов.

А если 13-летняя личность, сидя за мамкиным ноутбуком, думает как сделать свой сервер для игр бесплатно? Что если пукан бомбит, а денег нет?
Чем бы дитё не тешилось, лишь бы бесплатно! Поэтому будем тушить пылающие пердаки с помощью Ngrok.

Ngrok — средство проброса портов через NAT (или другие страшные слова), с которым справится даже бомбящий 13-летний пукан.
Стена с дыркой это завуалированное воспламенение пукана, что за открытие портов можно не платить бабло провайдеру.

Изделие существует для многих платформ:
1.) OS X (кошерно)
2.) Windows (не кошерно)
3.) Linux (x86 x64 бубунту. все сложно)
4.) Linux ARM (а значит можно засадить чуть ли не в прошивку роутера или старого смартфона)
5.) FreeBSD (ну как же мы без фряхи)

Пользоваться довольно просто. если гонять терминальные команды для вас просто.
А если сложно, тогда вот инструкция.

1.) Скачиваем ZIP-архив и распаковываем.

Если запустить с ключом -subdomain
Код: Выделить всё -subdomain k0ttee http 80
Получим свой поддомен, более удобно-читаемый: k0ttee.ngrok.com
Только для этой функции придется зарегистрироваться и получить уникальный токен.

Куда проводится? На локалку! На 127.0.0.1 в вашем компе.

Через 3G телефон смог зайти на сайт (сайт сидит в ноуте подключенном к интернету через Wi-Fi). Думаю после такой проверки сомнений остаться не должно.

Ежели дописать еще немного адресации, можно направить на другой комп в домашней локалке.
Помощь по командам выводится если запустить с ключом -help
Код: Выделить всё -help

Ваш пукан уже горит запилить сервер и выпендриваться перед остальными посанами на районе, но остался вопрос: "А в чем отстой?"
Все просто — дополнительная прослойка увеличивает пинг и соединение может не вытягивать требовательные игрушки. Для веб-сервера под говносайты пинг достойный.

А шо главное — бесплатно. 111

Теперь, если сервер игры уже готов, даже 13-летняя личность сможет заявить: "Го ко мне, моя попа в огне , я создал!"

Tehnik » 18 янв 2016, 09:35

k0ttee » 18 янв 2016, 09:52

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

Читайте также:  Как переустановить просмотр фотографий windows 7

Короче возможностей целый вагон, но 99.9% пуканов воспламеняются именно от игр. вот в эту сторону и пришлось сделать уклон. Фан в инструменте и угаре от написания шапки.

SilverSurfer » 12 янв 2017, 22:22

k0ttee » 13 янв 2017, 11:56

SilverSurfer » 13 янв 2017, 16:18

k0ttee » 13 янв 2017, 16:23

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

Если игра представляет собой сайт, на который заходят с браузеров — сойдет любой denwer на localhost.

SilverSurfer » 13 янв 2017, 16:27

Нет, игра представляет собой браузерный клиент (на JavaScript HTML5 Canvas), который обменивается данными с сервером игры (который всё обсчитывает)
Игрок открывает клиент (не с моего домашнего компа), а дальше этот клиент должен обмениваться данными с сервером (программой) который стоит на моём домашнем компе

Добавлено спустя 6 часов 28 минут 54 секунды:
Кароче (умудрился уже опытом) отвечаю сам же на свой же вопрос:
Для тех у кого бомбит писать свою собственную онлайн-игру, а (нихрена) навыков в веб-программировании нету, а 3 дня кряду самостоятельно рыть инет (как сейчас делал я) не хоца, то:
1. Качается эта прога: Node ("recommended" версия там). Инсталится на свой домашний комп. Это сразу (2-в-1 одном флаконе) — и прога- сервер-игры (кодинг программного кода сервера игры , проводится на языке JavaScript — после чего, сохраняется в файл sr.js — после чего, подсовывается в командной строке на вход этой проге при её запуске) — и она же также и веб-сервер сама (на этот веб-сервер — на неё — потом можно будет заходить из инета браузером)
2. Курс молодого бойца по этой проге:
3. На компе создаётся папочка, в которой будет писаться игра. (и сервер-игры и клиент-игры)
4. В эту папочку, кладётся тот файл sr.js (в котором будет писаться код сервера игры — писаться например открыв этот файл, блокнотом)
5. Внутри этой папочки, создаётся подпапочка "public" — в ней будет лежать клиент игры : 2 файла — index.html (веб-страница которая даётся в браузер подключившемуся клиенту), и cl.js (программный код клиента игры — тобиш, программный код самой этой вебстраницы, который исполняет браузер клиента на стороне компа клиента — код этот программный, он писаемый тоже на языке JavaScript, тоже открывая этот файл например ноутпадом)
6. Если 2-5 это показалось слишком сложно на восприятие — качается например этот готовый работающий пример
7. Кодим клиент-серверный обмен (игра в пинг-понг сообщениями туда-сюда), с помощью веб-сокетов (вебсокетов, websockets). Именно вебсокетов, а не чего-то ещё.
8. Как кодить 7 — видно в том готовом работающем примере из 6.
9. Запуск в небо:
10. Открывается командная консоль (cmd).
11. В ней идётся (с помощью команд cd) внутрь той папочки где лежит файл sr.js ( файл программы сервера игры )
12. После того как пришли в ту папочку , набираем команду: node sr.js. И жмём Enter.
13. Ура, сервер игры (он же, и веб-сервер по совместительству) — запущен, работает.
14. Открываем на своём компе браузер, и в адресную строку вводим там: localhost:3000
(вместо "3000" — номер порта который прописан в файле sr.js — проге-сервере-игры)
15. Если всё сделано верно, наслаждаемся как в браузере появилось сообщение от сервера игры.
16. А если в sr.js уже прописана и выдача клиенту клиентской веб-страницы (которая лежит в той папке "public") — то наслаждаемся тем как на эту веб-страницу зашлось в браузере.
17. Гордо показаться нашему новоиспечённому серваку игры (вебсерверу) на просторах инета, поможет прога ngrok.
18. Друк открывает у себя дома браузер, заходит им на адрес вашего компа (который написано в ngrok) указав после этого адреса через двоеточие (":") ту цифирь "3000" (или какой порт прописан в sr.js, и есно цифирь в адресной строке браузера дописывается без кавычек) — и — о чудо! — он зашёл браузером этим своим на вебстраницу клиента вашей игры.
19. Всё программирование — и клиента игры, и сервера игры — производится исключительно на языке JavaScript (не перегружая тыкву сто500 разными языками программирования)
20. Онлайново проверить свой JavaScript-код на синтаксическую корректность: здесь (копипастить туда из ноутпада — если надпись там внизу не стала зелёненькой, а красненькая, значит ищи ошибку, по подсказкам там справа — скобочка, точка с запятой, и т.п. упущения — без исправления всех упущений, данный код просто не заработает)
(можно также кодить в среде разработки вроде Eclipse Jee Neon, но не рекомендуется до достижения "высот" перегружать ею свою тыкву)

Читайте также:  Где хранятся контакты в iphone

21. P.S. (для адванседов, уже): если при кодинге потребуется установка доп.библиотек которые есть у node, делается это "кошерным" заходом в папку игры (консолью cmd, пп.10-11), и выполнением там следующей команды: npm install —save
(без угловых скобок, и с обязательной припиской —save, ну и не забыть написав команду нажать Enter))

P.P.S. Сам рыл всё это, дня 3
P.P.P.S. Для более серьёзных разработок, конечно же мировая индустрия юзает все эти апачи, денверы, пхп, си++, и т.п..

SilverSurfer » 22 янв 2017, 00:36

Еще более умудрившись опытом, выкладываю полностью рабочий пример:
Писан на чистых вебсокетах (БЕЗ использования технологии socket.io)

1. Качается эта прога: Node ("recommended" версия там). Инсталится на свой домашний комп. Это сразу (2-в-1 одном флаконе) — и прога-сервер-игры (кодинг программного кода сервера игры, проводится на языке JavaScript — после чего, сохраняется в файл sr.js — после чего, подсовывается в командной строке на вход этой проге при её запуске) — и она же также и веб-сервер сама (на этот веб-сервер — на неё — потом можно будет заходить из инета браузером)
2. Курс молодого бойца по этой проге:
3. На компе создаётся папочка, в которой будет писаться игра (и сервер-игры и клиент-игры). У меня, эта папочка — "C:. . . proj"
4. В эту папочку, кладётся тот файл sr.js (в котором будет писаться код сервера игры — писаться например открыв этот файл, блокнотом)
5. Внутри этой папочки, создаётся подпапочка "public" — в ней будет лежать клиент игры: 2 файла — index.html (веб-страница которая даётся в браузер подключившемуся клиенту), и cl.js (программный код клиента игры — тобиш, программный код самой этой вебстраницы, который исполняет браузер клиента на стороне компа клиента — код этот программный, он писаемый тоже на языке JavaScript, тоже открывая этот файл например ноутпадом)
7. Кодим клиент-серверный обмен (игра в пинг-понг сообщениями туда-сюда), с помощью чистых веб-сокетов (НЕ socket.io, НЕ TCP-сокеты, и т.п.):

projsr.js (программа сервер игры):

Обычный веб-сервер (статика) на порту 8080 (выдаёт веб-страницу клиентскому браузеру)

Код: Выделить всё var http = require(‘http’);
var static = require(‘node-static’);

// Create a node-static server instance to serve the ‘./public’ folder
// Создаём веб-сервер (который берёт данные клиентской веб-страницы из подпапки "public" и выдаёт эту веб-страницу клиентскому браузеру)

var file = new static.Server(‘./public’, < cache: 0 >); // в настройке "cache", отключили кэширование веб-страниц выдаваемых веб-сервером клиентскому браузеру

http.createServer(function (request, response)
<

request.addListener(‘end’, function ()
<
file.serve(request, response); // Serve files! — обслуживаем запросы клиентского браузера ("request") давая на них ответ ("response")
>).resume(); // добавили листенер клиентских запросов — функцию

>).listen(8080); // веб-сервер "слушает" (листенит) на порту 8080

Сервер чистых веб-сокетов на порту 8081 (чистые вебсокеты — это штатные вебсокеты, без использования библиотек socket.io)

Код: Выделить всё var WebSocketServer = new require(‘ws’);
var webSocketServer = new WebSocketServer.Server(); // вебсокет-сервер "слушает" (листенит) на порту 8081

var clients = <>; // массив — подключенные к вебсокет-серверу клиенты

webSocketServer.on(‘connection’, function(ws) // задаём функцию обрабатывающую событие подключения вебсокет-клиента
<
var // рандомом сгенерировали "idшник нового клиента"
clients[id] = ws; // "положили" данные вебсокет-подключения нового клиента, в массив клиентов по индексу id
console.log("У нас новое вебсокет-соединение: " + ws + "; клиенту назначен id: " + id); // отписались в серверной консоли

clients[id].send("Вебсокет-сервер сообщает вам ваш id клиента: " + id); // отсылаем нашему новому клиенту, сообщение

// обработчик события поступления сообщения от клиента — задаём функцию, обрабатывающую это событие
ws.on(‘message’, function(message)
<
for (var key in clients) // перебираем наш массив клиентов
<
if (clients[key] == ws) // если это — наш текущий клиент
<
console.log(‘От клиента (‘ + key + ‘) получено сообщение: ‘ + message); // отписались в серверной консоли
clients[key].send(‘Вебсокет-сервер отвечает на ваше сообщение, клиент (‘ + key + ‘): от вас получено сообщение следующего содержания: ‘ + message); // высылаем сообщение-ответ этому клиенту
>
>
>);

// обработчик события когда клиент отключился — задаём функцию, обрабатывающую это событие
ws.on(‘close’, function()
<
console.log(‘Закрыто соединение клиента (‘ + id + ‘)’); // отписались в серверной консоли
delete clients[id]; // удаляем отключенного клиента, из массива клиентов
>);

>); // конец функции обрабатывающей событие подключения вебсокет-клиента

Дальнейший серверный код

Код: Выделить всё console.log("Сервер запущен на портах 8080 (static через node), 8081 (pure web-sockets)");

projpublicindex.html (клиентская веб-страница, которую статик веб-сервер выдаёт клиентскому браузеру):

Your browser must support HTML5 to run this game

Ссылка на основную публикацию
Как создать красную строку в ворде
Вопрос о том, как сделать в Word красную строку или, проще говоря, абзац, интересует многих, особенно малоопытных пользователей данного программного...
Как сделать цвет в автокаде
У многих возникает вопрос, «Как в Автокаде сделать белый фон?». На самом деле все очень просто. При начальных настройках пространство...
Как сделать цитату в html
Цитата — дословная выдержка (отрывок) из какого-либо текста с указанием авторства или источника. Цитаты обычно используются на сайтах, где периодически...
Как создать личный кабинет в мтс регистрация
Личный кабинет – это персональный раздел абонента на официальном сайте МТС, предназначенный для управления своим номером телефона и лицевым счетом....
Adblock detector