প্রকল্প সম্পর্কে

ZEngine (Zodiac Engine) একটি ওপেন-সোর্স 3D রেন্ডারিং ইঞ্জিন, যা C++-এ লেখা এবং Vulkan গ্রাফিক্স API-এর উপর ভিত্তি করে তৈরি। README-তে এটিকে গেমিং এবং বৈজ্ঞানিক গণনা ও ভিজ্যুয়ালাইজেশনের মতো কাজের জন্য উপযোগী হিসেবে বর্ণনা করা হয়েছে। প্রজেক্টটি তিনটি উপাদানে বিভক্ত। ZEngine হল মূল রানটাইম, যা ECS, Vulkan রেন্ডারার, ফিজিক্স, অডিও এবং ভার্চুয়াল ফাইল সিস্টেম কভার করে। Tetragrama হল ZEngine-এর উপর নির্মিত একটি এডিটর, যা সিন তৈরি এবং অ্যাসেট ম্যানেজমেন্টের জন্য ব্যবহৃত হয়। Panzerfaust হল একটি প্রজেক্ট লঞ্চার, যা C#/.NET-এ লেখা এবং গেম প্রজেক্ট তৈরি, খোলা ও পরিচালনা করে; এটি একটি আলাদা রিপোজিটরিতে (ZodiacEngineHub) হোস্ট করা আছে। সমর্থিত প্ল্যাটফর্ম হল Windows, macOS এবং Linux (Debian/Ubuntu), সবগুলোই সক্রিয়ভাবে উন্নয়ন ও পরীক্ষিত হিসেবে বর্ণিত। সম্পূর্ণ ডকুমেন্টেশন প্রজেক্ট উইকিতে রয়েছে এবং একটি রোডম্যাপ ফাইল উল্লেখ করা হয়েছে। সেটআপের জন্য C++ টুলচেইন এবং সহায়ক টুল প্রয়োজন। Windows-এ: Visual Studio 2022 (Desktop development with C++ সহ), MSVC v143 এবং Windows 10/11 SDK, PowerShell Core, Python, CMake 4.1.2 বা তার পরের সংস্করণ, এবং LLVM। macOS-এ: Xcode, Homebrew, তারপর CMake, NuGet, PowerShell Core এবং LLVM/ClangFormat (brew-এর মাধ্যমে)। Linux-এ: build-essential, CMake, Ninja, LLVM/Clang, Python 3 এবং NuGet (apt-এর মাধ্যমে), সাথে PowerShell Core। নির্ভরতাগুলি CMake কনফিগারেশনের সময় FetchContent-এর মাধ্যমে স্বয়ংক্রিয়ভাবে ডাউনলোড হয়, তাই ম্যানুয়াল সাবমডিউল ইনিশিয়ালাইজেশনের প্রয়োজন নেই। বিল্ডিং রিপোজিটরি রুটে থাকা একটি PowerShell স্ক্রিপ্টের মাধ্যমে পরিচালিত হয়: BuildEngine.ps1, যেখানে -Configurations Debug বা Release এবং -RunBuilds $True ব্যবহার করা হয়। -RunBuilds $False দিলে কম্পাইল না করেই বিল্ড ডিরেক্টরি তৈরি হয়, এবং -Configurations বাদ দিলে উভয় কনফিগারেশন বিল্ড হয়। নির্ভরতার তালিকা বিস্তৃত এবং বিষয় অনুযায়ী বিভক্ত। রেন্ডারিং এবং উইন্ডো ম্যানেজমেন্টে Vulkan-Headers এবং Vulkan-Loader, GPU মেমরির জন্য VulkanMemoryAllocator, শেডার কম্পাইলেশন পাইপলাইনের জন্য SPIRV-Cross, glslang এবং SPIRV-Tools, এবং উইন্ডো তৈরি ও ইনপুটের জন্য GLFW ব্যবহৃত হয়। UI সিস্টেম (ZUI) ফন্ট রাস্টারাইজেশনের জন্য FreeType এবং উইজেট কী হ্যাশিংয়ের জন্য rapidhash ব্যবহার করে। অ্যাসেট লোডিংয়ে Assimp (লিগ্যাসি 3D ইমপোর্ট), fastgltf (glTF 2.0), ufbx (FBX), meshoptimizer (ভার্টেক্স ক্যাশ, ওভারড্র এবং LOD অপ্টিমাইজেশন), STB (PNG, JPEG, HDR ইমেজ লোডিং) এবং miniz (zip/deflate কম্প্রেশন) অন্তর্ভুক্ত। মেমরিতে tlsf ব্যবহার করা হয় ভেরিয়েবল-সাইজ ইঞ্জিন স্ল্যাবের জন্য O(1) ডায়নামিক অ্যালোকেটর হিসেবে। ডেটা ফরম্যাটে nlohmann/json, simdjson (অ্যাসেট পাইপলাইনের জন্য) এবং yaml-cpp (কনফিগারেশনের জন্য) রয়েছে। লগিং এবং ইউটিলিটিতে spdlog, fmt, stduuid, CLI11 এবং Tracy (ZENGINE_TRACY ফ্ল্যাগের মাধ্যমে অপ্ট-ইন ফ্রেম প্রোফাইলার) অন্তর্ভুক্ত। ইউনিট টেস্টিংয়ের জন্য GoogleTest ব্যবহৃত হয়, এবং একটি GitHub Actions ওয়ার্কফ্লো ইঞ্জিন বিল্ড ও টেস্ট করে। প্রজেক্টটি MIT লাইসেন্সের অধীনে এবং অবদান স্বাগত জানায়; পুল রিকোয়েস্ট খোলার আগে একটি কন্ট্রিবিউটিং গাইড উল্লেখ করা হয়েছে।