Gecko is a modern cross-platform Fallout 2 map editor.
This repository contains dependencies as git submodules. When you clone the repository make sure to use the --recursive flag or once cloned download submodules with git submodule update --init --recursive
Important: Use Release build for performance - Debug builds are significantly slower for map loading.
- Qt6 (Core, Widgets, Svg) - Primary UI framework
- SFML 3+ - 2D graphics rendering
- spdlog - Logging framework
- vfspp - Virtual file system for game archives
- ZLIB - Compression support
# Install dependencies (Ubuntu/Debian)
sudo apt install qtbase6-dev qtbase6-dev-tools libsfml-dev libspdlog-dev
# Enter the cloned git repo folder
cd geck-map-editor
mkdir build && cd build
cmake ..
makeThe easiest way to build GECK on Windows is to use vcpkg for dependency management and the latest Visual Studio for compilation.
vcpkg.exe integrate install
vcpkg.exe install --triplet x64-windows sfml qt6Now just open the project in Visual Studio (File > Open > CMake...) and then build it (Build > Build All).
Install dependencies using Homebrew:
brew install sfml qt6 spdlog
# Set CMAKE_PREFIX_PATH to Qt6 installation
export CMAKE_PREFIX_PATH="/opt/homebrew/opt/qt6:$CMAKE_PREFIX_PATH"
mkdir build && cd build
cmake ..
make- Copy
master.datandcritter.datfrom your Fallout 2 installation to theresourcessubdirectory (gecko.app/Contents/Resourceson Mac) - (Optional) Extract data files using dat-unpacker with the
--transformoption to convert filenames to lowercase
- Arrow keys or Right-click + drag: Pan the view
- Mouse wheel: Zoom in/out
- Window resize: View automatically adjusts
The editor supports multiple selection modes accessible via the toolbar:
- ALL: Select any element type with intelligent cycling
- Priority: Roof Tiles → Objects → Floor Tiles
- Cycling: Click same position repeatedly to cycle through available elements
- OBJECTS: Select only objects
- ROOF_TILES: Select only roof tiles
- FLOOR_TILES: Select only floor tiles
- Left mouse click: Select element at cursor position
- Multiple clicks on same position: Cycle through overlapping elements (in ALL mode)
- Right mouse click: Clear all selections
- Click and Drag: Area selection (FLOOR_TILES, ROOF_TILES, or OBJECTS modes only)
- Ctrl+Click: Toggle item selection (add if not selected, remove if selected)
- Alt+Click (Option+Click on macOS): Add item to existing selection
- Shift+Click: Range selection for tiles (select area between first selected tile and clicked position)
- Ctrl+A: Select all items of current selection mode type
- Ctrl+D: Deselect all items
- R key or Ctrl+R: Rotate selected object(s) - works with single or multiple selected objects
- Ctrl+N: Create new map
- Ctrl+O: Open existing map
- Ctrl+S: Save current map
- Ctrl+Q: Quit application
./format.sh # Formats all .cpp and .h files with clang-format# From build directory
ctest
# Or run tests executable directly
./tests- Uses Qt6 for UI framework and SFML for 2D game rendering
- Follows modern C++20 best practices with RAII and smart pointers
- VFS integration allows reading from both loose files and DAT archives
- All file paths use
std::filesystem::pathfor cross-platform compatibility
The goal is to be compatible with vanilla Fallout 2, including loading maps created with the original Mapper.
Contributions are welcome! Please ensure your code follows the project's coding standards and includes appropriate tests.
This project wouldn't be possible without the excellent work from:
- Falltergeist - Fallout engine reimplementation
- Klamath - Fallout file format library
- FRM-Viewer - Fallout graphics format viewer
- Dims Mapper - Legacy Fallout 2 map editor
- darkfo - Web-based Fallout engine
- Tabler icons
