Skip to content

Гайд по созданию сервера RPCN на Windows для игры по сети в эмуляторе RPCS3

Notifications You must be signed in to change notification settings

GOsh4ck/RPCN-custom-server-creation-guide-RU

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 

Repository files navigation

🎮 Гайд по созданию кастомного сервера RPCN на Windows

0. Предисловие

RPCN отлично подходит для игр, в которых соединение происходит напрямую между игроками, например, файтинги или коопы. Но также есть игры, которые требуют ещё и выделенных серверов. Ознакомтесь сначала со списком совместимости.

1. Подготовка программного обеспечения

⚠️ Пути установки не меняем, это облегчит жизнь в дальнейшем.


  • 1.2 Visual Studio 2022 (Сама программа не нужна, нужны её библиотеки). Нажимаем Win+R, затем пишем cmd и жмём Ctrl + Shift + Enter (чтобы терминал запустился от имени администратора). В терминале пишем команду:
winget install Microsoft.VisualStudio.2022.Community --override "--add Microsoft.VisualStudio.Workload.NativeDesktop --includeRecommended --passive"

После этого надо согласиться с условиями пользователя, для этого пишем Y жмём Enter. Далее скачивание и установка произойдут автоматически.


  • 1.3 Rust Ссылка для скачивания
    После запуска установщика, будет предложено три параметра. Нам нужен первый, так что просто жмём Enter.

    image

  • 1.4 SQLite Ссылка для скачивания. В названии нужного архива должно быть sqlite-tools-win-x64.

    image

    Установка не требуется, нужно распаковать файлы из архива в удобную папку, но лучше всего распаковать в C:\SQLite.




image

Просто устанавливаем, ничего не меняя.


  • 1.8 NASM Ссылка для скачивания. Запускаем установщик от имени администратора. Выбираем «Install for everyone using this computer».
image

Затем оставляем все пункты отмеченными и устанавливаем.

image
  • 1.9 Protoc Нажимаем Win+R, затем пишем cmd и жмём Ctrl + Shift + Enter (чтобы терминал запустился от имени администратора). В терминале пишем команду:
    winget install --id Google.Protobuf -e --source winget
    Далее просто устанавливаем.

  • 1.10 После установки всех необходимых программ на всякий случай перезапускаем ПК.

2. Проверка переменных среды системы

Теперь нужно проверить добавились ли пути к папкам с установленными программами в переменных системы (это нужно для того, чтобы команды в CMD могли работать с этими программами).

  • 2.1 Жмём Win+R, пишем sysdm.cpl и жмём «ОК».

  • 2.2 Открываем вкладку Дополнительно и нажимаем на Переменные среды.
image
  • 2.3 В открывшемся окне в верхней таблице Переменные пользователя нажимаем на переменную Path, потом на «Изменить». Там должна быть строчка:

C:\Users\%имя пользователя%\AppData\Local\Microsoft\WinGet\Links


  • 2.4 В нижней таблице Системные переменные нажимаем на переменную Path, затем на кнопку «Изменить».

    image

    Убедитесь, что в списке присутствуют следующие строки:

    C:\Program Files\OpenSSL-Win64\bin
    C:\Users\%имя пользователя%\.cargo\bin
    C:\Program Files\Git\cmd
    C:\Strawberry\c\bin
    C:\Strawberry\perl\site\bin
    C:\Strawberry\perl\bin
    C:\SQLite
    C:\Program Files\CMake\bin
    C:\Program Files\NASM

    Если чего-то из этого нет, то нажимаем справа «Создать» и добавляем отсутствующие пути. После добавления всего необходимого нажимаем «ОК».


  • 2.5 Теперь нужно добавить переменную с папкой OpenSSL. Для этого в той же нижней таблице нажимаем «Создать». Имя переменной:
OPENSSL_DIR

Значение переменной:

C:\Program Files\OpenSSL-Win64
image

После этого везде жмём «ОК».


  • 2.6 Теперь надо проверить все ли пути указаны. Для этого открываем CMD (нажимаем Win+R, пишем cmd и жмём «ОК»).
    В терминале поочерёдно вбиваем эти команды:
git -v
rustup --version
cargo --version
openssl version
echo %OPENSSL_DIR%
sqlite3 --version
perl -v
cmake --version
nasm -v
protoc --version
C__Windows_system32_cmd exe 25 01 2026 1_20_13

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

3. Компиляция исполняемого файла

  • 3.1 Создаём папку (пусть будет называться «RPCN_Custom»), где будет находится сервер, в любом удобном месте.

⚠️ Никаких кириллицы и пробелов в названии папки и пути быть не должно.


  • 3.2 Заходим в созданную папку, в адресной строке удаляем путь к папке и пишем cmd (таким образом терминал будет работать именно с этой папкой). В терминале вбиваем команду:
git clone https://github.com/RipleyTom/rpcn.git

Это нужно, чтобы скачался репозиторий с github. В папке «RPCN_Custom» появилась новая папка «rpcn», в которой находится скачанный репозиторий.


  • 3.3 Открываем cmd в папке «rpcn», в терминале вбиваем команду:
cargo build --release

Далее начнётся компиляция. Это процесс не быстрый, так что не пугаемся если покажется, что компиляция зависла, главное, чтобы в логе не было слов warning и error.
Если в конце компиляции появилась фраза Finished 'release' profile [optimized] target(s) in %m %s, значит всё прошло успешно.

C__Windows_System32_cmd exe 25 01 2026 1_56_56

4. Сертификаты, ключи и билеты

  • 4.1 Запускаем cmd в папке «rpcn» и вбиваем:
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 3650 -nodes -subj "/CN=localhost"

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

C__Windows_System32_cmd exe 25 01 2026 2_00_29

Терминал пока не закрываем.


  • 4.2 Вбиваем в терминале:
openssl ecparam -name prime256v1 -genkey -noout -out ticket_private.pem

Если после ввода команды в терминале ничего не появилось, значит, что всё получилось.

C__Windows_System32_cmd exe 25 01 2026 2_06_22

Оставляем терминал открытым.


  • 4.3 Вбиваем в терминале:
openssl ec -in ticket_private.pem -pubout -out ticket_public.pem

После этого должно появится сообщение writing EC key или ничего не появиться, что означает, что всё прошло успешно.

C__Windows_System32_cmd exe 25 01 2026 2_11_01

В папке «rpcn» должные появиться следующие файлы: cert.pem, key.pem, ticket_public.pem, ticket_private.pem.

5. Конфигурация сервера

В папке «rpcn» находим файл rpcn.cfg и открываем его. Удаляем весь текст там и вставляем этот:

CreateMissing=true
Verbosity=Info
Host=0.0.0.0
Port=31313
HostIPv6=::
EmailValidated=false
EmailHost=
EmailLogin=
EmailPassword=
SignTickets=true
SignTicketsDigest=SHA224
StatServer=false
StatServerHost=0.0.0.0
StatServerPort=31314
StatServerCacheLife=1
AdminsList=
MaxConnections=500

[database]
provider = "sqlite" 
connection_string = "rpcn.db"

[tls]
certificate_path = "cert.pem"
key_path = "key.pem"

ticket_private_key_path = "ticket_private.pem"
ticket_public_key_path = "ticket_public.pem"

Сохраняем файл.

⚠️ Файл конфигурации не переименовываем и не перемещаем в другую папку, иначе сервер его не найдёт.

6. BAT-файл

Чтобы каждый раз не запускать сервер через терминал, нужно создать bat-файл. В папке «rpcn» создаём текстовый файл и вставляем туда это:

@echo off
title RPCN Private Server

.\target\release\rpcn.exe

pause

После этого надо поменять расширения файла с .txt на .bat . Теперь сервер можно запускать двойным кликом по этому файлу, также можно создать ярлык этого файла для рабочего стола.

7. 🚀 Первый запуск сервера

Запускаем сервер.

⚠️ При первом запуске выскочит окно оповещения безопасности, отмечаем и частные, и общественные сети.

image

В терминале должна отобразиться следующая информация:

RPCN Private Server 25 01 2026 2_36_58

Если так и есть, то сервер работает.

8. Создание аккаунта на сервере

Если до этого был другой аккаунт на другом сервере, то он не сработает, для каждого сервера нужен свой аккаунт.

  • 8.1 Запускаем сервер, потом эмулятор. В верхней панели нажимаем на иконку RPCN.
image
  • 8.2 Далее жмём Account.
image
  • 8.3 Дальше нажимаем Add.
image
  • 8.4 В Description пишем название сервера (что угодно). А в Host пишем:
127.0.0.1:31313

⚠️ Хост пишет именно эти IP и порт (это локальная петля). И так как у хоста и эмулятор, и сервер находятся на одном компьютере, локальная петля подходит лучше, потому что эмулятор будет подключаться напрямую к серверу.
В ином случае, если указать IP сети хоста, то сигнал будет проходить сначала через роутер и сетевую карту, что может увеличить его задержку.

image
  • 8.5 Далее нажимаем Create Account. В строке Username придумываем имя пользователя.

  • 8.6 Дальше придумываем пароль.

  • 8.7 Потом эмулятор потребует почту для отправки токена туда, но в конфигурации сервера мы отключили подтверждение по почте, так что можно вбить что-нибудь похожее на почту жмём «ОК».

  • 8.8 Затем эмулятор уточнит правильность введённых данных, нажимем «Yes».

  • 8.9 Далее эмулятор спросит токен, просто оставляем строчку пустой и жмём «ОК». В терминале сервера должно появится сообщение:
    ←[32m INFO←[0m New client from 127.0.0.1:2238
    ←[32m INFO←[0m ←[1m←[0m←[2m:←[0m Parsing command Some(Create)
    ←[32m INFO←[0m ←[1m←[0m←[2m:←[0m Successfully created account Test
    ←[32m INFO←[0m ←[1m←[0m←[2m:←[0m Failed with NoError
    ←[32m INFO←[0m Disconnecting client()
RPCN Test 25 01 2026 2_58_59

Это означает, что аккаунт успешно создан.


  • 8.10 На всякий случай делаем тест. Нажимаем на Test Account. Если в эмуляторе выскочило сообщение Your account is valid, а в терминале сервера:
    ←[32m INFO←[0m ←[1m←[0m←[2m:←[0m Parsing command Some(Login)
    ←[32m INFO←[0m ←[1m←[0m←[2m:←[0m Authentified as Test
    ←[32m INFO←[0m ←[1m←[0m←[2m:←[0m Succeeded with NoError,
    значит всё сработало как надо, и аккаунт подключается к серверу.
RPCN Test 25 01 2026 3_04_05
  • 8.11 Теперь в настройках игры во вкладке Network выставлем как на скриншоте ниже.

При смене сервера эти настройки менять не требуется.

image

9. Проверка работоспособности

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

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

10. Создание сети в Radmin VPN

Чтобы к нам могли подключаться клиенты (люди с которыми собираемся играть), нужно создать сеть в Radmin VPN.

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

  • 10.1 Качаем Radmin VPN, запускаем программу и жмём на красный круг.

Первое подключение может быть долгим

При удачном подключении круг станет голубым, рядом появится сгенерированный IP (он-то и нужен будет клиентам).


  • 10.2 Сверху нажимаем на СетьСоздать сеть. Придумываем имя сети и пароль.

11. Подключение клиента

Чтобы к нам мог подключится клиент делаем следующее:

  • 11.1 Запускаем сначала Radmin VPN, затем запускаем сервер и сообщаем клиенту имя и пароль созданной сети в Radmin.

  • 11.2 Теперь клиент должен создать аккаунт в эмуляторе так же и мы до этого делали, но с важным нюансом. В строке Host при добавлении сервера, указываем наш IP, что сгенерировал Radmin. Затем ему надо создать аккаунт точно так же, как и нам, хосту. При удачном создании и тесте выскочит то же сообщение Your account is valid, а в терминале сервера появится информация о создании нового аккаунта.

  • 11.3 Далее клиенту надо в настройках игры во вкладке «Network» выставить те же настройки, что и у хоста.

Поздравляю, теперь можно наслаждаться игрой на своём сервере.

⚠️ Версии игры и эмулятора должны полностью совпадать у всех, кто подключился к серверу

12. Обновление сервера

Если при подключении к серверу эмулятор выдаст ошибку
Error Connecting to RPCN
Failed to Connect to RPCN server
RPCN Misc Error: Protocol Version Error (outdated RPCS3?)

RPCS3 0 0 39-18737-818b11fd Alpha _ master 27 01 2026 5_23_15

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

git stash
git pull
git stash pop
cargo clean
cargo build --release

⚠️ Может быть такое, что команда git pull не скачает последнюю версию, и в итоге произойдёт компиляция текущей версии. В этом случае вместо git pull нужно вбить git checkout %ветка последней версии%. Чтобы узнать, какая ветка нам нужна, необходимо перейти сюда, найти последнюю версию, слева от неё будет дата обновления, ниже под версией и будет наша ветка (набор из семи символов).

Releases · RipleyTom_rpcn - Google Chrome 29 01 2026 5_30_39

Нужно скопировать ветку и вставить после git checkout после пробела (например, с версией 1.8.1 это будет git checkout d3d47b5). Предующие и следующие команды в терминале точно такие же.

About

Гайд по созданию сервера RPCN на Windows для игры по сети в эмуляторе RPCS3

Topics

Resources

Stars

Watchers

Forks