This page contains information about how to contribute to the Guild of Writers fork of the CyanWorlds.com Engine.
The Guild of Writers fork of the CyanWorlds.com Engine uses git for its source control needs. If you're already familiar with git, some of these instructions may seem obvious to you. If you're not familiar with git, it is recommended that you read through some of the excellent articles in the GitHub help area.
- Git for fetching the source code.
- CMake. 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 2008 SP1
- The CWE development libraries bundle
Building the Code
A video tutorial is available to supplement the following instructions.
Getting the Code
- Install Git If you are unfamiliar with git or require some additional guidance, please refer to the first section of the GitHub Windows Setup Guide. We will assume that you install git with context menu support.
- Copy the URL of the repository into your clipboard. If you are interested in contributing to CyanWorlds.com Engine development, then you should fork the repository and use the URL of your fork.
- Navigate to a location on your computer where you would like to place the CyanWorlds.com Engine source code.
- Right click in Windows Explorer and choose the Git Bash menu option.
- Type git clone into the command prompt, insert a space, then paste the URL of the repository. Press Enter.
Configuring and Building
Note: Make sure that you have installed all of the dependencies before continuing!
- 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 9 2008 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
- 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.
- 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.
To actually launch the client, you obviously need a server. Check the Minimalistic Development Shard instructions for the minimal set of work necessary to get it all running.
GitHub provides a robust set of tools to allow you to easily share your changes with the main Guild repository. These tools revolve around two concepts: forks and pull requests.
Using a GitHub fork, you can develop your changes in a repository that you have full access to. Once you're ready to share that change, you can issue a pull request. The GoW development team will be notified and we'll review your changeset for inclusion. After a few good patches, you will probably be offered direct access to the GoW repository, meaning faster turn around for your patches and less management work for the core dev team.
It is recommended that when you begin work on a bugfix or feature, you do so in a git branch. This will make it easier for us to merge your changes into the main repository. Try to avoid merging other branches into your work branch (including updates to master). The cleaner your branch is the easier it will be to integrate.
Once you are satisfied with your work, you should issue a pull request, which will let us know that you are ready for your changes to be merged into the main branch of development--the master branch. Once you have submitted your pull request, we will review your code and ask any applicable questions. Once your code passes our review(s), we will merge it into the master branch.
To improve the chance of your contributions being accepted, please consider the following guidelines.
- Follow whatever code style is already in the file you're working on. Plasma was developed over many years, and there are a variety of styles in the code. Try to maintain an average style for the file you're working in.
- Indentation should be 4 spaces. Tabs will not be accepted. Be sure to change your Visual Studio text editor settings to insert spaces if you have not already!
Short version: There is none. This is open-source software, and each developer works on what he (dis)likes most. Since we do that in our free time, there is little point in trying to make us do something we do not want.
That said, the efforts of many developers are currently aimed at making CWE cross-platform, so that it runs natively on Linux and Mac. This requires rewriting the network code, replacing the physics engine and adding an alternative rendering backend. However, if you want to work on any other area, that's perfectly fine!