Главная › Форумы › Blender Game Engine (BGE) › О том, как я игрушку на BGE делал › Ответ в теме: О том, как я игрушку на BGE делал
Давно пора было… [Типа красивый заголовок]
Прошлый пост в этой теме был создан через месяц после последнего открытия проекта. Я уже было подзабил на игрушку и хотел отправить её в категорию «исчерпано». Это та категория, в которую попадают проекты, которыми мне лень заниматься. Не самая приятная участь.
После публикации поста как — то захотелось его подготовить » в последний путь». Немного навести красоты перед уходом. Как генеральная уборка перед выездом на дачу на летние каникулы. Но разбираясь в старом хламе я неосознанно заметил за собой, что кроме наведения чистоты, удаления лишних объектов и максимального поворота «лицом» к следующим пользователям я начал улучшать проект.
Ну а почему бы и нет? Вот так и случилось достаточно масштабная (по меркам этого маленького проекта) обновление. Размеры изменений я могу сравнить, пожалуй, с вводом системы повреждений.
Первым делом после осознания того, что наведённый порядок уже является неким обновлением я захотел улучшить графику. Прошлая версия была достаточно жёсткой и беспощадной к ресурсам, но после улучшения чистоты картинки настройкой шейдеров я понял, что освободил ресурсов. Начал так начал!
Первыми под косу оптимизации пошли текстуры, которые были кривых разрешений и, местами, через мерно качественными. Ещё читая справку к дополнению Ultimate 3D для Game maker я узнал, что разрешение текстур должно быть кратно двум. В противном случае они пожимаются до меньшего разрешения. Тоесть все мои текстурки разрешением 800х800 жрали как 800х800, а выглядели как 512 х 512. Я не мог допустить такого транжирства и порезал их.
Шейдеры. DoF был абсолютно бесполезен. Он хорошо смотрится в стрелялке или красивой гонке, но когда речь идёт о ралли с частыми поворотами, не дающими посмотреть вдаль — он лишний. *Удалено*
Bloom и SSAO раздваивали объекты, создавая вокруг них полупрозрачные копии. Это очень сильно загрязняло картинку и я решил перенастроить это дело. Получилось даже быстрее.
Оптимизация прошла с небольшим улучшением графона. Зачем жить без графона?
Разумеется, графон тоже относительный и Dirt 3 у меня не получится, но, в целом, немного подправить можно.
С этой мыслёй я закатал рукова и начал адаптировать модельку Lancer 10 к игровому миру. Адаптация прошла успешно. Модель вписывается в графон и имеет тот же функционал, что и прошлая. Поправляя физику случайно улучшил управляемость и реакцию на неровности ландшавта. Правда местами ландшафт был совсем кривой и я его выравнил. Заодно сменил направление. В другую сторону ехать как — то проще и пейзажи краше =)
Обновление уже достаточно масштабное и охватывает абсолютно все части игры. Графика, Физика и производительность. Не хватало изюменки, которая бы позволила действительно называть обновление большим.
Эта самая изюминка всегда была рядом. Вернее не была, чем и заслужила себе почётное место в моей голове. Это звук двигателя. Ранее я уже пытался его реализовать, но знания кода у меня были слишком скудные для такой объёмной фичи. Всё — таки сделать звук двигателя — это не добавить песенку на фон. В отличии от музыки звук двигателя должен быть очень чётко связан с картинкой.
Найдя в интернете небольшой код, демонстрирующий работу с Pitch я принялся за разработку звукового движка для движка. Исходник использовал только лишь скорость для определения высоты тона. В определённые скоростные промежутки машинка дёргалась назад сбивая скорость, чем создавала скачок в высоте. Из — за этого создавался эффект переключения передачи. Мне это не подходило по той простой причине, что в отличии от примера моя машинка могла подпрыгнуть на неровности или уйти в занос. Обороты двигателя должны подскакивать, но скорость остаётся прежней, что совершенно не красиво звучит в случае с исходником.
начал я с самого начала — добавление такой штуки как rpm.
При нажатии на клавишу газа значение переменной возрастало, а при отпускании падало. Это всё очень хорошо, но абсолютно ничего общего со скоростью не имеет, да ещё и одна единственная передача. Пришлось вводить симулятор коробки, который на определённой скорости при определённых оборотах сбрасывал обороты и переключался на следующую «передачу» уже с другими условиями для переключения.
Всё по — взрослому =)
На самом деле выглядит это очень просто. Объяснить работу — сложнее, а придумать это — вообще вынос мозга. Сложнее чем придумать, пожалуй, только настроить для качественной работы.
В целом же получилось удачно, но ещё предстоит допилка.
Пожалуй, вот так и было создано обновление.
Ссылка на пост с последним исходником
Спасибо за внимание, с вами был drdotmom!