Код и математика · курс
Программирование с нуля
18 уроков · 4 главы
Для тех, кто никогда не программировал: команды, переменные, условия и циклы, функции, объекты и события, отладка, списки и сложность, Blueprints, C++ и память в Unreal. Читать по порядку.
Курс ещё пишется. Готово уроков: 0 из 18.
Глава 1 · Азы
1Программа на пальцах: команды по порядкускороЧто такое программа без единой строчки кода: рецепт, который компьютер выполняет буквально, шаг за шагом. Почему компьютер не догадывается, что ты имел в виду, и как разбивать задачу на маленькие шаги.2Переменные и типы: коробки с подписямискороГде программа хранит здоровье, имя и координаты: переменная как подписанная коробка, числа целые и дробные, «да» и «нет», текст и векторы — и почему тип важен.3Условия и циклы: выбор и повторскороКак программа решает и повторяет: «если здоровье кончилось — проиграть», «для каждого врага — проверить, видит ли он игрока». Условия, сравнения, «и» и «или», циклы и как не зациклиться навсегда.4Функции: рецепт с ингредиентамискороКак не писать одно и то же десять раз: функция берёт входы, что-то делает и отдаёт результат. Имя, входы и выход, и почему маленькие функции проще проверять и чинить.
Глава 2 · Объекты и данные
5Объекты и классы: чертёж и изделияскороКак программа описывает вещи мира: класс — чертёж двери, объекты — сотня дверей на уровне, у каждой свои данные и общие умения. Наследование — общий чертёж и его уточнения.6События: игра отвечает на происходящеескороКак игра узнаёт, что что-то случилось: нажали кнопку, пуля попала, игрок вошёл в зону. События и их обработчики и почему проверять каждый кадр хуже, чем ждать события.7Отладка: как найти ошибкускороЧто делать, когда игра ведёт себя не так: воспроизвести, сузить, проверить догадку. Точки остановки, вывод значений на экран, пошаговое выполнение и как читать сообщение об ошибке.8Списки, словари и множестваскороКак хранить много всего сразу: список врагов, словарь «предмет — количество», множество посещённых мест. Что в каждом из них делается быстро, а что медленно.9Почему одно быстро, а другое нет: сложность алгоритмовскороПочему проверка «каждый с каждым» убивает игру при тысяче объектов, а поиск по словарю — нет: как растёт время работы с числом данных и простые способы оценить код до того, как он затормозит.
Глава 3 · Blueprints
10Blueprints в Unreal: программа из нодскороКак устроен визуальный язык Unreal: события, ноды-действия, провода исполнения и данных, переменные и функции графа. Те же идеи программирования, только мышкой.11Первая механика на BlueprintsскороПо шагам: дверь, которая открывается, когда игрок рядом и нажал кнопку, — зона, ввод, плавное открытие по времени, звук и проверка в игре.12Как акторы общаются: ссылки, интерфейсы и диспетчерыскороКак кнопка открывает дверь на другом конце уровня: прямые ссылки, приведение типа, интерфейсы и рассылка событий. Что выбрать и почему «всё ссылается на всё» — плохая идея.13Blueprints или C++: что где писатьскороГде удобнее Blueprints, а где незаменим C++: скорость работы и скорость правок, читаемость больших графов, работа в команде и как делят проект между двумя языками.
Глава 4 · C++ в Unreal
14C++ для Unreal: основы языкаскороЯзык C++ с нуля в объёме, нужном для Unreal: типы, функции, классы, заголовки и исходники, ссылки и указатели в первом приближении и как читать код движка.15Память: указатели, ссылки и время жизнискороГде живут данные программы и кто их убирает: стек и куча, указатель как адрес, висячие указатели и утечки, умные указатели и почему у объектов Unreal есть сборщик мусора.16Первый класс на C++ в UnrealскороПо шагам: создать класс актора, свойства и функции, видимые в редакторе, Blueprint-наследник, сборка и быстрая перекомпиляция без перезапуска редактора.17UObject: отражение, свойства и сборка мусораскороЧто делают макросы UCLASS и UPROPERTY: движок знает о твоих классах всё — для редактора, сохранений, сети и сборки мусора. Как работает сборщик и почему объект пропадает, если на него никто не держит ссылку.18Модули, плагины и сборка проектаскороКак устроен проект Unreal на C++: модули и зависимости между ними, плагины, инструмент сборки и почему проект иногда перестаёт собираться после обновления движка.