Pull to refresh

Comments 35

Спасибо, не встречал ничего подобного. Обязательно прочту, потом скажу свое мнение.
P.s Почему ссылка никуда не ведет?
Так поэтому же и советуются, переводить/издавать или нет :)
«Изучаем вождение через вождение вертолета»
Ну после «вертолета» сложно не сообразить, как машиной управлять.
рентген сломанной руки на обложке, должно быть, хорошо характеризует книгу
Не канонично. Должен быть рентген простреленной ноги.
Рекомендую блог Vittorio Romeo. Пишет игрушки на C++11/C++14 (OpenHexagon самая известная, пожалуй), выступал на cppcon2014. Лично меня вдохновляет.
Взял бы переведенное PDF издание, читать бумажные книги стало сложно :).
Хороший способ научиться писать на С++ — реализовать правила какой-нибудь компьютерной CCG. Уже через несколько дней поймете что ООП не работает :)
Что еще за CCG? Гугл выдает несколько определений даже в игровой тематике.
CCG — это карточная игра, по типу Magic The Gathering или Heartstone и других.
Ясно, спасибо. Это одно из определений, которые я нашел. Только неясно, почему тут не будет работать ООП. Вроде как нормально все ложится на эту парадигму.
Я думаю если очень много карт, свойств у этих карт и так далее, можно просто запутаться и ничего не выйдет.
Похоже, что ООП наоборот идеальная штука для таких игр. Множество карт и свойств выглядит как похожим на то, зачем ООП и делали;)
Немного я об этом говорил тут, но если углубиться, то ООП не работает ну вообще никак. Одна из причин — ООП напрочь не умеет учитывать влияние объекта А на объект В (парадигмы есть, но они очень слабы).

Но вы попробуйте! Я не могу сказать что это невозможно (все такие игры сделаны с помощью именно этой парадигмы), просто это неэффективно.
Добротный у вас канал на YouTube, пожалуй подпишусь.
Data-oriented design нас спасёт :)
Не велика беда сохранять не по значению, в противовес отказу от ООП.
Немного посмотрел. Мне кажется, вы просто неправильно моделируете на C++, пытаясь использовать подходы из C#, но языки очень различаются.

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

Все dynamic_cast в вашем случае вообще не нужны, потому что заменяются на Visitor, который тут прямо просится.

Но вообще в вашем случае, возможно, функциональный подход смотрелся бы органичнее. Так что попробуйте переписать на Haskell)
Как мне кажется книга никак не рассчитана на новичков, только голову заполнит непонятным мусором, который потом придется сортировать еще два года чтобы усвоить что ты прочитал. Если уж и хоть как то знаком с программированием то проще прочитать обзор синтаксиса. ИМХО я как новичок в программировании даже не стал бы ее брать уж лучше Шилдт и Страуструп.
Думаю, книга для тех, кто знаком с синтаксисом, но не сильно понимает как писать большие и постоянно работающие программы.
Не очень доверяю чуваку, который сделал в 90е одну игру и ушел в преподавание, больше с тех пор ничего не сделав. Если уж читать книжки из геймдева — то от настоящих про, например, все книжки от чуваков из Naughty Dog — очень годные.
После Вашего поста, за несколько лесных прогулок с ребенком, я прочитал эту книгу. Вначале показалось, что совершенно «мимо кассы», но к концу стало нравиться. Автору действительно удалось затронуть практически все важные темы С++ при написании консольных игр.
Как учебник программирования книга определенно понравилась. Перевести ее будет несложно, а людям она будет полезной.
P.S. Я читал третье издание, само собой.
Sign up to leave a comment.