26 января в Екатеринбурге начинается курс лекций \"From Junior To Senior\", посвященный разработке кросс-платформерных риалтайм приложений с сетевой поддержкой на примере разработки небольшого движка и игры.
В процессе разработки будут рассматриваться большое количество косвенных вопросов связанных с программированием и поддержкой масштабных систем. Курс рассчитан на людей умеющих программировать и способных самостоятельно писать приложения под Windows.
Будут рассматриваться языки: C++ и STL, C# и Mono, Php и SQL, ObjectiveC, JavaScript, Java, Lua, MaxScript. А также API - OpenGL и GLSL, OpenAL, Cocoa, WinAPI, XWindow, Windows Presentation Foundation.
Лекции будут рассказывать представители компаний: ООО “ДиПроСофт”, НПЦ “Спектр”, ООО “Кибертайм Систем”, ООО “Яндекс” и возможно другие специально приглашенные представители.
Лекции будут проходить еженедельно по четвергам в 16:00 по МСК в г. Екатеринбурге, по адресу - ул. Ленина, дом 10. Далее будут выкладываться на канале YouTube.
Тезисный план лекции и корректировки темы будут производиться за неделю до предстоящей лекции в этом документе. Сам план лекций не окончательный и будет корректироваться.
Введение в курс. Процесс компиляции и сборки бинарного кода. Основы современной 3D графики. Нотация кода и кодстайл.
a. На кого рассчитан курс. Конечная его цель. Формат преподнесения информации. (Pit, DRON).
b. Все этапы компиляции исходных кодов в бинарные файлы (Windows и Unix) систем. Различия статически-компилируемых от динамически-компилируемых языков (байт-код, JIT-компиляция) программирования. (Pit).
c. Как работают современные 3D ускорители. Фиксированный и программируемый конвейер. Основы программирования 3D графики, апи DirectX и семейство OpenGL. (DRON).
d. Зачем и как красиво оформлять код. Повышение читаемости кода и избегание ошибок за счет правильного форматирования. (DRON).
Разработка концепции игры, от идеи к концепт-документу и дизайн-документу. (DRON). Разбиение проекта на модули и постановка задач, а также планирование работ. (Pit).
Особенности архитектуры риал-тайм приложений. Проектирование архитектуры приложения (игра, редактор, конвертеры(экспортеры) серверная часть). Уровни абстракции. Особенности проектирования кросс-платформерных систем.
Проектирование и разработка кросс-платформерного движка (создание окна, взаимодействие с оконной системой, файловой системой, вводом пользователя, инициализация OpenGL). Особенности различных платформ (Windows, Linux, MacOS, iOS, Android).
Работа с OpenGL. Различия семейства API OpenGL (OpenGL 1.x-2.x, OpenGL 3.x-4.x, OpenGL ES 1.x-2.x, WebGL). Работа с матрицами, пространственные преобразования. Работа с шейдерами. Вывод геометрии и текстурирование.
Проектирование и разработка менеджера ресурсов. Работа со звуком и музыкой на примере OpenAL.
Проектирование форматов хранения данных (паки, текстуры, шрифты, меши). И разработка инструментов экспорта (MaxScript, консольные конвертеры). Реализация поддержки форматов в движке.
Проектирование и разработка графа сцены. Оперирование объектами сцены рендера.
Создание игровых объектов. Разработка интерфейсов взаимодействия со скриптовым языком на примере биндов в Lua.
Создание редактора уровней (C#, WPF) игровых сцен. Имплиментация формата сцен.
Создания редактора (C#, WPF) и формата эффектов и внедрение его в движок.
Разработка игровой графики. От скетча до 3D модели. Левелдизайн.
Разработка игровой логики и AI (Lua).
Проектирование клиент-серверного взаимодействия и сетевой игры. Реализация серверной части (Java сервер) и Web-портала (php).
Разработка клиентской части, работа с сокетами. Проблема лага. Взаимодействие по протоколами UDP и HTTP. Проектирование и разработка своего протокола на основе UDP.
Подготовка приложения для размещения в Apple App Store, Apple Mac App Store, Ubuntu Software Center, Android Market.
Портирование на HTML5. Реализация движка на JavaScript и WebGL.
Портирование игры, проблемы и решения.
Платформа Windows Phone 7. Вопросы портирования.
Заключительная лекция, подведении итогов и анализ решения встреченных проблем. Что делать дальше?
Формат курса - видеолекции. Пилотная лекция \"Система типов в С++\" уже записана - ошибки учтены и с этого четверга начнутся уже нормальные лекции. Живого эфира не будет, а будет просто монтаж с последующим выкладыванием в сеть. Все желающие способные добраться в г.Екатеринбург приглашаются непосредственно на саму запись лекции.