Войти

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

Статьи

Пишем простой рейтрейсер используя Vulkan Raytracing
Пишем простой рейтрейсер используя Vulkan Raytracing
Всем привет! Сегодня я расскажу вам, как получить результат, изображенный на заглавной картинке к этой статье, используя Vulkan Raytracing.

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

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

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

Генетические алгоритмы в разработке игр.
Детали плавающей точки
Frustum Culling
Стоимость OpenGL команд.

Термины

Universal Scene Description (USD)
Universal Scene Description (USD)
Universal Scene Description (USD) — файловый формат описания трехмерной сцены, разработанный компанией Pixar.

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

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

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

Вуду-программирование
Blend4Web
Forward+

Подсказки

Подсветка кода и IntelliSense в Visual Studio для любых типов файлов.
Подсветка кода и IntelliSense в Visual Studio для любых типов файлов.
Привет всем! Сейчас я поделюсь с вами способом добавления кастомных типов исходников в MS Visual Studio.

Читать
20 ноя. 2018

Экспорт геометрии коллизии с материалом из 3DS Max в формат XML.
Создание собственного материала для геометрии коллизии с помощью MAX Script
3D Studio Max: Перезагружаемый плагин

Новости

Microsoft анонсировала DirectX Raytracing (DXR)
На проходящей в Сан-Франциско конференции разработчиков игр (GDC) компания Microsoft анонсировала поддержку в DirectX 12 технологии DirectX Raytracing (DXR). Новый программный интерфейс позволяет производить просчет рейтрейсинга при помощи поддержки этой технологии в железе.

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

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

Подробнее…

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

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

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

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

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

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

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
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.

Форум

(HLSL) смещение каждого уникального пикселя. (Help)17 янв. 201918:42KenAlcapone
Доброго времени суток. Давно не могу решить проблему с оффсетом пикселей в шейдере, на первом скрине все в порядке - https://ibb.co/FX9nG02 - в одномерном массиве "StructuredBuffer" buff[id].color  хранятся от 0 до 1024 рандомно заданные цвета из скрипта.

Проблема в том, что если нам нужно вывести на экран всего лишь 32 пикселя нам все равно придется юзать буффер на 32*32 элемента, в масштабах 3D текстуры это критично по ВП, допустим текстура 1024x1024x1024 для отрисовки вокселей будет в ВП 1,5 гигабайта, а если юзать оффсеты с тайлами, которые еще хранят только позицию центра вокселя, мы сэкономим это место + не всегда требуется текстура для внутренности меша.

Пытаюсь разобраться с оффсетами и сплошной заливкой на 2D текстуре, как вариант на втором скрине пытаюсь сделать через оффсет - https://ibb.co/G2WZtTj, buff[id].color - хранит 16 элементов для цвета float4 и buff[id].offset тоже 16 значений float2 для смещения по X и Y, но вот на втором скрине работает не так как нужно, пробовал смещать, только по Y, но даже с оффсетом цвета отображаются только в первой строке и происходит это потому, что я прибавляю оффсет к текущему положению, но как по другому я хз.

P.S
Еще пытался сделать, что бы ID для выбора элемента не выходил за границы 0-16 при любых значениях idX и idY, вот так работает -

float x1 = (float(idX) + float(idY)) / 16;
float x2 = modf(x1, x2);      
float posID = x2 * 16;

float2 offset = buff[posID].offset;

Но далее, не выходит подобрать формулу, что бы отрисовывать ровные квадраты в нужных позициях offset.xy

Правка: 19:17

клиент-сервер, команды серверу17 янв. 201917:50-Шум-
здравствуйте, помогите разобраться:
у меня есть сервер и есть клиент (сокеты, тср), клиент должен отправлять на сервер сообщение типа (команда 2 байте )(данные 4 байта)+(возможно еще какие-то данные). сервер считывает команду и после этого берет данные из пакета по нужному алгоритму. так вот встал вопрос как эти команды хранить и как обрабатывать.
сейчас у меня список команд выглядит примерно так
enum MessageType : short { _a, _b, _c};
но если мы в клиенте напишем эти команды в другом порядке то всё сломается, в результате если мне не нужна команда _b и я напишу {_a, _c} то это будет равняться {_a,_b} и не важно как я обзову 2й элемент в этом списке. (простите за невнятное объяснение)
что касается обработки команд то я исп. switch/case
 switch ((MessageType)_cmd)
{
  case MessageType._a:
  breake;
 case MessageType._b:
 breake;
 case MessageType._c:
 breake;
}
но если таких команд будет 20? у меня выйдет оч. длинный список и мне кажется что это как-то не очень хорошо.
дайте дельный совет как разобраться в данной ситуации
Вызов си функции в ЛУА17 янв. 201913:53VoidProphet
Привет, не мог бы кто нибудь ответить на один вопрос по ЛУА .
Если мы вызываем функцию си из луа ,результат ,затем попадает в некую статическую функцию на которую мы ссылаемся. Как из этой функции можно извлечь значения , скажем для некого класса или переменной? Заранее спасибо .

Правка: 13:55

Прокачка скилов или формула.16 янв. 201923:07Andrey_spb
Добрый вечер.

Давайте давайте попробуем обсудить или придумать как лучше сделать систему прокачки скилла. В свою игру ввел скилл - меткость. Сейчас скилл качается по такой формуле. Когда меткость прокачивается +1, то для следующего поднятия меткости:
metkost += 1;
metkost_next = getRandomInt(200, 300)*metkost;

Вроде бы все ничего, но когда игрок достигнет меткости в 90...
90*300=27000 выстрелов. Даже если игрок будет попадать каждую секунду (27000/60/60), ему потребуется 7,5 часов, чтобы вкачать скилл меткости до 91 - думаю суть вопроса ясна)))

У кого какие есть мысли, как расчитывать рост скилла/меткости, чтобы кач был средней сложности?

Студия 2017 виснет на бряках16 янв. 201910:48Kirwer7245
Привет всем! Пишу на C#, VisualStudio 2017.

Столкнулся с такой проблемой: студия виснет на бряках в 99% случаев. Раньше делала это через раз, теперь постоянно. При этом, если убить отлаживаемый процесс - студию отпускает и она останавливает отладку. Так же, если нажать Ctrl+Alt+Del и открыть диспетчер задач - её тоже отпускает, она обрабатывает одно событие UI (щелчек или клавишу), и опять зависает.

Кто-нибудь сталкивался с этим? Как это побороть?

Добавлено через 7 минут
Вдогонку:
В последующие разы после активации диспетчера задач она не зависает, а тупо не реагирует ни на какие действия. Курсор в коде при этом мигает. Если попеременно давать фокус то на диспетчер задач, то на студию, то она обрабатывает так по 1 действию. При этом, если активировать не диспетчер задач, а, скажем, браузер - он тоже начинает работать в таком режиме.

Всё это заканичивается, если убить отлаживаемый процесс.

Я тут нарыл вот это: https://rsdn.org/forum/tools/3923195.all

Здравствуйте, x-code, Вы писали:

XC>Нет, это не похоже на аппаратную проблему. Я работаю со множеством разных других программ, загружаю комп гораздо больше, никаких зависаний, синих экранов и прочего нету. Это связано именно с отладкой. Очень похоже на что-то системное, типа какого-то дедлока...
XC>Насчет того, что помогает только аппраратная перезагрузка — если честно, Ctrl-Alt-Del сразу не реагирует, а дальше я обычно не жду — жму ресет. Т.е. я просто не проверял детально. Курсор мыши в таком состоянии двигается нормально, т.е. это не полный крах.

XC>Кстати, похожий эффект наблюдается иногда на других машинах с другими версиями Visual Studio, но только там происходит не полная остановка, а резкое замедление работы системы (при этом система, разумеется, ничего не делает — просто "висит" где-то внутри себя). Например, нажимаешь Ctrl-Alt-Del, а окно диспетчера задач появляется через минуту. При этом курсор мыши двигается нормально. Иногда, если действовать аккуратно, удается завершить процесс Студии — тогда все возвращается в норму.

Причины могут быть самыми различными. С одной мы столкнулись. Проявлялось это при установке breakpoint внутри модуля, который выполнялся в отдельном потоке. После того, как программа доходила до этой точки, система начинала работать ооочень медленно. Шаг в отладчике (F10) выполнялся до одной минуты. Переключение между программами происходило по несколько минут. Единственный выход из этой ситуации — удаление редактора.

В конце концов выяснилось, что такое поведение вызывается не совсем корректной работой службы Windows. Эффект описан в:
http://www.virtualdub.org/blog/pivot/entry.php?id=118
http://forums.microsoft.com/MSDN/Sho...2&SiteID=1 (пост от nkanovsky)

Краткое содержание: «The problem is caused by DLLs that use global semaphores, and attach to all windows. What happens is that Visual Studio also uses global breakpoints and when it stops one window, then the other windows are all stuck due to the DLL that is still trying to get that global semaphore.»

В нашем случае это была msctf.dll (advanced text service), которая вешала mutex ко всем окнам. Проблемы с отладкой проявлялась только при отладке определенного модуля, который запускался в отдельном потоке. Почему это так — не очень понятно.

Так как эта служба не очень-то нужна (рукописный ввод, распознание голоса, восточно-азиатские клавиатуры), то ее проще всего запретить (для Windows XP):
«Start → settings → control panel → regional and language options»
затем:
«Languages → Details → Advanced» и поставьте галочку в «Turn off advanced text services»

Побочный эффект — исчезает «language bar» . Но переключение клавиатуры работает .

т.е. это баг в языковой панели с мьютексами. Но вопрос тогда такой - как это провернуть в Windows 8.1?

PS. Студию обновил, сейчас 2017.9 - то же самое

Вопрос по услугам лицевой анимации16 янв. 20191:38MSA2
Товарищ, Модератор!
Я не знал где задать подобный вопрос, так что если ошибся с разделом, прошу исправить.

Всем привет!

Для трейлера мне необходимо создать лицевую анимацию трёх персонажей.

Я могу предоставить 3D-модели персов и соответствующие аудиотреки с озвучкой.

Интересует инструмент FaceRig Pro Studios, позволяющий импортировать
кастом-модели и экспортировать FBX. Я планирую приобрести эту прогу,
но позже, поскольку разгребаю семейные проблемы и пока нет свободных
20000 руб - именно столько сейчас стоит прога.

Есть тут владельцы этого пакета?
Сколько будут стоить анимации хронометражом примерно около минуты?

Заранее спасибо за информацию!

Граф сцены и внешние ресурсы15 янв. 201921:30mr.DIMAS
Имеется граф сцены, в него могут подгружаться модельки из разных источников - примерно так
graph | Анонс Unity 5
Как видно здесь к узлам модели могут быть прикреплены другие узлы не принадлежащие модели. Узлы модели могут поменять свои позиции, поворот и масштаб (например после анимации). Далее эта сцена сохраняется в файл. После этого кто-то решает изменить модель (например удаляется один из узлов иерархии или изменяется его позиция) - естественно после этого нельзя просто так взять и заместить узлы модели в графе узлами модели из ресурса, все изменения в графе должны быть сохранены. Как в таком случае быть с сохраненным графом? Как решают подобную проблему?
Откуда выраврнивание?15 янв. 201917:28Examnes
Я сначала записал в файл структуру, которая
struct KeyFrame
{
  float Time;
  mat4 Transform;
};
Где mat4 просто массив 4x4 (не спрашивайте почему).
А потом хотел прочитать уже из другой программы, где структура уже
struct KeyFrame
{
  float Time;
  glm::mat4 Transform;
};
И все было бы хорошо, но размер структуры не соответствовал сумме размеров его полей(сумма 68 действительный был 72).
Сначала я думал, может mat4 какой то улучшенный что там еще какие-то поля, но нет, его размер 64.
Я проверил offsetof.. выравнивание.
Откуда оно тут взялось glm::mat4 это же просто улучшенная версия двумерного массива, почему компилятор не может точно определить ее размер?
что если добавить свету ограниченную скорость распространения ?15 янв. 201912:47itmanager85
что если добавить свету ограниченную скорость распространения ? (предполагаю что можно в этом случае получить весьма интересные эффекты).

ваше мнение ? :D

Metagame - что за зверь ?15 янв. 201911:53patsanchik3
Заспорили как то программист с геймдизайнером на тему метаигры на примере slither.io :

- программист грит - "нету в игре метаигры от слова почти - таблицу с набранными очками в игровой сессии/комнате относить к метаигре почти низя т.к. это составная часть корегемплея".

- геймдиз с ним не соглашается грит - "кор геймплей - съесть еду, Мета гейм - других игроков" и даёт определение - "Мета гейм - это соревнование или взаимодействия пользователя с другими пользователями." и делает вывод : "Мета гейм в slither.io идеально реализована, сам жанр IO подразумевает по собой мета игру"

а что думаете вы ?

Зеркало казино Украины http://casino-cleopatra.net/zerkalo , Рокс казино зеркало