Intro to Gamedev
1.09K subscribers
25 photos
72 links
Анонси, лінки, оголошення
Download Telegram
Последняя лекция у нас получилась о Software Engineering в целом, поэтому если вы не знаете что такое SOLID, или не до конца понимаете что он значит, или стесняетесь спросить зачем он - смотрите, в лекции мы попытались в этом всем разобраться, затрагивая еще Dependency Injection, MVC и MVVM
https://www.youtube.com/watch?v=y50e5HO3rSg&index=3&list=PLkgXLMuasx7Dch_t5j6Z-03ToPfB-4ddp
Первая часть нашего курса называется "Игра как программный продукт", в которой мы вспоминаем\изучаем разные правила построения ПО, с учетом специфики нашей предметной области - геймдева. В прошлый раз мы говорили про некоторые общие принципы и архитектуру, завтра же перейдем к шаблонам проектирования, с которыми приходится сталкиваться в разработке. Примеры будут из геймдева, но всем кто интересуется в целом Software Engineering тоже должно быть интересно. Ключевые слова: Game Programming Patterns, GoF. Будем говорить как о весьма банальных синглтонах, так и нечастых EventQueue и прочих

Лекция завтра будет в обычное время, то есть на второй паре (10:25), все кому еще интересно развитие нашего прототипного проекта Tower Defense и/или есть вопросы, приходите к 8:50. Вопросы не стесняйтесь кидать в чат @kpigamedev_chat
По горячим следам - утренняя лекция! Теги: 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
Что ж, пришло время поговорить о том, что затягивает разработку, убивает всякое желание делать проект и ломает ̶ ̶с̶е̶м̶ь̶и̶ сроки. О том, что мы сами порождаем и с чем раз за разом сталкиваемся. Время поговорить о плохом коде. Баги, костыли, велосипеды, антипаттерны, мараконы - вот это вот всё, откуда оно берется, как его опознать и обезвредить. Ну, или как с этим жить. Тема касается программирования в целом, хотя и с прицелом на игровую разработку, поэтому может быть интересна многим. Белка, пятница, вторая пара.

На первой паре мы завтра снова будем обсуждать, рисовать на доске и думать в этот раз над абсолютно реальным проектом, доступном в сторе. Обсудим работу со сценами, переходами и перезагрузками и как это ложится в ту архитектуру, которой мы пользуемся. Кому интересно - подходите к 8:50 примерно.
С опозданием конечно, но выкладываю видео нашей последней лекции, про плохие штуки в коде и что с ними делать https://www.youtube.com/watch?v=xJqoVlmxuNs&list=PLkgXLMuasx7Dch_t5j6Z-03ToPfB-4ddp&index=5
Напоминаю, что в эту пятницу практики и лекции не будет - пришло время подвести итог первой части нашего курса, посвященной коду. На второй паре будет контрольная, на которой желающим проверить свои архитекторские навыки будет предложено: а) посмотреть на какой-то код и сказать, что вам в нем не нравится, б) придумать решение какой-нибудь вполне реальной задачи из проекта, где придется расчехлить все свои SOLID, DRY и KISS + возможно добавлю несколько вопросов с первых лекций, но это неточно

Для подготовки рекомендовано посмотреть видеолекции и прочитать отзыв о лабе (кто сдал, но кому еще не ответил – завтра всем напишу). Кроме того, напоминаю, что близится срок согласования курсачей, после которого тему назначу я сам (бугага).

Если кто-то не из магистров тоже хочет написать тест (что я очень рекомендую сделать!) – отпишите в чат, пжалста
UPD: по общей договоренности, контрольную перенесли на 9:00. Как всегда - в Белке
Для тех, кому интересно :)
По контрольной. Работы я все почитал, лично результаты всем писавшим с ошибками и комментами отправлю на выходных – пока общие впечатления.

Со вторым заданием, там где «укажите ошибки в коде», справились получше, хотя и все равно общая закономерность такая, что чем мелочнее ошибка и чем быстрее её исправить, тем больше ей уделено внимания, а вот самые кривые с точки зрения проектирования моменты оказались весьма обделены вниманием.

А вот с первым сосвсем беда :( Возожно сказывается отсутствия опыта создания больших проектов, но каких-то адекватных решений, которые бы можно было использовать в проекте, крайне мало. Что не очень хорошо для уже практикующих программистов. Отсюда вопрос – что будем с этим делать? Я уже планировал перейти на лекциях ко всякой геймдизной лирике, а контрольную разбирать на практиках понемногу, но сомневаюсь что увижу на них всех написавших контрольную. Моё предложение – объеденить завтра практику\лекцию (начать часиков в 9 и дальше на второй паре) и сделать большой разбор заданий, такая себе больая практика по OOP/OOD, для того чтобы хотя бы указать направление, в каком стоит эту тему копать. Полноценный анонс (для репоста) сделаю вечером, а пока отпишите в чатик, кто за
OOP/OOD Workshop

Как бы не хотелось перейти уже к геймдизайну, программирование пока нас не отпускает. По горячим следам прошлого занятия и контрольной (см. предыдущий пост), завтра мы проведем большое занятие-практику (назовем это по-модному воркшопом) по объектно-ориентированому дизайну, на котором вместе попробуем спроектировать несколько игровых систем из тех, что я вам предлагал на контрольной и проанализируем, что же было сделано не так. И, что важнее - как писать программы так, чтобы их поддержка и измненение не вызывали реакции "да тут проще все переписать"

Итак, завтра, Белка – начнем в 9:00, закончим ближе к 12. Приглашаются все, кому интересно, как проектировать программное обеспечение так, чтобы потом не было мучительно больно и бесконечно грустно.
Видео нашей практики с последней пятницы. Всем кто писал контрольную - must have https://www.youtube.com/watch?v=FBS3aVlVUf8&index=6&list=PLkgXLMuasx7Dch_t5j6Z-03ToPfB-4ddp
Народ, такое дело - я заболел и на этой неделе у меня не хватит голоса на полноценное полуторачасовое вещание лекции, поэтому переход к теме графики, шейдеров, освещений и всего такого откладывается на одну неделю. То есть, завтра лекции не будет 😷
Возможно, потом организуем дополнительное занятие. Не хворайте!
После небольшой паузы мы снова возвращаемся к нашим занятиям по Игровой Разработке. До этого мы говорили об играх только с точки зрения кода, завтра же нас ожидает обзорное занятие по компьютерной графике.

Почему видеокарта занимает почти половину компьютера как по объему, так и по стоимости? Каким образом трехмерная модель в оперативной памяти превращается в картинку на экране монитора? Что такое шейдеры и зачем оно? За счет чего картинка в игре с каждым годом становится все реалистичнее и реалистичнее? Вопросов много, постараемся затронуть основное для понимания ситуации.

Занятие в большей степени общеобразовательное, поэтому приглашаются все желающие – 10:25, Белка. На первой паре занятия не будет.
Лекция о графике: разница между CPU и GPU, графический конвейер, OpenGL\DirectX\Vulkan, виды шейдеров, способы улучшения детализации, нормал мапы, буффер глубины и стенсил буфер https://www.youtube.com/watch?v=ty3tUp0p5Kg&index=7&list=PLkgXLMuasx7Dch_t5j6Z-03ToPfB-4ddp
На прошлой встрече мы расмотрели много базовых понятий в компьютерной графике, завтра же продолжим и углубимся в эту тему – как происходит вычисление освещения в 3D-сцене? Что такое Global Illumination и почему эта штука вместе с Physically Based Rendering позволяет современным играм и мультикам выглядеть настолько реалистично? Что такое настоящий Ambient Occlusion и почему то что мы видим в играх – не совсем оно? Чем отличается Forward Rendering от Deferred Rendering? Приходите, будет интересно.

Как всегда – Белка, пятница, 10:25