Я — школьник 10-го класса, начинающий разработчик игр. В 2026 году я выпустил мультиплеерную 2D-игру Spike & Run на Unity 6.3 LTS с Photon PUN2 и опубликовал её на itch.io. В этой статье — о том, как мне удалось реализовать мультиплеер, что было сложно раньше и как современные ИИ-инструменты изменили этот процесс.
Что такое мультиплеер и почему это сложно
Мультиплеер означает, что несколько игроков подключаются по сети и видят одни и те же события игры в реальном времени. Это требует синхронизации движений, действий и состояний объектов между клиентами — и всё это должно работать при разных скоростях соединения и задержках.
В Unity с Photon PUN2 каждый сетевой объект имеет компонент PhotonView, который отвечает за синхронизацию данных и вызов удалённых процедур. Для синхронизации переменных реализуется интерфейс IPunObservable. Когда вызывается PhotonNetwork.Instantiate, объект создаётся сразу у всех игроков в комнате.
Нужно правильно управлять событиями подключения, следить за порядком вызова колбэков и обрабатывать сетевые задержки. В моём проекте две сцены: меню и игровая. Скрипт NetMen.cs с пометкой DontDestroyOnLoad живёт через смены сцен и отвечает за подключение к Photon, создание комнат и генерацию 6-значных кодов. В игровом уровне NetworkManager.cs спавнит игрока через PhotonNetwork.Instantiate. Для плавного движения написан NetworkInterpolation.cs — он реализует IPunObservable и интерполирует позицию удалённых игроков через Lerp.
Мультиплеер — это не про код. Это про порядок событий, которые ты не контролируешь.
2021 против 2026
Пять лет — это много. Чтобы понять разницу, проще всего посмотреть на одни и те же задачи, но в двух эпохах разработки.
- Документация Photon только на английском
- Баги ищутся часами в логах и на форумах
- Перекраска спрайтов вручную в Photoshop
- Магазин и валюта проектируются с нуля
- Месяцы работы для одного разработчика
- Описал задачу — получил скелет на C#
- Описал ошибку — получил объяснение и фикс
- Python и Pillow перекрашивают спрайты за минуту
- Магазин и промокоды — пара диалогов
- Несколько недель до релиза на itch.io
Из чего состоит Spike & Run
Под капотом игры — несколько систем, каждая из которых решалась отдельно. Вот ключевые части архитектуры.
Комнаты по кодам
NetMen.cs живёт через все сцены и подключается к Photon Cloud. MasterClient грузит GameScene, остальные синхронизируются автоматически.
Интерполяция позиции
NetworkInterpolation реализует IPunObservable: владелец шлёт координаты, удалённые клиенты плавно интерполируют через Lerp.
Анимация без Animator
PlayerController грузит спрайты через Resources.LoadAll и меняет SpriteRenderer.sprite по таймеру вручную.
Монеты в PlayerPrefs
SkinShop проверяет баланс, списывает цену, сохраняет результат. Промокод TEST даёт +1000 однократно.
RPC на все клиенты
ChatManager открывает окно по T, закрывает по Esc. Сообщение уходит через photonView.RPC.
Отдельный объект в мире
Над игроком — TextMeshPro в мировых координатах, не дочерний — чтобы не флипался вместе со спрайтом.
Согласовать локальное состояние (скины, монеты, PlayerPrefs) с сетевым состоянием Photon Custom Properties в правильном порядке. DontDestroyOnLoad объект NetMen при каждом возврате в меню конфликтовал с новой копией из сцены, пока не добавил правильный паттерн синглтона.
Кто действительно писал код
Claude от Anthropic — основной помощник по коду. Читал мои скрипты, объяснял ошибки в консоли, предлагал фиксы и писал новые скрипты по описанию. Большинство C#-файлов проекта написаны в диалоге с ним. Я описывал что нужно — он писал заготовку — я дорабатывал и интегрировал. Особенно помог с архитектурой мультиплеера и колбэк-багами Photon, на которые в 2021-м ушли бы недели.
OpenAI Codex — помогал понять архитектуру проекта изнутри. Когда нужно было увидеть как все части связаны, он давал точные технические описания и предлагал улучшения.
Python и Pillow — не ИИ, но автоматизация, написанная с ИИ. Скрипт за несколько секунд перекрашивал все 9 спрайтов персонажа в нужный цвет, убирал чёрный фон, переименовывал файлы. Три скина — три запуска.
ИИ не пишет игру за тебя. ИИ убирает трение между идеей и реализацией.
Порог входа обвалился
За пять лет порог входа в геймдев заметно снизился. Школьник без опыта в сетевом программировании за несколько недель собрал рабочий мультиплеер с кодами комнат, синхронизацией движения, системой скинов, магазином, промокодами и чатом — и выложил игру на itch.io.
ИИ не отменил необходимости понимать концепции. Мы по-прежнему сами проектируем архитектуру, настраиваем сцены, разбираемся когда и что вызывается. Но ИИ резко сократил рутину: объяснение ошибок, генерация вариантов, шаблонный код — теперь это минуты вместо часов. Главное — грамотно формулировать задачу и контролировать результат. Творчество и архитектура остаются за человеком.