post Категория: Сообщество скретчеровpost Комментариев (0)

Эта заметка была опубликована в Живом Журнале. Я перепечатываю ее здесь, поскольку мне кажется, что Скретч представляет собой лишь один из островов архипелага. Крокет – еще один остров. Также как и Алиса, о которой мы рассказывали недавно.

ИНСТРУКТИВНЫЙ ПРИМЕР ПО СРЕДСТВАМ МОДЕЛЬНОГО ПРОГРАММИРОВАНИЯ N 2.

ИП СМП N 2 “Croquet :: Быстрый старт”

Установка

Пакет объемом 75 мб скачивается с сайта http://croquetproject.org/ .
Установки не требует – просто надо распаковать в отдельный каталог, и запустить croquet.bat.
Откроется вот такое окно:

В нем предлагается несколько пунктов:

“Squeak Intro for Croquet” фактически предоставляет доступ к среде Squeak, на основе которой Croquet и создан. Кот, типичный объект Squeak, следит за движением мыши. Его можно например удалить стандартным для сквика способом.

само интро удивило :) никаого интра особо и нету, несколько строк текста.

“Scratch” – не понял :)

“Programming Tools”

Первые впечатления – интерфейс незнакомый и непривычный – в сравнении с “классическими” средами Borland, Microsoft, Eclipse. Похоже скорее не столько на среду программирования, сколько на какую-то системную оболочку отладки (или очень древнюю среду :) . Но к этому надо привыкать – похоже, во всех этих средах оболочки программирования отличаются от “классики”.

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

“First Steps” – доступ к базовому набору инструментов Croquet, а главное – к режиму взаимодействия в виртуальных мирах.

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

опасения также вызвало обещание “простого запуска в сети” – типа, серверы автоматически находят друг друга. потестировать это не удалось (сети нету), а для Интернета пока нет простой поддержки, хотя обещается, что
For wide area network connections we currently need to set this up by hand.
Code illustrating how this is done is in the section below called Connecting. We
are developing discovery services that will dramatically simplify this process.
Ultimately, this will be as easy as specifying a page location in a browser.
нет причин не верить авторам, которые утверждают, что как только связь с между мирами установлена, работа проходит очень устойчиво и быстро. правда, у меня она несколько раз зависала при попытке коннекта с несуществующим сервером, а вывести ее из такого состояния не удавалось. и к ресурсам все же весьма требовательна.
для коннекта по Интернету по идее достаточно ввести IP-адрес мастер-системы.

Бытие в виртуальном мире

Начнем тестирование. Оно просто – достаточно следовать краткой инструкции, выдаваемой тут же. Перетащим на РС значок Demo (Master). Сначала появится красный прямоугольник, и после загрузки всех данных (весьма долго может быть!) на экране появится зайчик.

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

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

Управление осуществляется правой кнопкой мыши (традиционно левая кнопка в Смолтоке – “манипуляция”, правая – “навигация”). Ее надо зажать, а само действие определяется положением указателя мыши относительно ЦЕНТРА виртуального экрана с зайцем. Если мышь чуть выше центра – начнется движение вперед, если сильно выше – движение будет быстрым. Также двигаемся назад – указатель смещаем ниже центра. Для поворотов и разворотов, соответственно, смещаем указатель в стороны. После небольшой тренировки осваивается быстро. Пробуем походить по миру крокета. Так, если отойти чуть подальше, появятся лица создателей.

Отметим также стрелки-клавиши вверх и вниз (аналогичны прокрутке колесика мыши). Они смещают аватар выше-ниже. Если в мире есть гравитация, то после подъема аватар будет плавно опускаться вниз.

Манипуляция: наводим указатель мыши на любой объект (в примере – любой из порталов) – над ним всплывает меню.

Пункты в нем таковы:
- крестик – удалить. Объект (в документации он называется “окно”) ликвидируется, если им больше никто не пользуется и никто на него не ссылается.
- фотоаппарат – создать скриншот содержимого окна и, также, пометку (landmark) для последующего возвращения (если объект – портал).
- стрелка – выравнивание объекта/окна прямо передо мной.
- рука – если сжата, окно будет следовать за мной (рядом). очень удобно!
- плюс/минус – раскрывает скрывает содержимое окна (рисует его).

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


Если окно – портал, то в него можно войти стандартным способом. При этом надо иметь в виду, что вид аватара может смениться! Так, в аквариуме заяц сменится на рыбку.

Порталы придуманы для иерархической организации рабочего пространства.

Существуют также трехмерные порталы – образы целого виртуального мира в миниатюре. Красиво!

Еще один пейзаж мира внутри мира:

Кстати, весьма красивый – походить по нему интересно.

Сами окна можно:
- таскать – зажав указателем и левой кнопкой мыши окно за верхнюю кайму;
- вращать – зажав боковую кайму;
- масштабировать – зажав за нижнюю кайму.

В любом из миров, конечно, можно делать все, что угодно, с объектами. Вот, я добавил в аквариум свою рыбку:

Если подвести курсор к нижней части экрана, всплывет меню.

Пункт Tools открывает доступ к сквиковскому инструменту создания и рисования объектов (с помощью его и была сделана рыбка). Пункт Avatars позволяет сменить свой вид.
Это я в зеркале – в новом обличье:

Помимо порталов существуют “почтовые открытки” (postcards) – связи с другими “физическими” мирами, на других серверах (для коннекта надо задавать IP-адрес). Есть их лайт-реализация: “проекции” (projections), которые лишь имитируют процесс контакта, позволяя обмениваться объектами быстро и эффективно.

Общение в Крокете

Путешествовать по мирам мы научились. Теперь посмотрим, как происходит простое общение. Запустим на нашем компьютере вторую копию Крокета (новым запуском Croquet.bat), она чуть покапризничает, но запустится. Откроем в ней Demo (Participant) – клиентское подключение к мастер-серверу, и больше делать ничего не надо. Он должен автоматически законнектиться с предыдущей копией сервера (Master-режим). Примерно вот так:

Нас уже двое!

Правда, на одном компьютере такая парочка может сильно тормозить.

При этом мы оба действуем в одном виртуальном мире – второй (участник) подключается к миру первого (мастер-сервера) и действует в нем.

Можно в каждом крокете запустить свой Master – свой мир. Например, в одном – Sailer Demo (Master) – с корабликом, а в другом – Simple Demo (Master). Чтобы их соединить, надо выбрать в меню Tools окна одного из миров пункт Connected to Another World и в появившемся окне, в поле Nearby Worlds – выбрать имя другого мира. Например, если коннектимся из мира Simple Demo (но порядок не важен), то выбираем мир Sailer Demo.
В результате в каждом из миров появится новый портал, и можно через них переходить друг к другу – в мир иной…

Это не отражение – это портал, откуда на меня смотрит другой заяц из иного виртуального мира:

Конечно, надо учитывать, что перебравшись в иной мир, на чужом сервере, возможны определенные проблемы с производительностью, из-за трафика…

Соединение может быть как two-way, так и однодорожечным (one-way). В таком случае мой портал работает только в ту сторону, в иной мир. А вот обратно я уже не смогу вернуться.

Наконец, для общения друг с другом есть чат – пункт Talk – Chat (есть также и аудио-чат).

Это я перебрался из своего в другой мир, через портал.

SBO

особой рефлексии не было, потому что процесс изучения прост, “в лоб”, по документации.

главное, – судя по примерам и после rtfm, программирование для этих миров кратко, просто и приятно :)
создать новый мир – пяток строк. + в самом мире уже есть встроенные средства его модификации.

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

таким образом мы познакомимся со всеми основными системами “продвинутого” программирования, а потом, по второму кругу, пойдем поглубже – в программирование (обычное и скриптинг), и в построение миров.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Комментарии отсутствуют

You should have a name, right? 
Your email address, I promised I won't tell it на anyone. 
If you have a web site or blog, you can type the URL right here. 
This is where you type your comments. 
Запомнить контактную информацию.