Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Управляйте маятником, чтобы построить самую высокую (и устойчивую) башню из падающих сверху постов. Следите за временем на каждый бросок по полоске справа: если она закончится, пост упадет мимо башни.

Башня

Аркады, Строительство, На ловкость

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
6
anykey239
Лига Разработчиков Видеоигр

Дневник дилетанта. Часть 7. Допилинг⁠⁠

7 лет назад

Предисловие

Часть 1. Идея

Часть 2. Реализация

Часть 3. Препятствия

Часть 4. Структура и взаимодействие

Часть 5. Экономика игры и монетизация

Часть 6. Ребаланс и подготовка к публикации


Приятного четверга!


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

Как только мы доделаем интерфейс получения заданий и наград за их выполнение, а также красивое и понятное обучение, я выложу пререлизное видео, которым и буду забивать почтовые ящики издателей. Без этих вещей видео будет скудноватым, а нам нужны зависть, восторг и желание как можно быстрее скачать и поиграть в ЭТО!!!

Поэтому рассказ о публикации пока откладывается, а я буду развлекать вас другими вещами.


За эти две недели, мы успели:

1) сделать 7 видов поездов и глобальных этапов игры

2) запустить летающие подарки и награду за них

3) нарисовать и интегрировать 4 оформления фона, которые будут переключаться автоматически, в зависимости от нынешнего времени года (скорее всего появятся и другие, приуроченные к событиям или сезонам в игре)

4) отдохнуть

5) понять, что игра к 18-19 рангу становится адово сложной

6) подправить баланс экономики, времени и сложности

7) придумать кучу заданий

8) спроектировать и почти доделать интерфейс для получения заданий

9) скрасить всё это великолепие приятной микроанимацией


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


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

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


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

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


Мой енот в результате этих изменений превратился в енотиху. И я не мог понять, в чем дело.

Пришлось перечитать кучу статей для художников про отличия женского и мужского лица.

Я пробовал и пробовал, но ничего не помогало. Получался енот-женщина и всё.


После пары часов правок я плюнул и решил просто сделать енота не таким грустным. Я немного скруглил брови, заострил ушки, поднял рот с носом... СТОП.

О БОЖЕ МОЙ!!!


Кто же мог подумать, что именно этого мне не хватало. Вместо взрослой енотихи на меня смотрел мелкий озорной пацан! Это была победа.


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


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


Если у вас есть на примете хорошая бесплатная коллекция звуков для игр, мы будем благодарны за помощь!

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


P.S.: Я приношу извинения издательству, с которым мы пытались работать. Возможно в предыдущем посте я был не слишком справедлив к вам. Я старался оперировать фактами, не подключая эмоции, но видимо у меня не очень хорошо получилось. Просто в момент написания статьи я был крайне расстроен тем, как складываются обстоятельства.

Искренне желаю вам процветания.

И вы нам пожелайте)


Пожалуй сегодня закончим на этом.

Я буду держать вас в курсе всего, что происходит с No brakes. Раз уж пошла традиция, то буду делать это по четвергам.

Показать полностью 2
Мобильные игры Разработка Android iOS No brakes Unity Длиннопост
9
12
anykey239
Лига Разработчиков Видеоигр

Дневник дилетанта. Часть 6. Ребаланс и подготовка к публикации⁠⁠

7 лет назад

Предисловие

Часть 1. Идея

Часть 2. Реализация

Часть 3. Препятствия

Часть 4. Структура и взаимодействие

Часть 5. Экономика игры и монетизация


Приятного четверга, всем читателям!


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


1) создавать аккаунты разработчика в Google Play (25$) и AppStore (99$ в год)

2) искать хорошего медиатора и настраивать показ рекламы в приложении (-10% прибыли)

3) настраивать внутриигровые покупки (-50% прибыли)

4) разбираться с налоговыми отчислениями и отчислениями магазину приложений (-45% прибыли)

5) давать рекламу и следить, чтобы она хорошо отрабатывала вложенные средства

Условия работы с издательством в свете выяснившихся фактов нас не устроили, поэтому от сотрудничества пришлось отказаться. Это сильно подорвало настроение и мотивацию. Очень.


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

После того как версия стала очень сильно напоминать релизную, и мы засели ее тестировать, открылось много интересного и полезного.


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


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


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

Мало кто сможет усердно тренироваться, попав в такую ситуацию.


Выходом из положения стало начисление денег даже после смерти. Но ведь будет несправедливо, если умерев, игрок получит больше, чем придя к финишу на последнем издыхании с одной жизнью. Значит берем деньги за финиш с последней жизнью и умножаем на долю пройденных групп. Логично? Логично!


Предположим, что игрок находится на 4 ранге и ездит с 3 вагонами. У локомотива 1 жизнь.

Финишируя, он получит 4 * 3 * 100% * 10 = 120 монет.

Если же он умрет на последней группе препятствий, пройдя 9 из 10 он получит 120 * 9/10 = 108 монет.

Все верно. Немного меньше полного заработка.


А теперь следите за руками.


Игрок покупает еще одну жизнь, чтобы все таки пройти уровень. Теперь у локомотива 2 жизни.

Финишируя с 2 жизнями, он получит 4 * 3 * 100% * 10 = 120 монет.

Финишируя с 1 жизнью, он получит 4 * 3 * 50% * 10 = 60 монет.

Значит за смерть на 10 группе ему дадут 60 * 9/10 = 54 монеты.


Заметили проблему?

Покупать жизни становится совершенно невыгодно. Дополнительные жизни не дают никакого шанса на более простое прохождение, так как для повышения ранга нужно пройти без ошибок.

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


Нужно было переработать систему начисления денег. Таким образом мы пришли к честному разделению, когда за уничтожение препятствий и за финиш деньги начисляются отдельно и примерно поровну. То есть за смерть на 9 группе игрок будет получать чуть меньше половины денег от идеального прохождения. А за выживание с 1 жизнью из 10 — чуть больше половины.


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


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

Пришлось обратиться к советам опытных людей.

Люди любят неопределенность. Особенно приятна неопределенная награда.

Поэтому со страницы финиша мы убрали формулу начисления и ввели колесо удачи.

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


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

Именно так на свет появился этот забавный енот.

В итоге финиш теперь выглядит примерно так:

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


В прошлом посте я обещал всем читателям классный бонус. Этот бонус можно будет получить, введя в игре код PIKABU2018. Однако, сейчас ни игра, ни бонус, ни интерфейс для ввода этого кода еще не реализованы. Поэтому считайте, что это подарок на вырост)) Но подарок классный!


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


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

Показать полностью 4
Мобильные игры Разработка Android iOS No brakes Unity Длиннопост
21
15
anykey239
Лига Разработчиков Видеоигр

Дневник дилетанта. Часть 5. Экономика игры и монетизация⁠⁠

7 лет назад

Предисловие

Часть 1. Идея

Часть 2. Реализация

Часть 3. Препятствия

Часть 4. Структура и взаимодействие


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

В правой части расположены основные улучшения, необходимые для движения по игре. Это количество жизней локомотива, количество вагонов и напалм.


1) Чем больше жизней локомотива, тем меньшая часть денег потеряется при каждом столкновении. Ближе к 10 уровню, когда препятствий становится действительно много, это помогает вообще хоть что-то получить, а не умереть посреди пути.


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


3) Напалм просто позволяет облегчить себе жизнь в пути и быстро выжечь одну группу или ее остатки. Это полезно на высоких уровнях, когда малейшая оплошность может дезориентировать и нужен перерыв в пару секунд, чтобы восстановить фокус внимания и перестать паниковать. Размер бака с напалмом можно прокачивать, чтобы влезало больше, и необходимо наполнять. Стоимость наполнения увеличивается в 2 раза при каждой заправке, но сбрасывается раз в сутки. Это нужно, чтобы каждый мог обеспечить себе право на ошибку, но не мог читерить, выжигая 10 групп из 10. Фактически это конечно возможно, но крайне недешево.


Левая часть отведена под вещи, которые совершенно необязательны для прохождения игры.

Там расположены кнопки магазина, скидки и модуль управления моделями поездов.


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


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


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

Вот и настало время поговорить об игровой структуре.


В игре будет несколько блоков по 10 уровней. Таким образом после очень серьезного испытания у игрока будет неплохая передышка в виде уровней с малым количеством препятствий. Однако это совсем не значит, что вы просто начнете сначала. Баланс и все купленные вещи, кроме вагонов сохранятся и получать вы будете больше, однако сложность игры возрастет в другой плоскости.


Каждый блок из 10 уровней будет отличаться от других усложнением базового геймплея. Например будет 8 направлений свайпа вместо 4, дополнительные стрелки, которых не видно сразу, уменьшенное время на реакцию и многое другое. За счет того, что каждый блок будет начинаться с групп из 1 препятствия, будет время на то, чтобы привыкнуть к нововведениям.


Монетизация


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


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


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


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

Цикл статей по разработке игры No Brakes потихоньку подходит к концу.


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

Показать полностью 3
Мобильные игры Разработка Android iOS No brakes Unity Длиннопост
7
5
anykey239
Лига Разработчиков Видеоигр

Дневник дилетанта. Часть 4. Структура и взаимодействие.⁠⁠

7 лет назад

Предисловие

Часть 1. Идея

Часть 2. Реализация

Часть 3. Препятствия


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


Открытым оставался вопрос локальной цели. Будет ли игра бесконечным раннером среди бесконечного числа прочих раннеров? Или уровни будут ограничены?

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


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


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


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


И все элементы управления этим хаосом, нужно аккуратно и понятно разместить.


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


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


Но система улучшений и магазин сильно отвлекали бы от игры, особенно на большой скорости.

Так как уровни конечны, значит поезд откуда-то начинает и где-то заканчивает. Где?


В депо.

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

В прошлом посте я обещал рассказать про наш спор о препятствиях.


Реалистичность или казуальность? Таким вопросом мы задались.

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


Mozg00FF был за реалистичный вариант. В его подходе была интересная идея про "последний шанс". Суть идеи в том, что удар, который должен тебя убить, оставляет тебе 1 очко здоровья и дает последний шанс выжить. Идея была хороша, но реализовывать ее в мобильной игре было бы странно.


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


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


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


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

Показать полностью 3
Мобильные игры Разработка Android iOS No brakes Unity Длиннопост
3
15
anykey239
Лига Разработчиков Видеоигр

Дневник дилетанта. Часть 3. Препятствия.⁠⁠

7 лет назад

Предисловие

Часть 1. Идея

Часть 2. Реализация


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


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

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


Тогда я наконец впервые запустил собранную версию на телефоне. И расстроился.


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


А ведь у всех игроков скорость восприятия разная. С таким подходом мы рисковали не угодить сразу всем.


Этот вопрос мучил нас около недели. И после многих попыток мозгового штурма и индивидуальных размышлений пришло решение.


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

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


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


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


Дым!


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

Таким образом основная часть движка игры была сделана.

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

Есть ли у этого противостояния какой-то финал или оно ограничивается только умениями, внимательностью и ловкостью игрока?


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

Показать полностью 2
Мобильные игры Разработка Android iOS No brakes Unity Гифка Длиннопост
8
anykey239
Лига Разработчиков Видеоигр

Дневник дилетанта. Часть 2. Реализация.⁠⁠

7 лет назад

Предисловие

Часть 1. Идея

В предыдущих постах я подробно описал, почему мы делаем игру и какая идея была признана достаточно интересной, чтобы перейти к ее реализации.

Поэтому теперь поговорим о непосредственно создании нашего шедевра казуальной игроиндустрии.


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

в профессиональные руки Mozg00FF. Чтобы было проще и никто не запутался, его слова будут выделены.


Платформа

Почему Unity спросите вы? Если коротко, то так сложилось. До этого я пробовал разные платформы и способы создания игр. Например, тот же Bomberman, упомянутый в первом посте, был написан полностью на WinApi с использование Directx 11. Это был интересный опыт, но слишком трудоёмкий.
Пробовал пользоваться Unreal Engine, но он мне не очень понравился в связи с тем, что после хоть какого-то опыта использования Unity он мне казался дико неудобным. Возможно, сейчас я пересмотрел бы свои взгляды, но в данный момент я ещё больше привык к Unity и уже вряд ли начну пользоваться чем-то другим без серьёзных на то причин.
Изначально же Unity была выбрана как популярная платформа с достаточно большим комьюнити, которое позволяло быстро и просто научиться ею пользоваться.
У меня нет многолетнего опыта использования Unity, поэтому не буду утверждать, что надо делать так, как делал я. Данная статья скорее будет рассказом о том, как те или иные вещи сделаны у нас.

Фон

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

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

1) К объекту холма добавляем компонент Polygon Collider 2D. Этот компонент позволяет получить точную форму холма.
2) В настройках объекта создаем два параметра minTreeCount и maxTreeCount, которые задают границы количества случайно генерируемых деревьев.
3) Далее в цикле генерируем случайные точки на холме, и проверяем попали ли они в наш коллайдер. Если точка попала, то генерируем в ней дерево.
В результате получалось нечто такое:
Иногда, конечно, холмы генерировались красиво, а иногда так, как на этой картинке. Как можно заметить — верхнее дерево находится поверх нижнего, что выглядит как минимум странно.
Да и густой лес слишком сильно загружает картинку деталями. В итоге, мы вместе посмотрели на эту генерацию и решили, что такой вариант нас всё же не устраивает.
Перед нами возникла проблема, как генерировать деревья так, чтобы они не налезали друг
на друга, и при этом всё это красиво генерировалось. Не знаю, насколько придуманное мною решение является классическим для таких ситуаций, но генерацию я сделал следующим образом.
На холм я добавил 4 простых спрайта, которые обозначают зоны генерации деревьев
по горизонтали:
Для поддержания порядка эти зоны были добавлены в пустой объект с названием SpawnZones и визуально отключены, так как их отрисовка нам в игре не нужна. В итоге структура объекта выглядит следующим образом:
Теперь переходим к генерации самих деревьев.

1) При создании объекта, ищем среди потомков объект с названием SpawnZones. В нём перебираем всех потомков и считаем их количество. Количество деревьев на холме будет
по-прежнему в переделах от minTreeCount и до maxTreeCount, но не больше, чем количество зон генерации.
2) Определившись с количество деревьев на холме, случайно выбираем зоны, в которых будут сгенерированы объекты.
3) Для каждой зоны генерируем дерево. Это происходит так же, за исключением того,
что пределы генерации точек по X выбираются по границам зоны, а по Y — по координатам верхней и нижней границы коллайдера.
4) После того, как деревья сгенерированы — удаляем ранее найденный объект SpawnZones
для того, чтобы не разводить лишних объектов в процессе работы игры.
На этом можно было бы закончить, но если уж делать универсальные холмы, то они всё равно должны быть немного более рандомными. Поэтому добавляем параметры, отвечающие за размеры холма и деревьев. В итоге в инспекторе такой холм полностью настраивается и удобно используется в дальнейшем:
В итоге получаем вот такие случайно сгенерированные холмы:

На сегодня закончим.

Если технические подробности пришлись вам по вкусу, то пишите и спрашивайте, ТРЕБУЙТЕ еще.


В следующий четверг мы обсудим сложное движение фона, проблемы проектирования

и на закуску — приятные фишечки поезда, придающие игре индивидуальность.

Показать полностью 5
Мобильные игры Разработка Android iOS No brakes Длиннопост Unity
6
20
anykey239
Лига Разработчиков Видеоигр

Дневник дилетанта. Часть 1. Идея.⁠⁠

7 лет назад

Предисловие

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

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

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

Да и за счет постоянного игрового роста придется нарисовать очень много контента.

С малыми надеждами на успех.


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

Значит делать с самого начала придется с умом.



Этап анализа.

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


Оригинальная, чтобы не потонуть в тысячах "три в ряд" и миллионах других однотипных игр.


Захватывающая, чтобы хотелось возвращаться в нее снова.


Достаточно сложная, чтобы было интересно преодолевать себя, достаточно простая, чтобы

не отпугнуть новичков.


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

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


Значит позаимствуем идею из Rogue Legacy и сделаем игру двухэтапной. Один из этапов будет тестировать ловкость и внимательность, а второй опираться на экономические расчеты

и продумывание. В этот момент стало ясно, что первоначальная идея не подойдет, и я решил взять ее часть. Любое крупное предприятие основано на логистике. В большинстве игр перевозка грузов процесс автоматический. А что если раскрыть именно эту проблему поподробнее?

И я решил показать будни грузоперевозок и сложности с ними связанные.


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

На этом можно было выехать в 80х, но не в 2к18.

Поэтому возьмем поезд. Игр с поездами не слишком много, и в основном они про построение оптимальных маршрутов, а это довольно далеко от казуалки, которая задумывалась.


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

на своем пути. Однако, если он будет ехать по прямой, то и стрелять ему придется в одну сторону. Значит упрощаем (автоматизируем) прицеливание, но усложняем "стрельбу". Внезапно появившаяся в поле зрения Beat Saber для VR-очков подкинула решение проблемы. Стрелять будем свайпами.


К этому моменту концепция игры начала принимать вполне определенные очертания и я сел рисовать. Вот что вышло:

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

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

Именно в этот момент я описал идею Mozg00FF. Он оценил идею по достоинству, выразил свое мнение, что такую игру можно сделать довольно быстро, и взялся за работу.


А я разродился еще и менюшкой для будущей игры.

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

Думаю это будет неплохой дебют!



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


P.S. Простите мне мою неспешность повествования. Мне нравится рассказывать все обстоятельно, с предысторией и многочисленными деталями. Возможно иногда я увлекаюсь,

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

Расслабьтесь и наслаждайтесь этой историей))


Продолжение ждите в следующий четверг.

Показать полностью 4
Мобильные игры Разработка Android iOS No brakes Длиннопост
10
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии