Запуск многопользовательской игры в покер для HTML5 с использованием Phaser

Теперь, когда флеш-игра Blasteroids была преобразована в HTML5, следующая игра, над которой я работаю, - это многопользовательская игра в покер.

Теперь это будет не конверсия, а игра, изначально созданная с использованием Phaser 3, JavaScript и Phaser Editor.

Создание этой игры будет для меня сложной задачей по двум причинам:

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

Поверьте мне, MP-игру создать намного сложнее, чем однопользовательскую. Однажды я пытался сделать MP в реальном времени с помощью PlayerIO, но… скажем так, это не сработало.

Во-вторых, я немного узнаю об экосистеме JavaScript. Я прошел предыдущий курс по Zenva под названием MMORPG Academy. Курс показал вам, как создать простую многопользовательскую MMO-игру с помощью Phaser, Express и SocketIO. Он также познакомил меня со следующими инструментами, которые я также буду использовать в этой игре.

Используемая технология

Node.js

Node.js - это серверная платформа, построенная на движке Google Chrome V8 JavaScript Engine. Его можно использовать для разработки серверных и сетевых приложений. Я буду использовать его как часть серверной части этой игры.

npm - очень большой репозиторий программного обеспечения. Это менеджер пакетов для JavaScript, и вы можете использовать его для загрузки и установки множества сторонних пакетов в свои проекты. Он поставляется с Node.js и может использоваться для установки большинства инструментов, перечисленных ниже.

выражать

Это веб-фреймворк, который позволяет вашему веб-приложению обрабатывать запросы, отправленные на определенный URL-адрес. И Node.js, и Express будут использоваться вместе для создания веб-сервера.

Socket.IO

Это то, что позволит взаимодействовать между клиентским приложением плеера и серверным веб-приложением.

webpack

Помимо прочего, webpack может объединить весь ваш модульный код JavaScript и пакеты в один файл, который будет понятен вашему веб-браузеру.

Вавилон

Намного удобнее писать JS-код в последней / современной версии. Однако более старые версии веб-браузеров не могут понять эти версии. Именно здесь на помощь приходит Babel. Он может переносить ваш современный код в более ранние версии, понятные в старых браузерах, увеличивая доступность ваших веб-приложений для большего числа людей.

ESLint

Этот инструмент проверяет ваш код на наличие синтаксических ошибок или других проблем, при которых код может не соответствовать определенному стандарту или набору правил стилизации. По сути, «линтинг» помогает писать более чистый код.

Некоторые другие инструменты, не обсуждаемые в курсе Zenva, которые я буду использовать в покере:

Машинопись

Я предпочитаю TypeScript JavaScript. Typescript предоставляет вам дополнительные функции, и для меня это означает статическую типизацию и поддержку интерфейсов. Конечно, я уверен, что узнаю больше, когда углублюсь в Typescript.

Примечание.Я планирую написать код с использованием TypeScript (который также поддерживают Phaser и Phaser Editor), использовать Babel (с поддержкой Typescript) для преобразования кода и объединить все это в один файл JavaScript с помощью webpack. Это для клиентской части игры. Внутренний серверный код не будет запускаться в веб-браузере, поэтому он не будет использовать этот процесс.

План развития многопользовательской игры в покер

Перво-наперво: нужно будет создать дизайн и макет игры. Хотя я неявляюсь разработчиком игр (мои услуги в настоящее время включают толькопрограммирование), эта версия Texas Holdem Poker, которую я буду делать, будет иметь относительно простую механику. Здесь ничего особенного. И игра в основном для того, чтобы пополнить мое портфолио.

Мне нужно найти некоторые активы (графику и звуки). Я буду использовать те же ресурсы, что и в своем Thunderjack! игра.

Потому что это многопользовательская игра, использующая модель клиент-сервер, где сервер имеет полномочия и поддерживает состояние игры.

Клиентские приложения (которые будут использовать игроки) действуют как визуальные агенты, показывающие состояние игрового сервера. Они также принимают ввод (клавиатура, мышь, прикосновение и т. Д.) От каждого игрока, отправляют их на сервер, а затем сервер с подтверждением этого ввода. Проверка заключается в том, чтобы убедиться, что штат остается чистым, и предотвратить мошенничество.

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

Далее идут правила покера. Поскольку сервер обслуживает сцену, вся логика игры будет написана на сервере. И, конечно же, мне нужно будет уточнить правила. 🙃

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

Где и как я буду размещать игровой сервер?

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

Многопользовательская игра, которую вам помогает создать курс Zenva, использует Heroku для размещения игрового проекта, так что я воспользуюсь этим снова. Курс охватывает ровно столько, чтобы вы могли создать простую игру, поскольку, я полагаю, любое другое выходит за рамки проекта, но этого достаточно, чтобы начать работу.

По мере того, как я работаю над игрой, я буду публиковать важные обновления в будущих статьях. И вы можете играть в незавершенные версии игры, пока я делаю игровые обновления, прежде чем игра станет общедоступной!

Зарегистрируйтесь, используя эту форму, чтобы попасть в мой список рассылки:

Ух! На этом пока все, и это будет довольно сложно. Я уверен, что это займет у меня время. И я надеюсь, что вы останетесь со мной в этом путешествии! Я понял!💪🏾

ПОПУЛЯРНЫЕ СТАТЬИ