Difference between revisions of "Zero-K:Developing"
Jump to navigation
Jump to search
Debug data:
m |
HistidineBot (talk | contribs) m |
||
Line 1: | Line 1: | ||
− | + | = Before modifying source: = | |
− | |||
== ZK's Devving Philosophy (social rules) == | == ZK's Devving Philosophy (social rules) == | ||
+ | * Core devs have the last word. | ||
* "War is anticommunication!" | * "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." | * "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." | * "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." | * "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 == | == What is in source codes == | ||
* [https://github.com/ZeroK-RTS/Zero-K Zero-K] contains the game proper | * [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] | * [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/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 | * [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 | * [https://github.com/ZeroK-RTS/Zero-K-Missions Zero-K-Missions] contains source files for official ZK missions | ||
Line 30: | Line 30: | ||
* Get a [https://github.com/ GitHub] account and download [https://desktop.github.com/ Github for desktop] | * 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 | * [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 == | == Modifying the game == | ||
Line 54: | Line 55: | ||
* Note: in order 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. | * Note: in order 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. | ||
− | == Artwork == | + | == Artwork: == |
− | See [ | + | See [Development_Artwork Development Artwork] |
− | == Missions == | + | == Missions: == |
− | See [ | + | See [MissionEditorStartPage Mission Editor start page] |
Revision as of 06:34, 11 July 2016
Contents
Before modifying source:
ZK's Devving Philosophy (social rules)
- Core devs have the last word.
- "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.
- "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
* 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 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 run the game using skirmisher (Zero-K settings tab) and pick game named Zero-K $VERSION
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:
See [Development_Artwork Development Artwork]
Missions:
See [MissionEditorStartPage Mission Editor start page]
Debug data:
[SQLBagOStuff] MainObjectStash using store ReplicatedBagOStuff
[objectcache] MainWANObjectCache using store EmptyBagOStuff
IP: 18.116.27.229
Start request GET /mediawiki/index.php?diff=next&oldid=1030&title=Zero-K%3ADeveloping
HTTP HEADERS:
CONTENT-TYPE:
CONTENT-LENGTH: 0
USER-AGENT: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HOST: zero-k.info
ACCEPT-ENCODING: gzip, br, zstd, deflate
ACCEPT: */*
CONNECTION: close[localisation] LocalisationCache: using store LCStoreDB
[session] SessionManager using store SqlBagOStuff
[DBReplication] Cannot use ChronologyProtector with EmptyBagOStuff
[DBReplication] Wikimedia\Rdbms\LBFactory::getChronologyProtector: request info {
"IPAddress": "18.116.27.229",
"UserAgent": "Mozilla\/5.0 AppleWebKit\/537.36 (KHTML, like Gecko; compatible; ClaudeBot\/1.0; +claudebot@anthropic.com)",
"ChronologyProtection": false,
"ChronologyPositionIndex": 0,
"ChronologyClientId": false
}[DBConnection] Wikimedia\Rdbms\LoadBalancer::lazyLoadReplicationPositions: executed chronology callback.
[DBConnection] Wikimedia\Rdbms\LoadBalancer::getLocalConnection: connected to database 0 at 'localhost'.
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[session] SessionBackend "th8kc754b99dd82lhjvnk53g54d98tap" is unsaved, marking dirty in constructor
[session] SessionBackend "th8kc754b99dd82lhjvnk53g54d98tap" save: dataDirty=1 metaDirty=1 forcePersist=0
[cookie] already deleted setcookie: "wikidb229_mw__session", "", "1713899043", "/", "", "", "1"
[cookie] already deleted setcookie: "wikidb229_mw_UserID", "", "1713899043", "/", "", "", "1"
[cookie] already deleted setcookie: "wikidb229_mw_Token", "", "1713899043", "/", "", "", "1"
[cookie] already deleted setcookie: "forceHTTPS", "", "1713899043", "/", "", "", "1"
[DBConnection] Wikimedia\Rdbms\LoadBalancer::getLocalConnection: connected to database 0 at 'localhost'.
Title::getRestrictionTypes: applicable restrictions to [[Zero-K:Developing]] are {edit,move}
[ContentHandler] Created handler for wikitext: WikitextContentHandler
Article::view: showing diff page
DifferenceEngine old '1030' new 'next' rcid ''
[MessageCache] MessageCache using store SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] SqlBagOStuff::lock failed due to timeout for wikidb229-mw_:messages:en.
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[MessageCache] MessageCache::load: Loading en... local cache is empty, global cache is expired/volatile, loading from database
ParserFactory: using preprocessor: Preprocessor_Hash
Unstubbing $wgLang on call of $wgLang::_unstub from ParserOptions->__construct
DifferenceEngine old '0' new '0' rcid '0'
WikiPage::getParserOutput: using parser cache: no
[caches] parser: SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
Parser cache options found.
[Preprocessor] Cached preprocessor output (key: wikidb229-mw_:preprocess-hash:3b0046da99ed0443e0981be591665e02:0)
[Preprocessor] Cached preprocessor output (key: wikidb229-mw_:preprocess-hash:3b0046da99ed0443e0981be591665e02:0)
MediaWiki::preOutputCommit: primary transaction round committed
MediaWiki::preOutputCommit: pre-send deferred updates completed
MediaWiki::preOutputCommit: session changes committed
MediaWiki::preOutputCommit: LBFactory shutdown completed
Title::getRestrictionTypes: applicable restrictions to [[Zero-K:Developing]] are {edit,move}