A multithreaded simulation of civilizations in a "dark forest" universe, written in C using POSIX threads.
- Simulates multiple civilizations as threads
- Civilizations interact, attack, befriend, or hide from each other
- Tracks development, visibility, and diplomatic/survival states
- Demonstrates thread synchronization and inter-thread communication
- Most features are very rudimentary with only basic one way interactions
darkForest.c- Main entry point, universe and thread initializationcivilizationFunctions.c/h- Civilization thread logic and interactionsutilFunctions.c/h- Utility functionsdataTypes.h- Shared data types and constantsmakefile- Build instructions
To build the project, run:
makeThis will produce dark.exe.
To clean up build artifacts:
make cleanRun the simulation:
./dark.exe- GCC (with pthread support)
- POSIX-compliant system (Linux, macOS, WSL, etc.)
- Thread behavior and interactions are defined in
civilizationFunctions.c. - The number of civilizations and universe size are configurable in
dataTypes.h. - For debugging memory issues, use Valgrind:
valgrind ./dark.exedja322