"Объясняю каждую строчку" - отчёт за апрель. А так же конкурс!

Больше "пыщь-пыщь" богу "пыщь-пыщь"!

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

Что изменилось за месяц?

У нас появились стены! Сквозь эти стены не пролетают враги, пули и игроки. А ещё враги не "складываются" в одного мегаврага, хоть и могут иногда пролететь друг сквозь друга. Мы катаемся вдоль стен, не проходим сквозь стены, даже если они расположены неудобно. Казалось бы, мелочь, но мелочь важная и в меру трудоёмкая.

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

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

  • Стрелять в фиксированном направлении
  • Стрелять в сторону игрока
  • Стрелять во все возможные стороны разными пулями
  • Стрелять очередями

И вот на этом мы на прошлом стриме и остановились.

Видения светлого будущего

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

К примеру, вот к чему я пришёл касательно геймплея:

  • Максимально гладкое и понятное управление
  • Расстояние между "чек-пойнтами" не больше двух-трёх минут. Без всяких жизней и "continue"
  • Плавное нарастание кривой сложности
  • Вообще, стараться быть с игроком максимально честным.

Зачем мне именно это? ЧТОБЫ МАКСИМАЛЬНО ЭФФЕКТИВНО НЕСТИ БОЛЬ И СТРАДАНИЕ!!! Ведь у нас шмап, а хороший шмап - он про боль и страдание. И нести их надо так, чтобы не оставалось никаких оправданий. Не разбивай геймпад об стену, ведь это у тебя руки пока кривоваты. В смысле, "я не вынесу этой потери"? Чек-пойнт был сорок секунд назад! Это нечестно? Ты же похожее уже проходил. Да, это у тебя руки кривые. Но ещё три-четыре попытки и всё получится. Или тридцать-сорок. Но получится обязательно.

Ещё одна вещь, на которую кажется естественным сделать ставку - это расширяемость. Код открыт. Ассеты лежат прям вот в облачке. Чисто теоретически любой может скачать, собрать и обработать напильником. Со временем появятся какие-то редакторы, потому что без них я тупо не смогу продолжить разработку. Пока я не знаю, наколхожу ли я что-то сам, или приспособлю тот же Tiled (шикарная штука, попробуйте её как-нибудь). Но у меня будет возможность клепать с помощью этой гипотетической утилитки уровни. И я точно не буду лишать этой возможности других. А там, может, какое API для модов смастерю. Чисто из любви к искусству.

Что касается ассетов. Они выглядят своеобразно. Потому что у меня нет времени и навыков сделать иначе. Всё, что я смог, это сгладить этот эффект, задействовав специальный софт. Во-первых, aserprite, специальный редактор для пиксельных спрайтов, позволяет ограничить палитру. И там есть несколько предустановленных наборов. Я использую "NES". Во-вторых, для звуковых эффектов задействуется утилитка с сайта bxfr.net, которая позволяет соорудить звуковые эффекты в три клика, но как ты ни кликай, получается что-то похожее на пищание вашей старенькой Денди. В результате сам собой получился эффект, когда каждый, кто видит игру, говорит "о, танчики!". Я намерен пока сохранить это.

Подытожим. В далёком светлом будущем должен получится всратый гибрид Nex machina, Super meat boy и танчиков с денди.

Нет, я реально хотел что-то такое сделать в детстве<br />
Нет, я реально хотел что-то такое сделать в детстве

Конкурс! С призами!

Есть у меня класс GameObject. А так же GameObjectsFactory, ActiveGameObjectsStorage и прочие. Проблема в том, что название GameObject отвратительно. А нового я придумать не могу. А ведь это чуть ли не центральный концепт для всей игры. Для меня это настолько важно, что я проведу конкурс с денежными призами ради решения этой проблемы.

Задание: придумать новое название для класса GameObject, и обосновать ваш выбор не очень большим текстом (до 200 слов, больше не надо).

Призы:

  • 1 место: 600 рублей, сигна, благодарность в прямом эфире, переименование класса GameObject по вашей задумке в прямом.
  • 2 место: 300 рублей, сигна, благодарность в прямом эфире
  • 3 место: 100 рублей, сигна, благодарность в прямом эфире

Предлагать свои варианты можно в трёх местах:

  • Комментарии к этому посту
  • Личка паблика вконтакте: vk.com/explainingeverystring
  • На нашем дискорд-сервере (прямо в чат можно, заодно его и оживите): https://discord.gg/SuqNtcH

Факты об игровых объектах, которые могут вам помочь:

  • Игровой объект можно нарисовать
  • У игрового объекта есть хит-бокс, который ловит пули, и не позволяет ему проезжать сквозь стены
  • Его можно обновлять на каждой итерации игрового цикла
  • Некоторые игровые объекты могут получать урон от пуль
  • Игрок является игровым объектом
  • Враги являются игровыми объектами
  • Стены является игровым объектами
  • Пули НЕ являются игровыми объектами
  • Оружие, из которого стреляют игрок и враги, НЕ является игровым объектом
  • Игровые объекты конструируются по чертежам. Чертежи лежат в JSON-файлах, вроде этого: https://github.com/chelovekbeznika/ExplainingEveryString/blob/master/DataExample/blueprints.dat
  • А части игровых объектов делаются не по чертежам, по спецификациям, которые часть чертежа

Ссылки для тех, кто хочет узнать больше:

Работы принимаются до 10.05.2019 23:59:59. Я планирую стрим на 11 мая, где, в прямом эфире и подведу итоги конкурса. Если кто-то сдаст 11 утром, то на свой страх и риск, потом не обижайтесь.

Единственным критерием при выборе нового имени для GameObject будет моё чувство прекрасного. Оно может отличаться от вашего, поэтому попрошу не обижаться, и не разочаровываться. Со своей стороны могу только пообещать обосновать свой выбор в прямом эфире.

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

Ссылки и расписание

Следующий стрим в четверг, 2 мая, в 21:00 по Москве. Потом 4-го мая в 17:00. Потом на майские праздники я съезжу домой на недельку. И 11-го числа, в 21:00 (потому что для меня это рабочий день будет) проведу ещё один стрим. И уже после этого постараюсь вернуться к своему обычному расписанию: понедельник, среда, суббота.

66 показов
733733 открытия
26 комментариев

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

Ответить

С таким отношением - только торрент.

Ответить

Очевидное Entity или GameEntity. Придумать что-то, более отражающее суть, сложно.

Ответить

Чтобы потом плодить сущности, хитро-хитро.

Ответить

"Синоним гейм обжекту придумать?" - Вкратце, да.
"А ещё, почему оружие и пули не сделаны через гейм обжекты, можно плз вкратце?" - Вкратце: так исторически сложилось. А если серьёзно, то оружие - часть игрового объекта, а пуля мне показалась слишком уж "мелкой" для того, чтобы стать полноценным действующим лицом.

Ответить

Как вариант - Element. Достаточно абстрактно и обобщённо, без заявок на что-то конкретное. На участие в конкурсе не претендую, если что:)

Ответить

"На участие в конкурсе не претендую" - Поздно!

Ответить