SUPERADRENALINE

У копа сдали нервы и он впал в ярость. Как мы сделали пошаговый хот-лайн на этот хакатон.

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

Действующие лица:
Код, гемдизайн: Six Dots (Михаил Михеев - автор статьи)
Лого, пиксели: Pixxxel Oj!
Музыка любезно предоставлена: ScrewWave

А теперь об игре. Мы играем за копа жилы которого переполняет яяярость. Если он не убьет всех противников за 60 ходов - он лопнет от злости(буквально). На каждый ход дается 1 секунда, иначе его пристрелит снайпер. Таким образом на одну комнату дается максимум 60 секунд.

Игрок может:
- Рестартнуть уровень, прожженые хакатонщики знают что это плюс =)
- Поднимать ножи, пистолеты.
- Бросать ножи, резать, стрелять из пистолета.
- В лучших традициях #tlou2 ножи имеют прочность и ломаются. Зачем это сделано? Просто чтобы добавить сюда хештег.
- Два вида противников, обычный, стреляющий*.

За созидательный процесс мы сели где-то в 14.00 субботы, я слез со стула в 4 утра понедельника загрузив билд на сайт. Для меня это уже пятый хакатон, поэтому такие нагрузки привычны можно сказать, но все равно спать по 4 часа в сутки это крындец как потно, поэтому вы читаете эту статью только сейчас =)

Зато я научился пользоваться while (далее прогеры поймут), все 4 года что я делаю прототипы и даже игры продающиеся в стим я боялся пользоваться лупами. Обычно это заканчивалось перезагрузкой юнити, так как все намертво зависало, а я достаточно ленив поэтому просто их избегал. Но тут я пересилил себя и научился делать эти страшные лупы, тем более что иного варианта для перемещения врагов я не нашел.

Что неудалось таки реализовать за это время, но очень хотелось:
- *Стреляющие противники не стреляют, они закрашились в последние часы разработки.
- Пистолет нельзя бросить когда нет патрон.
- Уровня всего два и они короткие, для поиграть увы это мало. Только механ глянуть.
- В Unity достаточно неудобная система анимации особенно для 2Д поэтому несмотря на кучу готовых анимация от художника, я их так и не закинул в игру.
- Таймер снайпера в виде сужающегося кольца надо делать прямо на персонаже как-то иначе за ним сложно следить.
- Да, в игре пародирующей Хот Лайн я забыл про кровь!!!
Но несмотря на это, на поиграй, если хочешь:

А еще у нас в конце крутится такая прикольная медалька/монетка, на удачу.
По-моему, она задает тон всей игре.

Спасибо, крутых вам хакатонов, и еще более крутых игр!

1515
9 комментариев

Комментарий недоступен

1
Ответить

Кстати похоже, я забыл про него

1
Ответить

Не знаю что это, баг или фича, но ножи часто пролетают сквозь персонажей.

Визуал очень приятный.

1
Ответить

Очень удивился пункту про лупы. А чем ты пользовался вместо них все эти 4 года?

Ответить

любую программу можно написать используя только IF     )))))

2
Ответить

С лупами я обычно делаю так:

int test = 0;
while(какое-то условие && test < 100){
     //необходимые действия
     test++;
     if(test >= 100)
          Debug.Log("У тебя там луп залупается!");     
}

Получается такой аналог for, но сообщающий о том, что слишком часто перезапускается, не уходя в бесконечный цикл. Если всё нормально после пары перезапусков, то убираю мусор, оставляя обычный и красивый while. Хотя иногда так и оставляю, если не уверен, что во время игры ошибки не вылезут. В конце концов, уж лучше в игре что-то забагует, чем она начисто повиснет.
А ещё я уверен, что долно быть какое-то некостыльное решение этой проблемы, но я о нём не знаю.

И насчёт игры: Выглядит интересно. Хоть кто-то сделал что-то интереснее обычного таймера (мы тоже собрали просто игру на очки).

Ответить

Спасибо)
Я открыл для себя что если добавлять yield return new whaitforupdate то зависаний становится меньше в местах где раньше намертво от других ретурнов зависало.

Ответить