Войти

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

Статьи

Гидродинамика Шрёдингера на пальцах
Гидродинамика Шрёдингера на пальцах
В этой статье в качестве эксперимента я постараюсь максимально доступно рассказать, как работает новый метод расчёта гидродинамики, основанный на решении уравнения Шрёдингера.

Читать | Комментарии [96]
9 окт. 2019

Предрасчёт рейкаста для эффективного рендеринга травы и меха
Предрасчёт рейкаста для эффективного рендеринга травы и меха
Здравствуйте. В этой статье я хотел бы рассказать об алгоритме, который я разработал в результате своих экспериментов с предрасчётом трассировки лучей. Результат работы одной из промежуточных версий алгоритма можно увидеть здесь:

Читать | Комментарии [46]
18 авг. 2019

На пути к эффективному алгоритму Global Illumination, часть 1
Синхронизации в Vulkan
Пишем простой рейтрейсер используя Vulkan Raytracing
Введение в Vulkan Raytracing

Термины

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+

Подсказки

^ Матрица LookAt
Доступно пользователям со статусом Участник

Читать | Комментарии [13]
29 янв. 2020

Инверсия матрицы 4x4
Подсветка кода и IntelliSense в Visual Studio для любых типов файлов.
Экспорт геометрии коллизии с материалом из 3DS Max в формат XML.

Новости

Ray Tracing Gem. Доступно бесплатно!
Опубликована PDF-книга «Ray Tracing Gem. High-quality and real-time rendering with DXR and other APIs» на 600+ страниц, подготовленная NVIDIA и разными специалистами из области рейтрейсинга. Можно скачать отсюда:
https://link.springer.com/book/10.1007/978-1-4842-4427-2

Ссылка | Комментарии [7]
4 мар. 2019

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

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

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

Подробнее…

Ссылка | Комментарии [504]
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

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

Форум

Усечёный тетраэдр4 апр. 202011:08_Drago
вообщем нужно через координаты нарисовать усеченный тетраэдр на с#
https://gamedev.ru/files/images/?id=145755
Как добавить виджет на экран?4 апр. 202010:00dmitrykozyr
Подскажите, как добавить виджет на экран?
У меня переменная blackLinesWidgetClass почему-то все время равна NULL.
    FStringClassReference blackLinesWidgeClasstRef(TEXT("WidgetBlueprint'/Game/Blueprints/UI/blackLines.blackLines'"));
    UClass* blackLinesWidgetClass = blackLinesWidgeClasstRef.TryLoadClass<UUserWidget>();
    if (blackLinesWidgetClass)
    {
        UUserWidget* blackLinesWidget = CreateWidget<UUserWidget>(this->GetGameInstance(), blackLinesWidgetClass);
        if (blackLinesWidget)
            blackLinesWidget->AddToViewport();
    }
Корректный вызов деструкторов3 апр. 202021:11g-cont
Есть базовый класс. От него наследуются некоторые другие классы. Для конкретики - это виджеты, элементы меню, контролы всякие.
У базового класса есть динамический массив с указателями на базовый класс. В этом массиве хранятся указатели на все дочерние элементы меню.
Понятное дело, что дочерние элементы меню необязательно имеют базовый класс, чаще всего унаследованный. Взаимодействие осуществляется через базовые виртуальные методы. События, нажатие кнопок, отрисовка. Проблемы начинаются при высвобождении памяти - итеративно проходим по массиву указателей, вызываем delete и естественно вызывается деструктор только для базового класса, но не для унаследованных.
Что тут можно сделать, не выдумывая собственных функций для освобождения памяти?
RenderDoc3 апр. 202016:020xc0de
OpenGL4.5. При запуске через RenderDoc выдает черный экран. Делаю захват кадра, выдает кучу ошибок: Incorrect API use No vertex shader bound at draw!

Шейдеры биндятся к пайплайну при создании:

glCreateProgramPipelines( 1, &pipelineId );
for ( ShaderStageInfo const * stage = Stages ; stage < &Stages[ NumStages ] ; stage++ ) {
    glUseProgramStages( pipelineId, stage->StageFlag, stage->GetHandle() );
}
Посоветуйте движок для конкретных целей3 апр. 202015:08Grecords
Привет всем. Нужен ваш совет. Давно занимаюсь 3d моделированием, но хотелось бы свои объекты оживить. Моделю знакомые мне места из жизни, это в большей части здания.
Цель: в игровом движке нужна динамическая смена дня и ночи, а так же динамическая смена погоды (дождь, гроза), персонаж от 1 лица (без оружия), а дальше уже, только от себя, наполнение моделями, текстурами сцены, ну и покупка некоторых ассетов. Знаний в программировании нет.
Посоветуйте наиболее легкий вариант для этого в освоении, какой игровой движок? Спасибо.
инверсия угла кватерниона [решено]3 апр. 202014:47Mira
ребзя подскажите как корректно инвертировать любую ось кватерниона.
с эйлерами достаточно помножить любой угол на единицу, но компоненту кватерниона так нельзя.
преобразование в эйлеры и назад коммуникативно через раз, лучше не пробовать.
Unity и NPOT текстуры3 апр. 202011:22Increaser
Привет всем.
Хотелось бы уточнить несколько вопросов. Допустим, у меня есть куча спрайтов(будущие элементы GUI) размером вроде 519х134, 77х77 и тд. Вопрос в том, насколько это плохо. Если я упакую их Sprite Packer'ом в POT атлас, то все будет ок? Какие подводные камни могут быть при упаковке? Target build - Android, iOs

Еще более общий вопрос - следует ли требовать с художника только POT или хотя бы делящиеся на 4 текстуры? Как обычно устроен пайплайн - художники выдают сразу нормального размера текстуры или потом Unity-разработчики пакуют их в POT-атласы? Или вообще художник должен сразу атлас предоставлять? 

Правка: 11:53

Перечень GL-функций2 апр. 202023:44zombihello
Здравствуйте, ребят, все никак не могу найти перечень GL-функций, соответствующих своим версиям Core Profile. Знакомый говорит, что кто-то ему уже кидал подобное, но у него не сохранилось, а сам не нашел. Буду очень благодарен
Нужна помощь, логика не работает и моя тоже уже отказывает!2 апр. 202011:20PlatonX
Учусь кодить, и прохожу обучение на ютубе по созданию 2d платформера)
И я проверил этот код уже раз 200 и не смог найти ошибки, но персонаж по прежнему не двигается
кнопки влево, вправо пробел не срабатывают. Помогите пожалуйста.
[img=Piccy.info - Free Image Hosting]

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Character : MonoBehaviour
{
    [SerializeField]
    private float speed = 3.0f;
    [SerializeField]
    private int lives = 3;
    [SerializeField]
    private float JumpForce = 15.0f;

    new private Rigidbody2D rigidbody;
    private Animator animator;
    private SpriteRenderer sprite;

    private void Awake()
    {
        rigidbody = GetComponent<Rigidbody2D>();
        animator = GetComponent<Animator>();
        sprite = GetComponentInChildren<SpriteRenderer>();
    }

    private void update()

    {
        if (Input.GetButton("Horizontal")) Run();
        if (Input.GetButtonDown("Jump")) Jump();
    }

    private void Run()
    {
        Vector3 direction = transform.right * Input.GetAxis("Horizontal");

        transform.position = Vector3.MoveTowards(transform.position, transform.position + direction, speed * Time.deltaTime);
        sprite.flipX = direction.x < 0.0f;
    }

    private void Jump()

    {
        rigidbody.AddForce(transform.up * JumpForce, ForceMode2D.Impulse);

    }
}

Правка: 11:26

Аватарки1 апр. 202021:26Ulyp
Всем привет!

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

Такой вопрос: к аватаркам применяются те же правила? Или же можно любую картинку с инета скачать, вырезать по размерам и использовать как аватарка?

Букмекерские конторы по материалам http://winline.ru.