Слуйчайные баги

В этой теме 5 ответов, 2 участника, последнее обновление Heisenberg Heisenberg 8 года/лет назад.

Просмотр 6 сообщений - с 1 по 6 (из 6 всего)
  • Автор
    Сообщения
  • #3739

    Alaz777
    Участник
    Сообщений:19

    Зарегистрирован:
    19.01.2016

    Репутация:18

    Я сделал онлайн игру (Морской бой) на пк. Всё вроде в порядке, но во время теста иногда проскакивали случайные баги. Например: раз в 20 или более игр кликал на клетку, соседнюю с кораблём а отображалось попадание вместо промаха (причём в следующей игре корабли были расставлены точно также и все действия совершены были один в один но уже бага не было); или например при потопление корабля, у игрока, чей корабль потоплен штриховка рисовалась на соседних клетках, а у игрока потопившего – рисовалась штриховка в точке (0, 0), ( такое случайным образом редко проскакивало ).

    В общем, мой вопрос в том, как бороться с такими случайными и редкими багами и с чем они могут быть связаны? В качестве сервера пока использую собственный компьютер.

    #3740
    Heisenberg
    Heisenberg
    Участник
    Сообщений:320

    Зарегистрирован:
    01.04.2015

    Репутация:146

    Предоставьте участки подозрительного кода, возможно происходит потеря пакета данных.

    #3741

    Alaz777
    Участник
    Сообщений:19

    Зарегистрирован:
    19.01.2016

    Репутация:18

    Там несколько сотен кода суммарно на сервере и клиенте, которые отвечают за саму игру, и в которых проскальзывают редкие баги. Поэтому думаю скидывать подозрительный код не стоит… хотелось бы узнать из-за чего может быть потеря данных (кроме проблем с провайдером). И почему это происходит настолько редко. Я сегодня весь день тестил, сыграл наверно игр 40+, и такие баги случились всего пару раз.

    П.С.

    Все пакеты, после работы с ними я чищу, и память на сервере не захламляю (локальные переменные удаляю после работы с ними).

    #3742
    Heisenberg
    Heisenberg
    Участник
    Сообщений:320

    Зарегистрирован:
    01.04.2015

    Репутация:146

    Несколько сотен?
    Ого так много!..
    Сходите к экстрасенсу.
    Ошибка может быть где угодно.

    #3743
    +2

    Alaz777
    Участник
    Сообщений:19

    Зарегистрирован:
    19.01.2016

    Репутация:18

    Вроде исправил эти случайные баги (по крайней мере за большое количество тестовых игр не один не случился).

    Проблему решил следующим образом:

    1) Перед всеми подозрительными участками кода (где это не критично) поставил socket.setBlocking(true); (раньше было фолс).

    2) После всех подозрительных участков кода поставил socket.setBlocking(false); т.к. для остальных участков иначе создавались проблемы иногда.

    Там действительно терялась иногда часть данных именно при получении их клиентом (на сервере все нормально было).

    #3744
    Heisenberg
    Heisenberg
    Участник
    Сообщений:320

    Зарегистрирован:
    01.04.2015

    Репутация:146

    Отлично! :)

Просмотр 6 сообщений - с 1 по 6 (из 6 всего)

Для ответа в этой теме необходимо авторизоваться.