MML هي لغة ترميز لوصف الكائنات والخبرات التفاعلية ثلاثية الأبعاد متعددة المستخدمين على أساس HTML.
تفضل بزيارة https://mml.io/ للبدء مع MML.
تحقق من https://github.com/mml-io/mml-starter-project لبدء تشغيل مستند MML لنفسك.
تحقق من https://github.com/mml-io/mml-playground للعثور على مثال على تجربة ويب ثلاثية الأبعاد يمكن أن تشمل مستندات MML.
"مكدس MML" هو مزيج من قطعتين رئيسيتين عادة ما يتم دمجهما معًا:
MML (لغة) - عناصر وسمات HTML ثلاثية الأبعاد لوصف الكائنات والخبرات ثلاثية الأبعاد
DOM (الشبكات) - مكتبة وشبكة بروتوكول لتشغيل مستندات MML/HTML على خادم حتى يتمكن العديد من المستخدمين من التفاعل معهم في وضع متعدد المستخدمين.
على سبيل المثال
<m-cube id = "my-cube" color = "red"> </m-cube> <script>
const cube = document.getElementById ('my-cube') ؛
cube.addeventListener ('click' ، () => {cube.setattribute ('color' ، 'Blue') ؛
}) ؛ </script>يوفر HTML و JavaScript في شكل DOM (نموذج كائن الوثيقة) أساسًا حاليًا لوصف وتوضيح التسلسل الهرمي للعناصر. يستخدم MML هذا الأساس مع عناصر وسمات جديدة للسماح بوصف المفاهيم ثلاثية الأبعاد.
في حالة الاستخدام الشائع ، يتم تشغيل مستند MML على خادم ويتم ملاحظته وتفاعله من قبل مستخدمين متعددين.
يتم تحقيق هذه الإمكانية عن طريق تشغيل مستند MML على خادم باستخدام مكتبة (مصممة صراحةً لـ MML) تسمى "Networked DOM".
مكونات الخادم والشبكة اللازمة لدعم وضع المستخدم متعدد المستخدمين مستقلين عن إضافات MML إلى HTML (ويمكن استخدامها مع HTML ثنائي الأبعاد العادي).
يمكن بعد ذلك استخدام خادم DOM المتواصل مع الشبكة وعميل MML للسماح للمستخدمين المتعددين بالتفاعل مع نفس مثيل كائن في نفس الوقت ، وجلب هذه الكائنات إلى محركات الألعاب وتجارب العالم الافتراضية.
الألفة : يعتمد MML على HTML ، الطريقة الأكثر شيوعًا لمستندات المؤلف للويب. هذا يجعلها ودودة لمجموعة واسعة من المبدعين.
النظام الإيكولوجي : النظام الإيكولوجي HTML واسع ، ولأن MML يعتمد على HTML ، يمكن للمبدعين الاستفادة من هذا النظام الإيكولوجي الحالي للمكتبات والأطر وموارد التعلم.
قابلية النقل : يمكن أن تعمل مستندات MML في أي متصفح ويب حديث ، مما يجعلها سهلة المشاركة والعرض.
القدرة على التوافق : يمكن أن تتكون مستندات MML من مستندات متعددة تعمل على خوادم مختلفة ، مما يجعل من الممكن إنشاء كائنات عالمية افتراضية معقدة دون الحاجة إلى توفير جميع الطاقة والحساب الفني على خادم واحد.
MML هي مجموعة من عناصر HTML والسمات التي يمكن استخدامها لوصف الكائنات والخبرات ثلاثية الأبعاد.
يمكن استخدام هذه العناصر والسمات بدون شبكات. ومع ذلك ، عندما يتم تشغيل مستند HTML بما في ذلك علامات MML على خادم ويتم تعريضه عبر WebSocket ، يمكن للمستخدمين التفاعل مع نفس مثيل المستند في نفس الوقت.
./packages/mml-web - Web Three.JS MML Library
./packages/mml-web-client-Web Three.js MML Client
./packages/mml-web-runner-عداء الويب (لتشغيل مستندات MML في متصفح الويب بدلاً من خادم)
./packages/schema - مخطط MML في لغة تعريف مخطط XML (XSD)
./packages/schema-validator - حزمة للتحقق من صحة مستند MML باستخدام مخطط MML
تعتمد MML على مجموعة من المكتبات (التي تم تصميمها صراحةً لـ MML) والتي تسمى "Networked DOM".
مكونات الخادم والشبكة اللازمة لدعم وضع المستخدم متعدد المستخدمين مستقلين عن إضافات MML إلى HTML (ويمكن استخدامها مع HTML ثنائي الأبعاد العادي).
دوم الشبكات
./packages/networked-dom-web-مكتبة DOM المتواجئة على شبكة الإنترنت
./packages/networked-dom-web-client-عميل DOM المتواضع على شبكة الإنترنت
./packages/networked-dom-web-web-runner-DOM Runner على شبكة الإنترنت (لتشغيل مستندات DOM الشبكي في متصفح ويب بدلاً من خادم)
./packages/networked-dom-protocol-تعريف بروتوكول DOM WebSocket
./packages/observable-dom-common-DOM يمكن ملاحظته
./packages/observable -dom - مكتبة DOM (تنفيذ JSDOM)
./packages/networked-dom-document-مكتبة مستندات DOM المتواجدة الشبكي
يحتوي هذا الريبو على المكتبات وتعريفات المخطط لـ MML. الطريقة الأكثر ترجيحًا لاستخدام هذا الريبو هي استنساخه كمكتبات للمشاريع الأخرى.
استنساخ الريبو
npm install
npm run iterate ببناء وتبدأ بناء الحزم بشكل تدريجي من مصادر المصادر
يجب أن تبدأ الخوادم للحصول على أمثلة:
http: // localhost: 7070 - mml مثال خادم
http: // localhost: 7071 - خادم مثال DOM المربوط بالشبكة
لاستخدام أي من المكتبات في هذا الريبو في مشروع آخر ، يمكنك استخدام npm link لجعل هذه التبعيات قابلة للارتباط بمشروع NPM الآخر.
يقوم npm run link-all بتشغيل npm link في جميع الحزم المنشورة المحتملة للسماح باستخدام التبعيات المحلية لتتطور معها. كما سيطبع الأوامر لربط التبعيات.
يوضح الرسم البياني أدناه بنية المستوى العالي لنظام MML عند استخدامها في متصفح الويب مع خادم DOM المتواضع الذي يعمل على تشغيل مستند MML.
الرسم البياني TD
خادم DOM المتواصل مع الشبكات الفرعية
خادم الشبكات [خادم DOM NOCKTING]
Network-DOM-Document [مستند DOM المتواصل مع الشبكات]
jsdom [jsdom]
WebSocket [WebSocket Handler]
خادم الشبكات--> شبكات-DOM-DOCUMENT
شبكات DOM-Document-> jsdom
نهاية
MML-Source ["MML Source Code (HTML)"]
MML-Source-> Network-DOM-Document
متصفح الويب الفرعي
متصفح الويب [متصفح الويب]
subgraph "تجربة الويب ثلاثية الأبعاد"
Three-JS-Scene [مشهد ثلاثة. JS]
عميل DOM المتصاعد بالشبكة الفرعية
شبكي--عميل [عميل DOM المتواصل مع الشبكات]
DOM ["DOM (HTML)"]
شبكات--العميل-> دوم
نهاية
مكتبة عميل Subgraph MML
متصفح الويب-MML-CLIENT [مثيل MML Remotendocument]
MML-Three-JS [MML Three.js]
MML-Three-JS-الأحداث-> متصفح الويب-MML-CLIENT
Web-Browser-MML-Client-> MML-Three-JS
نهاية
DOM-تم تقديمه بواسطة-> MML-Three-JS
MML-Three-JS-مؤلفة في-> Three-JS-Scene
نهاية
نهاية
الشبكات-العميل-> WS-ADDR
WS-ADDR-> WebSocket
WS-ADDR ["WS: // ..."]
WebSocket-> خادم الشبكات
متصفح الويب-> متصفح الويب-العميل
متصفح الويب-MML-CLIENT->--COMPLED-CLIENT تحميل