Setting up an Application Project

The simplest way to create a new Murl Engine project is by using the Dashboard. The command Create Project opens a dialog window where you can enter the project name along with other information:

create_project.png
Create Project Dialog
  • Template: Project template for the new project.
    • default: Minimum default project.
    • lua: Minimum Lua based project.
  • Main Directory: Main directory for the project.
  • Sub Directory: Sub directory for the project.

Both directory names (Main Directory and Sub Directory) need to be assigned a value because the project files use relative file paths to the tools and libraries of the Murl Engine. Therefore it is important that the project directory is placed two levels above the murl directory.

By pressing the Create Project button a new project is created. The created directory hierarchy looks like this:

[PATH_TO_MURL]
Dashboard.app
murl
tutorials
projects
games
MyProject

Directory Structure

The following sub directories can be found in the project directory:

MyProject
binaries
data
documents
project
resources
scripts
source

This default directory structure has proved to be very useful in many projects. You are therefore advised to keep the structure.

source

The source directory contains the source files of the project (C++ files and header files).

MyProject
source
my_project.cpp
my_project_app.cpp
my_project_app.h
my_project_logic.cpp
my_project_logic.h

data

The data directory is used to store all data files and assets for the project e.g. images, sounds, animations etc. The packages sub directory contains the resource directories and resource packages. Usually other sub directories are used as well like e.g. original for storing files in their original file format.

MyProject
data
packages
main.murlres
graph_camera.xml
graph_main.xml
graph_materials.xml
package.xml
main.murlpkg
startup.murlpkg

project

The project directory contains the individual project files for the different platforms and IDEs. One Xcode project is provided for iOS and one for OS X. For Windows individual projects for Visual Studio 2008, 2010 and 2013 are available. Individual command line scripts (bash scripts and batch files) for the Gnu Make build tool are provided for Android and Linux. The scripts utilize the common Makefiles in the common directory. So those Makefiles are shared between the Android build and the Linux build.

MyProject
project
ios
xcode
my_project.xcodeproj
osx
xcode
my_project.xcodeproj
win32
vs2008
my_project.sln
my_project.vcproj
my_project.vcproj.user
vs2010
my_project.sln
my_project.vcxproj
my_project.vcxproj.filters
my_project.vcxproj.user
vs2013
my_project.sln
my_project.vcxproj
my_project.vcxproj.filters
my_project.vcxproj.user
common
gnumake
module_my_project.mk
project_my_project.mk
android
gnumake
build_all.cmd
build_all.sh
build_debug.cmd
build_debug.sh
build_release.cmd
build_release.sh
clean_all.cmd
clean_all.sh
clean_debug.cmd
clean_debug.sh
clean_release.cmd
clean_release.sh
generate_key.cmd
generate_key.sh
install_debug.cmd
install_debug.sh
install_release.cmd
install_release.sh
make.cmd
make.sh
linux
gnumake
build_all.sh
build_debug.sh
build_release.sh
clean_all.sh
clean_debug.sh
clean_release.sh
make.sh

resources

The resources directory contains additional platform dependent resources like icons, launch images etc.

MyProject
resources
android
drawable
icon.png
...
ios
Icon.png
...

scripts

The scripts directory contains command line scripts for the project.

MyProject
scripts
atlas_config.xml
atlas_generator.cmd
atlas_generator.sh
pack_resources.cmd
pack_resources.sh
set_dir.cmd
set_dir.sh
set_env.cmd
set_env.sh

documents

The documents directory can be used for concept descriptions, ToDo lists, feature lists, app descriptions etc.

MyProject
documents
concept.txt

binaries

After a project has been built successfully, the created application file can be found in the binaries directory.

MyProject
binaries
android
release
my_project.apk
win32
vs2013
Debug
my_project.exe


Copyright © 2011-2024 Spraylight GmbH.