One Thousand Years is an utility engine powered by Ogre3D, BulletPhysics, SDL2, FMod, JsonCPP, and more. Written in C++, it aims to give a base for our games, Mood and G.Shift.
There are two ways to set-up, we provide a PowerShell script to make things easier, but you can also set up everything manually if you prefer or if the automated script gives you problems (please open an issue or contact the team if this happens!).
In advance, we require you to have installed CMake and Visual Studio 2019.
First of all, you might need to change PowerShell's policy settings to run our script, it is because we provide an unofficial script, to allow it, you will need to use the Set-ExecutionPolicy command, you can safely do the following:
Set-ExecutionPolicy Unrestricted -Scope ProcessThe
-Scope Processsets the execution policy for the PowerShell's session, meaning it will reset to default once you close the window. If you drop it,Scope's value will beLocalMachine, affecting all users of the computer.
To run the script, we will use an existing PowerShell window, you can open it by pressing Shift and then do right
click anywhere in the project's folder, it will show you some extra options, including Open PowerShell window here.
Alternatively, open a new window and cd to the project's folder.
Once you have your PowerShell window in this project's folder, run the following command to set up all dependencies and compile the project:
.\scripts\build.ps1That's all!
All the steps will be done with CMake's GUI and VS2019, you are welcome to use scripts in the shell of your preference.
- Open CMake-GUI and set up the following parameters:
- Source Code:
deps/bullet - Build Folder:
deps/bullet/build
- Source Code:
- Click on the
Configurebutton. - Set up the following values:
BUILD_BULLET2_DEMOS:OFFBUILD_BULLET3:ONBUILD_CLSOCKET:OFFBUILD_CPU_DEMOS:OFFBUILD_ENET:OFFBUILD_EXTRAS:OFFBUILD_OPENGL3_DEMOS:OFFBUILD_PYBULLET:OFFBUILD_SHARED_LIBS:OFFBUILD_UNIT_TESTS:OFFUSE_MSVC_RUNTIME_LIBRARY_DLL:ON
- Click on the
Generatebutton. - Compile the project (
ALL_BUILDby default) inDebugandRelease.
- Open CMake-GUI and set up the following parameters:
- Source Code:
deps/jsoncpp - Build Folder:
deps/jsoncpp/build
- Source Code:
- Click on the
Configurebutton. - Click on the
Generatebutton. - Compile the project (
ALL_BUILDby default) inDebugandRelease.
- Open CMake-GUI and set up the following parameters:
- Source Code:
deps/ogre - Build Folder:
deps/ogre/build
- Source Code:
- Click on the
Configurebutton. - Set up the following values:
OGRE_BUILD_COMPONENT_OVERLAY:OFF
- Click on the
Generatebutton. - Compile the project (
ALL_BUILDby default) inDebugandRelease. - Copy the following files to
bin/:deps/ogre/build/bin/debug/OgreMain_d.dlldeps/ogre/build/bin/debug/RenderSystem_Direct3D11_d.dlldeps/ogre/build/bin/debug/RenderSystem_GL_d.dlldeps/ogre/build/bin/debug/OgreRTShaderSystem_d.dlldeps/ogre/build/bin/debug/Codec_STBI_d.dlldeps/ogre/build/bin/debug/Plugin_ParticleFX_d.dlldeps/ogre/build/bin/release/OgreMain.dlldeps/ogre/build/bin/release/RenderSystem_Direct3D11.dlldeps/ogre/build/bin/release/RenderSystem_GL.dlldeps/ogre/build/bin/release/zlib.dlldeps/ogre/build/bin/release/OgreRTShaderSystem.dlldeps/ogre/build/bin/release/Codec_STBI.dlldeps/ogre/build/bin/release/Plugin_ParticleFX.dll
- Copy the following files to
bin/:deps/fmod/fmod64.dll
- Copy the following files to
bin/:deps/SDL2/lib/x64/SDL2.dll
- Open CMake-GUI and set up the following parameters:
- Source Code:
deps/cegui-dependencies - Build Folder:
deps/cegui-dependencies/build
- Source Code:
- Click on the
Configurebutton. - Click on the
Generatebutton. - Compile the project (
ALL_BUILDby default) inDebugandRelease. - Open CMake-GUI and set up the following parameters:
- Source Code:
deps/cegui - Build Folder:
deps/cegui/build
- Source Code:
- Click on the
Configurebutton. - Set up the following values:
CEGUI_BUILD_RENDERER_DIRECT3D10:OFFCEGUI_BUILD_RENDERER_DIRECT3D11:OFFCEGUI_BUILD_RENDERER_DIRECT3D9:OFFCEGUI_BUILD_RENDERER_DIRECTFB:OFFCEGUI_BUILD_RENDERER_IRRLICHT:OFFCEGUI_BUILD_RENDERER_NULL:OFFCEGUI_BUILD_RENDERER_OGRE:ONCEGUI_BUILD_RENDERER_OPENGL:OFFCEGUI_BUILD_RENDERER_OPENGL3:OFFCEGUI_BUILD_RENDERER_OPENGLES:OFFCMAKE_PREFIX_PATH:deps/cegui-dependencies/build/dependenciesOGRE_H_BUILD_SETTINGS_PATH:deps/ogre/build/includeOGRE_H_PATH:deps/ogre/OgreMain/includeOGRE_LIB:deps/ogre/build/lib/Release/OgreMain.libOGRE_LIB_DBG:deps/ogre/build/lib/Release/OgreMain.lib
- Click on the
Generatebutton. - Modify the file
deps/cegui/build/cegui/include/CEGUI/Config.h, replacing the following values:define CEGUI_OGRE_VERSION_MAJOR 0->define CEGUI_OGRE_VERSION_MAJOR 1define CEGUI_OGRE_VERSION_MINOR 0->define CEGUI_OGRE_VERSION_MINOR 9
- Compile the project (
ALL_BUILDby default) inDebugandRelease. - Copy the following files to
bin/:deps/cegui/build/bin/CEGUIBase-0.dlldeps/cegui/build/bin/CEGUIBase-0_d.dlldeps/cegui/build/bin/CEGUIOgreRenderer-0.dlldeps/cegui/build/bin/CEGUIOgreRenderer-0_d.dlldeps/cegui-dependencies/build/dependencies/bin/freetype.dlldeps/cegui-dependencies/build/dependencies/bin/freetype_d.dlldeps/cegui-dependencies/build/dependencies/bin/glew.dlldeps/cegui-dependencies/build/dependencies/bin/glew_d.dlldeps/cegui-dependencies/build/dependencies/bin/glfw.dlldeps/cegui-dependencies/build/dependencies/bin/glfw_d.dlldeps/cegui-dependencies/build/dependencies/bin/jpeg.dlldeps/cegui-dependencies/build/dependencies/bin/jpeg_d.dlldeps/cegui-dependencies/build/dependencies/bin/libexpat.dlldeps/cegui-dependencies/build/dependencies/bin/libexpat_d.dlldeps/cegui-dependencies/build/dependencies/bin/libpng.dlldeps/cegui-dependencies/build/dependencies/bin/libpng_d.dlldeps/cegui-dependencies/build/dependencies/bin/pcre.dlldeps/cegui-dependencies/build/dependencies/bin/pcre_d.dlldeps/cegui-dependencies/build/dependencies/bin/SILLY.dlldeps/cegui-dependencies/build/dependencies/bin/SILLY_d.dll
If you encountered any issues, please open an issue including the steps taken and the warnings or errors you encountered. If you found no problem so far, you should be able to compile this project without problems.
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin my-new-feature - Submit a pull request!
One Thousand Years © NoVariableGlobal, released under the MIT License. Authored and maintained by NoVariableGlobal.
Github NoVariableGlobal - Twitter @__NVG__