Gaminator 10 :: Little astronaut

logo1.png

Первый раз пишу кокурсный пост. В общем с геймплеем определился, как ни странно, идею подала моя девушка:) Если кратко, то эта игра про прыжки, стрельбу и апгрейды. Наш маленький астронавт постоянно бежит с малым ускорением (в реале это платформы движутся навстречу ему, но это уже технические подробности.), а задача игрока вовремя и на определенную высоту прыгать, попадая на платформы, и по пути отстреливать местных жителей, которые в основном будут летающими. При убийстве монстров мы получаем их души (грубо говоря — деньги), на которые покупаем апгрейды. Апгрейды будут захватывать множество факторов: максимальная высота прыжка, скорость стрельбы, мощность стрельбы, количество здоровья, и даже удачу (частоту генерирования разных бонусов). Реализовать все это довольно просто, и поэтому у меня останется достаточно времени на полировку и рисование (рисовать я не умею, поэтому дополнительное время будет в самый раз). Со звуками не определился. Использовать 8/16-битные звуки или взять что-нибудь более реалистичное? Но я думаю музыку надо будет подбирать в последнюю очередь, т.к. проще найти музыку под графику, чем рисовать в соответствии с музыкальным стилем.

Инструменты: Game Maker, Photoshop.

Список того, что надо сделать:

  • Движение персонажа
  • Генерация платформ
  • Исправить баг с застреванием в углу платформы при приземлении (Сцуко, бесит…)
  • Анимированный персонаж
  • Джетпак
  • Красивый джетпак //думаю, он у меня и так красивый.
  • !!Индикатор топлива!
  • Стрельба
  • Летающие твари
  • Исправить дерганность летающей твари
  • Ловушки, лежащие на платформах
  • Магазин апгрейдов (самое для меня пока сложное)
  • Подсказки в магазине
  • Запретить мёртвому телу астронавта стрелять
  • Побольше апгрейдов (сейчас 10 апгрейдов)
  • Адекватный джетпак (нуу. почти адекватный :))
  • Меньший расход топлива
  • Придумать еще врагов (сейчас реализовано 3)
  • Баг со здоровьем
  • Индикатор жизней!
  • Прыжок в длину
  • Адекватность полета пули
  • Убавить гравитацию
  • Опечатки (убиства после геймовера)
  • Увеличить эффективность апгрейдов
  • Каменную платформу сделать плоской сверху
  • С покупкой джетпака закупается и топливо
  • Быстроногость убавить //теперь зависит от скорости астронавта
  • Руки нарастить
  • Звуковые эффекты //уже начал заниматься, получается ужасно
  • Графика (осталось не так много)
  • Музыка
  • Главное меню с таинственной музыкой, таинственной большой луной в таинственном космосе и таинственно пролетающим космическим мусором и глупо улыбающимися зелеными человечками
  • Сохранение прогресса
  • Энерго-щит
  • !!Монстр со снарядом, который надо отбить обратно.!!
  • Экран об управлении
  • Экран об игре
  • Бонус пулям
  • Увеличить стоимость топлива
  • Невидимая граница наверху
  • Выправить банку
  • Глубина пуль
  • Довести щит до ума
  • Задник в главном меню
  • Графика в магазине улучшений //*panic*
  • Оптимизировать все это безобразие! Если не лагает, то это не значит, что объекты не нужно уничтожать после использования!

По ходу разрботки буду разбивать пункты на подпункты, чтобы чувствовался прогресс :)

Обновление (21):

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

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

Сделал спрайт для персонажа. Сразу с джетпаком, но изначально джетпака на нем не будет. Размер 12×24, поэтому пришлось делать что-то вроде пиксель-арта. Когда по экрану прыгал синий прямоугольник, то эти размеры казались нормальными, но сейчас маленький человечек немного напрягает глаза. Может быть сделаю персонажа побольше. Надо хоть фотки космонавтов посмотреть, может смогу получше нарисовать.

Всё-таки люблю я жопу — через неё можно воплотить любые свои идеи :)) Джетпак сделан :). Для экономии топлива джетпак включается только при повторном нажатии кнопки прыжка в воздухе. (Все благодаря партии с другом в Worms Armageddon) Пока эффекты типа вырывающихся языков пламени из мощных турбин джетпака (ну-ну, в прямоугольнике 3×5 пикселей нарисуешь ты языки пламени.) нет, все это будет позже. Впереди обдумывание магазина апгрейдов.

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

Обновление (22):

Делаю магазин апгрейдов. Выглядит отвратительно :(Очень не хватает дизайнера или хотя бы его навыков.

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

Обновление (23):

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

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

Обновление (24):

Магазин апгрейдов все так же отвратителен, исправить его надеюсь с помощью ваших советов :). Уже есть фоновая музыка для самого игрового процесса, и на подходе таинственная музыка для таинственного меню. Насчет меню тоже опасаюсь, что получится как с магазином. Но в главном меню вроде нет сложных графических элементов. Из-за фотографий размер игры почти 7 мегабайт. Буду стараться ужимать игру, чтобы была не больше 10 мб, т.к. большие размеры никого в восторг не приводят:)

В понедельник будет уже первое демо со всем тем, что будет зачеркнуто в списке.

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

Обновление (25):

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

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

Обновление (26):

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

Обновление (29):

Целых 3 дня не писал. За это время я ни хрена не сделал. Сейчас реализовал автосохранение прогресса. Для сброса прогресса достаточно удалить файл «gameprogress.la», так что берегите его :) В будущем добавлю спец. кнопочку для удаления всего прогресса. Нашел замену желтой платформе с маячком, вместо нее будет кусок метеорита с большими глазами (спасибо девушке). Таким образом, все платформы будут подведены под стиль «винегрета» :) Готов индикатор топлива. Делается за 5 минут, а смотрится очень даже приятно и играть становится более удобно. Пули с платформами взаимодействовать не будут, т.к. при событии столкновения платформы притормаживаются и создается впечатление, что пули сдвигают платформы на несколько пикселей. Появилась идея нового врага. Он посылает снаряд, стреляем в снаряд, снаряд возвращается во врага и взрывается вместе с ним.

Сделал главное меню, пока работают не все пункты. Инопланетянин в полёте :)

screenshot102.png

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

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

Обновление (30):

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

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

Сделал ограничение по скорости. Максимальная скорость — 270 пикселей в секунду.

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

Сейчас понимаю, что все, что я задумывал в первые дни конкурса я уже практически выполнил (осталось готовые треки вставить). Остальное уже добавилось гораздо позже, но реализация займет совсем немного времени, здесь уже все зависит от лени :) Этой мой первый проект, который я так ответственно и до конца делаю. Видимо сам факт участия в конкурсе и хоть самые малые, но шансы, оказывают такое влияние.

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

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

Обновление (3):

Почему-то пост не хочет добавляться ((Поэтому ссылку на 2-е демо скину сюда https://www.dropbox.com/s/zrppgw0uo76tab5/Little%20Astronaut%20demo2.rar

Обновление (4):

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


ЗЫ: если что-то неправильно оформил, расскажите как исправить.