Вопросы с тегом «multithreading»

Многопоточность позволяет нескольким потокам существовать в контексте одного процесса, совместно использующего одни и те же ресурсы, но способного выполняться независимо.

81
Сколько ниток я должен иметь и для чего?

Должен ли я иметь отдельные потоки для рендеринга и логики, или даже больше? Мне известно об огромном падении производительности, вызванном синхронизацией данных (не говоря уже о блокировке мьютекса). Я думал о том, чтобы довести это до крайности и создать потоки для всех мыслимых подсистем. Но я...

79
Как Dwarf Fortress отслеживает так много сущностей без потери производительности?

В Dwarf Fortress вы можете одновременно иметь в игре сотни гномов, животных, гоблинов и т. Д., Каждый со своим сложным ИИ и процедурами поиска пути. Мой вопрос: как это не вызывает заметного замедления? Каждый гном работает в своем собственном...

44
Каковы лучшие ресурсы по проектированию и разработке многопоточных игр или игровых движков?

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

41
Должны ли актеры в игре быть ответственными за рисование себя?

Я очень новичок в разработке игр, но не в программировании. Я (снова) играю с игрой типа Понг, используя canvasэлемент JavaScript . Я создал Paddleобъект, который имеет следующие свойства ... width height x y colour У меня также есть Pongобъект, который имеет такие свойства, как ... width height...

33
Как не заморозить основной поток в Unity?

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

31
Как игра может обрабатывать всех персонажей одновременно?

Этот вопрос просто для того, чтобы узнать, как игра может обрабатывать столько персонажей одновременно. Я новичок в играх, поэтому прошу прощения заранее. пример Я создаю игру защиты башни, в которой есть 15 слотов для башен, в которых строятся башни, и каждая башня выбрасывает снаряд с...

28
Сколько потоков следует использовать в игре для Android?

Как минимум, игра OpenGL для Android имеет поток пользовательского интерфейса и поток визуализации, созданный GLSurfaceView. Renderer.onDrawFrame()должен делать минимум работы, чтобы получить самый высокий FPS. Физике, ИИ и т. Д. Не нужно запускать каждый кадр, поэтому мы можем поместить их в...

24
Многопоточность 2D гравитационных расчетов

Я создаю игру по исследованию космоса, и в настоящее время я начал работать над гравитацией (в C # с XNA). Гравитация все еще нуждается в настройке, но прежде чем я смогу это сделать, мне нужно решить некоторые проблемы производительности с моими физическими вычислениями. При этом используется 100...

23
Это нормально для игры использовать 100% CPU?

Я только что реализовал многопотоковую обработку ввода в своем игровом движке, где код, опрашивающий ОС, чтобы собрать входные данные и метки времени, находится в отдельном потоке, и каждый кадр в основном потоке я просто поглощаю собранный ввод до логическое игровое время. Все работает, но эта...

21
Многоплатформенная многопоточность: каковы реальные проблемы?

Хотя такая библиотека, как SDL, предоставляет кроссплатформенный API-оболочку для многопоточности, я думаю, что было бы наивно полагать, что это напрямую ведет к простой разработке игр для совершенно разных платформ (настольных и мобильных). Каков наилучший способ разработки таким способом (с...

20
Структуры данных для интерполяции и многопоточности?

В последнее время я сталкиваюсь с некоторыми проблемами, связанными с дрожанием кадров, и кажется, что лучшим решением было бы то, что было предложено Гленном Фидлером (Gaffer on Games) в классической программе Fix Your Timestep! статья. Сейчас - я уже использую фиксированный временной шаг для...

18
Как сделать передачу сообщений между потоками в многопоточном движке менее громоздкой?

Движок C ++, над которым я сейчас работаю, разделен на несколько больших потоков: Generation (для создания моего процедурного контента), Gameplay (для AI, скриптов, симуляции), Physics и Rendering. Потоки взаимодействуют друг с другом через небольшие объекты сообщений, которые передаются из потока...

16
Синхронизация между потоком логики игры и потоком рендеринга

Как разделить игровую логику и рендеринг? Я знаю, что здесь, похоже, уже есть вопросы, задающие именно это, но ответы меня не устраивают. Из того, что я понимаю до сих пор, смысл разделять их на разные потоки состоит в том, что игровая логика может сразу же начать работать для следующего тика, а не...

14
Плавный экран загрузки между сценами

Я создал экран загрузки для отображения анимации загрузки при загрузке следующей сцены. Я загружаю следующую сцену асинхронно с: yield return SceneManager.LoadSceneAsync(scene,LoadSceneMode.Additive); И тоже установлено Application.backgroundLoadingPriority = ThreadPriority.Low;, но поведение все...

14
RTS Game AI Thread

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

13
Движение зависит от частоты кадров, несмотря на использование Time.deltaTime

У меня есть следующий код для расчета перевода, необходимого для перемещения игрового объекта в Unity, который вызывается LateUpdate. Из того, что я понимаю, мое использование Time.deltaTimeдолжно сделать окончательную частоту кадров перевода независимой (пожалуйста, обратите внимание,...

12
Обновление и рендеринг в отдельных темах

Я создаю простой 2D игровой движок и хочу обновить и визуализировать спрайты в разных потоках, чтобы узнать, как это делается. Мне нужно синхронизировать поток обновления и рендер. В настоящее время я использую два атомных флага. Рабочий процесс выглядит примерно так: Thread 1...

12
Спрайты как актеры

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

12
Граф сцены в отдельной теме

Я разрабатываю собственный игровой движок для удовольствия (но не для прибыли). У меня есть рендеринг в одном потоке, а мой график сцены обновляется (скорость и т. Д.) В другом. Когда приходит время рендеринга, поток рендеринга добавляет видимые узлы в новый линейный буфер и пересекает их. Более...

11
Как использовать многопоточное приложение OpenGL для обновления VBO и их одновременного использования?

У меня есть простое приложение. У него есть два потока, каждый со своим собственным контекстом рендеринга, но они совместно используют один VBO (это работает, я проверял это). Теперь то, что я хочу: один поток рендерит некоторые данные из первой половины VBO, а второй поток обновляет вторую часть...