Создание игры “Space Invaders” на C# с нуля

preview_player
Показать описание
🔥Промокод на скидку 15% на все курсы ITVDN - 4YOUTUBE

Сегодня мы подготовили для вас вебинар по созданию игры “Space Invaders” на C# с нуля

Какой самый лучший способ изучить что-то новое? Конечно же, превратить это в игру! Этот способ хорош и в обучении программированию. Начните изучение языка C# путем создания игры на C#, а именно — консольной компьютерной игры Space Invaders. Обещаем минимум скучной теории и максимум практики. Создание игры на C# — это интересно!

Кому это будет полезно:

● Новичкам. Никогда не программировали? Это не повод отказываться от нового крутого опыта. У вас есть шанс создать игру на C# и получить опыт практического применения данного языка программирования, а также попробовать себя в роли разработчика игр.
● Начинающим C# разработчикам. Вы сможете углубить и применить на практике свои знания языка C# вместе с наставником, приступив к созданию игры Space Invaders.

Чему вы научитесь:

- Создавать игру на C#.
- Разбивать большую задачу на отдельные этапы и последовательно их реализовывать.
- Применять на практике процедурный и объектно-ориентированный подход для написания программ на С#.
- Понимать и применять основы алгоритмирования.
- Применять знания основ ООП для создания полноценной программы.
- Использовать функционал .NET Framework.

Программа тренинга:

- Рассмотрение и постановка общей задачи по созданию игры на C#.
- Составление технического задания (ТЗ).
- Краткое знакомство со средством разработки Visual Studio и языком программирования C#.
- Создание консольной игры «Space Invaders».
- Рассмотрение возможности создания игры на C# на других платформах – WPF, Unity.

00:00 Вступление. Знакомство с автором
00:58 План вебинара
4:15 Что можно создавать на C#
5:49 Карта специальностей
7:22 Об игре “Space Invaders”
12:50 Основные объекты игры
19:26 Создание проекта в Visual Studio
21:55 Создание списка игровых сущностей и сцены
46:24 Класс с настройками параметров игры
56:32 Применение паттерна Factory (Фабрика) для игровых объектов
1:00:49 Фабрика для создания кораблей-пришельцев
1:18:35 Фабрика для создания земли
1:23:49 Создание пользовательского корабля
1:33:30 Реализация Фабрики для ракет
1:37:25 Реализация отрисовки объектов
2:04:10 Класс для логики и вычислений (класс-движок)
2:17:06 Тест кода
2:32:09 Убираем “подёргивание” на экране
2:37:33 Реализация логики перемещения объектов
3:06:47 Класс-контроллер для перемещения корабля
3:31:07 Работа над Game Over
3:35:42 Реализация стрельбы и попадания
4:02:55 Добавление музыкального сопровождения
4:06:25 Подведение итогов
4:08:00 Домашнее задание
4:11:24 Вопросы и ответы

Если вас интересует создание игры, а именно — создание игры на C#, разработка инди игр, игры, геймдев, создание игр, вы задаетесь вопросом как создать свою игру и при этом желаете работать с современными инструментами разработки, на ITVDN вы сможете найти все необходимые материалы по изучению игростроения при помощи языка C# и самого крутого игрового движка для начинающих гейм девелоперов (разработчиков игр) — Unity.
Рекомендации по теме
Комментарии
Автор

Реализация логики перемещения объектов - 2:38:00 - 3:07:00 - почему при перемещении врагов отрисовка предыдущей локации происходит?
Ответ: у нас на экран происходит вывод матрицы. Мы записали в матрицу символ по координате, после изменения координаты мы записываем символ по новой координате а старую то не стираем. Решение (как бы сделал я) - в методе рендер либо обнулять нашу матрицу либо инициализировать ее только в этом методе(первое присвоение на момент написания комментария происходит в конструкторе)

Коммент пишу не досмотрев до конца ибо могу забыть позже, если на момент окончания записи проблема решена прошу простить. Очень интересный вебинар, спасибо автору. Но видно что автор привык не с консолькой работать😉

АлексейКолесниченко-пэ
Автор

Ура! Дякую організаторам і Армен Маилян, і вітаю також переможців! Це було круто!

anastasiia-tr
Автор

3:05:00 проблема с отрисовкой из-за неправильно метода ClearScreen() . Он не очищает наш массив символом _screenMatrix из которого берутся символы для отрисовки. . Сотвественно он заполняется символами.
Фиксится добавлением цикла с очищением матрицы в метод.

for (int y = 0; y < _screenHeight; y++)
{
for (int x = 0; x < _screenWidth; x++)
{
_screenMatrix[y, x] = ' ';
}
}

vladliberman
Автор

28:52 зачем создавать в классе логики поле отрисовки, которое отвественно за графику? В случае переноса игрового движка на другую платформу нужно будет вносить коррективы в логику класса. Почему GameObjectPlace класс, а не структура?

vladliberman
Автор

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

ikigai_games
Автор

Программа обучения по C# состоит из трех курсов:

1. C# Стартовый
2. C# Базовый
3. C# для профессионалов


По любому курсу в CyberBionic Systematics можно посетить бесплатное пробное занятие. Для этого оставьте заявку на странице курса и наши менеджеры свяжутся с Вами, чтобы добавить в группу.
Если Вы совсем новичок – в нашем учебном центре можно пройти полный 5.5-месячный курс по специальности C# / .NET Developer с нуля до уровня специалиста. Ближайшая дата старта курса C# / .NET Developer 27 июня.

Благодарим Вас за внимание к нашему тренингу и будем рады новым встречам с Вами.

О новых мероприятиях Вы можете узнать на нашем сайте.

ITVDN
Автор

Мне вот интересно, зачем на превью ставить нормальный кадр, а в уроке давать ЭТО (9:55)?

BroRabbit
Автор

А есть подобные ролики? Видел парочку подобных, очень удобно. Но хотелось бы пару десятков, чтобы уж точно безболезненно научится.

imaynedlog
Автор

добрый день! возник вопрос по проектированию...
а кто в ответе за передвижение объектов на сцене? GameEngine, который в методах передвигает объекты? или он должен вызывать методы самих Объектов (например, scene.PlayerShip.Move()), а они уже менять свои координаты там? То, есть, должны ли объекты знать о своей динамике, или её должен реализовать GameEngine?
Кто отвечает за появление новых/уничтожение старых объектов, просчитывает столкновения - тот же GameEngine? или, например, Сцена? спасибо

mves
Автор

А чего так тормозит в консоли? Комп не тянет графон?

ImmortalBest
Автор

просто ключевые слова данной лекции: "Какой-то, некий, некоторый, непонятный, неизвестный"
у меня вопрос, вы обучаете или издеваетесь? и какого хрена простите, вы просто взяли и скопипастили настройки? прописывать объясняя параллельно никак?

daniil