• В Кремниевой Долине начинает формироваться мрачный консенсус по поводу детей и экранов
    0
    Эх, такая ностальгия проснулась при чтении вашего комментария. Только у меня это был ноутбук и диски с играми к нему, и пряталось это всё в обычный чёрный кожаный кейс с кодовым замков на 6 цифр (точнее, с двумя на 3 цифры), код от которого родителям в голову поменять не приходило, и который я очень быстро подобрал «брутфорсом»
  • Что не так с Яндекс.Музыкой? UX/UI разбор
    0
    Кстати, вот да, я от этой проблемы сам страдаю постоянно даже в интерфейсе игр (!). Бывает, купил новую игру, играешь в первый раз — окей, управление объясняют интерактивно во вступительной миссии, тут проблем нет. А потом речь заходит о том, чтобы что-то сконфигурировать в игре. Например, изменить какую-то тонкую настройку. Или даже тупо прокачать персонажа/снаряжение, потому что это часть геймплея. Так вот, иногда это превращается в сущий ад… Один из последних примеров, который взорвал мне мозг (самой системой модификаций и способностей, и UI/UX заодно) — это первая The Division от Ubisoft… На фоне этого сложности с новыми версиями винды, и тем более вебсервисами вроде Я.Музыки, кажутся детским садом :)
  • Что не так с Яндекс.Музыкой? UX/UI разбор
    0
    Исполнение музыкантами — насколько я в курсе, заблочат вас или нет, кроме всего прочего зависит от того платный (платимый?...) у вас канал или нет, и желания правообладателя на вас смотреть.
    Мне всё же кажется, что если это именно исполнение, а не тупо вставка оригинала трека в видео, и минус тоже кастомный (либо человек просто поёт и сам себе аккомпанирует), то тупо автоматика не распознает трек по хэшу, слишком разница большая будет. А если найдут видео вручную и пожалуются — тут не знаю, надо читать правила сообщества, что там сказано про каверы.
  • «Вертолеты России» и «Яндекс.Такси» запустят систему аэротакси в 2020 году
    0
    А современные вертолёты требуют обязательно двух пилотов для управления? Или вы про «горячий резерв» на случай если пилоту станет плохо в пути?
  • Как я начал бояться и разлюбил Windows 10
    0
    А я вот согласен с rodocop практически во всём. И мне визуальный способ управления тоже гораздо удобнее и нагляднее текстового. Тут дело не в игрушках, человек так устроен, что «зрительная» область мозга самая большая и активная, так сложилось эволюционно, и это вполне логично.
  • Мой первый день с Haiku: она неожиданно хороша
    0
    Не соглашусь про консоль. Она понадобится хотя бы чтобы поставить некоторый софт (например, в Убунту версий ниже 16 не было графического эквалайзера от слова «совсем», и чтобы его получить, таки нужна была и консоль, и правка текстовых конфигов). Или чтобы добавить кастомный репозиторий (да, это можно сделать и через GUI, но если пользователь полезет в интернет, то там с вероятностью 90% будет дана консольная команда на добавление, ибо так проще).
  • Мой первый день с Haiku: она неожиданно хороша
    0
    Да, звук через пульсу. Конфиг править пробовал по рекомендациям, сильного улучшения не заметил.

    Более того, может на реальном железе оно и норм работает, но через виртуалку (использовал VMware Worstation 10) как минимум на некоторых дистрах звук заикается и лагает каждые 2-3 секунды, причём очень сильно и в любом плеере/браузере, причём даже если параллельно ничего не делать и даже мышкой не шевелить. Например, в Ubuntu 14 с этим было всё ужасно. Но когда обновился до 16, внезапно стало ок. Не знаю, в версии Pulse Audio дело или в чём.

    По дефолту пульса в убунте настроена на самые дешевые пищалки.
    Там насколько я читал дело не в пищалках, а в том, чтобы звук с максимальной степенью вероятности завёлся хоть как-то на любом железе…
  • Microsoft разрабатывает браузер на базе Chromium, который будет поставляться по умолчанию вместо Edge
    0
    Скажите пожалуйста, а для есть какой-то лаунчер с хорошей кастомизацией, который позволил бы эмулировать лаунчеры от Sony 2011-ого года? Ну то есть чтобы доступ к приложениям был только тапом по центральной иконке снизу (свайпом непривычно), чтобы в нижней панели ярлыки можно было ставить свои и в любом порядке (хотя наверное это везде так можно сейчас, даже в стоковом), чтобы число рабочих столов настраивалось, чтобы можно было делать папки с ярлыками (они на иконке сеточкой 4x4 потом отображаются).

    А переименование — это большой плюс. Было бы круто, если бы пошли ещё дальше, и позволили кастомные иконки ставить :)
  • Поисковые системы, работающие в России, могут обязать удалять ссылки на пиратский контент в течение шести часов
    0
    Администраторы интернет-ресурсов должны ежедневно каждые пять минут сверяться с этим реестром и в течение шести часов удалять указанные в нем ссылки из поисковой выдачи.
    Я вот не понял, там речь шла именно о площадках, не о поисковиках? О какой выдаче тогда речь, локального поиска по сайту? Почему каждые 5 минут, если на удаление отведено до 6 часов, кто раз в час или в полчаса мешает мониторить?
  • Представлен моноблок «Эльбрус 801М» в «новом современном дизайне»
    –1
    А что, разве нет мониторов дешевле? Просто интересно :) Я свой Dell на MVA матрице (очень хороший как по мне) купил за 13-14 тысяч, но это было до скачка цен, как раз осенью 2014-ого…
  • Мой первый день с Haiku: она неожиданно хороша
    0
    Как и на винде, позовёт мальчика для настройки.
    На винде это можно разрулить и без мальчика, бесплатно. Чисто с помощью гугла
  • Мой первый день с Haiku: она неожиданно хороша
    0
    Ну лично для меня, например, 7-ая винда намного удобнее 10-ой Убунты (вышли примерно в одно время, Убунту даже попозже). Да, вторая тоже довольно симпатичная. Но там реально многое не так удобно, как на Windows, даже если не брать ситуацию с играми, которая вообще печальна. Ну вот взять например банальный рендеринг текста — текст в Линуксах (как впрочем и на Mac OS X) не такой резкий, как на Windows, и это очень мешает. А ещё качество звука не очень порадовало (на одном и том же железе). А ещё некоторого софта на линуксы нет (привет, фотошоп).

    Вот и выходит, что при всей красоте и оригинальности — сложнее, хуже.
  • Что не так с Яндекс.Музыкой? UX/UI разбор
    0
    Пользовательское видео — в определенных жанрах другого и не бывает ;) и его там было просто овермного.
    Вы про порно что ли?)) Никогда в вк такого не искал. Ну то есть может и искал, очень давно, году в 2010-2011. Что-то находилось, но не так, чтобы прямо очень много. А потом это дело вообще выпилили с корнем. Даже пост был об этом в блоге Дурова…

    который на ютуб сначала ты будешь долго выкладывать и выяснять у кого какие есть права на все произведения
    Ну вот про исполнение каких-то вещей музыкантами на концертах вы сильно преувеличиваете. Ютьюб никогда такие видео никак не преследовал, как и каверы. Только один раз была крупная скандальная история, когда заблокировали успешный популярный кавер у кого-то из иностранных пользователей. И то потом пришлось разблокировать обратно и принести извинения, когда в прессе подняли шумиху :)

    так зачем эти посредники?
    В этом плане согласен. Но вы забываете одну вещь — качество видео на ютьюбе всегда было намного выше (до введения в вк 1080p, что произошло очень поздно, там был вообще полный атас — да и ютьюбовское 720p тогда смотрелось куда чётче вконтактовского). И даже сейчас он по качеству опережает вк, хотя сколько лет прошло :)
  • Что не так с Яндекс.Музыкой? UX/UI разбор
    0
    В ЯМ много графики и анимаций
    А оно мне (да и многим другим) вообще надо? Это как бы аудиоплеер с подбором рекомендаций, а не декоративная сферическая штука в вакууме, на которую смотрят просто чтобы смотреть :)

    ВК на 4.1 самый новый не работает
    Вы не совсем правы. Новая версия клиента ВК есть даже для 2.3 (я имею в виду, выпущенная после перезапуска проекта под Android в 2013-ом, когда похоронили версию 2.x в чёрных тонах с иконками снизу — и даже ещё более новая, там две-три мажорных версии сменилось, первая была просто обновлена очень сильно, во второй раз поменяли порядок пунктов меню и что-то ещё, и потом был третий крупный апдейт). И у меня она стоит. Правда, не обновлялась уже года два, и там кое-что местами глючит.
  • Аппаратное уничтожение данных на жёстком диске
    0
    А выбор алгоритма-то каким образом влияет на отношение к задержанному?) Не понял вообще логики.
  • Аппаратное уничтожение данных на жёстком диске
    0
    Там выше скорее речь шла про то, чтобы распространять эту программулину — законными и не очень методами, чтобы она была не только у «продвинутого гика», который кому-то интересен. В этом случае если личность гика неизвестна, точно установить её, анализируя, например, жёсткие диски разных людей, будет весьма непросто. Ну или анализируя какой-то трафик, где-то перехваченный.
  • Аппаратное уничтожение данных на жёстком диске
    0
    Так а если эти сектора реально уже занулились? Я даже не сильно удивлюсь, если стандартный драйвер файловой системы автоматом зануляет недавно удалённый файл, если он очень мал — даже если свободного места на диске достаточно. Вы ведь его исходники не читали? Я вот нет.
  • Аппаратное уничтожение данных на жёстком диске
    0
    Так а если эти сектора реально уже занулились? Я даже не сильно удивлюсь, если стандартный драйвер файловой системы автоматом зануляет недавно удалённый файл, если он очень мал — даже если свободного места на диске достаточно. Вы ведь его исходники не читали? Я вот нет.
  • Аппаратное уничтожение данных на жёстком диске
    0
    Лично я вижу тут две проблемы:
    1. Список секторов может быть весьма затруднительно составить, учитывая уровни абстракции между пользовательскими программами и диском. Кроме того, некоторые файлы могут буквально не иметь отдельного места на диске. Например, содержимое очень коротких файлов может размещаться прямо в MFТ (если мы о винде) или в записи о содержимом директории (если мы про ext4).
    2. Писать в «сырые» сектора пользовательская программа не сможет. Придется как-то обходить драйвер файловой системы, а это может оказаться непросто. :)
    Программы дефрагментации прекрасно умеют сопоставлять файлы с физическими секторами :)
  • Последствия переписывания компонентов Firefox на Rust
    0
    При просадке очень сильно помогает, дело в том, что для глаза пропуск одного цикла отрисовки, но отображение следующего в идеальной позиции мира для этого времени воспринимается гораздо лучше, чем ошибка в позиции мира, без пропусков. Так что с расширением можно сделать чтобы движок идеально адаптировал задержку и все отрисовки были в идеальной позиции, несмотря на то, что кадры пропускаем.
    Примерно идею понял. А почему нельзя возложить эту задачу на видеодрайвер? Ну то есть прямо в него интегрировать этот режим. Смотрите, у нас ведь есть логическая часть движка, которая считает мир — и ей на проблемы видеокарты должно быть глубоко фиолетово (особенно если игра мультиплеерная). Не справляется — что поделать. Так что имхо логично передавать целую очередь кадров на упреждение (но не очень большую, чтобы игрок не заметил сильного лага, как раз 5-6 кадров самое то). Более того, теоретически, в случае, если игрок не двигается и есть ресуры, можно просчитать будущие позиции объектов, и попробовать отправить кадры «с предсказанием». А потом они могут сойтись с реальной ситуацией или не сойтись (если игрок вдруг резко побежит или подпрыгнет). Правда, проблема в том, что отозвать назад из такой очереди уже ничего будет нельзя, потому что она в видеопамяти будет уже на тот момент… Вроде бы.

    Но опять же, если длина такой очереди минимальна, это будет восприниматься просто как микро-задержка отклика. Не самое страшное явление, имхо.

    Потом, если «в идеальной позиции, несмотря на то, что кадры пропускаем» — имеется в виду просто строгое попадание в цикл обновления кадровой развёртки монитора — то во-первых, только видеодрайвер знает, когда у монитора следующее обновление (опять же, насколько мне известно, могу ошибаться), так что логичнее поручить это ему. То есть иными словами, после некоторой задержки в 2-3 интервала кадры начинают снова резко поступать со старой позиции мира -> видеодрайвер скипает столько кадров, сколько было пропущено фактически.

    Магия идеального подбора лимитера в 59гц — это все отсюда ноги растут.
    Почему не 60, потому что один период суммарно уходит каждую секунду на «накладные расходы»?
  • 92,7% делают бэкапы, потери данных выросли на 30%. Что не так?
    0
    Проблема в фокусировке. Вот возьмите Firefox версии 64 или 65 (как с 66 не знаю, надо тестить), откройте на семёрке, создайте пустой редактируемый div и ткните в него (но не в угол, там где <br /> находится в качестве контента, либо текст-заглушка). Сфокусируется?

    Да, тут может ещё быть такое, что это косяк программистов из ВК (использование какой-то недокументированной стандартами особенности поведения, например). Но до обновления оно работало, после обновления отвалилось, а когда я вернулся назад — заработало опять. Такие дела…
  • Аппаратное уничтожение данных на жёстком диске
    +1
    Ну так у вас другая ОС и другая файловая система. Откуда я знаю, какая там политика перезаписи свободных секторов…
  • Что не так с Яндекс.Музыкой? UX/UI разбор
    0
    Вы серьёзно?) Кинофильмы стали выпиливать ещё к середине-концу 2013-ого, если не раньше (я уже в 2012-ом толком ничего посмотреть вроде не мог, вот весной 2011-ого — да, много чего было выложено). Пользовательские видео, снятые в повседневное жизни? Это да, но на ютьюбе этого добра всегда было больше. Аудиоколлекция — неплохая, но там творился полный трэш с наименованиями (потому что никто не модерировал каталог), качество в основном было ниже 320 kbps, а полнота… Ну скажем так, что-то было, чего не было на обменниках. Но в общем и целом по количеству треков даже тому же zaycev.net вк безнадёжно проигрывал в те годы. Имхо. Во всяком случае, если говорить про те жанры, которые я слушал и искал (поп, поп-рок, в основном зарубежное, плюс саундтреки из фильмов и игр).

    Вк ценен был для многих именно как мессенджер плюс микроблог. Ну и возможность выложить фотки… А ещё раньше группы очень популярны были. Прямо очень многие там сидели подолгу. Ну и сейчас сидят, просто уже не так массово.
  • Последствия переписывания компонентов Firefox на Rust
    0
    Раньше во всяких квестах и в 320x200 проблема была не заметна, а с какого-нибудь quake тиринг уже стал известной проблемой.
    Так vsync опция давным давно была доступна. Как она реализована в таком случае?

    Вот он кадр, готов, мы специально его рассчитали через синк, потому что знали что не успеем. Ждать опустошения очереди, а потом ударными темпами наполнять?
    Поделитесь, пожалуйста, ссылкой, где можно подробнее почитать теорию. Я половину не понял если честно)

    но все станет очень плохо при просадках, что неприемлимо
    Да куда уже хуже? Если у нас было 60, а стало даже 54-59 — мы неизбежно это заметим (я замечал в том же Fortnite, когда пытался захватывать сохранённую игру через Fraps). Или таки можно как-то скорректировать это так, что для игрока будет незаметно? Вообще, видеодрайвер выдаёт кадры строго с постоянной частотой, или тогда, когда мы ему скажем выдать следующий?

    Задержать кадр тоже нельзя, при Fast Sync их там 3 штуки.
    Почему вообще нельзя довериться видеодрайверу (наполняя буфер с несколько большей скоростью, чем требуется)? Потому что превышение нужной скорости на 5-10 процентов, а не вдвое, создаст рывки в движении? И зачем там именно три кадра? Я не в первый раз уже про тройную буферизацию слышу, но не очень понимаю смысл этого понятия.

    UPD: почитал в вики и здесь. Всё равно не очень понял, каким образом поможет наличие третьего буфера при просадке. Если у нас резко упал FPS до 50-55, и мы серьёзно опаздываем — то монитор будет отображать наши кадры уже не по 1/60 секунды, а дольше, что при постоянной скорости пересчёта логики уже сделает движение более дёрганным — а если FPS будет ещё и скакать, то и степень дёрганности будет меняться. Я не очень представляю, как исправит ситуацию наличие дополнительного кадра «про запас» — это может вырулить только при очень незначительном и коротком подлаге, когда мы вот прямо сейчас запоздали с отрисовкой кадра однократно — но и то нам придётся наверстать по-хорошему, чтобы снова создать себе эту «фору».
  • Иди-ка ты на !@# со своей «токсичностью»
    0
    есть метод, работающий с полем Calendar, загружая его значение из ссылки this.calendar
    Это в каком именно методе происходит? Вот его логику можно было бы переопределить, чтобы он не с полем работал.

    И как-то так получить список, в который можно добавить элемент, но нельзя заменить элемент, при этом сам список можно будет передавать почти в любой код, и вести он себя будет в соответствии с контрактами ArrayList(+ ваша надстройка) — можно итерироваться, добавлять/удалять элементы, брать размер списка, но попытка заменить элемент или отсортировать — приведут к ошибке.
    Красивый пример. Но очень простой) Здесь ведь достаточно переопределения одного публичного метода.
  • Аппаратное уничтожение данных на жёстком диске
    0
    А если её и в самом деле нет? Ну мало ли. Для надёжности, так сказать, чтобы уж совсем себя обезопасить.
  • Аппаратное уничтожение данных на жёстком диске
    0
    Ну это вам сильно повезло. Мне почти никогда ничего не удавалось восстановить этими прогами. Ни через GetDataBack, ни через Easy Recovery Professional… Там вопрос в том, сколько времени прошло, и успело ли что-либо записаться поверх.
  • Аппаратное уничтожение данных на жёстком диске
    –1
    Вы ведь знаете, что удаление файла — это всего лишь пометка, что вот эти вот сектора на диске теперь свободны? Так вот, информакция из этих секторов никуда не денется, и так и продолжит лежать на диске до тех пор, пока ее не перезапишет новый файл (а до этого дело может дойти оч-чень нескоро).
    Это в теории всё так здорово. А на практике (во всяком случае тем софтом, что доступен массовому потребителю) уже через 5-10 минут бывает не восстановить файл, особенно если он был маленьким (и диск при этом не был забит даже на 80 процентов). При этом речь даже не идёт об удалении спецутилитами, а об обычном Shift+Delete.
  • Иди-ка ты на !@# со своей «токсичностью»
    0
    думаю, гарантий не прибавится
    Да, верно. Но это не было бы проблемой если изначально разработчики не использовали бы этот экземпляр для хранения даты в процессе форматирования, а хотя бы клонировали его при начале форматирования/парсинга. К сожалению, имеем то, что имеем.
    Так вот этот метод при наследовании можно было бы и переопределить.

    думаю, гарантий не прибавится, т.к. нужно видеть полный набор операций, который конкретный поток делает с formatter'ом
    Зачем? Вы ведь привели проблемный участок кода самого класса SimpleDateFormat. Или речь про то, что могут быть и другие, и все их искать долго?

    но при этом и программа становится, фактически, однопоточной
    Ну есть ещё вариант создавать по инстансу Calendar на каждый поток (но для этого опять же нужно наследоваться и переопределять логику). Возможно, так работать будет быстрее, но и памяти жрать в разы больше :)

    Нет проблемы наследоваться от любого не-final типа в JDK, если соблюдать LSP.
    Что такое LSP?

    Я один раз попытался сделать наследование какого-то класса, потому что стояла очень сложная задача, которую иначе нормально было не решить (что-то связанное с Java2D, вроде нужна была своя реализация скруглённого прямоугольника, потому что дефолтная имеет серьёзные косяки).

    Это был настоящий ад — в первую очередь потому, что значительная часть методов, которые использовались в переопределяемых методах, имели модификатор private. И при этом мне нужно было их вызывать. Я не нашёл способа лучше, как копипастить код существующей реализации…

    А в другой раз (когда я пытался экспериментировать с «низкоуровневыми» методами вывода строк, и пытался наследовать jLabel), было ещё того хуже: внутри наследуемого класса повсеместно использовался вспомогательный класс, который имел «пакетный», а не публичный доступ. И по понятным причинам я его подключить к себе не мог.
  • Comment from a drafted post.
  • Comment from a drafted post.
  • Comment from a drafted post.
  • 92,7% делают бэкапы, потери данных выросли на 30%. Что не так?
    0
    С браузером очень вас понимаю, совсем недавно в Firefox поломали редактируемые div-ы, теперь на куче сайтов проблемы с фокусировкой многострочных текстовых полей… И когда исправят — непонятно, долго листал багтрекеры, похожие баги есть — но им лет 5-6, и все значатся как исправленные. Свежих нет :)

    Ну и Android недавно сам обновился на Smart TV от Sony с 6 на 7 версию — в результате куча функций стали недоступны, справка стала хуже, управление масштабом в браузере кривее. Такое себе.
  • 92,7% делают бэкапы, потери данных выросли на 30%. Что не так?
    0
    А как же коллекции музыки и фотографий? Или программный код старых проектов? У меня например нет никакого собственного репозитория, а на сервере вузовского очень мало чего лежит.
  • Оптимизация кода: память
    0
    А мне очень понравилась. И идея с квадратами 10x10 — просто прекрасна. Хотя мы и привыкли всё мерить тысячами (по 3 порядка).
  • Что не так с Яндекс.Музыкой? UX/UI разбор
    0
    Это может и не особо красиво, но с точки зрения удобства — имхо как раз норм, меньше головой мотать влево-вправо, особенно тем, кто сидит близко к монитору. В старом дизайне вк пространство по бокам очень плохо использовалось — и ничего, людям нравилось.

    От дизайна MySpace образца года 2014-ого я был просто в восторг — а там тоже не на весь Full HD экран всё растягивалось, как минимум. Здесь имхо главное чтобы смотрелось красиво, и пользоваться было удобно :)
  • Windows Phone – ВСЕ, это опять или снова
    0
    Типичная игра включает в себя сетапы vcredist, PhysX (вроде не Crysis) и DirectX.
    Да, замечал такое.
    Но это игры. А вот когда я году так в 2008-ом ставил софт на нетбук на XP — там был какой-то хитрый софт, который отказывался установиться до установки более новой версии vcredist, и инсталятор «на борту» его не имел :)
  • Иди-ка ты на !@# со своей «токсичностью»
    0
    и опечатки и неверно подобранный алгоритм
    Так это всплывёт на юнит-тестах обязательно.

    Вот состояние, когда несколько потоков конкурируют за один и тот же ресурс и называется гонкой.
    Спасибо, понятно. Ну тут на мой взгляд в момент вызова в начале метода надо копию массива делать, а не работать с тем, что есть. Или как-то сделать так, чтобы для каждого потока был свой экземпляр поля (кстати, так вообще можно?).

    Фишка в том, что это работает на винде. В Linux/MacOs системный будет действительно системным, а не виндовым, соответственно ClearType-а там не будет, если его не поддержит сама система. L&F «а-ля виндовс» с собой технологию не потащит (и даже в винде не факт, что заработает).
    А где я предлагал тащить виндовый ClearType повсюду?)) Я понимаю, что главная фишка Java — кроссплатформенность. Но конкретно я хотел именно под Windows иметь браузер с чётким выводом текста. Да ещё и под конкретную её версию (хотя тестировал код и на более новых, и с разным DPI в настройках) :)

    По остальному согласен полностью.

    Да, если вдруг захотите улучшить тот проект (там ещё до финиша ох как далеко) — то буду очень рад пуллреквестам :)

    github.com/popov654/tinybrowser
  • Иди-ка ты на !@# со своей «токсичностью»
    0
    Спасибо, понятно.

    То есть я правильно понял, что если у нас однопоточное приложение (это всё-таки наиболее частый случай), то проблем с этим классом нет?

    И ещё — можно ли как-то решить эту проблему путём блокировок? Например, поставить где-то блоки synchronized? Я понимаю, что класс встроенный, и наследоваться от него — наверное идея не очень. Можно ли решить проблему, меняя только вызывающий код?

    И с кэшем я не очень понял. Верно ли я понимаю, что экземпляр Calendar.getInstance() — один на все потоки? Тогда вообще всё тривиально конечно.

    private Calendar calendar — это вроде бы ссылка на объект. Объект никуда не копируется и лежит в общей памяти. Один поток его изменил — объект изменился для всех потоков. Или объекты могут копироваться в кэш-память процессора как и скалярные переменные?
  • Последствия переписывания компонентов Firefox на Rust
    0
    Если мы ошибемся и эта ошибка между кадрами будет не константой — будет неплавность

    А если будет константой — то будет всё ок, и тогда это будет чудовищным переусложнением изначально простой задачи. Неужели разработчики всех игр так парятся при создании рендера? Не могу поверить прямо.

    А как же старые игры, выходившие в конце 90-ых — начале 00-ых? Тогда этого расширения ведь не было. Но жили же как-то? Игралось всё, причём довольно-таки плавно.

    UPD: посмотрел код, идея в целом понятна (хотя не совсем, если честно).

    Опять же, у нас есть GPU. У неё есть кадровый буфер. Если мы (движок игры) будем писать в этот буфер чаще, чем 60 раз в секунду, то особой проблемы не будет, т.к. GPU сама выберет из потока кадров каждый N-ый. Но чтобы рывков не было совсем — лучше конечно писать в этот буфер с частотой, равной частоте обновления монитора * N, где N — целое число. Иначе рывки таки будут.

    Если например в игре стоит ограничение кадров 60 в секунду (очень старые игры некоторые вообще имели жёстко ограниченный FPS в 30 кадров), то мы можем помещать данные в буфер строго 30 раз за секунду — главное не опаздывать. Опять же, если GPU отрисует быстрее чем нужно — не проблема, она всё равно подождёт следующего обновления развёртки дисплея. А вот если она будет рисовать дольше… Но это уже говорит о том, что пользователь выставил неоптимальные для себя настройки графики.

    Ещё есть такое соображение: на реальной системе скорость выдачи кадров действительно будет плавать. Дело в том, что разные места на карте создают разную нагрузку на процессор (и если игра идёт впритык, FPS будет проседать в «тяжёлых» местах). Также количество врагов вокруг и всяких пуль и снарядов в радиусе вокруг тоже влияет. И количество взрывов/облаков дыма, если они не полностью на GPU обрабатываются. Да даже если полностью, а видеокарта слабенькая.

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