svtz / tanks Goto Github PK
View Code? Open in Web Editor NEWЭто будет пародия на 8-битные танчики. Может быть.
License: MIT License
Это будет пародия на 8-битные танчики. Может быть.
License: MIT License
Со своим танком всё ОК, но вот танки другого игрока могут срезать углы и ездить как-то боком.
Баг чисто визуальный, но надо чинить, мне не нравится.
Допускаю, что сломал какой-то переход, когда перепиливал UI.
Воспроизведение:
Все манипуляции проделывать, не выходя из игры.
Изначально танк двигался по 1 клетке, а рушить должен был по 0.5.
Тут возникала проблема, когда танк подъезжает к полуразрушенной стенке и пытается повернуться на 90 градусов.
Т.к. танк в этот момент находится между узлами - то он выравнивается по ближайшему, и при этом может оказаться поверх полуразрушенной стенки, что есть баг (к слову, утверждается, что в 8битных танчиках он просто не мог так подъехать).
Окей, подумали-подумали, и приравняли сетку движений к сетке разрушений. Хотели как лучше - получилось как всегда. Появились проблемы со стрельбой.
Чтобы снаряд уничтожал стенку по всей ширине танка, ему в своё время пришлось увеличить размер коллайдера, в реузультате чего коллайдер снаряда значительно превосходит реальную ширину этого снаряда. Пока сетка движений была 1, всё было хорошо. Но когда сетка стала 0.5, то стали возникать странные (с точки зрения пользователя-игрока) приколы, когда ты пытаешься пустить снаряд вдоль стеночки (по прямой, параллельной стене и отстоящей от неё на 0.5), а снаряд врезается в эту стену. Что ещё веселей - подобным же образом можно уничтожить другой танк.
Надо думать, сейчас вижу два варианта:
Коллайдеры танков сейчас - круги. Изначально так было сделано, чтобы избежать проблем с поворотом танка в узких коридорах, но сейчас это уже не должно быть актуальным (т.к. танк фактически "телепортируется" в правильное положение).
Нужно попробовать переделать на квадраты, это должно убрать странное поведение при смещённых на 0.5 корпуса столкновениях между игроками.
Где-то (в главном меню?) надо показывать номер версии игры.
Сейчас гусеницы статичны, что на больших разрешениях экрана вообще не смотрится.
Надо приделать анимацию в движении.
Сейчас свой танк рисуется синим, противники - красные, союзники - жёлтые.
Надо подумать на тему раскраски каждый игрок - свой цвет, по крайней мере для Deathmatch.
Т.к. у танка два элемента (корпус и башня), которые по сути могут иметь разные цвета, можно пофантазировать на тему "обозначать команду цветом корпуса, игрока цветом башни".
Подумать на тему подключения игрока в процессе боя.
Сейчас ХП обозначается какой-то уродливой полоской на танке.
Предполагаю, что индикатор ХП вообще не нужен, потому что по-умолчанию танк должен умирать от одного попадания. А возможность выдержать больше попаданий - это какие-то баффы, которые должны иначе отображаться. Вплоть до пририсованных к корпусу квадратиков динамической защиты.
В итоге невозможно запустить вторую игру на том же компе
Выглядит как некоторая оптимизация. Вместо того, чтобы каждый раз создавать новый объект, сделать пул переиспользуемых объектов. Может хорошо ощущаться со снарядами, особенно когда все вокрут стреляют без остановки.
Различные баффы и спавнеры баффов.
Что на первое время приходит в голову:
Вероятно, здесь нужно сделать только ремонт (самое простое имхо), а на остальные завести отдельных фич
Всё дело в корне из 2х.
Предполагаю, что можно починить, домножая на это волшебное число размеры BoxCast'а в зависимости от направления снаряда (если по диагонали, то домножать)
Добавить фон, динамику на стартовый экран. Настроить внешний вид GUI
В Unity можно писать тесты, нужно поразбираться и обложиться ими, иначе дальше будет плохо.
Нужно нафигачить карт для режима deathmatch
Танк должен всегда доезжать до следующего узла сетки. Допустимо застревать между узлов, только если случилось столкновение.
Судя по всему, как-то криво считается столкновение со снарядом. В результате танк , после попадания в него, перестаёт прилипать к сетке, т.к. считает, что с чем-то всё ещё соприкасается.
Лес - элемент карты, который никак не мешает перемещению, но прячет танки, находящиеся в нём. Т.е. мешает обзору.
Есть сценарий, в котором танк не остановится в следующем "узле" сетки, даже если игрок отпустит кнопку. Можно поиграться, воспроизводится регулярно. Нужно починить.
Если игрок покидает матч во время обратного отсчёта респавна, его танк всё равно появляется.
Время между уничтожением танка и респавном должно быть ненулевым.
Внезапно.
Сейчас невозможно повернуть танк, не передвинувшись. Нужно обеспечить такую возможность.
Сейчас сетка разрушений 2х2. Должна быть 4х4, т.е. в два раза меньше.
Требования изменились, изменения вызваны горьким опытом испытаний на большой карте.
В связи с этим, с сего момента приравниваем 1 unit == 8px
Что-то я уже перерисовал (а то от артефактов глаза вытекали), нужно доделать остальное:
В 8-битном стиле.
Если стоять лицом, скажем, вверх. А потом одновременно нажать пробел и вниз.... снаряд улетит вверх, причём кручёный снаряд)))
Танки разных команд должны иметь разные цвета. Нужно определить набор стандартных цветов
Надо вкрутить IoC-контейнер, иначе скоро у нас начнётся адочек.
Пока смотрю на вот этот: https://github.com/modesttree/Zenject
Просто зафиксирую мысли.
Сейчас статичная, что для больших уровней вообще не подходит. Камера должна как-то следовать за танком (возможно, по-умному)
Во время оборатного отсчёта респавна, нужно отображать сообщение "танк уничтожен", и количество секунд до восстановления.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.