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

UnityStarter হলো একটি প্রোডাকশন-মুখী, মডুলার Unity ফাউন্ডেশন প্রজেক্ট এবং পুনঃব্যবহারযোগ্য ফ্রেমওয়ার্ক বেস, যা Unreal Engine আর্কিটেকচার দ্বারা অনুপ্রাণিত। এর GameplayFramework Actor, Pawn, Controller এবং GameMode-এর চারপাশে Unreal-ধাঁচের গেমপ্লে সংগঠন প্রয়োগ করে, আর Gameplay Abilities এবং GameplayTags স্পষ্ট গেমপ্লে চুক্তির জন্য GAS-সদৃশ অ্যাবিলিটি ও ট্যাগিং প্রিমিটিভ প্রদান করে। এটি দীর্ঘমেয়াদি ইটারেশন প্রয়োজন এমন মাঝারি থেকে বড় Unity প্রোডাকশনের লক্ষ্যে তৈরি: স্পষ্ট মালিকানা সীমানা, পারফরম্যান্স-সচেতন রানটাইম সিস্টেম, ইঞ্জিন-নিরপেক্ষ কোর লেয়ার, এবং প্রজেক্ট-মালিকানাধীন বিল্ড/টুলিং অবকাঠামো। এটি একটি প্রজেক্ট টেমপ্লেট হিসেবে ব্যবহার করা যায় (Unity-তে UnityStarter/ খুলুন, বান্ডল করা টুল দিয়ে নাম পরিবর্তন করুন) অথবা CycloneGames-এর অধীনে ফোল্ডারগুলো সরিয়ে একটি UPM প্যাকেজ হিসেবে। আর্কিটেকচার নীতির মধ্যে রয়েছে যেখানে গুরুত্বপূর্ণ সেখানে প্রথমে বিশুদ্ধ C# (কোর চুক্তি UnityEngine টাইপ ফাঁস এড়ায়), Unity-কে ইন্টিগ্রেশন লেয়ার হিসেবে ব্যবহার, বিচ্ছিন্ন ঐচ্ছিক ইন্টিগ্রেশন (DI কন্টেইনার, টুইন ইঞ্জিন, সিরিয়ালাইজার, ট্রান্সপোর্ট, হট-আপডেট ব্যাকএন্ড), পারফরম্যান্সকে ডিজাইন সীমাবদ্ধতা হিসেবে (জিরো-GC বা লো-GC হট পাথ, পুনঃব্যবহারযোগ্য বাফার, স্পষ্ট লাইফসাইকল ক্লিনআপ), প্রজেক্ট-মালিকানাধীন বিল্ড অবকাঠামো, এবং API-এর অংশ হিসেবে ডকুমেন্টেশন। মডিউল ম্যাপের হাইলাইট: - Gameplay: GameplayFramework (Actor/Pawn/Controller/GameMode, লাইফসাইকল, ক্যামেরা ও সিন ফ্লো), GameplayAbilities (ডেটা-চালিত অ্যাবিলিটি, অ্যাট্রিবিউট, ইফেক্ট, কস্ট, কুলডাউন, কিউ, অথরিটি/রেপ্লিকা রোল), Choreography (ইঞ্জিন-মুক্ত অ্যাকশন প্রেজেন্টেশন শিডিউলিং), GameplayTags (হায়ারার্কিক্যাল ট্যাগ, জেনারেটেড কনস্ট্যান্ট, কোয়েরি হেল্পার, এডিটর টুলিং), RPGFoundation, UIFramework (উইন্ডো ম্যানেজমেন্ট, UI ফ্লো, SLRU ক্যাশসহ অ্যাসেট-ব্যাকড লোডিং), Foundation2D। - AI: BehaviorTree (রানটাইম, এডিটর সাপোর্ট, টেস্ট) এবং AIPerception (Jobs/Burst-মুখী পারসেপশন, সেন্সর কোয়েরি, স্প্যাশিয়াল স্ট্রাকচার)। - Data, Assets এবং Content: AssetManagement (ইন্টারফেস-ফার্স্ট লোডিং, বাউন্ডেড সেগমেন্টেড-LRU ক্যাশিং, CacheRetention পলিসি, ডায়াগনস্টিকস, অ্যাসিঙ্ক ফ্লো), DataTable (ডিজাইনার-মুখী পাইপলাইন, ঐচ্ছিক Luban, MessagePack এবং অ্যাসেট-ম্যানেজমেন্ট ব্রিজসহ), GameplayTags.DataTable, Choreography ব্রিজ, Localization (লোকেল ফলব্যাক, পার্টিশনড টেক্সট/অ্যাসেট, ট্রানজ্যাকশনাল ক্যাটালগ), Audio, FontAssets। - Runtime Infrastructure: Factory (পুলিং, DI-বান্ধব, ECS/DOD ভ্যারিয়েন্ট), Logging এবং Logging Pipeline (Unity-মুক্ত চুক্তি, বাউন্ডেড প্রসেসিং, সিঙ্ক, ফাইল আউটপুট), DeterministicMath (রিপ্লে/লকস্টেপের জন্য ফিক্সড-পয়েন্ট ম্যাথ), Hash, IO, Persistence (Record V1 ইন্টিগ্রিটি চেকসহ ভার্সনড সিঙ্গেল-রেকর্ড অর্কেস্ট্রেশন) এবং SystemIO, VYaml ও MessagePack কোডেক, InputSystem (YAML অথরিং, ম্যাপিং কনটেক্সট, প্রতি-প্লেয়ার ডিভাইস মালিকানা, লোকাল মাল্টিপ্লেয়ার), DeviceFeedback, Settings এবং Settings.Persistence, Utility, Cheat। - Build, Tools এবং Quality: Build (প্রজেক্ট-মালিকানাধীন প্লেয়ার বিল্ড পাইপলাইন, ভার্সন তথ্য, ঐচ্ছিক হট-আপডেট হুক, CI-মুখী মেথড), Tools (নাম পরিবর্তন, প্যাকেজ ট্রিমিং, ক্লিনআপ, ফাইল ট্রি, অডিও নরমালাইজেশন, টেক্সচার চ্যানেল প্যাকিং, WebM কনভার্সনের জন্য Go ইউটিলিটি), Analyzers (Assets/Default.ruleset-এর মাধ্যমে স্টেজ করা ২০+ Roslyn রুল)। নেটওয়ার্কিং মডিউল (Networking, GameplayFramework.Networking, AIPerception.Networking, BehaviorTree.Networking, RPGFoundation মুভমেন্ট/ইন্টার্যাকশন/প্রজেক্টাইল নেটওয়ার্কিং) পরীক্ষামূলক হিসেবে বর্ণিত এবং প্রোডাকশনে গ্রহণের আগে এন্ড-টু-এন্ড ভ্যালিডেশন প্রয়োজন। বিল্ড এবং CI: Assets/Build/ হলো প্রজেক্ট-মালিকানাধীন অবকাঠামো, যাতে BuildData ScriptableObject কনফিগারেশন, Git বা Perforce রিভিশন মেটাডেটা, এডিটর মেনু আইটেম ও কমান্ড-লাইন এন্ট্রি পয়েন্ট, ঐচ্ছিক HybridCLR, Obfuz, YooAsset 3 এবং Addressables ইন্টিগ্রেশন, এবং একটি একক CI এন্ট্রি পয়েন্ট Build.Pipeline.Editor.BuildEntryPoints.RunCommandLine রয়েছে। ব্যাচ-মোড এবং রিলিজ বিল্ডের জন্য ভার্সন কন্ট্রোল মেটাডেটা প্রয়োজন; শুধুমাত্র ইন্টার্যাক্টিভ Development বিল্ড LocalDevelopment ফলব্যাক ব্যবহার করতে পারে। শুরু করা: রিপোজিটরি ক্লোন করুন, Unity Hub-এ UnityStarter/ খুলুন, Scene_Launch.unity খুলুন, GameplayFramework এবং Build README পড়ুন, এবং নতুন প্রজেক্ট ডেরাইভ করার সময় rename_project.exe চালান। পৃথক মডিউলগুলো তাদের package.json, asmdef ফাইল ও ডিপেন্ডেন্সি পরীক্ষা করে Assets/ThirdParty/CycloneGames/ থেকে কপি করা যায়। টেকনোলজি স্ট্যাকের উদাহরণের মধ্যে রয়েছে UniTask, R3, VitalRouter, VYaml, Burst, Collections, Mathematics, Input System, Cinemachine, URP, TextMeshPro, UGUI, Splines, Scriptable Build Pipeline, NuGetForUnity, এবং ঐচ্ছিক VContainer, PrimeTween, Navigathena, Luban, MessagePack, HybridCLR, YooAsset, Addressables, Obfuz, Mirror ও Mirage। প্রজেক্টটি MIT লাইসেন্সের অধীনে এবং ইংরেজি ও সরলীকৃত চীনা ভাষায় দ্বিভাষিকভাবে ডকুমেন্টেড।