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

Компьютеры (пока) не были похожи на Голливуд или Netflix, где можно было просто сидеть и смотреть контент.«Развлекай меня, машина!» Я скомандовал, подключая его, но он просто скромно ответил «C:\›». Что можно ответить на это загадочное, но прекрасное увещевание? Я должен был вводить команды, управлять им, программировать его. Я должен был делать вещи.

Знакомство с БЕЙСИКОМ

Мой двоюродный брат первым показал мне, что если я наберу «QBASIC» в приглашении «C:\›», я получу следующее:

А потом он показал мне, что я могу набирать инструкции, а затем запускать их, и машина будет делать все, что я захочу.

Что это за злое колдовство? «Это БАЗОВЫЙ. Это язык программирования язык». Мне тогда было 12, и я вдруг точно понял, как проведу остаток подросткового возраста.

Тогда мы полагались на печатные книги для получения технической информации (интернет как бы существовал, но он пищал и чирикал, блокировал телефонную линию и стоил больших денег). Мне попалась книга по BASIC, которую мой отец привез из США. Я выучил бейсик столько же, сколько выучил английский по этой книге (иногда я выучил английский с бейсика, например, английское слово «краска», которое, как я полагал, должно означать «заполнить цветом», поскольку это то, что делает код).

В каждой компьютерной игре, в которую я играл, я спрашивал себя: как бы я запрограммировал ее на Бейсике? Все, чему я научился в школе, было поводом для небольшой программы BASIC. Нужно добавить два числа? БАЗОВЫЙ. Список покупок? БАЗОВЫЙ. Организовать мою комнату? Конечно, давайте сделаем программу на BASIC, чтобы я мог записывать и получать информацию о том, где я хранил физические объекты (на самом деле я никогда не заканчивал эту программу и не организовывал свою комнату).

Было неописуемое удовольствие создавать эти глупые программы и смотреть, как они оживают. Я делал небольшие игры или утилиты и раздавал их своим друзьям на дискетах. Я думаю, что большинство из них просто делали вид, что им это нравится, но некоторые из них приходили после школы, чтобы посидеть со мной за компьютером, и мы вместе работали над внесением в них изменений. Может ли игрок двигаться быстрее? Конечно, может. Может ли меч нанести больше урона? Ага, давайте изменим строку 2560. Может ли меч действительно выглядеть как меч, а не как белая линия шириной в 1 пиксель? Э-э... ну... где ваше воображение?

Зарплаты и прочее

Потом я вырос, стал лучше разбираться в программировании, устроился инженером-программистом, писал более сложные программы (но так и не организовал свою комнату).

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

Конечно, мне нравится «серьезное программирование» — иначе я бы не проработал в технике двадцать лет! Но часть меня всегда стремилась воссоединиться с этой первозданной, беззаботной и веселой стороной программирования, которая, возможно, ближе к искусству, чем к инженерии. Не только для меня, конечно, но и для будущих поколений программистов.

3D + Geocities + BASIC = ?

Итак, это подводит меня к тому, почему я бросил свою хорошо оплачиваемую работу в сфере технологий через 11 лет и отправился создавать Rooms.xyz с моими коллегами Джейсоном Тоффом и Ником Крюге. У Джейсона была первоначальная идея позволить людям создавать комнаты в 3D, чтобы попытаться подключиться к магии Geocities в 90-х годах.

Затем я подумал: что может быть лучше этого места и возможности, чтобы прикоснуться к магии Бейсика?

Конечно, были опасения, что добавление кода в микс сделает его сложным или пугающим. Но вот что меня раздражает: почему так много людей думают, что код сложный и пугающий? Людей, которые хотят изучать программирование, постоянно удерживают от этого «более мудрые» люди, которые думают «нет, мы не должны пока показывать им код! Они убегут! Вот, поиграй с этими маленькими визуальными мерцающими писклявыми логическими блоками». А потом они изобретают какую-то систему, заменяющую программирование, которая полна непонятных визуальных метафор и странных маленьких проводов и цветов. Любой, кто пытался делать в таких системах что-то помимо основ, быстро понимает, что это гораздо более ограничено, а также сложнее, чем программирование, а не проще.

Мы хотели «низкий пол, высокий потолок»: то есть легко начать, но с большим пространством для роста. Поэтому я сказал: дайте людям настоящее программирование! Поэтому я внедрил язык сценариев Lua и разработал API для Rooms, чтобы сделать его простым и понятным, но в то же время мощным, чтобы люди могли дать волю своему воображению.

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

Rooms.xyz

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

Речь идет об удовольствии создавать вещи, удовольствии строить и программировать. Каждый может что-то придумать и увидеть, как это воплощается в жизнь. Каждый является творцом и потребителем. Это не еще одна социальная платформа: это массовый дух Geocities. Это не очередной пятизвездочный ресторан: это обед по соседству. Это не завернутая в пленку фигурка, которую вы кладете на полку: это ведро с LEGO, где все разбирается и снова собирается вместе.

Это для всех: кодеров, художников, музыкантов, людей, которые хотят изучать программирование, детей, фан-клубов, людей, которые хотят создать свое собственное трехмерное пространство в Интернете. Создавайте мемы, мини-игры, истории «выбери свое приключение» и все, что только можно вообразить!

Вы даже можете создавать персонажей с поддержкой ChatGPT, которые разговаривают с пользователем на основе простой подсказки:

Все эти функции (и многое другое) можно найти в нашей обширной документации по API.

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