{"id":16710765,"url":"https://github.com/overminddl1/over_civ","last_synced_at":"2026-04-14T17:31:57.856Z","repository":{"id":48578132,"uuid":"360704625","full_name":"OvermindDL1/over_civ","owner":"OvermindDL1","description":null,"archived":false,"fork":false,"pushed_at":"2021-07-19T20:45:44.000Z","size":269,"stargazers_count":0,"open_issues_count":2,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-15T03:16:10.949Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OvermindDL1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-04-22T23:09:49.000Z","updated_at":"2023-07-15T05:28:55.000Z","dependencies_parsed_at":"2022-09-01T04:01:08.393Z","dependency_job_id":null,"html_url":"https://github.com/OvermindDL1/over_civ","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/OvermindDL1/over_civ","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OvermindDL1%2Fover_civ","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OvermindDL1%2Fover_civ/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OvermindDL1%2Fover_civ/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OvermindDL1%2Fover_civ/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OvermindDL1","download_url":"https://codeload.github.com/OvermindDL1/over_civ/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OvermindDL1%2Fover_civ/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31808505,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T11:13:53.975Z","status":"ssl_error","status_checked_at":"2026-04-14T11:13:53.299Z","response_time":153,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-12T20:09:29.798Z","updated_at":"2026-04-14T17:31:57.837Z","avatar_url":"https://github.com/OvermindDL1.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OverCiv\n\nCentral repository for OverCiv binary\n\n## Build Requirements\n\nThe engine needs to talk to the OS libraries to be able to actually 'do' things, thus there are some requirements to be able to compile this:\n\n### OS Specific\n\n#### Linux\n\nYou need to make sure you have vulkan drivers installed to be able to run the GUI client.  Apt-based is the most detailed so look at it for the overall setup for the others as well, but adapt as necessary for other distros.\n\n##### Apt-based distributions (Ubuntu/Kubuntu/Debian/Etc..)\n\n```zsh\nsudo apt-get install pkg-config libx11-dev libasound2-dev libudev-dev libxcb-composite0-dev\n```\n\nDepending on your graphics card, you may have to install one of the following to make certain your GPU drivers have vulkan interfaces if you don't already: `vulkan-radeon`, `vulkan-intel`, or `mesa-vulkan-drivers`\n\nIf you are performing development (see the [Development](#Development) section in this Readme for more details) then you can use the less optimizing but *much* faster linker from clang to perform debug object linking for faster development by installing: `clang` and `lld` \n\n##### Fedora (dnf)\n\n```zsh\nsudo dnf install gcc-c++ libX11-devel alsa-lib-devel systemd-devel\n```\n\n##### Pacman-based distributions (Arch/Manjaro/Etc...)\n\n```zsh\nsudo pacman -S libx11 pkgconf alsa-lib\n```\n\n##### Solus\n\n```zsh\nsudo eopkg install pkg-config libx11-devel g++ alsa-lib-devel\n```\n\n##### Void\n\n```zsh\nsudo xbps-install -S pkgconf alsa-lib-devel libX11-devel eudev-libudev-devel\n```\n\n##### NixOS\n\nThis packaging system can run on about any system and is popular for its containerized and reproducible building.\n\nDefine `shell.nix` with content similar to below, adapted for your setup (this might be a good default to add to the repo, thoughts?):\n```nix\n{ pkgs ? import \u003cnixpkgs\u003e { } }:\nwith pkgs;\nmkShell {\n  buildInputs = [\n    cargo\n    pkgconfig udev alsaLib lutris\n    x11 xorg.libXcursor xorg.libXrandr xorg.libXi\n    vulkan-tools vulkan-headers vulkan-loader vulkan-validation-layers\n  ];\n}\n```\n\nAnd enter the build container via `nix-shell`.\n\n#### Windows\n\nMake sure to have the [VS2019 Build Tools](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools\u0026rel=16) (or newer maybe?) to have everything required to compile.\n\nFor faster development (see the [Development](#Development) section for omre details) you can also install the lld linker by running:\n\n```cmd\ncargo install -f cargo-binutils\nrustup component add llvm-tools-preview\n```\n\n##### Windows Subsystem for Linux (WSL 2)\n\nGraphics and audio need to be configured for them to work with WSL 2 backend. Please see the ubuntu [WSL documentation](https://wiki.ubuntu.com/WSL) on how to set up graphics and audio.\n\n#### MacOSX\n\nJust make sure to have XCode and you're good to go as its the monolithic thing that contains it all.\n\n### IDE\n\nIt is highly recommend to have a good IDE when working on such programming source code if you are going to be developing, and there are two main suggestions:\n\n* **IntelliJ/CLion:** The free version does not have a gdb-based debugger, but it's rather easy to get full versions, such as if you have an active student email account.  This tends to be the most featureful and powerful IDE for Rust work at the current time.\n\n* **RustAnalyzer:** This is a replacement for the old Rust Language Server, it is quickly coming up to feature parity with IntelliJ/CLion however.  VSCode is the program that uses the most features of RustAnalyzer but it also works with other language-server based IDE's such as Atom, EMacs, VIM, etc...  This setup is fully free however, and although the debugging isn't as nice as in CLion, it is entirely usable, and of course free via both definitions.\n\n### Rust Information\n\nAnd of course you would want good materials to learn Rust with:\n\n* **[The Rust Book](https://doc.rust-lang.org/book/):** The best place to learn Rust from scratch\n\n* **[Rust by Example](https://doc.rust-lang.org/rust-by-example/):** A great reference to see how to use Rust constructs.\n\n* **[Rust Standard Library Documentation](https://doc.rust-lang.org/std/index.html):** Documentation on the Rust Standard Library, a must-use reference, some of the best documentation anywhere.\n\n* **[Rust Learning Site](https://www.rust-lang.org/learn):** Has the above links as well, but more overall, a great site to peruse.\n\n### Bevy Information\n\nThis project is using the Bevy Engine for rendering and game asset handling.  You can see its [book and associated documentation here](https://bevyengine.org/learn).\n\nThe Bevy project is still new, effectively a redesign and replacement of the seemingly dead Amethyst framework built to be simple and fast with a very active community.  It still has a lot to be developed however and they could use your assistance to get up to par!  Helping development on their OpenGL renderer would be a massive boon for older systems even though it is less efficient than vulkan.\n\n\n## Development\n\nThere are a number of things you can do to make recompilation time much faster for quicker development and testing:\n\n### Bevy's Dynamic Linking\n\nEnable Bevy's Dynamic Linker when running by enabling its `bevy/dynamic` cargo feature when you run or debug the program.  This will execute slightly slower but will give the biggest loading speed boost to development outright.\n\nFrom the commandline you can run it via:\n\n```zsh\ncargo run --features bevy/dynamic\n```\n\nOtherwise just add `bevy/dynamic` as a feature to the cargo task that you run/debug with in your IDE.\n\n### Clang's LLD Linker\n\nClang's LLD Linker doesn't know certain Rustisms but it works just fine if not makes slightly code, however it runs substantially faster, thus making it useful to link with in development for faster turn-around.  This is unsupported on MacOS due to their odd compilation ecosystem for native code.\n\nTo use the LLD linker (or ZLD on mac) copy this file into this project at `.cargo/config.toml`:\n\n```toml\n[target.x86_64-unknown-linux-gnu]\nlinker = \"/usr/bin/clang\"\nrustflags = [\"-Clink-arg=-fuse-ld=lld\"]\n\n# NOTE: you must manually install https://github.com/michaeleisel/zld on mac. you can easily do this with the \"brew\" package manager:\n# `brew install michaeleisel/zld/zld`\n[target.x86_64-apple-darwin]\nrustflags = [\"-C\", \"link-arg=-fuse-ld=/usr/local/bin/zld\"]\n\n[target.x86_64-pc-windows-msvc]\nlinker = \"rust-lld.exe\"\n\n# Optional: Uncommenting the following improves compile times, but reduces the amount of debug info to 'line number tables only'\n# In most cases the gains are negligible, but if you are on macos and have slow compile times you should see significant gains.\n#[profile.dev]\n#debug = 1\n```\n\nOr if you are running the nightly compiler then you can enable generics sharing for even further increased linking speed, use this file instead:\n\n```toml\n[target.x86_64-unknown-linux-gnu]\nlinker = \"/usr/bin/clang\"\nrustflags = [\"-Clink-arg=-fuse-ld=lld\", \"-Zshare-generics=y\"]\n\n# NOTE: you must manually install https://github.com/michaeleisel/zld on mac. you can easily do this with the \"brew\" package manager:\n# `brew install michaeleisel/zld/zld`\n[target.x86_64-apple-darwin]\nrustflags = [\"-C\", \"link-arg=-fuse-ld=/usr/local/bin/zld\", \"-Zshare-generics=y\", \"-Csplit-debuginfo=unpacked\"]\n\n[target.x86_64-pc-windows-msvc]\nlinker = \"rust-lld.exe\"\nrustflags = [\"-Zshare-generics=y\"]\n\n# Optional: Uncommenting the following improves compile times, but reduces the amount of debug info to 'line number tables only'\n# In most cases the gains are negligible, but if you are on macos and have slow compile times you should see significant gains.\n#[profile.dev]\n#debug = 1\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foverminddl1%2Fover_civ","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foverminddl1%2Fover_civ","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foverminddl1%2Fover_civ/lists"}