14

Такая маленькая и простая игра, а так долго и сложно делается!

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

Такая маленькая и простая игра, а так долго и сложно делается! Разработка, Сложно, Смайл, Настроение, Steam, Бумага, Головоломка, Длиннопост

Идея.


Практически сразу же придумала название "Smile It", оно как нельзя лучше отражает основную идею и цель игры. А цель игры, чтобы человек, который в нее играет, улыбнулся, чтобы люди стали больше ценить радостные мгновения своей жизни, ну и просто чтобы было чуточку веселее. Проще говоря, в игре планировалось показать силу настроения. А главные герои, конечно же - смайлики. Задумка заключается в том, что мы кликаем на мордочки-смайлики, и от этого они становятся веселее - те, на которые нажимаешь.


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


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


Бумажный прототип.


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


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


Дальше я взяла пластилин и сделала им глазки и рты. Я сначала думала, что буду рисовать прям поверх, потом поняла, что пластилином будет удобнее - когда смайл меняет направление взгляда, можно просто перелеплять ему глаза. Улыбки я им сделала разных цветов в зависимости от стадий радости. Если уже максимально веселый или грустный - переворачиваю тыльной стороной.

Такая маленькая и простая игра, а так долго и сложно делается! Разработка, Сложно, Смайл, Настроение, Steam, Бумага, Головоломка, Длиннопост

Оказалось, что играть в это в таком виде в принципе вполне возможно - делаешь ход, увеселяя один смайлик, затем за этот ход угрустняешь другие, затем следующий ход и так далее, пока не завалишь игру. Да-да, первым делом я пришла к выводу, что в игре нет баланса – постоянно проигрываешь - все слишком сложно и надо как-то упрощать. Поэтому стали вводиться промежуточные стадии, и грустнеть они стали не сразу, а только через несколько ходов - на моем бумажном прототипе я подкладывала кружочки - раньше думала, что буду менять их цвет, но поняла, что перелеплять каждый ход им морды на разные цвета - это уж слишком!


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


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

Такая маленькая и простая игра, а так долго и сложно делается! Разработка, Сложно, Смайл, Настроение, Steam, Бумага, Головоломка, Длиннопост

Создание графики для игры.


Разные виды смайликов было решено сделать разных цветов. Еще я нашла на проект художника ником Stone Brush. Это один добрый знакомый дяденька, который обычно рисует картины, но ни разу не рисовал ничего для игры. Теперь оглядываясь назад, я думаю, что, возможно, это было глуповато с моей стороны. Ну, так или иначе, он набросал, как будут выглядеть смайлики.


Сначала скетч:

Такая маленькая и простая игра, а так долго и сложно делается! Разработка, Сложно, Смайл, Настроение, Steam, Бумага, Головоломка, Длиннопост

А потом и мордочки.

Такая маленькая и простая игра, а так долго и сложно делается! Разработка, Сложно, Смайл, Настроение, Steam, Бумага, Головоломка, Длиннопост

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

Такая маленькая и простая игра, а так долго и сложно делается! Разработка, Сложно, Смайл, Настроение, Steam, Бумага, Головоломка, Длиннопост
Такая маленькая и простая игра, а так долго и сложно делается! Разработка, Сложно, Смайл, Настроение, Steam, Бумага, Головоломка, Длиннопост

Программирование.


Игра создавалась на языке С/C++ с использованием Cocos2d-x. Cocos2d-x оказался далеко не идеален и имел кучу своих проблем, в частности крайне плохую поддержку настольных систем, что вынудило лепить свои грабли даже для работы с клавиатурой и самим прикручивать звуковой движок OpenAl.


Уже через полгода с начала разработки код игры содержал 13163 строки без учета комментариев и сторонних библиотек. И это без учета кода изменений движка Cocos2d-x, вспомогательных утилит и шейдеров из игры, которые потом, к сожалению, пришлось выкинуть.


Сначала вместо спрайтов в игре были вот такие циферные заглушки:

Такая маленькая и простая игра, а так долго и сложно делается! Разработка, Сложно, Смайл, Настроение, Steam, Бумага, Головоломка, Длиннопост

Цифры показывали степень веселости смайликов. В таком состоянии проще было понять, насколько правильно оно работает.


Да, между тем время шло...


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


Создание уровней.


Сначала предполагалось, что в игре будет 50 уровней. Потом все-таки решили, что это маловато, и на данный момент игра насчитывает 75. Один экран вмещает в себя 15 уровней.


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


На каждом уровне через определенные промежутки времени вылазят звездочки. Для открытия уровня нужно собрать определенное количество звезд в общей сумме. Сложность собирания звезд состоит в том, что при нажатии на звезду теряется один ход, ну, иначе было бы слишком тривиально.

Такая маленькая и простая игра, а так долго и сложно делается! Разработка, Сложно, Смайл, Настроение, Steam, Бумага, Головоломка, Длиннопост

Звездочки я рисовала сама, некоторые из них смешные не вошли в игру.


Редактор уровней в блокноте.


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


Открываем мы его простым Notepad++, ну можно еще подсветку синтаксиса настроить разве что.


В некоторых случаях файл может быть разделен на секции, каждая секция не зависима и может рассматривать как отдельный файл.


Для интереса приведу кусок кода из этого файла:


[LEVEL053]


$title:ru."Вместе мы сила!"

$title:en."We are strong together."

$stars:{65,67,69}

$layer:"bck_layer04"

$music:"mus_theme04"

$decay:4

$swing:"<< >> ^^ __"

$field:"

=+++ <>7o <>7o <>5o <>8o =+++

=+++ >>3o >>5s <<5s <<3o =+++

=+++ >>3o <<5s >>5s <<3o =+++

=+++ <>8o <>5o <>7o <>7o =+++

"

Так этот же уровень выглядит в игре:

Такая маленькая и простая игра, а так долго и сложно делается! Разработка, Сложно, Смайл, Настроение, Steam, Бумага, Головоломка, Длиннопост

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


o - обычный смайл

n - смайл нельзя вращать

u - смайл нельзя тапать

s - смайл нельзя ни вращать ни тапать


Число от 1 до 9, что определяет настроение смайла. 9 - самое лучшее настроение, 2 - почти самый грустный, когда настроение падает до 1 - уровень проигрывается.


А вот эти значки >> - определяют направление взгляда. Если, например, напишем вот так ^^, то наш смайлик смотрит вверх.


Вот такой вот необычный способ придумали!


В общем, несмотря на то, что все делалось очень долго скорее всего очень нестандартно, мы получили много интересного опыта.


Сейчас игра уже считай готова и вполне играбельна, и я решила попробовать выложить её на Гринлайт. Пожалуйста, поддержите её, если вам понравился этот длиннопост... или сам проект http://steamcommunity.com/sharedfiles/filedetails/?id=870519...


И спасибо, что дочитали до конца. Я знаю, что это не лучший мой проект, но просьба сильно тапками не кидаться, я старалась сделать эту статью интересной и писала несколько дней.

Лига Разработчиков Видеоигр

4.5K постов19.1K подписчиков

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Не употребляйте мат без необходимости


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

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

- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры, для этих целей больше подойдёт Discord-сервер сообщества

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

Подробнее
Лучшие посты за сегодня
7337

Так-то да

Так-то да Мысли, Лицо, Без национальности, Намаз, Ислам, Негатив
6790

Вкл-Выкл "Умной ленты"

5860

Разбирал шкаф дедушки, нашел такие вещи

Разбирал шкаф дедушки, нашел такие вещи Фехтование, Олимпийские игры, Старая школа, Длиннопост
Разбирал шкаф дедушки, нашел такие вещи Фехтование, Олимпийские игры, Старая школа, Длиннопост
Показать полностью 2
5166

Битва славян

Битва славян
5095

Ответ на пост «Учителя, рассказавшего о зарплате, обвиняют в экстремизме» 

Ответ на пост «Учителя, рассказавшего о зарплате, обвиняют в экстремизме» Учитель, Нищие, Экстремизм, Несправедливость, Негатив, Ответ на пост, Длиннопост
Ответ на пост «Учителя, рассказавшего о зарплате, обвиняют в экстремизме» Учитель, Нищие, Экстремизм, Несправедливость, Негатив, Ответ на пост, Длиннопост
Ответ на пост «Учителя, рассказавшего о зарплате, обвиняют в экстремизме» Учитель, Нищие, Экстремизм, Несправедливость, Негатив, Ответ на пост, Длиннопост
Ответ на пост «Учителя, рассказавшего о зарплате, обвиняют в экстремизме» Учитель, Нищие, Экстремизм, Несправедливость, Негатив, Ответ на пост, Длиннопост
Ответ на пост «Учителя, рассказавшего о зарплате, обвиняют в экстремизме» Учитель, Нищие, Экстремизм, Несправедливость, Негатив, Ответ на пост, Длиннопост
Ответ на пост «Учителя, рассказавшего о зарплате, обвиняют в экстремизме» Учитель, Нищие, Экстремизм, Несправедливость, Негатив, Ответ на пост, Длиннопост
Показать полностью 6
4611

Неоспоримый факт

Неоспоримый факт Юмор, Мартышка, Банан, Пенсия
Показать полностью 1
4479

О сколько нам открытий чудных...

4345

Мем смешной, а ситуация страшная

Мем смешной, а ситуация страшная Шрек, Осел из шрека, 1 класс, Картинка с текстом, Юмор, Мемы, Школа, Родители и дети
4202

Время летит слишком быстро…

Время летит слишком быстро… Знаменитости, Время, Черный юмор, Актеры и актрисы, Сериал Друзья, Гарри Поттер, Питер Динклэйдж, Длиннопост
Время летит слишком быстро… Знаменитости, Время, Черный юмор, Актеры и актрисы, Сериал Друзья, Гарри Поттер, Питер Динклэйдж, Длиннопост
Время летит слишком быстро… Знаменитости, Время, Черный юмор, Актеры и актрисы, Сериал Друзья, Гарри Поттер, Питер Динклэйдж, Длиннопост
Время летит слишком быстро… Знаменитости, Время, Черный юмор, Актеры и актрисы, Сериал Друзья, Гарри Поттер, Питер Динклэйдж, Длиннопост
Время летит слишком быстро… Знаменитости, Время, Черный юмор, Актеры и актрисы, Сериал Друзья, Гарри Поттер, Питер Динклэйдж, Длиннопост
Время летит слишком быстро… Знаменитости, Время, Черный юмор, Актеры и актрисы, Сериал Друзья, Гарри Поттер, Питер Динклэйдж, Длиннопост
Показать полностью 6
4000

Крик души. Олды тут?

Крик души. Олды тут?
3775

Будим еб*т


3206

Зря я так

Зря я так
3115

Rammstein. Их шестеро. Всегда

Rammstein. Их шестеро. Всегда
3102

Первый стример?

Первый стример? Nintendo, Детство 90-х, Dendy, Стрим
3089

Это не ваше, у вас денег не хватит!

Это не ваше, у вас денег не хватит! Двор, Родной дом, Соседи, Зима, Мат, Длиннопост
Показать полностью 1
2520

О пользе военной службы

2444

Шедевры Росстата

2414

Срочно ищем свидетелей г. Хабаровск. Без рейтинга

Срочно ищем свидетелей г. Хабаровск. Без рейтинга Без рейтинга, Хабаровск, Помощь, Коронавирус, Врачи, Негатив
Показать полностью 1
2349

Уродил Сясын то в ночь ...

Уродил Сясын то в ночь ... Две женщины орут на кота, Картинка с текстом, Рокк ебол, Наклейки на авто
Показать полностью 1
2305

Стать надёжной опорой

Стать надёжной опорой
Похожие посты закончились. Возможно, вас заинтересуют другие посты по тегам: