Розбір коду Nebula Device2
Вступ
У цій статті я описую процес складання двигуна небула. При цьому я користувався мануалом Build System GUI User Manual з файлу nebuladevice-code-3307-trunk\nebula2\buildsys3\docs\Manual і виходив з логічних міркувань у тих місцях, які втрачені в мануалі. Не скажу, напевно, що це правильний спосіб. Мені потрібен був результат, і я зробив так, як зміг.
При складанні двигуна небули вихідний код двигуна компілюється в статичні бібліотеки, які потім можуть бути скомпоновані з вашим власним додатком. Результат такого компонування залежить повністю від програміста - що і як він писати за допомогою небули від движка не залежить. Можна написати гру, а можна просто хелловорд.
Вимоги
При складанні двигуна знадобиться вбудоване середовище розробки Microsoft Visual C++ 2008 Express Edition (msvc2008ee). На ньому збиратимуться статичні бібліотеки (ліби) движка. Справа в тому, що версія msvc2008ee найближча до версії 2005 року, яка є максимальною версією, проект якої може бути зібраний системою складання небули. IDE msvc2008ee була свого часу досить популярна, та й поки вона суб'єктивно зручніша для мене. Якщо у вас вона не встановлена, то потрібно її завантажити та встановити. Нещодавно я скачував її звідси.
Ще для збирання двигуна буде потрібний встановлений DXSDK. Потрібен буде DXSDK не пізніше 2007 року і не раніше 2005 року. Можна спробувати завантажити звідси
Генерація проектів небули
Далі я припускатиму, що проект збиратиметься в папці D:/Documents. Можна використовувати будь-яку іншу папку. Але так як я всю збірку провів у папці D:/Documents, то користуватимусь при описі їй.
Отже, приступимо. Завантажуємо вихідники небули звідси (download snapshot).з себе архів nebuladevice-code-3307-trunk. Копіюємо його в папку D:/Documents. Розпаковуємо архів з вихідними джерелами так, щоб не було двох папок з ім'ям nebuladevice-code-3307-trunk, вкладених одна в одну. Для цього можна стерти в шляху розпакування частину шляху - я виділив її на малюнку нижче:
Повинен отримати такий шлях до папки nebula2, в якій лежать папки appwiz, bin, buildsys3 і т.д.:
Далі при описі операцій я опускатиму цю частину шляху. Для роботи системи складання проектів були необхідні дві бібліотеки: бібліотека мови програмування python і модуль gui wxPython2.6. Завантажити wxPython2.6 можна звідси. Я вибрав дистрибутив за допомогою юнікоду: wxPython2.6-win32-unicode-2.6.0.0-py24.
Для роботи бібліотеки wxPython2.6 потрібна python версії 2.4. Я вибрав версію 2.4.4 як найбільш фіксовану підверсію версії 2.4. Файли інсталяції для python 2.4.4 можна завантажити звідси. Вибираємо дистрибутив: Для x86 процесорів: python-2.4.4.msi
Тепер необхідно встановити python2.4.4 та wxPython2.6. Спочатку потрібно встановити python 2.4.4.
Запускаємо інсталятор python 2.4.4:


При установці python, і це важливо, я не відключав опцію “Register Extensions”, щоб можна було запускати файли з розширенням .py подвійним кліком. Залишив увімкненим ще "Utility Scripts".


Я не знаю, як може піти збірка двигуна в тому випадку, якщо до установки python2.4.4 вже була встановлена інша нова версія python. При цьому може статися так, що за замовчуванням подвійний клік по файлах з розширенням .py викликатиме запуск інтерпретатора python новішої версії і генератор проектів може працюватинеправильно. Порада тут може бути такою. Якщо з генерацією рішень будуть косяки, потрібно видалити всі встановлені дистрибутиви python і wxPython, у тому числі і новіші версії python, встановити python2.4.4 і wxPython2.6, виконати всі наступні кроки по генерації рішень, а потім можна встановити ту нову версію python ви видалили.
Потрібно сказати, що я сам довго мучився з установкою, напевно, раз 15 встановлював різні версії python і wxPython. У мене вже була встановлена версія python 3.1.4, і розширення .py було налаштоване на інтерпретатор python цієї версії. У результаті дійшов такого рішення:
- видалив усі встановлені версії python;
- почистив реєстр програмою CCleaner;
- встановив python 2.4.4;
- встановив wxPython2.6.
Продовжимо. Після встановлення python2.4.4 запускаємо установник бібліотеки wxPython2.6 подвійним кліком.

Тиснемо "Next". Далі вийде віконце, в якому потрібно погодитись з ліцензією, натиснувши кнопку “Yes”.
При встановленні краще не змінювати той шлях, який пропонується за умовчанням:

Далі вийде вікно, де потрібно вибрати тип установки. Вибираємо Custom installation – залишаємо галочку напроти “wxPython modules and library” та галочку навпроти опції “ Make this install be the default wxPython”.

Наприкінці установки я зняв галочки з пунктів:
- View README.win32.txt
- Compile python .py files to .pyc
- Create batch files for tool scripts

Після встановлення вищеописаних бібліотек переходимо до генерації рішень двигуна. Для цього подвійним кліком запускаємо файл update.py у папці nebula2. Цією дією ви запустите генератор проектів"Nebula 2 Build System".

Мені від небули був потрібен взагалі-то поки тільки двигун, тому я використовував такі настройки.
Вкладка “Workspace generation”
У списку "Generator" вибираємо: vstudio8. Це максимальна версія msvc, на яку генератор здатний створити проект.
Зазначаємо пункт списку "Workspaces":
Інші галочки я не відзначав - мені потрібен голий двигун.
Тиснемо кнопку "Run". Якщо все нормально через кілька секунд або хвилин вискочить віконце “Build Summary”, у якому буде написано “All done! Built 2 workspaces”.

