Розбір коду 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:

nebula
Шлях для встановлення я не змінював (оскільки при цьому менше геморою): C:\Python24
nebula

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

nebula
Тиснемо “Next” :
розбір

Я не знаю, як може піти збірка двигуна в тому випадку, якщо до установки 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 подвійним кліком.

nebula

Тиснемо "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
коду
Тиснемо кнопку “Finish”.

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

розбір

Мені від небули був потрібен взагалі-то поки тільки двигун, тому я використовував такі настройки.

Вкладка “Workspace generation”

У списку "Generator" вибираємо: vstudio8. Це максимальна версія msvc, на яку генератор здатний створити проект.

Зазначаємо пункт списку "Workspaces":

Інші галочки я не відзначав - мені потрібен голий двигун.

Тиснемо кнопку "Run". Якщо все нормально через кілька секунд або хвилин вискочить віконце “Build Summary”, у якому буде написано “All done! Built 2 workspaces”.

розбір
Тиснемо “Close” щоб закрити програму. У папці nebula2 з'явиться папка “build” з проектами:
nebula
У наступній статті буде описано процес доналаштування проектів у вирішенні та встановлення деяких бібліотек для роботи з медіаформатами, без яких двигун не збирається.