Gaminator 7. Несыть :: Разработка

Содержание: Концепция ːː꞉꞉ Начало ꞉꞉ Разработка ːː꞉꞉ Релиз ːː꞉꞉ Ещё ːː꞉꞉ Уи-ха!

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

Преальфа (просто ручкой из могилки помахать)

work1.jpg

Пока есть ползающая по плоскому тайловому бэкграунду голова и предательски низкий FPS, хотя вроде бы Direct3D (пусть и в оконном режиме) и при таком мизерном рендере должно летать. Голову и прочие части (которые пока не рисуются) накидал вчерне в CorelDraw — как-то стыдно было использовать для WIP чужие картинки. Бэкграунд, впрочем, не мой, взят с http://lenagold.ru.

Если также медленно всё пойдёт, то на выходе останется также в Кореле набросанный минимализм в гамме помрачней и стилизованные препятствия — «минигигер по-сельски», короче. Следующий этап — учимся ползать в том же отладочном желтом антураже.

Добавлено 24.08.2011: Понял проблему с тормознутостью. Низкий FPS из-за вертикальной синхронизации на 60-герцовом ЖК-мониторе. Убрал синхронизацию и получил 3000 с гаком кадров в секунду при таком же размере окна и 200 кадров при развороте на 1920×1080. Комплексы о недостаточной производительности отброшены.

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

smptracking_fail.jpg

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

Альфа 1.0 — кто хочет порулить червяком?

Добавлено 26.08.2011: Выкладываю первый релиз, дремучую альфу, в которой реализованы движения и наращивание длины червя. Каждое съеденное яблоко увеличивает размер головы червя и прибавляет одно звено. Графика отладочная, музычка и звуки тестовые. Специально для любителей быстрой езды оснастил червя акселератором (пробел во время движения).

alpha_1.jpgСкачать 3.8 Мб

Раз весь дебаг-арт табачно-желтый, то фоновая композиция будет соответствующая: Imelda May — Smokers’s Song. Прошу отписаться, если заметите какие-либо косяки. Например, если картинка отличается от того, что видно на скрине, музыка не играет, нет звуков при поедании яблок или движения червя навевают недостаточно ужаса на обывателей. Управление:

alpha_1d.jpgстрелки вперёд и назад — движение и остановка
стрелки влево и вправо — поворот
пробел — дополнительное ускорение
wasd — дублирование стрелок
m
 — включить/отключить звуки
1, 2, 3, 4 — отладочный вывод (на картинке)
esc
— выход из игры

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

Альфа 1.1 — издание исправленное и дополненное

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

alpha_1a.jpg

Скачать 4.1 Мб

1. Реализован дельта-тайминг, теперь игровой движок работает с максимальной скоростью, всё серьёзным образом заплавнело.
2. Исправлена ошибка с порядком вывода частей тела.
3. Путь головы записывается по равным промежуткам перемещения, а не времени.
4. Исправлена ошибка связанная со сворачиванием окна — теперь не падает.
5. Реализовано экспериментальное управление — ускорение зависит от частоты поворотов, стрелка «вперёд» включает режим плавного перемещения.
6. Снижена яркость бэкграунда — ваше зрение вам ещё пригодится.
7. Добавлен отладочный вывод характеристик червя.
8. Добавлены режимы паузы (ввод, пробел) и подтверждения выхода (esc), использованы белый и красный вариант шрифта Bicubik в трёх размерах.
9. Изменён алгоритм формирования тела — хвост (область сужения) имеет ограниченную длину и после увеличения червя больше этой длины размер звеньев уже не меняется, хвост начинает расти вместе с головой.
10. Алгоритм поворота червя теперь учитывает и размер и скорость червя. Новые картинки не рисовал — загиб звеньев всё равно пока работает не как шарнир, углы звеньев топорщатся.

Управление экспериментальное, к нему поначалу надо привыкнуть (особенно тем, кто тестировал предыдущую версию). Чтобы ускориться и, вообще, тронуться с места нужно поочерёдно изгибать червя в разные стороны. Стрелка вперёд больше не «газует», она включает функцию плавного перемещения — повороты становятся плавными, набирать скорость и перемещаться так удобнее. В любой момент, можно отпустить стрелку «вперёд» и молниеносным движением съесть яблоко, развернуться или выкинуть какого-нибудь другого финта — поворот в «резком режиме» практически не зависит от скорости (только от размера червя) и позволяет делать довольно забавные трюки. Стрелка «назад» теперь включает дополнительное плавное торможение, помимо естественного затухания скорости червя. Удачного ознакомления!

P.S. Отладочный вывод теперь на один режим больше: 1,2,3,4 и 5.

Альфа 1.2 — отточено и завёрнуто

Добавлено 01.09.2011: Команда самоотверженных тестеров доблестно продолжает стачивать пальцы о клавиатуру и не выпустить очередной релиз было бы просто преступлением! Спасибо всем, кто слушает это радио!

alpha_12.jpg

Скачать 6.3 Мб

1. Реализовано масштабирование всей сцены, в частности зависимость приближения камеры от скорости червя.
2. Содержимое области вывода автоматически масштабируется под высоту окна.
3. Фон сменен на более человеколюбивый, при масштабировании старый давал много неприятных эффектов.
4. Исправлены обнаруженные ошибки в управлении.
5. Кнопка «вперёд» теперь не включает, а отключает «плавный» режим движения.
6. Исправлен алгоритм выкладывания рандомной еды — вишнеяблоки больше не падают друг на друга и червя.
7. Вставлен экспериментальный саундтрэк.

Снова привыкаем к новому управлению. Теперь постоянно плывём плавненько, а если нужно, то кнопкой «вперёд» загибаем траекторию под более острым углом. Также из демки убран весь неавторский контент (кроме бэкграунда с lenagold.ru) — экспериментируем с другом stada на музыкальную тему. Это саундтрек — рыба для нарезки и модификации, но у нас альфа-релиз, так что пожалуйте к столу!

Добавлено 01.09.2011: Реализовал какую-никакую обработку столкновений с препятствиями и краями карты, сделал отладочный вывод на спрайтах. Пока для релиза изменений маловато, поэтому просто скрин и работать дальше.

aviodobstacles_13a.jpg

Альфа 2.0 — запасаемся попкорном

Добавлено 02.09.2011: В этот раз никакого интерактива, просто запускаем и смотрим, как два червяка (допустим Вася и Боря) соревнуются в поедании яблок! Кнопочки 2 и 4 включают и отключают отладочный вывод, проливающий свет на природу ИИ.

alpha_20.jpg

Скачать 6.3 Мб

1. Реализован режим редактора карт (только в девелоперской версии), добавлены разноразмерные тестовые препятствия.
2. Автоматические избегание препятствий как для игрока, так и для ИИ (в этой версии самим вам поиграть не получится).
3. К червям и яблокам теперь рисуются полупрозрачные тени, мультяшность немного выпятилась.
4. Реализована логика ИИ для преследования целей и выхода из сложных ситуаций.
5. Реализована возможность нахождения в игре любого разумного количества червей.
6. Часть отладочного вывода реализована на спрайтах и выглядит приятнее прежних линий.

Бета 1.0 — выжить среди смертной любви

Добавлено 03.09.2011: Время бессердечно утекает, а нужно успеть столько всего! Всем, кто силен духом (я честно говоря, сам стремаюсь в это играть) и не может дождаться завтрашнего общего финиша посвящается этот релиз.

beta_1.jpgСкачать 7.3 Мб

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

1. Черви появляются из яиц, когда те достигнут определённого размера.

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

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

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

5. Кнопка «4» поможет узнать о намереньях ИИ.

6. Если червю отожрали хвост, то пока он не наест столько же, сколько потерял, то дальше не растёт.

По умолчанию сделал полноэкранный режим, если нужно в окошке, то запускайте файлик Sateless_Windowed.bat в папке игры.

Боюсь, что ответить на все комментарии не смогу — надо релиз готовить. Но если у вас появится какое-то очень важное предложение или типа того, то пишите, я обязательно всё прочту. Всё, пошел работать дальше.

Кстати! Если за вами уцепился красный червь — повернитесь к нему головой, голову обычно он откусить ещё не может. Берегите хвостики!