Unciv/docs/Developers/Building-Locally.md

123 lines
8.5 KiB
Markdown
Raw Normal View History

2022-03-09 23:55:46 +07:00
# Building Locally
By the end of this guide, you will have Unciv running locally from code, so you can make changes and test them locally.
Move wiki pages into repository, fix dozens of broken links. (#5854) * Updated Mods (markdown) * Updated Scenarios (markdown) * Updated Mods (markdown) * Added itch.io release * Updated Mods (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Project structure and major classes (markdown) * Updated Mods (markdown) * Created Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Added link to Uniques * Updated Uniques (markdown) * Added 'triggers victory' unique * Updated Making a new Civilization (markdown) * Created Building locally without Android Studio (markdown) * Updated Translating (markdown) * Updated Uniques (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Uniques (markdown) * Added improvement uniques * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * I thought a tutorial on how to create a custom tileset in the first place could not hurt * Moved the sentence to the "Creating a custom tileset" page * Updated Making a new Civilization (markdown) * Updated Mods Making a new Civilization (markdown) * Updated Mods Making a new Civilization (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Destroyed Scenarios (markdown) * Updated Uniques (markdown) * Changed Travis documentation to Github actions documentation * Updated Translating (markdown) * Updated Translating (markdown) * Updated From code to deployment (markdown) * Removed "working on templated rule variants" because we currently don't * Updated Uniques (markdown) * Updated uniques based on everything done during the policy update * Misplaced a unique * Updated Making a new Civilization (markdown) * Updated Making a new Civilization (markdown) * Updated Translating (markdown) * Updated Uniques (markdown) * Removed [pending] messages for PR's that were no longer pending * Added uniques from telecommuncations/advanced balistics * Added all the uniques from my PR's (telecommunicatoins -- shrines); added uniques I deprecated at some point * Updated Uniques (markdown) * Added missing deprecated unique * Added uniques changed in #4292 * Updated Uniques (markdown) * Added uniques from #4311 and #4301 * Added uniques from #4331 * Added Discord webhook message * Created page with basic information * Typo * Made information not incorrect * Added units.json * Manual new lines was a terrible idea * Updated JSON files for mods (markdown) * Added link to JSON files for mods explanation * Added eras.json * capitalization * Added a header * Improved example * Added Buildings.json * hmmm * Doesn't work, sad * Added information on Specialists.json * Updated JSON files for mods (markdown) * Added uniques from #4372 * Updated Uniques (markdown) * Updated uniques after #4393 * Updated uniques after #4423 * Add new and deprecated uniques of #4487, #4459 * add wonder images * Fixed mod directory * Updated Uniques (markdown) * Updated uniques after #4530, #4505, #4419 * Reworked the passages on tileFilter, terrainFilter and improvementFilter from code inspection * Added a more indept guide on how to install UnCiv on macOS * Updated Uniques (markdown) * Created Credits.md (markdown) * Destroyed Credits.md (markdown) * Added installing from source method * Improve Sound chapter, added Civilopedia text chapter * Added after #4619 * Added unitTypes.json * Added beliefs.json * Updated Translating (markdown) * Added eras:unitBaseBuyCost * Added after #4568 * Added ruins.json * Added after #4771 * Added rudimentary Difficulties.json doc * Added ruin-specfic uniques explanation * Added TOC and Nations * Detailed Techs chapter * Fix 1 line - tech uniques * Added Quests.json * Added ModOptions * Added ModOptions * Added UnitPromotions, structured TOC * Added Policies * Added crosslinks * Fixed broken links * Added TileResources * Added more crosslinks * Small fix resource tile graphix aren't toggle-able * Added TileImprovements * Added Terrains * Updated JSON files for mods (markdown) * Updated Getting Started (markdown) * Updated Getting Started (markdown) * Updated Getting Started (markdown) * Updated JSON files for mods (markdown) * Updated Translating (markdown) * Created Civilization-related JSON files (markdown) * Created Map-related JSON files (markdown) * Double title * Double title * Created Unit-related JSON files (markdown) * Moved sounds * Updated Unit related JSON files (markdown) * Moved Stats * Created Miscellaneous JSON files (markdown) * Removed content that has been moved to separate pages, update TOC * Created _Sidebar (markdown) * Updated Uniques (markdown) * test * Fixed broken links. Apparently the way 'preview' links to pages differs from how it links when you view them on a saved page for some reason * Updated Uniques (markdown) * Fix relative `..` link suddenly leaving the wiki * Updated Miscellaneous JSON files (markdown) * Fix relative links * Fix era links to Units.json * Updated Uniques (markdown) * Updated From code to deployment (markdown) * Added uniques & cityFilters up to #4995 * Mass deprecation as per 422607 * Fixed broken link to redirect to Unit Uniques in Wiki * Fixed broken link to redirect to Unit Uniques in Wiki table * Updated Uniques (markdown) * Updated Getting Started (markdown) * Updated Uniques (markdown) * Added uniques & filters up to #5094 * Removed a deprecated unique * Moved some uniques to better sections, removed an outdated unique * fixed a typo * Updated Uniques (markdown) * eras.json is now required * Removed outdated religion section * Added missing terrain uniques * Added resource uniques * Fixed resource unique link * Added missing unique for tile improvements * Fixed broken link * "Disappearing" translations explained * Updated Home (markdown) * Some atlas info, leader portraits * Created Force rating calculation (markdown) * "Not yet" for Image atlas distribution in mods * Updated uniques after #5259 * Added information on conditionals * Updated growth unique * Added conditional support up to #5270 * Typo * Escape html tags * Add conditionals to table of contents * Updated _Sidebar (markdown) * Created Audiovisual Mods (markdown) * Audiovisual Mods, move Graphics-only info * Updated Audiovisual Mods (markdown) * Audiovisual Mods - Draft done. * Documented translation method * Updated Translations, mods, and modding freedom in Open Source (markdown) * Fix Typos and Links * New Terrain uniques / 2 sections * Atlas control via multiple Images.x folders is now live * Link to atlas paragraph * startBias clarification * Missing bracket * Added uniques & conditionals up to #5345 (my PR's only) * Updated Force rating calculation (markdown) * Updated Getting Started (markdown => asciidoc) * Undid renaming * Updated Getting Started (asciidoc => markdown) * Added fix for Gradle sync fail * Updated Project structure and major classes (markdown) * Bump Java version from JDK 8 to JDK 11 due to gradle upgrade * Updated uniques & conditionals up to #5618 from my PR's * Created Regions (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Mention docs/uniques.md, emphasized Stat capitalization * Move wiki files into `/docs/wiki`. * Migrate inter-Markdown links. * Fix pre-existing broken links and anchors. * Standardize repository links for AS linting. * Add wiki footer. * Updated Uniques (markdown) * Updated Mods Making a new Civilization (markdown) * Updated Making a new Civilization (markdown) * Add GH Action for updating wiki. * Play it safer, and don't `push -f`. (Should be the same either way though.) Co-authored-by: Yair Morgenstern <yairm210@hotmail.com> Co-authored-by: GGGuenni <leonard@eynck.de> Co-authored-by: Xander Lenstra <71121390+xlenstra@users.noreply.github.com> Co-authored-by: Martin Pechstein <77325495+Mape6@users.noreply.github.com> Co-authored-by: Arthur van der Staaij <32672293+avdstaaij@users.noreply.github.com> Co-authored-by: SimonCeder <63475501+SimonCeder@users.noreply.github.com> Co-authored-by: SomeTroglodyte <63000004+SomeTroglodyte@users.noreply.github.com> Co-authored-by: Alex25820 <50142558+Alex25820@users.noreply.github.com> Co-authored-by: jvy1001 <76390095+jvy1001@users.noreply.github.com> Co-authored-by: Shann Aurelle Ripalda <shannaurelleg@gmail.com> Co-authored-by: NxOne14 <81563289+NxOne14@users.noreply.github.com> Co-authored-by: MenaKing2020 <92416577+MenaKing2020@users.noreply.github.com> Co-authored-by: asda488 <39116917+asda488@users.noreply.github.com>
2022-01-24 02:49:43 +07:00
2022-03-09 23:55:46 +07:00
## With Android Studio
- Install [Android Studio](https://developer.android.com/studio) - it's free and awesome! Be aware that it's a long download!
- Install Git, it's the way for us to work together on this project. UI is optional, Android Studio has good Git tools built in :)
- Getting the code
- Create a [Github account](https://github.com/join), if you don't already have one
- [Fork the repo](https://github.com/yairm210/Unciv/fork) - this will create a "copy" of the code on your account, at `https://github.com/<YourUsername>/Unciv`
- Load the project in Android Studio
- File -> New -> Project from Version Control -> GitHub
- Enter your GitHub username and password
- Select the repository and hit clone - The GitHub repo will be created as a new project in Android Studio.
- Gradle will attempt the initial sync. If this is your first time with Android Studio, this may require you to accept the Android Build-tools licenses, which works differently on every device, so search for your OS-specific solution.
- A new install may not be able to do the initial sync - this comes in the form of `Unable to find method ''void org.apache.commons.compress.archivers.zip.ZipFile.<init>(java.nio.channels.SeekableByteChannel)''` errors when you try to sync. If you have this problem go into File > Settings > Appearance & Behavior > System Settings > Android SDK
- Click "SDK Platforms"
- Click "Android 13 (Tiramisu)"
![image](/Unciv/assets/Android_SDK_Platforms.png)
(Optionally, you can save some space by selecting 'Show Package Details' and choosing the Platform SDK only, without Sources or system Images)
- Click "SDK Tools"
- Select "Show Package Details" in the bottom right
- Choose version 33.0.2 under "Android SDK Build-Tools"
![image](/Unciv/assets/Android_SDK_Tools.png)
- Click "Apply"
- Restart Android Studio
- In Android Studio, Run > Edit configurations (be sure the Gradle sync is finished successfully first).
- Click "+" to add a new configuration
- Choose "Application"
- Give the configuration a name, we recommend "Desktop"
- Set the module classpath (the box to the right of the Java selection) to `Unciv.desktop.main` (`Unciv.desktop` for Bumblebee or below), main class to `com.unciv.app.desktop.DesktopLauncher` and `$ProjectFileDir$/android/assets` as the Working directory, OK to close the window
- It _may_ be useful to set some VM options - activate the field in the run config editor with Alt-V or via the Modify Options menu, then add `-Xmx4096m -Xms256m -XX:MaxMetaspaceSize=256m` to allow a debugged game a little more memory. Or, use the `-DnoLog=` or `-DonlyLog=` options to control console logging. See the [Log.kt](https://github.com/yairm210/Unciv/blob/master/core/src/com/unciv/utils/Log.kt) comments for details.
- If you get a `../../docs/uniques.md (No such file or directory)` error that means you forgot to set the working directory!
![image](/Unciv/assets/Desktop_Build.png)
- Select the Desktop configuration (or however you chose to name it) and click the green arrow button to run! Or you can use the next button -the green critter with six legs and two feelers - to start debugging.
- A few Android Studio settings that are recommended:
- Going to Settings > Version Control > Commit and turning off 'Before Commit - Analyze code'
- Settings > Editor > Code Style > Kotlin > Tabs and Indents > Continuation Indent: 4
![image](https://user-images.githubusercontent.com/44038014/169315352-9ba0c4cf-307c-44d1-b3bc-2a58752c6854.png)
- Settings > Editor > General > On Save > Uncheck Remove trailing spaces on: [...] to prevent it from removing necessary trailing whitespace in template.properties for translation files
![image](https://user-images.githubusercontent.com/44038014/169316243-07e36b8e-4c9e-44c4-941c-47e634c68b4c.png)
2023-04-19 23:33:34 +07:00
- Right-click the `android/assets/SaveFiles` folder, "Mark directory as" > Excluded
- If you download mods do the same for the `android/assets/mods` folder and any other files you may create while testing that do not belong in the public project.
- This [disables indexing](https://www.jetbrains.com/help/idea/indexing.html#exclude) for performance.
Move wiki pages into repository, fix dozens of broken links. (#5854) * Updated Mods (markdown) * Updated Scenarios (markdown) * Updated Mods (markdown) * Added itch.io release * Updated Mods (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Project structure and major classes (markdown) * Updated Mods (markdown) * Created Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Added link to Uniques * Updated Uniques (markdown) * Added 'triggers victory' unique * Updated Making a new Civilization (markdown) * Created Building locally without Android Studio (markdown) * Updated Translating (markdown) * Updated Uniques (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Uniques (markdown) * Added improvement uniques * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * I thought a tutorial on how to create a custom tileset in the first place could not hurt * Moved the sentence to the "Creating a custom tileset" page * Updated Making a new Civilization (markdown) * Updated Mods Making a new Civilization (markdown) * Updated Mods Making a new Civilization (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Destroyed Scenarios (markdown) * Updated Uniques (markdown) * Changed Travis documentation to Github actions documentation * Updated Translating (markdown) * Updated Translating (markdown) * Updated From code to deployment (markdown) * Removed "working on templated rule variants" because we currently don't * Updated Uniques (markdown) * Updated uniques based on everything done during the policy update * Misplaced a unique * Updated Making a new Civilization (markdown) * Updated Making a new Civilization (markdown) * Updated Translating (markdown) * Updated Uniques (markdown) * Removed [pending] messages for PR's that were no longer pending * Added uniques from telecommuncations/advanced balistics * Added all the uniques from my PR's (telecommunicatoins -- shrines); added uniques I deprecated at some point * Updated Uniques (markdown) * Added missing deprecated unique * Added uniques changed in #4292 * Updated Uniques (markdown) * Added uniques from #4311 and #4301 * Added uniques from #4331 * Added Discord webhook message * Created page with basic information * Typo * Made information not incorrect * Added units.json * Manual new lines was a terrible idea * Updated JSON files for mods (markdown) * Added link to JSON files for mods explanation * Added eras.json * capitalization * Added a header * Improved example * Added Buildings.json * hmmm * Doesn't work, sad * Added information on Specialists.json * Updated JSON files for mods (markdown) * Added uniques from #4372 * Updated Uniques (markdown) * Updated uniques after #4393 * Updated uniques after #4423 * Add new and deprecated uniques of #4487, #4459 * add wonder images * Fixed mod directory * Updated Uniques (markdown) * Updated uniques after #4530, #4505, #4419 * Reworked the passages on tileFilter, terrainFilter and improvementFilter from code inspection * Added a more indept guide on how to install UnCiv on macOS * Updated Uniques (markdown) * Created Credits.md (markdown) * Destroyed Credits.md (markdown) * Added installing from source method * Improve Sound chapter, added Civilopedia text chapter * Added after #4619 * Added unitTypes.json * Added beliefs.json * Updated Translating (markdown) * Added eras:unitBaseBuyCost * Added after #4568 * Added ruins.json * Added after #4771 * Added rudimentary Difficulties.json doc * Added ruin-specfic uniques explanation * Added TOC and Nations * Detailed Techs chapter * Fix 1 line - tech uniques * Added Quests.json * Added ModOptions * Added ModOptions * Added UnitPromotions, structured TOC * Added Policies * Added crosslinks * Fixed broken links * Added TileResources * Added more crosslinks * Small fix resource tile graphix aren't toggle-able * Added TileImprovements * Added Terrains * Updated JSON files for mods (markdown) * Updated Getting Started (markdown) * Updated Getting Started (markdown) * Updated Getting Started (markdown) * Updated JSON files for mods (markdown) * Updated Translating (markdown) * Created Civilization-related JSON files (markdown) * Created Map-related JSON files (markdown) * Double title * Double title * Created Unit-related JSON files (markdown) * Moved sounds * Updated Unit related JSON files (markdown) * Moved Stats * Created Miscellaneous JSON files (markdown) * Removed content that has been moved to separate pages, update TOC * Created _Sidebar (markdown) * Updated Uniques (markdown) * test * Fixed broken links. Apparently the way 'preview' links to pages differs from how it links when you view them on a saved page for some reason * Updated Uniques (markdown) * Fix relative `..` link suddenly leaving the wiki * Updated Miscellaneous JSON files (markdown) * Fix relative links * Fix era links to Units.json * Updated Uniques (markdown) * Updated From code to deployment (markdown) * Added uniques & cityFilters up to #4995 * Mass deprecation as per 422607 * Fixed broken link to redirect to Unit Uniques in Wiki * Fixed broken link to redirect to Unit Uniques in Wiki table * Updated Uniques (markdown) * Updated Getting Started (markdown) * Updated Uniques (markdown) * Added uniques & filters up to #5094 * Removed a deprecated unique * Moved some uniques to better sections, removed an outdated unique * fixed a typo * Updated Uniques (markdown) * eras.json is now required * Removed outdated religion section * Added missing terrain uniques * Added resource uniques * Fixed resource unique link * Added missing unique for tile improvements * Fixed broken link * "Disappearing" translations explained * Updated Home (markdown) * Some atlas info, leader portraits * Created Force rating calculation (markdown) * "Not yet" for Image atlas distribution in mods * Updated uniques after #5259 * Added information on conditionals * Updated growth unique * Added conditional support up to #5270 * Typo * Escape html tags * Add conditionals to table of contents * Updated _Sidebar (markdown) * Created Audiovisual Mods (markdown) * Audiovisual Mods, move Graphics-only info * Updated Audiovisual Mods (markdown) * Audiovisual Mods - Draft done. * Documented translation method * Updated Translations, mods, and modding freedom in Open Source (markdown) * Fix Typos and Links * New Terrain uniques / 2 sections * Atlas control via multiple Images.x folders is now live * Link to atlas paragraph * startBias clarification * Missing bracket * Added uniques & conditionals up to #5345 (my PR's only) * Updated Force rating calculation (markdown) * Updated Getting Started (markdown => asciidoc) * Undid renaming * Updated Getting Started (asciidoc => markdown) * Added fix for Gradle sync fail * Updated Project structure and major classes (markdown) * Bump Java version from JDK 8 to JDK 11 due to gradle upgrade * Updated uniques & conditionals up to #5618 from my PR's * Created Regions (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Mention docs/uniques.md, emphasized Stat capitalization * Move wiki files into `/docs/wiki`. * Migrate inter-Markdown links. * Fix pre-existing broken links and anchors. * Standardize repository links for AS linting. * Add wiki footer. * Updated Uniques (markdown) * Updated Mods Making a new Civilization (markdown) * Updated Making a new Civilization (markdown) * Add GH Action for updating wiki. * Play it safer, and don't `push -f`. (Should be the same either way though.) Co-authored-by: Yair Morgenstern <yairm210@hotmail.com> Co-authored-by: GGGuenni <leonard@eynck.de> Co-authored-by: Xander Lenstra <71121390+xlenstra@users.noreply.github.com> Co-authored-by: Martin Pechstein <77325495+Mape6@users.noreply.github.com> Co-authored-by: Arthur van der Staaij <32672293+avdstaaij@users.noreply.github.com> Co-authored-by: SimonCeder <63475501+SimonCeder@users.noreply.github.com> Co-authored-by: SomeTroglodyte <63000004+SomeTroglodyte@users.noreply.github.com> Co-authored-by: Alex25820 <50142558+Alex25820@users.noreply.github.com> Co-authored-by: jvy1001 <76390095+jvy1001@users.noreply.github.com> Co-authored-by: Shann Aurelle Ripalda <shannaurelleg@gmail.com> Co-authored-by: NxOne14 <81563289+NxOne14@users.noreply.github.com> Co-authored-by: MenaKing2020 <92416577+MenaKing2020@users.noreply.github.com> Co-authored-by: asda488 <39116917+asda488@users.noreply.github.com>
2022-01-24 02:49:43 +07:00
Unciv uses Gradle to specify dependencies and how to run. In the background, the Gradle gnomes will be off fetching the packages (a one-time effort) and, once that's done, will build the project!
Unciv uses Gradle 7.5 and the Android Gradle Plugin 7.3.1. Can check in File > Project Structure > Project
> Note: advanced build commands (as described in the next paragraph), specifically `gradlew desktop:dist` to build a jar, run just fine in Android Studio's terminal (Alt+F12), with most dependencies already taken care of.
2022-03-09 23:55:46 +07:00
## Without Android Studio
- Ensure you have JDK 11 or higher installed
- Clone the project (see above initial steps)
- Open a terminal in the Unciv folder and run the following commands
2022-03-09 23:55:46 +07:00
### Windows
- Running: `gradlew desktop:run`
- Building: `gradlew desktop:dist`
2022-03-09 23:55:46 +07:00
### Linux/Mac OS
- Running: `./gradlew desktop:run`
- Building: `./gradlew desktop:dist`
2022-03-09 23:55:46 +07:00
If the terminal returns `Permission denied` or `Command not found` on Mac/Linux, run `chmod +x ./gradlew` first. *This is a one-time procedure.*
If you get an error that Android SDK folder wasn't found, install it by running:
2022-03-09 23:55:46 +07:00
`sudo apt update && sudo apt install android-sdk` (Debian, Ubuntu, Mint etc.)
Then, set the SDK location in the `local.properties` file by adding:
2022-03-09 23:55:46 +07:00
`sdk.dir = /path/to/android/sdk` - for example, `/usr/lib/android-sdk`
2022-03-09 23:55:46 +07:00
If during initial launch you get an error that the JDK version is wrong, install the JDK from [here](https://adoptium.net/temurin/releases/).
2022-03-09 23:55:46 +07:00
> Note: Gradle may take up to several minutes to download files
After building, the output .JAR file should be in `/desktop/build/libs/Unciv.jar`
2022-03-09 23:55:46 +07:00
For actual development, you'll probably need to download Android Studio and build it yourself - see above :)
2022-03-09 23:55:46 +07:00
## Next steps
Congratulations! Unciv should now be running on your computer! Now we can start changing some code, and later we'll see how your changes make it into the main repository!
Now would be a good time to get to know the project in general at [the Project Structure overview!](Project-structure-and-major-classes.md)
### Unit Tests
You can (and in some cases _should_) run and even debug the unit tests locally.
- In Android Studio, Run > Edit configurations.
- Click "+" to add a new configuration
- Choose "Gradle" and name the config, e.g. "Unit Tests"
- Under "Gradle Project", choose "Unciv" from the dropdown (or type it), set "Tasks" to `:tests:test` and "Arguments" to `--tests "com.unciv.*"`, OK to close the window.
- Select the "Unit Tests" configuration and click the green arrow button to run! Or start a debug session as above.
### Linting
Detekt checks for code smells and other linting issues.
To generate Detekt reports:
- Download [detekt-cli](https://github.com/detekt/detekt/releases/latest) (the zip file) and unzip it
- Open a terminal in the Unciv root directory and run one of the following commands to generate the report. NOTE: If you're using Windows, replace `detekt-cli` with `detekt-cli.bat`.
- For warnings: `PATH/TO/DETEKT/detekt-cli --parallel --report html:detekt/reports.html --config detekt/config/detekt-warnings.yml`
- For errors: `PATH/TO/DETEKT/detekt-cli --parallel --report html:detekt/reports.html --config detekt/config/detekt-errors.yml`
- The report will be generated in `detekt/reports.html`
### UncivServer
2022-03-09 23:55:46 +07:00
The simple multiplayer host included in the sources can be set up to debug or run analogously to the main game:
- In Android Studio, Run > Edit configurations.
- Click "+" to add a new configuration
- Choose "Application" and name the config, e.g. "UncivServer"
- Set the module to `Unciv.server.main` (`Unciv.server` for Studio versions Bumblebee or below), main class to `com.unciv.app.server.UncivServer` and `<repo_folder>/android/assets/` as the Working directory, OK to close the window.
- Select the UncivServer configuration and click the green arrow button to run! Or start a debug session as above.
Move wiki pages into repository, fix dozens of broken links. (#5854) * Updated Mods (markdown) * Updated Scenarios (markdown) * Updated Mods (markdown) * Added itch.io release * Updated Mods (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Project structure and major classes (markdown) * Updated Mods (markdown) * Created Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Added link to Uniques * Updated Uniques (markdown) * Added 'triggers victory' unique * Updated Making a new Civilization (markdown) * Created Building locally without Android Studio (markdown) * Updated Translating (markdown) * Updated Uniques (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Uniques (markdown) * Added improvement uniques * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Mods (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * I thought a tutorial on how to create a custom tileset in the first place could not hurt * Moved the sentence to the "Creating a custom tileset" page * Updated Making a new Civilization (markdown) * Updated Mods Making a new Civilization (markdown) * Updated Mods Making a new Civilization (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Destroyed Scenarios (markdown) * Updated Uniques (markdown) * Changed Travis documentation to Github actions documentation * Updated Translating (markdown) * Updated Translating (markdown) * Updated From code to deployment (markdown) * Removed "working on templated rule variants" because we currently don't * Updated Uniques (markdown) * Updated uniques based on everything done during the policy update * Misplaced a unique * Updated Making a new Civilization (markdown) * Updated Making a new Civilization (markdown) * Updated Translating (markdown) * Updated Uniques (markdown) * Removed [pending] messages for PR's that were no longer pending * Added uniques from telecommuncations/advanced balistics * Added all the uniques from my PR's (telecommunicatoins -- shrines); added uniques I deprecated at some point * Updated Uniques (markdown) * Added missing deprecated unique * Added uniques changed in #4292 * Updated Uniques (markdown) * Added uniques from #4311 and #4301 * Added uniques from #4331 * Added Discord webhook message * Created page with basic information * Typo * Made information not incorrect * Added units.json * Manual new lines was a terrible idea * Updated JSON files for mods (markdown) * Added link to JSON files for mods explanation * Added eras.json * capitalization * Added a header * Improved example * Added Buildings.json * hmmm * Doesn't work, sad * Added information on Specialists.json * Updated JSON files for mods (markdown) * Added uniques from #4372 * Updated Uniques (markdown) * Updated uniques after #4393 * Updated uniques after #4423 * Add new and deprecated uniques of #4487, #4459 * add wonder images * Fixed mod directory * Updated Uniques (markdown) * Updated uniques after #4530, #4505, #4419 * Reworked the passages on tileFilter, terrainFilter and improvementFilter from code inspection * Added a more indept guide on how to install UnCiv on macOS * Updated Uniques (markdown) * Created Credits.md (markdown) * Destroyed Credits.md (markdown) * Added installing from source method * Improve Sound chapter, added Civilopedia text chapter * Added after #4619 * Added unitTypes.json * Added beliefs.json * Updated Translating (markdown) * Added eras:unitBaseBuyCost * Added after #4568 * Added ruins.json * Added after #4771 * Added rudimentary Difficulties.json doc * Added ruin-specfic uniques explanation * Added TOC and Nations * Detailed Techs chapter * Fix 1 line - tech uniques * Added Quests.json * Added ModOptions * Added ModOptions * Added UnitPromotions, structured TOC * Added Policies * Added crosslinks * Fixed broken links * Added TileResources * Added more crosslinks * Small fix resource tile graphix aren't toggle-able * Added TileImprovements * Added Terrains * Updated JSON files for mods (markdown) * Updated Getting Started (markdown) * Updated Getting Started (markdown) * Updated Getting Started (markdown) * Updated JSON files for mods (markdown) * Updated Translating (markdown) * Created Civilization-related JSON files (markdown) * Created Map-related JSON files (markdown) * Double title * Double title * Created Unit-related JSON files (markdown) * Moved sounds * Updated Unit related JSON files (markdown) * Moved Stats * Created Miscellaneous JSON files (markdown) * Removed content that has been moved to separate pages, update TOC * Created _Sidebar (markdown) * Updated Uniques (markdown) * test * Fixed broken links. Apparently the way 'preview' links to pages differs from how it links when you view them on a saved page for some reason * Updated Uniques (markdown) * Fix relative `..` link suddenly leaving the wiki * Updated Miscellaneous JSON files (markdown) * Fix relative links * Fix era links to Units.json * Updated Uniques (markdown) * Updated From code to deployment (markdown) * Added uniques & cityFilters up to #4995 * Mass deprecation as per 422607 * Fixed broken link to redirect to Unit Uniques in Wiki * Fixed broken link to redirect to Unit Uniques in Wiki table * Updated Uniques (markdown) * Updated Getting Started (markdown) * Updated Uniques (markdown) * Added uniques & filters up to #5094 * Removed a deprecated unique * Moved some uniques to better sections, removed an outdated unique * fixed a typo * Updated Uniques (markdown) * eras.json is now required * Removed outdated religion section * Added missing terrain uniques * Added resource uniques * Fixed resource unique link * Added missing unique for tile improvements * Fixed broken link * "Disappearing" translations explained * Updated Home (markdown) * Some atlas info, leader portraits * Created Force rating calculation (markdown) * "Not yet" for Image atlas distribution in mods * Updated uniques after #5259 * Added information on conditionals * Updated growth unique * Added conditional support up to #5270 * Typo * Escape html tags * Add conditionals to table of contents * Updated _Sidebar (markdown) * Created Audiovisual Mods (markdown) * Audiovisual Mods, move Graphics-only info * Updated Audiovisual Mods (markdown) * Audiovisual Mods - Draft done. * Documented translation method * Updated Translations, mods, and modding freedom in Open Source (markdown) * Fix Typos and Links * New Terrain uniques / 2 sections * Atlas control via multiple Images.x folders is now live * Link to atlas paragraph * startBias clarification * Missing bracket * Added uniques & conditionals up to #5345 (my PR's only) * Updated Force rating calculation (markdown) * Updated Getting Started (markdown => asciidoc) * Undid renaming * Updated Getting Started (asciidoc => markdown) * Added fix for Gradle sync fail * Updated Project structure and major classes (markdown) * Bump Java version from JDK 8 to JDK 11 due to gradle upgrade * Updated uniques & conditionals up to #5618 from my PR's * Created Regions (markdown) * Updated Uniques (markdown) * Updated Uniques (markdown) * Mention docs/uniques.md, emphasized Stat capitalization * Move wiki files into `/docs/wiki`. * Migrate inter-Markdown links. * Fix pre-existing broken links and anchors. * Standardize repository links for AS linting. * Add wiki footer. * Updated Uniques (markdown) * Updated Mods Making a new Civilization (markdown) * Updated Making a new Civilization (markdown) * Add GH Action for updating wiki. * Play it safer, and don't `push -f`. (Should be the same either way though.) Co-authored-by: Yair Morgenstern <yairm210@hotmail.com> Co-authored-by: GGGuenni <leonard@eynck.de> Co-authored-by: Xander Lenstra <71121390+xlenstra@users.noreply.github.com> Co-authored-by: Martin Pechstein <77325495+Mape6@users.noreply.github.com> Co-authored-by: Arthur van der Staaij <32672293+avdstaaij@users.noreply.github.com> Co-authored-by: SimonCeder <63475501+SimonCeder@users.noreply.github.com> Co-authored-by: SomeTroglodyte <63000004+SomeTroglodyte@users.noreply.github.com> Co-authored-by: Alex25820 <50142558+Alex25820@users.noreply.github.com> Co-authored-by: jvy1001 <76390095+jvy1001@users.noreply.github.com> Co-authored-by: Shann Aurelle Ripalda <shannaurelleg@gmail.com> Co-authored-by: NxOne14 <81563289+NxOne14@users.noreply.github.com> Co-authored-by: MenaKing2020 <92416577+MenaKing2020@users.noreply.github.com> Co-authored-by: asda488 <39116917+asda488@users.noreply.github.com>
2022-01-24 02:49:43 +07:00
To build a jar file, refer to [Without Android Studio](#Without-Android-Studio) and replace 'desktop' with 'server'. That is, run `./gradlew server:dist` and when it's done look for /server/build/libs/UncivServer.jar