Updates:

Fans are welcome!

TGL: Legacy (by Sinner-KS)

Started by Sinner-KS, March 21, 2014, 12:32:00 PM

Previous topic - Next topic

Sinner-KS

А это попробуй:
http://www.webfile.ru/c38340e45142889279870efc9237f1d4

Отключил все синхронизации на время лагов (лаги определяются движком XNA). Вне лагов синхронизации восстанавливаются.

Anegorami

Quote from: Sinner-KS on July 25, 2014, 09:07:14 AM
А это попробуй:
http://www.webfile.ru/c38340e45142889279870efc9237f1d4

Отключил все синхронизации на время лагов (лаги определяются движком XNA). Вне лагов синхронизации восстанавливаются.
Теперь игра идет на все 60, время от времени скатываясь до 53, но быстро восстанавливаясь обратно. С чем связаны *провалы* я не знаю, они, похоже, случайны и не зависят от количества врагов\взрывов на экране.

Кстати, поздравляю с 100ым постом. :bluelander:

Sinner-KS

Quote from: Anegorami on July 25, 2014, 08:14:56 PM
Quote from: Sinner-KS on July 25, 2014, 09:07:14 AM
А это попробуй:
http://www.webfile.ru/c38340e45142889279870efc9237f1d4

Отключил все синхронизации на время лагов (лаги определяются движком XNA). Вне лагов синхронизации восстанавливаются.
Теперь игра идет на все 60, время от времени скатываясь до 53, но быстро восстанавливаясь обратно. С чем связаны *провалы* я не знаю, они, похоже, случайны и не зависят от количества врагов\взрывов на экране.

Кстати, поздравляю с 100ым постом. :bluelander:

Ура! Это прям повод собой гордиться, т.к. я перерыл весь инет и не нашел решения этого бага. В основном люди пишут свои собственные синхронизаторы, многие из которых я перепробовал - картинка дергается. А я сам нашел решение и оно всего в двух строчках  :bluelander:

            if (gameTime.IsRunningSlowly) { IsFixedTimeStep = false; SV.graphics.SynchronizeWithVerticalRetrace = false; SV.graphics.ApplyChanges(); }
            else { IsFixedTimeStep = true; SV.graphics.SynchronizeWithVerticalRetrace = true; SV.graphics.ApplyChanges(); }

Как я уже писал ранее, суть бага в следующем:
Когда в процессе игры происходит пик загрузки процессора (в винде очень много факторов, таких как антивирусы, какие-то системные процессы и проч.) игра теряет пару кадров и сразу пытется *догнать* эти пропущенные кадры. Но на некоторых компьютерах при некоторых условиях код входит в цикл и игра не может *догнать* их. Получаются тормоза и загрузка процессора на 100%.

Я же в своем костыле отключаю синхронизатор на время режима *догонялки* и лаги прекращаются, а игра начинает работать 1000+ кадров в секунду, но только пока среднее время между кадрами не станет равным 1/60 секунды. Вот в общем-то и все  :bluelander:

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

Sinner-KS

:bluelander: Версия alpha 15:
http://www.webfile.ru/564585fc6365ed822fb89ac25a1c7495

:redlander: Changelog:

Важно:
- Добавлен враг Skat в коридор 1
- Добавлен враг EyeRack в коридор 1
- Добавлен новый вид пуль врагов
- Улучшена анимация взрывов крупных объектов
- Полностью перерисовано пламя двигателя Мирии. Реализовано автоматическое изменение размера в зависимости от скорости.
- Теперь можно менять размер окна (пропорции сохраняются)
- После долгих попыток от релиза к релизу все же удалось найти решение для бага с загрузкой процессора на 100% на некоторых компьютерах.

Мелочи:
- теперь ХП и энергия оружия сбрасываются в дефолт при загрузке стартового экрана
- добавлен шлейф для падающих метеоров
- немного изменена логика поведения SeaHorse
- уменьшена прозрачность интерфейса, чтобы в коридоре 1 интерфейс не белел так сильно
- оптимизирован код для управления взрывами объектов
- теперь при запуске коридора 1 характеристики Мирии возрастут (эквивалентно собранным в будущем бонусам в лабиринте)

Anegorami

Нашел ошибку.
Если пройти первый коридор, а затем снова выбрать *Начать игру*, то после 2х экранов загрузки тебя выбрасывает в главное меню. Повторное нажатие *Начать игру* работает как положено.

Shredder

Quote from: Sinner-KS on July 25, 2014, 11:42:30 PM- Теперь можно менять размер окна (пропорции сохраняются)

В половине случаев игра теперь сразу сужается и жутко тормозит, а при попытке посмотреть через диспетчер задач, в чём дело, выкидывается с ошибкой ("приложение вызвало ошибку и будет закрыто"). Под "сужением" имею в виду появление чёрных полос сверху и снизу окна, см. скриншот. До версии 15 этого не было.

Sinner-KS

#186
Черные полосы это нормально  8)
Это называется сохранение пропорций, чтобы изображение не было сплющенным. Если черные полосы раздражают - растягивай окно так, чтобы были пропорции без полос.

А насчет тормозов даже не знаю. Я не смог это повторить у себя.

Что показывают счетчики FPS и Speed в названии окна? Насколько загружен при этом процессор?

Добавлено:
Хотя я понял - сейчас загрузка процессора стала выше раза в 3 чем раньше, это из-за того костыля с отменой синхронизатора. Просто теперь довольно часто синхронизации отключаются и процессор рисует много одинаковых кадров. С растяжением окна это не связано.

Могу предложить вариант включения\выключения *костыля* опционально, только для тех, кому это нужно.

Добавлено еще:
Вылеты из игры связаны так же с *костылем*.
Буду его дорабатывать.

Shredder

fps вообще какой-то маленький. Это даже в тех случаях, когда не виснет.
Процессор загружен на 20%
Виснуть сейчас почему-то перестало, только тормозит.

Sinner-KS

Anegorami и Shredder, проверьте, пожалуйста, вот эту версию: (на зависания, тормоза, загрузку процессора)
http://www.webfile.ru/4acc44a4b19c2d47139360bc3b619ef6

Двойную загрузку после уровня пофиксил.

Shredder

Только написал предыдущий пост и сразу стало виснуть. Fps 3. Проц показывает 36, но т.к. у меня 2-х ядерный + 2 виртуальных ядра (i3-2120), и в WinXP не используются дополнительные ядра (по крайней мере, мне так сказали), то, насколько понимаю, это означает 100%-ную загрузку. См. скрин.

Новую версию сейчас проверю, потом отпишусь.

Shredder

Quote from: Sinner-KS on July 26, 2014, 07:35:57 AM
Anegorami и Shredder, проверьте, пожалуйста, вот эту версию: (на зависания, тормоза, загрузку процессора)
http://www.webfile.ru/4acc44a4b19c2d47139360bc3b619ef6

Двойную загрузку после уровня пофиксил.

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

Sinner-KS


Anegorami

Некоторое время был в местах, далеких от сетей, потому поздно отписался.

Первый запуск - стабильные 60.
В конце второго запуска перешла на 46.

Sinner-KS

Quote from: Anegorami on July 27, 2014, 08:24:37 PM
Некоторое время был в местах, далеких от сетей, потому поздно отписался.

Первый запуск - стабильные 60.
В конце второго запуска перешла на 46.

В конце второго запуска - т.е. к концу уровня? Свернуть\развернуть игру при этом помогает?

Anegorami

Quote from: Sinner-KS on July 27, 2014, 10:45:36 PM
В конце второго запуска - т.е. к концу уровня? Свернуть\развернуть игру при этом помогает?
Да, хотя от уровня это, похоже, тоже не зависит. Сворачивание помогает (временами, правда, только с N-ого раза).