Updates:

Fans are welcome!

Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Sinner-KS

#166
Мастерская / Re: new TGL Remake
July 27, 2014, 10:45:36 PM
Quote from: Anegorami on July 27, 2014, 08:24:37 PM
Некоторое время был в местах, далеких от сетей, потому поздно отписался.

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

В конце второго запуска - т.е. к концу уровня? Свернуть\развернуть игру при этом помогает?
#167
Мастерская / Re: new TGL Remake
July 27, 2014, 01:56:00 AM
Anegorami?
#168
Мастерская / Re: new TGL Remake
July 26, 2014, 07:35:57 AM
Anegorami и Shredder, проверьте, пожалуйста, вот эту версию: (на зависания, тормоза, загрузку процессора)
http://www.webfile.ru/4acc44a4b19c2d47139360bc3b619ef6

Двойную загрузку после уровня пофиксил.
#169
Мастерская / Re: new TGL Remake
July 26, 2014, 05:53:01 AM
Черные полосы это нормально  8)
Это называется сохранение пропорций, чтобы изображение не было сплющенным. Если черные полосы раздражают - растягивай окно так, чтобы были пропорции без полос.

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

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

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

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

Добавлено еще:
Вылеты из игры связаны так же с *костылем*.
Буду его дорабатывать.
#170
Мастерская / Re: new TGL Remake
July 25, 2014, 11:42:30 PM
:bluelander: Версия alpha 15:
http://www.webfile.ru/564585fc6365ed822fb89ac25a1c7495

:redlander: Changelog:

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

Мелочи:
- теперь ХП и энергия оружия сбрасываются в дефолт при загрузке стартового экрана
- добавлен шлейф для падающих метеоров
- немного изменена логика поведения SeaHorse
- уменьшена прозрачность интерфейса, чтобы в коридоре 1 интерфейс не белел так сильно
- оптимизирован код для управления взрывами объектов
- теперь при запуске коридора 1 характеристики Мирии возрастут (эквивалентно собранным в будущем бонусам в лабиринте)
#171
Мастерская / Re: new TGL Remake
July 25, 2014, 11:24:51 PM
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:

Можно даже куда-нибудь на форумы кинуть мой костыль, т.к. много запросов у людей с этой проблемой, но нигде нет решения.
#172
Мастерская / Re: new TGL Remake
July 25, 2014, 09:07:14 AM
А это попробуй:
http://www.webfile.ru/c38340e45142889279870efc9237f1d4

Отключил все синхронизации на время лагов (лаги определяются движком XNA). Вне лагов синхронизации восстанавливаются.
#173
Мастерская / Re: new TGL Remake
July 25, 2014, 04:05:28 AM
Попробуй еще вот эту версию http://www.webfile.ru/7de573e5f1c094ff90b566db0b7544fe

У кого-то еще есть проблемы с падением скорости игры и загрузкой процессора?
#174
Мастерская / Re: new TGL Remake
July 25, 2014, 02:31:33 AM
Сделал один костыль - не знаю поможет или нет. Проверь.

http://www.webfile.ru/5e94c86fb547f814d770c4a2b9ea0824
#175
Мастерская / Re: new TGL Remake
July 25, 2014, 02:08:21 AM
Quote from: Anegorami on July 24, 2014, 11:46:43 PM
Наиболее простой вариант - немного поправить Update в духе:

  • Получили время рисовки кадра.
  • Прибавили его к таймеру.
  • Если таймер больше чем 1/60 (если время в секундах) - исполнили остальной Update и отняли от таймера 1/60.
В теории - должно работать. Конечно, тогда будет несколько рисовок одного и того же кадра, но единственная альтернатива - переписывать Update с учетом прошедшего времени (как я, собственно, и делаю).

Насколько я понимаю, я так и делал. В итоге получаются периодические рывки изображения, т.к. время от времени теряется 1 кадр из 60и из-за дробных долей милисекунд.

Quote from: Anegorami on July 24, 2014, 11:46:43 PM
*Такая же или более новая версия .NET Framework 4 уже установлена на этом компьютере.*

Если через установщик ставить, то конечно не поставится. Я говорил про автоматическое обновление системы. Там всякие патчики докачиваются, которых нет в установщике на сайте MS.
#176
Мастерская / Re: new TGL Remake
July 24, 2014, 11:20:34 PM
Quote from: Shredder on July 24, 2014, 10:52:46 PM
Мне кажется, что для дополнительного оружия бурст не нужен. Только для обычного. Потому что так было в оригинале и это хорошо смотрелось =)

А речь и не идет про дополнительные оружия =)
Основных базовых оружий 5 видов. Еще 10 дополнительных. Если что-то делать, то нужно делать для всех пяти основных.
#177
Мастерская / Re: new TGL Remake
July 24, 2014, 11:18:47 PM
Quote from: Anegorami on July 24, 2014, 10:37:26 PM
Выставь IsFixedTimeStep = false и перезалей.

В таком случае ограничитель будет только по вертикальнйо развертке. Т.е. у кого-то игра будет работать со скорость 60, у кого-то 75, у кого-то 120 (я не про FPS а про скорость игры)

Не вариант. Я все это уже тестил много раз.

Полагаться на чужой ограничитель плохо, но у меня свой идеальный сделать не получается. Я еще не настолько хорош в программировании и знании языка. Но я конечно могу пару месяцев поизучать этот вопрос - просто тогда разработка игры встанет. А получится у меня или нет - еще вопрос.
Я и так много времени на это потратил. До 12й версии был мой собственный ограничитель с разными правками. Но беда одна и та же - картинка периодически дергается (заметно), 2-3 раза в сек.

Что там с обновлениями на Net Framework?
#178
Мастерская / Re: new TGL Remake
July 24, 2014, 10:05:23 PM
Кому не лень, можете помочь с поиском информации по методам борьбы с загрузкой процессора на 100%. В играх, написанных на C# (в т.ч. XNA)

Может у кого-то получится погуглить лучше чем у меня.

Проблема в командах:
IsFixedTimeStep = true;
SynchronizeWithVerticalRetrace = true;

Это стандартный синхронизатор скорости игры и вертикальной развертки. Если их отключить, то нужно писать свои собственные синхронизаторы.
#179
Мастерская / Re: new TGL Remake
July 24, 2014, 09:53:35 PM
Quote from: Shredder on July 24, 2014, 09:50:11 PM
Странно, а мне наоборот казалось, что это одна из фишек игры, отличающих её от других "шутеров".

Ну, хозяин - барин...))

Давайте абстрагируемся от моей логики и вернемся к вопросу - а как делать бурст для НЕплазменного оружия? )
Я не буду напрочь отметать эту фишку с бурстом. Потом еще подумаю как можно безболезненно совместить эти вещи. )

P.S. насчет фишки - в игре море других фишек, отличающих ее от других шутеров. И стрельба в упор далеко не первая фишка в списке =)
#180
Мастерская / Re: new TGL Remake
July 24, 2014, 09:51:15 PM
Quote from: Anegorami on July 24, 2014, 08:20:49 PM
Надеюсь, это было сказано про счетчик кадров, а не про счетчик кадров в секунду, поскольку FPS обычно вычисляются как t/dt, где t - постоянная ед. времени (секунда), а dt - время рисовки кадра.

То обычно, а я от секунд вообще отказался ) С ними сложно работать, гораздо проще когда точно знаешь что в секунду 60 кадров и игра под это подгоняется. Можно делать к примеру скорость анимации врага каждые 5 кадров, что будет равняться 83,(3) секунд.
Что проще писать в коде, 5 или 83,333333333 ? =)

А 60 к секунде подгоняется только в самом начале самим движком C# где учитываются автоматически все доли милисекунд, далее про секунды я просто забываю. Может я конечно делаю и не по канонам программирования, но если работает - почему нет?

Quote from: Anegorami on July 24, 2014, 08:20:49 PM
Если fps 60 - 5~15%, при 46 - 100% (для активного ядра).

Ну вот мы примерно и поняли в чем дело. У моего друга тоже игра грузила процессор на 100%. Это баг NET.Framework. Попробуй установить для него все последние обновления через автоапдейт Windows. У моего друга после этого перестало грузить.

Насколько я понял суть бага - при определенных условиях не отрабатывает IsRunningSlowly, из-за чего игра в цикле пытается вернуть упущенное процессорное время, но не может это сделать. Чтобы от этого избавиться я раньше писал свои временные таймеры. Процессор не грузился, но картинка дергалась 2-3 раза в секунду, что дико раздражало. А после того как Microsoft выпустили обновления, вновь стало возможным использовать стандартный синхронизатор.