Cura

Остаётся 3 недели до конца DTF инди-джема, самое время наконец написать пост-анонс.

В закладки
Cura

Привет, DTF!

Я студент, который упорно растит из себя геймдизайнера. Но начал совсем недавно. Пока участвовал только в GGJ 2019, и собственных проектов нет. Инди-джем для меня — отличная возможность поработать с темой. Ведь так просто придумать хоть что-то, и так сложно вложить в свой проект интересную идею.

Работа с темой

“Игра не такая, как кажется вначале.”

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

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

Проблема с питчем

Недавно описывал “Cura” своим знакомым, и мы пришли к интересному выводу. В играх этого джема нередко вторая сторона является удивительной особенностью. И как геймдизайнер, я стараюсь скрыть её, убираю все намёки из описания, обучения и даже интерфейса. Добиваюсь того, чтобы впоследствии это стало неожиданным открытием для игрока. Но чтобы продать игру, нужно зацепить покупателя. Потому в описании мы стараемся показать уникальные стороны проекта.

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

Во что мы играем

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

Где вторая сторона

Ну это же всё-таки герои. И в игре есть что-то более интересное, чем просто убить всех. Хотя и это может стать очень даже непростой задачей.

Механики

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

Графика

Подумав, что рисую совсем плохо, анимирую тоже, но тем не менее хочу развиваться в области графики, а не просто набрать ассетов из интернета, решил, что лучше использовать 3D. Благо опыта у меня в нём немного больше и там есть хорошая костная анимация. Хочется, как минимум, героя и врагов сделать самому. Круто ещё и скульптинг освоить, но работы и без этого предстоит много.

Движок

Неплохо владею Unity и Unreal и смог бы реализовать игру на любом из этих движков. Есть множество причин ненавидеть Unreal, но это тема для отдельного поста и, может, даже не в этом подкасте. Тем не менее, выбираю его. Если коротко, почему — скажу только, что Microsoft, JetBrains и другим компаниям стоит позаимствовать пару интересных решений из Blueprints, которые могли бы сильно облегчить жизнь программистам и перевернуть взгляд на длиннющие простыни кода.

Билд

Работаю над проектом уже три недели, и немало готово. Но не надеюсь сразу сделать огромную игру. К концу джема хочется видеть одного героя, парочку врагов с особенностями и 3-5 карт, которые расскажут короткую историю, раскроют механики и обе стороны игры.

До скорых встреч!

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Алексей Поседко", "author_type": "self", "tags": ["\u0438\u043d\u0434\u0438\u0434\u0436\u0435\u043c","\u0438\u043d\u0434\u0438","cura"], "comments": 17, "likes": 9, "favorites": 4, "is_advertisement": false, "subsite_label": "indie", "id": 54869, "is_wide": false, "is_ugc": true, "date": "Mon, 17 Jun 2019 18:19:26 +0300", "is_special": false }
0
{ "id": 54869, "author_id": 114288, "diff_limit": 1000, "urls": {"diff":"\/comments\/54869\/get","add":"\/comments\/54869\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/54869"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64960, "last_count_and_date": null }
17 комментариев
Популярные
По порядку
Написать комментарий...
2

Удачи! Это круто. Раньше, в основном, только моды делали, а теперь целые игры из-за того что есть движки в свободных доступах. С одной стороны - больше возможностей, с другой - больше знаний требуется.
Могу посоветовать для следующих постов по этой игре/разработке - хотя бы к некоторым из пунктов прикладывать какие-никакие скриншоты - это помогает понять о чём пишется, а также больше цепляет взгляд (больше людей прочтёт).

Ответить
1

Спасибо! Учту, в следующий раз будет больше.

Ответить
2

Остаётся 3 недели до конца DTF инди-джема

А в статье ни видео, ни гифок.

Ответить
2

Кура с гречей.

Извините.

Ответить
1

"Если коротко, почему — скажу только, что Microsoft, JetBrains и другим компаниям стоит позаимствовать пару интересных решений из Blueprints, которые могли бы сильно облегчить жизнь программистам и перевернуть взгляд на длиннющие простыни кода."

А не могли бы вы подробнее раскрыть тему? По моему опыту общения с Blueprints - даже элементарное логическое выражение вроде if (a == b && a == c) может занять пол экрана (я конечно утрирую, но тут данная конструкция вместилась в 100 пикселей по ширине и 20 по высоте). И это при отсутствии более-менее стандартного функционала для рефакторинга.

И какое отношение Microsoft и JetBrains имеют отношениие к стандарту языка C++ и API Unreal Engine?

Ответить
0

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

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

Ответить
1

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

"Сколько времени у вас уходит на то, чтобы найти какую-то функцию в коде класса?" И в VS и в любой среде от JB есть вкладка Document Outline или Structure, в которой списком прописаны все методы и переменные, по которым еще и поиск есть. А многостраничный класс, скорее всего - признак низкого качества кода. Кстати элементарный CMD+F в Blueprints уже не поможет. Не говоря уже о том, что получение переменной из базового класса можно заниматься дольше, чем 10 раз написать ее имя (поиск происходит просто слишком долго).

Да, действительно есть случаи, когда удобны Blueprints - например операторы Delay, Sequence (ну и Animation Blueprints не забудем) и так далее. Но действительно быстрее они помогают решить только очень ограниченный ряд задач.

И самое главное - в Blueprints практически невозможно просматривать изменения в системах контроля версий, а Megre превращается просто в муки адские.

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

Да в C++ тоже куча проблем, я например очень не люблю медленную компиляцию и вылет редактора в случае креша, но в плане удобства чтения и командной работы он сильно выигрывает.

Воббще рекомендую почитать Совершенный код С. Макконела там вопросам управления сложность уделяется очень много (вернее вся книга об этом).

И гифка о процессе поиска функции 😉

Ответить
1

Когда хоть кусочек геймплея можнобудет увидеть?

Ответить
–3

Никогда.

Ответить
2

Думаю, что через неделю уже будет готов.

Ответить
0

Спасибо, буду ждать

Ответить
0

Прочитал в заголовке «СИГА» и заинтриговало.

Ответить
0

Так, может это есть обратная сторона игры))

Ответить
0

Название такое Питерское))

Ответить
0

Друже, лучше попробуй Godot Engine!

Ответить
0

Лучше чем?

Ответить

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovz", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "chvjx", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "chfbl", "p2": "gnwc" } } } ]