«Объясняю каждую строчку»: разработка игры в прямом эфире

Черновой вариант логотипа шоу.<br /> Интернеты
Черновой вариант логотипа шоу.
Интернеты

Всем привет. Возможно, вы помните меня по двум предыдущим статьям, которые относительно неплохо зашли. Рад, если это так. Это облегчит дело.

TL;DR - Буду на стримах делать простую двухмерную игру, попутно обучая всех зрителей искусству программирования. И обучаясь ему, конечно же. Будет образовательно-развлекательное шоу, где я попытаюсь донести до людей доброе, разумное, вечное по заветам Стива Макконнела и Роберта Мартина. За деталями следуйте в полную статью.

Канал на ютубе

Дискорд сервер, где я вместе со зрителями буду всё согласовывать.

Если у вас в голове возникли некоторые закономерные вопросы, читайте дальше.

WTF?

Да, я действительно собираюсь делать видеоигру на стримах.

Кто?

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

Пять лет опыта работы именно в индустрии. Если брать всё время, что я программирую, то получится слишком много. Прелесть программирования я познал ещё раньше прелести онанизма. Правда, более-менее прилично начал делать вещи только года два-три назад, когда развил в себе немного чувство прекрасного. И очень жалею, что не начал прививать себе его раньше. И я хочу это исправить если не для себя, то хотя бы для других новичков.

Я, к сожалению, ни разу не гуру разработки ПО. Но как говорится, хочешь в чём-то разобраться, попробуй объяснить это другим. Кроме донатов, я хочу собрать с этого шоу и опыта, чтобы перейти на новый уровень в профессиональном плане.

Если кому интересно по языкам: сишарпист, немножко эрлангист и, в домашнее время, немножко пайтонист.

Почему?

С чего меня вообще дёрнуло податься в стримеры? Вопрос стоит ставить по-другому: как так получилось, что я до сих пор не стримлю? Объясню почему. Те, кому вся эта предыстория как зайцу стоп-сигнал, смело проматывайте до следующего заголовка.

Когда-то я купил себе микрофон. Мне почему-то стрельнуло в голову, что я должен сделать аудио-версии нескольких любимых статей из ЖЖ. Зачем? Я предпочитаю даже не искать ответа на подобные вопросы. Скажем так, те самые аудиоверсии я сделал, но позже это дело подзабросил. А микрофон остался. На данный момент аккуратно пестую мечту сделать полную аудиоверсию великой книги Сорокина "Норма", но это так, лирика.

Чуть позже мне стрельнуло в голову попробовать себя в производстве видеоконтента и я купил себе приличную вебку. Покупать камеру жаба чуть-чуть душила. Что это был за видеоконтент? Ну, когда-нибудь я расскажу об этом, но не здесь и не сейчас. Он всё-таки, больше Канобу подходит, раз уж на то пошло.

Прибавьте к наличию нормальной вебки, нормального микрофона и тот факт, что я купил себе нормальное кресло. Нет, не ради стримов, просто захотелось комфорта.

Ещё задолго до этого я "приобрёл" несколько гнусавый голос и привычку очень громко разговаривать. Ещё я считаю себя умным и харизматичным. Что? Мне это говорили не только мама и бабушка.

С таким набором хлама, личностного и материального, моё вхождение в стройные ряды "бездельников-онлайн" стало неизбежным, как мировая революция. И, надо сказать, я ещё бодро так держался. Но случилось кое-что, что заставило меня сделать это шоу.

Первое. Я вспомнил, что когда-то хотел делать игры.

И откладывал это до того момента, когда я найду время, чтобы научиться рисовать. Что, конечно же, случиться в каком-то далёком будущем, когда я обзаведусь собственным жильём и смогу... В общем, то будущее было каким-то слишком далёким. И я бы, может быть, смирился и забил. Если бы мне не напомнили.

Второе. Я вспомнил, что люблю учить людей программированию.

Да, есть за мной такое. Я бы может быть даже пошёл в преподаватели в университете, если бы речь не шла о госконторе, где, пожалуйста, давайте больше не будем об этом, в этой статье я хочу обойтись без мата, правда. Но да, я люблю объяснять людям вещи связанные с программированием.

Третье. Я расстался со значительной суммой денег.

Вроде как временно. Я верю, что мне эти деньги вернутся. Но знаю, что вернутся не скоро. А жаба душит вот прям щас! Материальный подсрачник - хорошее дополнение ко всяким духовным движениям.

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

«Объясняю каждую строчку»: разработка игры в прямом эфире

Что?

Итак, я буду в прямом эфире делать простенькую двухмерную игру на Monogame. И это будет игра о похождениях отважных геометрических фигур. Причины моего выбора, надеюсь, очевидны. Прям вот в прямом эфире буду открывать Visual Studio и накидывать код в си-шарп (найдите способ употреблять символ решётки без превращение его в хэштег, пожалуйста).

Кстати, результат будет храниться в открытом репозитории на гитхабе, чуть что. Можно "форкать себе", скачивать и играться. Там, правда, только код. Ассеты (господи, да какие там ассеты, с моими навыками), возможно, выложу куда-нибудь на облачко. Вот ссылка на репозиторий:

Там пока пусто, конечно.

Результат будет запускабельным с самого первого билда. И от билда к билду игра будет по чуть-чуть "разрастаться". Как пример: сначала сделать, чтобы игрок не проходил сквозь стену. Потом так, чтобы он не проходил сквозь стены. Потом добавлю, например, стрельбу или двойной прыжок. А потом отрефакторю код, потому что это надо делать постоянно, а я уже три коммита этого не делал.

Почему без диз-дока? Потому что стихийный процесс, как мне кажется, будет интереснее. Как минимум потому, что зрители могут по дороге сгенерировать кучу идей. Этакий Early Access для самых отбитых. Плюс к тому, я уже не один раз строил себе какие-то планы, а потом всё забрасывал из-за того, что не очень хорошо понимал с какой стороны за это взяться.

Что до жанра, то тут ещё могут быть варианты. Я по этому случаю даже опрос сделаю. Чисто консультативный. Да, вы всё правильно поняли, я даже с жанром специально определятся не стал. Будем решать вместе.

Какую по жанру игру начать делать на стримах?
Top-down шутер.
Платформер.
Run'n'gun.
Tower defense - сравнительно скучный вариант, но пусть. Возможно, меня понесёт и я чуть попозже вколхожу туда элементы RTS.
Другое (нет, не метроидвания, пожалуйста, я хочу сделать хоть что-то до пенсии).

Как?

Как я себе представляю процесс? Я ставлю себе какую-то локальную задачу. Например, сделать так, чтобы главгерой не проходил сквозь стены. Героически её решаю, попутно объясняя, почему я решаю её именно так. После этого я сохраняю эти изменения в git и заливаю их на github. Каждый стрим начинается с "в предыдущих сериях", где я быстренько пробегаюсь по предыдущим коммитам.

Я питаю надежду, что буду как Боб Росс с благостно-одухотворённым видом вещать какие-то простые для меня вещи, которые будут удивлять и вдохновлять зрителей. Буду этаким просветителем, открывающим красоту программирования людям.

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

Я не гарантирую, что по моим стримам можно будет научиться программированию. Но я сделаю всё, чтобы заинтересовать всех, кто ещё не заинтересован, и помочь всем, кто уже заинтересовался и начал его изучать. Возможно, некоторое представление о том, что именно я буду рассказывать, даст этот репозиторий, который я сделал для одного знакомого, чтобы показать, как сделать код менее загадочным:

Где?

Ютуб. Уже успел проверить, что при качестве 1080p можно рассмотреть исходный код. Как и на 720p. Тем, у кого дно-интернет или экранчик телефона, мои соболезнования. Я постараюсь всё озвучить, а код потом можно будет почитать на гит-хабе.

Для координации и присмотра за уже имеющейся толпой людей наука ничего лучше дискорд-сервера не придумала. Там, думаю, и будет происходить основной движ вокруг шоу.

А вот где привлекать новых людей, это отдельный вопрос, над которым надо много думать. Пока что мне приходит в голову только делать время от времени посты на DTF с апдейтами. Но слишком часто их делать тоже нельзя. Можно ещё попробовать сунуться на Хабр. Завести и продвигать свои сообщества в соцсетях. Буду рад выслушать ваши рекомендации в комментариях.

Когда?

Чем чаще смогу, тем лучше. Думаю, надо проводить хотя бы два стрима в неделю по два часа.

Если я вдруг смогу сделать свой режим дня чуть менее всратым, то освободятся будние вечера. Так как я имею некоторые надежды на этот счёт, то запилю ещё один опрос:

Когда вы готовы смотреть меня в будние дни? (мой часовой пояс: +3, чуть что)
18-20
20-22
22-24
00-02 (послушать меня на ночь)

Ну, и само собой, у меня остаются выходные. Утро отпадает по любому. Но вот после обеда или поздно вечерком можно будет постримить.

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

Остальные вопросы:

Будем решать в комментариях.

Ещё раз все нужные ссылки:

UPDATE:

Был проведён тестовый нулевой стрим. Там я рассказал о том, что мы используем VS2017 Community Mode, Monogame, поставленный на него и git.

Так же я рассказал о том, что я буду делать top-down shooter. Или, правильнее, twin-stick shooter. В любом случае, там будет вид сверху и много стрельбы. Ссылка на полутестовый эфир:

116116
51 комментарий

НЕЕЕЕТ! Только не платформер! Top-Down шутер гораздо более интересен и информативен в плане взаимодействий между игроком и противниками. И вообще сам контроллер Top-Down гораздо более вариативный, нежели платформер. Если будут еще и подтягивания на препятствия и прочие лазательные штуки, то вообще цены не будет. Всё это потом легко, кому надо, можно будет и в платформерное измерение перевести.

10
Ответить

Автор конечно неприкрытый графоман, но такие статьи в рубрике геймдев меня радуют больше, нежели что-то типа... ну вы сами поняли 90% контента этой рубрики (яростно послан случайным читателем на более технические ресурсы типа девелоперских форумов), когда в ней не то что каких-то листингов кода не видно, не видно даже попыток обсосать теорию, того или иного механизма на котором строится какой-либо аспект игры, и идет подмена понятий и замещение личными ощущениями от "физики@геймлея", того как на самом деле это было реализовано. Мои слова не в коем случае не укор, просто хотелось бы видеть больше именно технической части с пруфами, а не рассуждений "это работает вот так имхо". Закидывайте ваши статьи кодом, пусть всем будет так же плохо как и вам смайлик_садистской_содомии.

7
Ответить

Батенька, да вы тоже графоман ;)

1
Ответить

Комментарий недоступен

Ответить

Интересненько!

2
Ответить

Так, раз уж спросили:
Ютуб просит один день выждать, поэтому стрим завтра. В 22 часа по Москве. Ссылка на ютуб канал в статье, в начале и в конце.
Если вдруг случится чудо, и они разрешает сегодня до вечера, проведём сегодня в 22 часа.

1
Ответить

Тогда я очень заинтересован. Всегда лучше схватывал, когда объясняют "вживую", учебники как то мне совсем не заходят, даже самые хваленые. Я щас программирую всякую элементарщину в Visual Basic. Спасибо за ваши будущие старания)

1
Ответить