Documentation
Overview
|
Documentation |
Application Source |
Engine Source |
Nel |
X |
X |
X |
Nel
- NelのサンプルプログラムSnowBall2の動作確認を行っている
Build
ドキュメントは大きく二つ存在する。
A. Ryzom Core
- Ryzomのディベロッパー用のドキュメント
- NeLのビルドも含まれている
- Ubuntu10.04など比較的新しい環境でのビルド方法が載っている
- RevisionControlにMercurialを使用している
B. Open NeL
- Open NeLの公式ドキュメント
- NeLのDesignやAPI Specificationなどのドキュメントがある
- 環境構築の情報がメンテされていない
- Windows環境でビルドする場合、Requirementsに3DStudio MAX SDKが必要。Aではこれは必要なし。
- RevisionControlにSubversionを使用している
ビルドマニュアルはAを参照しながら足りない情報をBで補完する
Windows
1. Downloading & Installing prerequisites
以下のパッケージをマニュアル通りにダウンロード&インストールする
1. Microsoft Visual C++ 2008 Express
2. Microsoft
DirectX SDK
3. Tortoise Hg
4. CMake
5. 7-Zip
6. External_stlport.7z
7. external.7z
DirectX SDKはマニュアルのリンク通りに June 2010 のバージョンをインストールする。
+-- ryzom
+-- code
+-- external_stlport
+-- external
3. Compiling
You will need to set FINAL_VERSION to OFF to build the client and add PatchWanted = 0; in client.cfg or you would receive an error.
code\ryzom\client\client.cfg に"PatchWanted = 0;"を追加
RootConfigFilename = "client_default.cfg";
PatchWanted = 0;
Visual Studio command lineからビルドを行う
cd code
md build
cd build
cmake ..
nmake
4. snowballs2 build & test
エラー対処
cl : Command line warning D9024 : unrecognized source file type 'SDKs/Windows/v6.0A/Include /IF:/_work/devel/ryzom/ryzom/code/nel/include /IF:/_work/devel/ryzom/ryzom/external_stlport/include DirectX SDK (June 2010)/Include', object file assumed
cl : Command line warning D9027 : source file 'SDKs/Windows/v6.0A/Include /IF:/_work/devel/ryzom/ryzom/code/nel/include /IF:/_work/devel/ryzom/ryzom/external_stlport/include DirectX SDK (June 2010)/Include' ignored
cl : Command line warning D9030 : '/Yc' is incompatible with multiprocessing; ignoring /MP switch
stdmisc.cpp
f:\_work\devel\ryzom\ryzom\code\nel\src\misc\stdmisc.h(20) : fatal error C1083: Cannot open include file: 'nel/misc/types_nl.h': No such file or directory
nel/misc/types_nl.hは存在する。これはwarningの内容のせいでincludeパスが通っていない。
nmakeのビルドログ出力
nmake /D /P /X - > nmake.log
DirectXのインクルードパスの指定がおかしなことになっている。
/I"F:/_work/devel/ryzom/ryzom/external_stlport/include" DirectX SDK (June 2010)/Include"
cmakeで生成されたMakefileに問題がある。正しい設定は以下である。
/I"F:/_work/devel/ryzom/ryzom/external_stlport/include" /I"F:/Program Files/Microsoft DirectX SDK (June 2010)/Include"
該当のcmakeファイル(code/nel/src/misc/CMakeLists.txt)では次のように記述してある。
# For DirectInput (di_event_emitter)
IF(WIN32)
INCLUDE_DIRECTORIES(${DXSDK_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nelmisc ${DXSDK_DINPUT_LIBRARY} ${DXSDK_GUID_LIBRARY})
ENDIF(WIN32)
変数 DXSDK_INCLUDE_DIR は code/CMakeModules/FindDirectXSDK.cmake で設定される。
IF(DXSDK_DIR)
SET(DXSDK_INCLUDE_DIR "${DXSDK_DIR}/Include")
DXSDK_DIRは環境変数で設定されている。
set
DXSDK_DIR=F:\Program Files\Microsoft DirectX SDK (June 2010)\
Makefile生成するための中間生成ファイルでは期待通りの出力が得られている。
nel\src\3d\driver\opengl\CMakeFiles\CMakeDirectoryInformation.cmake(16): "F:/Program Files/Microsoft DirectX SDK (June 2010)/Include"
nel\src\misc\CMakeFiles\CMakeDirectoryInformation.cmake(16): "F:/Program Files/Microsoft DirectX SDK (June 2010)/Include"
しかし、生成されるmakefileはバグったものが出力されている。
nel\src\3d\driver\opengl\CMakeFiles\pch_Generate_nel_drv_opengl_win.dir\build.make(55):
nel\src\misc\CMakeFiles\pch_Generate_nelmisc.dir\build.make(55):
よって、.cmakeファイルから.makeファイルへの変換時に問題が発生している。
ネットで類似のエラーがまったくないことから環境が原因であり、おそらく.cmakeのSETに文字列長制限orバグの問題だと予想。マニュアルではcドライブ直下にryzomディレクトリを作成している。
substで仮想ドライブを利用してcmakeする。
subst n: F:\_work\devel\ryzom
しかし、まったく同じエラー発生。よくみるとDirectXより前のWindowsSDKのインクルードパスがそもそもおかしい。
いったん暫定処置で回避する。grep置換で正しいパスに置き換える。
ディレクトリ:code/build
検索するファイル:build.make
" SDKs/Windows/v6.0A/Include"
=> " /I"F:/Program Files/Microsoft SDKs/Windows/v6.0A/Include"
" DirectX SDK (June 2010)/Include"
=> " /I"F:/Program Files/Microsoft DirectX SDK (June 2010)/Include"
Linux
1. Installing Dependencies
sudo apt-get install mercurial libcurl4-openssl-dev libluabind-dev libfreetype6-dev
sudo apt-get install libx11-dev libxxf86vm-dev libxrandr-dev libxrender-dev libopenal-dev libogg-dev libvorbis-dev libxml2-dev
sudo apt-get install cmake build-essential libpng12-dev libjpeg62-dev rrdtool libmysqlclient15-dev bison libxmu-dev
sudo apt-get install libgl1-mesa-dev
libgl1-mesa-devはnvidiaドライバと競合する可能性があるため一旦抜いてビルドしたがエラー発生。
nvidiaコンポーネントはヘッダ群を持っていないためlibgl1-mesa-devをインストールする。
また、libwww-devをインストールする必要があるが、lucidではパッケージが提供されていないためソースコードからインストールを行う。
Download libwww with Ubuntu patched sources
http://hg.kervala.net/packaging/file/
sudo apt-get install autoconf automake libtool
cd libwww
./autogen.sh
./configure --with-ssl=no --with-zlib --with-expat --with-gnu-ld --enable-shared
make
sudo make install
2. Getting Source
hg clone http://ryzom.hg.sourceforge.net:8000/hgroot/ryzom/ryzom
hg pull && hg update
export RYHOME=/home/coureur/build/ryzom/code
3. Building and installing the NeL and Ryzom
mkdir $RYHOME/build && cd $RYHOME/build
cmake -DWITH_NEL_TESTS=OFF ..
make -j3
sudo cpack -G DEB -D CPACK_PACKAGE_CONTACT="your@mail.address"
sudo dpkg -i nel-0.8.0.deb
4. snowballs2 build & test
Luaの使用箇所
ryzom/client/data/gamedev/interfaces_v3/
ryzom/client/src/lua_ide_dll_nevrax/source/Ide2/
ryzom/client/src/lua_ide_dll_nevrax/
ryzom/common/data_common/r2/
ryzom/common/data_common/r2/unit_test/
ryzom/common/src/game_share/
最終更新:2011年10月20日 06:49