Разработка игр

Q & A для профессиональных и независимых разработчиков игр

3
Определите, образует ли набор плиток на сетке замкнутую форму
Учитывая набор плиток на сетке, я хочу определить: Если плитки делают вложенную фигуру Если плитки образуют замкнутую фигуру, когда вы считаете стороны доски краем фигуры Если любое из двух предыдущих утверждений истинно, то какие дополнительные листы попадают в прилагаемую фигуру, то образуются исходные листы. Игрок начнет с того, что нажмет …
10 algorithm  grid  graph 

5
Как создать новый GameObject, не добавляя его на сцену?
Я создаю то, что по сути является моей собственной сборной системой. Игровые объекты определяются читаемым человеком файлом данных. Я хотел бы создать пустой GameObject, загрузить его с компонентами, определенными в файле данных, и подготовить его и ожидать Instantiate()вызова. Однако всякий раз, когда я использую GameObject go = new GameObject()новый игровой …

1
Как фигуры (прямоугольники) работают в четырехугольных деревьях?
Мне сказали, что четырехугольное дерево является идеальной структурой данных для моей игры, но у меня возникают проблемы с пониманием того, как именно формы работают в четырехугольных деревьях. Я делаю это в JavaScript, но я думаю, что эти вопросы могут применяться к деревьям квадратов на любом языке. Я думаю, что в …

1
Листовые текстуры спрайта, собирающие края смежной текстуры
У меня есть собственная подпрограмма спрайта (openGL 2.0), в которой используется простой лист спрайта (мои текстуры расположены горизонтально рядом друг с другом). Так, например, вот тестовый спрайт с двумя простыми текстурами: Теперь, когда я создаю свой спрайтовый объект openGL, я указываю общее количество кадров в его атласе, а при рисовании …

6
Как получить координаты пикселя в шестнадцатеричное на шестнадцатеричной карте на основе массива?
Я пытаюсь сделать функцию пиксель-координата для шестнадцатеричной карты, но я не правильно понимаю математику, все, что я пытаюсь сделать, кажется немного неправильным, и примеры, которые я нашел, основаны на картах по центру. Под «массивом» я подразумеваю порядок упорядочения гексов, см. Рис. Самый точный результат, который я получил, был со следующим …

3
Советы по связыванию между компонентами системы в C ++
Прочитав несколько документов о сущности-компонентной системе, я решил реализовать свою. Пока у меня есть класс World, который содержит сущности и системный менеджер (системы), класс Entity, который содержит компоненты в виде std :: map, и несколько систем. Я держу сущности как std :: vector в Мире. Пока проблем нет. Что меня …

2
Каков наилучший способ обновить форму шейдера?
Каков наиболее приемлемый способ поддержания матриц шейдера в актуальном состоянии и почему? Например, на данный момент у меня есть Shaderкласс, который хранит дескрипторы шейдерной программы GLSL и униформу. Каждый раз, когда я перемещаю камеру, мне приходится передавать новую матрицу вида в шейдер, а затем каждый другой объект мира, который я …
10 opengl  shaders  glsl 

4
Как я могу обрабатывать различные раскладки клавиатуры?
Допустим, у меня есть игра, которая использует элементы управления WASD на макете QWERTY. Попытка использовать эти элементы управления, скажем, на макете Dvorak не идеальна (эквивалентно <A:Hна QWERTY). Очевидно, я хотел бы использовать те же физические ключи, что и QWERTY ( ,aoeна DVORAK). Я придумал несколько возможных решений: Заставить пользователя использовать …
10 keyboard 

3
Управление исходным кодом для хранения всего игрового проекта?
Обычно для управления версиями в git-репозитории можно управлять не только исходным кодом, но и всеми ресурсами, текстурами, рисунками, файлами документации и т. Д.? Например, я хочу вернуть старую версию текстуры. Если это очень плохая практика, какие инструменты вы используете для контроля версий активов и прочего?

2
Как вы можете извлечь ориентацию из матрицы преобразования?
У меня есть матрица преобразования 4x4 M, и я хочу выяснить форму сферы при преобразовании M. (Сфера находится в начале координат и имеет радиус 1.) Я знаю, что могу найти центр, просто умножив М на (0,0,0,1). Тем не менее, радиус становится проблемой, так как М может сдавливать и вращать сферу. …

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

12
Как предотвратить чит-коды с изменением памяти?
В настоящее время существует множество программ, изменяющих память ( Cheat Engine & co). Есть ли эффективный способ сохранить постоянную переменную на самом деле постоянной? У меня было две идеи: Создайте отдельный поток, обновляя постоянную переменную до постоянного значения, например, 200 каждую минуту. Проблема: можно также изменить второе значение. Сохраните значение …
10 anti-cheat 

2
Разве множественное наследование не решает все проблемы, которые делают системы сущностей?
Вопрос довольно понятен: разве множественное наследование не решает всех проблем, которые также решают системы сущностей? Я только что вспомнил термин «множественное наследование», и это, похоже, решает множество вздутий, которые навязывает классическое наследование.

3
Как синхронизировать состояние многопользовательской игры более эффективно, чем обновления с полным состоянием?
Раньше я немного программировал в игровой сети, но в основном с TCP для игр без необходимости в реальном времени. Я работаю над 2D Java-игрой с сетевым мультиплеером. Для обучения я хочу сделать это сам, без существующего сетевого API. Как эффективно представить состояние игры, отправленное клиентам с сервера? Существует наиболее очевидный, …

1
Как инвертировать цвет фона пикселя
Я пишу игру и редактор карт, используя Java и jMonkeyEngine. В редакторе карт, я сделал кисть с помощью каркасной сферы. Моя проблема: я хочу сделать его видимым везде, поэтому я хочу инвертировать цвет пикселя «позади» этой кисти. Я хотел сделать это с фрагментным шейдером (GLSL), но я не знаю, как …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.