Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование игр [Форум / Инфо]

Программирование игр

Введение в Vulkan Raytracing 0r@ngE
Введение в Vulkan Raytracing
В какое время мы живем! Казалось, еще недавно мы часами ждали пока CPU просчитает знаменитое изображение за авторством Тернера Уиттеда, а сегодня нам доступны потребительские модели видеокарт с аппаратной поддержкой рейтрейсинга! Любой программист трехмерной графики скажет, что он мечтал об этом дне, когда мы, наконец, можем трассироваться в мировом пространстве в реальном времени.

Читать | Комментарии [169]
4 ноя. 2018

Генетические алгоритмы в разработке игр. emptiness_rain
Генетические алгоритмы в разработке игр.
Привет детишки, сегодня я хочу рассказать вам сказку про генетические алгоритмы и их применение в игрострое.

Читать | Комментарии [62]
20 мар. 2018

Детали плавающей точки FordPerfect
Frustum Culling _Wizard_
Стоимость OpenGL команд. _Wizard_
Rectilinear Texture Warping Mephisto std
Universal Scene Description (USD) wat
Universal Scene Description (USD)
Universal Scene Description (USD) — файловый формат описания трехмерной сцены, разработанный компанией Pixar.

Читать
5 июня 2018

Verge3D alexkowel
Verge3D
Verge3D - трёхмерный движок для веба, использующий технологию WebGL. Основан на Three.js, от которого отличается наличием реалистичных материалов, визуальным редактором логики Puzzles, средой создания приложений и более тесной интеграцией с программами моделирования Blender и 3ds Max. 14 декабря 2017 года в рамках проекта был запущен облачный сервис Verge3D Network для публикации и распространения 3D-приложений.

Читать | Комментарии [19]
8 дек. 2017

Вуду-программирование Epsilon
NetWars Engine (NWE) Бабер
Blend4Web B4W_dev
Экспорт геометрии коллизии с материалом из 3DS Max в формат XML. Aviator777
В предыдущей статье http://www.gamedev.ru/code/tip/Collision_material мы разобрали как написать простой скрипт, с помощью которого можно создать костюмный материал, но мы не разобрали, как его использовать. В данной статье мы разберём как создать скрипт для экспорта из 3DS MAX геометрии коллизии с наложенным материалом.

Читать
6 дек. 2017

Создание собственного материала для геометрии коллизии с помощью MAX Script Aviator777
3D Studio Max: Перезагружаемый плагин RmzVoid
^ Как в Xcode превратить Command Line Tool в Cocoa Application. Sergio
Microsoft анонсировала DirectX Raytracing (DXR) wat
На проходящей в Сан-Франциско конференции разработчиков игр (GDC) компания Microsoft анонсировала поддержку в DirectX 12 технологии DirectX Raytracing (DXR). Новый программный интерфейс позволяет производить просчет рейтрейсинга при помощи поддержки этой технологии в железе.

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

SEED-screenshot | Microsoft анонсировала DirectX Raytracing (DXR)

Подробнее…

Ссылка | Комментарии [467]
20 мар. 2018

О дизайне игровых подсистем в 2048 Tournament GoremykinIvan
Опубликован доклад по итогам разработки игры 2048 Tournament. В нём секции о естественной и искусственной сложности, о принципах дизайна систем, о типах ошибок, о декларативном формировании сценария действий, о том, как у нас работает конечный автомат и о паре архитектурных трюков.

P.S. Не забудьте включить полноэкранный режим просмотра.
Ссылка на доклад: http://www.goo.gl/6DoH7R

2048_tournament_postmortem | О дизайне игровых подсистем в 2048 Tournament

Ссылка
27 янв. 2015

Sony расширяет программу PSM Dev Program на 12 стран, включая Россию Skyblade

PSM Logo | Sony расширяет программу PSM Dev Program на 12 стран, включая Россию

Как сообщается на портале Playstation Mobile Developer Portal, 29 мая 2014 года Sony Computer Entertainment Inc. расширила программу PSM Dev Program на 12 стран, включая Россию, а PlayStation Store для PSM будет запущен в 4 новых странах 22 июня 2014 года.

Участие в этой программе даёт доступ к PSM Publisher License, которая необходима для разработки приложений при помощи PSM SDK и Unity for PSM, а также к возможности публиковать эти приложения в PS Store для PSM.

Всего на данный момент программа PSM Dev Program действует на территории 32 стран, а контент для PS Store для PSM в ближайшем будущем будет доступен пользователям 22 стран. При этом PS Store для PSM в данный момент не доступен российским пользователям.

Ссылка | Комментарии [18]
30 мая 2014

Анонс Unity 5 Daemon19
18 марта Unity Technologies анонсировали новую версию популярного движка Unity. Кратко, что обещают:
  • Новая physically-based система материалов,
  • Real-Time Global Illumintaion,
  • Audio Mixer — новый инструмент, позволяющий работать со звуком не выходя из Unity,
  • Редактор 64bit,
  • Апгрейд PhysX до 3.3,
  • Physics 2D Effectors,
  • Поддержка WebGL — добро пожаловать в браузер без unity player,
  • Многопоточные задачи,
  • Интеграция SpeedTree,
  • Еще больше Physics2D API,
  • И многое другое.

Unity 5 | Анонс Unity 5

+ Рекламное видео с особенностями нововведений в Unity 5

Подробная информация: http://unity3d.com/5

Ссылка | Комментарии [50]
20 мар. 2014

Программирование игр — создание компьютерной программы (программного обеспечения) с помощью языков программирования. В программирование игры, или создание игрового движка, входит программирование геймплея, создание 3D или 2D графики (при помощи OpenGL или DirectX, которые можно скачать бесплатно), поддержка физики и звукового сопровождения, обеспечение взаимодействия пользователя с игрой и с другими пользователями сетевой или онлайн игры, написание утилит и экспорта из пакетов моделирования, таких как 3DS MAX и Maya. Наиболее популярные среды для программирования игр: MS Visual Studio и Delphi.

Форум

Unity [Book of the Dead]. Кто пробовал данный ассет, поделитесь опытом.17 ноя. 20189:52Vertic
Решил установить данный ассет. В итоге пришлось перепробовать все версии выше 2018.2.0.

Запустился только на 2018.2.16f. На 2019 вылет. На остальных ошибки с ссылками.

В итоге столкнулся с проблемой направленного света, скрин прилагается. В общем квадратики красные мерцают время от времени. Попробовал на 3 компах. Я как то в очень не легком недоумении. На форумах ни черта не пишут, кроме что про ошибки кода.

Может кто столкнулся с такой хренью?


аа | Анонс Unity 5

Свет в Unity16 ноя. 201822:23tac
Добрался я наконец посмотреть на это ... будет ряд нубских вопросов по свету, но начнут с простого:

1. [Решено] Почему свет так долго запекается? На моей не такой и большой сцене 2048х2048 с не очень большим числом объектов, уходят часы от 1 до 5 ... это нормально? может можно поднастроить что-то? (а лигхтмапы занимают порядка 37 мегов, и их он запек порядка 14). + Может есть какие то советы по настройке Lightmapping Setting, т.к. видимо по умолчанию там не самый лучший вариант

2. [Решено] Правильно я понимаю, что если я отключу все источники, уберу все Emissives материалы, и выставлю EnviromentLighting-AmbientColor в черный непрозрачный цвет - я только тогда получу полную темноту в игре?

3. Enlighten vs Progressive (что быстрее? в чем вообще принципиальная разница? )

4. Как правильно создать эффект спускания в пещеру? (детали ниже https://gamedev.ru/code/forum/?id=240249#m6)

Правка: 17 ноя. 2018 0:12

Помогите с Unity и скриптами16 ноя. 201821:38Deadler
Проблема такова: Создаю ВПИ по типу HoI или TW. Карту на сцену уже закинул. Нужно чтобы при движении мыши камера следовала в направлении движения в 2D пространстве. Буду очень благодарен, если поможете рассказать как это реализовать. (P.S движок Unity)

Правка: 16 ноя. 2018 21:39

Борьба с Френелем (PBR, IBL)16 ноя. 201816:48oxotnik
Как поборот дикий засвет френела на краях объекта?
Или это в IBL норм тема?
Камни в реальной жизни так не светят :)
+ Показать
Опитимизация маленьких константных буферов16 ноя. 20180:22Barbar1an
касается и ДХ и не ДХ

если у нас есть константа шейдера которая разная для каждого из 100500 объектов сцены
то нужно создать 1 буффер и делать ему 100500 Map/Unmap каждый кадр
или делать 100500 буферов  под каждый объект?

Оптимизация GLSL15 ноя. 201823:55g-cont
Существует ли в природе такой софт, в который суёшь допустим, шейдер на GLSL, он его анализирует и выдаёт потенциально узкие места, причём не с общими рекомендациями, а базируясь на особенностях разных поколений GPU?

Ну скажем, сунул шейдер, а он такой - битовые операции на седьмом поколении гефорсов будут эмулироваться, или вот этот цикл лучше развернуть, а этот можно оставить, а вот здесь надо избавиться от стека, а тут варинги выровнять по четырём. Ну что-то типа такого?
Для Direct, насколько я знаю, подобные профилировщики существуют, причём от самого мелкософта.

Вывод графики по слоям в 2D используя OpenGL 3.3+15 ноя. 201818:14Dimm Smile
Проект: 2D игра с видом сбоку, вывод графики средствами OpenGL 3.3+.
Рендер самописный, тест глубины не используется, все рисуется последовательно.

Реализован, как мне кажется, не плохой вывод текста.
Во время выполнения update(), каждый кадр, весь текст складывается в локальный буфер (std::vector).
Затем весь буфер отправляется в glBufferData (glBufferSubData если общий размер буфера не стал больше).
И после этого вызывается glDrawArraysInstanced. За раз выводятся все буковки, все быстро и главное просто.

Вся графика в игре должна выводиться, как бы, в несколько слоев:
1. Задний фон (декорации).
2. Передний фон (сам мир, где перемещается персонажи).
3. Персонажи.
4. Имена персонажей и всякие надписи.
5. Интерфейс (инвентарь, тулбар, показатели здоровья и т.д.).
6. Надписи для интерфейса.
7. Перемещаемые в текущий момент вещи в инвентаре.
8. Текст для слоя 7 + весь остальной текст (отладочная информация например, значение ping-а).

Ну если с фонами и персонажами все более ли менее понятно, просто рисуем сначала одно, потом другое.
То вот с выводом теста я столкнулся с некоторыми проблемами.
Например если выводить весь текст за раз и в последнюю очередь, он весь окажется поверх остальных слоев.
А нужно, что бы имена персонажей, например, не могли рисоваться поверх интерфейса.
Пока что в голову пришло только одно - сделать для текста несколько локальных буферов.
Затем в процессе update() складывать разные надписи в разные локальные буферы и каждый буфер выводить в определенный момент после нужного слоя.

И вот тут мой внутренний перфекционист запростестовал, потому что несколько буферов уже сложнее контролировать.
Можно со временем забыть какой номер буфера к чему относится и куда что класть.
Так же за один кадр я один буфер opengl 3-4 раза обновляю и запрашиваю отрисовку из него.
Еще постоянно переключаются состояния, до 8-10 раз за кадр (смена текстур, шейдеров, буферов), а если еще больше слоев будет, то ваще пипец начнется.
Шейдеров пока 4 штуки: для вывода карты, интерфейса, всех прочих объектов и текста.

И вот собственно вопрос, как это все правильно выводить по слоям (с вашей точки зрения)?
Плюс очень важно, что бы на слабых устройствах рендер работал довольно быстро, а не только на топовых видеокартах.
Можете просто рассказать как вы сделали подобный рендер у себя в проектах (это было бы вообще идеально) или видели в крупных проектах!

Помогите с активаторами С#15 ноя. 201815:59Tiger666
Всем добрый день!

Ваяю игру потихоньку. Делаю движок для ролевого сеттинга.
Пытаюсь сделать динамическое создание классов, но все объекты у меня наследуются от исходного абстрактного, скажем, HDS_Object, у которого нет конструктора по умолчанию (это тот, что без параметров). Мне так надо.

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

            foreach (HDS_ICNT_Slot S in Class.Slots)
            {
                switch (S.GetType().Name)
                {
                    case "HDS_ICNT_S_AnimalBack":
                        Slots.Add(new HDS_ICNT_S_AnimalBack(S.Name, this));
                        break;
                    .
                    .
                    .
                    case "HDS_ICNT_S_HumanHand":
                        HDS_ICNT_S_HumanHand S1 = new HDS_ICNT_S_HumanHand(S.Name, this);
                        HDS_ICNT_S_HumanHand S2 = Slots.FirstOrDefault(s => s.GetType() == S1.GetType()) as HDS_ICNT_S_HumanHand;
                        Slots.Add(S1);
                        if (S2 != null)
                        {
                            S2.Pair = S1;
                            S1.Pair = S2;
                        }
                        break;
                    .
                    .
                    .
                    case "HDS_ICNT_S_HumanWaist":
                        Slots.Add(new HDS_ICNT_S_HumanWaist(S.Name, this));
                        break;
                    default:
                        break;
                }
            }

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

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

[Unity][Facebook]: Можно ли получить доступ к списку друзей ?15 ноя. 201810:52Gladiator
Привет.

Изучаю Фейсбук АПИ на кошках, так сказать. Не пинайте сильно за мои вопросы:

Заранее скажу, что все делаю через редактор. Т.е. запускаю в Юнити и хочу видеть результат.

Итак...

* Создал приложение на developer.facebook.com

  • Настроил немного.
  • Написал скриптец(вернее не я его писал.. делал по уроку). Логин/Логаут/вывод списка друзей.


    Для своего приложения я получил юзер токен. Который, при логине у меня запрашивается(Сделано где-то в плагине). Но вот список друзей приходит пустой. Разрешения вроде все правильные запрашиваю. Потом я решил перепроверить по-другому. Я создал себе тестовых пользователей. Для одного из них я решил получить маркер пользователя и ввести вместо своего маркера его маркер. До этого, я добавил ему друзей(других тестовых пользователей). И о чудо! Список друзей приходит!

    Вопрос:
    Почему для меня(моего токена) - это не так ? Почему я не вижу списка моих друзей ?

    И еще вопрос:
    Могу ли я залогиниться(программно) так же как обычный пользователь (по логину/паролю) ?

    Заранее благодарю.

    P.S. Повторюсь меня интересует поведение именно в редакторе. Я серьезно не понимаю почему для разных платформ оно должно отличаться.

  • Правка: 15 ноя. 2018 10:54

    Отсечение отрезков. Fast Clipping vs Nicholl-Lee-Nicholl15 ноя. 20186:33ArtProg
      Собственно сабж. Каков из алгоритмов быстрее в плане производительности? Знаю что FC был некоторое время самым быстрым, с 1987 года. Потом в 2006 году появился последний. И юзают ли его ли его для игр и вобще в трехмерном пространстве или ислючительно для 2D?
    Зеркало казино Украины http://casino-cleopatra.net/zerkalo , Рокс казино зеркало
    2001—2018 © GameDev.ru — Разработка игр