The Sigma game engine for creating games on multiple platforms. The name Sigma was chosen due to its meaning in math of summation notation. In Sigma, engine components are assigned to entities, and it is the sum of all the components that makes an entity.
Requires CMake and one of the following compilers:
- GCC 4.8 or newer;
- Clang 3.3 or newer;
- Visual Studio 2010 or newer;
The easiest way to contribute is to fork and experiment. To better understand the organization please refer to this drawing.
Coding standards and practices can be found here.
Sigma requires the following dependencies: <<<<<<< HEAD
Web GUI now uses Chromium Embedded Framework.
- GLFW 3.0.0 or newer;
- GLM;
- SOIL;
- Bullet; <<<<<<< HEAD <<<<<<< HEAD
- Awesomium; =======
- Chromium Embedded Framework 3;
b27385e1b5d96c34ecc6ea1671f1fe756d99e0f7
Sigma on Linux also requires GTK+ 2, due to usage of Chromium Embedded Framework.
When building these libraries from source, always build them as shared objects (.so
). In cmake-builds, this can be done using cmake -DBUILD_SHARED_LIBS=ON
.
You'll also need a package of assets. Unpack it in the build/bin/ directory.
Make sure you use a binary release from Adobe. Use the latest version that is NOT marked as dev (trunk).
- Unzip the downloaded tarball.
- This step depends on your platform. Make sure to use the Release build mode.
- Windows build the included
libcef_dll_wrapper.vcxproj
project - Linux run
make libcef_dll_wrapper BUILDTYPE=Release
- OS X use the
cefclient.xcodeproj
Xcode project.
- Windows build the included
- Make
cef/
andcef/bin/
directories inSigma/
- Copy the
out/Release/obj.target/libcef_dll_wrapper
directory, if any, and the contents ofResources/
directories intoSigma/cef/bin/
- Copy the contents of include/ directory into Sigma's include/.
- Copy
out/Release/obj.target/libcef_dll_wrapper.a
(or .lib) toSigma/cef/
- This step also depends on your platform.
- Windows copy all the .dll files in
Release/
toSigma/cef/bin
, then copy the .lib file intoSigma/cef/
- Linux or OS X copy the entire contents of
Release/
intoSigma/cef/bin/
- Windows copy all the .dll files in
- On Linux and OSX, make a symlink pointing to libcef.so (or .dylib) in the
cef/
directory. - Make a symlink pointing to
Sigma/cef/bin/libcef_dll_wrapper
in thecef/
directory.libcef_dll_wrapper
andlibcef_dll_wrapper.a
must appear in the same place, otherwise you will get a "Malformed Archive" error when linking.
- If you get "Multiply defined symbols" errors building Sigma on Windows with Visual Studio, then make these changes in the libcef_dll_wrapper properties: C/C++ / Preprocessor, edit the definitions to set
_HAS_EXCEPTIONS=1
instead of 0; under C/C++ / Code generation, select the /MDd or /MD runtime library; rebuild and copy the libcef_dll_wrapper.lib tocef/
directory.
=======
Sigma on Linux also requires GTK+ 2, due to usage of Chromium Embedded Framework.
You'll also need a package of assets. Unpack it in the build/bin/ directory.
<<<<<<< HEAD Chromium Embedded Framework is not a standard library that is thrown into compiler's directories.
Make sure you use a binary release from Adobe. Sigma is developed using the latest stable version.
-
Unzip the downloaded tarball.
-
This step depends on your platform. On Windows, build the included
libcef_dll_wrapper.vcxproj
project. On Linux, runmake libcef_dll_wrapper
. On OS X, use thecefclient.xcodeproj
Xcode project. -
Copy the
libcef_dll_wrapper
library and directory of the same name, if any, and the contents of Debug/ and Resources/ directories into Sigma's build/bin/. ======= Make sure you use a binary release from Adobe. Use the latest version that is NOT marked as dev (trunk). -
Unzip the downloaded tarball.
-
This step depends on your platform. On Windows, build the included
libcef_dll_wrapper.vcxproj
project. On Linux, runmake libcef_dll_wrapper BUILDTYPE=Release
. On OS X, use thecefclient.xcodeproj
Xcode project. Make sure to use the Release build mode. <<<<<<< HEAD -
Copy
out/Release/obj.target/libcef_dll_wrapper.a
(or .lib),out/Release/obj.target/libcef_dll_wrapper
directory, if any, and the contents ofRelease/
andResources/
directories into Sigma's build/bin/.
Fixed some obnoxious errors. =======
- Copy
out/Release/obj.target/libcef_dll_wrapper
directory, if any, and the contents ofResources/
directories into Sigma's build/bin/.
Edited the README section to have stuff placed in the slightly more predictable location
- Copy the contents of include/ directory into Sigma's include/.
- Copy
out/Release/obj.target/libcef_dll_wrapper.a
(or .lib) to acef/
directory in the Sigma root (create thecef/
directory if it does not exist) - This step also depends on your platform. On Windows copy all the .dll files in
Release/
to Sigma's build/bin/, then copy the .lib file into Sigma'scef/
directory. On Linux or OS X copy the entire contents ofRelease/
into Sigma's build/bin/. - On Linux and OSX, make a symlink pointing to libcef.so (or .dylib) in the
cef/
directory. - If you get the error "malformed archive" when building, make a symlink pointing to libcef_dll_wrapper directory in the
cef/
directory.
Web GUI now uses Chromium Embedded Framework. Use CMake to create makefiles or projects. The resulting executable will be saved in build/bin/.
If you want to compile Sigma on OS X, your system must be running OS X 10.7 or later. You will need to have installed Xcode and, unless your system is running 10.9, the Command Line Tools. Both can be downloaded from the Apple Developer Website.
<<<<<<< HEAD <<<<<<< HEAD Before you can build Sigma, you'll first need to install the dependencies separately. Using a package manager, such as MacPorts, is recommended. Sigma can only be built as a 32-bit executable under OS X. All dependencies, except cmake, that you install must include a 32-bit slice.
Before you can build Sigma, you'll first need to install the dependencies separately. Using a package manager, such as MacPorts, is recommended.
Web GUI now uses Chromium Embedded Framework. ======= Before you can build Sigma, you'll first need to install the dependencies separately. Using a package manager, such as MacPorts, is recommended. b27385e1b5d96c34ecc6ea1671f1fe756d99e0f7
If MacPorts is present, you can use the following commands to install CMake, GLM, GLFW, libogg and libvorbis:
sudo port install cmake
sudo port install glm +universal
sudo port install glfw +universal
sudo port install libogg +universal
sudo port install libvorbis +universal
The current Macports version of Bullet does not include all of the libraries Sigma depends on. You will need to compile Bullet manually.
svn checkout http://bullet.googlecode.com/svn/trunk/ bullet-read-only
cd bullet-read-only
cmake . -G "Unix Makefiles" -DCMAKE_OSX_ARCHITECTURES='i386;x86_64' -DBUILD_DEMOS=OFF
make -j10 && sudo make install
Sigma on OS X requires a patched version of SOIL that must be installed manually.
git clone https://github.com/DeVaukz/SOIL.git
cd SOIL
cmake . -G "Unix Makefiles"
make -j10 && sudo make install
Once all the dependencies are installed, you can build Sigma.
mkdir build/
cd build/
cmake ..
make
(Unix/Linux/OS X)
The binary Sigma
is written to build/bin
, build/bin/debug
, or build/debug/bin
On OS X, you must launch Sigma from a shell in the build directory. Launching Sigma through the Finder will not set the working directory correctly.
You must change the startup project via right-clicking on the project in the solution explorer in order for Debugging to launch the correct program. Also you must go into the project's properties, and under the 'Debugging' category change the 'Working Directory' to '$(OutDir)'.
On OS X, CMake can generate an Xcode project for Sigma.
mkdir build/
cd build/
cmake .. -G Xcode
You must change the current scheme to Sigma by clicking on the scheme popup menu and selecting Sigma. You can also change the working directory used when Sigma is started by Xcode. Select Edit Scheme from the scheme popup menu, switch to the Options tab, check the box next to Working Directory, and enter the path to the Sigma assets in the text field.