
This project was originally created for a horror video game when I realized I was too lazy to manually create maps... so I built an entire framework instead!This project was originally created for a horror video game when I realized I was too lazy to manually create maps... so I built an entire framework instead!The Map Generator Framework uses an innovative Palette System - like a painter's palette that offers various colors to create art, our system provides you with different "palettes" of generation tools. Each palette contains a specific set of parameters and options that work together to create one aspect of your map: terrain height, surface textures, vegetation details, and object placement.Whether you're creating horror landscapes, fantasy worlds, or any other type of environment, this framework provides the tools you need to generate diverse and compelling maps procedurally.## Key Features- **🎨 Palette System**: Four distinct palette types for complete environment control- **🎛️ Custom Editors**: Dedicated editors for each palette type with intuitive interfaces- **📊 Noise Visualizer**: Real-time preview of your noise samplers- **🔧 Modular Design**: Use any combination of palettes - enable or disable as needed- **🎮 Ready-to-Use Demo**: Get started immediately with pre-configured examples- **⚡ Unity Integration**: Seamlessly works with Unity's terrain system---## Known Issues & Limitations⚠️ **ObjectPalette**: Object placement may not work as expected in certain configurations. This feature is currently being refined.🔧 **Under Development**: Some features are still being optimized and may require manual tweaking.---## Palette System### 🌍 TerrainPaletteControls the base terrain height generation using noise sampling.**Contains a list of SamplerEntry with properties:**- `BaseNoiseSampler` - The noise generator- `name` - Identifier for the sampler- `weight` - Influence strength of this sampler- `enabled` - Toggle sampler on/off### 🎨 TexturePaletteManages terrain texturing based on height and slope conditions.**Contains a list of TextureEntry with properties:**- `name` - Texture identifier- `TerrainLayer` - Unity terrain layer reference- `minHeight` / `maxHeight` - Height range for texture application- `enabled` - Toggle texture on/off- `useSlope` - Enable slope-based placement- `minSlope` / `maxSlope` - Slope range when useSlope is enabled### 🌿 DetailPaletteHandles grass, vegetation, and small detail placement.**Contains a list of DetailEntry with properties:**- `name` - Detail identifier- `renderMode` - Rendering method- `GameObject prefab` - Detail prefab reference- `healthyColor` / `dryColor` - Color variation- `minWidth` / `maxWidth` - Size variation range- `minHeightScale` / `maxHeightScale` - Height scaling range- `density` - Placement density- `minHeightWorld` / `maxHeightWorld` - World height constraints- `useSlope` - Enable slope-based placement- `minSlope` / `maxSlope` - Slope range when useSlope is enabled### 🏗️ ObjectPaletteControls placement of larger objects like rocks, trees, and structures.**Contains a list of ObjectEntry with properties:**- `name` - Object identifier- `minHeight` / `maxHeight` - Height placement range- `useSlope` - Enable slope-based placement- `minSlope` / `maxSlope` - Slope range when useSlope is enabled- `density` - Object placement density- `computedRadius` - Object influence radius---## Getting Started### Prerequisites- Unity Terrain Tools (recommended)### Quick Start1. Import the Map Generator Framework into your Unity project2. Navigate to the `Demo` folder3. Add the Terrain to your scene- Pre-configured TerrainPalette with sample noise setups- Ready-to-use terrain GameObject4. Hit Play or use the " Generate Map " button from the " Map Generator Script" on Terrain### Creating Your First Map1. Create a new TerrainPalette asset2. Configure your noise samplers using the custom editor3. (Optional) Set up TexturePalette for surface texturing4. (Optional) Add DetailPalette for vegetation5. (Optional) Configure ObjectPalette for props and structures6. Generate your map!---## WorkflowThe Map Generator Framework is designed for maximum flexibility:1. **Configure Palettes**: Set up any combination of the four palette types2. **Preview in Editor**: Use the built-in visualizer to preview noise patterns3. **Iterate Quickly**: Enable/disable palettes and entries for rapid prototyping4. **Generate**: Create your procedural maps with the click of a button**Note**: Palettes can be configured in any order and combination. You have complete freedom to use only the features you need for your specific project.---## Use Cases- **Horror Games**: Create eerie, unpredictable landscapes with dynamic terrain- **Open World Games**: Generate vast, diverse environments efficiently- **Prototyping**: Quickly create test environments for gameplay mechanics- **Procedural Content**: Add infinite variety to your game worlds- **Level Design**: Use as a base for further manual refinement---I'am a software engineer, the AI/ML helped me as a " duck " for the debugging part, also for the translation of logs and some refactoring.