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

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

Такая маленькая и простая игра, а так долго и сложно делается! Разработка, Сложно, Смайл, Настроение, 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...


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

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

6.5K пост22K подписчиков

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

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

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

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

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

- Никакой политики


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

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

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

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

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

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

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

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

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

ЗАПРЕЩЕНО:

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

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

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


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

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

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

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

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

7
Автор поста оценил этот комментарий

Какой-то пугающий видок у смайлов.

раскрыть ветку
4
Автор поста оценил этот комментарий

За упорство - пять.

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

Беда лишь в том, что современные игроки даже на красивую картинку не цепляются. А на простую так и вообще не смотрят.

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

раскрыть ветку
3
Автор поста оценил этот комментарий

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

раскрыть ветку
3
Автор поста оценил этот комментарий

Не понятно зачем для взгляда смайлов 2 символа. Можно было сделать одним так же как и с настроением смайлов ибо у вас нет спрайтов для косоглазых спрайтов (один глаз смотрит в низ, а другой вверх).

раскрыть ветку
2
DELETED
Автор поста оценил этот комментарий

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

раскрыть ветку