Цей курс є м’яким і всеосяжним введенням в основи архітектури 2D ігрового движка. Ми розглянемо кілька популярних патернів програмування, що використовуються в розробці ігор, і намагатимемося застосувати всю теорію на практиці, написавши невеликий 2D ігровий движок із використанням сучасного C++, SDL та Lua.
Ми напишемо невеликий фреймворк ECS з нуля для керування сутностями, компонентами та системами. Ми обговоримо, як розробники двигунів проектують свій код і як слід організовувати ігрові об’єкти в пам’яті з урахуванням продуктивності.
Інструменти, які вам знадобляться
Інструменти для ігрового двигуна на C++:
C++: Потужна компілювана мова програмування.
SDL2: Бібліотека для кроссплатформенного рендерингу та введення.
GLM: Бібліотека математичних обчислень.
Dear ImGui: Бібліотека для створення інтерфейсу інструментів двигуна.
Sol: Бібліотека для зв’язування сучасного C++ та Lua.
Lua: Швидкий та простий у використанні скриптів.
Ми постараємося писати більшу частину коду нашого двигуна з нуля. Всі ці бібліотеки та інструменти кросплатформні, так що ви зможете писати код на Windows, MacOS або Linux!
Чи підходить вам цей курс?
Цільова аудиторія: програмісти-початківці, які бажають вивчити C++ в контексті розробки ігор. Учні повинні вміти писати базовий код (if-else, цикли, функції, класи) та знайомі з ООП.
Необхідні знання Не обов’язково знати C++ до початку курсу. Багато успішних студентів мали досвід розробки веб, мобільних та ігрових програм на Java, Python, Ruby, Go, Swift, JavaScript та інших мовах.
Відмінності курсу
Курс не просто навчає створення гри на C++. Він дозволяє зрозуміти абстракцію гри та написати з нуля невеликий двигун на C++, охоплюючи ECS, data-oriented design, шаблони C++, ігровий цикл, рендеринг SDL, системи подій, управління ресурсами, пам’яттю та продуктивністю. Також вивчається впровадження Lua код C++ для додавання скриптових можливостей.
Хоча існують інші ресурси з розробки ігрових двигунів, вони або занадто теоретичні, або надмірно довгі. Якщо ви шукаєте м’яке введення у світ програмування ігрових двигунів і хочете зрозуміти, як ігри працюють зсередини, цей курс для вас!