• На каких движках пишут симуляторы?

    @MarkusD Куратор тега C++
    Дмитрий Забелин
    баллистический симулятор с учетом сопр воздуха, аэродинамики снаряда и т.д

    Т.е. то, что Team17 30 лет назад сделали в червяках под Amiga и без каких-либо движков?
    Написано
  • Почему двоится изображение на мониторе?

    SpecteRED, хорошо. Теперь резюмируем по состоянию на этот момент.
    Проблема возникает только в одной игре. Проблема возникает с хаотичной периодичностью. Строгой последовательности с хотя бы 50% повторением проблемы нет.
    При захвате экрана со стороны ОС проблема не наблюдается.
    Проблема повторяется при смене GPU даже на другое семейство. Проблема повторяется при любом доступном транспорте: как на DP, так и на HDMI. Проблема повторяется при выводе на монитор. Проблема повторяется при замене монитора.

    Внутриигровые настройки будут влиять только косвенно. Эксперимент дал некоторые ответы. Винда "виснет" в ожидании обратной связи, которую декодер монитора после своего перезапуска уже не даст.
    Проблема находится сразу в двух местах. Первое место - это декодер сигнала в мониторе. Он отключается из-за того, что ему приходит по кабелю, а затем сторожевая собака его включает обратно уже с потерей качества. Второе место - это, все-таки, игра. Именно игра генерирует данные для недопустимого для декодера сигнала.
    Еще источником проблемы может быть что-то третье. Статические токи в принципе очень опасны для электроники, а взяться могут почти откуда угодно.

    Что делать дальше и как жить. Лично я бы уже после третьего такого глюка дропнул игру. Не стоит она того, чтобы мое железо от нее сбоило.
    Найди репродукцию проблемы хотя бы с 50% шансом. Вторым шагом надо эту репродукцию растиражировать по игрокам и собрать обратную связь о проблеме. После этого репродукцию надо отправлять разработчикам для наблюдения и исправления проблемы.
    Написано
  • Почему двоится изображение на мониторе?

    SpecteRED, ну ок. Давай еще пальцем тыкнем вот куда. Vsync.
    Включена ли вертикальная синхронизация в игре? Если да - отключаем и передергиваем DP на горячую при двоении на мониторе. Для уверенности можно и на HDMI перекинуться для этого.
    Ось виснет не от хорошей жизни. У HDMI и DP механизмы обратной связи малость разные. Если моник провалит реакцию в нужный момент, драйвер оси не выведет ее из особого режима работы. Снаружи это выглядит как повисание оси.
    А еще надо бы посмотреть логи драйвера в этот момент.
    Написано
  • Почему двоится изображение на мониторе?

    SpecteRED,
    С учетом этого есть еще варианты?

    Вариантов вообще нет. :) Оборудование находится у тебя в руках и только тебе ведомо что с ним творится. По своему опыту подобных расследований знаю что словам владельца верить нельзя вообще. Прихожу сам, делаю ровно те же тесты и проблема находится в два счета. А человек делал по-своему и что-то позабыв сделать/рассказать ровно с тем же расчетом: "Не думаю что это что даст".

    Погасание монитора может говорить о том, что его декодер словил от GPU недопустимые данные. Как правило это недопустимый для отображения цвет в какой-то конкретной области монитора. Искажение картинки после погасания может говорить о рассинхронизации уже самого монитора. Пробуем отключить и подключить DP на горячую, без ребута.
    Про погасание монитора - тонкость упущенная. Даже боюсь представить сколько еще у тебя из рассказа выкинуто за ненадобностью. :) Это все сводит любые мои слова к банальному гаданию на кофейной гуще.
    Написано
  • Возможно ли проверить является ли T std::function?

    @MarkusD Куратор тега C++
    А на лямбду тебе проверка не нужна?
    Написано
  • Почему двоится изображение на мониторе?

    SpecteRED, отсутствие двоения при внутреннем захвате сразу исключает всю цепочку от игры и до драйвера GPU.
    Далее тебе надо сделать ряд тестов. Самостоятельная диагностика таких проблемы без знаний - это та еще морока.
    Первое - это после начала двоения выключить монитор и включить снова. После включения проверить двоение. Современные мониторы выключить можно двумя способами. Нужно обоими, один способ за один тест. Второй способ - это после обычного выключения вынуть кабель питания больше чем на 30 секунд.
    Второе - подключить телек как первый монитор. Подключить его как единственный монитор. Перекинуть кабель с монитора на телек после начала двоения. Одно действие - один чистый тест, т.е. начинаем с состояния отсутствия проблемы. После каждого действия проверять наличие или отсутствие двоения.
    Третье - поменять видюху. RTX 4070 Ti - это проблема сама по себе. Отвал оси при работе через HDMI может сказать о проблемах с памятью видеокарты. 4070 шальные просто сами по себе, а у Ti вообще регулярно кукушечка отлетает даже если тушка от хорошего бренда. Про китайщину даже говорить не приходится.
    Четвертое - снять телеметрию GPU во время игры и точно определить время начала двоения. По телеметрии будет хорошо видно, какие изменения в состоянии видеокарты приводят к проблеме.
    Написано
  • Какой вариант на ваш взгляд лучше для интерфейса?

    @MarkusD Куратор тега C++
    Dyikot, не-не. Ты на месте топчешься.
    У тебя в чем проблема же? Тебе maaGames все очень хорошо описал. Ты в сокет как будешь читать и писать? А в буфер свободной памяти?
    Первое дело - это объект, в который будет выполняться сериализация и из которого будут браться данные для десериализации. Это - шаблон потока (stream).
    Второе - это формат сериализации. Тебе требуется во всех деталях понять шаблон посетителя (visitor).
    Третье - это пейлоад, т.е. сериализуемый объект и цель десериализации. Для него есть шаблон сериализуемого (serializable).

    const std::string& delimetr - зачем эту сугубо приватную тонкость формата знать внешнему коду?
    Пока в коде у тебя видно что ты не совсем представляешь себе как все должно работать. Тебе не хватает структуры в голове сперва, поэтому код выглядит рваным.
    Написано
  • Какой вариант на ваш взгляд лучше для интерфейса?

    @MarkusD Куратор тега C++
    Dyikot, думаю, тебе уже понятно что никакой из обоих твоих вариантов не лучше. Потому что они оба одинаковы и одинаково плохие.
    Имена выбраны плохо. Из-за этого твой код вводит в заблуждение. std::any используешь не по назначению. SerializationData - это костыль как есть и назван отвратно. Какой шаблон проектирования применяешь - тебе и самому не ясно. А применяешь ты его не по месту и полностью неправильно.
    Только не думай что для тебя лично ситуация сейчас сложилась плохо. Извлекай опыт и становись грамотнее.
    Ответ на твой вопрос: оба варианта - дно. А вопроса "как надо" от тебя не было. Поэтому качественных вариантов не предлагаю.
    В сети просто море документов про сериалиацию. Мне этого хватило для выработки своей системы ценностей. Тебе тоже должно хватить. Но если задашь правильный вопрос, я на него отвечу.
    Написано
  • Данные в таком случае будут хранится в стеке?

    @MarkusD Куратор тега C++
    Dyikot, потому что давай подумаем что же ты в этой строчке написал.
    Написано
  • С++ автоматически вставляет в функцию ссылку на вектор?

    @MarkusD Куратор тега C++
    Алескей Дворяшин
    в качестве аргумента функции в самом объявлении функции указана ссылка.

    Это не объявление функции. Это - определение функции.
    При объявлении и определении функции аргументов нет, есть параметры. Аргументы появляются только в месте вызова функции.
    Это все нужно очень хорошо запомнить.

    Как так то? C++ автоматически берет ссылку?

    C++ - это язык. Работу выполняет транслятор. Ни один из них ничего сам без просьбы не делает. Язык так и вовсе лишь стандартом представлен.
    Сам что-либо делает только писатель кода. Вот как ты написал, так транслятор код согласно стандарту языка и обработает. Это ты написал передачу по ссылке, транслятор просто обработал код согласно стандарту.
    Написано
  • Почему статическая переменная инициализируется дважды?

    @MarkusD Куратор тега C++
    Quark, я нередко прошу уточнения для того, чтобы сам автор вопроса лучше разобрался в своем вопросе.
    Сейчас ты не просто опустил в тексте важную информацию, а буквально выкинул ее для себя из внимания.
    А это значит что ты обречен на рецидив проблемы. В следующий раз она снова для тебя станет нерешаемой и снова потому что ты отказался от важных деталей проблемы.
    Поэтому лучше будет поменять текст вопроса и добавить важную деталь, на которую я сослался.
    У меня совсем не было бы к тебе вопросов, если бы ты написал имена файлов, в которых находятся обозначенные у тебя глобалы, привел бы выражения инициализации этих глобалов и показал конструкторы типов этих глобалов.
    Для меня это бы означало что ты увидел проблему целиком.
    Написано
  • Почему статическая переменная инициализируется дважды?

    @MarkusD Куратор тега C++
    Quark , конечно требуется больше информации.
    После вызывается конструктор, которые добавляет указатель на мой скрипт в общий контейнер:

    Register::Registry::RegisterActorWithComponent - это не конструктор. Это метод.
    Под вопросом то, как именно этот метод вызывается. Тебе нужно показать как именно до функции main вызывается этот метод.
    Написано
  • Google Play Console не принимает номер телефона при подтверждении аккаунта разработчика. Кто решил аналогичную проблему?

    RWGames , коротко, это вторичные санкции со стороны США.
    С 12го сентября гугл не принимает мобильные номера из РФ, РБ и частично из КЗ. Все из-за того, что в КЗ часть операторов являются субоператорами операторов РФ. Со всеми вытекающими.
    Не, ну а чо. кто-то в наши дни реально думает что у них там рынок свободный и управляется через конкуренцию? Будет надо - и закон напишут конкретно против тебя по имени.
    Написано
  • Слизался винтик, что делать?

    Cheliikk, поищи на маркете набор экстракторов. Это леворезьбовые конусы, нужен будет под марку твоего винта. Для экстракции тебе еще потребуется сверло по металлу калибра чуть меньше марки винта. Сверлом надо будет подготовить отверстие под экстрактор. Шурик же имеется?
    Попутно тебе потребуется заменный винт той же марки и из того же материала, скорее всего из нержи. На винты советую денег не жалеть, цена в себя включает качество резьбы. Ну и купить стоит впрок, чтобы менять как только шлицы на очередном поедут.
    Чтобы шлицы больше не слизывались, купи простую динамометрическую отвертку. В руководстве к ноуту всегда пишутся моменты затяжки винтов.
    Написано
  • Интересный 3D принтер?

    Hox , повышай свою подготовку в электробезопасности и электрике. А то даже программистом не сможешь работать, ТБ для допуска к ПК не пройдешь. Изложение процессов на уровне кухарки из прошлого века.
    Тебе сейчас эксперты в ответах напихают, конечно, 100% решений, но ты все равно просто замени БП. Это дешево, на алишке горы вариантов, включая и магазин Creality. Это должно быть понятно даже самому тупому недошкольнику: если на этой розетке чайник на 2.5кВт нормально кипятит воду, а БП на 350Вт от принтера гасит автомат через нее же, значит проблема в БП и его надо менять.
    Нельзя подключать нагрузку в обход предохранителей. Если из-за тебя выгорит домовая сеть или оборудование у соседей, одной проданной почкой ты не отделаешься.
    Написано
  • Почему для самого класса статическая переменная использует правильное значение, но при попытке вывести его, выдаёт 1?

    @MarkusD Куратор тега C++
    res2001, не риторический. Это стандарт. :)
    Что мы видим? std::cout << Bacteria::Print.
    Какая категория у Bacteria::Print? С учетом еще одного приведения - prvalue. А тип - указатель на функцию.
    За неимением подходящего оператора язык выполняет приведение и находит подходящий оператор.
    Написано
  • Почему для самого класса статическая переменная использует правильное значение, но при попытке вывести его, выдаёт 1?

    @MarkusD Куратор тега C++
    Ланской Кирилл,
    почему, если вывести адрес указателя и адрес функции, у первого будет 16-ричная, возможно 16-циферное число, то тут просто один?

    Потому что значение указателя на функцию или статический метод - это сырой адрес с типом int (*)(). Подходящей перегрузки operator << для такого типа аргумента нет. А самой ближайшей перегрузкой с учетом неявного преобразования будет перегрузка для булева значения, которая и пишет нолик/единичку. Учитывая что адреса функций всегда определены, std::cout << Bacteria::Print сведется к std::cout << true.
    Написано
  • Вектор и класс инициализация?

    @MarkusD Куратор тега C++
    Ланской Кирилл , не смотря на отмеченное решение, описание у тебя крайне непонятное и решение, скорее всего, не решает саму твою проблему. Даже если сняло симптомы.
    Тебе стоит привести конкретный код, чтобы с третьей стороны можно было убедиться в правильности приведенного решения.
    Написано
  • Почему glew кидает ошибки при подключении glew32s.lib?

    @MarkusD Куратор тега C++
    Soft_touch_plastic, если ты сам решил вопрос без ответов здесь, то или удали его, или напиши свое решение и отметь.
    Не стоит вот так бросать вопрос.
    Написано
  • Почему glew кидает ошибки при подключении glew32s.lib?

    @MarkusD Куратор тега C++
    Soft_touch_plastic , если говорить коротко, то не так ты делаешь всё. Прямо с момента, когда решил воспользоваться nuget-ом.
    У тебя изначальная задача какая?
    Написано