An Ultima III–inspired top-down, turn-based RPG built with Python and Pygame. Lead a party of four adventurers through a procedurally generated world of overworld exploration, town visits, dungeon delving, and tactical grid combat.
- Dungeons & Dragons inspired turn-based combat system
- Quest system
- Proceduraly generated dungeons and intentionally crafted adventures
- Race and class system
- 1980's style Player's Manual, Adventure Map, and Cloth Map)
- Dungeon Master mode that allows players to craft their own adventures
![]() |
![]() |
![]() |
![]() |
Read about the April 2026 Update
A pre-built macOS version is available on the Releases page. To get started:
- Download the
.zipfile from the latest release. - Unzip it — you'll get a folder called
RealmOfShadow. - Before opening the game, you must clear the macOS quarantine flag. Open Terminal and run:
If you unzipped it somewhere other than Downloads, adjust the path — or drag the folder onto the Terminal window to fill it in automatically. You need to do this each time you download a new release.
xattr -cr ~/Downloads/RealmOfShadow/ - Open the
RealmOfShadowfolder and double-click the file calledRealmOfShadow(the one with no file extension) to launch the game.
First launch: The game may take 10–20 seconds to appear the first time you run it while your system unpacks and caches the bundled libraries. Subsequent launches will be faster.
"Damaged and can't be opened" error: If you skipped step 3 and macOS says the app is damaged, don't worry — the file isn't actually damaged. macOS shows this message for any downloaded app that isn't notarized with Apple. Run the
xattr -crcommand from step 3 and try again.
If you want to run this game on Windows or Linux, or if you just want to tinker with the code you will need to clone this repository and use Python.
-
Python 3.9 or newer. Check with
python3 --versionin a terminal. If you don't have it:- Mac:
brew install python3(if you have Homebrew) or download from python.org - Windows: Download from python.org — check "Add Python to PATH" during install
- Linux:
sudo apt install python3 python3-pip(Ubuntu/Debian) or your distro's equivalent
- Mac:
-
Git (to clone the repo). Most Macs and Linux systems have it already. Windows users can get it from git-scm.com.
-
Clone the repository:
git clone https://github.com/mattjcamp/game_rpg_turn_based_open_world cd game_rpg_turn_based_open_world -
Install dependencies:
pip3 install -r requirements.txtThis installs Pygame (graphics/audio) and NumPy (used for procedural music generation).
-
Run the game:
python3 main.py
That's it. A window should open with the title screen.
If you want to build the game yourself (or build for a platform not listed in Releases), you can package it into a standalone app using PyInstaller.
pip3 install pyinstaller
python3 build_game.py
This runs PyInstaller using the included realm_of_shadow.spec and produces a ready-to-distribute folder at dist/RealmOfShadow/. The build takes a minute or two. On macOS, the script automatically applies an ad-hoc code signature to reduce Gatekeeper warnings.
Note: You need to build on each platform you want to support — a Mac produces a Mac build, Windows produces a Windows build, etc.
Zip the output folder and share it:
cd dist && zip -r RealmOfShadow-mac.zip RealmOfShadow/
Upload the zip to itch.io, attach it to a GitHub Release, or send it directly.
Windows — Unzip the folder and double-click RealmOfShadow.exe. If Windows Defender SmartScreen shows a warning, click "More info" and then "Run anyway."
Linux — Unzip the folder, then in a terminal:
chmod +x RealmOfShadow/RealmOfShadow
./RealmOfShadow/RealmOfShadow



