# Sorcery
Sorcery is an open-source remake/remaster of the classic CRPG **Wizardry: Proving Grounds of the Mad Overlord** by Dave Moore.
The project is under active development and is built using **C++26, Dear ImGui, SDL2 and OpenGL**. Sorcery is mainly available on **Debian/Ubuntu Linux** and **64-bit Windows**; it also has experimental **MacOS** support.
**Alpha #1 is available now from the Releases section. Alpha #2 is coming soon.**
## Screenshots
Brief gameplay videos are also available on [YouTube](https://www.youtube.com/channel/UCEkmGGFyxu5vH6xAHej3Dag).
## Current Status
### Alpha #1 — Released 19 September 2026
Alpha #1 is the first public release of Sorcery and contains the majority of the core game framework and non-combat systems.
Implemented functionality includes:
- **Core game systems**
- New Game, Save and Load
- Quicksave and Quickload
- Keyboard, mouse and gamepad controls
- Linux/Windows support
- **Characters and party management**
- Character creation
- Character editing, deleting and legating
- Party and expedition management
- Levelling up and changing class
- Healing and resurrection
- **Town and services**
- Town and Castle menus
- Gilgamesh's Tavern
- Adventurer's Inn
- Temple
- Boltac's Equipment Shop
- **Dungeon exploration**
- Maze generation and navigation
- Dungeon features and events
- Automapping
- Traps and chests
- Party wipe handling
- Victory and end-game handling
- **Items and presentation**
- Inventory and item manipulation
- Special item powers and handling
- Compendium
- Music
### Alpha #2 — Coming Soon
Current Alpha #2 changes (as of 25th September) include:
- Reduced required graphics memory to approximately **400 MB**.
- Corrected fullscreen rendering.
- Added a **music volume control**.
- Added **context-sensitive help** using **F1**.
- Expanded the **Cheat Menu** available through **F2**.
- Implemented out-of-combat spellcasting for:
- **Divine spells**
- DIOS, DIAL, DIALMA, LATUMOFIS, MADI
- MILWA, LOMILWA, LATUMAPIC
- MAPORFIC, KANDI
- DI, KADORTO
- **Arcane spells**
- DUMAPIC, MALOR
- The buff bar now displays the status of **MILWA/LOMILWA, LATUMAPIC and MAPORFIC**.
- Darkness squares now extinguish any active light spell.
Thanks to Greg Evans for the following enhancements:
- Enhanced Menu Navigation.
- Additional Save/Restore State Bug Fixes.
- MacOS Support added.
- cTest Support.
The broader Alpha #2 development cycle is focused on implementing **Magic and Combat**, together with **Creatures, Combat and NPCs**. I will release this as soon as feasible
### Alpha #3 — Planned
Current Alpha #3 targets include:
- Encounter tables
- Fixed combats
- Treasure tables
- Sound effects
- Strict (Legacy) Mode
## Development Roadmap
With most of the original Wizardry I game framework now implemented, the main remaining areas of work are **spellcasting, combat, creatures and NPCs**. Obviously the roadmap will continue to evolve as the Alpha releases progress.
## Wishlist
Longer-term ideas include:
- Achievements and quests
- Radial-menu control mode
- Additional quality-of-life features
- Content from later Wizardry games — II, III, V, and possibly IV
- Procedurally generated infinite content
- Monster Pits for practising against encounters without risk or reward
- Migration from SDL2 to SDL3
- Optional textured/rendered OpenGL 3D dungeon view
- Wizardry VI implemented using the classic wireframe engine
## Related Projects
If you are interested in the original Wizardry games and related preservation/reimplementation work, see:
- [Snarfu's Wizardry work](https://github.com/snafaru), including bug fixes and recompilation work for the original Apple II Wizardry.
- [Sshoecraft's Wizardry recreation](https://github.com/sshoecraft/wizardry), a terminal-based recreation of the original Apple II trilogy.
## System Requirements
Sorcery requires:
- **OpenGL 3.3**
- **2 GB system memory**
- Approximately **400 MB graphics memory** for Alpha #2
- A 64-bit Windows or Debian/Ubuntu Linux environment
## Compilation
Sorcery uses a **single source tree** for Linux, Windows and macOS.
The primary development platform is Ubuntu/Debian Linux. Windows builds are supported using **MSYS2 UCRT64**, GCC, CMake and Ninja. Other Windows toolchains are not currently tested or officially supported, although contributions documenting additional working configurations are welcome. For further information on experimental macOS support - see [native macOS development build](doc/MACOS.md) (using Apple Clang and a C++23 enum fallback)
The project targets **C++26** and uses C++ reflection, so **GCC 16.1 or later is required**. The current development toolchain uses **GCC 16.2**. Platform-specific differences are handled by CMake and the source code; no separate source trees are required. See [`doc/COMPILE.md`](doc/COMPILE.md) for full build instructions on Windows and Linux.
## License
Sorcery source code is released under the **GNU GPLv2**. See [`doc/LICENSE.md`](doc/LICENSE.md) for full details.
Graphics and music are used under their respective licenses, as listed below. Note that all artwork/music is authored by humans.
## Contact and Help
Comments, criticism, PRs, and contributions are most welcome.
You can usually find me as **Typhon** on the **C++ Help** and **DungeonCrawlers.org** Discord servers, or contact me by email at:
`davemoore22 AT protonmail.com`
## Credits
### Programming Thanks
Thanks to Greg Evans for code-tidy-up PRs and macOS support!
### Graphics Thanks
Creative Commons graphics are used from:
- [Toriotto](https://www.pixiv.net/en/users/5887541)
- [game-icons.net](https://game-icons.net/)
- [Xelu](https://thoseawesomeguys.com/prompts/)
### Music Thanks
Music is used under the Soundimage International Public License and is by:
- [Eric Matyas](https://www.soundimage.org)