Разработка игр

Привет, Хабр!
Интересно знать, что нужно для разработки игр. Какие знания? Трудно ли это? С чего начать? Что подучить? Что почитать?
Спасибо.

P.S. Сердце лежит только к этой области IT.
  • Вопрос задан
  • 20245 просмотров
Пригласить эксперта
Ответы на вопрос 8
TheHorse
@TheHorse
Если 3D:
Высшая математика, кинематика, динамика, оптика, алгоритмика, с++, directX, OpenGL, ООП.

Ecли мини игры для сайтов и мобилок:
Арифметика, кинематика и какой-то фреймворк.
Ответ написан
Комментировать
damirazo
@damirazo
Software developer
Если для 3d игр, то могу порекомендовать движок Unity3D. Для создания простой игры не нужно особых знаний, писать можно на C# или вариациях с синтаксисом JavaScript и Python (Boo). Есть собственный редактор, позволяющий «рисовать» уровни и тут же их тестировать в игре. Также на сайте куча документации и примеры для разных типов игр. Есть возможность скомпилировать игру под Windows и Mac OS. Есть также платная версия редактора, имеющая чуть больше возможностей и компиляцию в iOS и Android.

Для 2d игр можно использовать XNA (его можно использовать и для написания 3d игр, но несколько сложнее). Это не готовый движок, а фреймворк, поэтому тут уже придется много работать с кодом. Также есть куча документации и примеров. Фреймворк имеет отличную производительность, я лично экспериментировал с миллионами взаимодействующими объектами в кадре без особого падения производительности. Хотя тут уже зависит от того, как вы сами оптимизируете свой код. Для написания используется C#, есть своя IDE в комлекте, основанная на Visual Studio. Могу порекомендовать также физический движок Farseer, имеющий отличную совместимость с XNA.

Из общего: нужны знания в математике, в особенности в геометрии. Много придется работать с физикой, особенно если решите написать свой физический движок. Хотя даже для простого движения персонажа это пригодится.
Ответ написан
Комментировать
sdevalex
@sdevalex
— Если не знаешь английский, то учи этот язык. На русском по разработке игры очень мало всего.
— Если не знаешь C++, то учи его (учить можно не полностью, тонкости в любом случае придут с практикой).
— Если немного знаешь C++ (свободно владеешь указателями и ссылками), то бери простой 3d движок (Irrlicht, Horde3D), читай форумы и уроки.

А вообще разработка игр — это всего 10 простых вещей и 997 очень сложных… Три простых вещи я перечислил выше.
Ответ написан
Комментировать
DedalX
@DedalX
Web разработчик, IT бизнесмен
На мой взгляд проще всего начать изучения разработки игр, с разработки простенькой Flash игры. ActionScript 3 и Flash несложны в изучении, в интернете много ресурсов и статей о разработке Flash игр на русском языке (найти статьи на русском по разработке игр для других платформ вы наврядли сможете, не говоря уже о книгах). На Flash можно научится понимать как и что в играх работает вообще. А потом уже переходить к чему то более серьезному и востребованному (например движку Cocos2d, интерпретации которого есть под многие платформы, как мобильные, так и нет).
Многие мои знакомые начинали именно с Flash, а потом пошли в iOS/Android разработку, хотя некоторые так и остались на Flash и используют его для разработки социальных игр (ВКонтакте, Одноклассники, Facebook).

Полезные ресурсы по flash игроделанию для начинающих:
xitri.com/
siliren.ru/
help.adobe.com/ru_RU/ActionScript/3.0_ProgrammingAS3/

Изучив Flash вы сможете делать кроссплатформенные AIR игры.
Естественно останавливаться на Flash не стоит.
Ответ написан
Комментировать
UseRifle
@UseRifle
Суть такова… Подучить — тут не прокатит. Нужно учиться года джва!
Ответ написан
Комментировать
— Какие знания?
Смотря для чего пишется и что пишется. То есть надо знать программирование, иметь неплохие художественные навыки, понимать механику игр.

— Трудно ли это?
Как бы сказать, что бы не соврать… Это жопа — никакой романтики, ни интереса, одна сплошная рутина. Многие думают, что геймдев — это круто, а в реальности 99% начинающих убивают пару месяцев сочинения сценариев, сбор команды, разработку, после чего понимают сложность и остаются с разбитыми мечтами.

— С чего начать?
С написания концепции. Напишите описание вашей игр с полным(!) описанием механики листов так на 10. Если не можете написать и пары листов, то геймдев не для Вас.

— Что подучить?
Выучить русский язык, научиться рисовать и какой нибудь язык программировать.

— Что почитать?
Если после всего вышеописанного Вы не передумали, то статьи на dtf.ru.
Ответ написан
Комментировать
bogolt
@bogolt
Еще можно создавать текстовые игры: всякие xmpp онлайн ролевые, или аналоги старых книг-игр.
Для создания подобной игры никаких особых знаний не нужно ( если конечно не считать сеть, но можно ведь на первых порах сделать все локально ).

Еще из простого — 2д игры, очень рекомендую попробовать pygame — обертку для 2д игр на питоне. Быстро, просто и удобно.
Выберете себе реальную цель — ходить и стрелять в 2д мире, карточную игру, или нечто арканоидо-подобное и попробуйте ее реализовать. По ходу дела возникнет куча вопросов, появится немного ответов и если хватит терпения то появится простая игра созданная вами.
Ответ написан
Комментировать
@ashcraft
Смотря в какой плоскости стоит вопрос. Если видишь себя в роли независимого разработчика, и хочешь заниматься всеми этапами продакшина, то основные усилия нужно сфокусировать на геймдизайне, дизайне уровней, дизайне интерфейсов (в широком смысле этого слова, взаимодействие игрока с игрой, управление, интуитивность, юзабилити), в графическом плане — на дизайне персонажей (эмоциональность, харизматичность и пр.). Иначе рискуешь получить в итоге вместо игры, просто набор из движка и графики, а если опыт небольшой, то вероятность этого очень велика. Хотя для некоторых жанров, игроку бывает достаточно и просто голого движка с сендбоксом, например, Minecraft.

С технологической точки, выше уже много всего написали, здесь больше дело вкуса, единственное нужно выбирать сразу с прицелом на мультиплатформенность, и архитектуру игры планировать соответственно, с этой же позиции, учитывая различия в аппаратных возможностях, различиях предоставляемых платформой АПИ, различия размеров экрана, и устройствах ввода — различных устройств.

Последовательность платформ для монетизации для инди-игры, с моей точки зрения, видится такой:

Изначально игра выпускается на флеше, многие почему-то недооценивают этот рынок (портальных флешек), хитовая портальная игра может заработать $30k-$100k на «праймари» лицензии топовому порталу, и это без учета дохода с MTX, рекламы и неэксклюзивных лицензий другим заинтересованным порталам. На этом этапе игра проходит обкатку на большой аудитории, собирается фидбек. И если игра хорошо себя показала, заработанные средства можно вкладывать в процесс портирования на мобильные платформы, параллельно — основываясь на фидбеке, устраняются шероховатости геймплея, улучшается количество и качество контента, адаптируется управление под тачскрин, увеличивается хронометраж игры и расширяется база уровней, новые уровни можно дополнительно монитезировать на флеше в качестве сиквела или левелпака. Релиз на мобильных платформах это новый виток спирали, и на этом этапе повторяются все предыдущие шаги в двойном размере. Следующий виток — электронная дистрибуция на больших платформах XLBA, PSN, Steam, Amazon. Следующий — монетизация бренда.

Это конечно идеалистическая картина, на самом деле более 80% флеш игр это — треш, который зарабатывает не больше 500 баксов, куча отрицательных внешних факторов, стагнация рынков, и прочее. Но описанный выше путь вполне реален, такой итерационный подход позволит минимизировать риски, правильно оценить свои силы и дальнейшие перспективы игры, и остановится на правильной стадии, оптимальном витке.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы