Вивчаємо C++ через програмування ігор

Привіт, Хабра.

У цьому пості ми хочемо вам розповісти про хорошій книзі Майкла Доусона «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 на ваш вибір, на це варто звернути увагу. Якщо ви зможете прочитати цю книгу як кроссплатформенную то, мабуть, саме так і варто її читати.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.