VOG — Vinco Online Games: почти 30 лет настольных игр онлайн, от Windows-клиента до браузера

Закулисье vogclub.com от разработчика, который работал над ним в 1999–2003 годах и в 2021-м забрал проект за шаг до закрытия: отдельные Windows-программы на vog.ru, оболочка VOG Shell, ставка на ActiveX, долгая пауза и перезапуск 2026 года на Go и Kubernetes с веб-клиентом. Первая статья серии о технологиях VOG

Vinco Online Games, или просто VOG, — один из старейших русскоязычных игровых серверов для настольных игр. Он появился в 1997 году, пережил три поколения клиентов, смену домена, одну неудачно затянувшуюся технологическую ставку и долгий период тишины. Сегодня vogclub.com снова открыт: в нарды, шахматы, шашки, реверси, червы и эрудит можно играть с любого устройства прямо в браузере, а к старым играм добавились го и домино, которые ждали своей очереди два десятилетия.

Я пришёл в VOG разработчиком в 1999 году и проработал там до конца 2003-го. На этот период пришлись VOG2, оболочка VOG Shell и ставка на ActiveX. Потом жизнь увела в другие проекты. В 2021 году я случайно узнал, что владелец решил VOG не реанимировать и закрыть, и забрал проект почти в последний момент. Эта статья о том, что было до меня, что я застал изнутри и что происходит с VOG сейчас.

Здесь, на khorost.tech, будет закулисье: как устроена платформа и почему именно так. Про сами игры и новые возможности рассказываем на vogclub.com, в разделе новостей. Сначала просто история, потом пойдёт техника: как C++-монолит резали на сервисы на Go, как переезжали с Oracle на PostgreSQL, зачем в проекте про шашки понадобились NATS, ClickHouse и ScyllaDB и как старый бинарный протокол уживается с новым клиентом.

Обложка: три поколения VOG — окно Windows 95 с нардами, красная плашка «Only Internet Explorer» и современный браузер с доской го на телефоне

В статье

1997: четыре программы и один сайт

VOG начинался на домене vog.ru, и в 1998 году главная страница выглядела так: заголовок «Vinco Online Games», счётчик игроков онлайн и список из четырёх клиентов, каждый со своей версией и датой релиза. VOG Backgammon, VOG Checkers Club, VOG Chess Club и VOG Othello Club были отдельными Windows-программами. Чтобы поиграть, нужно было зарегистрировать ник, скачать нужный клиент, установить его и запустить «через кнопку Start в Windows 95».

Главная страница vog.ru в ноябре 1998 года: Vinco Online Games, 316 игроков онлайн, четыре отдельных клиента для нард, шашек, шахмат и отелло, инструкция «5 шагов, чтобы начать играть»

Снимок веб-архива: vog.ru, 11 ноября 1998

Уже тогда в списке возможностей было почти всё, что и сейчас считается нормой для игрового сервера: комнаты, рейтинги по каждой вариации игры, архив партий с возможностью «прокрутить ходы и попробовать свои», наблюдение за чужими партиями, турниры, боты. Среди ботов был Agafonov.Bot для шашек, написанный командой международного гроссмейстера Владимира Агафонова. Каждый месяц проходил турнир чемпионов по нардам с денежным призом.

Так выглядела комната нард внутри клиента: столы с аватарами игроков, список из тридцати четырёх человек в комнате с рейтингами и флагами, чат снизу. Рисованные аватары были фирменной чертой VOG, их можно было нарисовать самому.

Комната нард в клиенте VOG, 2002 год: девять столов с рисованными аватарами игроков, справа список из 34 игроков с рейтингом и флагом страны, внизу чат и сообщения «Match ended»

Скриншот клиента с сайта vogclub.com, сохранённый веб-архивом: roomscreenshot640x480.gif, 2002

Клиенты соединялись с сервером по собственному бинарному протоколу поверх TCP, его называли TLV (tag-length-value). Этот протокол прожил в проекте почти тридцать лет и станет отдельной темой в технической части серии.

VOG Shell: единый вход и новые игры

Четыре отдельные программы означали четыре установки, четыре окна и четыре точки входа. В начале 2000 года сайт анонсировал публичную бету VOG2: единой оболочки, которая объединила все игры под одним входом. В марте того же года в нардах появился бот Synapse_bot на нейросети, выигрывавший у прежнего Axon_bot больше половины партий. А 31 июля 2000 года VOG1 был закрыт и полностью заменён VOG2, накануне провели турнир открытия сразу по всем четырём играм.

Главная vog.ru в августе 2000 года, новый дизайн VOG2: «80 Players Online», список игр с числом игроков в комнатах, новости «VOG2 Grand Opening Tournament on July 30, 2000» и «VOG1 to be replaced by VOG2 on July 31, 2000»

Снимок веб-архива: vog.ru, 15 августа 2000

С этого момента игрок ставил один клиент, VOG Shell, а игры подгружались в него как модули. Слева в оболочке жил список друзей и «гидов», к которым новичок мог обратиться за помощью, справа дерево комнат по всем играм с числом игроков в каждой.

Окно VOG Shell, 2002 год: 153 игрока онлайн, слева список друзей и гидов, справа дерево игровых комнат — нарды, шашки, шахматы, червы, реверси — с числом игроков в каждой; красными стрелками подписано «Guides: doubleclick to ask for help» и «Gaming Rooms: doubleclick to ENTER and PLAY»

Скриншот из инструкции на vogclub.com, сохранённый веб-архивом: how2shell.gif, 2002

А так та же оболочка выглядит в 2026 году: то же дерево комнат, но игр и вариантов стало больше.

Окно VOG Shell в 2026 году: дерево комнат — нарды, шашки (чекерс, бразильские, стоклетки, русские, поддавки, пул), шахматы, червы на 2–4 игрока, реверси, «Слова» на десяти языках с комнатами для игры с людьми и с роботом

Оболочка позволила быстро добавлять игры. К четырём классическим добавились червы (Hearts) и словесная игра WordEx, свой вариант эрудита со словарями на девяти языках. В 2001 году проект переехал на международный домен vogclub.com, а vog.ru ещё несколько лет оставался зеркалом. Весной 2001-го на сайте бывало больше двухсот игроков онлайн одновременно, интерфейс клиента перевели на шесть языков, а серверу удвоили память: с одного гигабайта до двух.

vogclub.com 1 апреля 2001 года: 217 игроков онлайн, четыре игры, блок «What is VOG?» со скриншотом комнаты, новости про апгрейд сервера и денежные турниры, справа инструкция «How to start playing»

Снимок веб-архива: vogclub.com, 1 апреля 2001

Ставка на Internet Explorer и ActiveX

В начале 2000-х Internet Explorer был браузером по умолчанию, и казалось разумным строить вокруг него всю доставку клиента. В январе 2002 года вышел новый игровой движок VOG на ActiveX: установка и обновление шли прямо из браузера, а сам движок можно было встроить на любой чужой сайт «одной строкой кода». Зашёл на страницу, нажал «Играть», компонент скачался и запустился. Никаких инсталляторов, всё «бесшовно». Я застал это решение изнутри, и тогда оно выглядело здравым.

vogclub.com в апреле 2002 года: красная плашка «Sorry, this web site is designed for Microsoft Internet Explorer 4.0 or later», в новостях — «VOG gaming technology licensing available» и «Place VOG at your own web page» про новый движок на ActiveX

Снимок веб-архива: vogclub.com, 1 апреля 2002

Обратная сторона видна на снимке из веб-архива: красная плашка «Этот сайт разработан для Microsoft Internet Explorer 4.0 и выше. С другими браузерами играть не получится. Извините». Она висела на главной странице годами.

vogclub.com в 2003 году: красная плашка «This web site was designed for Microsoft Internet Explorer 4.0 or later. You will not be able to play with any other web browser. Sorry», слева колонка новостей VOG News

Снимок веб-архива: vogclub.com, 1 февраля 2003

Проблемой стала не сама ставка, а то, как долго проект от неё зависел. Пришёл Firefox, потом Chrome, Windows XP сменилась на Vista и 7, ActiveX стали блокировать по умолчанию, а сайт продолжал требовать Internet Explorer. К 2016 году главная страница встречала игроков уже двумя предупреждениями: старым красным про IE и новым жёлтым про то, что в IE 11 нужно включить режим совместимости. Этот урок я держу в голове и сейчас, когда выбираю технологии для нового VOG.

vogclub.com в январе 2016 года: красная плашка «только Internet Explorer 5.0 и выше» и жёлтая инструкция для пользователей Windows 7 добавить сайт в Compatibility View для IE 11

Снимок веб-архива: vogclub.com, 11 января 2016

А вот что видел тот, кто всё-таки открывал сайт в Internet Explorer. Веб-архив эту страницу не сохранил: её целиком рисовал скрипт, а скрипт архив не забрал. Я поднял старый сайт из исходников и отрисовал главную заново, подставив сохранённые в архиве данные.

Главная vogclub.com в дизайне 2004–2020 годов, восстановлена из исходников: «Vinco Online Games — 32 игрока сейчас», переключатель десяти языков, слева список игр с числом игроков в комнатах, справа таблица турниров — Nack Gammon Single Elimination, $500 Narde TOC Qualy, Brazilian 8/2 swiss и другие

Восстановлено из исходников старого сайта. Данные турниров — архив 3 апреля 2012, счётчики комнат — архив 9 сентября 2014

Проект не адаптировался, и игроки уходили. Не разом, а по одному: кто-то сменил браузер, кто-то перешёл на Mac, кто-то просто перестал понимать, как «добавить сайт в Compatibility View». Серверы продолжали работать, боты продолжали играть, но живых людей в комнатах становилось меньше. В отдельных снимках веб-архива счётчик «игроков сейчас» показывал всё меньше: в 2001 году больше двухсот, в 2014-м 32, в 2015-м 24, в 2020-м 3, в начале 2021-го ноль. Это случайные моменты в разные часы, а не статистика посещаемости, но настроение тех лет они передают точно.

2021–2025: спасти и удержать

Первые годы после передачи проекта ушли на то, чтобы просто удержать его: серверы работали, рейтинги и архив партий не пропали.

Главное, что удалось сделать за 2021–2025 годы, — уйти с Oracle на PostgreSQL. Базы с рейтингами, архивом партий и профилями игроков копились с 1997 года, и перенос был не просто сменой драйвера: другие типы, другой подход к последовательностям и процедурам, свои сюрпризы в кодировках старых ников.

Но архитектура при этом не изменилась. Платформа оставалась набором монолитных «островов»: у каждой игры свой сервер на C++, общая оболочка, собственный бинарный протокол, Windows-клиент как единственный способ сесть за стол. Сайт превратился в витрину для скачивания установщика, а внутри клиента жил интерфейс из начала 2000-х, плохо переживший экраны с высокой плотностью пикселей.

vogclub.com в 2024 году: список из шести игр со ссылками «ranks, Game Rules, play now» и блок «Скачайте установщик для Windows 7/8/10»

Снимок веб-архива: vogclub.com, 22 февраля 2024

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

2026: Go, Kubernetes и веб-клиент

В начале 2026 года я решился на полную переработку. Одному человеку в свободное время такой объём раньше был не по силам, а реальным его сделала работа в паре с ИИ, большой языковой моделью (LLM). Она началась тогда же и продолжается сейчас. Работа ускорилась не только в части написания кода. ИИ помогает развивать архитектуру и продумывать эволюционную миграцию: в каком порядке выводить старые части, чтобы система ни на день не останавливалась. Последнее слово остаётся за мной.

Забавно, что консерватором в этой паре оказался именно ИИ. Это он раз за разом притормаживает смелые идеи и настаивает на переносе игр по одной и на том, чтобы за шаг менялось что-то одно, а я рвусь переписать всё сразу.

Цели перезапуска я сформулировал коротко: старые игроки не теряют доступ, свой рейтинг и историю; играть можно с любого устройства, а не только из Windows; игроки из браузера и из старого клиента играют друг с другом за одним столом, а не на двух разных площадках.

Вот что для этого сделано к октябрю 2026 года.

  • Монолит на C++ режется на микросервисы на Go. Авторизация, лобби, рейтинги, архив, боты, новости и веб уже стали отдельными сервисами. Игры переезжают по одной: реверси с сентября 2026 года идёт целиком на новом движке, го и домино написаны сразу под него, остальные пять классических игр пока работают на старых C++-серверах. Эти серверы подключены к той же шине NATS, что и новые сервисы, и обмениваются с ними событиями по общему контракту.
  • Новое хранилище данных. PostgreSQL остался основной базой, но рядом появились Redis для сессий и кэша, ClickHouse для аналитики и поиска по тридцати годам партий, ScyllaDB для идущих и отложенных партий, которые пишутся на каждом ходу, и NATS как шина событий между сервисами.
  • Всё работает в Kubernetes. Деплой через ArgoCD, сервисы масштабируются независимо, выкатка новой игры стала обычной рабочей задачей, а не проектом.
  • Клиенты говорят на JSON по WebSocket. Браузер обменивается с сервером JSON-сообщениями через защищённое соединение WSS, и на тот же WSS сейчас переходит Windows-клиент. Перевод в понятия старого протокола, то есть столы, места и номера партий, свежий клиент делает у себя. Старый бинарный протокол поверх TCP остаётся только для старых версий клиента и уйдёт вместе с последним легаси-сервером.
  • Windows-клиент обновляется сам. Вместо ActiveX и ручных установок клиент получил режим оперативных обновлений: поставил один раз, дальше он сам подтягивает свежую версию.
  • Появился веб-клиент. Сайт больше не витрина для скачивания. Комнаты, столы, рейтинги и архив партий открываются прямо в браузере, на компьютере и на телефоне. Вход без пароля: код на почту либо через Google, Яндекс, GitHub или Telegram.

Так выглядит загрузчик Windows-клиента при запуске: он проверяет установку и сам ставит обновления.

Окно загрузчика «Vinco Online Games — обновление»: «Установка проверена: всё на месте», выбор языка игры, флажок «Запускать при входе в систему», кнопки «Закрыть» и «Запустить», версия загрузчика 0.2.55

Та же комната нард в Windows-клиенте в 2026 году. Рисованные аватары и кресла за столами на месте, а сам клиент уже подключается к новым серверам.

Комната коротких нард в Windows-клиенте VOG, 2026 год: столы с креслами, за первым столом аватар alex и бот Unrated_Bot, справа список игроков с рейтингом и опытом, внизу кнопки «Меню», «Играть!» и «Нет меня тут :)»

Резонный вопрос: зачем столько инфраструктуры проекту с небольшой аудиторией? Самый понятный ответ у NATS: шина позволяет старым C++-серверам и новым Go-сервисам работать рядом, пока идёт переезд, и переносить игры по одной без остановки. Kubernetes даёт одному человеку выкатывать десяток сервисов без ручной возни. ScyllaDB и ClickHouse стоят рядом с PostgreSQL ради другого характера нагрузки: частые записи ходов в одном случае, тяжёлые аналитические запросы по всей истории партий в другом. Оправдан ли этот выбор при нашем объёме данных, разберу в отдельной статье. Цена понятна уже сейчас: больше движущихся частей и больше эксплуатации. Часть стека — сознательный инженерный эксперимент, и я честно покажу, где он себя оправдал, а где хватило бы одного PostgreSQL.

Самый заметный результат пока такой: две игры, которые хотели сделать ещё двадцать лет назад, появились за считанные недели. Для старого клиента каждая новая игра означала отдельный C++-сервер, новый модуль оболочки и месяцы работы. Для нового достаточно движка на Go и React-компонента стола.

Стол го 9×9 в веб-клиенте vogclub.com: партия alex против Kenta_Bot, на доске двенадцать камней, справа запись ходов с временем на каждый ход, слева кнопки «Сдаться», «Ничья», «Отложить», под доской чат стола

Так выглядит главная на телефоне. В «Телескопе» идёт запись партии в нарды против Synapse_bot, того самого бота на нейросети, которого добавили на vog.ru в марте 2000 года. Он играет до сих пор.

Виджет «Телескоп» на главной vogclub.com в браузере телефона: запись партии в короткие нарды alex против Synapse_bot, кубики 4 и 3, ход 24/20 13/10, доска с шашками и счётчик «ход 2 / 215»

Вернутся ли старые игроки, судить пока рано. За пять лет многие говорили, что хотят играть, но не могут. Я обещал сделать VOG снова доступным, и надеюсь, что обещание выполнено и они вернутся.

Что поменялось для игроков

За тридцать лет поменялось время, и вместе с ним часть того, на чём VOG стоял. Перезапуск это учёл.

  • Регистрация и игра с людьми бесплатны. Зарегистрироваться, сесть за стол с другими игроками или с ботом можно без оплаты.
  • Членство — это поддержка проекта. Оно открывает рейтинговые партии и комнаты без ограничений, и именно на нём держится платформа. Подробности расскажу позже. А пока идёт акция «Год членства в подарок», ограниченная по времени и по числу подарков.
  • Игры на деньги больше нет. В 2000-х на VOG были денежные турниры, игры на жетоны и призы в долларах. От всего этого отказались полностью.
  • Чат — только после входа и без общих чат-комнат. Чат комнаты и стола читает любой, а писать в него может только вошедший игрок. Отдельных чат-комнат для общения, как в VOG Shell, на сайте нет. Раньше чат был центром клуба, но открытому общему чату нужна постоянная модерация, а её возможностей пока не хватает.
  • Один аккаунт для браузера и Windows-клиента. Раньше ники нередко заводили заново: под новую версию клиента, под пробный период. Теперь новые аккаунты не нужны: с одним и тем же входом можно играть и на сайте, и в Windows-клиенте.

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

Вот один и тот же рейтинг шахмат, категория «Стандарт» за всё время, в двух оформлениях. Сначала так, как его показал бы старый сайт.

Рейтинг шахмат «Стандарт — личные» в оформлении старого vogclub.com: 1719 игроков в рейтинге, таблица с ником, флагом, полом, рейтингом, максимумом и минимумом, числом партий, побед, поражений, ничьих и серией; первые строки — Bubba5234, DEADLYPAWN, Alex, PAPERCUT, Kabrus, Peter_Leko

Восстановлено из исходников старого сайта. Файлы рейтингов того времени не сохранились, поэтому данные подставлены сегодняшние

И тот же рейтинг на сайте сегодня. Игроки те же, у многих последняя партия сыграна в 2000-х, но рейтинг никуда не делся.

Рейтинг шахмат Standard Lounge за всё время на vogclub.com сегодня: тот же список лидеров — Bubba5234, DEADLYPAWN, Alex, PAPERCUT, Kabrus, Peter_Leko, фильтр по периоду, поиск по нику и список рейтинговых комнат справа

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

Стол коротких нард в Windows-клиенте VOG: деревянная доска, кубики 5–5, слева кнопки «Сдаться», «Удвоить», «Отложить», справа список игроков и запись ходов, внизу чат с сообщением бота «Good luck!»

Что дальше в серии

Перезапуск VOG — это не только продукт, но и большой технический эксперимент: как перевести почти тридцатилетнюю систему на новый стек, не останавливая её и сохраняя аккаунты, рейтинги и историю партий. Следующие статьи серии будут именно об этом:

  • как резали C++-монолит на сервисы на Go и в каком порядке отключать легаси-серверы, чтобы на каждом шаге менялось только что-то одно;
  • переезд с Oracle на PostgreSQL: что сломалось в данных за 1997–2025 годы и как это чинили;
  • зачем настольным играм NATS, ClickHouse и ScyllaDB, и где хватило бы одного PostgreSQL;
  • как связали старый бинарный протокол поверх TCP и новый API на JSON через WebSocket, чтобы два клиента сели за один стол;
  • боты: от Agafonov.Bot 1998 года до перебора раскладов в червах на чистом Go.

Новости про игры и новые возможности — на vogclub.com. А пока — заходите поиграть. Сервер помнит вас, даже если вы не заходили двадцать лет.

Обсуждение в Telegram

Присоединиться →

Комментарии