Ну что ж, вот я и испытал себя в геймджеме. Если кто не знает, джем - это мероприятие, на котором собираются разработчики (включая иллюстраторов, звуковиков и так далее), разбиваются на команды и в установленные сроки создают игру на определенную тему. Одно из зарубежных комьюнити решило организовать свой локальный геймджем, тему объявили в первый день, а именно "Клинки межзвездных бурь", так дал генератор случайных словосочетаний. Я, к сожалению, узнал о джеме не сразу, пытался собрать команду, но в итоге делать пришлось все самому за 4 дня.
Идея
Первое, что нужно сделать, само собой, придумать о чем будет игра. На полках моих чертогов идей я нашел одну, которая, как мне показалось, хорошо можно адаптировать. Заключается она в переправке через порталы человечков в нужные им пункты назначения.
Теперь надо накинуть тему. Название у меня проассоциировалось с некой битвой в космосе на мечах. Это сочетание мне показалось несколько комичным, поэтому решил, что игра должна быть эмоционально легкой и приятной. Тем более это будет сочетаться с платформером. Команду набрать, как я и сказал, я не смог, в следствие этого я примерил на себя роль иллюстратора. Я выбрал стиль пиксель-арт. Во-первых это довольно лампово, во-вторых стилистика такая хорошо сочетается с платформерами, в-третьих психологически не нагружает взгляд, в-четвертых, пожалуй решающий, это единственный стиль, в котором я худо-бедно могу нарисовать.
Поговорим же "за геймплей". Как я уже говорил, мне хотелось какую-то легкую тематику сделать, соответственно битву нужно оставить за кадром... идейно. А как это сделать? Должно быть что-то, что связано с битвой, но без нее непосредственно. Подготовка воинов отлично подходит. Воина надо обучить, снарядить, дать броню и отправить уже на битву. Последняя деталь пока, а что делаем мы? Ставим порталы. А как? Очевидно летаем между пунктами на... летающей тарелке, почему бы и нет? Для начала достаточно, осталось лишь все соединить.
Вот наш будущий геймплей. Игрок управляет летающей тарелкой, которая летает между астероидами-островами. В это время на этих островах из домиков выходят астровоины и сообщают куда им надо. Игрок подлетает, ставит портал на его острове и острове назначения. IF все правильно, астровоин идет в портал, ELSE стоит и напоминает куда ему надо. При этом портала только два, и игрок должен периодически снимать его. Цель и ограничения? Пойдем по классике, выполнить N запросов за определенное количество времени. Ну и конечно не разбить все корабли. Что ж, идея вроде ничего, да и расширять ее не сильно сложно, но об этом потом.
Графика
Как я уже сказал, я сам рисовал все, на иллюстратора я не учился, поэтому качество не высшее) Так что не судите строго. Для начала я накидал примитивные картинки, какие мне понадобятся. Это остров, летающая тарелка, портал, раскадровка космонавта и еще всякие мелочи. Вот мои первые наброски:
Да, соглашусь, это что-то страшное))) Но это нужно было чтобы было проще ориентироваться при создании.
Если не знаешь, как создается анимация, то расскажу. Для этого создаются спрайты для каждого отдельного кадра анимации, и в анимации они поочередно сменяют друг друга. Безусловно, это не единственный способ анимации, но в данном случае я использовал именно его. Как видишь, я решил сделать космонавта пузатеньким, на мой взгляд весьма комично.
Еще мне нужна картинка для системы частиц, которые будут выпускаться при полете и взрыве. Пусть это будут пузырики. Странно? Немного. Забавно? Вроде, да. Не хочу использовать огонь и взрывы.
Что ж, есть с чем работать, поэтому приступим непосредственно к самой игре. Картинки потом уже перерисую.
Разработка
Здесь должен был быть раздел про классы, сущности и алгоритм, но у вас документов нету он оказался слишком большим, и я его вынес в отдельный пост.
Доводим до ума
Когда все готово, надо все более-менее оформить.
Исправление спрайтов
Первое, что мне не понравилось, это корабль. Немного посерфив интернет, посмотрел варианты пиксельных кораблей, почерпнул какие-то тонкости, и начал рисовать свой. Также, чтобы он не был совсем статичным, сделал ему мигающие лампочки.
Также показалось скучные уничтожение корабля, да и пустой он летает. Пусть будет пилот, который остается на месте корабля. Нарисовал два варианта, в одном остается в сидячем положении со штурвалом, а во втором летает в нелепой позе X. Ну и чтобы совсем комично было, пусть останется в одних трусах с сердечками.
Следующим на очереди стали астронавты. Нужны анимации ожидания, приветствия (когда из домика выходит), и ходьбы. Оставил общую идею того, что было, немного поиграл с тенями, и рисунком скафандра. Ну ладно... уговорили. Добавлю трусы поверх скафандра а-ля DC. Ну и антенны-рожки захотелось сделать.
Осталось хоть как-то нарисовать астероид.
Остальное по мелочам поправил, не думаю, что это будет особенно интересно.
Анимация
Начнем опять с корабля. Про лампочки я уже говорил, так что покажу частицы.
Осталось только как-то отобразить установку, сбор и отсутствие портала. Пока это просто загружающаяся стрелка вниз, вверх и перечеркнутый портал.
С кораблем все. С астронавтами немного поинтереснее. У них всего есть 3 анимации. Ожидание, ходьба и приветствие. Они получают от астероида информацию о состоянии, в зависимости от этого запускают нужную анимацию и при необходимости включают или выключают облачко с целью.
Астероид в свою очередь плавно передвигает астронавта, меняет его прозрачность и попутно указывает ему какое у него состояние, после "отправки" астронавта в портал, говорит другому астероиду, что нужно включить анимацию прихода астронавта из портала в дом.
Ну и остались 2 мелкие анимации. Покачивание облачка и мерцание портала.
Интерфейс.
С интерфейсом загоняться не будем. Нужно показать сколько порталов на борту, и сколько уже стоит. Сделаем напрямую, цветной - есть портал, серый прозрачный - установлен. Время и количество астронавтов, и количество жизней в виде корабликов. Вот и все. Шрифт выберу простой, но тематичный, наподобие семисегментных индикаторов. В конце игры затемним экран, сообщим проиграл или победил и несколько кнопок, повторить, выйти или на следующий уровень.
Звук.
Здесь с одной стороны самый сложный для меня кусок игры, поскольку я совершенно не умею записывать звук и ни разу не композитор. С другой стороны можно просто подобрать готовые звуки из открытых источников, а музыку... не делал.
Для воспроизведения мне пришлось создать два источника звука. Один для повторяющегося звука полета, другой для разовых звуков. Проблема оказалась в том, что для полета я включаю и выключаю воспроизведение звука, но при этом разовые звуки так же слушают эти команды, и поэтому либо обрываются, либо не воспроизводятся. Поэтому в качестве временного решения вывел их на отдельный источник.
А собственно что я озвучил? Полет, взрыв и телепортацию.
Ну вот у нас и готов уровень. Само собой были ошибки, переделки, без этого никак, описывать их я не буду, кому это интересно. Как я писал выше, про алгоритм будет в следующем посте, там же сделаем меню, и можно публиковать.
______________________________
Спасибо за внимание! Надеюсь было интересно. Можешь написать свои идеи, в будущем, возможно добавим)
Удивительно, что именно эта рубрика у меня стартует первой, так как Space Swords - самое свежее, что я сделал. У меня уже давно готовятся еще 2 рубрики, но пока никак не могу их нормально оформить. Но как оформлю - выложу.
Если укажешь на ошибку, не обижусь, а исправлю ее)
Многие изображения я генерировал используя ИИ
_______________________________
Все страницы данной рубрики:
4 - Рефакторинг - пишется
_______________________________
Все ссылки можно посмотреть здесь