это пост, в котором подробно описан мой поиск наиболее приятного способа, которым программист-любитель может посвятить свое свободное время созданию игры.
Мои требования: я сначала посмотрел на Flash, сделал несколько небольших игр, но я сомневаюсь в производительности. Я хотел бы сделать довольно большую стратегическую игру, в которой одновременно будут сражаться несколько сотен юнитов, включая взрывы и анимацию. Также масштабируемые карты. Я видел, что у Adobe есть новый 3D API для Flash, но я не знаю, улучшит ли это и производительность 2D, я не смог найти что-либо связанное с этим вопросом на их сеансах MAX10. Вы бы сказали, что Flash - это хорошая технология для создания больших 2D-игр? Мне очень нравится Actionscript, и мне нравится, как все просто во Flash. Есть несколько доступных двигателей, которые делают это еще проще.
Я просто делаю это для удовольствия, и было бы еще лучше, если бы были доступны надлежащие редакторы анимации / частиц, и если бы механизм, который я использовал, был бы доступен для нескольких платформ. (чтобы больше людей могли поиграть в мою игру после завершения). Я бы хотел, чтобы он был доступен на многих мобильных платформах. (потому что я люблю сенсорный ввод по некоторым причинам)
Я очень хорошо знаю фреймворк XNA, но для него нет хороших движков, и он будет работать только на Windows, что является огромным отключением. Еще более важно то, что вам нужно устанавливать распространяемый XNA каждый раз, когда вы хотите передать кому-то игру. Если бы я использовал XNA, мне бы пришлось самому создавать все инструменты, и, вероятно, мне пришлось бы делать их с помощью WPF. (Я бы хотел создавать инструменты с помощью Adobe AIR, но, к сожалению, API-интерфейсы для работы с изображениями и т. Д. Во Flash намного хуже, чем в XNA / WPF.) Теперь я знаю, что могу сделать свой собственный движок, который поддерживает каждую из этих платформ, но, откровенно говоря, это будет слишком много работы по API. В конце концов, я хочу сделать игру, а не движок.
Таким образом, возникает вопрос: есть ли кроссплатформенный (бесплатный или бесплатный для разработки) движок, который я мог бы использовать для 2D-разработки? Я предпочитаю: C #, Actionscript. Я не против использования c ++, если набор инструментов выше среднего, но я очень сомневаюсь, что есть что-то подобное. Пожалуйста, докажите, что я не прав :) Итак, резюме: я бы хотел использовать Flash, но я не знаю, достаточно ли хорошо он масштабируется. Я не сценарист, мне нужны реальные API, с которыми я мог бы работать в правильной IDE.
Просто для информации, я посмотрел несколько альтернатив, я на самом деле уже давно ищу. Вы бы очень помогли мне принять решение, наконец.
По характеристикам двигатель Flatredball был бы идеальным. Но я попробовал их инструменты, и, честно говоря, они ужасны. Абсолютно непригодный, я бы наверняка сделал свой. Я не смотрел на их API, но если их инструменты настолько плохи, я не склонен смотреть дальше.
Unity3D. Это довольно хорошо, но мне действительно не нужно 3D , и это довольно ... много работы, чтобы учиться. Мне также не нравится, что это так дорого использовать для разных платформ, и что я могу кодировать его только через скрипты. Вы должны купить каждую платформу отдельно. Удобство использования редактора среднее, продукт в целом достаточно хорош для большинства целей, но изучение его само по себе было бы излишним.
Шива 3D. Это выглядит достаточно хорошо, но опять же: мне не нужно 3D. На мой взгляд, удобство использования редактора немного хуже, чем у Unity3D, и мне не было ясно, как начать программировать. Я думаю, что для кодирования требуется C ++, так что это тоже минус. Я хочу повеселиться, а C # это весело;)
SDL. Честно говоря, мне все еще нужно портировать на все эти разные реализации SDL. И мне не нравится программирование в стиле OpenGL, оно просто безобразно. И это требует c ++, я знаю, что могут быть доступны некоторые обертки, но я не люблю использовать обертки, потому что ...
Irrlicht. Много функций, но поддержка кажется низкой, и она нацелена на энтузиастов. Привязки C # сбрасываются неоднократно. Я не энтузиаст движка, я просто хочу сделать игру. Я не вижу, чтобы это случилось с Ирлихтом.
Ogre3D. Слишком много работы, это просто графический движок. Также нет поддержки нескольких платформ и C ++.
Torque2D. Стоит что-то использовать, и я не слышал много хорошего о поддержке и документации. Также стоит дополнительно за каждую платформу.
источник
Ответы:
Pygame, безусловно, мой любимый. Поскольку программирование на python означает, что вы будете программировать быстро, а поскольку 2D-вещи быстро выполняются, pygame будет забавным ...
источник
Я использую LÖVE уже некоторое время, и мне это очень нравится. Тебе придется выучить Lua, но в любом случае это забавный маленький язык. Люди на форуме чрезвычайно полезны.
источник
love .
Я решил пойти с Flash. Новый Molehill 3D API также можно использовать для рисования 2D-спрайтов в 3D-пространстве намного быстрее. Я не вижу причин, почему Flash не должен быть достаточно быстрым для игры, которую я описал ранее. Мне придется создавать инструменты самостоятельно, но мне, вероятно, нужно было бы это сделать в любом случае. Использование AIR для создания инструментов также, на мой взгляд, довольно аккуратно. Flash также имеет самый широкий охват платформ, что круто.
источник
Попробуйте SFML
источник
Попробуйте Cocos2d-x . Это то, что я использую для разработки инди-игр.
Это опробованная и настоящая платформа OpenGL (ES), которая имеет звук, физику и даже небольшое 3D-изображение, которое недавно появилось на iPhone и только сейчас выходит на другие платформы.
источник
Так как вы сказали, что вам нравится Actionscript, но вы ищете кроссплатформенность, взгляните на HaXe + NME . HaXe - это язык, похожий на Actionscript, но он может компилироваться во Flash, Javascript, PHP или C ++. NME - это библиотека, похожая на графическую библиотеку Flash, но она работает и на других платформах. Эта комбинация позволяет компилировать для множества разных платформ.
Я еще не использовал NME, но мой первый тест с HaXe + Molehill (всего несколько дней назад) показал скорость 60 кадров в секунду при рендеринге 10 000 вращающихся спрайтов 16x16 на моем ноутбуке. Я использую HaXe всего несколько дней, и у меня недостаточно опыта, чтобы быть уверенным, что это то, что вам нужно, но это стоит посмотреть.
источник
Я лично большой поклонник Allegro 5 , но это C API. Тем не менее, это простой API, который убирается с вашего пути и обеспечивает доступ к:
5.1 также добавит поддержку шейдеров.
SDL 1.3 тоже неплохо складывается. Сэм, похоже, сделал основные изменения в API, и то, что уже есть, уже достаточно стабильно. Тем не менее ... это еще не бета-версия, и Allegro 5.0 выпущен.
Конечно, для более сложных и продвинутых игр вы, вероятно, захотите соединить Allegro 5 с какой-то библиотекой физики (например, Box2D ). Тем не менее, вы можете пройти очень долгий путь и получить массу удовольствия, не более чем то, что есть Allegro 5, стандартная библиотека C или C ++ и ваш собственный код.
источник