С чего начать — различия между версиями

Материал из Deeptown Manual
Перейти к: навигация, поиск
 
(не показаны 799 промежуточных версий, сделанные более чем 100 участниками)

Текущая версия на 15:25, 13 июля 2013

Внимание: Эта страница устарела. Некоторая информация может оказаться неактуальной

Содержание

[править] Где я?

Если вы читаете эту страницу, то видимо уже установили себе Deeptown SDK и хотите что либо с ним сделать :) Если еще не установили, то вам сюда: Deeptown SDK.

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

То что здесь будет описано, по большей части преследует одну цель — дать человеку отправную точку и помочь сориентироваться в многообразии информации. Мы не в состоянии объяснить все, а можем лишь указать путь :) Поэтому — пробуйте, пытайтесь, изучайте систему и делитесь своим опытом на форуме :) Кроме того, эта wiki — так же к вашим услугам. Если вам есть что добавить или исправить — милости просим.

[править] Что это? Как попасть в Диптаун?

SDK это набор программных средств, включающий в себя саму платформу диптауна (aka "движок"), а так же набор разнообразных, сопутствующих программ, таких как компилятор языка К++. Короче говоря, это основа, на базе которой и будет строиться Диптаун. На данный момент, "того" Диптауна еще не существует. Точнее, существуют некоторые его части у наших архитекторов, но они еще не в публичном доступе. Так что, "попадать" пока еще некуда.

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

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

[править] Первый запуск

Ошибка создания миниатюры: По-видимому, отсутствует файл /var/www/man.deeptown.org/images/a/aa/Showto_1.png
Ошибка создания миниатюры: По-видимому, отсутствует файл /var/www/man.deeptown.org/images/a/a9/Showto_2.png

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

Попробуйте запустить файл deep.exe (если вы в windows) или /opt/deeptown/bin/deep в *nix. Будьте терпеливы, потому что в первый запуск система производит индексацию содержимого каталога Media (того самого) и создает в нем файл ".index", который используется для поиска файлов самой системой. При последующих запусках эта операция выполняться не будет (только в определенных случаях).

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

Машиной можно ездить и сбивать кубики. Изначально они расположены справа и сзади от вас (конечно это все можно изменить!)

[править] Управление

  • Ctrl+Q — переключиться в режим курсора (управление окошком)
  • Двойное нажатие на заголовке внутреннего окна сворачивает его в заголовок (чтобы меньше места занимать)
  • W, S, A, D — движение камерой при зажатой кнопке Alt
  • Стрелки клавиатуры — управление машиной (попробуйте наехать на кубики)
  • Стрелка назад — тормозить (если едем назад — наоборот, давить кнопку вперед)
  • Кнопка "spawn object" интерфейса — создает в воздухе еще один кубик, где то неподалеку. Кубики создаются всегда случайным образом (и это тоже можно изменить!).
  • Кнопка "cleanup" — удаляет все созданные вами кубики (те которые были изначально — созданы другим путем, поэтому они останутся на месте)

Примечания:

  • Машина (а так же форма интерфейса) управляется скриптом /media/storage/media/scripts/bonnet.kpp
  • Переназначить клавиши управления можно редактируя файл /media/storage/etc/world/input.conf
  • Чтобы выйти из системы, надо либо нажать крестик на окне интерфейса, либо нажать Alt+Tab и закрыть окно рендеринга
  • Если вы обнаружили что то странное, либо программа попросту "совершила недопустимую операцию", то смело идите в багтрекер по адресу http://bugs.deeptown.org и оставляйте свое сообщение.
  • Есть еще и другие сцены, которые можно попробовать запустить. Для этого надо открыть файл /media/storage/etc/boot/services и раскомментировать одну из строчек client_wm:..., не забыв закомментировать строчку, где упоминается bonnet.scene!
  • Текущая версия модели ведет себя не очень хорошо, из за плохой настройки физических параметров. Для улучшения характеристик модели предусмотрен специальный туториал. Выполнив его вы научитесь править модели и получите хорошую модель машинки :)

[править] Консоль

Консоль Диптауна является стандартным средством взаимодействия с системой, которая позволяет (точнее будет позволять) всецело управлять системой и отдавать ей команды. На данный момент она реализована только в самых общих чертах (даже стандартных команд оболочки еще нет). В будущем она будет существенно расширена и дополнена.

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

Перед первым подключением необходимо создать пользователя Диптауна (не путать с пользователем операционной системы!). Для его создания необходимо запустить сценарий mkuser.pl, который находится в папке с медиаданными. У Вас будут запрошены имя пользователя, пароль, а также идентификаторы самого пользователя и его группы.

Чтобы подключиться к консоли из ОС Windows надо:

  1. зайти в меню Пуск
  2. открыть диалог "выполнить" (или сразу нажать Win+R)
  3. ввести туда telnet localhost 4830 и нажать Enter

Линуксоиды скорее всего и сами разберутся ;)

Далее, можно попробовать запустить программы, имеющиеся по умолчанию. Например можно ввести команду /bin/hello.gbc и получить простенькое тестовое окно с известным сообщением. Если Вы сами написали консольную программу и откомпилировали её с помощью kpp, не забудьте добавить полученный gbc-файл в файловую систему, как описано здесь. Просьба не судить строго, ведь это не конечный продукт, а всего лишь тесты :)

Если у Вас возникнет желание написать более толковое приложение — обращайтесь к нам и на форум.

Выход из консоли осуществляется вводом команды exit.

[править] Что еще можно посмотреть?

Практически все "интересные" вещи сосредоточены в уже известной вам директории Media. Приведем здесь список основных поддиректорий с комментариями к ним.

Media/storage
Это корневая директория для внутренней ФС диптауна. Все внутренние пути указываются относительно нее. Скажем, если в файле материала указана строка texture /media/textures/grass.png, то это значит что реальный файл расположен по адресу Media/storage/media/textures/grass.png.
Media/storage/bin
Здесь будут располагаться исполняемые файлы скриптов.
Media/storage/boot
Директория системного загрузчика (ничего интересного).
Media/storage/etc
А здесь хранятся файлы настроек. Заглянуть рекомендуется настоятельно. По крайней мере поизучать. Попробуйте загрузить другую сцену вместо той что грузится по умолчанию. Примечание: Все текстовые файлы в диптауне используют формат UNIX, когда строка переводится одним символом LF. Поэтому, в windows открывать их надо либо wordpad-ом (он правильно понимает переносы), либо другим редактором, поддерживающим такие файлы. Хорошо работает редактор в FAR Manager-е.
Media/storage/home
пока пустует.
Media/storage/media
Здесь тоже много чего интересного. Это основное хранилище различных медиа данных, имеющих отношение к собственно виртуальному пространству. Содержит такие поддиректории как:
  • materials — файлы материалов OGRE. Определяют графические свойства поверхностей моделей, такие как текстуры, цвета, привязанные шейдеры и др.
  • mein — медиафайлы для встроенного графического интерфейса, такие как скины и шрифты
  • meshes — здесь хранятся меш файлы загружаемых моделей. Более подробно про это можно почитать в статье импорт моделей в диптаун.
  • models — а здесь хранятся сами модели. Модель это нечто большее, чем просто меш с натянутой текстурой. Файл модели описывает также понятия, относящиеся к другим представлениям объекта, а не только к графическому. Например, там указывается масса модели, момент ее инерции и много других параметров. Смотри так же понятие объекта в пространстве.
  • scenes — если кратко, то сцена — это совокупность объектов, расположенных в некоторой области виртуального пространства. В этой директории хранятся файлы локальных сцен.
  • scripts — самое интересное :) Здесь расположены скрипты, задающие поведение отдельных объектов. Поскольку диптаун изначально создавался как интерактивная среда, то каждый объект, находящийся в виртуальном пространстве, может быть "живым" и "разумным". С объектом ассоциируется некоторый скрипт, который программирует его действия и управляет его поведением. Например, скрипт bonnet.kpp реализует интерфейс к той самой машине и позволяет пользователю (то есть нам с вами) управлять ей. Скрипт park.kpp создает интерфейс управления анимацией для сцены park, и сам создает эту анимацию. Все скрипты написаны на нашем языке K++.
  • shaders — хранилище для шейдеров. Думаю что это такое, объяснять не требуется.
  • textures — ну и здесь наверное все понятно.

[править] Что еще можно сделать?

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

[править] Программистам

Если вы знакомы с такими языками программирования как Паскаль, Си++ или Java, то вам не составит труда изучить, или по крайней мере разобраться, в языке K++. Он очень похож на эти языки.

Попробуйте например, модифицировать скрипт bonnet.kpp так, чтобы создаваемые кубики располагались не случайным образом а один над другим. Главное поставить высоту побольше, чтобы кубики не пытались телефрагить друг друга.

[править] Моделерам

Если вы умеете моделировать объекты в 3D пакетах, таких как 3D Studio, Maya или Blender, и желаете создать свои модели, то вам стоит обратиться в раздел Разработка моделей. Там в скором времени появится информация о том, каких правил следует придерживаться при создании моделей, а так же детально будет расписан процесс конвертирования моделей в формат Диптауна.

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

[править] Всем

Как вы понимаете, написание пространной и качественной документации — длительный и трудоемкий процесс, отнимающий наше время и силы. Несмотря на то, что мы стараемся поддерживать документацию на уровне, это не всегда возможно. Поэтому, если вы желаете поделиться собственным опытом в изучении Диптауна или написать HOWTO на определенную тему — пробуйте. Эта wiki к вашим услугам :) Собственно, она и создавалась для этих целей. В ближайшее время, мы постараемся написать серию HOWTO, затрагивающих основные вопросы, вроде скриптования объектов и создания собственных сцен. Ссылки на них будут размещаться здесь. Присоединяйтесь :)

Вы можете помочь проекту, даже не будучи программистом или дизайнером. Для этого достаточно просто быть грамотным человеком. Если на страницах этой wiki вы встретите неточности, орфографические, либо пунктуационные ошибки, или просто заметите дефиc там, где должно стоять тире — исправьте, пожалуйста, текст так, как вы считаете нужным. Это можно сделать с помощью вкладки "Править" вверху каждой страницы, либо с помощью соответствующей ссылки в каждом заголовке.

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

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
информация
документация
Инструменты