werryxgames / tanks-battle-server Goto Github PK
View Code? Open in Web Editor NEWOfficial server for multiplayer game "Tanks Battle"
Home Page: http://185.6.27.126
License: GNU General Public License v3.0
Official server for multiplayer game "Tanks Battle"
Home Page: http://185.6.27.126
License: GNU General Public License v3.0
Describe Tanks Battle without this idea as a problem
Camera looks ugly, when tank rotates by 180 degrees, unlike other games.
What is the best problem solution?
Make camera rotate only by 1-2 axis
Добавьте докстринги и коментарии к коду
Этот уровень будет между debug
и info
Он нужен, чтобы разделить пакеты матчей и все остальные пакеты уровня debug
То есть данные, которые отправляются игроку и данные которые отправляет сам игрок, если он не в матче (включая выход из матча), то они и будут на таком уровне, как и предложенный
При входе игрока на сервер, иногда возникает эта ошибка и сервер останавливается
Traceback (most recent call last):
File "/storage/emulated/0/Tanks Battle Server/player.py", line 117, in receive
self.handle_messages()
File "/storage/emulated/0/Tanks Battle Server/player.py", line 80, in handle_messages
if msg[1][0] != self.bp.nick:
AttributeError: 'NoneType' object has no attribute 'nick'
Опишите отсутствие вашей идеи как проблему
В данный момент можно выполнять брутфорс пароля мультипоточно
Лучшее решение проблемы
Не принимать пакеты с логином (и возможно регистрацией) если указанный в нём логин уже регестрирует/входит в аккаунт
Альтернативные решения
Отправлять пакет ["login/register_queued"]
вместо непринятия пакета
Опишите отсутствие вашей идеи как проблему
Пароль сохраняется в чистом виде.
Лучшее решение проблемы
Добавить 2 типа хеширования с солью: медленный (crypt) и быстрый (md5, sha и т. д.).
Альтернативные решения
Добавить 1 тип хеширования, желательно с солью.
Дополнительная информация
Соль можно брать из логина, ID пользователя, или просто хранить там же, где и пароль
Опишите отсутствие вашей идеи как проблему
Для подключения к серверу требуется знать его IP адрес. Как и локальный так и глобальный
Лучшее решение проблемы
Обнаруживать IP первым способ из Stack Overflow по запросу "Python detect local IP"
Альтернативные решения
Рандомно символы натыкать пока не получится
Дополнительная информация
Отсутствует
При запуске сервера и смене вкладок (на консоль, конфигурацию или лог), сервер всё ещё запущен, но уже вместо Остановить
написано Запустить
. Нажатие кнопки ничего не делает
Версия: 1.2.0
ОС: Windows
Python: 3.10.4
Опишите отсутствие вашей идеи как проблему
Недостаточное количество тестов может привести к различным ошибкам.
Лучшее решение проблемы
Добавить тесты на все модули. Если функция модуля изменяет файл, то создать функцию, которая принимает данные отдельно, а с прежней сделать, чтобы она сама читала файл и вызывала новую функцию.
Альтернативные решения
Добавить тесты на все модули. Если функция модуля изменяет файл, то пропустить её.
Дополнительная информация
Тесты в папке tests
Сервер выдаёт ошибки при запросе клиента
Если запустить сервер и закрыть окно Tanks Battle Server, то сервер не будет остановлен. То есть если открыть другое окно Tanks Battle Server, то нельзя будет запустить сервер
Версия: 61aa204
ОС: Windows 11
Python: 3.10
Опишите проблему
Кнопки блокируются после безответного нажатия
Шаги выполнения
Нажмите "Зарегестрироваться" или "Войти" с несуществующим IP
Ожидаемое поведение
Кнопки не должны блокироваться
При нажатии Ctrl-C сервер не останавливается
Опишите отсутствие вашей идеи как проблему
Передача данных занимает больше времени, чем могла бы + данные можно перехватить.
Лучшее решение проблемы
Использовать прописанный в программе ключ (не из окружения из-за клиента), а также при первом сообщении клиента (также исправить проверку в NetworkedClient
) передавать ему случайно сгенерированный ключ и хранить его для последующей расшифровки сообщений. Для шифрования/дешифрования использовать любой надёжный алгоритм. А также вместо JSON данных передавать байты (см. следующий раздел)
Байты
0000-ffff - Тип сообщения (первый аргумент в текущем JSON списке), а дальше минимальное количество байт, например статус логина/регистрации аккаунта вряд ли будут >256 состояний, поэтому можно использовать один байт
То есть ["register_fail", 2]
(20) превратится например в зашифрованное \x00\x03\x02
(3)
Describe a problem
Game without colors look ugly.
Steps to reproduce
Expected behavior
Colorful world.
Extra information
Colors gone after update to Godot 4.
Describe Tanks Battle without this idea as a problem
Player can't rotate tower, while playing with WZ-Kj. 90, but other players (playing different tanks) can.
What is the best problem solution?
Make WZ-Kj. 90 rotate on tower rotation.
Добавить возможность проверки обновлений и обновления до более новой версии
Describe Tanks Battle without this idea as a problem
JSON data is very huge, unlike binary. Server can process less requests and send responses slower.
What is the best problem solution?
Change all JSON to binary data.
What about alternative solutions?
None.
Describe Tanks Battle without this idea as a problem
Battle Royal is not so funny, when you can't play in team with your friends.
What is the best problem solution?
Add separation by teams, probably friendly fire, and also team changer.
What about alternative solutions?
No friendly fire, no team changer.
Если зайти в битву и выйти, то в логе сервера (debug) отобразится, что клиент бесконечно отключается
Не удаётся запустить сервер на Termuxе
Необходимо добавить данные, о том, как установить и обновить сервер
Describe a problem
Nmap scan on UDP port 7490 crashes server
Steps to reproduce
sudo nmap -sU -p 7490 127.0.0.1
(7490 is port of server, 127.0.0.1 is address)Expected behavior
Server process continues
Environment:
Describe Tanks Battle without this idea as a problem
Current health system (durability) is unrealistic.
What is the best problem solution?
Place people (at least their hitboxes) inside the tank.
To destroy tank, player can explode it by hitting to some critical for tank place, or kill all people inside.
What about alternative solutions?
At least, do, that not all places of tank will decrease durability.
Describe a problem
Tanks move unrealistic: they can go even if they turned upside down, on absolutely straight plane they make small jumps
Steps to reproduce
Expected behavior
At least 2 described earlier problems should be fixed
Клиент версии 1.15.0 (бета тест) не поддерживается на официальном сервере
Сделать, чтобы если игрок не в матче, пакеты точно доходили (Reliable UDP)
Сейчас пакеты могут не дойти до клиента
Опишите отсутствие вашей идеи как проблему
Данные хранятся не там, где желательно. При создании автообновления (#20) будет желательно не трогать файл с данными (аккаунты игроков и т. д.), а заменить только корпуса, башни, комплекты, карты.
Лучшее решение проблемы
config.json
- Оставить содержиое как есть, data.json
- вынести только корпуса, пушки, комплекты и карты, *.db
(SQLite) - поместить аккаунты пользователей
Альтернативные решения
Можно SQLite заменить на что-нибудь, а также *.json файлы тоже перенести в *.db
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.