Сборка Crystal Space
Автор: Ivan Ivanov
Итак, Вы решили «пощупать» движок CrystalSpace.
Здесь я опишу, как скачать, правильно скомпилировать движок для работы с Python 2.6 в WinXP, а позже немного пробегусь по принципу устройства движка и назначению отдельных частей.
CrystalSpace (далее - CS) поставляется разработчиками в 2-х версиях: как бы стабильная 1.4 и находящаяся в разработке 1.9. Она нам и нужна, так как лучше совмещается с Python.
Версию 1.4 можно скачать с офсайта одним архивом, но ее не рекомендуют даже разработчики.
Понадобится программа для работы с репозиториями, например, RapidSvn.
В ней жмете Ctrl-O, вводите URL https://crystal.svn.sourceforge.net/svnroot/crystal/CS/trunk и целевой каталог на локальном компьютере, я рекомендую [диск]:\Program Files\CS. На данный момент (05.03.11) исходники и прочий контент имеют объем около 2Гб.
Теперь, нужно скачать компилятор для CPP, на коем и написан движок. Я рекомендую Microsoft Visual C++ 2008 Express Edition с офсайта майкрософт (далее - MSVC), и все действия будут описаны именно для этой программы.
Следующий шаг – получение пакета стандартных библиотек для платформы Win: http://www.crystalspace3d.org/downloads/cs-winlibs/
Выбираем самую свежую версию, сейчас это cs-winlibs-x64-1.9_008.exe. Программа представляет собой инсталлятор, предлагающий в указанную папку установить некий минимальный набор библиотек, необходимых для работы движка, и плюс копирует их в папку CrystalSpace. Также она автоматически устанавливает их поддержку для других сторонних программ (в том чилсе и нашего MSVC). Для экономии места можно оставить поддержку только MSVC. Также устанавливает OpenAL.
Насчет Python 2.6: у меня он лежит (как и по стандарту): в [диск]:\Python26 Из site-packages установлены PIL с aggdraw (последняя версая все так же забагована и не рисует кривые Безье) и PyCEGUI (CS при проверке наличия pycegui ее не признает и требует какую-то лохматую версию, которой уж и не найти). Эти и кучу других 3rd party packages можно найти на http://pypi.python.org/pypi/
Для желающих Творить
.- Первый вариант, бета-Blender + бета-экспортер в формат CS. Скачиваем Blender 2.56 beta.
Вытягиваем RapidSvn’ом https://cyanox.nl/peragro/branches/b2.5cs/ в удобную директорию (у меня это C:/files/soft/b25toCS/) скрипты для экспорта контента в формат CS (XML world file, возможно, об этом подробнее позже). В удобном месте создаем текстовый файл exec.txt с нижеследующим содержанием:import sys, os sys.path.append("C:/files/soft/b25toCS/scripts/io") import b2cs
В строке "C:/files/soft/b25toCS/scripts/io" указываете свой путь к b25toCS, и не забывайте куда у Вас смотрят слэши.
Далее, ваяете необходимй арт, или, что проще - дорабатываете до удобоваримости экспортером тысячи имеющегося в Сети контента. Как наваяли необходимое – в окне Text открываем наш файл, Run Script. Если не работает без видимых причин– еще раз Run Script. - Второй вариант. Для Blender 2.49 на Python 2.5 (это важно, не 2.6, а именно 2.5) есть скрипт blender2crystal с замечетельным пользовательским интерфейсом. Стягиваем его отсюда: http://leapingcat.org/blender2crystal/index.php/Main_Page
Там же – вся документация, бат ю маст кен ту инглиш.
Да, конечно же, все это великолепие не заработает должным образом, пока Вы не скомпилируете CS.
Cборка.
Сперва необходимо установить глобальные переменные через Мой компьютер > Свойства > Дополнительно > Переменные среды > Переменные пользователя
Создаете следующие переменные:
- CRYSTAL=[диск]:\Program Files\CS
- CEL=[диск]:\Program Files\CEL (если есть и CEL)
- PYTHON_INCLUDE=[диск]:\Python26\include
- PYTHON_LIB=[диск]:\Python26\libs\python26.lib
- PYTHONPATH=%CRYSTAL%;%CEL%;%CEL%\scripts;%CRYSTAL%\scripts\python\frozen;C:\Python26
Возможно, с последней переменной я перемудрил, но как-то не было времени проверить, действительно ли нужны все эти директории. Если есть желание - проверьте, какие можно убрать.
Теперь открываете MSVC. Обновление, ждите. Открываете Сервис > Параметры > Проэкты и решения (в левой части окна, прокрутить вверх) > Каталоги VC++. Сначала из выплывающего списка вверху справа выбираете показать каталоги для: включаемые файлы, после чего > Создать строку, туда вписываете:
[диск]:\Python26\include
Теперь Файлы библиотек > Создать строку, пишете:
[диск]:\Python26\libs
Теперь Файл > Открыть Решение или проект > /CS/mk/msvc9/wkspytypical.sln Заметьте, wksPYtypical. Это стандартная сборка плюс несколько дополнительных библиотек, необходимых для совместимости с Питоном.
Теперь в Построение Диспетчер конфигураций выбираем нужную конфигурацию сборки, например release with DLLs. Какие-то туториалы по CS советуют собрать во всех возможных конфигурациях (~12 Гб дискового пространства), но нам этого не нужно.
Всё, можно жамкать заветную кнопку. Могут быть ошибки при построении, естественно, так как мы скачали bleeding-edge версию.
Теперь можно заходить в корневую директорию свежесобранного CS. Там появится несколько программ, папка out/release9/… , в ней- libs с заветным libcrystalcpace.lib
Можете побаловаться с приложением startme.exe, walktest.exe и др. в корневом каталоге CS. Если никогда раньше не видели PlaneShift, то теперь сможете убедиться, насколько движок тормознутый как хорошо движок оптимизирован.
В оф. туториале Walktest’у посвящен целый раздел, но я на нем подробно останавливаться не буду. Скажу лишь только, что если в скрипте экспорта из Blender’а жать Export+Run, то созданный из Вашей Blender-сцены скриптом xml-файл подгрузится именно в walktest.
#Crystal Space, #движки, #компиляция
5 марта 2011