Движок с нуля

Справочник

Все понятия курса. Нажми на слово, и статья откроется рядом с ним.

  • Библиотека
    Готовый код, который уже кто-то написал и скомпилировал. Такой код не запускают сам по себе, а прилинковывают к своей программе.
  • Буфер кадра
    Прямоугольная таблица пикселей, в которую GPU записывает цвета. То, что ты видишь на экране, — содержимое одного такого буфера.
  • Генератор
    Часть CMake, которая пишет файлы для сборки. Для каждого сборщика нужен свой генератор, потому что у каждого сборщика свой формат файлов.
  • Главный цикл
    Цикл while, в котором программа работает, пока открыто окно: на каждой итерации забирает события окна, а в движке ещё обновляет мир и рисует кадр.
  • Двойная буферизация
    Программа рисует кадр в невидимый задний буфер, а когда кадр готов, меняет задний буфер местами с передним. Так зритель никогда не видит недорисованный кадр.
  • Драйвер видеокарты
    Программа от производителя видеокарты (NVIDIA, AMD, Intel), через которую Windows и программы управляют видеокартой. В драйвере лежит готовый код всех функций OpenGL для этой видеокарты.
  • Заголовочный файл
    Файл с объявлениями функций и классов, который подключают через #include. Перед компиляцией текст этого файла целиком вставляется на место строки #include.
  • Исполняемый файл
    Готовая программа, которую запускает Windows, — файл с расширением .exe. Внутри — машинные команды, а не текст на C++.
  • Исходный код
    Текст программы, который пишет человек, например файл main.cpp. Процессор такой текст не понимает, поэтому код нужно собрать в программу.
  • Код возврата
    Число, которое программа отдаёт тому, кто её запустил, когда заканчивается. 0 — всё прошло хорошо, другое число — что-то пошло не так.
  • Коммит
    Сохранённый в Git снимок проекта: какие файлы были и что в них написано, с подписью, кто и зачем его сделал. К любому коммиту можно вернуться.
  • Компилятор
    Программа, которая переводит текст на C++ в машинный код — команды, которые понимает процессор. В Visual Studio компилятор называется MSVC.
  • Компиляция
    Перевод исходного кода на C++ в машинный код, который понимает процессор. Каждый .cpp-файл компилируется отдельно и даёт свой .obj.
  • Контекст OpenGL
    Структура в памяти драйвера: всё, что OpenGL помнит об одном окне. В ней настройки рисования, например цвет очистки, созданные данные и запись о том, куда рисовать. Пока контекст не создан и не сделан текущим, функции gl* работать не могут.
  • Линкер
    Программа, которая склеивает объектные файлы (.obj) и библиотеки (.lib) в один исполняемый файл (.exe) и связывает вызовы функций с их кодом.
  • Линковка
    Шаг сборки после компиляции: объектные файлы и библиотеки склеиваются в один .exe, а каждый вызов функции связывается с её кодом.
  • Объектный файл
    Результат компиляции одного .cpp: файл .obj с машинными командами. Это ещё не программа: в файле .obj есть ссылки на функции, код которых лежит в других файлах.
  • Папка сборки
    Папка, куда CMake складывает всё, что делает сам: файлы проекта, свои заметки и готовую программу. В командах папку сборки задаёт флаг -B.
  • Предупреждение
    Сообщение компилятора о месте в коде, которое написано правильно, но выглядит подозрительно. Сборку предупреждение не останавливает: программа всё равно получается.
  • Препроцессор
    Первая часть компиляции: выполняет строки, которые начинаются с #, и отдаёт компилятору получившийся текст. Сам C++ препроцессор не понимает, а только вставляет и заменяет текст.
  • Пресет
    Набор настроек CMake под одним именем, записанный в файл CMakePresets.json в папке проекта. Вместо длинной команды с флагами пишут имя: cmake --preset vs2026.
  • Сборка
    Превращение исходного кода в готовую программу. Это превращение выполняют компилятор и линкер, а CMake описывает, как именно собирать.
  • Сборщик
    Программа, которая по готовому списку дел запускает компилятор для каждого .cpp, а потом линкер. При повторной сборке сборщик компилирует только то, что изменилось.
  • Событие окна
    Запись о том, что случилось с окном: сдвинулась мышь, нажата клавиша, нажат крестик. Windows кладёт события в очередь программы, а программа забирает очередь сама.
  • Стандарт языка
    Документ, в котором описано, что должна делать каждая конструкция C++. По нему пишут компиляторы, поэтому один и тот же код работает в MSVC, GCC и Clang.
  • Стандартная библиотека
    Готовый код, который приходит вместе с компилятором: вывод на экран, строки, списки, математика. Подключается через #include, имена начинаются с std::.
  • Точка входа
    Функция, с которой начинается твой код. В C++ это функция main: при запуске программы код запуска из стандартной библиотеки готовит программу и вызывает main.
  • Флаги компилятора
    Дополнительные слова в команде запуска компилятора, которые меняют его работу: включить предупреждения, выбрать версию C++, ускорить программу.
  • Цель сборки
    То, что CMake должен собрать: программа или библиотека, у каждой есть имя и список файлов. Программу создаёт строка вроде add_executable(app main.cpp), библиотеку — add_library(glfw …).
  • cl.exe
    Компилятор MSVC: программа, которую запускает сборщик, чтобы перевести твой код в машинный. Внутри cl.exe две части: препроцессор и сам компилятор.
  • CMake
    Программа, которая по описанию проекта в CMakeLists.txt готовит его сборку — для Visual Studio, консоли или другой среды.
  • Git
    Система контроля версий: запоминает состояния проекта, чтобы к любому можно было вернуться.
  • IDE
    Среда разработки — программа, в которой есть всё для работы с кодом: редактор, сборка, запуск и отладчик. Наша IDE — Visual Studio 2026.
  • link.exe
    Линкер MSVC: программа, которую сборщик запускает после cl.exe. Линкер склеивает .obj-файлы и библиотеки в готовый .exe.
  • PATH
    Список папок, в которых Windows ищет программу, когда ты пишешь её имя в консоли. Нет папки в PATH — консоль ответит, что команда не найдена.
  • Visual Studio 2026
    Среда разработки от Microsoft: редактор, компилятор MSVC, сборка и отладчик в одной программе.
  • Windows SDK
    Набор файлов от Microsoft, через которые программа обращается к Windows: заголовки и библиотеки для окон, файлов, звука. Ставится вместе с Visual Studio.