Civitas is a free-to-play strategy empire-building browser game written in Javascript with the help of the jQuery library . Players develop and maintain their settlement from initial village to a fully grown metropolis, influencing and conquering the neighbouring settlements.
There is no set goal, game is played on an infinite-round basis and there is a server component planned. The focus of the game is to manufacture and trade resources in order to raise the level of your city.
Badges
Features
- Over 80 types of buildings, each intertwined in the chain of production.
- Custom climate zones, each with specific buildings.
- Global market, player can trade goods with other settlements.
- Army! Navy! Soldiers! Ships!
- Fame system that allows your city to level up via trades, conquers and special buildings.
- Prestige system that affects diplomacy.
- Each city in the game world is linked via an influence system that needs to be maintained for diplomacy to work.
- Random events that can change your diplomacy status with the other cities, give you coins or random resources.
- Espionage, influence cities, destroy buildings, sabotage.
- Ranking screen, where cities get ranked according to their status in the world.
- Declare war, propose alliances and pacts, ask other settlements to join your city, propose cease fire.
- Heroes, unique classes and items, attributes.
- Server component, no actual data is saved externally, only in your browser’s localStorage.
- Jailer component that assures game data integrity (no cheating).
- Any player interaction since no data is transmitted to the server component.
- Artificial Intelligence (AI) for computer-controlled cities.
Playing
Warning
civitas-assets.zip
file into your dist/images/
directory). All the other game resources are freely distributed under the GPLv3 license, same as the code.1. With Docker
$ docker-compose up --build
And point your browser to http://localhost
(or even better, add the line below to your /etc/hosts
file and browse http://civitas.test
.
127.0.0.1 civitas.test
2. Local
Choose an archive format from below, download and uncompress it. Point your browser to dist/index.html
, you don’t need a game server to play.
Releases
License
Civitas is written by sizeof(cat) and distributed under the GPLv3 license
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Contributing
Pull requests are always welcome!
I am always thrilled to receive pull requests, and do my best to process them as fast as possible. Not sure if that typo is worth a pull request? Do it! I will probably appreciate it.
If your pull request is not accepted on the first try, don’t be discouraged! If there’s a problem with the implementation, hopefully you received feedback on what to improve.
Always sign your commits and make sure you read the Coding Style and the Code of Conduct .
Source code
- GitHub
- Gitee
Civitas is written in Javascript, has ~15000 lines of code, ~250Kb minified and can be downloaded from GitHub.com or by using git to clone the repository:
git clone git@github.com/sizeofcat/civitas.git
Civitas is written in Javascript, has ~15000 lines of code, ~250Kb minified and can be downloaded from Gitee.com or by using git to clone the repository:
git clone git@gitee.com/sizeofcat/civitas.git
Dependencies
- jQuery 3.4.1
- jQuery UI 1.11.2
- jQuery Tipsy 1.0.0a
- jQuery scrollTo 1.4.14
- CryptoJS 3.1.9
- simplex-noise.js
- PRNG.js
Thanks
The music/track1.mp3
song is named Glandula Pinealis by Shantifax
.
Screenshots
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
![]() | ![]() |