Difference between revisions of "Zero-K:Developing"
Jump to navigation
Jump to search
(→Modifying the game: Update/clarify instructions) |
(→ZK's Devving Philosophy (social rules): Fix xponen's misquote of Klangstabil after all those years.) |
||
Line 2: | Line 2: | ||
== ZK's Devving Philosophy (social rules) == | == ZK's Devving Philosophy (social rules) == | ||
− | * "War is anticommunication | + | * "War is a product of 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." |
Revision as of 07:34, 26 April 2018
New developers should read this before touching the source.
Contents
ZK's Devving Philosophy (social rules)
- "War is a product of 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
- Zero-K-Infrastructure
- ZeroKLobby - is the lobby program for windows used as main interface and downloader
- Zero-K.info - is the website sources
- 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
- 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 to submit your changes for review
Modifying the game
- Create a folder
games/zk.sdd
in the Zero-K installation folder. - Clone to desktop Zero-K game and save it to
zk.sdd/
. This folder should contain multiple files/folders, such asmodinfo.lua
. - To test source modifications, you'll need to enable developer mode in Chobby. Do this by creating an empty text document "devmode.txt" in the same directory as Zero-K.exe. You may need to restart the lobby.
- In the Settings menu a new tab appears: Developer. Edit the Singleplayer setting to be Zero-K Dev.
- Your skirmish games should now use your modified local copy of zk.sdd.
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
- 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
Missions
See Mission Editor