Як створювати ігрові движки


 

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


Інструкція

  1. Виберіть, яку ви хочете створити гру, щоб вона була цікавою і популярною. Для цього вивчіть ринок (навіть якщо ви робите гру не на продаж, все одно вивчіть ринок — завжди приємно, коли твій твір має попит).
  2. Не намагайтеся зробити гру з дуже реалістичною графікою і повною свободою дій. Озвучте вимоги. Може це буде простота, вимоги до кількості персонажів, продуктивності або особливостям сюжету.
  3. Зробіть ієрархію функцій, застосовуючи спадний підхід. На певному етапі ви більше не зможете продовжити спадну архітектуру, але не тому, що ви все зробили. Просто тонкощі реалізації будуть задавати вам свої правила, тому продовжите створення ієрархії висхідним способом, тобто виходите з особливостей API і підкоригуйте інтерфейс більш високого лівіла.
  4. Приступайте до проектування. Вищі функції складаються з виклику нижчих (тобто вони практично реалізовані на етапі створення ієрархії). Спроектуйте відтворення самих нижніх функцій на псевдокоді. Не пишіть псевдокод на С на тільки російською мовою. Він повинен бути як мінімум коротше в 2 рази і описово втілювати алгоритм, відповідати на питання не «як», а «що» і повинен дозволяти зосереджуватися на найважливіших речах. Для нижніх функцій створіть тести і постарайтеся довести вірність програми.
  5. Приступайте до етапу кодування. Реалізуйте нижні функції і тести і отримаєте працюючу програму. Для коментарів використовуйте псевдокод і дотримуйтеся форматування якогось певного стилю. Рекомендується проводити публічне планування, тому як сторонні допоможуть вам виявити недоліки і помилки, які ви самі не помітили. Таким чином, ви значно скоротите власний час роботи і поліпшите результат на виході.