46 Commits

Author SHA1 Message Date
e1d3725b87
feat: add requires clause for totally ordered keys in SmallMap
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-04 16:18:27 +08:00
8d0a6ca6f5
feat: remove reference to dev.md from copilot instructions
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-04 16:18:12 +08:00
47fd291a4b
feat: remove unnecessary include directory from tilemap_demo example
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-04 16:17:57 +08:00
b40c19ddc7
feat: add SmallMap implementation and associated tests
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-04 14:46:34 +08:00
280aff5465
feat: reorganize CMake configuration and add third-party library setup for Asio and EnTT
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-04 14:05:00 +08:00
c13e67899b
feat: better tilemap demo by adding chunk border lines and biome statistics
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-03 21:51:41 +08:00
6379c42c6f
feat: add coal generation pass to documentation
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-03 21:50:21 +08:00
afc8d8fa1c
feat: add coal generation
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-03 21:21:37 +08:00
1354d9c08a
feat: remove unused files & code. rename demo
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-03 20:20:48 +08:00
fcb71be9e8
feat: Add mineral generation pass
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-03 17:08:36 +08:00
7735da6e85
docs: update copilot instructions for clarity and conciseness
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-03 17:04:34 +08:00
a241b9b9bf
docs: update developer guide with new generation pass instructions and examples
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-03 15:35:29 +08:00
5ea6d46a9f
refactor: re-organize tilemap library structure
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-03 15:22:33 +08:00
d69a13d58a
fix: deepwater generation near boundary
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-03 15:00:24 +08:00
937a1324eb
feat: add oil generation pass and update related configurations and documentation
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-03 14:57:36 +08:00
6a3f23f989
chore: update clang-format
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-03 11:34:24 +08:00
45836dc897
fix: mountain smoothing logic
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-03 11:10:03 +08:00
e7b9fd856f
feat: add island smoothing pass and update biome properties for improved terrain generation
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-03 01:27:56 +08:00
7f147a1293
chore: update formatting penalties in .clang-format and clean up .gitignore; remove outdated testing and validation sections from developer guide
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-03 01:03:22 +08:00
2c9f25256d
docs: add developer guide for tilemap library and reduce api doc
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-02 22:28:00 +08:00
10ef94302c
refactor: split each pass to a seperate source file
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-02 19:12:56 +08:00
6b9d6c2463
feat: add deepwater generation pass and extend tile types for improved terrain detail
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-02 18:57:05 +08:00
2133af991a
feat: update mountain smoothing configuration and refactor iteration parameters for clarity
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-02 18:18:15 +08:00
cc14331326
feat: implement mountain smoothing pass with cellular automata and small mountain removal
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-02 17:17:21 +08:00
c5c62000a2
feat: add SmoothenMountainsPass for terrain smoothing and enhance TileMap with boundary and neighbor methods
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-02 16:41:50 +08:00
6a79e7b0a5
feat: add hole filling pass to terrain generation for improved terrain continuity
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-02 14:19:03 +08:00
937091a40e
feat: refactor terrain generation into modular pass-based architecture with biome and base tile type generation passes
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-02 10:01:14 +08:00
c7a1beea82
feat: replace std::cout with std::println for consistent output formatting and add timing for map generation
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-02 09:28:03 +08:00
7718d3fbf4
feat: add biome properties for temperature, humidity, and ocean status
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-02 09:16:41 +08:00
ad68a23629
feat: tweak tilemap params
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-02 00:31:49 +08:00
06a60b1a19
feat: Xoroshiro128++ Random Engine
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-02 00:05:12 +08:00
ebdbf62a19
refactor: Remove const references for position parameters in tile and biome accessors
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-01 22:58:07 +08:00
416eabd31f
feat: get_biome method for Chunk
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-01 22:51:41 +08:00
5af0239ab1
refactor: Fix API document for missing paramters in GenerationConfig
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-01 22:41:41 +08:00
344e475f52
refactor: Simplify sub-chunk handling and improve biome management in Chunk and TerrainGenerator
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-01 22:39:09 +08:00
31f8e6b385
refactor: Update noise parameters in GenerationConfig for better configurability
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-01 22:21:39 +08:00
75b362037c
refactor: place y before x
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-01 21:58:09 +08:00
849b7b2ed9
refactor: Replace hardcoded thresholds with constants in biome determination
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-01 21:41:15 +08:00
6be8869568
fix: biome demo
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-01 21:37:23 +08:00
720d1a1c69
feat: Enhance command line interface to support optional chunk size parameter
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-01 20:46:40 +08:00
4d88ea4a29
feat: Refactor visualization to generate BMP files instead of SVG
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-01 20:40:36 +08:00
2b5f62da08
feat: Implement uniform distribution mapping for Perlin noise and add comparison demo
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-01 19:41:11 +08:00
1cb4c19b77
Refactor tilemap examples and enhance biome generation
- Removed dual_noise_demo example as it was deemed unnecessary.
- Added perlin_demo example for visualizing Perlin noise.
- Updated biome_demo to generate SVG visualizations of tilemaps.
- Changed biome properties from thresholds to ratios for better control.
- Modified terrain generation logic to accommodate new biome properties.
- Improved documentation with detailed API and usage examples.

Signed-off-by: szdytom <szdytom@qq.com>
2025-08-01 19:25:36 +08:00
1289e99fc3
feat: Refactor biome generation and terrain noise handling
Signed-off-by: szdytom <szdytom@qq.com>
2025-08-01 18:47:55 +08:00
0b245e0483
feat: Add dual noise terrain generation demo
- Introduced a new example `dual_noise_demo.cpp` to showcase the base and surface generation system.
- Updated biome properties to include ice thresholds and surface feature parameters.
- Enhanced chunk structure to support biomes for sub-chunks.
- Refactored terrain generation logic to separate base terrain and surface feature generation.
- Improved biome determination logic to include new biomes and their properties.
- Updated tile representation to use enums for base and surface tile types.
- Added detailed analysis of generated terrain and sample tile outputs in the demo.

Signed-off-by: szdytom <szdytom@qq.com>
2025-08-01 15:32:36 +08:00
b6656f5023
feat: Add biome-based terrain generation and Perlin noise implementation
- Introduced a new biome system with various biome types and properties.
- Implemented terrain generation using Perlin noise to create diverse landscapes.
- Added examples for basic tilemap generation and biome analysis.
- Created helper functions for displaying tiles and biomes in the console.
- Enhanced the TileMap class to support chunk-based tile management.
- Developed a PerlinNoise class for generating smooth noise patterns.
- Updated generation configuration to include climate parameters for biomes.
- Implemented error handling for out-of-bounds access in TileMap.

Signed-off-by: szdytom <szdytom@qq.com>
2025-08-01 14:28:36 +08:00