Difference between revisions of "Developing"
		
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
		
		
		
		
		
	
| Line 29: | Line 29: | ||
== Getting sources ==  | == Getting sources ==  | ||
| − | * Get a [https://github.com/ GitHub] account and download [https://desktop.github.com/ Github for desktop] or    | + | * Get a [https://github.com/ GitHub] account and download [https://desktop.github.com/ Github for desktop] or [https://tortoisegit.org/ TortoiseGit]  | 
* [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  | ||
Revision as of 06:28, 7 March 2017
Contents
Before modifying source:
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. Remember the rules of optimization:
- Don't.
 - Don't (yet).
 - Profile before doing it.
 
 
 - Optimize code but not to the point of unreadability. Remember the rules of optimization:
 - "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
 
 
 - units folder contains unit definition files
 - Zero-K-Infrastructure
- Zero-K.info: Website sources
 - ZkLobbyServer: Lobby server (for MP)
 - ZkData: Website/server database structure
 
 - Chobby contains the lobby client
 - Zero-K-Artwork contains sources for 2D art, 3D art and sounds
 - 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
 
 - Zero-K-Missions contains source files for official ZK missions
 
Getting sources
- Get a GitHub account and download Github for desktop or TortoiseGit
 - 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 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 Visual Studio Community edition
 - Install SQL Server express
 - Clone to desktop 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. Setup
 - 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.
 - 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 
ModeType.LocalinGlobalConst.csto say something like:Data Source=<hostname (usually your computer name)>\SQLEXPRESS 
 
Artwork
See Development Artwork (outdated)