Pull to refresh

Разработка игр для Windows 8 с использованием MonoGame: поддержка сенсорных экранов

Reading time 4 min
Views 12K
Microsoft corporate blog Game development *
В предыдущей заметке было рассказано о основных моментах связанных с разработкой игр для Windows 8 и MonoGame. Несмотря на то что игра уже запускается, в ней не хватает важных функций которые необходимы при реализации приложения для Windows 8. Это поддержка прикосновений и обязательный экран privacy policy.
Читать дальше →
Total votes 24: ↑16 and ↓8 +8
Comments 2

Dxt сжатие в играх

Reading time 6 min
Views 26K
Game development *
Sandbox
В этой статье я хочу поделиться своим опытом разработки мобильной игры, поскольку я Windows Phone разработчик, я буду рассказывать про свой опыт применительно к этой системе.

Память и текстуры


Если Вы уже занимались разработкой мобильных игр, то основное зло не в нехватке ресурсов CPU/GPU, а в нехватке памяти. Именно о памяти нужно думать в мобильной разработке в первую очередь. В Windows Phone 7 ограничение было в 100мб, в Window Phone 8 стало получше, но не сильно:
Тип лимита Тип приложения Телефоны с маленьким количеством памяти 1- Гб телефоны 2-Гб телефоны
Default XNA или native 150 MB 150 MB 150 MB
Default XAML/.NET excluding XNA 150 MB 300 MB 300 MB
Higher All app types 180 MB 380 MB 570 MB

И если Вы разрабатываете игру, в которой довольно большое количество спрайтов (уложенных, конечно же, в атласы) — то вы рано или поздно задумаетесь о количестве этих самых атласов и сжатии текстур.
Стандартный атлас, с которым работают все более или менее уважающие себя устройства — это 2048х2048 пикселей. Что в несжатом виде (32 bits per pixel) будет занимать аж 2*2*4 = 16 Мб памяти. Тогда на выручку приходят форматы сжатия текстур, в нашем случае это DXT сжатие.
Сжатые текстуры не только требуют значительно меньше памяти видеокарты, но и вообще отображаются быстрее, чем несжатые текстуры, за счет снижения требований к пропускной способности. Но некоторые качества изображения могут быть потеряны из-за сжатия. Тем не менее, снижение объема памяти позволяет увеличить разрешение текстур, которые будут использоваться, что действительно может дать существенный выигрыш в качестве.
Читать дальше →
Total votes 19: ↑16 and ↓3 +13
Comments 16

Игра «LAND» для ДВК-3. Реинкарнация под Windows

Reading time 3 min
Views 25K
.NET *Game development *
Sandbox


В далеком 1988 году, будучи шестиклассником, я впервые познакомился с компьютером. Тем, кто не знает ─ это был ДВК-3М с интегрированным черно-белым дисплеем и двумя пятидюймовыми дисководами. Но сейчас не о нём. Мое первое знакомство состоялось с играми от ASP corp. ─ тройке ребят-программистов, которые специализовались на компьютерах семейства ДВК.

Какие-то предприимчивые люди установили в нашей школе пару ДВК-3М и закрепили тариф в 1 советский рубль за 1 игровой час. Мы экономили на обедах, а кое-кто клянчил деньги у родителей, чтобы поиграть после уроков в Звездный патруль, Тетрис, Зону, Cat, Garden, Sheriff и конечно же LAND! С тех пор я испытываю сентиментальные чувства ко всему связанному с теми играми и компьютерами, прямо как Джон Коннор к Терминатору первой модели.

Особенной популярностью пользовалась игра LAND. Это был такой себе вариант Lode Runner, но мы были в восторге! Прошло много лет, эти компьютеры безнадежно устарели и перестали встречаться в природе, но ностальгические чувства периодически давали о себе знать и появлялось желание вспомнить детство и поиграть.
Узнать о том, как я оживлял эту игру под Windows
Total votes 39: ↑37 and ↓2 +35
Comments 44

Разработка (футбольных) игр с помощью MonoGame

Reading time 14 min
Views 11K
Intel corporate blog Website development *Game development *
Разрабатывать игры хотят все, и это неудивительно: они популярны и хорошо продаются. Кто не мечтает прославиться и разбогатеть, сделав очередные Angry Birds или Halo? В реальности, однако, разработка игр – одна из самых сложных задач в программировании, ведь в игре нужно подобрать такое сочетание графики, звука и геймплея, чтобы она захватила пользователя.
Чтобы облегчить жизнь разработчикам игр, создаются разнообразные фреймоворки, не только для С и С++, но и для С# и даже JavaScript. Одним из таких фреймворков является Microsoft XNA, использующий технологию Microsoft DirectX и позволяющий создавать игры для Xbox 360, Windows, and Windows Phone. Microsoft XNA сейчас уже более не развивается, однако в то же время сообщество Open Source предложило другой вариант – MonoGame. Познакомимся с этим фреймворком поближе на примере простой футбольной (к чему бы это?) игры.
Читать дальше →
Total votes 33: ↑26 and ↓7 +19
Comments 1

Подборка курсов по разработке игр от Microsoft

Reading time 1 min
Views 35K
PayOnline corporate blog Game development *Development for Windows *


Разработка игр – одно из самых перспективных направлений в современном мире IT. Сегодня мы решили поделиться с вами подборкой самых востребованных, популярных и, что немаловажно, бесплатных курсов Microsoft, связанных с разработкой игр. Пять избранных курсов ждут вас под катом!
Читать дальше →
Total votes 25: ↑16 and ↓9 +7
Comments 12

Создаем мобильную игру на Monogame, решая типичные проблемы начинающего разработчика

Reading time 10 min
Views 31K
Game development *Development for Windows Phone *C# *
Sandbox
Целью данной статьи является систематизация материалов для создания простых игр на фреймворке Monogame. В статье будут рассмотрены решения типичных задач, с которыми приходится сталкиваться всем разработчикам при создании игр для мобильных платформ: независимость текстур от разрешения экрана, создание меню и смена игровых сцен (экранов), нюансы работы со звуком и шрифтами, сохранение рекордов. В статье приведены примеры кода, а так же даны ссылки на полезные и актуальные источники информации по Monogame и разработке под платформу Windows в целом, ну и конечно, моя история создания своих первых игр.
Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Comments 13

Собственные игровые движки: небольшое исследование

Reading time 12 min
Views 35K
Game development *Game design *Games and game consoles
Translation

Пару недель назад я играл в A Plague Tale студии Asobo Studio (и прошёл её). Меня очень захватила эта игра, благодаря не только красивой графике, но и сюжету с локациями. Я решил немного изучить технологии, использовавшиеся при её разработке, и был удивлён, обнаружив, что игра создавалась на собственном движке относительно небольшой студии. Я знаю, что некоторые компании используют собственные движки, но очень сложно найти подробное маркетинговое исследование с подобной информацией. Поэтому я написал эту статью.

Сегодня многие компании выбирают для разработки игр такие движки, как Unreal или Unity (или, по крайней мере, так думают многие люди), потому что для разработки собственного движка AAA-уровня требуется множество ресурсов. Поэтому я решил составить список некоторых из самых популярных самописных движков с указанием размеров студий и значимых игр, выпущенных на этих движках.

Большинство представленных здесь движков разрабатывалось на протяжении многих лет, множества итераций и для множества видеоигр, эти движки имели несколько версий или даже полностью (частично) переписывались с нуля с последующей сменой названия. Кроме того, важно заметить, что большинство этих движков для реализации определённой функциональности (совместимость с платформами, физика, сеть, растительность, UI, рендеринг, звук...) использует всевозможное промежуточное ПО.
Читать дальше →
Total votes 30: ↑30 and ↓0 +30
Comments 46

Как выбрать движок для создания игр на .NET (рассматриваем 7 кандидатов)

Reading time 5 min
Views 12K
Microsoft corporate blog .NET *Game development *C# *Game testing *
Разработка игр многопрофильна по сравнению с разработкой бизнес-приложений и сервисов. Играм необходимы навыки дизайна, охватывающие интерфейс, звук, игровой процесс и художественное оформление. Это также требует инженерных навыков для графики, игрового процесса, звука, облачных сервисов и разработки. Иногда вам нужно перейти на более низкий уровень и поэкспериментировать с реестрами оборудования в сборке, чтобы оптимизировать производительность для конкретного устройства.

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


Читать дальше →
Total votes 11: ↑9 and ↓2 +7
Comments 4

Игра с null: проверка MonoGame статическим анализатором PVS-Studio

Reading time 10 min
Views 2.1K
PVS-Studio corporate blog .NET *Game development *C# *

Анализатор PVS-Studio уже не раз был использован для анализа кода библиотек, фреймворков и движков для разработки игр. Пришло время добавить к их списку MonoGame – низкоуровневый gamedev-фреймворк, написанный на языке C#.

Читать далее
Total votes 5: ↑5 and ↓0 +5
Comments 1

Как написать игру на Monogame, не привлекая внимания санитаров. Часть 0, вступительная

Reading time 6 min
Views 6.8K
.NET *Game development *C# *
Sandbox

Данной статьей я открываю серию дневников разработки уже третьей реинкарнации моей будущей игры KARC. Первая версия дошла до минимально играбельного вида и выложена в открытый доступ. Однако, мне не понравилось, как я спроектировал структуру приложения. Поэтому, ошибочно полагая, что я понял, как правильно спроектировать архитектуру приложения, я сделал с нуля вторую версию. В ней мне удалось прогрузить сцену с машинкой игрока, которая реагирует на клавиатуру. Однако, развивать эту версию дальше я не посчитал целесообразным, потому что, увлекшись, накрутил слишком много всего и, самое главное, неправильно. В результате в коде стало очень трудно ориентироваться. Так бы и остался проект в заморозке на неопределенный срок, как и моя мечта делать игры, если бы я в очередной раз не решил попытаться понять архитектурные паттерны, в частности, MVP, и у меня это, внезапно не получилось бы. И так мне MVP понравился, что я понял, как хочу переписать архитектуру KARC. В этот раз я решил фиксировать все свои шаги на бумаге, а потом выложить в широкий доступ. Дело в том, что я делаю игру на фреймворке Monogame, но в сети я не нашел внятного руководства, как сделать на нем что-нибудь законченное. Есть много роликов и статей о том, как сделать какие-то отдельные элементы (например, какой метод подгружает спрайт, но не как лучше это осуществить, если их у вас много и под каждый игровой объект их несколько) или мелкие игры, которые тянут в лучшем случае на технодемку, но не создать какую-либо законченную игру целиком (кое-что на самом деле нашел, и ссылки в последующих статьях будут, но в целом мне не понравилось). Поэтому, возможно, описание моего пути кому-нибудь пригодится.

Читать далее
Total votes 8: ↑7 and ↓1 +6
Comments 13

Как написать игру на Monogame, не привлекая внимания санитаров. Часть 1, обмазываемся абстракциями

Reading time 16 min
Views 4.7K
.NET *Game development *C# *
Tutorial

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

Читать далее
Total votes 6: ↑5 and ↓1 +4
Comments 6

Как написать игру на Monogame, не привлекая внимания санитаров. Часть 2, натягиваем спрайты на глобус

Reading time 5 min
Views 2.7K
.NET *Game development *C# *
Tutorial

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

Читать далее
Total votes 7: ↑7 and ↓0 +7
Comments 6

Как написать игру на Monogame, не привлекая внимания санитаров. Часть 3, уменьшаем энтропию

Reading time 9 min
Views 1.6K
.NET *Game development *C# *
Tutorial

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

Читать далее
Rating 0
Comments 0

StbSharp: история ненужного проекта

Reading time 6 min
Views 6.2K
.NET *Game development *C *C# *Unity3D *
Sandbox

В этой статье я бы хотел рассказать о своем хобби проекте под названием StbSharp.

Итак, в 2016 году мне пришла в голову весьма банальная идея - сделать собственный игровой кросс-платформенный движок на C#. И я озаботился поиском кросс-платформенной же библиотеки для загрузки картинок. Внезапно выяснилось, что подходящей просто не существовало. Было множество платформо-зависимых решений(напр. System.Drawing). А так же имелась SixLabors.ImageSharp. Но она была в состоянии ранней альфы. Мне же хотелось работать с решением, проверенным временем. Так я пришёл к идее портировать stb_image.h (очень популярной в геймдеве single-header библиотеки для загрузки картинок) на C#.

"А разве не легче было написать биндинги для нативной библиотеки? Хоть для той же stb_image?",- задаст справедливый вопрос читатель. Да, легче. И правильнее. О чём, собственно, и говорит заголовок этой статьи. Конечно, использование биндингов доставляет некоторые неудобства в плане того, что необходимо доставить соответствующий нативный бинарник на устройство конечного пользователя. Однако эти неудобства с лихвой окупаются достоинствами. А именно лучшим перформансом и портируемостью.

Однако, проект показался мне столь интересным, что я проигнорировал эти справедливые возражения.

Читать далее
Total votes 37: ↑37 and ↓0 +37
Comments 23

Как написать игру на Monogame, не привлекая внимания санитаров. Часть 4, решаем основной вопрос философии

Reading time 15 min
Views 1.7K
.NET *Game development *C# *
Tutorial

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

Читать далее
Total votes 6: ↑6 and ↓0 +6
Comments 0