Difference between revisions of "CWE:Getting Started"
(→Editing server.ini) |
(→Prerequisites) |
||
Line 7: | Line 7: | ||
You'll need the following software to successfully build CWE: | You'll need the following software to successfully build CWE: | ||
* [http://code.google.com/p/msysgit/downloads/list?can=3 Git] for fetching the source code. If you're not familiar with Git, you might want to read up on it thanks to some of [http://help.github.com/ Github's excellent articles]. | * [http://code.google.com/p/msysgit/downloads/list?can=3 Git] for fetching the source code. If you're not familiar with Git, you might want to read up on it thanks to some of [http://help.github.com/ Github's excellent articles]. | ||
− | * [http://cmake.org CMake]. When you install, make sure you tell the installer to add CMake to the system PATH. | + | * [http://cmake.org CMake] to configure your build of CWE for Visual Studio. When you install, make sure you tell the installer to add CMake to the system PATH. |
* PhysX 2.6.4. This is available from NVIDIA's [http://www.nvidia.com/object/physx_archives.html#SDK PhysX Archives]. Please use 2.6.4. ''Newer versions will not work correctly.'' | * PhysX 2.6.4. This is available from NVIDIA's [http://www.nvidia.com/object/physx_archives.html#SDK PhysX Archives]. Please use 2.6.4. ''Newer versions will not work correctly.'' | ||
* [http://connect.creativelabs.com/openal/Downloads/OpenAL11CoreSDK.zip Creative Labs' OpenAL SDK 1.1] | * [http://connect.creativelabs.com/openal/Downloads/OpenAL11CoreSDK.zip Creative Labs' OpenAL SDK 1.1] | ||
* The June 2010 [http://www.microsoft.com/downloads/en/details.aspx?FamilyID=3021d52b-514e-41d3-ad02-438a3ba730ba DirectX SDK] | * The June 2010 [http://www.microsoft.com/downloads/en/details.aspx?FamilyID=3021d52b-514e-41d3-ad02-438a3ba730ba DirectX SDK] | ||
− | * Microsoft Visual Studio 2010 | + | * Microsoft Visual Studio 2010 to compile CWE. |
** '''Students''': Download the full version from [https://www.dreamspark.com/default.aspx Microsoft DreamSpark] for free. | ** '''Students''': Download the full version from [https://www.dreamspark.com/default.aspx Microsoft DreamSpark] for free. | ||
** '''Everyone Else''': [http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express Visual C++ 2010 Express Edition] can be downloaded for free. | ** '''Everyone Else''': [http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express Visual C++ 2010 Express Edition] can be downloaded for free. | ||
* The [http://guildofwriters.org/tools/devlibs.zip CWE development libraries bundle] | * The [http://guildofwriters.org/tools/devlibs.zip CWE development libraries bundle] | ||
+ | |||
+ | The sources for CWE (also called Plasma) can be found [https://github.com/H-uru/Plasma on Github]. To download them, use Git as follows: | ||
+ | # Start git-bash in a folder where the source repository should be downloaded. | ||
+ | # Enter: | ||
+ | git clone https://github.com/H-uru/Plasma | ||
+ | This will download the source code to a folder named <code>Plasma</code> in the aforementioned directory. | ||
Also, do not forget to update your client's build ID to match the build ID of the server (e.g. as of this writing, MO:ULa's build ID is 906). This number is set in <code>Sources/Plasma/NucleusLib/pnProduct/Private/pnPrBuildId.cpp</code> under "#define BUILD_ID XXX" where XXX is the actual build ID. | Also, do not forget to update your client's build ID to match the build ID of the server (e.g. as of this writing, MO:ULa's build ID is 906). This number is set in <code>Sources/Plasma/NucleusLib/pnProduct/Private/pnPrBuildId.cpp</code> under "#define BUILD_ID XXX" where XXX is the actual build ID. |
Revision as of 11:43, 25 August 2012
This is a tutorial page. |
This tutorial will help you compile your very own CWE client.
If you need an Internal client to connect to MO:ULa, you can use the GoW-provided CWE Testing Build bundle. Simply run the plclient_moula.vbs
script after copying the dat
and sfx
files from your Uru Live installation.
Contents
Prerequisites
You'll need the following software to successfully build CWE:
- Git for fetching the source code. If you're not familiar with Git, you might want to read up on it thanks to some of Github's excellent articles.
- CMake to configure your build of CWE for Visual Studio. When you install, make sure you tell the installer to add CMake to the system PATH.
- PhysX 2.6.4. This is available from NVIDIA's PhysX Archives. Please use 2.6.4. Newer versions will not work correctly.
- Creative Labs' OpenAL SDK 1.1
- The June 2010 DirectX SDK
- Microsoft Visual Studio 2010 to compile CWE.
- Students: Download the full version from Microsoft DreamSpark for free.
- Everyone Else: Visual C++ 2010 Express Edition can be downloaded for free.
- The CWE development libraries bundle
The sources for CWE (also called Plasma) can be found on Github. To download them, use Git as follows:
- Start git-bash in a folder where the source repository should be downloaded.
- Enter:
git clone https://github.com/H-uru/Plasma
This will download the source code to a folder named Plasma
in the aforementioned directory.
Also, do not forget to update your client's build ID to match the build ID of the server (e.g. as of this writing, MO:ULa's build ID is 906). This number is set in Sources/Plasma/NucleusLib/pnProduct/Private/pnPrBuildId.cpp
under "#define BUILD_ID XXX" where XXX is the actual build ID.
Building an Internal Client
If you want to build only a client useful for testing, for example, you might want to build the Internal Client.
Compiling
The first step is to compile the source code:
- Start Cmake
- Set the Where is the source code option to the location where you cloned the repository.
- Set the Where to build the binaries option to a subfolder of the aforementioned location called build.
- Check the Grouped and Advanced options.
- Press Configure. Select Visual Studio 10 2010 as the generator.
- Set the CMAKE_INSTALL_PREFIX option under Cmake to the cwe-prefix folder that you extracted from the development libraries bundle.
- Press Configure again.
- Set the OpenAL include and library path options under OpenAL.
- Default Include Path:
C:\Program Files\OpenAL 1.1 SDK\include
- Default Library Path:
C:\Program Files\OpenAL 1.1 SDK\lib\win32\OpenAL32.lib
- Default Include Path:
- Press Configure again.
- Set the PHYSX_SDK_PATH option under PHYSX. The default value is
C:\Program Files\AGEIA Technologies\AGEIA PhysX SDK\v2.6.4\SDKs
. - Press Configure... For the last time!
- Press Generate. You will now have a Visual Studio solution file (
.sln
) in the folder that you specified to build the binaries in under the namePlasma.sln
. - Open the solution in Visual Studio. You can compile CyanWorlds.com Engine by pressing Build -> Build Solution. This will take some time. Choose "Release" as build-type (there's a drop-down menu at the top of the window) to make dll hell slightly less worse.
You now have a fully functional client under BUILD FOLDER\bin\Release
. plClient.exe
is the actual game client whereas plUruLauncher.exe
is the patcher for your shard and plCrashHandler.exe
is the executable used to handle crashes by outputting to a crash.dmp
file.
Setting Up
Once you have your three executables, you'll need to setup a directory from which you can actually use it:
- Create a folder on your computer (e.g. "Documents\Internal") and copy into this folder all three executables (if you're only going to use the client in "-LocalData" mode, you just need to copy
plClient.exe
andplCrashHandler.exe
). - Copy from your Uru Live installation the
dat
andsfx
folders. - Copy the
dat
,Python
andSDL
folders from the moul-scripts repository (clone it as you did for the client). - Copy the
server.ini
file for the shard you are trying to connect to into your client's folder. - Obtain and copy the following files into your client's folder (you can copy them from the CWE Testing Build bundle if links aren't provided):
-
NxCharacter.dll
, -
PhysXLoader.dll
, -
python27.dll
, -
resource.dat
.
-
You can now start your client by starting plUruLauncher.exe
, which will connect to the appropriate server and download the latest files; to use only the data files available on your local computer (which is useful if you don't want the server to overwrite your own files when you connect to it), start plClient.exe
instead with the option "-LocalData".
As an additional note, if you have a TOS.txt
file in your client's folder, the client, after having succesfully logged in the user, will display the contents of this file.
Building an External Client
The steps required to build such a client are more or less the same as for an Internal client.
Compiling
Compiling follows the exact same procedure, except that you'll need to check under CMake the option PLASMA_EXTERNAL_RELEASE under PLASMA. Also note that the three files you'll obtain in the end are UruExplorer.exe
, UruLauncher.exe
and UruCrashHandler.exe
.
Setting Up
The process for setting up your External client is the same as for an Internal client. The only difference is in the execution: you cannot run an External client in "-LocalData" mode, and starting UruExplorer.exe
(plClient.exe
's equivalent) will force you to use UruLauncher.exe
. The External client will thus always use the latest files as provided by the server.
Editing server.ini
For your client to be able to connect to your own Shard, you'll need to provide it with a server.ini
file. The options are entered in the following form:
Server.Option Value
This file will need to contain the following options:
-
Server.Auth.N
,Server.Auth.X
,Server.Game.N
,Server.Game.X
,Server.Gate.N
andServer.Gate.X
: if you followed these instructions, you'll have to use the keys provided by thekeygen new
command. If you are following the minimal setup guide, you don't need to provide these keys. -
Server.Gate.Host
: your Shard's IP address or domain name. -
Server.DispName
(optional): the name of the client displayed to the user. -
Server.Status
(optional): a URL for the status message of your Shard. -
Server.Signup
(optional): a URL for a signup page to your Shard, linked to by the appropriately-named button.