Cortex Command

Cortex Command

29 ratings
Бета LAN Мультиплеер (ccoss open source b33)
By Kostet960604
Мультиплеер, в Cortex Command, о да!
   
Award
Favorite
Favorited
Unfavorite
ПРЕДИСЛО́ВИЕ
Прежде чем читать моё руководство, ознакомьтесь с активным Discord сообществом, которое которое появилось предположительно 14 ноября 2020 года:
https://discord.gg/TSU6StNQUG
Они занимаются созданием собственного многопользовательского клиента Cortex Command, и для ознакомления они создали Steam руководство 29 ноября 2020 года. В нём вы скорей всего найдёте, всё что вам нужно:
https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=2302213847
Как установить бета-версию b33 с локальным мультиплеером?
В библиотеке Steam нажмите Свойства
Перейдите на вкладку БЕТА-ВЕРСИИ
Выберите ccoss - Open Source build
ВНИМАНИЕ! До этого лучше удалить папку с игрой, также я не знаю, как воркшоп влияет на бета-игру, так что вы можете временно отказаться от подписки на все моды.
Официальная инструкция по созданию сервера
ПРИМЕЧАНИЕ! Переведено переводчиком, перевод официальной инструкции может быть не точным, можете найти оригинал на моем английском варианте руководства Steam
https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=1986879190
или после установки бета сборки игры в папке с игрой:
Cortex Command Experimental Multiplayer Operations Guide.docx

Экспериментальная многопользовательская онлайн-игра Cortex
Руководство по эксплуатации

Как это работает?
Поскольку Cortex Command никогда не был предназначен для сетевой многопользовательской игры, текущая реализация довольно хакерская. Чтобы играть онлайн, вам нужно запустить выделенный сервер Cortex Command с собственным хостом. Сервер запускает симуляцию Cortex Command, принимает входные данные от клиентов и отправляет их. Входные кадры и события отправленных эффектов. Входные данные и кадры передаются со скоростью 30 кадров в секунду. Многопользовательская игра Cortex Command не предназначена для игры с незнакомыми людьми, считайте, что это диван в тысячу миль, на котором вы сидите с друзьями, потому что вам придется общаться. и договориться, чтобы начать матч, потому что только первый подключенный игрок управляет мышью в пользовательском интерфейсе лобби. Чтобы сбросить текущую активность, либо нажмите ESC на сервере, либо всем игрокам нужно нажать и удерживать BACKSPACE.

требования
Поскольку сервер передает визуальные данные клиентам со скоростью 30 кадров в секунду, для запуска сервера вам понадобится много пропускной способности и мощности ЦП. Для запуска самой игры вам потребуется 1 ядро ​​ЦП и около 0,75 ядер ЦП на каждого подключенного клиента. Если вы играете на ПК, где находится сервер, вам потребуется еще одно ядро ​​ЦП для запуска клиента. Требования к пропускной способности также довольно высоки. В зависимости от разрешения и количества действий на экранном сервере может использоваться до 10 Мбит пропускной способности на соединение или даже Более того, общие значения составляют около 6 Мбит в боевом тесте и 3-4 Мбит в не очень интенсивном бою.
Сервер должен быть доступен через сеть напрямую или через простую конфигурацию NAT, которая поддерживает функцию пробивки NAT, иначе внешние проигрыватели не смогут подключиться.

развертывание
Сам сервер является тем же двоичным файлом, что и игра - Cortex Command.exe. Чтобы запустить его в режиме сервера, в командной строке укажите аргумент программы -server <порт> или запустите включенный пакетный файл DedicatedServer.bat. Порт по умолчанию - 8000, он может быть использован для прямого подключения к локальной сети.
Для воспроизведения через Интернет без прямого подключения используется метод сквозного доступа NAT. Сервер и клиенты пытаются связаться с внешним сервером службы NAT, который в настоящее время находится по адресу 194.87.238.58:61111. Чтобы включить функцию сквозного доступа NAT на сервере, добавьте или измените следующие строки в Settings.ini:
UseNATService = 1
NATServiceAddress = 194.87.238.58:61111
NATServerName = <ServerName>
NATServerPassword = <ServerPassword>
Другим игрокам придется вводить тот же адрес службы, имя сервера и пароль сервера, как указано в файле Settings.ini, когда они подключаются к серверу через многопользовательскую игру. Если внешние игроки не могут подключиться через пробой NAT, посмотрите, в консоли с кнопкой ~ для любых подсказок. Если вы видите ID_NAT_PUNCHTHROUGH_FAILED в сообщениях об ошибках, то, к сожалению, ваш интернет-провайдер или ваш другой игрок не пропускают UDP-пакеты через NAT. В этом случае вы можете разместить выделенный сервер на каком-либо VPS-хостинге или подключиться через VPN напрямую или сервис Hamachi, а затем использовать механизм прямого подключения к локальной сети.
После запуска сервера взгляните на верхнюю часть экрана сервера, если вы видите сообщение NAT SERVICE CONNECTED вместе с вашим именем сервера и паролем, то вы в порядке, и клиенты могут подключиться.
Если вы решили разместить сервер на собственном или арендованном оборудовании или играть в локальной сети, вы можете попытаться подключиться к серверу напрямую, указав его IP-адрес и порт.

Ограничения (Альфа 10)
Клиент должен иметь как минимум все те же модули, что и сервер, иначе клиенту не хватит скайбоксов, свечения и звуков.
Выделенный IP-адрес или легкий NAT-провайдер требуется для подключения друг к другу.
Поддержка только в стычках, поддержка кампании не запланирована.
Fog of war вообще не тестировался, не включайте его, так как он может потреблять много трафика и работать некорректно.
События, потребляющие ландшафт, звуки и свечение, потребляют дополнительную пропускную способность.
Поддержка контроллера не была проверена.

Settings.ini
PlayerNetworkName = PlayerX // Имя игрока для отображения в лобби и в деятельности
NetworkServerName = 127.0.0.1:8000 // адрес сервера локальной сети для подключения
ServerUseHighCompression = 1 // Установите 1 для использования более высоких методов сжатия (по умолчанию)
ServerUseFastCompression = 0 // Установите 1, чтобы использовать более быстрые методы сжатия и экономить процессор
ServerHighCompressionLevel = 10 // Уровень сжатия, 10 является оптимальным, 12 является самым высоким
ServerFastAccelerationFactor = 1 // Коэффициент ускорения, более высокие значения потребляют больше пропускной способности, но меньше ЦП
ServerUseInterlacing = 0 // Использование чересстрочной развертки для значительного сокращения использования полосы пропускания за счет ухудшения качества изображения (неприменимо при 30 кадрах в секунду, но может подходить при скорости 60 кадров в секунду)
ServerEncodingFps = 30 // Скорость передачи кадров. Чем больше значение, тем больше потребление ресурсов процессора и полосы пропускания
ServerTransmitAsBoxes = 1 // Передача кадров в виде блоков вместо линий. Обеспечивает лучшее сжатие за счет более высокой загрузки ЦП.
ServerBoxWidth = 32 // Размер передаваемого блока ЦП. Дифференциальные значения могут улучшить использование полосы пропускания.
ServerBoxHeight = 44 // Несмотря на то, что сжатие достаточно высокое, рекомендуется, чтобы ширина * высота была меньше размера MTU, или около 1500 байт, или пакеты могли быть фрагментированы сетевым оборудованием или полностью отброшены.
ClientInputFps = 30 // Скорость отправки ввода
UseNATService = 1 // Настройки сервера для использования службы NAT для регистрации сервера
NATServiceAddress = 194.87.238.58:61111 // Адрес службы NAT, не изменяйте, если вы не размещаете свой собственный сервер пробивки через NAT.
NATServerName = WeegeeServer // Имя сервера, используемое при подключении через службу сквозного доступа NAT.
NATServerPassword = WeegeeServer // Пароль сервера для использования при подключении через службу сквозного доступа NAT.
GitHub
(Этот раздел также переведён переводчиком)
https://github.com/DataRealms/CCOSS

Cortex Command - открытый исходный код под GNU AGPL v3 (без данных игры)

Известные проблемы и ограничения
Протестировано для сборки только с Visual Studio 2017 для платформы Win32 с установленным набором инструментов Visual Studio 2013 (может потребоваться установить полную версию VS 2013).

Почти собирается с современными наборами инструментов в VS 2017 и VS 2019, но в Luabind есть некоторая несовместимость, которая не компилируется. Кроме этого должно быть хорошо.

Включенный исходный код не соответствует текущей функциональности B32. Это моментальный снимок того, что внутри называется «B33», поэтому он не будет начинаться с данных из B32.

Никаких игровых данных и большинства необходимых DLL-библиотек для выполнения не включено, вы должны получить их из бета-ветки Cortex Command в Steam.

Коммерческая библиотека fmod была заменена бесплатным SDL-микшером, в котором отсутствует функция качки, поэтому некоторые звуковые эффекты будут звучать по-разному или неправильно.

Все исходные и бинарные зависимости, необходимые для построения проекта, включены.

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

СТРОИТЕЛЬНЫЙ ПРОЦЕСС
Используйте Debug Open Source для отладки конфигурации (будьте готовы, это очень медленно).

Используйте Final Open Source для создания релиза .exe.

Двоичные файлы идут в _Bin, вы не можете запускать их из-за пределов IDE, они не найдут нужные вещи.

Вам нужно скопировать dll, относящиеся к SDL, из external \ lib \ win \ рядом с .exe, чтобы запустить его.

Данные можно найти в ветке «ccoss» Cortex Command в Steam, если у вас есть лицензия на игру.

КОНТАКТ
support@datarealms.com
Создать сервер
Учитывая мои знания в этой области, этот раздел временно пуст.
Всё, что я знаю, это то, что у b33 есть локальный мультиплеер (LAN), и есть шанс, что вы сможете запустить его через VPN, например, Hamachi.

UPD. Решил сделать краткий набросок предположительных действий на основе того, что прочитал.
1. Запуск сервера.
Откройте командную строку (без понятия, нужно ли через администратора)
Открывается комбинацией клавишей WIN+R, вписываем cmd, и гот-окно открыто.
(Если что, клавиша WIN это клавиша, между левым Ctrl и Alt, с эмблемой Microsoft)
Вписываем в мрак-окно -server <ваш порт>, предположительно 8000
или заместо всех этих открываний дарк-окон запускаем файл DedicatedServer.bat

2. Сквозной доступ NAT
---Насчёт NAT. Кажется я видел такой пункт в настройках модема, в разделе виртуальных серверов, в общем, я без понятия, что это за дичь, но настройка портов это всегда дичь конкретная.---
По описанию, он для игры через интернет без прямого подключения. И сервер, тобишь хост, и клиенты, которые долбятся к серверу, используют этот СКВОЗНОЙ доступ NATаши. То есть пытаются связаться с внешним сервером службы NAT. И он находиться по определённому адресу. А включается наша NATаша в файле Settings.ini
Открываем файл и меняем строки:

UseNATService = 1 (Предположительно цифра 1 включает использование NAT сервиса, а 0 наверное выключает)

NATServiceAddress = 194.87.238.58:61111 (NAT Сервис Адрес, хоть убейте, не знаю, имеет ли этот адрес отношение к внешнему или внутреннему IP или это отдельный адрес известный лишь немногим избранным) (Написано, что у всех игроков должно стоять одинаковое значение) (Предположительно туда можно впендюрить IP хоста Хамачи, если вы решитесь его использовать)

NATServerName = <ServerName> (Имя сервера)

NATServerPassword = <ServerPassword> (Пароль Сервера)

3. После всего этого, в вашем окне сервера должна в случае успеха появиться эта надпись. NAT SERVICE CONNECTED, а это значит, что можно заходить на сервер.

Не знаю, упростил ли я ваши мозговые процессы или усложнил, но оставлю, как есть.
Обновление 33, новость 11 июля 2019 года
(Переводчик, я выбираю тебя!).

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

Исправления:
Переделан экран загрузки, чтобы уменьшить время загрузки.
Добавлен параметр «DisableLoadingScreen» в файле settings.ini для полного отключения экрана загрузки для сокращения времени загрузки (спасибо Duh102, CrazyMLC, MaximDude).
Исправлены глобальные скрипты Непобедимые Крафты и Тяжёлые Крафты (спасибо 4zK).
Исправлена ​​ошибка, когда флэш-память AEmitter отображалась в неправильном положении, если излучатель не излучал.
Исправлена ​​ошибка в осаде, когда появлялись неправильные юниты.
Исправлен сбой при вызове TimerMan.TicksPerSecond в скрипте Lua.
Исправлена ​​ситуация, когда перевёрнутые поделки сбрасывали юниты в неверном направлении.

Добавлены ярлыки и привязки:
Добавлен связывающий пользовательский интерфейс для выбора оружия, броска, следующего, предваряющего и перезагрузки для схем управления «только клавиатура» и «клавиатура».
Вы можете нажать CTRL + ~ (ConsoleMan.ForceVisibility = true), чтобы переключить консоль, которая не захватывает ввод.

F1 - Справка по быстрым клавишам
F2 - Перезагрузка всех сценариев
F3 - Дамп консольного текста в файл
F4 - Дамп консольной информации в файл
F5 - Очистить консольный журнал

Новые глобальные скрипты:
Добавлены глобальные скрипты Низкой Гравитации и Быстрой Ходьбы.
Добавлен глобальный скрипт для больших кораблей.
Добавлены глобальные скрипты для отключения ограничений меню покупки.
Добавлены глобальные скрипты Лучшие реактивные ранцы, постоянный доход от золота и все юниты - мозги

Новые коллекции:
MOSRotating.Emitters
MOSRotating.Attachables
Scene.Deployments
Emitter.EmissionList
PresetMan.Modules
DataModule.Presets
Примечание
После новости 11 июля 2019 в новостях Cortex Command есть только обновления от другой игры, которые могут вводить в заблуждение.
Parsec - аналог Remote Play
[На английском обсуждали, как Cortex Command нормально работал через Parsec, возможно будет работать и у нас].

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

Регистрация и скачивание клиента Parsec:
https://parsecgaming.com/

Discord - Parsec
https://discord.com/invite/cQjEGFy
ПРИМЕЧАНИЕ
Для максимального удобства играйте через контроллеры, другими словами - на джойстиках.
Лучше всего настраиваются джойстики от xbox, но можно попробовать использовать и другие.
21 Comments
Ebobola 10 Jun @ 6:25am 
Пипец куда я залез. Здарова олдам, есть вопрос по cortex command community project скачал с дискорда версию - (6.6.2) начали с другом разбератся как играть по сети, включили Radmin VPN. Я скопировал его IP ввёл в игре не получилось, поменялись местами я захостил он подключался, теперь сработало, но возникли другие проблемы, у того кто подключается разрывает картинку, на экране остётся остаточные изображение. Есть ли решение этой проблемы? Немного помогло включение "ServerUseInterlacing " но картинка стала как голограма
Daymon 21 Apr, 2024 @ 9:08am 
Имба
»»»Timeshift»»» 13 Dec, 2021 @ 10:32am 
Лады, на досуге тебе маякну.
Kostet960604  [author] 13 Dec, 2021 @ 9:04am 
Если будет время, зовите. Тоже не прочь опробовать, хоть далеко не идеальный, но всё же рабочий проект.
»»»Timeshift»»» 13 Dec, 2021 @ 8:40am 
Круто, за эти 2 года я так и не поиграл ни с кем через эмулятор локальной сети.
Kostet960604  [author] 13 Dec, 2021 @ 6:44am 
ДОБАВЛЕН РАЗДЕЛ: ПРЕДИСЛО́ВИЕ

Прежде чем кидать тапки в мою сторону, пожалуйста, ознакомьтесь с этим разделом.
Kostet960604  [author] 11 May, 2021 @ 6:19am 
Наверное...Если честно я уже окончательно позабыл всё то, что связано с этой игрой...
Разрабы что то намутили, а дальше всё зависит лишь от ваших мозгов. Я не разбирался.
K.V. 9 May, 2021 @ 12:16pm 
Я правильно понимаю, это способ для полноценного мультика?
»»»Timeshift»»» 24 Nov, 2020 @ 8:12am 
Найти игроков для игры по сети, здесь - https://discord.gg/5qyw2cPJzx
Kostet960604  [author] 2 Nov, 2020 @ 3:43pm 
Добавлен раздел - альтернатива Remote Play Together