Difference between revisions of "Development:CyanWorlds.com Engine"

m (fix lvl 1 headers)
Line 1: Line 1:
This page contains information about how to contribute to the Guild of Writers fork of the [[CyanWorlds.com Engine]].
+
The Guild of Writers development team, H'uru, is currently developing a fork of the [[CyanWorlds.com Engine]] 
 +
(formerly known as Plasma). This article provides information on the development process of this fork.
  
==Git==
+
== Building ==
The [https://github.com/H-uru/Plasma Guild of Writers fork] of the CyanWorlds.com Engine uses [http://git-scm.com 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 [http://help.github.com/ GitHub help area].
+
If you want to build CWE for yourself using H'uru's fork, you should consult the [[CWE:Getting Started|getting started tutorial]] to help you compile and set up a fully working client. Additionally, a (slightly outdated) [http://www.youtube.com/watch?v=HZbMf5W67UI video tutorial] has been made available.
  
==Dependencies==
+
== Contributing ==
* [http://code.google.com/p/msysgit/downloads/list?can=3 Git] for fetching the source code.
+
* [http://cmake.org 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 [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]
+
* The June 2010 [http://www.microsoft.com/downloads/en/details.aspx?FamilyID=3021d52b-514e-41d3-ad02-438a3ba730ba DirectX SDK]
+
* Microsoft Visual Studio 2008 SP1
+
** '''Students''': Download the full version from [https://www.dreamspark.com/default.aspx Microsoft DreamSpark] for free.
+
** '''Everyone Else''': [http://msdn.microsoft.com/en-us/express/future/bb421473 Visual C++ 2008 Express Edition] can be downloaded for free.
+
** '''Make sure that you have [http://www.microsoft.com/downloads/en/details.aspx?FamilyId=FBEE1648-7106-44A7-9649-6D9F6D58056E&displaylang=en Service Pack 1] installed, otherwise odd errors will ensue!'''
+
* The [http://guildofwriters.org/tools/devlibs.zip CWE development libraries bundle]
+
 
+
==Building the Code==
+
A [http://www.youtube.com/watch?v=HZbMf5W67UI 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 [http://help.github.com/win-set-up-git/ GitHub Windows Setup Guide]. ''We will assume that you install git with context menu support.''
+
# '''Copy the URL''' of the [https://github.com/H-uru/Plasma repository] into your clipboard. If you are interested in contributing to CyanWorlds.com Engine development, then you should [http://help.github.com/fork-a-repo/ 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 [http://guildofwriters.com/tools/devlibs.zip ''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.
+
 
+
===Launching===
+
 
+
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.
+
 
+
==Contributing==
+
 
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 [http://help.github.com/pull-requests/ pull requests].
 
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 [http://help.github.com/pull-requests/ pull requests].
  
Line 58: Line 14:
 
Once you are satisfied with your work, you should issue a [http://help.github.com/pull-requests/ 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.
 
Once you are satisfied with your work, you should issue a [http://help.github.com/pull-requests/ 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.
  
===Code Guidelines===
+
=== Code Guidelines ===
 
To improve the chance of your contributions being accepted, please consider the following guidelines.
 
To improve the chance of your contributions being accepted, please consider the following guidelines.
  
Line 64: Line 20:
 
* 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!
 
* 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!
  
==Roadmap==
+
== Roadmap ==
 
+
 
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.
 
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.
  

Revision as of 18:27, 8 May 2012

The Guild of Writers development team, H'uru, is currently developing a fork of the CyanWorlds.com Engine  (formerly known as Plasma). This article provides information on the development process of this fork.

Building

If you want to build CWE for yourself using H'uru's fork, you should consult the getting started tutorial to help you compile and set up a fully working client. Additionally, a (slightly outdated) video tutorial has been made available.

Contributing

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.

Code Guidelines

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!

Roadmap

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!