???
Математика на уровне МГУ

Показано с 1 по 25 из 509

Тема: Обсуждение: Помощь разработчикам: Баги игры

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Зашедший
    Регистрация
    28.07.2006
    Адрес
    Владимир
    Возраст
    41
    Сообщений
    519

    Re: Помощь разработчикам: Баги игры

    Кстати про полеты без крыльев. Хочу высказать одну мысль, которая, возможно, поможет найти решение этого бага.
    У меня был опыт написания одной ресурсоемкой программы, которая выполняла множество расчетов, причем разного рода данные считались в независимых потоках. У такого подхода (в моей реализации) существовало одно узкое место. Дело в том, что исходные данные для расчета в одном потоке (назовем его поток А) брались на основании тех данных, которые к этому моменту должны были успеть рассчитаться в другом потоке (Б). И на компе с параметрами Х это работало четко без каких-либо аномалий. Если же просто взять комп послабее, то получалось так, что в Б не успевало посчитаться то, что в А уже нужно взять в качестве исходных данных. И в этом случае в потоке А вместо исходных данных подставлялись либо нули либо данные предыдущего расчета. Как следствие на выходе результат был непредсказуемым. В расчетах получались дикие косяки и вовсе не потому что был какой-то баг в программе, а потому что нужно было эти потоки как-то научиться синхронизировать между собой. На более быстрой конфигурации получалось наоборот - в потоке Б уже все два раза успело посчитаться, а поток А только-только приступает к первому расчету и берет данные второго расчета потока Б, Результат на выходе тоже оказывается не верный.
    И было еще одно наблюдение в этом же ключе. Даже на машине Х, на которой это изначально тестировалось и всегда работало прекрасно: ЕСЛИ в фоне помимо этой программы запустить что-нибудь тяжелое, то производительность потоков моей программы тоже падала и начинались косяки в расчетах приводившие к неверным результатам.

    Теперь вернемся к нашим крыльям.
    Представим, что игра у нас пашет на слабом ПК, т.е. присутствуют фризы и систематические тормоза. При этом FPS пусть будет где-то 5 или даже меньше. Теперь мы например летим на таран в бомбер. 1й кадр который мы видим на экране - мы в миллиметре от этого бомбера, через время Т+1 мы видим уже 2й кадр, где мы уже пролетели бомбер, причем визуально мы себе снесли крыло. А вот что касается физики, которая наверняка считается в другом потоке - может быть еще не наступило время Т+1. Поэтому потери крыла не было и общий результат получается таким, что мы как-бы продолжаем лететь дальше с невидимым крылом.

    Так вот, мое предположение заключается в том, что если удастся решить проблему производительности как таковую, то возможно что физика будет отрабатывать в нужные моменты времени и всегда будет поспевать за визуальной частью.

  2. #2
    Мастер Аватар для Fruckt
    Регистрация
    12.11.2006
    Возраст
    52
    Сообщений
    3,391

    Re: Помощь разработчикам: Баги игры

    Цитата Сообщение от alexmdv Посмотреть сообщение
    ....
    Так вот, мое предположение заключается в том, что если удастся решить проблему производительности как таковую, то возможно что физика будет отрабатывать в нужные моменты времени и всегда будет поспевать за визуальной частью.
    Скорее всего это и есть - игра в настоящие время чудовищно тормозит даже на рекомендуемой конфигурации, если будет найдено решение многие чудеса уйдут навсегда. У меня такое ощущение что микрофризы приводят ещё и к такому эффекту - отпиливаю плоскость бомбера: она со скоростью света пролетает через мой самолёт, я же продолжаю полёт как ни в чём не бывало без каких либо повреждений, мессер потерявший крыло падает крутясь как волчок , куски отстрелянных элеронов и рулей то же неестественно быстро отлетают в сторону, одним словом из-за фризов картинка получается неестественная.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •