Лаунчер ігор клубу

Список ігор просто в панелі гравця — і межа довіри, через яку клубний сервер не може запустити на машинах будь-що.

Що бачить гравець

Під час сесії гравець натискає Ctrl+Alt+T — і в панелі, крім залишку часу, бачить ігри клубу. Одне натискання, і гра запускається: не треба шукати ярлики на робочому столі, згадувати, у якому лаунчері живе гра, чи чекати адміністратора.

Якщо ігор більше восьми, зверху зʼявляється поле пошуку. Ігри згруповані за категоріями, які пишете ви: «шутери», «MOBA», «для двох», «на слабкому ПК».

Що налаштовує клуб

Тарифи → Ігри. Картка гри — це:

ПолеНавіщо
Назвате, що бачить гравець
Категоріягрупування в списку; вписується вільно
Звідки запускатиSteam, Epic Games, Battle.net або файл на ПК
Що запускатиідентифікатор гри в лаунчері або шлях до файлу
Зониу яких зонах показувати (порожньо — у всіх)
Порядокчим менше число, тим вище в списку

Зміни доїжджають на машини одразу, без перезапуску агента. І працюють, навіть коли сервер лежить: агент тримає копію каталогу на диску машини — той самий принцип, що й з оплаченим часом.

Де взяти «що запускати»

  • Steam — число з адреси магазину: store.steampowered.com/app/570570;
  • Epic Games — ідентифікатор застосунку;
  • Battle.net — короткий ключ продукту: WoW, D3, Pro (Overwatch), S2 (StarCraft II);
  • Файл на ПК — повний шлях до .exe або .lnk, наприклад C:\Games\gra\game.exe.

Головне: чому це не дірка в безпеці

Ідея «сервер каже машині, що запустити» — це, якщо зробити її наївно, віддалене виконання будь-чого на всіх ПК клубу. Досить одного запису в каталозі. Тому в Cord Arena рішення ухвалює не сервер, а сама машина:

  1. Посилання на лаунчери сервер будує сам із перевіреного ідентифікатора. У полі «що запускати» лежить 570, а не steam://… — дописати туди щось стороннє неможливо.
  2. Файл із диска запускається лише з дозволених тек. Їх перелічує сам клуб у налаштуваннях агента (Agent:GameFolders); типово це C:\Games, теки Steam і Epic. Усе поза цим списком агент відхиляє — навіть якщо картка збережена на сервері.
  3. Системні програми не приймаються взагалі. cmd.exe, powershell.exe, rundll32.exe, будь-що з теки Windows, мережеві шляхи — сервер не дасть навіть зберегти таку картку.
  4. Старі картки теж перевіряються. Коли правила стають суворішими, запис, збережений раніше, автоматично ховається зі списку машин — і власник бачить його прихованим у каталозі.
  5. Відмова ніколи не буває тихою. Якщо гра не запустилась, гравець бачить причину на екрані, а машина пише її у свій журнал (ProgramData\CordArena\agent.log).

Редагувати каталог може лише той, у кого є право на тарифи — типово менеджер і власник. Кожна зміна йде в журнал дій.

Чого свідомо немає

Бібліотеки обкладинок із хмари. У SENET є каталог артів, категорій і клубних акаунтів — і це окремий продукт із вічною підтримкою: щоразу, коли гра змінює назву чи обкладинку, хтось має це оновлювати. Ми зробили те, що справді потрібно в залі: гравець за два кліки в грі. Якщо клубу потрібні обкладинки, у картці є поле для шляху до картинки на самій машині — зображення не ходять мережею й не залежать від нашого сервера.