All Projects → widelands → Widelands

widelands / Widelands

Licence: gpl-2.0
Widelands is a free, open source real-time strategy game with singleplayer campaigns and a multiplayer mode. The game was inspired by Settlers II™ (© Bluebyte) but has significantly more variety and depth to it.

Programming Languages

python
139335 projects - #7 most used programming language
lua
6591 projects

Projects that are alternatives of or similar to Widelands

Unknown Horizons
Unknown Horizons official code repository
Stars: ✭ 1,172 (+311.23%)
Mutual labels:  game, strategy
Game Theory Cheat Sheet
Game Theory Cheat Sheet
Stars: ✭ 155 (-45.61%)
Mutual labels:  game, strategy
Openpanzer
Javascript/HTML5 rewrite of Panzer General 2 game
Stars: ✭ 98 (-65.61%)
Mutual labels:  game, strategy
Kam remake
"KaM Remake" is an RTS game remake written in Delphi from scratch.
Stars: ✭ 277 (-2.81%)
Mutual labels:  game, strategy
Nano
Lightweight, facility, high performance golang based game server framework
Stars: ✭ 1,888 (+562.46%)
Mutual labels:  json, game
Svg World Map
🗺 A JavaScript library to easily integrate one or more SVG world maps with all nations (countries) and second-level political subdivisions (countries, provinces, states).
Stars: ✭ 38 (-86.67%)
Mutual labels:  game, strategy
Prosperity Wars
Game-like agent based economy simulator
Stars: ✭ 153 (-46.32%)
Mutual labels:  game, strategy
Zoc
⬡ Zone of Control is a hexagonal turn-based strategy game written in Rust. [DISCONTINUED]
Stars: ✭ 327 (+14.74%)
Mutual labels:  game, strategy
Tabtoy
高性能表格数据导出器
Stars: ✭ 1,302 (+356.84%)
Mutual labels:  json, game
Singularity
A simulation of a true AI. Survive, grow, and learn.
Stars: ✭ 210 (-26.32%)
Mutual labels:  game, strategy
Thrive
The main repository for the development of the evolution game Thrive.
Stars: ✭ 874 (+206.67%)
Mutual labels:  game, strategy
Megaglest Source
MegaGlest real-time strategy game engine (cross-platform, 3-d)
Stars: ✭ 259 (-9.12%)
Mutual labels:  game, strategy
Zemeroth
😠⚔️😈 A minimalistic 2D turn-based tactical game in Rust
Stars: ✭ 940 (+229.82%)
Mutual labels:  game, strategy
Knights province
Knights Province missions and wiki.
Stars: ✭ 43 (-84.91%)
Mutual labels:  game, strategy
Ancientbeast
Turn Based Strategy Game. Master your beasts! 🐺
Stars: ✭ 907 (+218.25%)
Mutual labels:  game, strategy
Travianz Legacy
Join our Discord Server: https://discordapp.com/invite/9fbJKP9 | New repo: https://github.com/iopietro/Travianz
Stars: ✭ 150 (-47.37%)
Mutual labels:  game, strategy
Opendominion
A text-based, persistent browser-based strategy game (PBBG) in a fantasy war setting
Stars: ✭ 155 (-45.61%)
Mutual labels:  game, strategy
Pokemon data
全ポケモンのJSONデータです。
Stars: ✭ 201 (-29.47%)
Mutual labels:  json, game
Triplea
TripleA is a turn based strategy game and board game engine, similar to Axis & Allies or Risk.
Stars: ✭ 268 (-5.96%)
Mutual labels:  game, strategy
Ojg
Optimized JSON for Go
Stars: ✭ 281 (-1.4%)
Mutual labels:  json

Widelands

Build Status Travis-CI Build Status AppVeyor Code Quality Build Mirrored on Launchpad

Widelands is a free, open source real-time strategy game with singleplayer campaigns and a multiplayer mode. The game was inspired by Settlers II™ (© Bluebyte) but has significantly more variety and depth to it.

Widelands Screenshot

License License

GPL v2+. Some assets are released under various Creative Commons licenses – see the respective folders.

Download

On how to download Widelands, see https://www.widelands.org/wiki/Download/

Compiling

We support compiling Widelands for Linux, Windows under MSys2, and MacOs with GCC >= 5 or Clang/LLVM >= 6, though it might work with other compilers too. We have more detailed documentation available at: https://www.widelands.org/wiki/BuildingWidelands/

Dependencies

You will need to install the following dependencies:

Compiling with our convenience script

You can then compile by running our convenience script.

Command Purpose
./compile.sh Full debug build
./compile.sh -r -w Release build
./compile.sh -h List available options

When compiling has finished, you can call Widelands with

./widelands

Compiling with CMake

You can also call CMake manually:

mkdir build
cd build
cmake ..
make

When compiling has finished, you can call Widelands with

cd ..
mv build/src/widelands .
./widelands

We have various CMake options available. For example, to create a release build, call

cmake -DCMAKE_BUILD_TYPE=Release ..

For using the Ninja build system, call

mkdir build
cd build
cmake -G Ninja ..
ninja

Depending on the Ninja installation, the last line can also be ninja-build.

CMake options

Note that CMake options are prefixed with -D. These are the available options:

Name Values Default Function
CMAKE_BUILD_TYPE Debug/Release Debug Create a release or debug build
OPTION_ASAN ON/OFF ON for Debug builds /OFF for Release builds Use AddressSanitizer. Switching this off only works once. You will have to clear the build directory if you want to switch this off again in a later build.
OPTION_BUILD_TRANSLATIONS ON/OFF ON Build translations
OPTION_BUILD_CODECHECK ON/OFF ON Build codecheck. Only available in Debug builds.
OPTION_BUILD_WEBSITE_TOOLS ON/OFF ON Build website-related tools
OPTION_BUILD_TESTS ON/OFF ON Build Boost tests
CMAKE_INSTALL_PREFIX A directory See CMake documentation Define the target directory for the "install" target, e.g. -DCMAKE_INSTALL_PREFIX=~/widelands-install.
WL_VERSION A version string Autodetected from git/bzr, or set by adding a VERSION file Define the Widelands version
USE_XDG ON/OFF ON Follow XDG-Basedir specification. Only available on Linux.
OPTION_USE_GLBINDING ON/OFF OFF Use glbinding instead of GLEW
OPTION_GLEW_STATIC ON/OFF OFF Use static GLEW Library

make/ninja targets

You can add targets to the make or ninja command, e.g. make lang to build only the translations. These are the available targets:

Name Function
ALL or no target Compile everything, up to executable with the settings from the cmake call
codecheck Run the codechecks (currently broken)
doc Generate Doxygen documentation. Currently only with Build Type Debug, but this is easily changed if necessary.
install Install into the target dir, this is /usr/local per default (you need root privileges!) unless you change it (see CMake options above)
lang Generate the translations

Contributing

We have some instructions on how to use Git to help you if you're new to GitHub: https://www.widelands.org/wiki/GitPrimer/

Code

The master branch and open pull requests will be formatted automatically by a GitHub action that runs clang-format. When you push to an open pull request, the formatting changes will be pushed back to the branch after about four minutes. Don't forget to run 'git pull' before you push again. Formatting is only triggered the first time you push after you opened the PR.

You need to enable local and third-party actions in the Actions tab of your fork's settings to enable automatic formatting. If you disable actions, no formatting will take place on your branches.

In order to ensure that our continuous integration suite will work properly for branches in your fork, it is strongly recommened that you create a personal access token for our formatting action:

  1. Create a Personal Access Token in your profile (https://github.com/settings/tokens). Select the scope Repo → public_repo for the new token. The token's note does not matter (use e.g. "Widelands Formatting Bot"). Copy the token's hash.
  2. Create a secret in your widelands fork (https://github.com/<username>/widelands/settings/secrets). The secret must be named WIDELANDS_FORMAT_TOKEN. Its value must be the hash of the token you just created.

More information about Personal Access Tokens may be found here. More information about secrets may be found here.

We follow the Google Styleguide.

Scenarios

For scripting scenarios, see https://www.widelands.org/documentation/lua_index/

Art

For contributing art, see https://www.widelands.org/wiki/GraphicsDevelopment/

Translations

For contributing translations, see https://www.widelands.org/wiki/TranslatingWidelands/

Testing

For helping with testing, see https://www.widelands.org/wiki/TestingBranches/

Triaging Issues

For helping with issue management, see https://www.widelands.org/wiki/TriagingBugs/

Directory Structure

Directory Contents
cmake Build system and codecheck rules
data The game's data files. Images, sounds, music, scripting, maps, campaigns, tribes, ...
debian Packaging for Debian-based Linux distributions
doc Sphinx documentation
po Translation files
src C++ source code
test Scripted maps for our regression test suite
utils Diverse utilities: Building translations, code formatting, packaging Mac & Windows, ...

Obtaining MacOS and MS-Windows builds and testsuite runs

Travis builds are triggered for all pushes to the master branch. If you want to get a build without making a pull request, temporarily add the name of your branch to the branches section in .travis.yml. This will not work if the branch is in a fork though.

All pushes to master will be built on AppVeyor. Pull request branches are deployed for MS-Windows using a GitHub action. To obtain MS-Windows builds if you do not wish to open a pull request, temporarily add the name of your branch to the branches section in appveyor.yml. This also does not work for branches in forks.

All pull request branches as well as master are additionally deployed for MacOS, and a testsuite checks them under various compilers. To obtain MacOS builds or testsuite results, temporarily add the name of your branch to the branches section in .github/workflows/build.yaml. This does work for branches in forks as well.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].