
This has been megasquashed because it was a month-long mess of fixes and reworks. In summary: * objects no-longer draw by hooking a DRAW event. In stead they inherit from gui2::top_level_drawable, and implement its interface. * the game display now renders to an offscreen buffer. This is used to implement hardware scrolling, and to redraw after halos, floating labels etc. move. * halos, floating labels, tooltips, and a few more things are now drawn on top of the game display, rather than as part of it. This allows them to be updated independently without reading pixels from the screen. * surface restorers have been removed. Reading pixels from the screen should now be unnecessary excepting two cases: (a) screenshots, (b) background blur. Blur is cached, and screenshots are occasional. * GUI2 widgets no longer keep track of dirty state. They are redrawn as necessary. Most places which previously set dirty state now queue a redraw in their part of the screen in stead. * A consequence is that active translucency is enabled across all UI elements, and the game display can (and does) continue to animate while menus and dialogs are showing. * performance is drastically increased for basically everything, most notably map scrolling, floating text, and halos. * CPU usage is drastically decreased. With animations disabled it is essentially zero while nothing is moving. * GPU usage is also minimal. The display is only flipped if something is drawn.
Branch | CI status |
---|---|
Master | |
1.16 |
About
The Battle for Wesnoth is an Open Source, turn-based tactical strategy game with a high fantasy theme, featuring both singleplayer and online/hotseat multiplayer combat. Fight a desperate battle to reclaim the throne of Wesnoth, or take hand in any number of other adventures.
Community
The official Battle for Wesnoth Forums: https://forums.wesnoth.org/
Discord: https://discord.gg/battleforwesnoth
IRC: https://wiki.wesnoth.org/Support#IRC
Twitter: https://twitter.com/Wesnoth
Steam forums: https://steamcommunity.com/app/599390/discussions/
Installing
Wesnoth can be played on Windows, macOS, and Linux, and can be installed using:
- Steam (all)
- itch.io (Windows and macOS)
- The macOS App Store
- standalone installers on SourceForge (Windows and macOS)
- Flatpak (Linux)
Additionally, Wesnoth is available for iOS and Android.
To build the game from source, see INSTALL for instructions.
Contributing
Wesnoth is most in need of skilled C++ developers (C++14 and later), however there are things that nearly anyone can help with from simpler tasks in C++, the Lua and WML used for content scripting, Python used by various external tools, and even things like play testing and giving feedback on updated campaigns. Additionally, Wesnoth lacks art for a variety of unit animations - anyone who would be interested in lending a hand updating existing unit sprites or creating animations should take a look at the Art Forum as well as contact our current art director.
See also: CONTRIBUTING
For any questions, the best place to start is to simply join Wesnoth's forums, Discord, or IRC and start asking!
Donations
Donations can be sent via Liberapay as well as when downloading through itch.io. All money donated is used to pay for project expenses such as server rent and art commissions, and is very much appreciated.
License
All source code is licensed under the GNU GPL v2+. Most art and music is also licensed under the GNU GPL v2+, however new contributions are now licensed under the Creative Commons BY-SA v4.0. For more detailed information on Wesnoth's licensing, see the wiki:
https://wiki.wesnoth.org/Wesnoth:Copyrights
More Information
For extensive documentation about all aspects of the game, see the official Battle for Wesnoth web site:
https://www.wesnoth.org/ https://wiki.wesnoth.org/
A (translated) description of how to play the game can be found in doc/manual/manual.*.html, or online at:
https://wiki.wesnoth.org/WesnothManual
For information on creating your own maps, scenarios, and other content, see: