Производительность Python против Game Maker [закрыто]


14

Я изначально думал о создании игры с Python и SFML. Я понимаю, что Python медленный по сравнению с C ++, но как он по сравнению с Game Maker?

Основная причина, по которой я спрашиваю, состоит в том, что я недавно играл в игру Game Maker (The Iconoclasts), которая на моем компьютере работала с довольно низкой частотой кадров (GMA 950). Я боюсь, что у меня будут похожие проблемы с производительностью Python / SFML.


В Game Maker произошли огромные события, которые вы можете захотеть посмотреть
Джефф

Ответы:


50

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

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

Что касается низкой производительности игры Game Maker, в которую вы играли, то это может быть связано с рядом факторов, некоторые из которых являются специфическими для этой игры, например, с конкретным плохим кодом, который может быть написан с помощью инструментов Game Maker или языков сценариев. Это не обязательно вина самого Game Maker.


2
@ Неважно, вы можете - Google для sockpuppets . :) Шучу - я добавлю за тебя голос. 5001 - круто, теперь он может голосовать за правки вики-тегов ...
Циклоп

1
На GMA 950 я бы совсем не удивился, если бы игра была связана с GPU, а не с CPU.
Адам

4

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

Как и в большинстве случаев, скорость языка будет незначительно влиять на общую производительность программы. Когда люди говорят: «О боже, этот язык на 50% медленнее, чем этот другой язык», а скорость в обоих случаях все еще дурацкая, тогда вы почти не обнаружите заметной разницы для конечного пользователя.


3

Game Maker - хороший инструмент для начинающих. Но я рекомендую перейти к более крупным и лучшим программам, если у вас есть опыт программирования. Я использовал GameMaker для курса по разработке 2D-игр в колледже, в нем есть удобная и простая в использовании система перетаскивания. Проблема, однако, заключается в том, что программа перетаскивания не использует наиболее эффективные (или логические) команды. Кроме того, перетаскивание не поддерживает множество расширенных команд, которые может выполнять программа, поэтому программист должен проявить творческий подход или научиться кодировать. Однако, если вы научитесь использовать код GameMaker, вы сможете относительно легко обойти это.

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

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


2

Для игры, над которой я работаю, я использую алгоритм алмазного квадрата, чтобы случайным образом создавать ландшафт при запуске новой игры. Чтобы выбрать между использованием Python с pygame для проекта или GameMaker, я реализовал генератор ландшафта в обоих. Pygame работал немного быстрее, но разница была незначительной. В конечном итоге я выбрал GameMaker, так как я могу работать в нем намного быстрее.


1

Принятый ответ мертв, но я просто хотел добавить свои 2 цента как пользователь GM в течение почти 8 лет.

У GM действительно было много проблем с оптимизацией, поэтому есть некоторые законные опасения. Есть группа устаревших методов * _variable_exists? что раньше существовало в предварительной студии Gamemaker. Благодаря этому удобному методу он был использован практически во всех мыслимых библиотеках и расширениях, которые были написаны для GM. Оказывается, эти методы были ужасно дорогими и вызывали серьезную проблему при запуске крупномасштабных игр.

Так что во многих случаях GM может быть действительно плохим, но при правильном знании и осторожном использовании он не менее законен, чем любой другой метод (unity2d, pygame и т. Д.). Просто делайте игры и получайте удовольствие.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.