Zero-K has moved!
We have moved to Github, the new sources are available at: https://github.com/ZeroK-RTS
Wiki pages will remain on Google Code for the time being.
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 bug that require other people to fix.
- "Readability & performance are equally important."
- "If it ain't broke, don't fix it."
- Don't code fixes that nobody wants to problems that don't exist.
- 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
- 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
Directly from web
- Only suitable for small edits!
- Ask developers in #zk channel or forums to get commit access
- Use the "edit" button on a file's github page to modify it
Get some sort of Git interface. This will allow you to "checkout" (i.e. download) the ZK Git repositories. TortoiseGit is good for Windows. Download the appropriate version for your operating system and install it.
Tutorials on Git use are available online with a brief search.
- Check out the appropriate repository in Git - see above list to identify the want you want
- You can use WPI - Web Platform Installer to get the latest versions of all the tools
- Install Visual Studio for C#/site development
- Make sure you get the correct version(s)! Express for Web is required to edit the website; Express for Windows Desktop is required for Zero-K Lobby, Mission Editor, Galaxy Designer and PlanetWars Replay Creator (anything that uses WPF, basically). Either can open and edit most other components, including Springie, PlasmaShared and PlasmaDownloader.
- If you have a regular Visual Studio you can use excellent productivity tool - resharper, license granted for free for the Zero-K project is available (ask Licho)
- Install MVC 5 for web development
- Install SQL Server for locally hosting site + db
- Open Zero-K.sln in Visual Studio Web Express
- Right click asp.net -> properties -> web -> check "Specific Page" and leave it blank. Otherwise you get errors when trying to host locally.
- When you wish to debug, make sure asp.net is the startup project by right clicking -> set as startup project.
- If build target is set to DEBUG you need to have SQL Server installed, otherwise the build target RELEASE uses the live database (very slow)
For modifying database:
- install Microsoft SQL Management Studio
- connect to zero-k.info,100 (server type: Database Engine) with the appropriate username and password
- note that your IP needs to be on server whitelist
- tables can be edited with SQL queries or the built-in GUI; see the SQL tutorial for help
- For modifying DB columns, or making new ones available to other programs, you need to modify ZkData.dbml in trunk/other/Shared/PlasmaShared/Data.
Making stable version of ZK:
Stable version is the version that is meant to be played, for instructions see MakingStable
Changing faction info
- Faction.dbo (faction colors, name, shortname)
- Account.dbo (account faction ID - reassign)
- Clan.dbo (clan faction ID - reassign)
- Site code
- asp.net.csproj (icon references - uses shortname)
- asp.net.publish.xml (as above)
- img/factions/ (icons)
- Lobby code
- LuaUI/Configs/factions/ (icons)
See Development Artwork
See Mission Editor start page