Когда сайд-проект длиннее, чем большинство стартапов

В июле 2026 года на Hacker News появился пост с незамысловатым заголовком: «Show HN: Homegames. An open-source game platform I’ve been making for 8 years». Никакого венчурного финансирования, никакой команды из десятков инженеров — Homegames развивается как (преимущественно) соло сайд-проект с 2018 года. Восемь лет — это дольше, чем жили многие стартапы с многомиллионными инвестициями.

Что именно строил автор всё это время, почему это интересно разработчикам и как самостоятельно запустить платформу — разбираем подробно.


Что такое Homegames и в чём его идея

Homegames — это открытая игровая платформа, где можно играть в браузере, создавать собственные игры и делиться ими с сообществом. Ключевое слово здесь — открытая: всё распространяется под лицензией GPLv3 — от кода платформы до самих игр и сайта, и любой может прочитать исходники и сделать форк.

Но самое необычное — архитектурное решение. Все игры — это просто JavaScript-классы, и вы можете читать исходный код каждой игры прямо на платформе. Это не просто красивый лозунг: прозрачность встроена в саму модель платформы. Хочешь понять, как устроена игра — открывай код. Хочешь модифицировать — форкай.

ℹ Откуда название?
Homegames буквально означает «игры дома». Платформа проектировалась так, чтобы играть вместе с людьми, находящимися в одной локальной сети — дома, на вечеринке, в офисе.

С чего всё начиналось

Автор начал работу над первыми «играми» (в основном это были тесты рендеринга) в 2018 году, а затем постепенно выстроил вокруг них всю инфраструктуру платформы, чтобы упростить обмен играми. Классическая история: сначала появляется ядро, потом — экосистема вокруг него.


Архитектура: как устроена платформа

Homegames состоит из нескольких репозиториев. Среди публичных репозиториев организации — homegames-core (серверная часть), homegames.link, homegames-web (веб-клиент) и утилита squish для сжатия данных.


graph TD
    A[Пользователь / браузер] --> B[homegames-web\nВеб-клиент]
    B --> C[homegames-core\nИгровой сервер\nport 7001]
    C --> D[Встроенные игры\nsrc/games]
    C --> E[Игры сообщества\nhg-games]
    C --> F[Dashboard\nAPI]
    G[homegames.link] --> B
    style A fill:#4a90d9,color:#fff
    style C fill:#27ae60,color:#fff
    style G fill:#e67e22,color:#fff

Серверная часть (homegames-core)

По умолчанию запускается игровой сервер Homegames на порту 7001, хотя это значение можно переопределить в конфигурации. Дашборд рендерится как обычная игра, но обладает специальными знаниями о игровых сессиях и игроках.

Встроенные игры хранятся в src/games, а скачанные игры сообщества — в разных местах в зависимости от ОС: на Windows это C:\Users\<username>\AppData\homegames\hg-games, на macOS — ${HOME}/Library/Application Support/homegames/hg-games.

Конфигурация

Платформа гибко настраивается через файл config.json. Вот пример ключевых параметров:

{
  "LINK_ENABLED": true,
  "HOME_PORT": 9801,
  "GAME_SERVER_PORT_RANGE_MIN": 8300,
  "GAME_SERVER_PORT_RANGE_MAX": 8400,
  "HTTPS_ENABLED": false,
  "PUBLIC_GAMES": false,
  "ERROR_REPORTING": true
}

Если вы разрабатываете игру локально и хотите запускать её напрямую, минуя дашборд, достаточно прописать START_PATH в config.json.


Самостоятельный хостинг: как запустить

Одна из главных ценностей Homegames — возможность полного self-hosting. Платформу можно разместить на собственном железе: она изначально проектировалась под самостоятельный хостинг, включая API.

Установка по шагам

Шаг 1 — скачайте бинарник для вашей ОС с homegames.io

Запуск исполняемого файла поднимает серверы на вашей машине, после чего дашборд Homegames доступен по адресу localhost в браузере.

Шаг 2 — включите доступ по локальной сети (опционально)

Если в конфиге выставить LINK_ENABLED: true, любое устройство в локальной сети сможет зайти на дашборд и играть вместе, открыв homegames.link в любом браузере.

Шаг 3 — возможные предупреждения ОС

⚠ macOS и Windows могут блокировать запуск
Windows Defender, скорее всего, заблокирует приложение, так как издатель не верифицирован. В этом случае нужно нажать «Подробнее» и выбрать «Всё равно запустить». На macOS путь аналогичный: System Preferences → Security & Privacy → General → «Open Anyway». Если такой вариант неприемлем — собирайте из исходников.

Шаг 4 — сборка из исходников (альтернатива)

# Клонируем репозиторий
git clone https://github.com/homegamesio/homegames-core
cd homegames-core

# Устанавливаем зависимости
npm install

# Запускаем
node index.js

Обратите внимание: запускать homegames-core напрямую не нужно, если вы просто хотите играть — лучше использовать исполняемые файлы с homegames.io.


Философия проекта: открытость как антипод Steam

Homegames — это не просто технический проект. За ним стоит чёткая идеологическая позиция.

«Если этот сайт попадёт под автобус — ваши игры продолжат жить».

Эта фраза с главной страницы отражает суть: сохранность игр — один из приоритетов платформы. Если сайт прекратит существование, игры всё равно останутся. Это прямая антитеза Steam, Epic Games Store и другим централизованным платформам, где судьба ваших покупок полностью зависит от решений корпорации.

Сравнение с конкурентами

ПараметрHomegamesSteamitch.io
ЛицензияGPLv3 (полностью открыт)ПроприетарнаяЧастично open-source
Self-hosting✅ Да❌ Нет❌ Нет
Просмотр кода игр✅ Все игры❌ НетЗависит от разработчика
Локальная сеть✅ Встроено⚠️ Частично❌ Нет
Коммерциализация❌ Нет✅ Да✅ Да
Сохранность игр✅ Гарантирована⚠️ Зависит от Valve⚠️ Зависит от itch.io
💡 Для кого Homegames?
Платформа отлично подходит для разработчиков, которые хотят делиться экспериментальными играми без монетизации, а также для тех, кто ценит прозрачность кода и независимость от корпоративных платформ.

Как создать игру для Homegames

Создание игры не требует изучения проприетарного SDK. Все игры — это просто JavaScript-классы. Это низкий порог входа для любого, кто знает основы веб-разработки.

Минимальный скелет игры

class MyGame {
  constructor(gameState, { players }) {
    this.state = gameState;
    this.players = players;
    // Инициализация игрового поля
  }

  handleInput(playerId, input) {
    // Обработка действий игрока
  }

  getState() {
    // Возвращает текущее состояние для рендеринга
    return this.state;
  }
}

module.exports = MyGame;
📝 Что можно изучить
Встроенные игры находятся в src/games репозитория homegames-core — это лучший способ научиться: читать реальный рабочий код игр, а не абстрактную документацию.

Podcast сопровождает разработку: Джозеф и Язид регулярно выпускают обновления о Homegames — открытой игровой платформе. Это редкость для сайд-проекта — иметь собственный подкаст с историей разработки.


Что говорит Hacker News: реакция сообщества

Появление поста на HN — важный момент для любого indie-проекта. Сообщество Hacker News ценит техническую честность и долгосрочную приверженность идее. Проект, который один разработчик строит 8 лет без внешнего финансирования, вызывает уважение именно за это.

Kлючевые тезисы, которые привлекают внимание разработчиков:

  1. Радикальная прозрачность — весь код, включая платформу и игры, доступен для чтения
  2. Независимость от экосистемы — не нужен Unity, Unreal или другой проприетарный движок
  3. Локальная мультиплейерность — core use case это игра дома в локальной сети
  4. Долгосрочная устойчивость — GPLv3 гарантирует, что форк проекта всегда возможен

Выводы: почему Homegames важен

Homegames — не попытка конкурировать со Steam. Это другой ответ на другой вопрос: что если игровая платформа будет полностью прозрачной, самостоятельно размещаемой и не зависящей от корпорации?

Абсолютно всё — от кода платформы до игр и сайта — выпущено под GPLv3. Это смелое решение, которое делает проект по-настоящему свободным в долгосрочной перспективе.

Восемь лет разработки в одиночку — это не провал с точки зрения «не вышло быстро», это осознанный выбор строить что-то устойчивое, а не быстрое. Для разработчика, которому важна открытость экосистемы и возможность изучать чужой код — Homegames заслуживает внимания.

Ссылки: