كل مكان يتم تمثيله بواسطة نموذج بيانات، وهو تسلسل هرمي من الكائنات التي تصف كل شيء عن المكان. يحتوي نموذج البيانات على جميع الكائنات التي تشكل العالم ثلاثي الأبعاد، مثل الأجزاء، والتضاريس، والإضاءة، وعناصر بيئية أخرى. كما يحتوي أيضًا على كائنات يمكنها التحكم في سلوك التشغيل، مثل السكربتات التي تعدل الخصائص، وتقوم باستدعاء طرق ودوال، وتستجيب للأحداث التي تمكن السلوك الديناميكي والتفاعل.
تستخدم محرك Roblox نموذج البيانات كمصدر الحقيقة لحالة المكان، بحيث يمكنه محاكاة ورسمه على أجهزة العميل. لمزيد من المعلومات حول كيفية تفسير محرك Roblox لنموذج البيانات، انظر وقت تشغيل العميل - الخادم.
الكائنات
تقوم بتحديد وتنظيم الكائنات في نموذج البيانات لوصف مكان في Roblox. كل كائن في Roblox يرث من فئة Instance، التي تحدد خصائص وطرق وأحداث عامة شائعة لجميع الكائنات. كما تحدد الكائنات أيضًا خصائصها الخاصة بناءً على الوظائف التي تقدمها. هناك العديد من الفئات من الكائنات مع مجموعة واسعة من الاستخدامات، لكنك ستعمل غالبًا مع كائنات BasePart و LuaSourceContainer، والتي يُشار إليها عمومًا بالأجزاء والسكربتات.
للحصول على قائمة شاملة بجميع ميزات محرك Roblox، راجع وثائق المرجع.
الكتل البنائية ثلاثية الأبعاد
BasePart هو الفئة الأساسية للكتل البنائية ثلاثية الأبعاد المحاكية فعليًا في العالم. تحدد الخصائص والطرق الشائعة لجميع الأجسام المادية مع خصائص مثل الموضع والحجم والتوجه.
| الكائن | الوصف |
|---|---|
| Part | جزء بدائي part يمكن أن يتخذ شكل كتلة، كرة، أسطوانة، وتد، أو زاوية وتد. |
| MeshPart | شبكة مستوردة mesh من برامج نمذجة ثلاثية الأبعاد مثل Maya أو Blender. |
| TrussPart | شعاع شجرة يمكن للشخصيات تسلقه مثل السلم. |
بينما يمكنك نظريًا إنشاء لعبة Roblox تعمل بالكامل باستخدام أجزاء بسيطة، فمن المحتمل جدًا أن تستورد meshes وتجمع الأجزاء البدائية في كائنات وهياكل أكثر تعقيدًا من خلال النمذجة الصلبة.
السكربتات
يمكنك إضافة تفاعلية وسلوك إلى عالمك ثلاثي الأبعاد وتعريف المنطق باستخدام السكربتات. تكتب السكربتات بلغة البرمجة Luau للقيام بأشياء مثل تحريك الأجزاء، واستدعاء سكربتات أخرى، والاستجابة للأحداث. نظرًا لأن Roblox يعمل في نموذج العميل - الخادم، يمكنك تشغيل السكربتات على الخادم، أو العميل، أو جعلها تتواصل عبر حدود الشبكة.
- يمثل كائن Script سكربت يمكن تشغيله فقط على الخادم.
- يمثل كائن LocalScript سكربت يمكن تشغيله فقط على العميل.
- يمثل كائن ModuleScript سكربت قابل لإعادة الاستخدام يمكنك استخدامه من خلال require() من كلا من سكربتات الخادم والعميل.
لكي تتصرف السكربتات بشكل صحيح، يجب عليك وضعها في الحاويات الصحيحة في نموذج البيانات. لمزيد من المعلومات، انظر قسم الخادم و العميل.
تنظيم الكائنات
بينما لديك الكثير من المرونة في كيفية تنظيم نموذج البيانات الخاص بك، يتوقع محرك Roblox أن تكون بعض الكائنات في خدمات الحاوية المحددة التي هي كائنات لها سلوكيات محددة ويمكن أن تؤثر على سلوكيات الكائنات التي تحتوي عليها. تشمل الفئات الرئيسية لخدمات الحاوية ما يلي:
- Workspace — Workspace يخزن جميع الكائنات التي تُعرض في العالم ثلاثي الأبعاد.
- Replication — حاويات للمحتوى والمنطق الذي يتكرر بين الخادم والعميل، مثل ReplicatedStorage و ReplicatedFirst.
بالإضافة إلى ذلك، يمكنك تنظيم كائناتك بشكل أكبر باستخدام الكائنات التالية:
- المجلدات — Folder تستخدم لأغراض التنظيم ولا تحدد أي سلوك. على سبيل المثال، يمكنك استخدام المجلدات لجمع كائنات مماثلة مثل مجموعة من السكربتات في تخزين الخادم.
- النماذج — Model تستخدم بشكل رئيسي للتجميع الهندسي للأجزاء، مثل تجميع مجموعة مكتب تشمل كرسيًا وطاولة ومصباحًا. لتنظيم مجموعات أكثر تعقيدًا، يمكنك حتى تضمين نماذج داخل نماذج.
مساحة العمل
Workspace يحتوي على جميع الكائنات التي تشكل عالم المكان ثلاثي الأبعاد. يمكنك إضافة كائنات إلى مساحة العمل لتخصيص عالمك ثلاثي الأبعاد، مثل الأجزاء الأساسية، والأجزاء الشبكية، والنماذج. يقوم العملاء بعرض كل ما يظهر داخل هذه الحاوية وليس شيئًا خارجها، لذلك يمكنك التحكم فيما يراه المستخدمون ويتفاعلون معه في مكانك. على الرغم من عدم عرضها فعليًا، يمكنك أيضًا إضافة السكربتات التي تكون مرتبطة بالأجزاء والنماذج المرتبطة بها. بشكل افتراضي، يتم تعبئة مساحة العمل مسبقًا بكائن Terrain و Camera.
الكاميرا
تحدد Camera كيف يرى العميل العالم ثلاثي الأبعاد. بشكل افتراضي، هناك كاميرا واحدة في مساحة العمل، لكن يمكنك إضافة عدة كائنات كاميرا لإنشاء وجهات نظر ووجهات نظر مختلفة. يأخذ كل عميل هذه الإعدادات وينشئ عرض كاميرته الخاصة التي لا يمكن للخادم تعديلها مباشرة.
على سبيل المثال، يمكنك ضبط الكاميرا لتتبع تحركات المستخدم أو البقاء ثابتة في موقع معين. يمكنك أيضًا ضبط زاوية الرؤية، والمسافة، والزاوية لإنشاء تأثيرات بصرية مختلفة حول كيف يرى المستخدمون عالمك ثلاثي الأبعاد.
لمزيد من المعلومات، انظر تخصيص الكاميرا.
التضاريس
تتيح لك Terrain إنشاء المناظر الطبيعية لمكانك. يمكنك تطبيق مادة على التضاريس لمحاكاة البيئات الطبيعية المرغوبة، مثل العشب، والماء، والرمل، أو مادة مخصصة. على الرغم من أنه يمكنك الحصول على كائن تضاريس واحد فقط لعالمك ثلاثي الأبعاد وتطبيق مادة واحدة على هذا التضاريس، يمكنك استخدام محرر التضاريس لتعديل مناطق من التضاريس الخاصة بك.
لمزيد من المعلومات، انظر التضاريس البيئية.
البيئة
يمكن أن تجعل الإضاءة المخصصة عالمك ثلاثي الأبعاد أكثر تأثيرًا وواقعية. تحتوي خدمة Lighting على كائنات تتحكم في إعدادات الإضاءة العالمية لمكانك، مثل Atmosphere لمحاكاة التأثيرات الجوية أو Sky لتغيير الشمس والقمر والنجوم في بيئاتك. بالإضافة إلى ذلك، يمكنك استخدام مصادر الضوء لإصدار الضوء من كائنات محددة.
إضافة [صوت]../audio/index.md إلى ألعابك أمر حيوي أيضًا للنهوض بألعابك إلى آفاق جديدة. من خلال الاستخدام الاستراتيجي للصوت الموضعي وغير الموضعي، يمكنك غمر اللاعبين في عوالمك، وتوفير تغذية راجعة مفيدة لأفعالهم، وتوجيه انتباههم إلى ما يحتاجون إلى التركيز عليه لتحقيق أهدافهم بنجاح.
النسخ المتماثل
النسخ المتماثل هو عملية مزامنة حالة مكانك مع جميع العملاء المتصلين من قبل الخادم. يقوم محرك Roblox بنسخ البيانات، والفيزياء، ورسائل الدردشة بين الخادم والعميل بذكاء وبشكل تلقائي في العديد من الحالات، لكن يمكنك أيضًا تحديد كائنات معينة لنقلها عن طريق وضعها في حاويات محددة.
ReplicatedFirst
ReplicatedFirst يحتوي على كائنات تريد نسخها إلى عميل عند انضمامه إلى مكانك. عادةً ما يحتوي على كائنات أساسية لتهيئة لاعب، مثل كائنات LocalScript الخاصة بالعميل والأشياء المرتبطة بالسكربتات. يتم تكرار كل المحتوى في هذه الحاوية من الخادم إلى العميل لمرة واحدة فقط.
ReplicatedStorage
ReplicatedStorage يحتوي على كائنات متاحة لكل من الخادم والعملاء المتصلين. أي تغييرات تحدث على العميل تستمر ولكن لن يتم نسخها مرة أخرى إلى الخادم. يمكن للخادم الكتابة فوق التغييرات على العميل للحفاظ على التناسق. تُستخدم هذه الحاوية عادةً لكائنات ModuleScript التي تحتاج إلى المشاركة والوصول إليها من قبل كل من كائنات Script (على جانب الخادم) و LocalScript (على جانب العميل). بالإضافة إلى ذلك، يمكنك استخدام هذه الحاوية لنسخ أي كائنات لا تحتاج إلى الوجود في العالم ثلاثي الأبعاد حتى الحاجة، مثل ParticleEmitter للتكرار والتبني لجميع نماذج الشخصيات الواردة.
لمزيد من المعلومات حول كيفية عمل النسخ المتماثل، انظر وقت تشغيل العميل - الخادم.
الخادم
يحدد نموذج البيانات حاويات مخصصة للكائنات الخاصة بالخادم فقط التي لا يتم نسخها إلى العميل. وهذا يسمح للخادم بالتأثير على سلوك العميل وحالته دون كشف كائنات ولوجيك الخادم للعميل.
ServerScriptService
تحتوي ServerScriptService على كائنات Script، وكائنات ModuleScript التي تحتاجها السكربتات الخاصة بالخادم، وكائنات أخرى ذات صلة بالبرمجة التي تعني فقط للاستخدام على الخادم. إذا كانت سكربتاتك تتطلب كائنات أخرى غير برمجية، يجب عليك وضعها في ServerStorage. لا يتم نسخ السكربتات في هذه الحاوية إلى العملاء أبدًا، مما يسمح لك بالحصول على منطق آمن من جانب الخادم.
ServerStorage
تحتوي ServerStorage على كائنات تعني فقط للاستخدام على الخادم. يمكنك استخدام هذه الحاوية لتخزين الكائنات التي تريد تكرارها وتبنيها في مساحة العمل أو حاويات أخرى في وقت التشغيل. على سبيل المثال، يمكنك تخزين كائنات كبيرة مثل الخرائط في هذه الحاوية حتى تكون مطلوبة وتحريكها إلى مساحة العمل فقط عند الحاجة. ما يتيح لك تقليل حركة مرور الشبكة على العميل عند الانضمام الأول.
العميل
تهدف خدمات الحاوية الخاصة بالعميل إلى كائنات يتم تكرارها لكل عميل متصل. تشبه هذه الفئة من الحاويات تكرار كل عميل متصل وعادةً ما تحتوي على كائنات ثلاثية الأبعاد وكائنات LocalScript المرتبطة. جميع الكائنات التي تخزنها في هذه الحاويات غير مستمرة عبر الجلسات وتُعيد تعيينها في كل مرة ينضم فيها العميل مرة أخرى. يمكنك وضع كائنات في هذه الحاويات مثل واجهات المستخدم الخاصة باللاعب، والسكربتات الخاصة بالعميل، وغيرها من الكائنات التي تتعلق فقط بالعميل.
عندما يتصل عميل بالخادم، تستمع خدمة حاويات Players للمستخدمين الذين ينضمون إلى مكانك وتنشئ كائن Player لكل عميل. يقوم الخادم بنسخ الكائنات من حاويات العميل في نموذج البيانات المحرر إلى الموقع المقابل في نموذج البيانات في وقت التشغيل داخل كائن Players. تعرض الجدول التالي الحاوية الأصلية التي يقطنها في الحاوية والحاوية الناتجة التي يتم نسخها إلى العميل:
| نموذج البيانات المحرر | نموذج البيانات في وقت التشغيل | الملاحظات |
|---|---|---|
| StarterPack | Player.Backpack | سكربتات تضبط جرد اللاعب وعادةً ما تحتوي على كائنات Tool ولكن غالبًا ما تحتوي على سكربتات محلية أيضًا. |
| StarterGui | Player.PlayerGui | سكربتات يمكن أن تدير واجهة المستخدم المحلية للاعب. عندما يتجدد اللاعب، يتم إفراغ محتويات PlayerGui. يقوم الخادم بنسخ الكائنات داخل StarterGui إلى PlayerGui. |
| StarterPlayerScripts | Player.PlayerScripts | سكربتات عامة للاستخدام من قبل العميل. على سبيل المثال، إذا كنت تريد إنشاء تأثيرات خاصة على العميل عند تحقيق ظروف معينة، يمكنك وضع سكربت محلي في هذه الحاوية للقيام بذلك. لا يمكن للخادم الوصول إلى هذه الحاوية. |
| StarterCharacterScripts | Player.Character | سكربتات يتم نسخها إلى العميل عند ظهورهم. لا تستمر هذه السكربتات عندما يتجدد اللاعب. |
| ReplicatedFirst | يتم تكرار محتويات هذه الحاوية إلى جميع العملاء (ولكن ليس مرة أخرى إلى الخادم) في المقدمة، قبل أي شيء آخر. |
الدردشة
TextChatService
TextChatService يمثل الخدمة التي تتعامل مع مختلف المهام المتعلقة بالدردشة النصية داخل اللعبة، مثل إدارة القنوات، وتزيين الرسائل، وتصنيف النصوص، وإنشاء الأوامر، وتطوير واجهات دردشة مخصصة.
لمزيد من المعلومات، انظر نظرة عامة على الدردشة النصية.
VoiceChatService
VoiceChatService يمثل ميزة الدردشة الصوتية المستندة إلى القرب التي تحاكي التواصل الواقعي اعتمادًا على بعدك عن المستخدمين الآخرين. يمكنك استخدام هذه الخدمة لتبديل الميزة تشغيلًا وإيقافًا.
لمزيد من المعلومات، انظر الدردشة الصوتية.
المجلدات والنماذج
هناك طريقتان رئيسيتان لتجميع الكائنات في نموذج البيانات: المجلدات و النماذج. كلاهما حاويات للكائنات، لكن لديه أغراض مختلفة.
- المجلدات هي الأفضل لتخزين أقسام من بيئة، مثل اللوبي أو ساحة القتال.
- النماذج تُستخدم لمجموعات من الكائنات، مثل مجموعة مكتب تشمل كرسيًا وطاولة ومصباحًا. لتنظيم مجموعات أكثر تعقيدًا، قم بتعشيش النماذج داخل النماذج.
يجب عليك دائمًا تسمية كائناتك بشكل وصفي. هذا يجعل من السهل البحث وتعديل الكائنات لاحقًا إذا لزم الأمر.

