Difference between revisions of "Zero-K:Developing"

From Zero-K
Jump to navigation Jump to search
m
m
Line 1: Line 1:
New developers should read this before touching the source.
+
= Before modifying source: =
 
 
 
== ZK's Devving Philosophy (social rules) ==
 
== ZK's Devving Philosophy (social rules) ==
 +
* Core devs have the last word.
 
* "War is anticommunication!"  
 
* "War is anticommunication!"  
** Communicate with other devs about your changes/fixes, let them understand the issue. Do not make 'random' changes.
+
  * Communicate with other devs about your changes/fixes, let them understand the issue. Do not make 'random' changes.
 
* "Do not create work for other people."
 
* "Do not create work for other people."
** Have responsibility for your changes/commit. Do not leave bugs that require other people to fix.
+
  * Have responsibility for your changes/commit. Do not leave bugs that require other people to fix.
 
* "Readability & performance are equally important."  
 
* "Readability & performance are equally important."  
** Optimize code but not to the point of unreadability. [http://c2.com/cgi/wiki?RulesOfOptimization Remember the rules of optimization]:
+
  * Optimize code but not to the point of unreadability. [http://c2.com/cgi/wiki?RulesOfOptimization Remember the rules of optimization]:
*** Don't.
+
  * Don't.
*** Don't (yet).
+
  * Don't (yet).
*** Profile before doing it.
+
  * Profile before doing it.
 
* "If it ain't broke, don't fix it."
 
* "If it ain't broke, don't fix it."
** Don't code fixes that nobody wants to problems that don't exist.
+
  * Don't code fixes that nobody wants to problems that don't exist.
  
 
== What is in source codes ==
 
== What is in source codes ==
 
* [https://github.com/ZeroK-RTS/Zero-K Zero-K] contains the game proper
 
* [https://github.com/ZeroK-RTS/Zero-K Zero-K] contains the game proper
** units folder contains unit definition files
+
  * units folder contains unit definition files
** you can read wiki about game development for [http://springrts.com/wiki/Main_Page spring engine]  
+
  * you can read wiki about game development for [http://springrts.com/wiki/Main_Page spring engine]  
 
* [https://github.com/ZeroK-RTS/Zero-K-Infrastructure Zero-K-Infrastructure]
 
* [https://github.com/ZeroK-RTS/Zero-K-Infrastructure Zero-K-Infrastructure]
** ZeroKLobby - is the lobby program for windows used as main interface and downloader
+
  * ZeroKLobby - is the lobby program for windows used as main interface and downloader
** Zero-K.info - is the website sources
+
  * Zero-K.info - is the website sources
 
* [https://github.com/ZeroK-RTS/Zero-K-Artwork Zero-K-Artwork] contains sources for 2D art, 3D art and sounds
 
* [https://github.com/ZeroK-RTS/Zero-K-Artwork Zero-K-Artwork] contains sources for 2D art, 3D art and sounds
 
* [https://github.com/ZeroK-RTS/SpringRTS-Tools SpringRTS-tools] contains various dev tools
 
* [https://github.com/ZeroK-RTS/SpringRTS-Tools SpringRTS-tools] contains various dev tools
** Upspring - required to edit the .3do and .s3o model files used in the game
+
  * Upspring - required to edit the .3do and .s3o model files used in the game
** MapIconBuilder - unit map icon sources are here
+
  * MapIconBuilder - unit map icon sources are here
 
* [https://github.com/ZeroK-RTS/Zero-K-Missions Zero-K-Missions] contains source files for official ZK missions
 
* [https://github.com/ZeroK-RTS/Zero-K-Missions Zero-K-Missions] contains source files for official ZK missions
  
Line 30: Line 30:
 
* Get a [https://github.com/ GitHub] account and download [https://desktop.github.com/ Github for desktop]
 
* Get a [https://github.com/ GitHub] account and download [https://desktop.github.com/ Github for desktop]
 
* [https://github.com/ZeroK-RTS Locate] repository you want to edit and click "clone in desktop" button on website
 
* [https://github.com/ZeroK-RTS Locate] repository you want to edit and click "clone in desktop" button on website
**''' After you finish modifying sources click '''Pull request* in Github for windows and submit your changes for review
+
''' After you finish modifying sources click '''Pull request* in Github for windows and submit your changes for review
 +
 
  
 
== Modifying the game ==
 
== Modifying the game ==
Line 54: Line 55:
 
* Note: in order to run asp.net it's required that you install MS SQL Express on your local PC. Get one from [https://www.microsoft.com/en-us/download/confirmation.aspx?id=42299 here]. The file you will need is called SQLEXPR_x64_ENU or SQLEXPR_x86_ENU. Make sure you install version that matches your version of Windows (i.e. x86 vs x64). During the installation leave all the parameters default except that I changed server name to SQLEXPRESS in one of the first steps of wizard.
 
* Note: in order to run asp.net it's required that you install MS SQL Express on your local PC. Get one from [https://www.microsoft.com/en-us/download/confirmation.aspx?id=42299 here]. The file you will need is called SQLEXPR_x64_ENU or SQLEXPR_x86_ENU. Make sure you install version that matches your version of Windows (i.e. x86 vs x64). During the installation leave all the parameters default except that I changed server name to SQLEXPRESS in one of the first steps of wizard.
  
== Artwork ==
+
== Artwork: ==
See [[Development Artwork]]
+
See [Development_Artwork Development Artwork]
  
== Missions ==
+
== Missions: ==
See [[Mission Editor]]
+
See [MissionEditorStartPage Mission Editor start page]

Revision as of 06:34, 11 July 2016

Before modifying source:

ZK's Devving Philosophy (social rules)

  • Core devs have the last word.
  • "War is anticommunication!"
 * Communicate with other devs about your changes/fixes, let them understand the issue. Do not make 'random' changes.
  • "Do not create work for other people."
 * Have responsibility for your changes/commit. Do not leave bugs that require other people to fix.
  • "Readability & performance are equally important."
 * Optimize code but not to the point of unreadability. Remember the rules of optimization:
  * Don't.
  * Don't (yet).
  * Profile before doing it.
  • "If it ain't broke, don't fix it."
 * Don't code fixes that nobody wants to problems that don't exist.

What is in source codes

  • Zero-K contains the game proper
  * units folder contains unit definition files
  * you can read wiki about game development for spring engine 
  * ZeroKLobby - is the lobby program for windows used as main interface and downloader
  * Zero-K.info - is the website sources
 * Upspring - required to edit the .3do and .s3o model files used in the game
 * MapIconBuilder - unit map icon sources are here

Getting sources

After you finish modifying sources click Pull request* in Github for windows and submit your changes for review


Modifying the game

  1. Locate data folder of your game - in Zero-K lobby settings click open game data folder
  2. Create a folder games/zk.sdd in game data folder
  3. Clone to desktop Zero-K game and save it to zk.sdd
  4. To test source modifications run the game using skirmisher (Zero-K settings tab) and pick game named Zero-K $VERSION

Modifying infrastructure/tools

  1. Install Visual Studio Community edition
  2. Install SQL Server express
  3. Clone to desktop Zero-K infrastructure
  4. Test by opening Zero-K.sln in Visual Studio

Debugging infrastructure

  • Right click asp.net -> properties -> web -> check "Specific Page" and leave it blank. Otherwise you get errors when trying to host locally.
  • To run a project right click it, choose "set as startup project" and hit F5 to run using debugger.
  • You can enable multiple startup projects to test entire infrastructure locally (game servers, lobby etc). Enable asp.net, springie and ZeroKLobby projects to test it all together. Setup
  • Note: in order to run asp.net it's required that you install MS SQL Express on your local PC. Get one from here. The file you will need is called SQLEXPR_x64_ENU or SQLEXPR_x86_ENU. Make sure you install version that matches your version of Windows (i.e. x86 vs x64). During the installation leave all the parameters default except that I changed server name to SQLEXPRESS in one of the first steps of wizard.

Artwork:

See [Development_Artwork Development Artwork]

Missions:

See [MissionEditorStartPage Mission Editor start page]