Лекции по программированию

Лекции по программированию

23 января 2012 г. 21:43
Источник: dron.deeprosoft.com
Комментарии [35]

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.

Тезисный план лекции и корректировки темы будут производиться за неделю до предстоящей лекции в этом документе. Сам план лекций не окончательный и будет корректироваться.

  1. Введение в курс. Процесс компиляции и сборки бинарного кода. Основы современной 3D графики. Нотация кода и кодстайл.
    a. На кого рассчитан курс. Конечная его цель. Формат преподнесения информации. (Pit, DRON).
    b. Все этапы компиляции исходных кодов в бинарные файлы (Windows и Unix) систем. Различия статически-компилируемых от динамически-компилируемых языков (байт-код, JIT-компиляция) программирования. (Pit).
    c. Как работают современные 3D ускорители. Фиксированный и программируемый конвейер. Основы программирования 3D графики, апи DirectX и семейство OpenGL. (DRON).
    d. Зачем и как красиво оформлять код. Повышение читаемости кода и избегание ошибок за счет правильного форматирования. (DRON).
  2. Разработка концепции игры, от идеи к концепт-документу и дизайн-документу. (DRON). Разбиение проекта на модули и постановка задач, а также планирование работ. (Pit).
  3. Особенности архитектуры риал-тайм приложений. Проектирование архитектуры приложения (игра, редактор, конвертеры(экспортеры) серверная часть). Уровни абстракции. Особенности проектирования кросс-платформерных систем.
  4. Проектирование и разработка кросс-платформерного движка (создание окна, взаимодействие с оконной системой, файловой системой, вводом пользователя, инициализация OpenGL). Особенности различных платформ (Windows, Linux, MacOS, iOS, Android).
  5. Работа с OpenGL. Различия семейства API OpenGL (OpenGL 1.x-2.x, OpenGL 3.x-4.x, OpenGL ES 1.x-2.x, WebGL). Работа с матрицами, пространственные преобразования. Работа с шейдерами. Вывод геометрии и текстурирование.
  6. Проектирование и разработка менеджера ресурсов. Работа со звуком и музыкой на примере OpenAL.
  7. Проектирование форматов хранения данных (паки, текстуры, шрифты, меши). И разработка инструментов экспорта (MaxScript, консольные конвертеры). Реализация поддержки форматов в движке.
  8. Проектирование и разработка графа сцены. Оперирование объектами сцены рендера.
  9. Создание игровых объектов. Разработка интерфейсов взаимодействия со скриптовым языком на примере биндов в Lua.
  10. Создание редактора уровней (C#, WPF) игровых сцен. Имплиментация формата сцен.
  11. Создания редактора (C#, WPF) и формата эффектов и внедрение его в движок.
  12. Разработка игровой графики. От скетча до 3D модели. Левелдизайн.
  13. Разработка игровой логики и AI (Lua).
  14. Проектирование клиент-серверного взаимодействия и сетевой игры. Реализация серверной части (Java сервер) и Web-портала (php).
  15. Разработка клиентской части, работа с сокетами. Проблема лага. Взаимодействие по протоколами UDP и HTTP. Проектирование и разработка своего протокола на основе UDP.
  16. Подготовка приложения для размещения в Apple App Store, Apple Mac App Store, Ubuntu Software Center, Android Market.
  17. Портирование на HTML5. Реализация движка на JavaScript и WebGL.
  18. Портирование игры, проблемы и решения.
  19. Платформа Windows Phone 7. Вопросы портирования.
  20. Заключительная лекция, подведении итогов и анализ решения встреченных проблем. Что делать дальше?


Формат курса - видеолекции. Пилотная лекция "Система типов в С++" уже записана - ошибки учтены и с этого четверга начнутся уже нормальные лекции. Живого эфира не будет, а будет просто монтаж с последующим выкладыванием в сеть. Все желающие способные добраться в г.Екатеринбург приглашаются непосредственно на саму запись лекции.





Последние новости

Call of Duty: Black Ops II
Диктатор судится с Activision
// 18 июля 2014 г.
Бывший диктатор Панамы Мануэль Норьега подал в суд на издателя видеоигры «Call Of Duty» - американскую компанию Activision. Норьега требует выплаты компенсации, так как один из героев выпущенной в 2012 году игры изображает его самого.
PewDiePie
27 млн подписчиков PewDiePie
// 02 июля 2014 г.
Шведский геймер и видеоблоггер Феликс Чельберг, более известный как PewDiePie, смог привлечь на свой YouTube канал 27 млн подписчиков.
Sapphire Technology
Выиграй видеокарты Radeon HD!
// 01 июля 2014 г.
Компания Sapphire Technology, ведущий изготовитель видеокарт на базе графических процессоров AMD Radeon HD, совместно с сайтом www.3dnews.ru объявила о проведении конкурса, в котором вы можете выиграть современные видеокарты.
Mail.Ru Group
Платежи в онлайн-играх
// 25 июня 2014 г.
Компания Mail.Ru сообщает, что за два года доля платежей банковскими картами в онлайн-играх выросла в три раза.
Russian Developers Cup
Russian Developers Cup 2
// 24 июня 2014 г.
Началась регистрация на второй Russian Developers Cup – чемпионат для IT-специалистов в области веб-разработки, мобильных сервисов и игр, организованный Mail.Ru Group.
NVIDIA
GPU-ускорение для Illustrator
// 21 июня 2014 г.
Компания NVIDIA впервые представила GPU-ускорение для Adobe Illustrator CC, позволяя дизайнерам интерактивно работать с векторной графикой в любом разрешении, а также быстро и плавно панорамировать и масштабировать проекты.