среда, 7 января 2015 г.

Выстрел в грудь - не упаду

I'm bulletproof, nothing to lose
Fire away, fire away
Ricochet, you take your aim
Fire away, fire away
You shoot me down but I won't fall
I am titanium
You shoot me down but I won't fall
I am titanium

Как в походовой игре сделать прицельную стрельбу? Не так просто, как кажется.
С одной стороны можно неторопливо прицелиться, включить все бонусы-усилители и нанести точечный и верный удар и будет очень легко. С другой стороны - если включить запланированные промахи-отклонения, то можно долго ждать пока попадёт в цель (это в риалтайме быстро пролетит, а тут - как-то придётся проматывать).
В прототипе на корабле есть реакторы, пушки и двигатели. Без реакторов ничего не работает. Без пушек не стреляет. Без двигателей не может удрать. Щитов пока нет - это более тонкий тюнинг, про него чуть позже.

Как сделано в FTL? Целимся всегда точно, лазеры бьют 100%, пилотирование помогает отклониться от ракеты, спасают  только щиты. Это значит, что как только щиты разбиты -дальше уже легко. В нужно порядке вырубаются нужные приоритеты - пушки, чтобы не стрелял, движок, чтобы не улетел, кислород, чтобы меньше народу (т.к. меньше кислороду).
Как не сделано в Out there. Да никак не сделано. Нет боёвки- нет и варенья проблемы.

Как делаю реализацию. Корабли пока небольшие 6*3 модулей-отсеков.
В первой итерации включил рандомный обстрел по площади. Бьют от 1 до 6 лазерных пушек. За одно  попадание снимают 0.5 "здоровья" отсека. Астронавт за ход может починить 0.1 "здоровья" отсека.
В первом прототипе включил у обоих кораблей обстрел рандомный по всей площади. Бои длились от 30 до 200 ходов. Это долго для ручного проматывания и совсем неуправляемо. Хочется более прицельно.
Во втором прототипе (нет наверное прототип это громко, пусть будет итерация)  включил у своего звездолёта следующую логику. Целиться можно. Но при первом залпе обстреливается квадрат 5*5 (часть выстрелов улетает в космос) , при втором 5*3, при третьем - 3*3, при четвертом 1*1 (последнее почти сразу отключил - реакторы разносились в щепки, играть стало неинтересно) Стало более интересно. С одной стороны можно указать квадрат обстрела. С другой стороны - есть рандомайзер, вносящий в игру острые моменты. Например когда осталось по одной пушке с каждой из сторон и тебе надо дождаться удачного попадания. При этом можно долго ждать, пока одна пушка наконец попадет в 1 сектор из девяти в квадрате обстрела. Это может быть даже скучно.
В третьей итерации убавил безумной храбрости - необходимое преимущество по огневой мощи пока забил в константу  = 0.5. Это значит, что как только у врага меньше огневой мощи в 2 раза, он сразу готовится навострить лыжи.
В четвертой итерации я спрятал отсеки врага до первого попадания (изначально их не видно) и улучшил прицеливание. После третьего выстрела начинает уменьшаться количество неприцельных клеток в квадрате обстрела. Ну логично - если за 8 выстрелов уже выбито 8 клеток, то на девятый пускай уже попадает. Сколько можно мазать.
Дальше надо развить генератор вражеского корабля - сейчас есть 3 типа - маленький-средний-большой. У каждого свой диапазон размеров. И линейное заполнение разными модулями: в порядке возрастания. Например сначала в средний корабль добавляется 1-4 реактора, 1-4 пушки и т.д. Линейное заполнение, конечно, страшненькое-  сначала подряд реакторы, потом пушки, потом движки. Никакого феншуя.
А также прикрутить щиты и ракеты. По этому у меня тоже есть отдельные мысли)

Какие общие выводы: рандомайзер и туман войны можно и нужно аккуратно применять. Т.о. промахи - это важная составляющая боёвки. Но они должны быть естественными, не превращать бой в сплошную удачу (или неудачу) и не затягивать процесс

Комментариев нет:

Отправить комментарий