После небольшой паузы мы снова возвращаемся к нашим занятиям по Игровой Разработке. До этого мы говорили об играх только с точки зрения кода, завтра же нас ожидает обзорное занятие по компьютерной графике.
Почему видеокарта занимает почти половину компьютера как по объему, так и по стоимости? Каким образом трехмерная модель в оперативной памяти превращается в картинку на экране монитора? Что такое шейдеры и зачем оно? За счет чего картинка в игре с каждым годом становится все реалистичнее и реалистичнее? Вопросов много, постараемся затронуть основное для понимания ситуации.
Занятие в большей степени общеобразовательное, поэтому приглашаются все желающие
Важно! Занятие пройдет раньше чем обычно, на второй паре – 10:25, Белка.
Почему видеокарта занимает почти половину компьютера как по объему, так и по стоимости? Каким образом трехмерная модель в оперативной памяти превращается в картинку на экране монитора? Что такое шейдеры и зачем оно? За счет чего картинка в игре с каждым годом становится все реалистичнее и реалистичнее? Вопросов много, постараемся затронуть основное для понимания ситуации.
Занятие в большей степени общеобразовательное, поэтому приглашаются все желающие
Важно! Занятие пройдет раньше чем обычно, на второй паре – 10:25, Белка.
В эту субботу лекции не будет. Для студентов я скину в чат ссылку на запись прошлого года, а всем посоветую все равно прийти в субботу в Белку в 11:00 на @softwareanddatasecurity и послушать Анастасию Войтову - «Использование криптографии для защиты данных: ошибки, хотелки и паттерны».
Вторая часть лекции о графике будет уже через неделю
Вторая часть лекции о графике будет уже через неделю
После недельной паузы, мы возвращаемся к теме компьютерной графики. Прошлый раз мы рассмотрели много базовых понятий, завтра же попробуем ответить на вопрос "за счет чего современные игры и мультфильмы выглядят настолько реалистично?"
Мы рассмотрим модели просчета освещения, узнаем какая технология была придумана аж в 1975, но стала использоваться только через 20 лет, что такое Global Illumination и почему эта штука вместе с Physically Based Rendering позволяет во многом определяет вид современной 3D-графики, что такое настоящий Ambient Occlusion и почему то что мы видим в играх – не совсем оно.
Приходите, будет интересно. Белка, суббота, 12:00
Мы рассмотрим модели просчета освещения, узнаем какая технология была придумана аж в 1975, но стала использоваться только через 20 лет, что такое Global Illumination и почему эта штука вместе с Physically Based Rendering позволяет во многом определяет вид современной 3D-графики, что такое настоящий Ambient Occlusion и почему то что мы видим в играх – не совсем оно.
Приходите, будет интересно. Белка, суббота, 12:00
Последняя расмотренная нами в декабре тема - краткий обзор технологий компьютерной графики из двух лекций.
Первая лекция была посвящена общим различиям CPU и GPU, шейдерам, рендер-пайплайну, картам нормалей и паралакса, z- и стенсил-буферам и некоторым другим базовым вещам. https://www.youtube.com/watch?v=KupYa2ivlAQ
Первая лекция была посвящена общим различиям CPU и GPU, шейдерам, рендер-пайплайну, картам нормалей и паралакса, z- и стенсил-буферам и некоторым другим базовым вещам. https://www.youtube.com/watch?v=KupYa2ivlAQ
YouTube
Essential Computer Graphics
На последнем занятии предыдущего семестра мы продолжали говорить о графике, вспоминая Пиксар, олдскульные компьютеры игры и аркадные автоматы - рассмотрели модели освещения (от flatshading до Фонга), локальное и глобальное освещение, физически-корректный рендеринг, некоторые техники типа Ambient Occlusion и изменяемый render path.
Может быть звучит сложновато, но, надеюсь, было интересно - https://www.youtube.com/watch?v=-LD70YnVUEI
Может быть звучит сложновато, но, надеюсь, было интересно - https://www.youtube.com/watch?v=-LD70YnVUEI
YouTube
Advanced Computer Graphics
Forwarded from Software Architecture & Development
Привет!
Я - Артем Коротенко, и, возможно, вы слышали о том что в первом семестре в Белке проходит мой открытый курс геймдева (@gamedevkpi). В этом семестре мы совместно с Георгием Исаченко, которого вы знаете по лекциям по защиты информации (@softwareanddatasecurity) попробуем провести еще один курс совместно с кафедрой ВТ ФИВТа - Software Architecture & Development.
Почему архитектура?
По-моему опыту, именно знания в этой сфере часто проседают у студентов компьютерных направлений. Языку или фреймворку можно научиться, но с какой стороны подходить к разработке большого продукта, как научиться планировать его развитие, с учетом жизненного цикла в месяцы а то и годы (и чем это отличается от прототипной разработки), как вообще спокойно подходить к технологиям не скатываясь в холивары - все эти вопросы требуют внимания.
Чем будем заниматься?
Учиться проектировать приложения, смотреть на задачи с инженерной точки зрения, думать в категориях шире чем языки программирования и фреймворки. Будем говорить в большей части об архитектуре, частично - об организационной стороне процесса (про всякие аджайлы с точки зрения технических специалистов)
Какой порог входа?
Хорошее понимание основ программирования, минимальный опыт работы с ООП и\или ФП языками. Мы будем затрагивать многие вещи повторно, поэтому если курсы архитектуры или шаблонов проектирования у вас были, но совсем не усвоились или не оставили понимания как их применять - приходите.
Когда начинаем?
По субботам, в Белке, в 10:30. 23 числа будет первое, вводное занятие где мы детально рассмотрим проблемы, которые подталкивают к созданию такого курса, план на будущие ~10 лекций и общий набор скилов, который мы планируем немного прокачать за это время
Лекции будут открытыми, с записью на видео, если вам интересно - подписывайтесь на канал и чат @softwarearchanddev_chat, ближе к субботе будет еще один анонс
Я - Артем Коротенко, и, возможно, вы слышали о том что в первом семестре в Белке проходит мой открытый курс геймдева (@gamedevkpi). В этом семестре мы совместно с Георгием Исаченко, которого вы знаете по лекциям по защиты информации (@softwareanddatasecurity) попробуем провести еще один курс совместно с кафедрой ВТ ФИВТа - Software Architecture & Development.
Почему архитектура?
По-моему опыту, именно знания в этой сфере часто проседают у студентов компьютерных направлений. Языку или фреймворку можно научиться, но с какой стороны подходить к разработке большого продукта, как научиться планировать его развитие, с учетом жизненного цикла в месяцы а то и годы (и чем это отличается от прототипной разработки), как вообще спокойно подходить к технологиям не скатываясь в холивары - все эти вопросы требуют внимания.
Чем будем заниматься?
Учиться проектировать приложения, смотреть на задачи с инженерной точки зрения, думать в категориях шире чем языки программирования и фреймворки. Будем говорить в большей части об архитектуре, частично - об организационной стороне процесса (про всякие аджайлы с точки зрения технических специалистов)
Какой порог входа?
Хорошее понимание основ программирования, минимальный опыт работы с ООП и\или ФП языками. Мы будем затрагивать многие вещи повторно, поэтому если курсы архитектуры или шаблонов проектирования у вас были, но совсем не усвоились или не оставили понимания как их применять - приходите.
Когда начинаем?
По субботам, в Белке, в 10:30. 23 числа будет первое, вводное занятие где мы детально рассмотрим проблемы, которые подталкивают к созданию такого курса, план на будущие ~10 лекций и общий набор скилов, который мы планируем немного прокачать за это время
Лекции будут открытыми, с записью на видео, если вам интересно - подписывайтесь на канал и чат @softwarearchanddev_chat, ближе к субботе будет еще один анонс
Начинается осенний семестр, и пришло время анонсировать очередной, уже четвертый сезон курса по Разработке Игровых Приложений
Что это?
Для тех кто не знаком с курсом - в течении всего первого семестра мы будем рассматривать различные темы из игровой разработки - AI, компьютерная графика, геймдизайн, программирование, формируя у себя представление о сфере геймдева и необходимых для него знаниях
Когда?
Как и в прошлом году, лекции будут проходить утром по субботам в Белке (за что команде Белки огромное спасибо), совместно с лекциями по Software And Data Security (@softwareanddatasecurity), детальный анонс первой, вступительной лекции ожидайте уже в пятницу вечером.
Новенькое будет?
В этом году курс будет видоизменяться, в связи с тем что во втором семестре появился отдельный курс по Архитектуре Приложений, куда постепенно будут переезжать все чисто "программистские" темы, оставляя в осеннем семестре больше места для игровых тем. Плюс, игровая сфера тоже не стоит на месте и вокруг появляется столько нового: от видеокарт с рейтрейсингом, до распространения Data Oriented Design.
Подписывайтесь на этот канал и чат (@kpigamedev_chat), даже если вы уже ходили на прошлые лекции - в этом году нас ожидают новые темы и новые знания.
Вйо до геймдеву!
Что это?
Для тех кто не знаком с курсом - в течении всего первого семестра мы будем рассматривать различные темы из игровой разработки - AI, компьютерная графика, геймдизайн, программирование, формируя у себя представление о сфере геймдева и необходимых для него знаниях
Когда?
Как и в прошлом году, лекции будут проходить утром по субботам в Белке (за что команде Белки огромное спасибо), совместно с лекциями по Software And Data Security (@softwareanddatasecurity), детальный анонс первой, вступительной лекции ожидайте уже в пятницу вечером.
Новенькое будет?
В этом году курс будет видоизменяться, в связи с тем что во втором семестре появился отдельный курс по Архитектуре Приложений, куда постепенно будут переезжать все чисто "программистские" темы, оставляя в осеннем семестре больше места для игровых тем. Плюс, игровая сфера тоже не стоит на месте и вокруг появляется столько нового: от видеокарт с рейтрейсингом, до распространения Data Oriented Design.
Подписывайтесь на этот канал и чат (@kpigamedev_chat), даже если вы уже ходили на прошлые лекции - в этом году нас ожидают новые темы и новые знания.
Вйо до геймдеву!
Итак, начинаем!
Завтра в 10:20 состоится первая, вступительная, лекция курса "Введение в игровую разработку". План на завтра:
1. Познакомиться с курсом - поговорим о целях и задачах курса, рассмотрим все темы которые нас ожидают (а это примерно 10-12 лекций). Сами темы будут насыщенные: алгоритмы, программирование, геймдизайн, графика и много всего другого. Обязательно постараемся ответить на все вопросы!
2. Поговорить о сфере геймдева в целом - сделаем небольшой обзор мировых и украинских реалий, ролей в команде, возможностей для развития;
Если вы сомневались, стоит ли идти на курс (какой порог входа, о чем вообще будем говорить) - завтрашнее занятие должно ответить на все вопросы.
Куда приходить?
Библиотека КПИ, третий этаж, "Белка", начало в 10:20. Если вы не из КПИ - возьмите с собой документы (на входе турникет)!
Завтра в 10:20 состоится первая, вступительная, лекция курса "Введение в игровую разработку". План на завтра:
1. Познакомиться с курсом - поговорим о целях и задачах курса, рассмотрим все темы которые нас ожидают (а это примерно 10-12 лекций). Сами темы будут насыщенные: алгоритмы, программирование, геймдизайн, графика и много всего другого. Обязательно постараемся ответить на все вопросы!
2. Поговорить о сфере геймдева в целом - сделаем небольшой обзор мировых и украинских реалий, ролей в команде, возможностей для развития;
Если вы сомневались, стоит ли идти на курс (какой порог входа, о чем вообще будем говорить) - завтрашнее занятие должно ответить на все вопросы.
Куда приходить?
Библиотека КПИ, третий этаж, "Белка", начало в 10:20. Если вы не из КПИ - возьмите с собой документы (на входе турникет)!
Чи є в Україні геймдев? Може взагалі одна людина зробити круту гру? І чи правда що для розробки ігор потрібно знати С++ на купу математики?
На вступній лекції нашого курсу ми відповідали на часті питання про сферу та обговорювали, що на нас чекає в найближчому семестрі.
https://www.youtube.com/watch?v=rBfT493jhBY&list=PLkgXLMuasx7C7yMUsaq366htPg9rpM2lw
На вступній лекції нашого курсу ми відповідали на часті питання про сферу та обговорювали, що на нас чекає в найближчому семестрі.
https://www.youtube.com/watch?v=rBfT493jhBY&list=PLkgXLMuasx7C7yMUsaq366htPg9rpM2lw
YouTube
1. Введення в курс Ігрової розробки: геймдев та його стереотипи
6:50 Чому розробляти ігри - круто
18:00 В Україні немає геймдеву?
25:14 Одна людина не може зробитит круту гру
33:30 Мобільні ігри - не ігри
48:43 Математика в геймдеві непотрібна
52:51 Геймдев - царство С++
59:00 Для геймдеву не потрібно ООП
1:05:25 В геймдеві…
18:00 В Україні немає геймдеву?
25:14 Одна людина не може зробитит круту гру
33:30 Мобільні ігри - не ігри
48:43 Математика в геймдеві непотрібна
52:51 Геймдев - царство С++
59:00 Для геймдеву не потрібно ООП
1:05:25 В геймдеві…
Будь-яка гра починається з ідеї. Програмування, архітектура, движки, графіка - це вже все деталі реалізації ігрового проекту, який спочатку потрбіно вигадати, зробити цікавим для гравців (визначитись з аудіторію, обрати механіки, проаналізувати конкурентів), спланувати монетизацію та багато іншого. Ці моменти разом формують одну із найбільш таємничих професій у ігровій розробці - геймдизайнер. Хоча, за визначенням, кожен хто пробує створити гру і є геймдизайнером. Отже, завтра поговоримо про:
а) Що читати і як розвиватись у сфері;
б) як підходити до вигадування нового проекту;
в) як аналізувати аудиторію
г) як робити гру не нудною
Тема дуже велика та цікава (хоча і не технічна), та дуже важлива для розуміння всієї сфери.
Крім того, завтра студенти курсу отримують завдання на весь семестр.
"Білка" (Бабліотека КПІ, 3 поверх), субота, 10:20. Якщо ви не з КПІ, візьміть з собою документи
а) Що читати і як розвиватись у сфері;
б) як підходити до вигадування нового проекту;
в) як аналізувати аудиторію
г) як робити гру не нудною
Тема дуже велика та цікава (хоча і не технічна), та дуже важлива для розуміння всієї сфери.
Крім того, завтра студенти курсу отримують завдання на весь семестр.
"Білка" (Бабліотека КПІ, 3 поверх), субота, 10:20. Якщо ви не з КПІ, візьміть з собою документи
На другій лекції ми говорили про геймдизайн: як вигадуються ігри, що спільного у The Sims, Halo та Bioshock, за допомогою яких емоційних тригерів проекти формують користувацькій досвід, як скласти портрет гравця для власного проекту та чому Ейнштейн одного разу замість докладу вирішив заграти на скрипці
Увага! В суботу в Белці проходить конференція, тому наступна лекція відбудеться вже завтра зранку - чекайте ввечері на анонс
https://www.youtube.com/watch?v=qj5FO4W8wdU
Увага! В суботу в Белці проходить конференція, тому наступна лекція відбудеться вже завтра зранку - чекайте ввечері на анонс
https://www.youtube.com/watch?v=qj5FO4W8wdU
YouTube
2. Як вигадати гру? Основи геймдізайну
17:50 Емоційні тригери
30:37 Елегантність у дизайні
39:07 Приклади досвіду гравця (experience) у проектах різних жанрів
54:36 Портрет гравця
1:03:30 Ітерація як основи розробки
Посилання:
1. Designing Games: A Guide to Engineering Experiences
https://w…
30:37 Елегантність у дизайні
39:07 Приклади досвіду гравця (experience) у проектах різних жанрів
54:36 Портрет гравця
1:03:30 Ітерація як основи розробки
Посилання:
1. Designing Games: A Guide to Engineering Experiences
https://w…
У цю суботу Білка зайнята конференцією, тому заняття потрібно перенести. Давайте вирішимо на який день:
Anonymous Poll
26%
П'ятниця (завтра), 10:30
74%
Неділя, 10:30
Перш ніж перейти до штучного інтелекту, графіки, програмування та інших технічних тем, нам потрібно зафіксувати певний набір базових знань з різних сфер, який необхідно мати у ігровій розробці. В цей набір потрапляє багато всього - від зовсім шкільної геометрії та тригонометрії (та хто її взагалі пам'ятає?) до фізики та університетської теорії ймовірностей зі статистикою. Хтось це вчив і гарно пам'ятає, для когось знання потрібно трішки освіжити, а для когось - помітити собі прогалину в знаннях та закрити її.
Отже, завтра о 10:30 (як завжди - в Білці) будемо робити огляд фундаментальних знань для геймдеву - математика, базова фізика, статистика, та деякі інші штуки. З прикладами!
Отже, завтра о 10:30 (як завжди - в Білці) будемо робити огляд фундаментальних знань для геймдеву - математика, базова фізика, статистика, та деякі інші штуки. З прикладами!
Завтра о 12:00 Белка приймає Школу першокурсника, тому наша лекція, разом із лекцією по захисту інформації знову переноситься на неділю - чекайте детальний анонс вже завтра ввечері
Завтра ми переходимо до однієї з найбільших (та, як на мене, найцікавіших) тем нашого курсу - штучного інтелекту. В цьому році я планую розширити цю тему до трьох лекцій та більш детально зануритись у різні техніки та задачі. Отже, завтра:
- Поговоримо про відмінності ігрового та академічного АІ, згадаємо старенького Пакмана та спробуємо зрозуміти як він працює та чому це так круто вистрілило;
- Дізнаємось про техніки АІ в настольних іграх та подивимось чому в шахи комп'ютер обіграв людину ще 20 років тому, а у го - тільки три;
- Розглянемо різні алгоритми прийняття рішень у проектах різних жанрів;
Ключові слова: decision making, minimax, monte-carlo tree search, behaviour trees та ще скільки встигнемо за півтори години
Початок о 10:20, Белка. Вхід вільний
- Поговоримо про відмінності ігрового та академічного АІ, згадаємо старенького Пакмана та спробуємо зрозуміти як він працює та чому це так круто вистрілило;
- Дізнаємось про техніки АІ в настольних іграх та подивимось чому в шахи комп'ютер обіграв людину ще 20 років тому, а у го - тільки три;
- Розглянемо різні алгоритми прийняття рішень у проектах різних жанрів;
Ключові слова: decision making, minimax, monte-carlo tree search, behaviour trees та ще скільки встигнемо за півтори години
Початок о 10:20, Белка. Вхід вільний
На третій лекції ми згадували школу та універ та пробували розібратись із тим, про що звідти краще пам'ятати: вектори, закони Ньютона, інтерполяція, теорія ймовірностей, статистика та всяке таке інше
https://www.youtube.com/watch?v=NbQoaGOOaYo
https://www.youtube.com/watch?v=NbQoaGOOaYo
YouTube
3. Що потрібно пам'ятати в геймдеві зі школи та університету
7:37 Математика та геометрія: вектори
28:10 Ease functions
33:38 Інтерполяція та екстраполяція
40:45 Фізика
1:07:40 Повороти: кути Ейлера, шарнірний замок, кватерніони
1:17:25 Теорія ймовірностей та статистика
Посилання:
1. Nature Of Code
https://nature…
28:10 Ease functions
33:38 Інтерполяція та екстраполяція
40:45 Фізика
1:07:40 Повороти: кути Ейлера, шарнірний замок, кватерніони
1:17:25 Теорія ймовірностей та статистика
Посилання:
1. Nature Of Code
https://nature…
Завтра на лекції ми продовжимо говорити про техніки АІ у іграх: розберемся с принципами симуляції як у Sims, дуже швидко оглянемо техніки пошуку шляхів (раптом хтось забув що таке А-star?) разом із згадками де це потрібно крім, власне, пошуку шляхів, та розглянемо алгоритм, що дозволяє симулювати купу різних штук: від стай птахів до автомобільних гонок (boids, або більше загально - steering behaviours).
Увага! Лекція завтра почнеться раніше - ми почнемо вже о 10:0, місце проведення, як завжди - Білка (бібліотека КПІ, третій поверх). Лекція відкрита
Увага! Лекція завтра почнеться раніше - ми почнемо вже о 10:0, місце проведення, як завжди - Білка (бібліотека КПІ, третій поверх). Лекція відкрита
На першій лекції із розділу про штучний інтелект ми говорили про шахи та го (які алгоритми використовуються для покрокових ігор з повною або неповною інморфацією), згадували Пакмана, обговорювали дерева прийняття рішень, скінченні автомати (state machines) та дерева поведінки (behavior trees)
https://www.youtube.com/watch?v=zlEI6ii28_A
https://www.youtube.com/watch?v=zlEI6ii28_A
YouTube
4. AI у іграх #1: огляд, настольні ігри (minimax та альтернативи), state machines, behaviour trees
7:05 AI для прикладних та академічних задач
16:42 State Machine та PacMan
42:06 Шахи (Minimax, Negamax, Negascout)
1:05:28 Го, Monte-Carlo Tree Search
1:15:58 Behavior Trees
Посилання:
1. Досьє на Пакмана
https://www.gamasutra.com/view/feature/132330/th…
16:42 State Machine та PacMan
42:06 Шахи (Minimax, Negamax, Negascout)
1:05:28 Го, Monte-Carlo Tree Search
1:15:58 Behavior Trees
Посилання:
1. Досьє на Пакмана
https://www.gamasutra.com/view/feature/132330/th…
Завтра, на останній лекції з циклу про штучний інтелект ми закриємо борг і нарешті поговоримо про steering behaviours (та навчимося преслідуванню, патрулюванню та групповим поведінкам), крім того розглянемо нові теми - нечітку логіку, тактичний AI (для StarCraftу теж потрібно ботів писати) та клітинні автомати (як у класичній грі Життя чи SimCity)
Лекція завтра нарешті почнеться вчасно - о 10:30, місце проведення, як завжди - Білка (бібліотека КПІ, третій поверх). Лекція відкрита
Лекція завтра нарешті почнеться вчасно - о 10:30, місце проведення, як завжди - Білка (бібліотека КПІ, третій поверх). Лекція відкрита
В цьому році ми значно менше часу приділяємо темам пов'язаним із кодом, але все ж прийшов час трохи поговорити і про це. Завтрашня тема нашої лекції - Архітектура ігрових додатків. Не лякайтеся складної назви, насправді ми будемо розглядати те, якими основними принципами слід керуватися коли ви починаєте продумувати реалізацію вашої гри. Ми розглянемо чим "під капотом" один від одного відрізняються настільні ігри та матч-3, шутери та RTS, нескінченні казиношні слоти та покери а також всяке різне інше.
Після завтрашньої лекції у вас буде розуміння ЯК саме краще технічно реалізовувати певну ідею, та які за цим стоять плюси, мінуси та підводні камені.
З відео другої та третьої лекції про АІ поки заминка через певні технічні проблеми зі звуком, але все буде.
Початок завтра, як завжди - 10:20, Белка (Бібліотека КПІ, третій поверх). Вхід вільний
Після завтрашньої лекції у вас буде розуміння ЯК саме краще технічно реалізовувати певну ідею, та які за цим стоять плюси, мінуси та підводні камені.
З відео другої та третьої лекції про АІ поки заминка через певні технічні проблеми зі звуком, але все буде.
Початок завтра, як завжди - 10:20, Белка (Бібліотека КПІ, третій поверх). Вхід вільний