Катящийся куб Ludum Dare 34

Исходное сообщение

Итак, пока он свежий, я пишу LD34, успешный провал.

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

Мы забегаем вперед, подготовка Ludum Dare — ответственный этап. Каждый Ludum Dare моя подготовка имеет тенденцию соответствовать моим результатам. Когда я делаю успешную разминку, я делаю успешную игру. Я принял решение работать над Psybrus, движком @Neilogd, который сейчас использую для личного проекта.

  • Давайте посмотрим на прогревочные коммиты.
  • Исходный подмодуль Psybrus в редакции…
  • Пытаюсь заставить скелет работать
  • Исправлено состояние, но все еще сломано
  • Исправлена ​​ошибка перехода путем добавления фиктивного объекта
  • Рендеринг работает с новым рендерингом без сохранения состояния
  • Тестирование физики, столкновение нарушено
  • Исправлена ​​физика и настроена камера
  • Найден сбой при удалении модели — связанный с Psybrus
  • Основные элементы управления меню, выберите кучу возиться с камерой

Psybrus — это компонентный движок, и во время прогрева я обнаружил некоторые проблемы с присоединением и отсоединением, большинство из которых были решены, некоторые — нет. Физическому тесту потребовалось немного времени, чтобы начать работать, хотя самым важным моментом, обнаруженным во время прогрева, был переход на новый рендерер без сохранения состояния. Это прекрасное улучшение, но оно означало, что большая часть моего каркасного кода не соответствовала требованиям. Базовый конечный автомат, меню и камера на месте Я разогрел инструменты, но не было сделано ни одной игры, чтобы проверить биты.

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

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

  • LD48 Старт и идея игры
  • Базовый рендер работает
  • Катящийся куб
  • Катящийся уменьшающийся куб

Все это прошло довольно хорошо. Простой, но визуализируемый куб на самом деле является сгенерированной сеткой, а не моделью. Я потратил на это некоторое время, но мой план состоял в том, чтобы сгенерировать сетку для мусорного мяча, чтобы я мог сделать его более интересным и «стереть» его интересным способом. Хотя я никогда не использовал это.

  • Падающие блоки, вылетает при нажатии r для сброса
  • Глупый сбой исправлен, но все еще сбой, когда вы нажимаете R для перезагрузки из-за…

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

  • Поднимите стрелу и отделите мусорный шар
  • Огненно-красный луч
  • Поля скал
  • Ешьте барахло
  • Материал удаляется сейчас

Я запустил Blender, чтобы сделать первую модель, о нет, подождите, я установил его первым, потому что забыл подготовить свои 3D-инструменты. Было немного хлопот с запоминанием элементов управления и настройками экспорта Blender в соответствии с тем, что мне нужно. Создание поля камней было достаточно простым, и игровой процесс начал проявляться. Физика вызвала ряд вопросов. Я часами тыкал и подталкивал Пулю. Я потратил несколько часов, копаясь в Bullet в поисках способов, с помощью которых коллайдер может реагировать на raycast без жёсткого тела, но безрезультатно. Некоторые говорят о призрачных объектах, но у меня были проблемы. Хотя, в конце концов, я просто вошел и взломал физический код, чтобы форсировать позицию. В конце концов он выполнил после потерянных часов. Поедание мусора было потрясающим, когда оно появилось, но я столкнулся с проблемой удаления. Удалось решить это в основном путем тыкания двигателя. Коммиты движка здесь не показаны.

  • Фиксированные коробки AABB
  • Обновите Псайбрус

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

  • Ручные режимы камеры
  • Катание шариков из металлолома

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

  • Шейдер неба

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

  • Кран издевается над

Больше времени, играя в Blender, выясняя детали, но в основном запоминая. Много времени было потеряно на то, чтобы не прогреть Блендер. Такие вещи, как создание скульптурной палочки, развертка UV, экспорт PNG вверх ногами и общие проблемы.

  • Чертовы частицы… ну, они работают
  • Чертовы хаки для подачи

С 21:30 до 02:15 я потерял МНОГО времени на частицы. Это началось, потому что я смотрел на плохой пример частиц с Psybrus, который был особым случаем и 2D. Так что я потерял кучу времени там. Наконец-то решил проблему с 2d/3d. У меня куча проблем с трансформацией и шейдерами. Много возни с RenderDoc, и, наконец, частицы рендерились примерно в правильном месте, но, БЛЯДЬ, они были немного не в порядке. В конце концов, после долгих пререканий с Нилом и с Нилом, он был похож всего на два раза. Оказывается, это была ошибка, из-за которой он наткнулся на предыдущий LD и забыл исправить ошибку. Раздражает, но смех.

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

Вывод

Да, это было бы быстрее во флеш-движке, Unity или каком-то другом таком. Хотя я чувствовал себя все время под контролем. «Редактировать и продолжить» вроде работает, но очень ненадежно, и мне нужно исследовать. Честно говоря, время сборки и итерации было, вероятно, самым большим минусом. Хотя мне очень нравится джемовать в C++ esp, так как моя основная работа больше не связана с разработкой игр, а больше связана с игровыми технологиями и сопутствующими вещами. Я всегда чувствовал, что могу покопаться, либо с RenderDoc, либо пошагово и взламывая движок.

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

Играй здесь