Difference between revisions of "Developing"

From Zero-K
Jump to navigation Jump to search
(Redirected page to Zero-K:Developing)
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= Before modifying source: =
+
#REDIRECT[[Zero-K:Developing]]
== ZK's Devving Philosophy (social rules) ==
 
* "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. [http://c2.com/cgi/wiki?RulesOfOptimization 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 ==
 
* [https://github.com/ZeroK-RTS/Zero-K Zero-K] contains the game proper
 
** units folder contains unit definition files
 
*** 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]
 
** ZeroKLobby - is the lobby program for windows used as main interface and downloader
 
** 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/SpringRTS-Tools SpringRTS-tools] contains various dev tools
 
** Upspring - required to edit the .3do and .s3o model files used in the game
 
** 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
 
 
 
== Getting sources ==
 
* 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
 
* After you finish modifying sources click *Pull request* in Github for windows and submit your changes for review
 
 
 
 
 
== Modifying the game ==
 
* Locate data folder of your game - in Zero-K lobby settings click open game data folder
 
* Create a folder games/zk.sdd in game data folder
 
* Clone to desktop [https://github.com/ZeroK-RTS/Zero-K Zero-K game] and save it to zk.sdd
 
* To test source modifications set your game in lobby client settings (under Development tab) to Zero-K Dev and start a skirmish game
 
 
 
== Modifying infrastructure/tools ==
 
* Install [https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx Visual Studio Community edition]
 
* Install [http://www.microsoft.com/en-us/server-cloud/products/sql-server-editions/sql-server-express.aspx SQL Server express]
 
* Clone to desktop [https://github.com/ZeroK-RTS/Zero-K-Infrastructure Zero-K infrastructure]
 
* Test by opening Zero-K.sln in Visual Studio
 
 
 
=== Debugging infrastructure ===
 
* 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. [http://i.imgur.com/2mgizUJ.png Setup]
 
* 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.
 
** Right click asp.net -> properties -> web -> check "Specific Page" and leave it blank. Otherwise you get errors when trying to host locally.
 
** Make sure SQL Server is running (check the Sql Server Configuration Manager in the Start Menu). If you can't connect, edit the data source for <code>ModeType.Local</code> in <code>GlobalConst.cs</code> to say something like:<br/><code>Data Source=<hostname (usually your computer name)>\SQLEXPRESS</code>
 
 
 
== Artwork: ==
 
See [http://zero-k.info/Wiki/Development_Artwork|Development Artwork]
 
 
 
== Missions: ==
 
See [[Mission Editor| Mission Editor start page]]
 
 
 
[[Category:Development]]
 

Latest revision as of 07:54, 27 April 2018

Redirect to: