facepalm.jpg. Если программирование - какой раздел программирования. Если математика - какой раздел математики. Физика, графика, дизайн, музыка, написание сценариев, текстов, игровая экономика, продюссирование/управление проектами итп, тысячи их.
да.вопрос таки интересен и для меня. посоветуйте что-нибудь(если такое есть) по подходам к программированию игр, что-нибудь теоретическое по написанию движков простых игр(2d сперва),алгоритмам нахождения кратчайшего пути, по реализации карт (для изометрических игр). желательно с примерами на C и sdl.
в игрушке в первую очередь должно быть во что играть. А уж как это нарисовать - вопрос вторичный. Кодинг графики в общем процессе занимает не такое уж большое время.
по сабжу советую посмотреть ролики с http://www.gdconf.com/, и возможно зарегаться там (а вот это уже за деньги.). Из отечественных ресурсов есть, например, dev.dtf.ru и gamedev.ru.
«Ernest Adams - Fundamentals of Game Design». Книжка довольно занудная, но самая полная из встреченных.
«Марк Зальцман - Компьютерные игры. Как это делается». Сборник советов от всяких гуру геймдева. Советы зачастую тривиальные, но попадаются и довольно умные.
По программированию - любая литература (и по математике). Разве что дискретная математика (графы, конечные автоматы) и всякие три-дэ с алгеброй и геометрией.
Вообще, зайди на gamedev.ru / gamedev.net, там должны быть подборки книг и материалов для начинающих.
Человека не может полностью охарактеризовать его возраст!
полностью человека ничто не может охарактеризовать. Но то что ты начал увиливать от прямого ответа на тривиальный вопрос, вместо того чтобы ответить — это уже внесло свою лепту в твою характеристику.
Цель - срубить бабла или научиться писать движки?
Если срубить бабла, то какая платформа? Вот тут есть список кроссплатформенных 2D iOS/Android движков: http://stackoverflow.com/questions/12234457/2d-cross-platform-game-engine-for... (глянь Cocos2d-x вначале). По поводу unity3d.com, в интернетах валяется варезная версия (можно вначале юзать варез, а лицензию купить непосредственно перед релизом) - с одной стороны для 2D оно излишне, с другой - конпеляется под кучу платформ включая флеш, т.е. в перспективе можно срубить больше бабла.
Совет: Судя по вашим «стараниям» в доказательстве, вам точно надо начать с чего попроще, не беритесь сразу за сложное. И анонимус правильно вам напомнил про школьную программу.
а где я сказал, что я «взрослый и умный»? Такими громкими словами обычно себя как раз школьники и называют в интернете, при этом стесняясь назвать свой реальный возраст(при этом ведь можно даже и соврать, завысить, но ломает, потому что правда может всплыть во время дальнейшего обсуждения).
Если нужна процедурная графика (всякие эффекты типа фейерверков, капелек воды итп) - то все печально, надо гуглить туториалы и маны по шейдерам (легко), и инфу по ручной отрисовке эффектов (сложно). Посоветовать ничего не могу, не шарю.
Если «физика» - выбираешь набор поддерживаемых законов (например, проверка коллизий, гравитация, итп), лезешь в википедию и учебники, где есть соответствующие формулы, и реализуешь их кодом. Хорошо знать основы алгебры, аналитической геометрии и физики, на уровне 1-2 курса вуза (можно почитать соответствующие вузовские учебники).
Ну и инфраструктура, типа «я хочу сделать своему движку крутую IDE» - бери Eclipse или Jetbrains MPS, маны к ним, и наворачиваешь. К MPS документации меньше, но само оно намного удобней Эклипсы.
Т.е. по сути, все зависит от набора фич, которые ты хочешь иметь. Берешь фичу, вначале гуглишь по этой теме все что можно (чтобы понимать терминологию итп), пробуешь реализовать. Когда ничего не получится - уже с конкретными вопросами приходишь на лор, геймдев.ру, итп.
Сперва код, потом книги для закрепления. Вот отсюда начать, документация там же на вики, примеры в папке /samples/cpp/ в стандартном архиве.
А уж потом можно поискать книги конкретно по тем темам, где наметились сложности либо какой-то прогресс. Это могут быть книги по паттернам, по 3D графике и OpenGL, книги с упражнениями по созданию простых игрушек — что угодно, но с нуля книги ничем не помогут.
по написанию движков простых игр(2d сперва),алгоритмам нахождения кратчайшего пути, по реализации карт (для изометрических игр). желательно с примерами на C и sdl.
Cocos2d-x — и тайловые карты (т.е. те самые, что используются в изометрических играх), и достаточно много примеров. О C забудьте, можно использовать C для системного софта — но для геймдева он ужасен.
Что это такое? нет, ну правда?
Сначала учишь язык, для этого нужны книги по ЯП.
Потом, параллельно учишь геометрию и физику по олдскульным советским учебникам для ВТУЗ'ов
Потом учишь возможности соотв. графической библиотеки.
Потом разрабатываешь проект и реализуешь
Ну и не забудь книги по графике и маркетингу для продвижения проекта.
Но пока, закончи школу.
Бесполезно сишника убеждать в том, что C плох в rapid development. Тем более на сайте, посвящённом linux.
Просто вы дальше инициализации и переписывания куцых примеров не сдвинетесь с C. А в C++ архитектурные сложности будут решены как будто сами собой благодаря классам, std::function и лямбдам, умным указателям, RAII, встроенным батарейкам вроде std::string.
В C++ за памятью следить не надо, во всяком случае не дальше отслеживания циклических ссылок и сохранения ссылок при долговременных операциях. Этого уже достаточно, чтобы отказаться от C.