
Homegames: открытая игровая платформа 8 лет спустя
Homegames — open-source игровая платформа на JavaScript, которую один разработчик строил 8 лет. Разбираем архитектуру, философию и как запустить.
Когда сайд-проект длиннее, чем большинство стартапов
В июле 2026 года на Hacker News появился пост с незамысловатым заголовком: «Show HN: Homegames. An open-source game platform I’ve been making for 8 years». Никакого венчурного финансирования, никакой команды из десятков инженеров — Homegames развивается как (преимущественно) соло сайд-проект с 2018 года. Восемь лет — это дольше, чем жили многие стартапы с многомиллионными инвестициями.
Что именно строил автор всё это время, почему это интересно разработчикам и как самостоятельно запустить платформу — разбираем подробно.
Что такое Homegames и в чём его идея
Homegames — это открытая игровая платформа, где можно играть в браузере, создавать собственные игры и делиться ими с сообществом. Ключевое слово здесь — открытая: всё распространяется под лицензией GPLv3 — от кода платформы до самих игр и сайта, и любой может прочитать исходники и сделать форк.
Но самое необычное — архитектурное решение. Все игры — это просто JavaScript-классы, и вы можете читать исходный код каждой игры прямо на платформе. Это не просто красивый лозунг: прозрачность встроена в саму модель платформы. Хочешь понять, как устроена игра — открывай код. Хочешь модифицировать — форкай.
С чего всё начиналось
Автор начал работу над первыми «играми» (в основном это были тесты рендеринга) в 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 — возможные предупреждения ОС
Шаг 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 и другим централизованным платформам, где судьба ваших покупок полностью зависит от решений корпорации.
Сравнение с конкурентами
| Параметр | Homegames | Steam | itch.io |
|---|---|---|---|
| Лицензия | GPLv3 (полностью открыт) | Проприетарная | Частично open-source |
| Self-hosting | ✅ Да | ❌ Нет | ❌ Нет |
| Просмотр кода игр | ✅ Все игры | ❌ Нет | Зависит от разработчика |
| Локальная сеть | ✅ Встроено | ⚠️ Частично | ❌ Нет |
| Коммерциализация | ❌ Нет | ✅ Да | ✅ Да |
| Сохранность игр | ✅ Гарантирована | ⚠️ Зависит от Valve | ⚠️ Зависит от itch.io |
Как создать игру для 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лючевые тезисы, которые привлекают внимание разработчиков:
- Радикальная прозрачность — весь код, включая платформу и игры, доступен для чтения
- Независимость от экосистемы — не нужен Unity, Unreal или другой проприетарный движок
- Локальная мультиплейерность — core use case это игра дома в локальной сети
- Долгосрочная устойчивость — GPLv3 гарантирует, что форк проекта всегда возможен
Выводы: почему Homegames важен
Homegames — не попытка конкурировать со Steam. Это другой ответ на другой вопрос: что если игровая платформа будет полностью прозрачной, самостоятельно размещаемой и не зависящей от корпорации?
Абсолютно всё — от кода платформы до игр и сайта — выпущено под GPLv3. Это смелое решение, которое делает проект по-настоящему свободным в долгосрочной перспективе.
Восемь лет разработки в одиночку — это не провал с точки зрения «не вышло быстро», это осознанный выбор строить что-то устойчивое, а не быстрое. Для разработчика, которому важна открытость экосистемы и возможность изучать чужой код — Homegames заслуживает внимания.
Ссылки:
- 🌐 Сайт: homegames.io
- 💻 GitHub: github.com/homegamesio
- 🎙️ Подкаст: The Homegames Podcast (доступен на Apple Podcasts и Spotify)