7745cd1c88
* WorkerAutomation now uses UnitAutomations's getDangerous tiles * getPriority now values the current unit tile * getPriority now values if the tile is worked instead of if it provides a yield * getPriority prioritises clearing fallout * getPriority prioritises new resources * Fixed error in WorkerAutomationTest * FindTileToWork now uses tilesToAvoid instead of checking for enemies itself * Workers prioritise their own tile first * Began reworking tile priority * Changed getBasePriority() to account for tile damage * findTileToWork now groups tiles and finds the best tile from the top group * Fixed method calling findTileToWork() * Workers don't build roads if their GPT is below 20 * Workers have multiple stages of wanting to connect cities * Workers prioritise best tiles based on closeness * Changed stuff * Fixed a situation where a worker would be on a tile without improving it * Reduced city connection priority * Worker prioritises improving closer tiles more * Worker prioritises improvements that are closer to being finished * Reverted changes that broke tryConnectingCities more (it is already a little broken) * Improved repair priority * Added cityDistanceWant to tryConnectingCities * Created a partial Test * Finished first test * Fixed a merge issue * Fixed tileHasWorkToDo not accounting for base improvement values * Added a failing test * CityPopulationManager now assigns population to tiles in a predictable way for the Worker BasePriority tileProvidesYield * Added an extra test with two cities and no roads * Fixed Test creating new workers which ends up failing the test * Test no longer research and have unnecessary research * Test no longer include city center tiles as improvements built * Added a failing test and removed a tryConnectCity filter * Workers now improve tiles with unseeable resources on them * Added a resource test * Fixed should build roads in turns test * Added an extra test * tryConnectingCities takes into account the improvement priority * Separated the improvement stat bonus from the base priority for tryConnectCities * getBasePriority() now ranks a tile based on its base stats * replaced mostUnderdevelopedCity with closestUnderDevelopedCity * changed build road distances wanted * getImprovementRanking now accounts for resources * tilePriority now uses a float instead of an int * Fixed float to int conversion in SpecificUnitAutomation * Added a test for pillaging |
||
---|---|---|
.github | ||
.idea/inspectionProfiles | ||
android | ||
buildSrc | ||
core | ||
desktop | ||
detekt/config | ||
docs | ||
extraImages | ||
fastlane/metadata/android | ||
gradle/wrapper | ||
ios | ||
server | ||
tests | ||
.dockerignore | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
build.gradle.kts | ||
changelog.md | ||
debug.keystore | ||
docker-compose.yml | ||
Dockerfile | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
keystore.jks | ||
LICENSE | ||
mkdocs.yml | ||
README.md | ||
settings.gradle.kts |
Unciv - Civ V remake for Android & Desktop
What is this?
An open source, moddability-focused Android and Desktop remake of Civ V, made with LibGDX
Is this any good?
Depends what you're looking for. If you're in the market for high-res graphics, amazing soundtracks, animations etc, I highly recommend Firaxis's Civ-V-like game, "Civilization V".
If you want a small, fast, moddable, FOSS, in-depth 4X that can still run on a potato, you've come to the right place :)
What's the roadmap?
In this order:
- Polish! As you may have noticed, Unciv is fully functional but rough around the edges. This means:
- UI+UX improvements (suggestions welcome!)
- Better automation, AI etc. in-game
- Finishing off Vanilla mechanics - mostly done!
- G&K mechanics - espionage, small other changes (see #4697)
- BNW mechanics - trade routes, world congress, etc.
Contributing
Programmers start here!
Translators start here!
Modders start here!
You can join us in any of the open issue, or work on improving anything you want - once you're finished, issue a pull request and it'll go into the next version!
If not, you can help by spreading the word - vote for Unciv where you can, mention it on Reddit or Twitter etc, and help us with new ideas of how to get the word out!
FAQ
How do I install?
- Android - Google Play or F-droid
- Windows/Linux - itch.io, Flatpak via Flathub, or AUR
- Raspberry Pi - Pi-apps
- MacOS - Install with this guide
- Jars, APKs and Windows/Linux builds also available in Releases (run jar with
java -jar Unciv.jar
) - not recommended since we update frequently and you will quickly become out-of-date - Build from scratch if that's your thing
How about IOS?
I'm not planning on it. It means paying money to Apple, yet another release path, and since I don't have an IOS device it means I can't test it properly.
Steam release?
Steam has decided that they don't want to host Unciv, they probably don't want to risk legal issues with Firaxis (although those should be non-existent, see below)
Will you implement {feature}?
If it's in the original Civ V, then yes!
If not, then the feature won't be added to the base game - possibly it will be added as a way to mod the game, which is constantly expanding
Why not? This is its own game, why not add features that weren't in Civ V?
Having a clear vision is important for actually getting things done.
Anyone can make a suggestion. Not all are good, viable, or simple. Not many can actually implement stuff.
As an open source project, this stuff is done in our spare time, of which there isn't much.
We need a clear-cut criteria to decide what to work on and what not to work on.
Will you implement Civ VI?
Considering how long it took to get this far, no.
How can I learn to play? Where's the wiki?
All the tutorial information is available in-game at menu > civilopedia > tutorials
All the information is included in the amazing Civ V wiki
Since this is a Civ V clone, you can search Google for how to play Civ V and there are loads of answers =)
Alternatively, you could join us on Discord and ask there =D
Aren't you basically making a Civ V clone? Is that even legal?
This is a subject that I've heard a lot of hearsay on but no solid sources of law.
From what I gather, it is illegal:
- To use the Civilization name
- To impersonate the Civ games (so calling yourself civi|zation with a similar logo, for instance)
- To use any assets from the original game (images, sound etc) - they belong to Firaxis
From what I understand, intellectual property rights apply to names, characters and settings. They do not apply to mechanics - as I'm sure you know, there are a billion Flappy Bird knockoffs
If anyone has any real legal sources, or can shed some light on the limits of what is and is not allowed, I'd be happy to hear!
Run with Docker
If you have docker compose installed:
$ docker compose build && docker compose up
and then goto http://localhost:6901/vnc.html?password=headless
If just docker:
$ docker build . -t unciv && docker run -d -p 6901:6901 -p 5901:5901 unciv
Or just use our already built one:
$ docker run -d -p 6901:6901 -p 5901:5901 ghcr.io/yairm210/unciv
and then goto http://localhost:6901/vnc.html?password=headless