Программирование 2D-игр для Linux, OSX и Windows - C ++ / Python / OpenGL? - PullRequest
3 голосов
/ 31 июля 2011

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

Я читал, что C ++ является общим знаменателем в программировании игр, но связанные с этим вопросы в SO рекомендуют новым пользователям избегать более сложных языков, таких как C ++. Моя задача № 1 - создавать игры, переносимые между операционными системами Я буду использовать Linux для разработки и игрового тестирования игры, но мы хотели бы, чтобы она работала также на OSX и Windows. Мы не заинтересованы в разработке 3D-игр, так как у нас нет опыта работы с 3D-графикой. Я был бы очень доволен графикой, эквивалентной такой игре, как VVVVVV - очень простое 2D с минимальным (или нулевым) текстурированием.

Кроме того, необходимо ли использовать OpenGL для 2D-графики или в C ++ / Python есть несколько графических библиотек, способных создавать графику, достойную игры? Помните, под «достойной игрой» я имею в виду простую пиксельную графику, такую ​​как Minecraft или VVVVVV.

У нас есть несколько книг по Python, C ++ и OpenGL, и мы можем углубиться в них, если это правильный путь для начала. Что все рекомендуют?

Ответы [ 6 ]

5 голосов
/ 31 июля 2011

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

И, поскольку он основан на Python, он очень переносим. Конечно, есть много проблем, которые идут с такого рода проектом, но будьте терпеливы и придерживайтесь его, и вы можете многому научиться и весело провести время.

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

Прежде всего, читайте, практикуйтесь и наслаждайтесь тем, что вы делаете.

2 голосов
/ 31 июля 2011

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

Конечно, я не знаю, какой тип игр вы хотите создать, но для многих маленьких 2D-игр эффективности Python достаточно, так что вам не придется сталкиваться со сложностью C ++.

Библиотеки, которые я могу рекомендовать для Python, - это либо Pygame (как мы уже слышали), и (еще лучше, на мой взгляд) pyglet , который является более сложным инструментом для 2D-графики (в нем используется OpenGL на заднем плане).

Для 2D-игр, написанных на C ++, я настоятельно рекомендую ClanLib , игровой движок с открытым исходным кодом с большим и активным сообществом, гигантскую кодовую базу и множество примеров. Я поддерживаю программное обеспечение и рендеринг OpenGL, и его можно скомпилировать для Windows / Linux / MacOSX. Вы обязательно должны попробовать!

Удачи:)

1 голос
/ 31 июля 2011

я буду рекомендовать с ++. Многие говорят, что это сложно, правда, в некоторой степени, но вы можете сделать хорошую 2d-игру на c ++, не вдаваясь в «сложную» часть. И для этого вам понадобится библиотека типа SDL, SFML и т. Д. Если вы изучите C ++, то стоит потраченного времени, по крайней мере вы никогда не столкнетесь с проблемами производительности.

1 голос
/ 31 июля 2011

Я согласен с новоиспеченным кокосом, что-то вроде Pygame является подходящим решением в вашей ситуации.Но чтобы ответить на ваш второй вопрос, вы можете создавать 2D-игры на C ++ без использования OpenGL / DirectX.Я делал это в прошлом, используя библиотеки Windows для растровых изображений, RECTS и т. Д. Я предполагаю, что Linux будет иметь аналогичную функциональность.Хотя, если вы хотите, чтобы ваша игра была кроссплатформенной, вероятно, OpenGL - это то, что вам нужно.

0 голосов
/ 31 июля 2011

Для портативных игр C ++ для начинающих я бы выбрал SDL . Это дает доступ к OpenGL, проверьте учебные пособия ! Возможно, вы даже можете использовать его из python с вышеупомянутыми библиотеками привязки Python-to-C.

0 голосов
/ 31 июля 2011

Как тот, кто знаком с «Я новичок, я хочу сделать X, что я должен изучить?» вещь, сделав это совсем недавно, я бы сказал, придерживаться Python на данный момент. Как уже упоминали другие, есть несколько достойных библиотек, таких как PyGame, и C ++ немного сложен.

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

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