52 Commits

Author SHA1 Message Date
1adddd3f1c Network base, new map, economy base
- Steam networking dependencies
- Full-size regions map
- Economy base structures and assets
2026-10-14 12:10:14 +03:00
4815fb4e1e Closing technical debt
- Manage resources deallocations in AssetManager
- Reformatting in AssetManager
- Fix resource address synchronization in AssetManager
- Windows native file system uses IOCP for performance
2026-07-04 14:29:42 +03:00
250a1641ad Vulkan control module documentation 2026-07-03 14:58:08 +03:00
5d2264e9c2 UI Overlay base 2026-06-12 19:25:22 +03:00
481512689b Rml initialization and rendering 2026-06-11 21:31:42 +03:00
68ec759c36 RenderTextures and Rml Geometry 2026-05-12 14:48:56 +03:00
eb79ff9879 Shaders SPIR-V compilation in SDK 2026-04-27 17:24:51 +03:00
7ec8c82569 Major SDK improvements + Cap'n Proto assets format 2026-04-27 03:43:45 +03:00
55258615c5 Vulkan renderer 2026-04-01 15:51:37 +03:00
a127e95741 Documentation 2026-02-22 14:19:28 +03:00
9e6c5ab38b Reformatting code style 2026-02-20 13:02:33 +03:00
b94a44c7a4 Workers optimization and refactor 2026-02-19 16:18:01 +03:00
9f6ff5fad8 Remove MAP_WORKER_COMMAND macro 2026-02-18 23:40:17 +03:00
08477f316e P7 Logger to module 2026-02-18 22:27:30 +03:00
04948d0d4d Migrate to STD module 2026-02-18 17:00:04 +03:00
3b8456d07a Latest Magnum and STD module support 2026-02-18 16:16:02 +03:00
0f26b7423d Minor TODOs completed
- Rename states -> regions
- Threads unregistering from Logger
- Remove unnecessary references for primitive arguments in functions
- Marking classes as final for optimization
- Remove typo in Materials implementation file name
- Move some modules to partitions
2026-02-11 03:28:33 +03:00
5837def95c Converting map script 2026-02-10 17:09:41 +03:00
b3d74c9cd7 Camera movement 2026-02-10 16:36:16 +03:00
3f965b2393 C++20 migration and Client
- Migrated to C++20 modules
- Worker and ThreadedWorker base classes for interthread systems
- Client class for server transport and converting game data models to render data (views)
- Update provinces render data from Client
- Renderer handles commands now
2026-02-10 04:12:04 +03:00
9d5a41b02d Assets system refactor, Save Asset 2026-01-28 19:41:07 +03:00
49affdcc38 Input manager, camera zoom 2026-01-25 03:39:50 +03:00
83f947ce1f namespaces refactor 2026-01-24 19:22:19 +03:00
6bcea3087a Rendering states in Magnum 2026-01-24 15:51:21 +03:00
91bee9f300 Optimize vertices 2026-01-20 12:04:41 +03:00
53bcd2a2e0 Approximation and Triangulation 2026-01-20 01:58:43 +03:00
a157492b4b Find map provs contour 2026-01-20 00:56:53 +03:00
90b28158be Fix P7 compile target 2026-01-18 21:05:59 +03:00
0ff3a35ed3 Refactor and Magnum integration 2026-01-18 20:47:45 +03:00
67b2b64d2f Refactor modules architecture 2026-01-14 17:32:32 +03:00
945cf4b1cc UBO base 2026-01-14 15:26:09 +03:00
fd6437a94b Index buffers 2025-10-09 20:24:57 +03:00
2e0369ee2b Vertex buffers
- Fix RenderObject comparator for storing in set
- RenderObjects get ID on register
- Transfer queue family and queue
- Command buffers for transfer queue
- PipelineFactory constructor parameters combined in PipelineBinding structure
- GPU_Vertex and GPU_Buffer structures to map GPU memory data
- Vertex buffers for world and UI RenderObjects with staging
2025-10-04 20:46:15 +03:00
16bd65c35a Window minimization handle
- Getter for Renderer isRunning
- Disabling drawing with isDrawing
- Disabling drawing on zero size
- Recreate swapchain on GLFW resize event
2025-10-01 14:52:37 +03:00
1d65039e2f Swapchain presentation and GLFW
- Render objects list
- SDL2 replaced with GLFW
- Swapchain synchronization, presentation and recreation on resize
2025-09-27 12:30:00 +03:00
389ed599c8 Pipeline factory and materials
- AssetManager uses static assets ID from path hash
- PipelineFactory creates Vulkan pipelines using PipelineConfig structure depending on AssetMaterial and creation flags
- AssetMaterial describes pipelines (e.g. used shaders)
- Materials are described with JSON in sources with path references to other assets
- AssetMaterial is parsed from binary file with asset IDs in references
- compile_config tool compiles material JSON file to binary file with path references replaced with asset IDs
- Allocator supports type's constructors with arguments
- NativeFileSystem: fixed empty bufferSize and buffer trash
2025-08-29 13:13:11 +03:00
b0be28ff2c p7lib warnings fix 2025-08-24 15:27:51 +03:00
7ad2ec4dc8 Shaders assets and loading fix
- a = { ... } definitions replaced with a { ... }
- GetOverlappedResult replaced with waiting for event in Windows async file loading
- FileHandles and AssetHandles stored in heap for container element adresses consistence
- Shader assets examples
2025-08-24 14:56:17 +03:00
9a258f7443 Asset Manager
- Class for threaded load and read assets from virtual file system
2025-08-23 16:28:12 +03:00
2a8abd04d8 Frame Views 2025-08-19 16:32:26 +03:00
1aae507c11 Vulkan swapchain
- Filter devices with swapchain present support
- Configure swapchain and images
2025-08-13 23:59:48 +03:00
7e59a9d2d7 Vulkan surface and queues
- Vulkan SDL surface creation
- Present support check in device selection
- Present queue family and queue
2025-08-12 16:48:13 +03:00
721e5afbac Vulkan device initialization and compilation utils
- Vulkan initialization moved to InitVulkan()
- Renderer thread processes commands from main thread
- SetupDevice() for select physical device and queue families, create logical device and queues.
2025-08-11 23:51:08 +03:00
0062aa85e5 Renderer thread base
- Renderer class
- Vulkan and RmlUi moved from main to Renderer thread
2025-08-08 20:25:47 +03:00
32f4597c4d Base frontend module
- Naming style migrated to camel-case
- P7lib logger sources added
- Vcpkg manifest, CMake presets and build moved to root
- SDL2, Vulkan and RmlUi dependencies added
- Logger LOG macro added
- Logger  configuration
- SDL2 window configuration
- Vulkan configuration
- RmlUi configuration
- SDL event loop
2025-08-08 00:07:32 +03:00
06ecfe88c1 root gitignore 2025-08-06 18:17:53 +03:00
eb480f02b8 Static linking instead of DLL 2025-08-06 18:14:50 +03:00
ff6c146153 Enterprise salary and API
- Enterprises have action type, money, salary and bankruption status
- Enterprise add and multiply functions replaced with setters
- Delivery contracts have cost, distance and sponsor reference. Value renamed to amount
- Integer values use static sizes types
- Action CONTAIN renamed to STORE
- Enterprises skip their action if is bankrupt
- Delivering transfers money from sponsor to deliverer due contract
- Enterprise routine system processes salaries and bankruptcy
- ee_ecs data structures renamed with snake_case
- Get enterprises info request
2025-08-06 17:52:37 +03:00
bbf45e832c Delivering and tests
- Deliverer component added
- Delivering system added
- Delivery tests
- Spawn enterprises tests (miner and deliverer)
- Base, factor and total efficiency of enterprise added
- Value of resource mined per tick moved from miner to enterprise efficiency
2025-07-08 19:01:31 +03:00
74042175f8 State and enterprises register, move namespaces 2025-07-04 18:20:45 +03:00