Я наконец стал разработчиком и теперь могу грабить корованы

Прокомментировать Просмотры: 0

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

Теперь я понимаю, что полюбил программирование ещё в детстве: всё началось с «посадки на Луну» на калькуляторе Б3-21 или МК-52 с их загадочным ЕГГОГ. Для меня это никогда не сводилось к написанию кода — это была возможность свободно творить и воплощать замыслы.

Особенно ярко это ощущалось во Flash с его ActionScript, позволявшим легко управлять графикой программно. Какие прекрасные падающие и тающие снежинки можно было создавать!

«Вот снежинка, и она тает. Вот целая группа снежинок. Вот пути, по которым они летят. А вот уже и снегопад». Это было не просто красиво — это было настоящее волшебство!

И сегодня это волшебство снова стало доступным. Удивительное ощущение свободы: можно создавать всё, что придёт в голову, и воплощать старые идеи, успевшие покрыться пылью под отговорками «нет времени», «нет сил», «слишком долго и сложно».

Вот и я взялся за игру, которую придумал сам.

С технической стороны ничего необычного: React, CSS и Laravel, поэтому рассказывать об устройстве игры было бы не слишком интересно. Зато хочется поделиться вдохновением, которое я обрёл. Работаю над проектом с января 2026 года. Он ещё не закончен, но играть уже можно — и мне по-прежнему не надоедает!

Корованы. Грабежи. Битвы. И экономика, механика, алгоритмы...
Корованы, грабежи, сражения — а ещё экономика, механики и алгоритмы…

Берём кубики, клетки и движение по кругу из Monopoly, переносим всё это в мир первой King’s Bounty (…you find a map with a passage to Forestria) и добавляем рыцарей. Это ведь не игра буржуев — в ней должно найтись место доблестным сражениям! Графику поручим Gemini, код — Claude. И то и другое по мере необходимости доработаем напильником. В конце концов, когда-то такая графика считалась отличной, правда?

Сегодня вдруг понял, что никогда не играл за мага!
Сегодня внезапно осознал, что ни разу не играл за мага!

Но какой должна быть боевая система? Всё должно помещаться на экране, поэтому повторять Heroes или ту же King’s Bounty не очень хотелось. Может, просто бросать кубики: сколько выпало, столько врагов и погибло? Заодно сохранится дух настольной игры… Нет, уже через два дня стало скучно. В Civilization, Warlords II и даже AuraLux сражаться было интереснее. Да и противостоять должен не сам себе, а хотя бы боту…

И вот тут начинается настоящее приключение:
нужно вообразить то, чего пока нет и никогда не было. Это и есть настоящая разработка — когда заранее неизвестно, что получится, а чёткого технического задания не существует.

Есть лишь идея и одно общее условие: должно быть интересно.

Значит, придётся пересмотреть игровую экономику: одними солдатами не обойтись, нужны ополченцы послабее и конные рыцари посильнее. Но рыцарями не рождаются — ими становятся! Добавим параметр «Слава», который заодно будет напоминать уровень в Munchkin. А ещё понадобятся зомби с руинами, где они обитают, и бродячие орды, от которых придётся обороняться!

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

А вместе с ними понадобится и система случайных событий.

Если друг оказался вдруг...
Если друг оказался вдруг…

«Ехал рыцарь через реку, видит рыцарь — в реке орк».

Грабить — это здорово! Или всё-таки не очень? Но не насаждать же высокую мораль в средневековом мире! Не хотелось бы повторять ситуацию из Morrowind, где каждый каджит бросается на тебя и зовёт стражу.

Лучше введём карму: грабишь корованы — она падает, освобождаешь рабов — растёт. Уже интереснее! И пусть карма влияет на события: то дракон не просто пролетит мимо, а сожжёт ферму, то нагрянет чума, то налоги… Жестокость и страдания — всё как надо!

А что, если переделать экран битвы в духе старинных фресок? Добавим в планы!

Коней жалко до слёз
Коней жаль до слёз

Я испытал с полдюжины механик: сражения стали увлекательнее, боты — сообразительнее. Игра оживает прямо под руками, меняется и сама требует новых решений! Одни изменения даются легко, ради других приходится переделывать всё заново. Но какая разница? Теперь возможно всё.

Из простого: расставил на поле боя препятствия — появилось больше простора для хитрости и тактических манёвров. Сделал так, чтобы удар в спину чаще наносил критический урон. Осталось понять, где у них спина.

Из сложного: для защиты построек напрашивается механика Tower Defence. Но лучников-то у меня нет! Выходит какая-то Plants vs Zombies… Хотя и там хватает стратегии. Зато у меня есть Башня Лучников и Башня Аркебуз… Стоит обдумать — может получиться очень интересно. А может, для сражений с меньшим числом участников, чем 12, сделать тактику как в первой UFO: Enemy Unknown? И добавить лечение юнитов, и ветеранов… Так, стоп. Пока отложим. Отложим.

Для начала нужно подтянуть экономику: сейчас в ней слишком многое завязано на золоте. Наследие «Монополии»! В одних местах золота горы, в других его не хватает; заплатил налоги — и спокойно двигайся дальше… На фоне Heroes или настолок вроде Catan всё это выглядит довольно скучно. А ведь была ещё замечательная Tradewinds 1/2 на Palm и PocketPC! Как здорово было заглянуть в Shangri La после удачного плавания с грузом опиума!

Выходит, нужно сделать так, чтобы каждая постройка приносила свой ресурс, крестьяне его добывали, а затем их можно было вооружить и превратить в солдат… Будем обменивать трёх овец на две пшеницы… Нет, для мобильной браузерной игры это слишком сложно, да и делать клон не хочется. А возня с крестьянами? Не рыцарское это занятие — копаться в земле! Пусть будет всего два вида ресурсов: оружие и еда. И никаких крестьян. Когда-то ведь обходились одной торговлей?

Давно забытое Press 'ESC' to start...
Забытое временем Press ‘ESC’ to start…

Сделал. Устал страшно, в комнате запахло сожжёнными токенами. Запускаю игру: уровень двенадцатый, армии нет, оружия тоже, зато еды целая гора — и что с ней делать, непонятно. Значит, в конце года нужен Урожай, чтобы обменивать одно на другое (…мы будем ломать ваш звездолёт, и нам за это ничего не надо…).

Погодите. Года? У меня же всё измеряется ходами и кругами. Один игрок проходит круг быстрее, другой медленнее, но время должно идти равномерно, чтобы Урожай наступал для всех одновременно! Придётся вводить время и, надев запонки и гетры, считать дни и километры месяцы и годы.

Как бы я справился со всем этим без покладистого Клода под рукой? Да, иногда он тупит и теряет контекст, порой повторяет одну и ту же ошибку или забывает, что не стоит в очередной раз сообщать: «Это будет стоить вам 0 золотых монет». Да, алгоритм поиска пути за ним приходится дорабатывать. Но возможность сделать столько всего «в одно касание» — это же невероятно, настоящее волшебство.

Я бы сдался ещё на этапе переделки поля боя из шестиугольников в квадраты и обратно. А любой нормальный программист послал бы меня на зюйд-зюйд-ост после просьбы: «Давай выбросим механику разделения армии на отряды, над которой мы бились последние три месяца и на которой держалась половина игры. Кажется, она больше не нужна».

Но нам довелось жить в удивительное для творцов время, когда между идеей и её воплощением стоит всего один Клод. И если я захочу переписать всё на Rust или Flutter либо вместо HTML/CSS подключить Unreal Engine, я понимаю: это не только возможно, но и не так уж сложно!

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

Мы живём в прекрасную эпоху возможностей. Не упустите её! Ведь никто не знает, какой будет следующая шутка Джокера — доброй или злой. Даже если у вас положительная Карма и высокая Слава.

Играть и грабить корованы можно по ссылке. Лучше с мобильного — ведь «CSS — это сложно». Всё работает в браузере, занимает около 30 мегабайт, никакой рекламы, трекеров и, упаси боже, монетизации.

На ужасный код на TypeScript можно посмотреть на GitHub.

Идеям и дополнениям буду рад!

 

Источник

Похожие статьи

Поиск по играм, новостям и статьям…

Введите не менее двух символов

Введите не менее двух символов