Difference between revisions of "CWE:Getting Started"

(Basic: CWE now requires MSVC 2017)
(Redirect old instruction to the GitHub Plasma site)
 
Line 1: Line 1:
 
{{Tutorial}}
 
{{Tutorial}}
This tutorial will help you compile your very own [[CyanWorlds.com Engine|CWE]] client.
+
These instructions will help you compile your very own [[CyanWorlds.com Engine|CWE]] client.
  
== Prerequisites ==
+
<big>Please see the [https://h-uru.github.io/Plasma/building.html Plasma build instructions on GitHub].</big>
=== Basic ===
+
You will need the following software as minimum requirements to build Plasma:
+
* [http://cmake.org CMake] for configuring the project. When you install, make sure you tell the installer to add CMake to the system PATH.
+
* PhysX 2.6.4. This is available from  [https://web.archive.org/web/20170501130625/http://developer.download.nvidia.com/PhysX/2.6.4/PhysX_2.6.4_SDK_Core.exe Archive.org]. Please use 2.6.4. ''Newer versions will not work correctly.''
+
* The June 2010 [https://www.microsoft.com/en-us/download/details.aspx?id=6812 DirectX SDK]
+
* Microsoft Visual Studio 2017 Community Edition for Windows Desktop. Available as a [https://visualstudio.com/vs/older-downloads/ free download] from Microsoft. ''You will need to have a Microsoft account and sign up for a free subscription to Visual Studio Dev Essentials.''
+
  
You can [https://github.com/H-uru/Plasma/archive/master.zip download the Plasma source code as a zip file].
 
 
=== Advanced ===
 
In addition to the basic requirements, if you are planning to contribute to Plasma development, you should also familiarize yourself with Git. We recommend reading some of [https://help.github.com/ GitHub's excellent articles].
 
There are several options for Git tools, including a [https://git-scm.com/download/win command-line git client], the graphical [http://www.sourcetreeapp.com/ SourceTree from Atlassian], and the [https://windows.github.com/ GitHub client for Windows].
 
 
You should also download the [https://github.com/H-uru/PlasmaPrefix/releases/download/20200114/devlibs.zip CWE development libraries bundle].
 
 
To get a copy of the Plasma code, you should clone it using Git.
 
 
For the command-line git tool, start git-bash in the folder where the source should be downloaded, and run
 
git clone https://github.com/H-uru/Plasma
 
 
For SourceTree, use ''File'' > ''New / Clone'' to clone from URL <code>https://github.com/H-uru/Plasma</code>.
 
 
This will download the source code to a folder named <code>Plasma</code> in the aforementioned directory.
 
 
== Building a Client ==
 
 
=== Simple Setup ===
 
In the Plasma source folder, '''run the <code>prepare_env.bat</code> script'''. This will create a new folder called ''build'' which contains the required development libraries and the Visual Studio solution <code>Plasma.sln</code>.
 
 
'''Open the solution''' in Visual Studio. You can compile the engine by pressing ''Build'' -> ''Build Solution''. This will take some time.
 
 
Choose "Release" as the build-type from the drop-down menu at the top of the window if you do not need to debug the client.
 
 
=== Manual Setup ===
 
Instead of running the <code>prepare_env.bat</code> script, you can use CMake to configure the project yourself:
 
 
# '''Download and extract''' the [https://github.com/H-uru/PlasmaPrefix/releases/download/20200114/devlibs.zip ''development libraries bundle''].
 
# '''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 14'' as the generator.
 
# '''Set''' the ''CMAKE_INSTALL_PREFIX'' option under ''Cmake'' to the ''cwe-prefix'' folder that you extracted from the [https://github.com/H-uru/PlasmaPrefix/releases/download/20200114/devlibs.zip ''development libraries bundle''].
 
# '''Press ''Configure''''' again.
 
# '''Press ''Generate.''''' You will now have a Visual Studio solution file (<code>.sln</code>) in the folder that you specified to build the binaries in under the name <code>Plasma.sln</code>.
 
# '''Open the solution''' in Visual Studio. You can compile CyanWorlds.com Engine by pressing ''Build'' -> ''Build Solution''. This will take some time.
 
 
You now have a fully functional client under <code>''BUILD FOLDER''\bin\Release</code>. '''<code>plClient.exe</code>''' is the actual game client whereas '''<code>plUruLauncher.exe</code>''' is the patcher for your shard and '''<code>plCrashHandler.exe</code>''' is the executable used to handle crashes by outputting to a <code>crash.dmp</code> 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 <code>plClient.exe</code> and <code>plCrashHandler.exe</code>).
 
# Copy from your Uru Live installation the <code>dat</code> and <code>sfx</code> folders.
 
# Copy the <code>dat</code>, <code>Python</code> and <code>SDL</code> folders from the [https://github.com/H-uru/moul-scripts moul-scripts repository] (clone it as you did for the client).
 
# Copy the <code>server.ini</code> 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 [https://forum.guildofwriters.org/viewtopic.php?t=6113 CWE Testing Build bundle] if links aren't provided):
 
#* <code>NxCharacter.dll</code>,
 
#* <code>PhysXLoader.dll</code>,
 
#* <code>python27.dll</code>,
 
#* <code>[https://guildofwriters.org/tools/resource.dat resource.dat]</code>.
 
You can now start your client by starting <code>plUruLauncher.exe</code>, 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 <code>plClient.exe</code> instead with the option "-LocalData".
 
 
As an additional note, if you have a <code>TOS.txt</code> file in your client's folder, the client, after having successfully 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 change an option in CMake.
 
 
# '''Run CMake''' and point it to your Plasma build folder.
 
# Find the option ''PLASMA_EXTERNAL_RELEASE'' under ''PLASMA'' and '''check it'''.
 
# '''Press ''Configure'''''.
 
# '''Press ''Generate''''' to re-create the <code>Plasma.sln</code> file.
 
 
Also note that the three files you'll obtain in the end are '''<code>UruExplorer.exe</code>''', '''<code>UruLauncher.exe</code>''' and '''<code>UruCrashHandler.exe</code>'''.
 
 
=== 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 <code>UruExplorer.exe</code> (<code>plClient.exe</code>'s equivalent) will force you to use <code>UruLauncher.exe</code>. The External client will thus always use the latest files as provided by the server.
 
 
== Editing <code>server.ini</code> ==
 
For your client to be able to connect to your own Shard, you'll need to provide it with a <code>server.ini</code> file. The options are entered in the following form:
 
Server.''Option'' ''Value''
 
This file will need to contain the following options:
 
* <code>Server.Auth.N</code>, <code>Server.Auth.X</code>, <code>Server.Game.N</code>, <code>Server.Game.X</code>, <code>Server.Gate.N</code> and <code>Server.Gate.X</code>: if you followed [[DIRTSAND:Getting Started|these]] instructions, you'll have to use the keys provided by the <code>keygen new</code> command. If you are following the minimal setup guide, you don't need to provide these keys.
 
* <code>Server.Gate.Host</code>: your Shard's IP address or domain name.
 
* <code>Server.DispName</code> ''(optional)'': the name of the client displayed to the user.
 
* <code>Server.Status</code> ''(optional)'': a URL for the status message of your Shard.
 
* <code>Server.Signup</code> ''(optional)'': a URL for a signup page to your Shard, linked to by the appropriately-named button.
 
  
 
[[Category:CWE]]
 
[[Category:CWE]]

Latest revision as of 22:38, 29 April 2023

Disambig gray.png

This is a tutorial page.
 

These instructions will help you compile your very own CWE client.

Please see the Plasma build instructions on GitHub.