Cortex command мод на мультиплеер
So you want to play multiplayer I see, well it’s been right under your noses for a year and a half.
It’s easier than you think
Step 1: Make sure you have Cortex Command in Your Steam Library.
After that, click on it in your library, and click on the gear on the right side of your screen. A drop down should appear on your screen, choose Properties
Step 2: Get the Beta!
If you don’t know how to do that, go to the BETAS tab, click on the dropdown and choose «Open Source Build»
Step 1: Setup
You need to make a way for people to connect to your computer.
There are a plethora of ways do do this.
You could.
— Port Forward Port 8000 on your router.
— Use a VPN service like Hamatchi.
— Have an lan party at one of your homes.
The method matters not, all that matters is that at the end of the day, whoever is hosting can be pinged
(How to Ping: Open Command Prompt and type
)
Step 2: Starting the Server
The host now needs to go into their Cortex Command game folder and start DedicatedServer.bat.
Before doing this, it would also be a good idea to set Cortex Command to a Windowed Resolution in the game settings before doing this to avoid errors.
Step 3: Join the Server
Now all you need to do is join the host in the multiplayer menu.
Just change your name from Dummy and change the IP to the host’s. (If you are host, you can just put in 127.0.0.1)
You do not need to worry about the NAT settings, those are for advanced users and shouldn’t be touched.
And now, if every thing has gone to plan, you should be in a Menu where the first person to join the server can choose a game mode and teams.
The Cortex Command Community Project, usually referred to as the CCCP, is a community-driven effort to continue the development of Cortex Command.
In case you haven’t heard, Cortex Command went open source back in 2019.
Because of that, the game is now is being updated and improved in many different ways, with a brand new big release (Pre-3) coming some time soon.
or if you’d like to chat about Cortex Command, Modding, or just general things with Cortex Command Fans and Devs, join the Discord!
https://discord.gg/yuZvazK
Hope to See You There!
Frequent «Dropship» Flyer,
Josh
Cortex command мод на мультиплеер
Cortex Command Experimental Online Multiplayer
Operations guide
How does it work?
Because Cortex Command was never designed for networking multiplayer current implementation is quite hacky. In order to play online you’ll need to run a self-hosted dedicated Cortex Command server. The server runs Cortex Command simulation, accepts input from the clients and sends them rendered frames, sound events and post effects events. Input and frames are sent at 30 fps. Cortex Command multiplayer is not designed to play with strangers, consider it a thousand miles couch you sit on with your friends, because you’ll have to communicate and negotiate in order to start a match because only the first connected player controls the mouse in lobby UI. To reset current activity either press ESC on the server, or all players need to press and hold BACKSPACE.
Requirements
Because server streams visual data to clients at 30 fps you’ll need lots of bandwidth and CPU power to run the server. You need 1 CPU core to run the game itself plus about 0.75 CPU cores per every client connected. If you’re playing on the PC where the server is, you’ll need 1 more CPU core to run client. Bandwidth requirements are also quite heavy. Depending on resolution and amount of action on the screen server may use up to 10 mbits of bandwidth per connection or even more. Common values though are about 6 mbits in combat benchmark and 3-4 mbits in not so very intensive battle.
The server must be accessible over the network directly or through simple NAT configuration which support NAT punch-trough or external players will be unable to connect.
via command line or start the included DedicatedServer.bat batch file. Default port is 8000, it can be used for direct LAN connections.
To play over the internet without direct connection NAT punch-through technique is used. Server and clients try to contact an external NAT-service server currently located at 194.87.238.58:61111. To enable NAT punch-trough on the server add or edit the following lines in Settings.ini:
UseNATService = 1
NATServiceAddress = 194.87.238.58:61111
NATServerName =
NATServerPassword =
Other players will have to input the same Service Address, Server Name and Server Password as specified in your Settings.ini when they connect to the server via Multiplayer Game activity. If external players are unable to connect via NAT punch-through, take a look at the console with
button for any clues. If you see ID_NAT_PUNCHTHROUGH_FAILED in error messages then unfortunately your or other player’s ISP don’t let UDP packets through it’s NAT. In this case you can host dedicated server on some VPS hosting or connect via VPN directly or Hamachi service and then use direct LAN connection mechanism.
After the server starts take a look at the top of the server screen, if you see NAT SERVICE CONNECTED message along with your server name and password, then you’re good and clients can connect.
If you decide to host server on your own or rented hardware, or play on LAN you can try to connect to server directly, by providing it’s IP address and port.
Limitations (Alpha 10)
Client should have at least all the same modules as server, or client will lack skyboxes, glows and sounds.
Dedicated IP or lightweight NAT ISP required to connect to each other.
Only skirmish activities support, no campaign support planned.
Fog of war was not tested at all, don’t enable it as it may consume lots of bandwidth and render incorrectly.
Events consuming terrain, sounds, and glows will consume additional bandwidth.
Controller support was not tested.
Known problems and limitations
Tested to build only with Visual Studio 2017 for Win32 platform with Visual Studio 2013 toolset installed (You may need to install full VS 2013).
Almost builds with modern toolchains in VS 2017 and VS 2019, but there’s some incompatibility in Luabind which fails to compile. Other than that should be fine.
Included source code does not match the current B32 functionality. This is a work-in-progress snapshot of what’s internally called «B33», so it won’t start with data from B32.
No game data and most of required runtime DLLs are included, you should get those from the Cortex Command beta branch on Steam.
Commercial fmod library was replaced with free SDL Mixer which lacks pitching functionality hence some sound effects will sound differently or incorrectly.
All source and binary dependencies required to build the project are included.
This version uses a slightly modified version of Allegro. The only difference from the original is a custom window borderless mode implemented to fix fullscreen issues. If you’re gonna rebuild Allegro you’l probably need to disable custom calls in FrameMan.
BUILD PROCESS
Use Debug Open Source configuration to debug (be prepared, it’s very slow).
Binaries go to _Bin, you can’t run from there outside of the IDE, it won’t find required stuff.
The data can be found under the «ccoss» beta branch of Cortex Command on Steam, if you own a license for the game.
Cortex command мод на мультиплеер
Thanks to Zalo for creating this great mod and for allowing me to modify it.
I am not able to upload the mod to the Steam Workshop, so you must download the latest version of this mod (posted by me, Unit158) http://forums.datarealms.com/viewtopic.php?f=24&t=19719&start=390.
You install it like a regular RTE mod, which will not be covered in this guide.
Processing is required for the server. You may download it at http://processing.org/download/
A server must be set up, which requires port forwarding 8998 and configuring your firewall as necessary.
For the client, there is a file in the RTE called Online 2.lua. Line seven must be changed from the default 127.0.0.1 to the ip address of the host. Once this has been done, you may start Cortex Command and run the Online Scenario.
NOTE: this mod is very likely to crash the game while playing it. The developers have not yet been willing to help me debug it.
Troubleshooting:
If the scenario crashes, make sure that the socket is open on the server (stop and start the server again), that the host has port forwarded correctly and that the client has the correct IP address.
This mod will only run on windows. If you would like to run it on Mac, you must obtain the correct luasocket version.
Cortex command мод на мультиплеер
ПРИМЕЧАНИЕ! Переведено переводчиком, перевод официальной инструкции может быть не точным, можете найти оригинал на моем английском варианте руководства Steam
https://steamcommunity.com/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, иначе внешние проигрыватели не смогут подключиться.
для любых подсказок. Если вы видите 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.
Известные проблемы и ограничения
Протестировано для сборки только с 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 для отладки конфигурации (будьте готовы, это очень медленно).
Двоичные файлы идут в _Bin, вы не можете запускать их из-за пределов IDE, они не найдут нужные вещи.
Данные можно найти в ветке «ccoss» Cortex Command в Steam, если у вас есть лицензия на игру.
Учитывая мои знания в этой области, этот раздел временно пуст.
Всё, что я знаю, это то, что у b33 есть локальный мультиплеер (LAN), и есть шанс, что вы сможете запустить его через VPN, например, Hamachi.
2. Сквозной доступ NAT
—Насчёт NAT. Кажется я видел такой пункт в настройках модема, в разделе виртуальных серверов, в общем, я без понятия, что это за дичь, но настройка портов это всегда дичь конкретная.—
По описанию, он для игры через интернет без прямого подключения. И сервер, тобишь хост, и клиенты, которые долбятся к серверу, используют этот СКВОЗНОЙ доступ NATаши. То есть пытаются связаться с внешним сервером службы NAT. И он находиться по определённому адресу. А включается наша NATаша в файле Settings.ini
Открываем файл и меняем строки:
UseNATService = 1 (Предположительно цифра 1 включает использование NAT сервиса, а 0 наверное выключает)
NATServiceAddress = 194.87.238.58:61111 (NAT Сервис Адрес, хоть убейте, не знаю, имеет ли этот адрес отношение к внешнему или внутреннему IP или это отдельный адрес известный лишь немногим избранным) (Написано, что у всех игроков должно стоять одинаковое значение) (Предположительно туда можно впендюрить IP хоста Хамачи, если вы решитесь его использовать)
NATServerName = (Имя сервера)
NATServerPassword = (Пароль Сервера)
3. После всего этого, в вашем окне сервера должна в случае успеха появиться эта надпись. NAT SERVICE CONNECTED, а это значит, что можно заходить на сервер.
Не знаю, упростил ли я ваши мозговые процессы или усложнил, но оставлю, как есть.
(Переводчик, я выбираю тебя!).
Основные особенности:
LAN Мультиплеер
Введены ограничения по массе и количеству пассажиров для ремесленных
изделий
Динамические круговые меню
Динамические меню покупок
Исправления:
Переделан экран загрузки, чтобы уменьшить время загрузки.
Добавлен параметр «DisableLoadingScreen» в файле settings.ini для полного отключения экрана загрузки для сокращения времени загрузки (спасибо Duh102, CrazyMLC, MaximDude).
Исправлены глобальные скрипты Непобедимые Крафты и Тяжёлые Крафты (спасибо 4zK).
Исправлена ошибка, когда флэш-память AEmitter отображалась в неправильном положении, если излучатель не излучал.
Исправлена ошибка в осаде, когда появлялись неправильные юниты.
Исправлен сбой при вызове TimerMan.TicksPerSecond в скрипте Lua.
Исправлена ситуация, когда перевёрнутые поделки сбрасывали юниты в неверном направлении.
(ConsoleMan.ForceVisibility = true), чтобы переключить консоль, которая не захватывает ввод.














