Подтвердить что ты не робот

Я хочу изучить развитие игры. На каком языке я должен пользоваться?

Я слышал, что С++ и Python являются двумя из наиболее часто используемых языков.

Какой из них выбрать?

А в Python - версия 2 или 3?


Я рассматриваю базовую разработку игры (например, игру в гоночной машине) и НЕ flash/iphone/browser.

Также я не хочу переходить на С#.

С++ vs python - это то, что я рассматриваю...


также было бы полезно, если бы вы могли сообщить мне некоторые онлайн-ресурсы, чтобы начать с.

4b9b3361

Ответ 1

Зависит от типа игры. Для "больших" игр, конечно, C и С++, как то, что написано в больших машинах и промежуточном программном обеспечении (например, Gamebryo, Unreal, id tech, FMOD Sound System, инструменты RAD Game и т.д.).

Python используется в некоторых играх как язык сценариев (для логики игры, миссий, иногда AI), но есть также LUA и, возможно, многие другие, но здесь используется python.

Для "случайных" игр вы также можете рассмотреть Flash/ActionScript (браузерные игры - это игры, а также большой рынок) или С#/XNA (хотя это действительно не снималось).

Если вы хотите разрабатывать игры для iPhone, Objective-C - ваш лучший выбор, поскольку альтернативы (Flash и MonoTouch) еще предстоит доказать.

Что вы на самом деле хотите сделать в разработке игр? Вы хотите работать с графическим движком? Или звук? AI? Игровая логика?

Ответ 2

Все зависит от ваших целей. Как новичок, выбирайте то, что вы считаете самым простым и начинаете учиться. Вам нужно научиться программировать, прежде чем беспокоиться о том, какой язык использовать для чего.

Когда вы достаточно зрелы, чтобы перечислять pro и con каждого по своему усмотрению, вы достаточно зрелы, чтобы задавать этот вопрос (и, несмотря на то, что это звучит, это не круговая логика).

Ответ 3

Желание "Изучать развитие игры" очень, очень расплывчато.

Если вы хотите разработать свои собственные, небольшие игры, для удовольствия, изучая, как структурировать приложение, перейдите с помощью python.

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

Я думаю, что ответ во многом зависит от вашего нынешнего набора навыков и целей. Обратите внимание, что я, конечно, не специалист в этой области.

Ответ 4

Это зависит от того, какие игры. Я не думаю, что есть много 3D-графических игр, запрограммированных исключительно на Python. С++ используется для 3D-графики, так как это очень быстро при численных вычислениях. Python не может конкурировать с ним. Если вы хотите сделать трехмерную графическую гоночную игру, такую ​​как Mario Kart, вам нужно изучить С++, а не Python.

Однако, как говорит Сан-Хасинто, на данном этапе вопрос немного спорный.

Ответ 5

если вы хотите, чтобы вас наняли в отрасли, получите хорошее на С++. Действительно хорошо. Как, благочестивый.

если вы хотите, чтобы все было сделано и отправляли небольшую игру с небольшой командой (например, только вы), используйте python, С++ - это преждевременная оптимизация.

Python2 имеет лучшую библиотечную поддержку для игры - PyGame настроит ваше окно и даст вам 2D-операции, PyOpenGL, чтобы сделать fancier, Panda3D и т.д.

Ответ 6

Учитывая, что вы хотите изучить разработку игр и не испытываете большого опыта с ним, я бы рекомендовал начать с Python 2 и использовать последнюю версию, поддерживаемую PyGame.

http://www.pygame.org/

Существует множество игр, написанных на Python с PyGame, которые доступны в качестве исходного кода для загрузки и изучения. Если вы когда-нибудь получаете задания по программированию, вероятность того, что игровой движок, который они используют, не будет тем, что вы использовали раньше, поэтому вам нужно будет перевести свой опыт в свой движок и API. Поэтому Python никоим образом не будет мешать вам. Фактически, поскольку он освобождает вас от множества подробных подробностей, вы можете сосредоточиться на обучении разработке игр, а не на указателях и структурах, синтаксисе и компиляции ошибок и т.д.

Позже вы можете перейти на C, когда у вас уже есть концепции программирования игр. Или вы можете обнаружить, что предпочитаете копаться во внутренности игрового движка и настраивать драйверы и т.д. В этом случае придерживайтесь PyGame и работайте над улучшениями и улучшениями.

Я бы дал разные советы опытному программисту, который хотел сделать карьерный переход в игровое программирование.

Ответ 7

На каком языке вы лучше всего знаете? Если ваша цель - изучить развитие игры, не делайте этот процесс намного сложнее, также пытаясь изучить С++.

Ответ 8

Если производительность критически важна, используйте С++.

Многие игры записывают основной движок в С++, а затем привязывают к python для менее критического кода производительности (логика игры, миссии, AI). Хорошим примером этого является Civilization 4. Это также делает игру расширяемой.

Я бы лично рекомендовал С#/XNA для нового разработчика и использовал фреймворк, такой как Ogre.

Ответ 9

Я бы начал с С++, который является языком выбора для большинства игр, созданных сегодня. Существует ряд игр, которые разрабатываются на DirectX с использованием С# в управляемой среде, используя рамочную работу XNA. Проверьте этот сайт. Центр разработчиков XNA

Ответ 10

С++ - это язык, используемый для написания игры, по крайней мере для графически-сложных сложных игр, таких как World of Warcraft. Языки, подобные Python, часто используются для поведения скриптов в игре.

С другой стороны, основной категорией игр является категория "случайных" игр, в которую входят более простые игры, такие как игры в судоку или простые игры для решения головоломок. Они могут быть написаны на языке очень высокого уровня, таком как Python.

Более вероятно, чем Python, однако, легкие игры обычно записываются во Flash, используя язык сценариев во Flash (ActionScript). Оказывается, это на самом деле вкус Javascript. Javascript, в свою очередь, очень похож на Python.

Итак, мое предложение состоит в том, что вы изучаете Python, а затем изучаете Javascript. Затем напишите несколько простых игр по вашему выбору PyGame, Flash или даже в браузере Javascript. Затем, если вы все еще хотите изучить С++, продолжайте и узнайте об этом, но продолжайте играть с игровым дизайном в свободное время, пишите казуальные игры.

Ответ 11

Я думаю, что ваш лучший подход - начать с языка, с которым вы знакомы. Изучение разработки игр требует, чтобы вы были в курсе своих инструментов и сосредоточились на конкретных проблемах, которые возникают с полем, а не на языке.

Начните с основ: как вы управляете игровым циклом, как вы загружаете внешние ресурсы, как вы сохраняете и восстанавливаете состояние, как вам управлять своим искусственным интеллектом и какие алгоритмы пути более эффективны для ваших нужд? По мере того, как вы начинаете учиться, вы увидите архитектурные и функциональные шаблоны.

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

В общем, я бы сказал, что вам нужно что-то легкое, с которым вам удобно, например Python (есть замечательные библиотеки и фреймворки). Изучите основные основы там, и с тех пор вы можете изучить другие варианты, такие как С++ (серьезно используемые в отрасли) и их существующие структуры. На данный момент я придерживаюсь немобильной, не-флеш-разработки, поскольку разработка в этих средах создает дополнительные проблемы и ограничения, которые довольно специфичны.

Ответ 12

Я имею в виду, что вы хотите знать много языков и как одна и та же "программа" выглядит на разных языках. Затем вы можете принимать более правильные решения о том, какие части программы должны быть на каких языках. Вы можете использовать любой язык для написания игры. Сами понятия, связанные с организацией данных для выполнения, важнее, чем язык, и использование разных языков помогает вам устроиться с этими концепциями. Затем вы можете "забрать" и быстро почувствовать себя на новых языках, не переосмысливая их.

Поэтому я думаю, что не больно пытаться учиться и практиковать сразу несколько языков, даже как новичок. С++, безусловно, широко используется в программировании игр в промышленности (где он выжил больше, чем во многих других областях программирования). OpenGL обычно сочетается с программным обеспечением высокой производительности 3D. Python имеет библиотеки для написания игр, считается "легким" синтаксически (лично я согласен). Вы можете пропустить С++ на данный момент и сосредоточиться на C и python и вернуться на С++ после изучения Object-oriented.

Вы хотите изучить концепции, стоящие за тем, что делает ваш код, и эффективность компромиссов. Чтобы написать более сложные игры, вам просто нужно больше знаний - зная, какие структуры данных наиболее эффективны для требований. Как структурировать ваши программы, чтобы они не разваливались в голове, если вы хотите исправить ошибку или добавить функцию. Имея немного рудиментарных знаний о программировании и Python, вы можете написать довольно хорошую игру без графики для практики. И есть PyGame и другие библиотеки для графики, звука и т.д.

Ответ 13

Это зависит от вашей цели.

Например, если вы когда-либо хотите разрабатывать игры для Xbox 360, вам нужны С# и XNA Game Studio.

XNA Game Studio - это набор проектов и библиотек С#, предназначенных для использования с Visual Studio (любая версия, включая Express) для создания как Xbox 360 и Windows/DirectX.

Ответ 14

Самый простой и быстрый способ изучения игрового программирования - это Python/PyGame.

Python - это кросс-платформа, скомпилированный байт-код, простой в освоении язык программирования с действительно чистым синтаксисом, который максимизирует читаемость. Для этого есть тонна библиотек и документации.

PyGame - это платформа разработки 2D-игр, написанная на питоне, которая действительно проста в изучении, с большим количеством учебников и документации, написанных для каждого. Каждый год контекст PyGame проводится там, где люди над словом представляют свои игры PyGame. Python - это интерпретируемый язык (но вы также можете упаковать его в автономный исполняемый файл), поэтому, когда вы загружаете игру в игру, вы также можете увидеть ее исходный код и изменить его.

Ответ 15

Если вы ищете 2-го гоночную игру, я бы предложил использовать AS3 (Flash) с Box2d. -уровень для начала -большая аудитория

удачи вам, какой язык вы выберете!

Ответ 16

Если вы делаете игру Indie (т.е. 2d, в команде менее десяти человек, с низким бюджетом), то pygame - ваш лучший выбор.

Существует много библиотек в http://pygame.org, которые делают разработку быстрой. Там в игре GUI, сети, пути... На данный момент Python 2 лучше. Вам еще не понадобится материал P3000.

Lua также является очень популярным выбором, но в основном для больших профессиональных игр. Они часто выбирают Lua из-за своей не может не подвести философию. Вы можете передавать более или менее аргументы, чем функция, и она не будет жаловаться. Практически все может сработать, и оно будет работать в среднем.
Кроме того, он имеет очень мощные (вид) потоков. Там нет условий гонки. Когда-либо. И там Лямбдас. И это чрезвычайно модно. Это в основном Lisp с меньшими скобками. Разумеется, программисты Lua очень, очень осторожны.

В любом случае, независимо от того, что вы слышите, знайте это:
Игры написаны на script языках.
Двигатели написаны в С++.

Если вы хотите освоить разработку игр, вы, вероятно, захотите написать игры. Кроме того, для python и Lua существует довольно простой способ написать script, а затем отправить файл .exe. Искать в другом месте для "Встраивание% s" % language_name, но в основном это просто

#include
...
python_run_file ( "main.py" );

Ответ 17

С++, так как это широко используется для игрового программирования, и вы получите много образцов для игр С++, на которые нужно смотреть. Как сказал другой ответ, программ для python не так много.

Ответ 18

Концепция игры важнее, чем язык, который вы выбрали. Используйте тот язык, с которым вам больше всего нравится. Все, кроме самых сложных 3D-графических игр, будут отлично работать с даже интерпретируемыми языками.

Мой совет - свести к минимуму количество неизвестных. Я предполагаю, что вы новичок в программировании игр, и утверждаете, что вы новичок в python. Мое личное предубеждение - это подход к новому домену (играм) со знакомым языком (С++) или к известному домену с новым языком. Подход к новому домену с новым языком - непростая задача.

Ответ 19

Я думаю, что одним из самых быстрых и полезных игр для разработки игр является ActionScript 3.0 с использованием Flex SDK. Возможность создавать игру и выпускать ее в Интернете для огромной аудитории - это очень полезный опыт.

Справочный материал ActionScript можно найти здесь и Emanuele Feronato имеет отличный блог для начинающих разработчиков игр.

Ответ 20

Большинство современных игр не построены с нуля, но используют некоторые уже существующие игровые/графические движки.

Флеш игры довольно популярны. Хотя большинство игр, написанных во Flash, имеют тенденцию быть простыми, язык ориентирован на графику, и вы действительно будете учиться на более высоком уровне.

С++ действительно широко используется, но маловероятно, что создание игрового движка с нуля - жизнеспособная идея.

Посмотрите на www.GarageGames.com за хорошее место, чтобы найти готовый игровой движок и сообщество разработчиков, пишущих игры.

Ответ 21

Возможно, вам стоит подумать о том, чтобы начать с казуальных игр. Это зависит, конечно, от ваших желаний, но случайные игры немного более доступны как для разработчиков, так и для пользователей. Инструменты также легче освоить: Flash/Flex и Silverlight являются очень доступными и очень интересными в использовании.

Ответ 22

Игровое программирование на С++ не отличается от Python. Вы уже знаете С++, так что ответ: Изучите Python. Зачем? Потому что это кровавый классный язык.

Вы также узнаете много игрового программирования, выполнив его на Python, даже если вам нужно переключиться на С++ для создания трехмерных движков в тяжелом весе.

Итак, ответ действительно... ОБА!: -)

Ответ 23

Go with С++, это основной язык в отрасли; и вы узнаете все бит и бобы разработки игр. Использование С++ также дает вам еще одно преимущество, вы можете реализовать язык сценариев, такой как LUA или Python, например Game Logic!

Ответ 24

Я бы сказал, что это зависит от вашего опыта программирования, если вы использовали C как синтаксис и думали таким образом, например, фигурные скобки, точки с запятой, сильная печать, отправляйтесь на С++, быстро и на свой язык.

Однако, если вам удобно с языками программирования в целом, то python не является плохой альтернативой, и я бы настоятельно рекомендовал 3d-движок panda3d (я считаю, что это больше 3D-движок, а не игровой движок в том смысле, что вы все равно придется строить специфическую логику игры), он использует python, и я думаю, что самая новая версия python 2.6.xx - ваш лучший выбор. Что касается производительности, если вы не используете более старую машину, интерпретируемые языки, такие как python, могут работать почти так же быстро, как скомпилированные языки, такие как c/С++.

Ответ 25

Я думаю, что С++ - лучший выбор, я сделал несколько небольших игр, используя бесплатные движки, такие как Ogre или Irrlicht, особенно Irrlicht, потому что он очень прост в освоении.

Также для 2D игр вы можете использовать HGE.

Но если вы хотите, чтобы Pyton попробовал Blender 3D-моделирование инструмента анимации, в котором Blender вы сможете создавать классные игры, и у вас есть все, что вам нужно, чтобы сделать игру в одном и том же соте, Blender использует Python для программирования, но вы можете создавать игры, не зная программирования, просто используя логические блоки.

Ответ 26

Я думаю, что если вы хотите 3D-графические игры, то С++ с DirectX - лучший

Ответ 27

Целевая платформа? Для Flash или не для Flash (векторная графика)? Растровое или растровое изображение?

На основе некоторых из этих вопросов вы можете получить меньший диапазон возможностей.

Например, целевая платформа XBox 360: код: С++ команда, необходимая для публикации: да (если вы работаете в игре, это проще:)

То же самое справедливо для платформ Playstation или более старого XBox и т.д. Практически любые консольные игры, которые вам понадобятся, нуждаются в наборе dev, и это происходит только в том случае, если у вас есть сделка с производителем или издателем.

Итак, пока не пропустите консоль.

Это оставляет несколько вариантов, которые по большей части основаны на онлайн или на iPhone. Но вы уже сказали, что не хотите делать Flash, iPhone или браузерные игры.

Итак, следующий Mac или ПК. Если вы хотите попасть на консоль, то в конце концов игры на основе Widows - отличный способ. Вы можете узнать графические библиотеки, DX, а затем позже использовать что-то подобное на XBox 360, например. Или, если вы хотите перейти на кросс-платформенный взгляд на Open GL... и если вы решите окунуться в платформу с загрузкой "2 миллиарда", вы сможете продавать свою игру по всему миру прямо сейчас и только стоить 99 долларов, чтобы получить доступ как разработчик, хорошо Open GLES прямо там как подмножество Open GL.

В Windows и Mac и даже iPhone случаях С++ будет работать. C определенно будет.

//:)

Ответ 28

Я не уверен, что такое ваш предыдущий опыт программирования. Если вы хотите быстро подняться, я бы рекомендовал Python. Другие рекомендовали PyGame, который является стандартом дефакто для Python. Существуют и другие альтернативы (например, модифицированная версия движка Verge под названием Ika, которая находится под медленным развитием, http://ika.sourceforge.net/news.php), но PyGame очень прочен.

Поскольку вы спросили о начале работы ресурса, я бы рекомендовал Invent с Python (http://inventwithpython.com/chapters/). Он использует Python 3 и PyGame и начинает реальную базовую. В следующем месяце или около того вы сможете купить книгу, если захотите (автор упомянул мне, что издатель взял более раннюю версию книги и сделал очень плохую бумажную версию - так что если вы увидите, что на Amazon, избегайте этого!).

Ответ 29

Вы начинаете программировать сейчас? Почему вы не хотите изучать С#?

Если вы новичок, я бы предложил не начинать с C/С++. Я думаю, вам следует научиться использовать UNITY3D, игровой движок, который сегодня очень популярен. Многие люди, от инди-разработчиков до крупных компаний, используют Unity, чтобы делать всевозможные игры (кстати, автогонки - это один из уроков.

Этот движок прост в освоении, вы можете использовать его с UnityScript (пользовательский язык с синтаксисом с поддержкой JavaScript), С# или Boo (который имеет синтаксис, основанный на Python). Я настоятельно рекомендую С#, он более мощный, и вы узнаете язык, который вы можете использовать с XNA позже.