Zero-K:Developing

From Zero-K
Revision as of 07:34, 26 April 2018 by Anarchid (talk | contribs) (→‎ZK's Devving Philosophy (social rules): Fix xponen's misquote of Klangstabil after all those years.)
Jump to navigation Jump to search

New developers should read this before touching the source.

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."
  • "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

  1. Create a folder games/zk.sdd in the Zero-K installation folder.
  2. Clone to desktop Zero-K game and save it to zk.sdd/. This folder should contain multiple files/folders, such as modinfo.lua.
  3. 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.
  4. In the Settings menu a new tab appears: Developer. Edit the Singleplayer setting to be Zero-K Dev.
  5. Your skirmish games should now use your modified local copy of zk.sdd.

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

Missions

See Mission Editor

Engine

See Spring Engine Development