Забавно. С моей полетевшей виндой и проблемами с видеокартой я думал, что всё - пролетел и я, снова - руки опустил, тем более сам заболел и день пролежал (если всё плохое из случившегося впихнуть в одно предложение - звучит прикольно).
А тут продлевать думают... Тогда посижу сегодня немного, а вдруг успею к вам на вечеринку. Выпивку беру свою.
Обращаю внимание
Из очевидных недоработок (вроде не исчезающего выхлопа после уничтожения танка) хотелось бы отметить очень странную работу камеры (она не успевает, если ехать ровно по горизонтали или вертикали), а при отдалении смещается куда-то и танк не по центру экрана. Проверка столкновений снарядов тоже с проблемами. Но, наверняка, тоже просто ещё руки не дошли.
Ругаюсь
Вот, что хочу выделить отдельно - почему-то FPS на моём калькуляторе заметно просел и выдавал явно меньше 60. В настройках ini-файла я включил альтернативную синхронизацию и VertexBufferMethod сменил на "0", тогда игра заметно ускорилась.
Может, на более мощных компьютерах этого игрок и не заметит, но на моём, на котором всё же играл в Half-Life 2, Dota 2, S.T.A.L.K.E.R. - заметно, имея на карте 3 танка и несколько ящиков. Явно где-то есть что-то, вроде кучи прозрачных спрайтов или уймы циклов, что грузят систему. Хочу узнать, как пошло у других - вдруг проблема локальная, я же систему менял и ещё не всё мог настроить.
Сам себе могилу рою
Просто от себя: если враги будут вилять - будет интереснее. Не только умный игрок должен уворачиваться. А, если добавить скорость поворота, появится больший смысл в этом самом вилянии. Как мне кажется, можно так сделать интересный игровой процесс с маневрированием и преследованиями. Сейчас же нужно заранее поворачивать, иначе не успеть, но снова выпрямляться, ведь враг напролом прёт и сокращает дистанцию, не позволяя сделать ничего, чтобы уйти от снаряда и всё это сработает только в случае изначального запаса расстояния. В иных случаях приходится поочерёдно обмениваться пощечинами, не имея никакой возможности что-либо изменить.
Там макс. Фпс 30. Насчет этих заметок спасибо, некоторые уже пофиксил. Про виляющие танки я думал, но пока даже не удается сделать чтобы танки в кучу не сбивались, так что работаем)
Артиллерийская дуэль утонченных аристократов на удаленном дуэльном острове.
На фамильных танках.
По условиям нельзя использовать смертельное оружие, поэтому снаряды не наносят ущерб танкам, но могут разрушать остров.
Цель - разрушить землю под противником.
Игрок управляет только вращением башни, подъемом пушки и стрельбой
После каждого выстрела танк под управлением верного помощника меняет позицию, чтобы врагу было тяжелее попасть.
Естественно, если есть земля, куда можно переехать.
Управление:
Синий - Стрелки и 0 на нампаде
Красный - WASD и пробел
Верный помощник, порой, втыкает в телефон и не едет, в какой-то момент вообще обижается на замечания и уходит - танк больше не едет, хотя есть как минимум 2 варианта хода. И стреляй хоть 50 раз - не едет.
Ещё момент, если под тобой клетку разбили - стреляй. В одном случае я так в воздухе завис, когда помощник ушёл, а в другом случае полетел на соседнюю клетку и снова оказался на ней - игра продолжалась, только меееедленно. Как- бы победу уже засчитали, ведь.
И не понял, почему игрок сохранён, который упал? Я про надпись на экране. Подбил синий танк и он теперь SAVED... А красный LOST - просто не заменил надпись?
И наконец-то поставил свой GameMaker - у меня стим не работает на диске D. Даже форматировал - не помогает, просто выдаёт восклицательный знак и закрывается. Ни одного слова. А на С всё пошло.
У меня более чем скромно, откровенно говоря я хотел слиться, что-то не было никаких оригинальных мыслей и идей и спрайты не рисовались, но раз такое продление то можно поробовать доделать то что получается.
Erewego написал:
У меня более чем скромно, откровенно говоря я хотел слиться, что-то не было никаких оригинальных мыслей и идей и спрайты не рисовались, но раз такое продление то можно поробовать доделать то что получается.
При перемещении танка, не просто изменяй координаты, когда давятся стрелки - это вызывает пиксель-цепляч, когда нужно с точностью до пикселя выровнять танк, чтобы проехать в пролом, например - а перемещай танк из одной клетки в другую. Т.е. нажатие на кнопку приводит к перезду танка в соседнюю клетку. Выглядит как свободное перемещение, но позволяет всегда точно позиционировать танк в центре клетки и избегать зацепов за пиксеоли.
Более продвинутый вариант - каждую улетку представлять в виде нескольких субклеток (скажем, 4х4 и перемещать танк по ним. тогда движение будет более свободным, и цепляться будет не за каждый писксель, а только за выступы, размером с субклетку.
Надеюсь понятно написал :)
Соглашусь по поводу не сплощного передвижения, очень важно следить за качественным управлением.
Если у тебя не по клеткам передвижение - то хитбоксы персонажей и стен должны настраиваться с большим запасом.
Erewego нужно просто сделать классическое выравнивание при повороте, чтобы ось движения всегда была кратна 8 (размер тайла, если как в Battle City), вот такой псевдокод:
Если танк размером 16x16 пикселей и позиция в левом верхнем углу. Можно (tmp >> 3 << 3) заменить на (tmp & 0xFFFFFFF8) или (tmp & ~0x7), из-за размера интов может различаться, не уверен.
StormT написал:
Кстати, в оригинальных танчиках тоже не по пикселям было, насколько помню.
Там такое же выравнивание как выше, по пикселям движение только по одной оси. Причём хитбоксы всегда выравнены по тайлам (8 пикселей). Подробности в известной статье: Ностальгия: роемся у «Танчиков» под капотом.
Интересная статья!
Сколько я думал над тем, как же им удалось реализовать такое разрушение стен, оказалось всё куда проще "существует 16 видов обычных тайлов — по одному на каждое состояние".
Никогда не перестану восхищаться программистами игр тех времён, потому подписан на канал GameHut https://www.youtube.com/channel/UCfVFSjHQ57zyxajhhRc7i0g,
где тоже много интересного узнал.
А про игру от Erewego:
я у себя реализовал такой способ для выравнивания танка (например) по сетке.
x = (round(x/40))*40;
y = (round(y/40))*40;
Где 40 - размер клетки. Например, тебе надо выровнять по сетке 8 пикселей - просто 40 замени на 8 и событие поставь, например, на остановку движения танка, у тебя там звук воспроизводится специальный, как раз. Тогда ехать будет по пикселям, а при остановке может слегка дёрнуться, но никого это не смущало в Battle City )))
СПУСТЯ ГОДЫ:
Только посмотрел - у тебя Godot, а я был уверен, почему-то, что у тебя GameMaker. С Teedeush'ом перепутал, видимо. Тогда мой пример не очень-то поможет.
Я с телефона — пока ничего не покажу, но одно скажу про проект наверняка — ещё никогда я не уделял столько внимания той части, которая между уровнями. Накачал изображений помощника, подогнал под сценарий. Так увлёкся, что забыл про свою любимую часть — звуки. Теперь придётся в спешке озвучить игру.
Обращаюсь к другим участникам конкурса: ребята, я не знаю, как высказать своё удивление, когда вижу проекты вообще без каких-либо звуков. Скажу очевидное: звук — это основной инструмент для создания атмосферы в игре. Любой звук уже задаёт какое-то настроение, потому не поленитесь уделить озвучке хотя бы часик.
Первый раз участвую) Волнуюсь немного, паранойя, что что-то неправильно оформил или не заполнил.
Игру сдал пару дней назад, ибо уже нет времени ей заниматься. Но то, что уже вышло - мне нравится) Поэтому вот пара минут геймплея танковых баталий, с элементами Tower Defence.
Супер) Динамика на высоте, идея с башнями — блин, как я не догадался? Что-то вроде твоих лаунчеров тоже есть, только в сборке я их уберу — не доделаны они. Тут подумают, что кто-то под кого-то косит))) Парашютисты порадовали. Весело выглядит.