Каждый день тысячи людей ищут в интернете одно и то же:
* «Как сделать игру на HTML?»
* «Как создать игру на JavaScript?»
* «Как сделать свою игру без движка?»
* «Как сделать игру, если я новичок?»
* «Как опубликовать игру в браузере?»
Но есть странная вещь. На многие вопросы отвечают поверхностно: показывают, как нарисовать квадрат на экране, и на этом обучение заканчивается. А ведь новичков интересуют совсем другие вещи.
## Что чаще всего ищут
Самые популярные вопросы выглядят примерно так:
* Как сделать платформер?
* Как создать игру без знания сложной математики?
* Как добавить управление с клавиатуры?
* Как сделать столкновения объектов?
* Как сохранить прогресс игрока?
* Как выложить игру в интернет бесплатно?
* Можно ли заработать на браузерной видеоигре?
* Сколько времени занимает создание первой игры?
На эти темы материалов много. Но есть вопросы, которым уделяют удивительно мало внимания.
## О чём мало пишут
### 1. С какой игры действительно стоит начинать?
Многие статьи предлагают сразу делать RPG или онлайн-игру. Это почти гарантированный путь к выгоранию.
Лучше начать с проектов, которые можно закончить за неделю:
* крестики-нолики;
* змейка;
* арканоид;
* Flappy Bird;
* простая стрелялка сверху;
* игра-кликер.
Главная цель первой игры не сделать шедевр, а научиться доводить проект до конца.
### 2. Как не запутаться в коде
Обычно новичкам показывают один огромный файл `script.js` на тысячу строк.
Гораздо удобнее сразу разделить игру на части:
* управление;
* логика игрока;
* враги;
* уровни;
* звук;
* сохранения.
Даже если игра маленькая, такая привычка потом сильно помогает.
### 3. Как придумать идею
Это один из самых частых скрытых вопросов.
Не нужно искать гениальную идею. Возьмите знакомый жанр и измените одно правило.
Например:
* змейка, где хвост помогает решать головоломки;
* платформер без прыжка;
* кликер про выращивание живых облаков;
* гонки, где трасса меняется каждую минуту.
Многие известные игры появились именно так.
### 4. Когда использовать Canvas
Новички часто не понимают разницу между HTML и Canvas.
Простой ориентир:
**HTML + CSS**
подходят для:
* карточных игр;
* викторин;
* кликеров;
* настольных игр.
**Canvas**
лучше использовать для:
* платформеров;
* аркад;
* игр с большим количеством анимации.
### 5. Как сохранить прогресс без сервера
Об этом пишут редко, хотя вопрос очень популярный.
Для небольших игр достаточно использовать `localStorage`.
Например, хранить:
* рекорды;
* открытые уровни;
* количество монет;
* настройки звука.
Игрок закроет браузер и при следующем запуске данные останутся.
## Самый простой план создания игры
1. Придумайте маленькую идею.
2. Нарисуйте её на листке бумаги.
3. Создайте HTML-страницу.
4. Подключите JavaScript.
5. Сделайте управление.
6. Добавьте цель игры.
7. Сделайте проигрыш и победу.
8. Добавьте звук и счёт.
9. Сохраните прогресс.
10. Покажите игру друзьям и исправьте ошибки.
## Что сейчас становится популярным
В последние годы всё чаще ищут:
* как сделать игру с помощью искусственного интеллекта;
* как адаптировать игру под телефон;
* как добавить поддержку геймпада;
* как превратить браузерную игру в мобильное приложение;
* как сделать генерацию уровней;
* как использовать JavaScript-библиотеки вроде Phaser.
## Самая частая ошибка новичков
Люди хотят создать «свой Minecraft», MMORPG или огромную RPG уже в первом проекте. Это похоже на попытку построить космический корабль, едва научившись держать отвёртку.
Первая игра должна быть маленькой. Зато законченной. Когда на экране появляется надпись «Вы победили!», звучит музыка и игра действительно работает, появляется опыт, который нельзя получить из десятков просмотренных уроков.
Создание игр на HTML и JavaScript сегодня остаётся одним из самых доступных способов войти в разработку. Достаточно браузера, текстового редактора и любопытства. А первая законченная игра, пусть даже это будет простая змейка, часто становится дверью в гораздо более большие проекты.