Тихая круговая оборона
Как-то на гамине совсем тихо. Разбавлю тишину рассказом о своей игре на последний Ludum Dare.
Stuck in the loop… В очередной раз убеждаюсь, что любая тема, даже та, за которую проголосовал лично ты, в день джема становится невыносимой, неприемлемой и вообще всячески оскорбляющей творческие способности. Усмирив негодование, набравшись наглости, беру инструментом для разработки Love2D. Самое то для хардкорных условий компо. Я абсолютно не знаю, что с ним и как, зато я знаком с языком программирования lua. Это ведь должно помочь, не так ли?
Я расчехляю документацию по фреймворку, параллельно или с небольшим рассинхроном в моей голове проносятся нездоровые образы. Цикл, зацикленность, мономания. Поток сознания рисует пригоршню зубов. Эдгар По, «Береника». Полюбившаяся то ли с замшелых книжек, то ли с Inscape’овского The Dark Eye история требует обновления. Не без удовольствия перечитываю, в голове появляется образ геймплея: курсором жмакаем на зубы, выполненные в стиле старинных гравюр, те выпадают, а по мере освобождения челюсти от зубов всё сильнее прорисовывается силуэт других зубов вдалеке и когда последний из зубов исчезает, тот силуэт издалека увеличивается до размера изначальной челюсти. Повторять до бесконечности. Сцена вторая — гадания. Снова гравюра, теперь ромашка. Вместо лепестков — зубы. Любит — не любит. Можно придумать что-то ещё, но для начала хватит.
Нужно искать гравюры с зубами. Ищу работы по стоматологии 18−19 века. Какой-то француз, Пьер Фошар. Мало подходящих картинок, нет челюсти анфас, но ромашку собрать можно. Понимаю, что день уже вышел далеко за экватор, а я всё ещё не писал код. Редактора уровней нет, но ромашку и зубы можно представить умозрительно, возиться со сторонними редакторами для таких простых вещей смысла нет.
Стоп. Я же решил участвовать в компо. Правила в компо лудума очень жёсткие — всё делает один человек с нуля,
пример плохих деривативных работ с сайта лудума
Совершаю прогулку, во время прогулки решаю отказаться от «Береники» в пользу того, что я смогу сделать за полтора оставшихся дня. Своя графика — хорошо, попробую что-то сделать в MagickaVoxel. Музыка не проблема. Забегая наперёд, скажу, что ни графики за пределами минимализма из титульной картинки, ни уж тем более звуков и музыки не было. Думаю о том, что гуляю я по разным маршрутам, но в целом все они приводят домой. Но я знаю людей, которые не любят менять маршруты прогулок. Повторяющиеся маршруты прогулок — stuck in the loop. Это стало отправной точкой следующего прототипа.
Времени в обрез, отказываюсь от Love2D. Беру пока ещё не обкатанный, непривычный для меня Game Maker Studio 2.3. Решил использовать DS_Grid, обычно обходился двухмерными массивами. Сделал базу для игры в виде игрового поля и намёток по его движению, но образ геймплея в голове смутный, неполный. Утро вечера мудренее.
пример хороших деривативных работ с сайта лудума
Остался день, нужно добавлять геймплей. Исписал пару листов по поводу параметров игры. Страсть, привычка, деньги, мораль, здоровье — их взаимозависимость. Привычные места, вроде магазина или работы, повышают привычку. Чем выше привычка, тем меньше хочется идти в непривычные места. Звучит неплохой игровой гипотезой. Новые места открывает страсть, которая зарабатывается в локациях вроде каких-нибудь развлекательных заведений. Работа даёт деньги, но отнимает здоровье и страсть. Неплохо. Чтобы двигаться по локациям, нужно замкнуть круг. День за днём, мы замыкаем круг за кругом. Но замыкать круг на сетке 4 на 4 как-то скучно, к тому же я решил обосновать использование параметра страсти, закрыв крайние локации, которые страстью и открываются, но при этом дать манёвр для путешествий игроку, да и в сетке с четным количеством элементов дом оказывается не в центре сетки. К счастью, код был достаточно гибок и одним лёгким движением сетка стала 5 на 5. Но было 16 локаций, а стало 25. Нужно придумать им названия и как они будут влиять на параметры. До конца компо всего-ничего, а вставить для каждой локации параметры, чтоб они имели хоть какой-то смысл, не так-то просто. Открыл MagickaVoxel для локаций, попробовал что-то сделать, но через полчаса закрыл. Я ни черта не успеваю. Придётся участвовать в джеме.
Хотелось бросить это дело. На бумаге звучало не так уж плохо, но геймплей был куцым. Третий день пошёл на добавление случайных событий, устранение багов и придумывания интерфейса для этих событий. Вообще горжусь интерфейсом — он не рисуется в реальном времени, просто каждое его изменение обновляет surface. Как я не додумался до такого в своих более старых играх с тяжёлым интерфейсом? Понятно, что для прототипа за три дня никто не требует производительности, но выигранные две-три сотни фпс, которые игрок всё равно бы не заметил, греют мою оптимизаторскую душу. Вообще в третий день было сделано гораздо больше, чем тут описано, но для меня закончилось время историй, я не рефлексировал свои действия, я просто писал и писал код. Игра должна выйти, какая бы она ни вышла. Я отказался от параметра привычки, оставив только деньги, здоровье, мораль и страсть. От морали зависит количество мест, которые можно посетить по простой формуле места для посещения = мораль / 10. Я сделал так, что открытые локации могут со временем случайно закрываться. Я придумал крутое название для прототипа — «Тихая круговая оборона». Жаль только, что идея не просто закрывать локации, а вообще их метафорически уничтожать с карты, оставив, например, только дом и работу, пришла мне уже на следующий день и в игру я её не добавлял.
- 18 октября 2020, 22:30
- 015
Хорошо, что от Love2D отказался сразу. Скорее всего, было бы еще сложнее.
Есть какая-нибудь игра, над которой вы на постоянку работаете?
Если да, было бы круто что-нибудь про это читнуть о_0
Да, вот она. Кое-что по ней есть в группе вконтакте. Я обязательно напишу подробней, когда игра будет приближаться к этапу закрытого тестирования. Прямо сейчас я работаю над катсценами последней главы. Работы ещё очень много.
Йеее, выглядит довольно стильненько, так держать! :D
На 2-х дневные конкурсы всегда надо брать инструмент, которым ты уже хорошо умеешь пользоваться.
Согласен. Просто у меня был опыт лудума, когда я ради эксперимента взял QBasic (я был знаком с бейсиком по его реализации для спектрума) и с нуля для компо сделал на нём игру. Очень примитивную, но всё же играбельную. Потом я стал заложником этого случая - до этого как-то пытался сделать игру на pygame под какой-то из гаминовских джемов (логика такая же - я чуточку знаком с Python), но дальше базовых вещей не продвинулся и совсем забросил делать игру.
По-моему не самый лучший выбор - как в плане скорости, так и в плане создания игры в которую хотелось бы играть и доделывать её потом. Я в конкурсах участвовал мало, потому что не люблю все делать в спешке. Может быть поэтому неспеша написал за много лет то, что я называю своим движком и использую его в разработке. Лучше всего использовать то, что хорошо знаешь, а если приходится искать что-то новое, лучше начинать с того, что является частью твоих знаний. Если же выбрать что-то о чем знаний вообще нет никаких - то глупо надеяться на быстрый результат. Тут проблема будет не результат выдать, а вообще въехать в тему. Проблема большинства тех, кто участвует в конкурсах - хватают что-то новое, что давно хотелось освоить и в итоге и игру не делают и еще и теряют окончательно мотивацию и веру в свои силы. А всего-то и нужно было не спешить и вдумчиво осваивать. :))))