Pull to refresh

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

Reading time 3 min
Views 82K
Привет, Хабрахабр.

В этом посте мы хотим вам рассказать о хорошей книге Майкла Доусона «Beginning C++ Through Game Programming». Многие знакомы с творчеством Майкла по книге «Программируем на Python», которая многим пришлась по вкусу. Когда-то мы рассказывали о ней в нашем блоге. Мы еще не приняли окончательное решение по поводу издания книги, поэтому решили в очередной раз посоветоваться с вами. В качестве рецензии мы перевели мнение сайта www.gamedev.net. По содержанию книга по С++ напоминает Python, так как в ней выдержан такой же стиль — обучение через программирование игр.



Книга «Beginning C++ Through Game Programming» — значительно более глубокая работа, чем аналогичные книги по программированию игр на динамических языках, например, Python, ActionScript или Java — и это неудивительно. В книгах по программированию игр на динамических языках многие важные темы — например, управление памятью рассматриваются практически мельком. Они обсуждаются в заключительных главах на тему «оптимизации», причем авторы зачастую обсуждают лишь такие частности, как пореже вызывать сборщик мусора. Но язык C++ известен своим прикладным подходом к управлению памятью, и здесь такие темы, как расстановка указателей и ссылок и управление памятью как таковое выходят на передний план. Поэтому книга «Beginning C++ Through Game Programming» охватывает несколько иной круг тем, нежели другие книги о программировании игр, авторы которых рассказывают о динамических языках. Например, в 400-страничной книге по ActionScript вполне можно описать разработку 10 полноценных игр, а в книге по C++ на 400-й странице еще будут рассматриваться теоретические темы например, операторы перегрузки и глубокое копирование объектов. Все дело в том, что C++ один из самых фундаментальных и сложных языков программирования, которые широко используются сегодня. Для создания объекта недостаточно просто «объявить о его существовании» — хотя в большинстве динамических языков от вас больше ничего не требуется. А чтобы объект в C++ исчез, недостаточно просто «забыть о нем» на некоторое время.

Боюсь, что именно такие сложности отпугивают от C++ многих разработчиков. В книге «C++ Through Game Programming» вы не найдете сколь-либо сложных полнофункциональных игр. Здесь вы научитесь писать игры, управляемые через командную строку — в частности, «крестики-нолики» и «виселица». Но (и это важно!) такие игры будут выстроены в строгом соответствии с объектно-ориентированным проектированием. Может быть, такая строгость и является излишней в столь тривиальной игре как «виселица», но в тех играх, которые вы станете писать после прочтения этой книги, приобретенные знания и навыки будут весьма кстати.

Несомненно, игру «Виселица» можно написать на Python — она будет состоять примерно из 100 строк, а вся работа потребует у вас не более получаса. Однако многие приемы, которые вы усвоите при быстром написании такой игры, окажутся неприменимы в игре, код которой насчитывает 100 000 строк. Или миллион строк. Суть книги «Beginning C++ Through Game Programming» заключается не в том, чтобы научить вас программировать «Виселицу» в ста строках, чтобы после этого вы могли ощутить себя заправским разработчиком игр. В этой книге вы научитесь реализовывать надежные проекты, которые будут хорошо масштабироваться, оставаясь при этом удобными в поддержке. Приемы, которые вы усвоите в этой книге, пригодятся вам при работе и над более крупными проектами.

Книга «Beginning C++ Through Game Programming» будет полезна читателю, который хочет сделать первый шаг к разработке крупных проектов. Проблема в том, что этот первый шаг получится далеко не таким интересным, как в других подобных книгах. Проработав эту книгу, вы не сможете написать на С++ классную игру, а потом козырнуть ею перед друзьями. Но вы можете вынести из этой книги такие идеи, которые впоследствии пригодятся вам при реализации просто потрясающих проектов.

Основная проблема, которая возникла у меня с книгой «Beginning C++ Through Game Programming» такая же, как и с другими книгами подобного рода — операционные системы Mac и Linux рассматриваются в ней на уровне: «поверьте, в них весь этот код сработает, но мы не будем на этом останавливаться». Учитывая, что в книге целых пять страниц посвящено настройке Visual C++ Express и компиляции проекта, пять страниц – Xcode и пять страниц – IDE для Linux на ваш выбор, на это стоит обратить внимание. Если вы сможете прочитать эту книгу как кроссплатформенную то, пожалуй, именно так и стоит ее читать.
Only registered users can participate in poll. Log in, please.
Какое ваше мнение?
61.7% Отличная книга 385
1.6% Книга не нравится 10
21.79% Лучше прочитать классическое руководство по С++ 136
14.9% Я не читаю книги 93
624 users voted. 616 users abstained.
Tags:
Hubs:
+26
Comments 35
Comments Comments 35

Articles

Information

Website
piter.com
Registered
Founded
Employees
201–500 employees
Location
Россия