A 3D voxel game for classic Macintosh computers running System 7.0.1.
MacCraft is a lightweight game inspired by Minecraft, built specifically for classic Macintosh computers with limited resources. Experience block-based construction and exploration with a SimCity-style rendering approach optimized for 68K processors.
- Block placement and removal
- Classic Macintosh UI with proper event handling
- Optimized Isometric rendering for maximum performance
- Retro68 toolchain for cross-compiling to classic Mac OS
- Mini vMac or Basilisk II for running the application
- clang-format and clang-tidy for code formatting and static analysis (optional)
This project uses a simple Makefile for common operations:
# Build the application
make build
# Run the application in Mini vMac
make run
# Clean build artifacts
make clean
# Format all C/C++ code
make format
# Run static analysis on all C/C++ code
make lint
You can find the output .dsk and .bin files in the dist/
folder. Simply drag the .dsk file onto your Mini vMac to test.
# Specify a custom Retro68 build path
make build RETRO68_PATH=/path/to/Retro68-build
# Use Basilisk II instead of Mini vMac
make run USE_BASILISK=ON
# Change the application name (default is "App")
make build APP_NAME=MyApp
# Combine options
make build RETRO68_PATH=/path/to/Retro68-build USE_BASILISK=ON APP_NAME=MyApp
You will need to set up LaunchAPPL.cfg as documented here. Currently this supports Mini vMac and Basilisk II (I personally use Mini vMac for simplicity).
This doesn't seem to work super well for Mini vMac at the moment due to how it copies the .app file and Gatekeeper on modern macOS.
This project uses clang-format and clang-tidy to maintain code quality:
- clang-format: A tool to automatically format C/C++ code according to configurable style guides
- clang-tidy: A static analysis tool that provides additional diagnostics beyond what the compiler offers
Configuration files:
.clang-format
: Defines the C/C++ code style (indentation, spacing, etc.).clang-tidy
: Defines static analysis rules and checks
You can run the formatting and linting tools through:
- Makefile targets:
make format
andmake lint
- CMake targets:
cmake --build build --target format
andcmake --build build --target lint
When contributing to this project, please format your code before submitting changes:
# Format all C/C++ files according to the project style
make format