Книга «Изучаем C++ через программирование игр»

image
Если вы хотите научиться программировать первоклассные игры, вам просто необходимо изучить язык С++. Эта книга поможет вам освоить разработку игр с самых азов, независимо от того, есть ли у вас опыт программирования. Гораздо интересней учиться, когда обучение превращается в игру. Каждая глава книги описывает самостоятельный игровой проект. В заключительной главе вам предстоит написать сложную игру, которая объединяет все приемы программирования, рас-смотренные в предыдущих главах. Книга идеально подойдет для начинающего программиста, планирующего не только как следует освоить непростой язык С++, но и поупражняться в программировании игр. Цель данной книги — познакомить вас с языком С++ в контексте программирования игр. Хотя невозможно представить себе такую книгу, которая сделала бы вас мастером в двух столь объемных темах, как программирование игр и язык C++, это издание пригодится вам в качестве вводного курса.
Для кого эта книга
Эта книга для всех, кто желает научиться программированию игр. Она рассчитана на начинающих, для чтения не требуется никакого опыта программирования. Если вы хорошо умеете пользоваться собственным компьютером, можете начинать одиссею в мир програм-мирования игр прямо сейчас. Но сам факт, что эта книга рассчитана на начинающих, еще не означает, что освоить С++ для программирования игр будет проще простого. Придется внимательно читать, работать, экспериментировать. Дочитав эту книгу, вы приобретете солидные базовые знания по важнейшему языку для профессионального программирования игр.Как построена книга
Я начинаю рассказ о программировании игр на C++ с азов, предполагая, что читатель не имеет никакого опыта ни в программировании игр, ни в C++. В каждой новой главе рассматриваются все более сложные темы, каждая последующая глава основывается на материале из предыдущих.

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

Дочитав эту книгу, вы не просто освоите язык C++ и получите представление о программировании игр. Вы также научитесь организовывать свой труд, подразделять проблемы на небольшие удобоваримые подзадачи, оттачивать код. На страницах книги вам придется постоянно сталкиваться с испытаниями, но ни одно из них не будет непреодолимым. В целом вас ждет забавное и интересное обучение. По ходу дела вы напишете несколько классных компьютерных игр и постигнете ремесло игрового программирования.

Глава 1. Типы, переменные, стандартный ввод-вывод. Игра «Утраченный клад». Здесь вы познакомитесь с основами C++ — важнейшего языка программирования, который применяется в игровой индустрии. Вы научитесь отображать вывод в окне консоли, выполнять арифметические вычисления, работать с переменными и получать пользовательский ввод, набранный на клавиатуре.

Глава 2. Истина, ветвление и игровой цикл. Игра «Угадай число». Многие интересные игры основаны на программах, которые выполняют, пропускают или повторно выполняют определенные блоки кода в зависимости от тех или иных условий. Вы научитесь генерировать случайные числа, что позволит добавить в ваши игры элемент непредсказуемости. Кроме того, вы познакомитесь с фундаментальным феноменом, называемым «игровой цикл». Именно этот цикл позволяет организовать игру и выстроить в ней череду событий.

Глава 3. Циклы for, строки и массивы. Игра «Словомеска». Вы узнаете об игровых последовательностях и научитесь работать со строками. Строка — это последовательность символов, незаменимая при игре в слова. Кроме того, вы познакомитесь с программными объектами — сущностями, позволяющими представлять в вашей игре существ или предметы. Примеры сущностей — инопланетный космический корабль, горшочек с лечебным зельем или сам персонаж.

Глава 4. Библиотека стандартных шаблонов. Игра «Виселица». Здесь вы познакомитесь с мощной библиотекой — инструментарием для разработчиков игр (и не только игр). Эта библиотека позволяет объединять элементы в коллекции и хранить их в таком виде, например, как снаряжение в рюкзаке у персонажа. Кроме того, здесь будут рассмотрены приемы, позволяющие создавать более крупные игровые программы.

Глава 5. Функции. Игра «Безумные библиотекари». В этой главе вы научитесь разбивать игровые программы на компактные блоки, с которыми удобно работать. Для этого вы познакомитесь с функциями — элементарными логическими единицами, применяемыми в программах.

Глава 6. Ссылки. Игра «Крестики-нолики». Здесь мы поговорим о том, как одновременно использовать определенную информацию в разных частях вашей программы, причем делать это четко и эффективно. Кроме того, здесь вы познакомитесь с искусственным интеллектом и узнаете, как сделать компьютерного соперника немного изобретательнее.

Глава 7. Указатели. Игра «Крестики-нолики 2.0». В этой главе вы познакомитесь с некоторыми наиболее низкоуровневыми и мощными возможностями языка C++. В частности, мы поговорим о том, как обращаться непосредственно к компьютерной памяти и манипулировать ею.

Глава 8. Классы. Игра «Тамагочи». Здесь вы научитесь создавать собственные объекты и описывать, как они должны взаимодействовать друг с другом. Для этого применяется парадигма объектно-ориентированного программирования. Вы создадите собственного любимца-тамагочи, о котором будете заботиться.

Глава 9. Более сложные классы и работа с динамической памятью. Игровое лобби. В этой главе вы научитесь еще плотнее взаимодействовать с компьютером, в частности занимать и высвобождать память, если этого требует игровой процесс. Также вы узнаете о подводных камнях, связанных с таким динамическим использованием памяти, и научитесь их обходить.

Глава 10. Наследование и полиморфизм. Игра Blackjack. В этой главе мы поговорим о том, как создавать объекты с помощью других объектов. Затем обобщим весь изученный материал в большой заключительной игре. Вы увидите, как проектируется и реализуется довольно объемная игра, а именно виртуальный симулятор классической азартной карточной игры Blackjack (без потертого сукна на ломберном столе как-нибудь обойдемся).

Исходный код к книге
Весь исходный код к примерам из этой книги доступен в Интернете по адресу www.cengageptr.com/downloadsОб авторе
Майкл Доусон — автор, пишущий о компьютерных играх, а также преподаватель, обучающий студентов искусству и науке создания компьютерных игр. Майкл разрабатывал и читал курсы по программированию игр на факультете UCLA Extension в Калифорнийском университете Лос-Анджелеса (студенты этого факультета получают второе высшее образование). Также Майкл читал лекции в Академии цифровых и медиатехнологий (DMA) и в Кинематографической школе Лос-Анджелеса. Книги Доусона входят в обязательную программу многих университетов и колледжей в США.

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

В реальности Майкл известен как автор нескольких книг: Beginning C++ Through Game Programming, Python Programming for the Absolute Beginner, C++ Projects: Programming with Text-Based Games и Guide to Programming with Python. Доусон получил степень бакалавра кибернетики в университете Южной Калифорнии. Подробнее почитать об авторе и его книгах можно на персональном сайте автора, здесь же вы найдете ответы на многие вопросы по книгам Майкла.

Более подробно с книгой можно познакомиться на сайте издательства
Оглавление
Отрывок

Для Хаброжителей скидка 25% по купону — Изучаем C++

© Habrahabr.ru