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

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

Детали плавающей точки FordPerfect
Детали плавающей точки
Цель статьи - дать читателю представление о работе с числами с плавающей точкой в программировании. Предполагается дать базовый объём информации и предоставить уровень понимания, достаточный для самостоятельного проведения оценок в задачах, возникающих на практике.

Комментарии [15]
4 мая 2017

Frustum Culling _Wizard_

Одной из важных оптимизаций в компьютерных играх является отсечение геометрии, не видимой на экране (Frustum Culling, далее фрустум кулинг). Раз мы все равно не увидим объект, то и не зачем тратить ресурсы компьютера на его подготовку и отрисовку.

Комментарии [65]
8 фев. 2017

Стоимость OpenGL команд. _Wizard_
Rectilinear Texture Warping Mephisto std
Behavior Trees в Unreal Engine 4 std::cin
Vulkan API «Hello Triangle» The Player
Вуду-программирование Epsilon
Вуду-программирование
Вуду-программирование (Voodoo programming) — программирование без чёткого понимания языка, основ программирования или используемой технологии; в результате программа обычно не работает, либо работает, но автор не может объяснить как.

Комментарии [57]
11 янв. 2016

NetWars Engine (NWE) Бабер
NetWars Engine (NWE) - движок с пакетом примеров (SDK) для быстрой разработки игр под ОС Windows с поддержкой MMO, SQL Server, 2D и 3D графики на API DirectX 11.

Комментарии [16]
5 дек. 2015

Blend4Web B4W_dev
Forward+ innuendo
Loki vbloodv
Создание собственного материала для геометрии коллизии с помощью MAX Script Aviator777
Создание собственного материала для геометрии коллизии с помощью MAX Script
Немного предистории. Поскольку наша команда писала свой игровой движок, постепенно развивая его, у нас появилась необходимость создать геометрию коллизии игрового мира. Но создать её — это одно дело, другое дело было наложить на неё соответсвующий материал и экспортировать саму геометрию с привязанными материалами и их флагами.

Комментарии [3]
17 янв. 2017

3D Studio Max: Перезагружаемый плагин RmzVoid
^ Как в Xcode превратить Command Line Tool в Cocoa Application. Sergio
Матрица перехода от одного множества точек к другому Suslik
О дизайне игровых подсистем в 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

Опубликованы исходники игрового движка-конструктора godot Feo
Разработчики игрового конструктора godot опубликовали исходники под лицензией MIT. Делать игры на движке godot можно под Mac OS, Windows, Linux. Как заявлено на сайте, деплой на большинство платформ делается в один клик. В списке поддерживаемых платформ: iOS, Android, Web, Windows, Mac, Linux, Blackberry.

Сайт проекта
Список фич
Исходники на github

jpeg | Опубликованы исходники игрового движка-конструктора godot

Комментарии [1]
11 фев. 2014

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

Форум

Реализация рандомного появления букв в JS22 окт. 20170:30KorshunovDM
Доброго всем вечера
Помогите, советом
Как правильно реализовать процесс появления в рандомном порядке появление на экране букв и чтобы при правильном нажатии происходило движение юнита?
Если кто знает где можно взять исходники или примеры посмотреть буду признателен
Яркость гамма и текстуры21 окт. 201711:42The Andreyp
Привет.

Трабла такая.
Допустим в двиге не юзаю тонмапинг - адаптацию и хдр

раньше что было:

грузил текстуры и мог вручную сделать им яркость выше.

void OverBrightPixel(byte col[3],byte ou[3],float overbright)
{
  float r, g, b;
  float scale=1.0f;
  float tmp_scale;

  r = (float) col[0];
  g = (float) col[1];
  b = (float) col[2];
  r = r * overbright / 255.0f;
  g = g * overbright / 255.0f;
  b = b * overbright / 255.0f;
  
  if(r>1.0f && (tmp_scale=(1.0f/r))<scale) scale=tmp_scale;
  if(g>1.0f && (tmp_scale=(1.0f/g))<scale) scale=tmp_scale;
  if(b>1.0f && (tmp_scale=(1.0f/b))<scale) scale=tmp_scale;

  scale *= 255.0f;
  r *= scale;
  g *= scale;
  b *= scale;

  ou[0] = appRound(r);
  ou[1] = appRound(g);
  ou[2] = appRound(b);
}

И помимо этого еще гамма через setdevgammaramp

НО

теперь я гружу еще и с жатые текстуры с диска и я не могу уже применить эту функцию .(все текстуры стали темными). остается только гамма.
пробовал применять постпроцессом ко всей сцене эту функцию. - появляется адовая блевотная засветка на лайтинге.
И вот не знаю что с этим делать:

1) рисовать должны текстуры в нужной яркости а уменя в двиге остается только возможность подкручивания гаммы
2) что-то еще?

===================

и по гамме вопрос - гамма через pow(1/2.2) дает адовое обрезание цвета.
есть еще функция - toneMapped = vec4(1.0) - exp(f4Color * -fExposure);               

хочу вынести эту гамму в шадер.. и заюзать експ функцию вместо пова - это оно? можно да?

================
другой вопрос. если есть в двиге хдр тонемаппинг. что с ним делать - его сюда можно приткнуть как-то? или это отдельная тема

Правка: 21 окт. 2017 11:45

Trigger Volumes [bullet]21 окт. 201711:33Misanthrope
Есть ли в буллете возможность сделать триггеры без использования RigidBody (как с RigidBody делать я знаю) ?
Пробовал делать просто на основе btCollisionObject.
Этот способ описан в книге
+ Показать

Но тут я не понял, как подписаться и где ловить этот самый
CollisionEvent(btRigidBody* pBody0, btRigidBody* pBody1) {}
если кто-то подтвердит, что это верное направление для такой задачи, то буду ковырять дальше.


так же пробовал делать на основе btGhostObject но у него getNumOverlappingObjects() всегда пустой.
Но тут я подозреваю, что в OverlappingObjects могут попадать только rigidBody, если это так, то я тогда понимаю причину.

В общем вопрос первый, реально ли делать триггеры без rigidBody
и второй вопрос, каким способом это лучше/проще сделать?

Система квадратных уравнений.21 окт. 20174:31Suslik
рассмотрим уравнение вида:
[cht](\vec m + \sum_{i=1}^N\vec n_i \lambda_i)^2=k^2[/cht]
здесь под умножением векторов понимается скалярное произведение, вектор [cht]\vec m[/cht] и векторы [cht]\vec n_i[/cht], а также число [cht]k^2[/cht] — известны. таких уравнений — N и теоретически можно составить систему из N уравнений относительно N неизвестных [cht]\lambda_i[/cht]:
[cht]
\left\{\begin{matrix}
(\vec m_1 + \sum_{i=1}^N\vec n_{1i} \lambda_i)^2=k_1^2 \\ 
\dots \\
(\vec m_N + \sum_{i=1}^N\vec n_{Ni} \lambda_i)^2=k_N^2 \\ 
\end{matrix}\right.
[/cht]
то же самое в тензорном виде:
[cht](m^{(j)}_{i}+n^{(j)}_{ip}\lambda_p)(m^{(j)}_{i}+n^{(j)}_{iq}\lambda_q)=k^{(j)}k^{(j)}[/cht]
здесь по (j) суммирование не ведётся, это просто N уравнений системы.

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

Правка: 21 окт. 2017 4:54

halfedge проход по граням21 окт. 20170:52slax
Привет
Есть halfedge -работает соседей находит, не могу начать писать создание списка граней, не выбрать к чему привязать и как заполнять
Как я понял, с помошью halfedge нельзя последовательно пройтись по всем граням только единожны - т.е. перебор edges, - без создания и заполения доп. массива
Создать список указателей *Edges на halfedge размером с max_edges=faces+vetices-2 ?
или добавить флаг в структуру halfedge, прямая/обратная грань?
или как-то по-другому? расскажите что выбрали для себя

Правка: 21 окт. 2017 0:54

Замена GL_ATI_meminfo20 окт. 201713:20Neptune
Расширение GL_ATI_meminfo уже давненько вырезано из атишных драйверов. Как теперь определять объём свободной видеопамяти? Общий объём определяется так:
    size_t memTotal = 0;
    UINT maxCount = wglGetGPUIDsAMD(0, 0);
    UINT* ID = new UINT[maxCount];
    wglGetGPUIDsAMD(maxCount, ID);
    wglGetGPUInfoAMD(ID[0], WGL_GPU_RAM_AMD, GL_UNSIGNED_INT, sizeof(size_t), &memTotal);
    delete [] ID;

А как быть со свободной?

Получить 2D изображение из стерео фотографии.19 окт. 20178:12tmtlib
Какой способ наиболее оптимален для решения этой задачи? Необходимо получить обычное фото из двух, при этом добиться хотя бы небольшого эффекта super resolution улучшения качества по сравнению с отдельным фото для левого/правого каналов. Если делать карту глубины, 3D, повторное проецирование и т.д. то много лишних телодвижений, и качество результата скорее всего будет не очень. Задача облегчается тем, что наблюдаемый объект находится на расстоянии десятка метров, и отличия между левым/правым кадрами малы, допустимо иметь отночительно большую погрешность в вычислениях.
Assimp. Импорт PBR текстур из модели (например, glTF 2.0)19 окт. 20177:03Saitei
Похоже, что Assimp прекрасно умеет работать с glTF 2.0. Причем я обнаружил, что библиотека В ПРИНЦИПЕ экспортирует roughness/metalness текстуры и это не может не радовать: https://github.com/assimp/assimp/blob/cc562b2b1c3bf97dc315d16de1b… rter.cpp#L410

Другое дело - а как их получить? Что это за AI_MATKEY_GLTF_PBRMETALLICROUGHNESS_METALLICROUGHNESS_TEXTURE и AI_MATKEY_COLOR_EMISSIVE, да и вообще все дефайны AI_MATKEY_*? Можно ли как-то абстрагироваться от glTF и получить все доступные текстуры?

Путь к файлу на другой странице18 окт. 201720:58piligrin
Всем привет. Помогите в html. Вот я перехожу со страница1 на страница2, а как и где указать файл.swf, который должен автоматом запуститься на странице2 ? С учётом того, что на странице1 много кнопок, при нажатии на которые с переходом на страницу2 должен запускаться файл1.swf или файл2.swf или файл3.swf и так далее.(просмотрщик флеш-файлов типа)
страница 1:
<a href="apm://page/Страница_2"  target="_parent" class="highlight" >Запустить файл1.swf</a>
<a href="apm://page/Страница_2"  target="_parent" class="highlight" >Запустить файл2.swf</a>
Проблемы с БигФиш (клик бейт)18 окт. 201720:18wildwild
На самом деле это конечно шутка и кликбейт, но по серьезной причине. Есть лого компании БишФиш и в оконном режиме присутствует его покоробленность (присмотритесь к кругу на рисунке). Я уже заманался биться с этой единственной картинкой.

Пытался и менять соотношение сторон, растягивать или сужать вширь/ввысь. Пытался и играться со сглаживанием. Здесь идет увеличение так как картинка по высоте 720, а вьюпорт - 745.

И вроде глюк только в одном разрешении и только в окне.

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

2017-10-18_201459 | Опубликованы исходники игрового движка-конструктора godot

2001—2017 © GameDev.ru — Разработка игр