Продуктивність Python vs Maker Game [закрито]


14

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

Основна причина, про яку я запитую, - це те, що я нещодавно грав у гру Maker Game (The Iconoclasts), яка на моєму комп’ютері працювала з досить поганою частотою кадрів (GMA 950). Я переживаю, що у мене виникнуть подібні проблеми з продуктивністю з Python / SFML.


У Виробнику ігор були масштабні розробки, на які ви можете поглянути
Джефф

Відповіді:


50

Скажімо, "Python повільний порівняно з C ++" - це узагальнення, яке ігнорує безліч практичних дій і, як правило, є поганим судженням, на яке можна покластися. Те, що ви насправді хочете зробити, - це подивитись, що конкретна мова чи технологія може внести до столу з огляду на ваші потреби та, аналогічно, оцінити будь-які можливі спади цієї технології в залежності від ваших потреб.

Якщо вам доводиться задавати подібне запитання, є дуже хороший шанс, що обмежуючим фактором щодо виконання будь-якої гри, яку ви робите, будете ви, а не самі технології вибору. Отже, оптимальним вибором є той, який дає вам найбільше, іншими словами, технологією чи мовою, яку ви вже найкраще знаєте.

Що стосується поганої продуктивності гри, яку ви грали, то це може бути пов’язане з низкою факторів, деякі з яких є специфічними для цієї гри, наприклад, специфічним поганим кодом, який, можливо, був написаний за допомогою інструментів Game Maker або мов скриптування. Це не обов'язково є виною самого Game Maker.


2
@Nevermind, ви можете - google для sockpuppets . :) Просто жартую - я додам за вас голос. 5001 - здорово, тепер він може голосувати за редагування тегів-вікі ...
Cyclops

1
На GMA 950 я би не здивувався, якби гра була пов'язана з графічним процесором, а не з процесором.
Адам

4

Якби мені довелося здогадатися, найбільша причина того, що гра, в яку ви грали, працює так повільно, це не те, що це гра виробника ігор, а цей виробник ігор продає спеціально для непрограмістів. Оскільки у вас є непрограмісти, які займаються іграми, велика ймовірність, що в розглянутій грі використовуються деякі дуже неефективні алгоритми, які призводять до повільної роботи.

Як і в більшості випадків, швидкість мови лише незначно вплине на загальну продуктивність програми. Коли люди кажуть, що "omg ця мова на 50% повільніше, ніж ця інша мова", і швидкість все ще дурна швидка в обох випадках, тоді ви знайдете мало-мало помітної різниці для кінцевого користувача.


3

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

Але навчитися коду для однієї програми з навантаженими графіками може бути важко, тому, швидше за все, ви відчули повільну продуктивність.

Але, як раніше говорив Корт Плеко, більшість швидкостей мови помітно не відрізняються .. Все залежить від того, як написано та виконано код. Багато скорочень може зробити це значно повільніше, що, як правило, через відсутність досвіду кодування.


2

Для гри, над якою я працюю, я використовую алгоритм алмазного квадрата для випадкового створення місцевості при запуску нової гри. Щоб вирішити між використанням python з pygame для проекту або GameMaker, я реалізував генератор місцевості в обох. Пігама виступила трохи швидше, але різниця була незначною. Зрештою, я вибрав GameMaker, оскільки в ньому можу працювати набагато швидше.


1

Прийнята відповідь мертва, але я просто хотів додати свої 2 копійки як користувач GM протягом майже 8 років.

У GM було багато проблем з оптимізаціями, тому існує певна законна стурбованість. Є група застарілих методів * _variable_exists? які існували в попередній студії Gamemaker. Через цей метод зручності він використовувався майже в кожній уявній бібліотеці та розширенні, написаному для GM. Виявляється, ці методи були жахливо дорогими і викликали серйозні проблеми при проведенні масштабних ігор.

Тому є багато випадків, коли ГМ може бути дуже поганим, але при належному знанні та обережному використанні він є не менш законним, ніж будь-який інший метод (юни2d, пігама тощо). Просто робіть ігри та отримуйте задоволення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.