ebook img

MonoGame Mastery. Создайте мультиплатформенную 2D-игру и многоразовый игровой движок PDF

324 Pages·2020·8.839 MB·Russian
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview MonoGame Mastery. Создайте мультиплатформенную 2D-игру и многоразовый игровой движок

Мастерство MonoGame Создайте мультиплатформенную 2D-игру и многоразовый игровой движок — Джарред Капеллман Луи Салин MonoGame Mastery Создайте мультиплатформенную 2D-игру и многоразовый игровой движок Джарред Капеллман Луи Салин Оглавление Об авторах...xi Предисловиеxvii Глава 1 Введение1 Для кого эта книг а?������������������������������������������������������������������������������������� 2 Чем эта книга не является�����������������������������������������������������������������������2 Предположения читателей����������������������������������������������������������������������3 Что такое моно игра������������������������������������������������������������������������������������ 4 MonoGame по сравнению с движками ���������������������������������������������� 6 Типы игр, наиболее подходящ ие для моноигры������������������������� 6 Вертикальны е шутеры �����������������������������������������������������������������������7 Горизонтальны е шутеры������������������������������������������������������������������� 8 Боковые ск роллеры����������������������������������������������������������������������������10 Ролевые игры����������������������������������������������������������������������������������������11 Голов оломка������������������������������������������������������������������������������������������12 Страте гия ������������������������������������������������������������������������������������������������13 Организация этой кн иги��������������������������������������������������������������������������14 Образцы ко да����������������������������������������������������������������������������������������������15 Резюме�������������������������������������������������������������������������������������������������������������16 v Table of ConTenTs Глава 2: Настройка среды разработки17 Конфигурация среды разработ ки������������������������������������������������������18 Независимос ть от платформы������������������������������������������������������18 Настройка среды разработки Window s�������������������������������������18 Настройка среды разработкиmacO S ����������������������������������������22 Настройка среды разработки Linu x��������������������������������������������27 Дополнитель ные инструменты����������������������������������������������������������28 Инс трументы�����������������������������������������������������������������������������������������29 Расширения Visua l Studio ���������������������������������������������������������������32 Резюме�������������������������������������������������������������������������������������������������������������34 Глава 3: Архитектура MonoGame 35 Архитектура MonoGame������������������������������������������������������������������������35 Конвейер ное приложение�����������������������������������������������������������������35 Класс игр ы�����������������������������������������������������������������������������������������������38 Ваши первые визуал изированные пиксели ���������������������������������40 Создание решения и прое кта����������������������������������������������������������40 Погружение в про ект���������������������������������������������������������������������������43 Погружение в Main Gamecs���������������������������������������������������������������45 Порядок вып олнения���������������������������������������������������������������������������49 Резюме�������������������������������������������������������������������������������������������������������������50 Глава 4: П ланирование вашего игрового движка51 Дизайн игровог о движка������������������������������������������������������������������������51 Ввод игр ока �������������������������������������������������������������������������������������������52 Искусственный инт еллект(ИИ) �����������������������������������������������������53 Триггеры с обытий��������������������������������������������������������������������������������53 Графический ре ндеринг��������������������������������������������������������������������53 Рендеринг зв ука������������������������������������������������������������������������������������54 vi Table of ConTenTs Физик а�������������������������������������������������������������������������������������������������������54 Управление со стоянием��������������������������������������������������������������������54 Реализация архитектуры движка�� ���������������������������������������������������...58 Создание проек та����������������������������������������������������������������������������������58 Создание классов со стояний����������������������������������������������������������59 Создание масштабатора и управле ния окнами����������������������62 Система со бытий����������������������������������������������������������������������������������71 Резюме�������������������������������������������������������������������������������������������������������������74 Глава 5 : Конвейер активов75 Конвейер активов MonoGame�������������������������������������������������������������������75 Класс ContentManag er������������������������������������������������������������������������������76 Инструмент конвейе ра MonoGame���������������������������������������������������78 Интеграция конвейера активов в движок���������������������������������������79 BaseGameState ���������������������������������������������������������������������������������������������79 MainGame �����������������������������������������������������������������������������������������������������81 Добавить спрайт игрока в игру�����������������������������������������������������������82 Обзор новых активо в�������������������������������������������������������������������������83 Добавление новых ресурсов к нашему контенту�������������������85 Изменения игро вого кода�����������������������������������������������������������������89 Запуск приложения������������������������������������������������������������������������������ 91 Резюме�������������������������������������������������������������������������������������������������������������93 Глава 6: Ввод95 Обсуждение различных механиз мов ввода����������������������������������96 Состояние к лавиатуры�����������������������������������������������������������������������96 Состояни е мыши��������������������������������������������������������������������������������100 Состояние г еймпада��������������������������������������������������������������������������101 vii Table of ConTenTs Прокрутка фона ����������������������������������������������������������������������������������������103 Создание универсального диспетчера ввода����������������������������111 Стрельба пу лями�������������������������������������������������������������������������������118 Резюме�����������������������������������������������������������������������������������������������������������123 Глава 7: Аудио125 Рефакторинг дви жка�������������������������������������������������������������������������������125 Организация к ода�������������������������������������������������������������������������������131 Зву к��������������������������������������������������������������������������������������������������������������133 Воспроизведение саундтрека������������������������������������������������������������135 Звуковые эффекты���������������������������������������������������������������������������140 Резюме�����������������������������������������������������������������������������������������������������������145 Глава 8: Частицы147 Анатомия частиц ы�����������������������������������������������������������������������������������149 Обучение с помощью онлайн-редактора частицы��������������������150 Различные формы излучате лей частиц����������������������������������152 Добавление системы частиц в нашу игру�������������������������������������153 Части ца���������������������������������������������������������������������������������������������������154 EmitterParticleState ������������������������������������������������������������������������������������159 IEmitterType �������������������������������������������������������������������������������������������������163 ConeEmitterType������������������������������������������������������������������������������������������164 Излуч атель��������������������������������������������������������������������������������������������166 Добавление следов от ракет и дым а в нашу игру��������������������172 Созданиеигровогосостояния De v дляигры���������������������������������172 Добавление игрового объекта «Ра кета» в игру������������������184 Резюме�����������������������������������������������������������������������������������������������������������189 viii Table of ConTenTs Глава 9: Обнаружение столкновений191 Техники ��������������������������������������������������������������������������������������������������������193 AABB (граничная рамка, выр овненная по оси)�������������������������195 OBB (ориентируемая ог раничивающая рамка)������������������������196 Сферы �����������������������������������������������������������������������������������������������������198 Равномерные сетки���������������������������������������������������������������������������199 Дерево квадрантов���������������������������������������������������������������������������200 Другие техни ки������������������������������������������������������������������������������������203 Добавлениевраговвна шуигру������������������������������������������������������������203 Вращение наше го вертолета��������������������������������������������������������206 Вращающие ся лопасти��������������������������������������������������������������������208 Заставляем вертолет ы двигаться����������������������������������������������209 Добавление инструмента в зрывных частиц�������������������������216 Добавление обнару жения столкновений�������������������������������������219 Ограничива ющие рамки������������������������������������������������������������������220 Обнаружение стол кновений AABB������������������������������������������������229 Резюме�����������������������������������������������������������������������������������������������������������234 Глава 1 0: Анимация и текст237 Немного рефа кторинга�������������������������������������������������������������������������238 Анимаци и����������������������������������������������������������������������������������������������������242 Листы спр айтов����������������������������������������������������������������������������������242 Атластекс тур�����������������������������������������������������������������������������������������244 Недостатки аним ации�����������������������������������������������������������������������245 Конечные а втоматы��������������������������������������������������������������������������246 Движок анима ции�������������������������������������������������������������������������������248 Анимация нашего ист ребителя����������������������������������������������������������255 ix Table of ConTenTs Тек ст��������������������������������������������������������������������������������������������������������������262 Шри фты��������������������������������������������������������������������������������������������������262 Добавление шрифтов в конв ейер контента���������������������������263 Шрифты как игров ые объекты�����������������������������������������������������264 Отслежива ние жизней����������������������������������������������������������������������266 Game Ov er����������������������������������������������������������������������������������������������267 Резюме�����������������������������������������������������������������������������������������������������������270 Глава 11 : Дизайн уровней271 Редакторы уровней��������������������������������������������������������������������������������272 Что такое ур овень?����������������������������������������������������������������������������273 События уровня���������������������������������������������������������������������������������275 Читателиуровнейисостояниеигрово гопроцесса�����...........277 Добавлени е турелей������������������������������������������������������������������������������286 Игровое искусст во и происхождение����������������������������������������287 Турельны е пули����������������������������������������������������������������������������������299 Обнаружение столкновений����������������������������������������������������������306 Уборка �������������������������������������������������������������������������������������������������311 Добавлен ие текста�����������������������������������������������������������������������������311 Обзор нашего дизайн а уровней��������������������������������������������������������312 Улучшение игровог о процесса�����������������������������������������������������������313 Резюме�����������������������������������������������������������������������������������������������������������315 x Об авторах ДжарредКапельманпрофессионально занимаетсяразработкойпрограммного обеспеченияболее 14 летиявляется директоромпопроектированиюв SparkCognition вОстине, штатТехас. Он началделатьтекстовыеигры QBasic, когда емубыло 9 лет. НескольколетспустяХел выучил C++, преждечемизучать OpenGL с конечнойцельювойтивигровуюиндустрию. Хотяегоцельпрофессионально разрабатыватьигрынеосуществилась, он продолжалглубокопогружатьсявтакие фреймворки, как MonoGame, Vulkan и DirectX, занимая важную часть своего свободного времени. Всвободноеотпрограммированиявремяонлюбитписатьмузыкуи работаетнаддокторскойдиссертациейвобластикибербезопасности, уделяяособоевниманиеприменениюмашинногообучениякугрозам безопасности. ЛуиСалинбылразработчикомболее15летв самыхразныхобластях,сначала разрабатываядляWindowsнаC, C++и,в конечномитоге, C#,азатемработал разработчикомвеб-приложенийнабазе Linuxсиспользованиемразличныхязыков сценариев,такихкакRubyиPython.Его ранняялюбовьккодированиювозниклаиз-за того,чтовдетствеонкопировалвидеоигры, написанныенаязыкеBasic,изкниг,взятыхв библиотеке.Своюпервуюигруоннаписалв старшейшколеипосещалмногиезанятияпо компьютернойграфике. xi Предисловие Созданиевидеоигримеетнеоспоримуюпривлекательностьв воображениимногихлюдейизразныхслоевобщества. Многиедетихотят статьгейм-дизайнерами, когдавырастут, имногиепрограммисты научилисьискусствунаписаниякода, думая, чтооднаждыонисоздадут своюсобственнуюигру. Созданиевидеоигры — этоодновременноивыразительнаяформа искусства, ирядлогическихзадач, которыенеобходиморешить. Программистигрдолженпроявлятьтворческийподход, материализуя содержаниесвоеговоображениянамониторекомпьютера, ивтожевремя ондолженпостояннопреодолеватьлюбыефизическиеограничения, наложенныенанегоприформированиисвоейигры. Длятехизнас, кто любитрешатьпроблемыиимеетсклонностькискусству, этополемечты, будьтохоббиилипрофессиональнаяработанаполныйрабочийдень. Никогданебылолучшеговременидляобычныхлюдей, чемсегодня, чтобыписатьвидеоигры! Втовремякаклюбителиповсемумиру создавалиигрыс 1970-хгодов, объемтребуемыхглубокихтехнических знанийуменьшился, авходнойбарьерупалнамногониже. Последниенескольколет. Игровыеинструментыиигровыедвижкитеперь избавляютотсложностей, связанныхсотрисовкойчего-либонаэкране, а компьютерысталинастолькомощными, чтопрограммистамбольшене нужнобытьстольточнымивтом, какониуправляютпамятьюи производительностьюигры. Крометого, публикациявидеоигрынаигровых консоляхикомпьютерахсегоднясталанамногоболеедоступнойдля любого, ктопроявитнастойчивость, чтобыдовестисвоюигрудоконца, что видноизогромногоколичестваинди-игр, представленныхнарынке. Разработчикипрограммногообеспечениясегодняимеютширокийвыбор технологийприсозданиисвоейигры. Однимизтакихвариантовявляется MonoGame, фреймворкдлясозданиямощныхкроссплатформенныхигр. В этой книге мы стремимся провести опытных программистов наC#в путешествие,объясняя основы разработки игр и создавая с нуля небольшую двумерную вертикальную видеоигру-шутер,используя MonoGameв качестве основы. xvii

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.