На выходных я участвовал в Ludum Dare 41.

Если вы не знаете, Ludum Dare — это гейм-джем, который длится от 48 до 72 часов, в ходе которого команды и отдельные лица пытаются создать игру с нуля на основе темы, которую им только что рассказали. Это довольно непринужденное мероприятие, предназначенное больше для личного развития, чем для призов или соревнований.

Game Jams и Hackathons — это возможность попробовать что-то новое и агрессивно поэкспериментировать в контролируемой среде. Некоторые из этих экспериментов работают, некоторые нет, но процесс зачастую важнее результата.

В последнее время я был очень занят, поэтому сжульничал. Самую малость. Я не делал игру, и хотя я начал (в основном) с нуля, концепция, над которой я работал, была на втором плане в течение нескольких лет.

Тем не менее, я все еще был в восторге, и весь опыт был довольно энергичным.

Что я построил

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

Сама Пятачок изначально была разработана за 48 часов на другом хакатоне. Затем я потратил около 4 лет, пытаясь понять, как заставить Пятачок работать так, как я хотел.

Это превратилось в небольшую кроличью нору. Ряд личных проектов изначально был выделен из Пятачка.

Я хотел, чтобы Пятачок мог транслировать свой прогресс в прямом эфире, но не было хорошего эмулятора Game Boy Color, работающего на Javascript. Поэтому я сделал форк одного из них, чтобы сделать его удобным для стримеров. Я хотел иметь возможность встроить свой поток на свой собственный сайт вместо Twitch, что привело к тому, что я узнал много о сжатии данных и задержке потока. И так далее, и так далее.

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

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

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

То, что у меня есть сейчас, чрезвычайно примитивно, но впервые за 4 года у меня наконец-то есть исходный уровень для работы и четкое направление, чтобы я мог снова начать экспериментировать.

Что прошло хорошо

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

Прямая трансляция

Для начала я транслировал большую часть своей разработки на Twitch (примерно 13 часов в течение двух дней).

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

Мой (удивительный) вывод заключается в том, что существует потенциальная выгода от такого кодирования даже без аудитории, хотя это не то, чем я хочу заниматься постоянно. Возможно, я продолжу вести регулярные трансляции в будущем и почти наверняка буду транслировать свой следующий хакатон.

Использование новых технологий

Я также выиграл от большего количества экспериментов с технической стороной вещей: в частности, я наконец начал использовать Vue, и я был удивлен, насколько он мне понравился!

Vue имеет (по большей части) довольно хорошо написанный API. Это очень беспристрастно, поэтому вам не нужно использовать его в качестве основы — вы можете использовать его для одного или двух компонентов, если хотите. Он достаточно умен, чтобы решать надоедливые проблемы (двусторонняя привязка данных), а затем убираться с дороги, чтобы я мог структурировать интересные части моего проекта так, как я хочу.

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

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

Что пошло не так

Меньшие сообщества

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

Хакатоны в RIT были действительно чем-то особенным, и, хотя участвовать в этом все еще было очень весело, это не совсем соответствовало тому опыту, который я имел обыкновение не спать до полуночи в комнате, заполненной другими одноклассниками и программистами.

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

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

Меньше ставок

Еще одна вещь, которую я пропустил, это большее давление. Я участвовал в Ludum Dare в основном из-за самомотивации; не было давления со стороны сверстников, мои друзья ничего не делали, и, в отличие от RIT, в конце не было демонстраций или демонстраций, которые заставили бы меня беспокоиться о создании чего-то функционального, нового или крутого.

К лучшему или к худшему, я узнал, что я процветаю в условиях высокого стресса. Поскольку я не планировал вносить свой законченный проект в официальную базу данных игр Ludum, мне никогда не приходилось делать трудный выбор, какие функции вырезать, и мне не приходилось проявлять почти такую ​​же изобретательность, как я часто делал во время RIT. хакатоны. Эти события были захватывающими отчасти потому, что они были катарсисом и подтолкнули меня к моим биологическим и умственным пределам как программиста.

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

Короче

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

Также приятно видеть, что Пятачок подает такие большие надежды. Код, который мне действительно удалось выпустить в открытый доступ, — это лишь верхушка айсберга, и я с нетерпением жду возможности поделиться им в будущем.

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

Это сообщение взято из моего личного блога. Если вам понравилось то, что вы прочитали, и вы хотите, чтобы я написал больше, вы можете помочь с финансированием моей зарплаты на https://patreon.com/danshumway.