Из чего состоит движок для игры?

Актуальная тема для движкописателей. Из чего состоит движок? Каков его состав? Это абстрактные вопросы, и общий ответ на них есть. В данной статье сделаем смелую попытку описать состав движка для игры)

Освещение в играх. Deferred shading. G-буфер

В статье рассмотрим первый этап динамического отложенного освещения (deferred shading), а именно G-буфер. Внутри есть примеры в виде скриншотов))

Освещение в играх. Динамическое освещение и его методы

В данной статье рассмотрим понятие «динамическое освещение» и его методы в теории, а именно о forward render, deferred shading, Light Pre-Pass Render (LPP, deferred lighting).

Освещение в играх. Методы освещения

Освещение один из самых важных критериев самоопределения проекта. Визуальная составляющая играет немаловажную роль, во всех игровых проектах. Освещение в целом определяет вектор направления движения проекта, его целевую аудиторию и намерения. В данной статье рассмотрим в теории методы.

История создания s4g до версии 0.9.2

Мне всегда было интересно как же создавался какой-то проект, его история создания, до определенной версии. Поэтому и мы начнем)) В статье расскажу историю разработки s4g до версии 0.9.2 с момента задумки.

Передача данных между библиотеками dll

При разработке SkyXEngine, перед нами на всегда вставала важная проблема — как осуществить общение dll библиотек друг с другом? Как будет происходить передача данных между библиотеками dll? Очень часто мы обходились путем прямой посылки данных в библиотеку. Но когда кода стало слишком много, мы поняли что это неправильно.

Основные способы оптимизации производительности

Для real-time приложений производительность очень важна, а если приложение еще и критично по времени исполнения, то производительность является ключевым фактором. Вопросам оптимизации производительности должно уделять достаточно времени. При разработке скриптового языка s4g мы не раз сталкивались с низкой производительностью. И каждый раз нам приходилось решать задачи по ускорению исполнения кода. Речь идет именно о повышении производительности C++ кода. Однако, не всегда, казалось бы очевидные приемы оптимизации, действительно ведут к оптимизации.

Типизация в языках программирования

Типизация языка программирования в некоторых случаях может оказаться достаточно важным фактором при его выборе. Не ради сравнения, а лишь только с целью показать различия языковых возможностей стоит сказать: в языке lua намного проще выполнить некоторые действия, нежели на C++. На первый взгляд достаточно глупый пример, но с другой стороны, где лучше описывать логику на C++ или на lua? Риторический вопрос на который, каждый сам находит ответ))

Что такое API?

Казалось бы, написал программу, и весь ее код и есть API, однако не все так просто, как кажется) Предоставляя лишний код в программный интерфейс создаются дополнительные проблемы использования, что за код, куда его девать и как с ним быть? Какой код вычленить для использования? В данной статье рассмотрим что такое API (программный интерфейс/интерфейс программирования) и его значимость.

Разработка компилятора. Контекст исполнения

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