Widelands: a GPL-2.0 Settlers II successor you build from source
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.
At a glance
- What is it?
- Widelands is a free real-time strategy game with singleplayer campaigns and multiplayer, inspired by Settlers II but broader in scope. This review covers how it builds, what the CMake options actually control, and where it falls short.
- Who is it for?
- Widelands suits players who want a Settlers-style economy game they can build and modify, and developers comfortable with a CMake and C++ toolchain. It is the wrong choice if you want a store-installed game with no build step, or if you need an Android build, which the topics and README do not mention.
- Can I use it commercially?
- Yes, with conditions. GPL-2.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 6 days ago.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 25, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What Widelands solves, and for whom
Settlers II established a genre where you do not command armies directly. You place buildings, connect them with roads, and manage a chain of production that turns raw land into goods and soldiers. Widelands takes that model and widens it: the README describes it as inspired by Settlers II but with significantly more variety and depth. The repository topics list strategy, cmake, lua, python, json and gplv2, which tells you the intended audience is not only players. Scenario authors and translators are first-class contributors here, and the README points to a Lua scripting index, a graphics development wiki page and a translation wiki page as separate tracks. If you want a commercial Settlers release, this is not that. If you want a game whose rules, maps and campaigns you can inspect and change, the GPL v2+ licence and the Lua layer are the point.
How the game and its toolchain are put together
The top level of the repository separates engine code from content. src/ holds the C++ engine, data/ holds the game's assets and definitions, doc/ holds documentation, and test/ plus regression_test.py cover testing. CMakeLists.txt and the cmake/ directory drive the build, with compile.sh as a wrapper. The README states that master and all issues and pull requests are mirrored bidirectionally between Codeberg and GitHub by a bot named bunnybot, and that the same bot formats C++, Lua and Python in every mirrored branch. That is an unusual arrangement worth understanding before you open a pull request: your branch may be reformatted for you. The code style is the Google Styleguide, and .clang-format and .clang-tidy sit at the top level to enforce it. Scenario logic runs through Lua rather than being hard-coded, which is why the README sends scenario authors to a separate Lua documentation index instead of the C++ sources.
Installing dependencies and getting a first build
The README does not ask you to download a binary first. It points to the project website's download wiki page for that, and then documents compiling from source. The supported compilers are GCC >= 8 or Clang/LLVM >= 7, and the README lists Linux, Windows under MSys2 and MSVC, and macOS as targets. Dependencies include libSDL >= 2.0, libSDL_image, libSDL_mixer >= 2.0, libSDL_ttf >= 2.0, gettext, libiconv, zlib, libpng, Asio, Python and either libglew or glbinding. The convenience script installs them for you and auto-detects the operating system, or you can name it explicitly.
Choosing a build type with compile.sh
Once dependencies are present, the README offers a convenience script with four documented invocations. A plain call produces a full debug build, which is the default and the slowest option. Adding -r gives a release build, -e adds debugging symbols to a release build, and -h lists every available option. The README does not document a rollback path if a build fails, so keep the build directory until you have a working binary.
Building with CMake directly and running the binary
The manual route is three commands in a fresh directory, followed by a move of the binary to the repository root. The README shows exactly this sequence, and notes that the binary lands at build/src/widelands. If you prefer Ninja, the README gives a variant using cmake -G Ninja and ninja, with a note that the last line may be ninja-build depending on the installation.
The CMake options that change what you get
Several options matter more than the rest. CMAKE_BUILD_TYPE defaults to Debug, so a plain cmake .. is not a release build. OPTION_ASAN defaults to ON for Debug builds and OFF for Release builds, and the README warns that switching it off only works once: you must clear the build directory if you want to turn it off in a later build. OPTION_TSAN is OFF by default and is mutually exclusive with OPTION_ASAN, so sanitizer work is a one-or-the-other decision. OPTION_BUILD_CODECHECK and OPTION_BUILD_TESTS both default to ON, and codecheck is only available in Debug builds. USE_XDG defaults to ON and is Linux-only, which controls whether the game follows the XDG basedir specification. For installation, CMAKE_INSTALL_PREFIX sets the target and WL_INSTALL_BINDIR defaults to ${CMAKE_INSTALL_PREFIX}/games. A release build with a custom prefix looks like this.
Where Widelands is the wrong tool
This is a source-first project, and that shapes who should walk away. The README's download section is a pointer to a wiki page rather than a list of packages, so anyone expecting a single installer command from the repository itself will be disappointed. The dependency list is long and includes SDL2, SDL_image, SDL_mixer, SDL_ttf, gettext, libiconv, zlib, libpng, Asio, Python and GLEW or glbinding. On a locked-down machine where you cannot install system libraries, the build will not complete. The topics list apple-silicon, bsd, linux, macos-app and windows, and the README names Linux, MSys2/MSVC Windows and macOS. Android is not in that list, and the README does not document a mobile build, so a phone or tablet port is not a supported path here. Finally, the bidirectional mirroring through bunnybot means contribution workflow differs from a plain GitHub fork-and-pull model, and the README directs newcomers to a separate Git primer rather than assuming familiarity.
How it differs from Settlers II and from a modern commercial RTS
The README frames the comparison itself: Widelands was inspired by Settlers II but has significantly more variety and depth. The practical difference is extensibility. Settlers II is a fixed commercial release whose maps and balance you cannot edit without unofficial tooling. Widelands ships its content in data/ inside the repository, exposes scenarios through Lua with a dedicated documentation index, and carries a separate graphics development page and translation page for non-programmers. A modern commercial RTS usually offers matchmaking services and a patched binary you never compile. Widelands offers neither: the README documents singleplayer campaigns and a multiplayer mode, and the build options above are your patch mechanism. The trade is control for convenience. You get a codebase you can rebuild with different sanitizers, a custom install prefix, or glbinding instead of GLEW; you give up the expectation that the game arrives ready to run.
Licence, maintenance and upgrade cost
Widelands is GPL v2+, and the README notes that some assets are released under various Creative Commons licences, with details in the respective folders. That split matters if you plan to reuse art separately from code: check the folder, not the top-level licence badge. The repository is not archived, and the last push was on 2026-09-23, one day before this review. Development builds are published frequently, with a development build dated 2026-09-21, while the latest numbered release listed is v1.3.1 from 2026-02-22, preceded by v1.3.1-rc1 on 2026-02-15. The upgrade cost is a rebuild, not a package upgrade: pull the branch, clear the build directory if you are changing sanitizer or build-type settings, and recompile. Because the version string is autodetected from git or bzr, or set by adding a VERSION file, a source build can report a different version than a tagged release. If you redistribute a modified build, the GPL v2+ obligations apply to the code, and the Creative Commons terms apply to whichever assets you ship. This is a description of the licence files, not legal advice; read COPYING and the asset folders before you redistribute.
Editorial conclusion
Widelands suits players who want a Settlers-style economy game they can build and modify, and developers comfortable with a CMake and C++ toolchain. It is the wrong choice if you want a store-installed game with no build step, or if you need an Android build, which the topics and README do not mention. Before adopting it, run ./install-dependencies.sh for your distribution, then ./compile.sh -r -w, and confirm the resulting ./widelands binary starts.
Frequently asked questions
How does Widelands compare to Settlers II?
The README states that Widelands was inspired by Settlers II but has significantly more variety and depth. It keeps the building-and-road economy model while adding singleplayer campaigns, a multiplayer mode and Lua-scripted scenarios.
What can I use as an alternative to Widelands?
The material only names Settlers II as the inspiration, and does not list other games as alternatives. The meaningful difference it does document is that Widelands ships its content in the repository and exposes scenarios through Lua, which a fixed commercial release does not.
What kind of game is Widelands?
It is a free, open source real-time strategy game with singleplayer campaigns and a multiplayer mode, inspired by Settlers II. The repository topics include strategy, cmake, lua and json.
What do I need to compile Widelands from source?
The README lists libSDL >= 2.0, libSDL_image, libSDL_mixer >= 2.0, libSDL_ttf >= 2.0, gettext, libiconv, zlib, libpng, Asio, Python and either libglew or glbinding, with GCC >= 8 or Clang/LLVM >= 7. Running ./install-dependencies.sh installs them automatically and auto-detects the operating system.
How do I make a release build of Widelands?
The README gives ./compile.sh -r -w for a release build, or you can call cmake -DCMAKE_BUILD_TYPE=Release .. manually since CMAKE_BUILD_TYPE defaults to Debug. Adding -e instead gives a release build with debugging symbols.
Does Widelands support Android?
The repository topics and the README name apple-silicon, bsd, linux, macos-app and windows, and describe compiling for Linux, Windows under MSys2 and MSVC, and macOS. Android is not documented as a supported target.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/widelands-widelands)