Рубрики
Без рубрики

Я написал онлайн игру Побег

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

Автор оригинала: Edaqa Mortoray.

Я любитель побега, кто-то может сказать, наркоман, и в течение последних нескольких месяцев я скучал по нему. Один мой друг, настоящий наркоман с более чем 500 номерами на свое имя, начал организовывать онлайн-конкурсы. Поиграв в несколько онлайн-игр, я подумал: “Я хочу построить свою собственную.”

Итак, в течение последних нескольких месяцев я писал онлайн — игру побега – которую можно было бы назвать веб-головоломкой, но с захватывающей вспышкой побега! Его вполне можно назвать “Прототипом”. Я полагал, что это имя позволит мне избежать некоторых грубостей. Это будет развивающийся проект, но первый взнос будет успешным.

Я горжусь своей игрой. Я хочу рассказать вам, как я это сделал.

У меня было несколько важных целей на эту игру. Они находятся где-то в спектре между пользовательскими эпосами и прецедентами.

-Безболезненный опыт для пользователя : Я хотел, чтобы все это было в браузере. Эти типы игр относительно короткие, и необходимость что-то скачивать будет очень болезненной. –Многопользовательский командный опыт: Реальные комнаты допускают команды из 2-6 или более игроков, и я хотел, чтобы моя игра позволяла то же самое. Кроме того, определенный мировой кризис является отличным мотиватором для удаленной командной игры. -Безболезненная регистрация: Помимо оплаты, я вообще не хотел никакой регистрации. Это не давало мне покоя во многих других играх. Просто дайте людям играть как можно быстрее.

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

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

В целом я достиг этих целей. Дайте мне знать, где я должен подробно остановиться — опять же, я не хочу писать вслепую обо всем!

В моей голове какое-то время плавал замысел, прежде чем я записал какой-то код. Было несколько проб и ошибок, но архитектура была стабильной с самого начала, с небольшими отклонениями в методе.

Вот некоторые основные части стека.

React : Просто реагируй. Никаких дополнительных модулей, никаких плагинов, ничего. Ядро React обеспечивало то, что мне было нужно. Поскольку у меня была государственная машина, не было никакой необходимости в чем-то вроде Redux. – Python и Flask : Серверные компоненты и обработка игр написаны на Python с использованием Flask, с Flask-SocketIO , с Eventlet (здесь всегда так неизбежно много слоев). – |/- Red is : Небольшая, но существенная часть для координации многопользовательских действий. -SVG: Я перечисляю это, поскольку это ключевая часть движка. Все основано на SVG, хорошо работающем в браузерах. Это была главная неприятность, но удивительно полезная.

Есть также типичные биты веб-сервера, использующие шаблоны Jinja, говорящие с Mongo, Paypal… Zzz. Да, я упомяну об этом подробнее, но подозреваю, что здесь нет ничего нового.

До конца проекта это была масса шевелящихся кусочков! У меня было много напряженных дней, когда я пытался жонглировать технологиями в своей голове. Заставить что – то работать было моей главной целью, и я делал это поэтапно. Теперь, когда я пишу больше игр, я буду продолжать совершенствовать стек, но вряд ли будут какие-то серьезные архитектурные изменения.

Как сказал один мой хороший друг: “Ни один проект Eda qa не будет завершен, если не будет нового языка.” Я слишком ослеплен красотой языков, чтобы уловить даже намек на критику.

Самый важный вопрос технологии: хотел ли я написать игровой движок? Ответ-громкое “нет!” Я написал двигатель, потому что хотел достичь своих основных целей, не видел ничего подходящего и знал, что двигатель находится в пределах досягаемости . Я хотел создавать игры. И я не хотел быть слишком обремененным при проектировании.

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

Я с удовольствием покажу вам, как работает язык, что делает препроцессор и как игра обрабатывает код.

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

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

Я призываю вас попробовать эту игру, Прототип: Нужен Мастер игры Это игра-побег, которую я написал, и мне есть о чем рассказать.