{"id":21043658,"url":"https://github.com/mrsmith33/voxelman2","last_synced_at":"2026-02-20T01:01:33.481Z","repository":{"id":53716032,"uuid":"349038506","full_name":"MrSmith33/voxelman2","owner":"MrSmith33","description":"Voxelman 2.0 written with D and Vox","archived":false,"fork":false,"pushed_at":"2023-08-21T17:27:25.000Z","size":404,"stargazers_count":20,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-25T08:46:02.857Z","etag":null,"topics":["d","dlang","vox","voxlang","vulkan"],"latest_commit_sha":null,"homepage":"","language":"D","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MrSmith33.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-18T10:55:16.000Z","updated_at":"2024-09-24T07:16:07.000Z","dependencies_parsed_at":"2025-03-18T20:46:22.964Z","dependency_job_id":null,"html_url":"https://github.com/MrSmith33/voxelman2","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/MrSmith33/voxelman2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrSmith33%2Fvoxelman2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrSmith33%2Fvoxelman2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrSmith33%2Fvoxelman2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrSmith33%2Fvoxelman2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MrSmith33","download_url":"https://codeload.github.com/MrSmith33/voxelman2/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrSmith33%2Fvoxelman2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29637915,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T22:32:43.237Z","status":"ssl_error","status_checked_at":"2026-02-19T22:32:38.330Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["d","dlang","vox","voxlang","vulkan"],"created_at":"2024-11-19T14:13:40.130Z","updated_at":"2026-02-20T01:01:33.459Z","avatar_url":"https://github.com/MrSmith33.png","language":"D","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Voxelman v2\n\n![CI](https://github.com/MrSmith33/voxelman2/workflows/CI/badge.svg?branch=master\u0026event=push)\n\nVoxel engine focused on:\n- Modding via embedded Vox language compiler, which offers quick recompilation\n- High performance through the use of ECS, multithreading and Vulkan API, mdbx database\n- Client/Server architecture\n\n## Status\n\nWIP rewrite of voxelman\n\nCurrently following [Vulkan tutorial](https://vulkan-tutorial.com)\n\n## Profiling\n\nPass `--tracy` flag to the executable to enable tracy. Run the voxelman application as an administrator to get more profiling information. Start Tracy profiler and connect to the application. Tracy is disabled by default as it affects startup time.\n\n## Links\n\n* [Voxelman v1](https://github.com/MrSmith33/voxelman)\n* [Vox programming language](https://github.com/MrSmith33/vox)\n\n## Conventions\n\n* Right-handed coordinate system\n* Column vectors that are multiplied as `P⋅V⋅M⋅v`\n\n## Getting deps\n\n`.dll` files must be placed into `bin/` directory\\\n`.lib` files must be placed into `lib/` directory\n\nDownload pre-built dependencies from:\n* https://github.com/MrSmith33/voxelman2/releases/tag/deps\n\nOr build/download them yourself:\n\n\u003cdetails\u003e\n\u003csummary\u003eInstructions\u003c/summary\u003e\n\n* GLFW3 v3.3.8\n  * [glfw-3.3.8.bin.WIN64.zip](https://github.com/glfw/glfw/releases/download/3.3.8/glfw-3.3.8.bin.WIN64.zip)`/glfw-3.3.8.bin.WIN64/lib-vc2019/glfw3.lib`\n* Enet v1.3.17\n  * [enet-1.3.17.tar.gz](http://enet.bespin.org/download/enet-1.3.17.tar.gz)`/enet-1.3.17/enet64.lib`\n* LZ4 v1.9.4: [lz4-1.9.4.zip](https://github.com/lz4/lz4/archive/refs/tags/v1.9.4.zip)\n  * The file from the release causes `liblz4_static.lib(lz4.o) : error LNK2001: unresolved external symbol ___chkstk_ms` when building with `dmd`, so we build from sources.\n  * Open `lz4-1.9.4/build/VS2017/lz4.sln` with VS2019 (Release x64 config)\n  * Optionally disable debug info (`Debug Information format`: `/Zi` -\u003e `None`). Reduces static lib size.\n  * Build `liblz4` project\n  * Copy `lz4-1.9.4/build/VS2017/bin/x64_Release/liblz4_static.lib`\n* libmdbx v0.10.2\n   * Needs `cmake` to be installed.\n   * Create `build.cmd` inside `libmdbx/` unpacked from [libmdbx-amalgamated-0_10_2.zip](https://github.com/erthink/libmdbx/releases/download/v0.10.2/libmdbx-amalgamated-0_10_2.zip):\n     ```batch\n     mkdir build\n     cd build\n     cmake -G \"Visual Studio 16 2019\" -A x64 -D CMAKE_CONFIGURATION_TYPES=\"Debug;Release;RelWithDebInfo\" -D MDBX_AVOID_CRT:BOOL=ON -D MDBX_BUILD_SHARED_LIBRARY:BOOL=OFF -D INTERPROCEDURAL_OPTIMIZATION:BOOL=FALSE ..\n     ```\n   * Run `build.cmd`.\n   * Change inlining option (Properties-\u003eC/C++-\u003eOptimization-\u003eInline function expansion) in the `Release` config of `mdbx-static` project to `/Ob1`. Otherwise compile freezes.\n   * `cmake --build . --config Release` or press `Build` for `mdbx-static` project.\n   * Copy `libmdbx/build/Release/mdbx.lib`\n* mimalloc v2.0.7\n  * https://github.com/microsoft/mimalloc/archive/refs/tags/v2.0.7.zip\n  * Open `mimalloc-2.0.7/ide/vs2019/mimalloc.sln`\n  * Select Release build\n  * In vs2019 modify `mimalloc` project settings:\n    * Disable debug info (`Debug Information format`: `/Zi` -\u003e `None`)\n    * Compile as C language to reduce .lib size (from 452KiB to 341KiB) (`C/C++ -\u003e Advanced -\u003e Compile As`: `/TP` -\u003e `/TC`)\n  * Copy `mimalloc-2.0.7/out/msvc-x64/Release/mimalloc-static.lib`\n* Tracy v0.7.8\n   * https://github.com/wolfpld/tracy/archive/refs/tags/v0.7.8.zip\n   * Open `/library/win32/TracyProfiler.sln`\n   * Select Release build\n   * ~~Build as dll~~\n   * `Whole program optimization`: `/GL` -\u003e `No`\n   * `Debug Information format`: `/Zi` -\u003e `None`\n   * ~~Copy `tracy/library/win32/x64/Release/TracyProfiler.dll`~~\n   * ~~Linking with `TracyProfiler.lib` caused D host to not generate proper stack traces, which is important when debugging compiler and other stuff. Loading master version of tracy dll with LoadLibraryA is super slow (like 30-40s).~~\n   * Define `TRACY_DELAYED_INIT` and `TRACY_MANUAL_LIFETIME` preprocessor definitions in `C/C++` -\u003e `Preprocessor` -\u003e `Preprocessor Definitions`\n   * Add this code to `TracyC.h` before `___tracy_init_thread` definition:\n     ```C\n     #if defined(TRACY_DELAYED_INIT) \u0026\u0026 defined(TRACY_MANUAL_LIFETIME)\n     TRACY_API void ___tracy_startup_profiler(void);\n     TRACY_API void ___tracy_shutdown_profiler(void);\n     #endif\n     ```\n   * Add this code to `client/TracyProfiler.cpp` after `___tracy_init_thread` declaration:\n     ```C\n     #if defined(TRACY_DELAYED_INIT) \u0026\u0026 defined(TRACY_MANUAL_LIFETIME)\n     TRACY_API void ___tracy_startup_profiler(void) { tracy::StartupProfiler(); }\n     TRACY_API void ___tracy_shutdown_profiler(void) { tracy::ShutdownProfiler(); }\n     #endif\n     ```\n   * Build as static lib\n   * Copy `tracy/library/win32/x64/Release/TracyProfiler.lib`\n* shaderc from VulkanSDK v1.3.236.0\n   * Download from [VulkanSDK](https://vulkan.lunarg.com/sdk/home) or from releases of https://github.com/google/shaderc\n   * https://sdk.lunarg.com/sdk/download/1.3.236.0/windows/VulkanSDK-1.3.236.0-Installer.exe\n   * No need to install, can be opened as archive\n   * ~~Shared lib `/Lib/shaderc_shared.lib` \u0026 `/Bin/shaderc_shared.dll`~~\n   * Copy `VulkanSDK-1.3.236.0-Installer.exe/Lib/shaderc_combined.lib`\n* zstd v1.5.2\n   * Download https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz\n   * Unpack into `zstd-1.5.2/`\n   * Go to `zstd-1.5.2/build/cmake`\n   * Execute\n     ```\n     mkdir build\n     cd build\n     cmake ..\n     ```\n   * Open `zstd-1.5.2/build/cmake/build/zstd.sln`\n   * Select Release build and build `libzstd_static` project\n   * Copy `zstd-1.5.2/build/cmake/build/lib/Release/zstd_static.lib`\n* Vulkan Memory Allocator v3.0.0\n  * Download [source code](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/archive/refs/tags/v3.0.0.zip)\n  * Go to `VulkanMemoryAllocator-3.0.0/`\n  * Execute in terminal\n    ```\n    mkdir build\n    cd build\n    cmake ..\n    ```\n  * Open `VulkanMemoryAllocator-3.0.0/build/VulkanMemoryAllocator.sln`\n  * Set preprocessor directives as:\n    ```C\n    VMA_STATIC_VULKAN_FUNCTIONS=0\n    VMA_DYNAMIC_VULKAN_FUNCTIONS=1\n    VMA_MEMORY_BUDGET=1\n    VMA_BIND_MEMORY2=1\n    VMA_DEDICATED_ALLOCATION=1\n    VMA_EXTERNAL_MEMORY=1\n    VMA_STATIC_VULKAN_FUNCTIONS=0\n    ```\n  * Switch to Vulkan 1.3 in `VulkanMemoryAllocator-3.0.0/src/VmaUsage.h` (uncomment `#define VMA_VULKAN_VERSION 1003000`)\n  * Build release version\n  * Copy `VulkanMemoryAllocator-3.0.0/build/src/Release/VulkanMemoryAllocator.lib`\n* GameNetworkingSockets v1.4.1\n  * `git clone https://github.com/microsoft/vcpkg`\n  * In `x64 Native Tools Command Prompt for VS 2019`\n  * `./vcpkg/bootstrap-vcpkg.bat`\n  * Apply [this patch](https://github.com/eddiejames/vcpkg/commit/420290091e82288e461473e3447e6e4901f0c8df) to `ports/gamenetworkingsockets/portfile.cmake` and `ports/gamenetworkingsockets/vcpkg.json`\n  * `vcpkg install gamenetworkingsockets:x64-windows-static-md`\n  * Copy `vcpkg/packages/gamenetworkingsockets_x64-windows-static-md/lib/GameNetworkingSockets_s.lib`\n  * Copy `vcpkg/packages/protobuf_x64-windows-static-md/lib/libprotobuf.lib`\n  * Copy `vcpkg/packages/openssl_x64-windows-static-md/lib/libcrypto.lib`\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrsmith33%2Fvoxelman2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrsmith33%2Fvoxelman2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrsmith33%2Fvoxelman2/lists"}