понедельник, 14 октября 2013 г.

Создание проекта для Torque 2D 2.0

Юрий "yurembo" Язев

      К сожалению, Torque 2D 2.0, распространяемый под свободной лицензией MIT, не обладает средствами для создания нового проекта, другими словами, в его поставке отсутствует менеджер проектов. Для более подробного введения в движок и его культуру обратись к моей статье «Indie-gamedev», которая будет опубликована в ноябрьском номере журнала «Хакер». А тут мы рассмотрим возможность создания нового проекта.
     Хотя на Torque 2D можно разрабатывать игры как из-под Windows, так из-под Mac OS X, я предпочитаю первый вариант, ибо под Windows есть Torsion. Torsion – это полнофункциональный редактор скриптового кода на языке Torque Script, разработанный компанией Sickhead Games. Кроме стандартного набора редактирования, форматирования и подсветки этот редактор включает средства автодополнения кода (aka IntelliSense) и средства отладки, как положено с точками останова и пошаговым выполнением.
     Новый проект можно создать, как дополнение для Sandbox, поместив новый проект в подпапку modules репозитария движка. При этом название родительского каталога для нового проекта должно оканчиваться на «Toy», чтобы во время запуска Sandbox смог задетектить этот каталог и прочитать его содержимое. После этого, он добавит новый проект в список запускаемых игр.

     Но чаще требуется создать независимый от Sandbox’а проект. Для этого, к примеру, на уровне папки modules создадим папку для нашего проекта, пусть будет: MyProject. Сразу же скопируем в нее исполняемый файл Торка, сейчас он называется Torque2D.exe, но в целевой папке его можно переименовать. Также, в ней создай подкаталог modules, в котором размести необходимые для будущей игры ассеты. Вообще, ассеты заслуживают отдельного разговора, поэтому перенесем его на другой раз.
     В каталоге с игрой должен находиться файл main.cs, с него начинается выполнение любой игры. Содержимое этого файла, с некоторыми исключениями, примерно одинаковое:

// Set log mode.
setLogMode(2);

// Set profiler.
//profilerEnable( true );

// Controls whether the execution or script files or compiled DSOs are echoed to the console or not.
// Being able to turn this off means far less spam in the console during typical development.
setScriptExecEcho( false );

// Controls whether all script execution is traced (echoed) to the console or not.
trace( false );

// Sets whether to ignore compiled TorqueScript files (DSOs) or not.
$Scripts::ignoreDSOs = true;

// The name of the company. Used to form the path to save preferences. Defaults to GarageGames
// if not specified.
// The name of the game. Used to form the path to save preferences. Defaults to C++ engine define TORQUE_GAME_NAME
// if not specified.
// Appending version string to avoid conflicts with existing versions and other versions.
setCompanyAndProduct("YazevSoft", "MyProject" );

// Set module database information echo.
ModuleDatabase.EchoInfo = false;

// Set asset database information echo.
AssetDatabase.EchoInfo = false;

// Set the asset manager to ignore any auto-unload assets.
// This cases assets to stay in memory unless assets are purged.
AssetDatabase.IgnoreAutoUnload = true;

// Scan modules.
ModuleDatabase.scanModules( "modules" );

// Load AppCore module.
ModuleDatabase.LoadExplicit( "AppCore" );

//-----------------------------------------------------------------------------

function onExit()
{
    // Unload the AppCore module.
    ModuleDatabase.unloadExplicit( "AppCore" );
}

     По комментариям все должно быть понятно, отмечу лишь некоторые моменты: $Scripts::ignoreDSOs = true; - позволяет задать пропуск скомпилированных DSO-файлов; строка: ModuleDatabase.scanModules( "modules" ); задает каталог с модулями игр, т.к. для одного исполняемого файла может быть несколько игр (подобно Sandbox); с другой стороны строка: ModuleDatabase.LoadExplicit( "AppCore" ); указывает основные модули, которые необходимо загрузить в начале загрузки приложения до того, как будут загружены модули игр.
     Перейдем, собственно, к цели данной статьи – созданию Torsion-проекта. Для этого в каталоге с проектом создай текстовый файл main с расширением torsion. Открой его с помощью какого-нибудь редактора, например, Notepad++, и напиши следующий код:

     <TorsionProject>
     <Name>main</Name>
     <WorkingDir/>
     <EntryScript>main.cs</EntryScript>
     <DebugHook>dbgSetParameters( #port#, "#password#", true );</DebugHook>
     <Mods>
     <Folder>modules</Folder>
     </Mods>
     <ScannerExts>cs; gui</ScannerExts>
     <Configs>
     <Config>
     <Name>Release</Name>
     <Executable>MyProject.exe</Executable>
     <Arguments/>
     <HasExports>true</HasExports>
     <Precompile>false</Precompile>
     <InjectDebugger>true</InjectDebugger>
     <UseSetModPaths>false</UseSetModPaths>
     </Config>
     <Config>
     <Name>Debug</Name>
     <Executable> MyProject _debug.exe</Executable>
     <Arguments/>
     <HasExports>false</HasExports>
     <Precompile>false</Precompile>
     <InjectDebugger>true</InjectDebugger>
     <UseSetModPaths>false</UseSetModPaths>
     </Config>
     </Configs>
     <SearchURL/>
     <SearchProduct>main</SearchProduct>
     <SearchVersion>HEAD</SearchVersion>
     <ExecModifiedScripts>true</ExecModifiedScripts>
     </TorsionProject>

     Поскольку, приведенный код не нуждается в особом пояснении, обратим внимание лишь на отдельные моменты. Вначале:

     <TorsionProject>
     <Name>main</Name>

     указывается название торсион-проекта; в тэгах <EntryScript> и </EntryScript> задается главный скрипт проекта; между тэгами <DebugHook> </DebugHook> вызывается оператор dbgSetParameters для установки удаленного отладчика, в большинстве случаев не используется; тэги <Folder> служат для задания папки, проверяемой при загрузке Torsion’а на наличие скриптовых файлов; следующим тэгом <ScannerExts> выбираются расширения для отбираемых фалов с кодом. Далее, следуют секции для установки отладочной и релизной версий проекта, подробно их разбирать не имеет смысла, ничего интересного они не представляют, кроме задания имен исполняемых файлов:

     <Name>Release</Name>
     <Executable>MyProject.exe</Executable>
     и
     <Name>Debug</Name>
     <Executable>MyProject_debug.exe</Executable>

     На этом создание Torsion-проекта завершено; сохраняем и закрываем файл, щелчком по нему запустится редактор Torsion, который загрузит скрипты из папок, на которые был нацелен.
     Torque 2D имеет много преимуществ перед конкурентами (см. ноябрьский номер «Хакера»), однако разработка игр с его помощью таит в себе свои подводные камни, ровно, как и любая другая технология; первый шаг – создание проекта мы коротко рассмотрели в данной статье, и, будем надеяться, продолжим обсуждение этого движка в будущем.

Комментариев нет:

Отправить комментарий