Браузерная игра «Киберсеть» — продолжение

в 20:49, , рубрики: game development, game theory, я пиарюсь, метки: ,

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

Концепция игры

Начну с описания, которое можно увидеть на главной странице игры:

Игра «Киберсеть» — это бесплатная браузерная стратегия реального времени. Попадая в этот мир разнорабочим, без имущества и опыта, перед вами три пути развития: ремесленника, купца или рыцаря. Каждая профессия дает свои уникальные преимущества. Ремесленник может составить себе распорядок дня и без вашего присутствия выполнять различную работу. Вам нужно лишь время от времени следить за его характеристиками и управлять продажами. Купец может лишь при вашем участии производить продукты, но зато он может — как продавать, так и покупать товары, заключая долгосрочные сделки. Рыцарь может использовать оружие, что дает ему существенное преимущество для нападения и позволяет отбирать деньги у других. Для каждой профессии есть своя организация: Цех ремесленников, Гильдия купцов, Орден рыцарей. Организации позволяют выбирать своего лидера и вместе противостоять агрессивным игрокам. Являясь Мастером цеха ремесленников или Патрицием гильдии купцов — вы можете обратиться в орден рыцарей. Тогда они за плату могут предоставить вам свою защиту. А Магистр ордена рыцарей может вести в бой своих рыцарей и контролировать прибыльные города.

А может Вы хотите попробовать поиграть сразу за двух, трех, и больше персонажей? И это тут возможно. В отличии от многих других браузерных игр — тут разрешено создавать клонов (вам нужно лишь зарегистрировать еще одного участника под другим ником). И тогда Вы можете даже один построить свою империю при минимальном слежении за каждым из персонажей: ведь ремесленник работает автоматически по распорядку дня, купец, заключив долгосрочные сделки, автоматически перевозит товары и получает свою прибыль и остается лишь укреплять свой орден рыцарей.

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

Хронология реализации, что учтено с прошлого раза

А тут я попробую объяснить почему именно так, а не иначе. С самого начала игра задумывалась, как достаточно простая по логике, без выкрунтасов, без графики, скажем так минимум, чтобы появился гемплей. Хотелось чего-то сродни шахматам только в рамках экономической и несколько социальной стратегии. Отсюда были мои первые идеи о том, что программисты могли бы даже писать ботов, чтобы играть в подобную игру по формальным (читай замкнуто математическим) правилам. Эти первые идеи были навеяны браузерной игрой «Виртономика» и немного старой доброй «Цивилизацией».

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

Говоря немного математически, любая игра — это поиск некоторого состояния персонажем игры, при котором будет максимизироваться некоторый критерий при заданных ограничениях. Интеллектуальная составляющая игры состоит в том, чтобы игрок применял различные стратегии поиска этого максимума, например, максимизации прибыли. Но намерено или нет, современные браузерные игры не дают возможности заниматься только этой интеллектуальной составляющей. И зачастую в игре возникает необходимость «кликанья» — т.е. выполнения достаточно монотонных, ежедневных действий. Возможно это связано с тем, что эти игры пытаются монетизировать и получать прибыль, предоставляя игроку средства избавляющие его от монотонных действий. В таком случае, это довольно плачевно, и моя попытка создать собственную игру это желание избавится от такого примитивного монетизирования с потерей роста необходимости интеллекта в игре.

Второе, я отказался от пошаговой стратегии в пользу реал-тайма. Это просто ужас, что все в той же игре «Виртономика» нужно ждать сутки, чтобы пересчиталось состояние игры. Такой подход просто противоестественен. Некоторыми был выдвинут такой аргумент за необходимость такого долгого пересчета состояния игры. Мол это позволяет игроку сделать свой ход и уйти скажем на работу. Но в реальности это просто хорошая мина при плохой игре. Игрок интеллектуально должен играть столько и тогда, когда он хочет. Он пришел играть и не дело это разработчиков регулировать игрока временными рамками, связанными с синхронизацией шагов. Кроме того, за пошаговость был целый ряд технических аргументов от юзеров (пользователей, которые думают, что они что-то понимают в программировании). Их я просто не хочу тут обсуждать и отметаю как не состоятельные — игру можно и нужно делать в реал-тайме.

Но как тогда справиться с желанием, выключить и отдохнуть от игры? Я также поиграл и в другой антипод «Виртономики» игру «Я, Феодал». Необходимость постоянного онлайна там вызвана страхом полностью проиграть, и люди реально недосыпают сутками, неделями и потом бросают игру из-за проблем в реальности. Такой антипод мне тоже был не нужен. И мне кажется, я нашел ту золотую середину с достаточно простой идеей. (возможно её знают и другие разработчики, но опять же желание монитизации и подобные идеи похоронены).

В игре «Киберсеть» персонаж имеет характеристики (Здоровье/Энергию/Бодрость/Интеллект), так вот они изменяются только в процессе выполнения персонажем действий. Как только очередь из не более чем 10 задач закончилась — персонаж перестает изменяться. Таким образом, пока игрок играет и наполняет очередь задач — происходит реал-тайм. Закончил играть, остановил игру и уверен, что прейдёшь с работы, а персонаж будет таким же. А как с тем, чтобы поставить выполнение задач на время пока ушел на работу? А здесь вступает в игру умение игрока прогнозировать. Самый простой способ изучить условия игрового мира и выставить сразу 10 задач, предполагая, что произойдет с персонажем. А, что если поучиться планировать не на несколько часов вперед, а сутки, недели, чтобы персонаж жил в игре автономно? И это возможно — вы составляете единообразное расписание для ремесленника на сутки и он каждых 24 минуты (игровые сутки) делает одно и то же. Торговля также происходит автоматически и без вашего присутствия, если заключить долгосрочные контракты. Т.е. тут возникает второй уровень игры для скажем так продвинутых игроков. Сразу оговорю, что составить стабильную самобалансирующуюся работу нескольких персонажей — достаточно сложно, но теоретически возможно.

Третье, естественный рынок. В прошлой статье я описывал, что понимаю под естественным рынком, и что еще не видел ни одну игру с таким. Главное изменение в концепции сейчас — я отказался от идеи бартерного рынка — это слишком сложно для игроков, и бартерный рынок возможен лишь при крайне узком ассортименте (например, как в игре «Я, Феодал», где игроки меняют всего пять видов ресурсов). Но тогда встал вопрос, а откуда брать денежную массу? Если ее выдавать через фиктивный спрос, то опять получим искусственный рынок. Тогда мне пришла в голову интересная идея. Деньги должны чем-то обеспечиваться. В реальности золотом или обязательством государства всегда получить товар за деньги. Но что реально ценится игроками, играющими в браузерные игры? И тут я понял — время — деньги, и наоборот. Был еще такой фантастический фильм, где люди зарабатывали и расплачивались временем. Так вот в игре «Киберсеть», все именно так — деньги выдаются по 1$ за каждую секунду потраченную на создание товаров (кроме случая автоматизированного производства ремесленником). И по завершению производства вы получаете и товар на склад и деньги. Казалось бы немного странно. Но считайте, что это такой новый общественный строй, где каждому разрешено печатать деньги в зависимости от потраченного времени на производство. А дальше начинается самый, что не на есть естественный рынок — вы покупаете, продаете, грабите время другого игрока, кто заработал больше — тот и в топе лучших игроков.

Четвертое, военная составляющая. Я долго сомневался вводить ли военную составляющую в игру, опросы показывали, что мнение разделяется — кто-то считал, что это улучшит игру, кто-то считал, что ухудшит. Главная новость тут — военным операциям быть :) Необходимость военной/силовой составляющей необходима в плане социализирования коллектива игроков. Ни что так не заставляет общаться и играть вместе, как чувство не защищенности. В чистой экономической игре добиться ощущения незащищенности невозможно, все что там можно — это иметь страх обанкротится. Но экономисты — это, как правило, отдельные личности, работать вместе они по определению не могут и должны следовать лозунгу «компания компании — волк». И совсем другое дело, когда человек пасует перед сильным и боится силового отнятия потраченного времени. Здесь появляется мощная социализация, и различные эффекты реального общества. На данный момент нападения в игре достаточно простые. Рыцари могут использовать оружие, что дает им преимущество. А ремесленники или купцы объединяясь могут платить за защиту другим рыцарям. Между собой рыцари могут драться за контроль городов, борясь за свою честь и славу, которая выразиться в количестве денег, которые захотят отдать им или добровольно или путем применения силы купцы и ремесленники.

Да с введением военной составляющей возникает небольшое противоречие с тем, что я сказал вначале. «Игрок интеллектуально должен играть столько и тогда, когда он хочет» противоречит «выключить и отдохнуть от игры». Ведь когда играешь в коллективе необходим твой он-лайн для возможности массовых сражений, а ты в этот момент ушел. Возникает проблема синхронизации действий людей находящихся в разных местах и в разное время. И тут возникает аргумент, который я слышал против введения военных действий — «ты пришел и тебя уже уничтожили».

В игре «Киберсеть» было найдено следующие решение. Во время нападения ты можешь потерять только деньги. Здоровье и прочие характеристики теряются так, чтобы оставить минимум. Поэтому когда игрок возвращается в он-лайн — у него есть шанс вылечить своего персонажа. Т.е. сражения у него отнимают просто доп. время на восстановление персонажа и он лишается денег. Что кстати, поощряет не хранить много наличности, а покупать на них товары. А также искать себе лучшую защиту — защищающий орден рыцарей, и находится там где эта защита есть.

Но кто кого подчинит сила деньги или деньги силу — покажет игра.

Пятое, некоторые мелочи. В игру добавлены советы, объясняющие игроку с чего и как лучше начать. В самом деле, прошлый прототип этого не имел, и я сталкивался с многочисленными вопросами — «а что делать в игре?». Надеюсь с наличием этих минимальных советов и пояснений в игре, характер вопросов изменится на «Как? Для Чего? И как лучше?», и уже на форуме сами игроки (или поначалу я) смогут давать ответы на это.

Также можно заметить, что игра приобрела минимальную графику — карту и заготовки для спрайтов в стиле «тут мог бы быть ваш рисунок». Поэтому по графике прошу не критиковать, я понимаю, что это нужно, без этого не то и т.п. Я просто сам не в состоянии это сделать — будет художник, будут лишние средства, будут пожертвования — будем решать, теперь тут нет вопроса технологии. Как говорится любой ваш каприз за ваши деньги. :)

И последние, изобретение новых предметов. Об этом я писал в прошлой статье:

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

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

И как показали опросы это наиболее сильная сторона описываемой игры. Это никуда не пропало, но я изъял интерфейс введения новых предметов у игрока. Теперь я предлагаю описывать это на форуме и учитывая все пожелания я сам буду вводить ваши задумки. Также был пересмотрен механизм таких изобретений. Теперь для создания того или иного предмета нужен тот или иной уровень определенной постройки. Предметы как и раньше имеют разные способы получения и требуют для создание сырье, инструменты и прочие составные части. Но теперь они еще и завязаны на характеристики персонажа: вводить условный предмет с названием характеристики, например, «Здоровье» — и тогда остается придумать способы увеличения этой характеристики. Таким образом, технологическая линия стала более законченной, и позволяет менять характеристики персонажа.

Программная сторона вопроса

Тут я не буду вдаваться в детали, а лишь немного похаливарю, но прошу в ответ этого же не делать :)

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

1. ASP.NET + C# — тут просто нет конкурентов, все остальные языки и способы создания веб-страниц это прошлый век. Я долго пытался понять почему я так считаю, и нашел основной аргумент в том, что другие языки не имеют двух с половиной серьезных инструментов. Половинка — это развитый текстовый редактор с интеллектуальной подстановкой, поиском определений переменных, функций, автоматическим форматированием и т.п. Тут можно поспорить — но прочие меня не удовлетворяют. Серьёзнее начинается с тем, что в других подходах нет т.н. проектов, где для редактирования и компиляции ты из кучи файлов собираешь единый проект. И самое серьезное — это отсутствие отладчика.

2. JavaScript — на клиентской стороне оказалось без него никуда. Пришлось немного изучить, хотя у языка существенные проблемы с объектной идеологией и собственно нет отладчика. Но опять же тут просто нет альтернатив. Но хорошо, что Visual Studio позволяет включать скрипты в проекты и предоставляет так же текстовый редактор.

3. Графика предполагается с использованием Canvas. Опять же я пришёл к выводу, что чистого HTML не достаточно, а других альтернатив для простой графики просто до этого и не было.

4. MySQL — это самый спорный момент. Для меня это был эксперимент, по работе я программирую на MS SQL Server. MySQL явно уступает MS SQL. Но критические моменты я нашел только в одном. MySQL — как серверу SQL еще развиваться и развиваться. Достаточно скромные возможности следить за нагрузкой, строить планы исполнения. Но главное нет возможности создавать задания, работающие по таймеру. Именно поэтому мне пришлось писать игровой сервер для игры на С#, который периодически запускает SQL процедуры на выполнение.

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

Автор: tac

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js