По горячим следам - утренняя лекция! Теги: Game Loop, State Machine, Command, Singleton, ServiceLocator EventQueue, TypeObject, NullObject, ObjectPool https://www.youtube.com/watch?v=8ifbkOZ6N4U&index=4&list=PLkgXLMuasx7Dch_t5j6Z-03ToPfB-4ddp
YouTube
Game Programming Patterns
Slides: https://www.slideshare.net/korotenkoartem/game-programming-patterns-0610
Что ж, пришло время поговорить о том, что затягивает разработку, убивает всякое желание делать проект и ломает ̶ ̶с̶е̶м̶ь̶и̶ сроки. О том, что мы сами порождаем и с чем раз за разом сталкиваемся. Время поговорить о плохом коде. Баги, костыли, велосипеды, антипаттерны, мараконы - вот это вот всё, откуда оно берется, как его опознать и обезвредить. Ну, или как с этим жить. Тема касается программирования в целом, хотя и с прицелом на игровую разработку, поэтому может быть интересна многим. Белка, пятница, вторая пара.
На первой паре мы завтра снова будем обсуждать, рисовать на доске и думать в этот раз над абсолютно реальным проектом, доступном в сторе. Обсудим работу со сценами, переходами и перезагрузками и как это ложится в ту архитектуру, которой мы пользуемся. Кому интересно - подходите к 8:50 примерно.
На первой паре мы завтра снова будем обсуждать, рисовать на доске и думать в этот раз над абсолютно реальным проектом, доступном в сторе. Обсудим работу со сценами, переходами и перезагрузками и как это ложится в ту архитектуру, которой мы пользуемся. Кому интересно - подходите к 8:50 примерно.
С опозданием конечно, но выкладываю видео нашей последней лекции, про плохие штуки в коде и что с ними делать https://www.youtube.com/watch?v=xJqoVlmxuNs&list=PLkgXLMuasx7Dch_t5j6Z-03ToPfB-4ddp&index=5
YouTube
Bad Code & Clean Code
Slides: https://www.slideshare.net/korotenkoartem/bad-code-amp-clean-code-1310
Напоминаю, что в эту пятницу практики и лекции не будет - пришло время подвести итог первой части нашего курса, посвященной коду. На второй паре будет контрольная, на которой желающим проверить свои архитекторские навыки будет предложено: а) посмотреть на какой-то код и сказать, что вам в нем не нравится, б) придумать решение какой-нибудь вполне реальной задачи из проекта, где придется расчехлить все свои SOLID, DRY и KISS + возможно добавлю несколько вопросов с первых лекций, но это неточно
Для подготовки рекомендовано посмотреть видеолекции и прочитать отзыв о лабе (кто сдал, но кому еще не ответил – завтра всем напишу). Кроме того, напоминаю, что близится срок согласования курсачей, после которого тему назначу я сам (бугага).
Если кто-то не из магистров тоже хочет написать тест (что я очень рекомендую сделать!) – отпишите в чат, пжалста
Для подготовки рекомендовано посмотреть видеолекции и прочитать отзыв о лабе (кто сдал, но кому еще не ответил – завтра всем напишу). Кроме того, напоминаю, что близится срок согласования курсачей, после которого тему назначу я сам (бугага).
Если кто-то не из магистров тоже хочет написать тест (что я очень рекомендую сделать!) – отпишите в чат, пжалста
UPD: по общей договоренности, контрольную перенесли на 9:00. Как всегда - в Белке
По контрольной. Работы я все почитал, лично результаты всем писавшим с ошибками и комментами отправлю на выходных – пока общие впечатления.
Со вторым заданием, там где «укажите ошибки в коде», справились получше, хотя и все равно общая закономерность такая, что чем мелочнее ошибка и чем быстрее её исправить, тем больше ей уделено внимания, а вот самые кривые с точки зрения проектирования моменты оказались весьма обделены вниманием.
А вот с первым сосвсем беда :( Возожно сказывается отсутствия опыта создания больших проектов, но каких-то адекватных решений, которые бы можно было использовать в проекте, крайне мало. Что не очень хорошо для уже практикующих программистов. Отсюда вопрос – что будем с этим делать? Я уже планировал перейти на лекциях ко всякой геймдизной лирике, а контрольную разбирать на практиках понемногу, но сомневаюсь что увижу на них всех написавших контрольную. Моё предложение – объеденить завтра практику\лекцию (начать часиков в 9 и дальше на второй паре) и сделать большой разбор заданий, такая себе больая практика по OOP/OOD, для того чтобы хотя бы указать направление, в каком стоит эту тему копать. Полноценный анонс (для репоста) сделаю вечером, а пока отпишите в чатик, кто за
Со вторым заданием, там где «укажите ошибки в коде», справились получше, хотя и все равно общая закономерность такая, что чем мелочнее ошибка и чем быстрее её исправить, тем больше ей уделено внимания, а вот самые кривые с точки зрения проектирования моменты оказались весьма обделены вниманием.
А вот с первым сосвсем беда :( Возожно сказывается отсутствия опыта создания больших проектов, но каких-то адекватных решений, которые бы можно было использовать в проекте, крайне мало. Что не очень хорошо для уже практикующих программистов. Отсюда вопрос – что будем с этим делать? Я уже планировал перейти на лекциях ко всякой геймдизной лирике, а контрольную разбирать на практиках понемногу, но сомневаюсь что увижу на них всех написавших контрольную. Моё предложение – объеденить завтра практику\лекцию (начать часиков в 9 и дальше на второй паре) и сделать большой разбор заданий, такая себе больая практика по OOP/OOD, для того чтобы хотя бы указать направление, в каком стоит эту тему копать. Полноценный анонс (для репоста) сделаю вечером, а пока отпишите в чатик, кто за
OOP/OOD Workshop
Как бы не хотелось перейти уже к геймдизайну, программирование пока нас не отпускает. По горячим следам прошлого занятия и контрольной (см. предыдущий пост), завтра мы проведем большое занятие-практику (назовем это по-модному воркшопом) по объектно-ориентированому дизайну, на котором вместе попробуем спроектировать несколько игровых систем из тех, что я вам предлагал на контрольной и проанализируем, что же было сделано не так. И, что важнее - как писать программы так, чтобы их поддержка и измненение не вызывали реакции "да тут проще все переписать"
Итак, завтра, Белка – начнем в 9:00, закончим ближе к 12. Приглашаются все, кому интересно, как проектировать программное обеспечение так, чтобы потом не было мучительно больно и бесконечно грустно.
Как бы не хотелось перейти уже к геймдизайну, программирование пока нас не отпускает. По горячим следам прошлого занятия и контрольной (см. предыдущий пост), завтра мы проведем большое занятие-практику (назовем это по-модному воркшопом) по объектно-ориентированому дизайну, на котором вместе попробуем спроектировать несколько игровых систем из тех, что я вам предлагал на контрольной и проанализируем, что же было сделано не так. И, что важнее - как писать программы так, чтобы их поддержка и измненение не вызывали реакции "да тут проще все переписать"
Итак, завтра, Белка – начнем в 9:00, закончим ближе к 12. Приглашаются все, кому интересно, как проектировать программное обеспечение так, чтобы потом не было мучительно больно и бесконечно грустно.
Видео нашей практики с последней пятницы. Всем кто писал контрольную - must have https://www.youtube.com/watch?v=FBS3aVlVUf8&index=6&list=PLkgXLMuasx7Dch_t5j6Z-03ToPfB-4ddp
Народ, такое дело - я заболел и на этой неделе у меня не хватит голоса на полноценное полуторачасовое вещание лекции, поэтому переход к теме графики, шейдеров, освещений и всего такого откладывается на одну неделю. То есть, завтра лекции не будет 😷
Возможно, потом организуем дополнительное занятие. Не хворайте!
Возможно, потом организуем дополнительное занятие. Не хворайте!
После небольшой паузы мы снова возвращаемся к нашим занятиям по Игровой Разработке. До этого мы говорили об играх только с точки зрения кода, завтра же нас ожидает обзорное занятие по компьютерной графике.
Почему видеокарта занимает почти половину компьютера как по объему, так и по стоимости? Каким образом трехмерная модель в оперативной памяти превращается в картинку на экране монитора? Что такое шейдеры и зачем оно? За счет чего картинка в игре с каждым годом становится все реалистичнее и реалистичнее? Вопросов много, постараемся затронуть основное для понимания ситуации.
Занятие в большей степени общеобразовательное, поэтому приглашаются все желающие – 10:25, Белка. На первой паре занятия не будет.
Почему видеокарта занимает почти половину компьютера как по объему, так и по стоимости? Каким образом трехмерная модель в оперативной памяти превращается в картинку на экране монитора? Что такое шейдеры и зачем оно? За счет чего картинка в игре с каждым годом становится все реалистичнее и реалистичнее? Вопросов много, постараемся затронуть основное для понимания ситуации.
Занятие в большей степени общеобразовательное, поэтому приглашаются все желающие – 10:25, Белка. На первой паре занятия не будет.
Лекция о графике: разница между CPU и GPU, графический конвейер, OpenGL\DirectX\Vulkan, виды шейдеров, способы улучшения детализации, нормал мапы, буффер глубины и стенсил буфер https://www.youtube.com/watch?v=ty3tUp0p5Kg&index=7&list=PLkgXLMuasx7Dch_t5j6Z-03ToPfB-4ddp
YouTube
Computer Graphics Essentials
Слайды: https://www.slideshare.net/korotenkoartem/essential-computer-graphics
На прошлой встрече мы расмотрели много базовых понятий в компьютерной графике, завтра же продолжим и углубимся в эту тему – как происходит вычисление освещения в 3D-сцене? Что такое Global Illumination и почему эта штука вместе с Physically Based Rendering позволяет современным играм и мультикам выглядеть настолько реалистично? Что такое настоящий Ambient Occlusion и почему то что мы видим в играх – не совсем оно? Чем отличается Forward Rendering от Deferred Rendering? Приходите, будет интересно.
Как всегда – Белка, пятница, 10:25
Как всегда – Белка, пятница, 10:25
Видео нашей последней лекции, где мы рассматривали освещение и затенение в компьютерной графике, а также то благодаря чему современные приложения выглядят так круто - физически корректный рендеринг и глобальное освещение https://www.youtube.com/watch?v=AHK2QCqLOXg&list=PLkgXLMuasx7Dch_t5j6Z-03ToPfB-4ddp&index=8
YouTube
Modern Computer Graphics
Слайды: https://www.slideshare.net/korotenkoartem/modern-computer-graphics-1711/korotenkoartem/modern-computer-graphics-1711
Искусственный интеллект (AI) со всеми его нейронными сетями и deep learning-ами на сегодня, пожалуй, вторая по количеству шумихи вокруг тема – круче только блокчейн. Мало кто понимает как точно это работает, для чего и когда нужно, что важнее – когда ненужно.
Удивительно, что игры – одна из сфер, где, по ощущению, AI – на каждом шагу (почти в любой игре есть боты), но при этом в большинстве случаев эта магия достигается куда более простыми приемами чем сложное машинное обучение.
Завтра мы рассмотрим AI в играх с самого низу, основательно – начиная с поиска путей (pathfinding) и steering behavior (не знаю как это корректно перевести, но это то, благодаря чему в стрелялке бот умеет от вас убегать, а животные – правильно двигаться в стае). Если будем успевать, затронем и более сложные вещи, как сложное управление поведением и создание больших симуляций в духе SimCity.
Лекция открытая, пятница, Белка, как всегда – 10:25
Удивительно, что игры – одна из сфер, где, по ощущению, AI – на каждом шагу (почти в любой игре есть боты), но при этом в большинстве случаев эта магия достигается куда более простыми приемами чем сложное машинное обучение.
Завтра мы рассмотрим AI в играх с самого низу, основательно – начиная с поиска путей (pathfinding) и steering behavior (не знаю как это корректно перевести, но это то, благодаря чему в стрелялке бот умеет от вас убегать, а животные – правильно двигаться в стае). Если будем успевать, затронем и более сложные вещи, как сложное управление поведением и создание больших симуляций в духе SimCity.
Лекция открытая, пятница, Белка, как всегда – 10:25