#игровой_дизайн — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #игровой_дизайн, aggregated by home.social.
-
Автоматизируем посёлок ч.3: LED-экран и игровой автомат
Третья (и пока что заключительная) часть об общественно-полезных DIY-проектах в посёлке ( часть 1 , часть 2 ). Расскажу про светодиодные экраны и игровой автомат для детской площадки.
-
Оптимизация рендера 2D-персонажей в MonoGame: Прагматичный подход слоёв и инстансинга
Теги: #monogame #gamedev #оптимизация #csharp #графика #индиразработка Введение: Проблема падающих FPS и желание красоты Каждый разработчик 2D-игр, мечтающий о живом, населённом мире, рано или поздно упирается в суровую реальность: рендеринг множества уникальных анимированных персонажей — это дорого. Хочется дать игроку кастомизацию, смену снаряжения, разнообразие врагов, но классический подход «нарисовать каждый спрайт отдельно» ведёт к сотням draw calls и падению производительности. В своей инди-игре (симуляторе жизни в мире фэнтези-жуков) я столкнулся с этой проблемой в полный рост. Мне нужны были десятки NPC на экране, каждый — с возможной сменой брони и оружия. Решением стала гибридная система рендеринга, основанная на разделении персонажей по уровням детализации и использовании инстансинга . В статье я разберу её архитектуру, код и полученные выгоды. Часть 1: Анализ проблемы — почему «в лоб» не работает Допустим, у персонажа 10 слоёв: тело, голова, ноги, броня, шлем, оружие в каждой руке и т.д. Если рендерить каждый слой отдельным вызовом SpriteBatch.Draw() , для 50 NPC мы получим 50 × 10 = 500 draw calls . При целевом значении в 60 FPS у нас есть всего ~16.6 мс на кадр. Если один draw call занимает ~0.1 мс, только на отрисовку персонажей уйдёт 50 мс — это в три раза больше бюджета! Ключевой инсайт: Не всем персонажам нужна одинаковая детализация. Фоновому горожанину или стае врагов не требуется динамическая смена снаряжения. А главному герою — требуется. Часть 2: Гибридная архитектура — 3 уровня детализации
https://habr.com/ru/articles/988696/
#инди #индиигры #индиразработка #gamedev #игры #c# #c#net #игровой_движок #игровой_дизайн #игровой_фреймворк
-
Ортогональный дизайн — один из важнейших принципов геймдизайна
Привет, Хабр! В данной статье мы поговорим о концепции ортогонального дизайна игр и его влиянии на игровой опыт. Ортогональный дизайн является ключевым принципом в геймдизайне и левелдизайне, благодаря ему удается создавать более глубокий, разнообразный и интересный игровой опыт, а также упрощается процесс разработки. Мы рассмотрим как ортогональность проявляется в дизайне противников, способностей, механик и миссий на примере таких легендарных игр, как Doom 1993 , Halo: Combat Evolved , Dishonored и Red Dead Redemption 2.
https://habr.com/ru/companies/serverspace/articles/842642/
#геймдизайн #ортогональный_дизайн #дизайн_игр #левел_дизайн #разработка_игр #игростроение #ортогональность #игровой_дизайн #дизайн_уровней #игровая_индустрия
-
Оптимизация рендера 2D-персонажей в MonoGame: Прагматичный подход слоёв и инстансинга
Теги: #monogame #gamedev #оптимизация #csharp #графика #индиразработка Введение: Проблема падающих FPS и желание красоты Каждый разработчик 2D-игр, мечтающий о живом, населённом мире, рано или поздно упирается в суровую реальность: рендеринг множества уникальных анимированных персонажей — это дорого. Хочется дать игроку кастомизацию, смену снаряжения, разнообразие врагов, но классический подход «нарисовать каждый спрайт отдельно» ведёт к сотням draw calls и падению производительности. В своей инди-игре (симуляторе жизни в мире фэнтези-жуков) я столкнулся с этой проблемой в полный рост. Мне нужны были десятки NPC на экране, каждый — с возможной сменой брони и оружия. Решением стала гибридная система рендеринга, основанная на разделении персонажей по уровням детализации и использовании инстансинга . В статье я разберу её архитектуру, код и полученные выгоды. Часть 1: Анализ проблемы — почему «в лоб» не работает Допустим, у персонажа 10 слоёв: тело, голова, ноги, броня, шлем, оружие в каждой руке и т.д. Если рендерить каждый слой отдельным вызовом SpriteBatch.Draw() , для 50 NPC мы получим 50 × 10 = 500 draw calls . При целевом значении в 60 FPS у нас есть всего ~16.6 мс на кадр. Если один draw call занимает ~0.1 мс, только на отрисовку персонажей уйдёт 50 мс — это в три раза больше бюджета! Ключевой инсайт: Не всем персонажам нужна одинаковая детализация. Фоновому горожанину или стае врагов не требуется динамическая смена снаряжения. А главному герою — требуется. Часть 2: Гибридная архитектура — 3 уровня детализации
https://habr.com/ru/articles/988696/
#инди #индиигры #индиразработка #gamedev #игры #c# #c#net #игровой_движок #игровой_дизайн #игровой_фреймворк
-
Оптимизация рендера 2D-персонажей в MonoGame: Прагматичный подход слоёв и инстансинга
Теги: #monogame #gamedev #оптимизация #csharp #графика #индиразработка Введение: Проблема падающих FPS и желание красоты Каждый разработчик 2D-игр, мечтающий о живом, населённом мире, рано или поздно упирается в суровую реальность: рендеринг множества уникальных анимированных персонажей — это дорого. Хочется дать игроку кастомизацию, смену снаряжения, разнообразие врагов, но классический подход «нарисовать каждый спрайт отдельно» ведёт к сотням draw calls и падению производительности. В своей инди-игре (симуляторе жизни в мире фэнтези-жуков) я столкнулся с этой проблемой в полный рост. Мне нужны были десятки NPC на экране, каждый — с возможной сменой брони и оружия. Решением стала гибридная система рендеринга, основанная на разделении персонажей по уровням детализации и использовании инстансинга . В статье я разберу её архитектуру, код и полученные выгоды. Часть 1: Анализ проблемы — почему «в лоб» не работает Допустим, у персонажа 10 слоёв: тело, голова, ноги, броня, шлем, оружие в каждой руке и т.д. Если рендерить каждый слой отдельным вызовом SpriteBatch.Draw() , для 50 NPC мы получим 50 × 10 = 500 draw calls . При целевом значении в 60 FPS у нас есть всего ~16.6 мс на кадр. Если один draw call занимает ~0.1 мс, только на отрисовку персонажей уйдёт 50 мс — это в три раза больше бюджета! Ключевой инсайт: Не всем персонажам нужна одинаковая детализация. Фоновому горожанину или стае врагов не требуется динамическая смена снаряжения. А главному герою — требуется. Часть 2: Гибридная архитектура — 3 уровня детализации
https://habr.com/ru/articles/988696/
#инди #индиигры #индиразработка #gamedev #игры #c# #c#net #игровой_движок #игровой_дизайн #игровой_фреймворк
-
Оптимизация рендера 2D-персонажей в MonoGame: Прагматичный подход слоёв и инстансинга
Теги: #monogame #gamedev #оптимизация #csharp #графика #индиразработка Введение: Проблема падающих FPS и желание красоты Каждый разработчик 2D-игр, мечтающий о живом, населённом мире, рано или поздно упирается в суровую реальность: рендеринг множества уникальных анимированных персонажей — это дорого. Хочется дать игроку кастомизацию, смену снаряжения, разнообразие врагов, но классический подход «нарисовать каждый спрайт отдельно» ведёт к сотням draw calls и падению производительности. В своей инди-игре (симуляторе жизни в мире фэнтези-жуков) я столкнулся с этой проблемой в полный рост. Мне нужны были десятки NPC на экране, каждый — с возможной сменой брони и оружия. Решением стала гибридная система рендеринга, основанная на разделении персонажей по уровням детализации и использовании инстансинга . В статье я разберу её архитектуру, код и полученные выгоды. Часть 1: Анализ проблемы — почему «в лоб» не работает Допустим, у персонажа 10 слоёв: тело, голова, ноги, броня, шлем, оружие в каждой руке и т.д. Если рендерить каждый слой отдельным вызовом SpriteBatch.Draw() , для 50 NPC мы получим 50 × 10 = 500 draw calls . При целевом значении в 60 FPS у нас есть всего ~16.6 мс на кадр. Если один draw call занимает ~0.1 мс, только на отрисовку персонажей уйдёт 50 мс — это в три раза больше бюджета! Ключевой инсайт: Не всем персонажам нужна одинаковая детализация. Фоновому горожанину или стае врагов не требуется динамическая смена снаряжения. А главному герою — требуется. Часть 2: Гибридная архитектура — 3 уровня детализации
https://habr.com/ru/articles/988696/
#инди #индиигры #индиразработка #gamedev #игры #c# #c#net #игровой_движок #игровой_дизайн #игровой_фреймворк