مكتبة وسائط متعددة بسيطة وسريعة

مكتبة الوسائط المتعددة البسيطة والسريعة ( SFML ) هي مكتبة لتطوير البرامج عبر الأنظمة الأساسية مصممة لتوفير واجهة برمجة تطبيقات بسيطة (API) لمكونات الوسائط المتعددة في أجهزة الكمبيوتر. تمت كتابته بلغة C ++ مع روابط متاحة لـ Ada وC وCrystal وD و Euphoria و Go وJava وJulia و. NET وNim وOCaml وPython وRuby وRust . تم توفير منافذ الأجهزة المحمولة التجريبية لنظامي التشغيل Android وiOS مع إصدار SFML 2.2.

يتعامل SFML مع إنشاء النوافذ وإدخالها ، وإنشاء سياقات OpenGL وإدارتها. كما يوفر أيضًا وحدة رسومات لتسريع الأجهزة البسيطة لرسومات الكمبيوتر ثنائية الأبعاد والتي تتضمن عرض النص باستخدام FreeType ، وهي وحدة صوتية تستخدم OpenAL ووحدة شبكة لاتصالات بروتوكول التحكم في الإرسال الأساسي (TCP) وبروتوكول مخطط بيانات المستخدم (UDP).

SFML هو برنامج مجاني ومفتوح المصدر يتم توفيره بموجب شروط ترخيص zlib / png . وهي متوفرة على Linux وmacOS وWindows وFreeBSD . تم إصدار الإصدار الأول v1.0 في 9 أغسطس 2007 ، وتم إصدار أحدث إصدار v2.5.1 في 15 أكتوبر 2018.

هيكلة البرمجيات

الوحدات 
يتكون SFML من وحدات مختلفة:

 النظام - فئات سلسلة المتجهات وUnicode ، ومرافق التشعب المحمولة والمؤقت
 النافذة - إدارة النافذة وجهاز الإدخال بما في ذلك دعم أجهزة التحكم وإدارة سياق OpenGL
 الرسومات - تسريع الأجهزة للرسومات ثنائية الأبعاد بما في ذلك النقوش المتحركة والمضلعات وعرض النص
 الصوت - تشغيل وتسجيل الصوت المكاني المسرع بالأجهزة
 الشبكة - مآخذ شبكة TCP و UDP ، ومرافق تغليف البيانات ، وفئات HTTP وFTP

في حين أن وحدة الرسومات هي إحدى الميزات الرئيسية لـ SFML ، فإن المطورين المهتمين فقط بإنشاء بيئة للبرمجة مباشرة في OpenGL يمكنهم القيام بذلك باستخدام وحدة Window بمفردها بدون وحدة الرسومات. وبالمثل ، يمكن أيضًا استخدام الوحدات النمطية الأخرى بشكل مستقل عن بعضها البعض ، باستثناء وحدة النظام التي تستخدمها جميع الوحدات.

ارتباطات اللغة 
تمت كتابة SFML بلغة C ++ وتوفر واجهة C ++ (كما أنها توفر واجهة C من خلال ربط CSFML الرسمي). توجد العديد من روابط اللغة التي تتيح استخدام SFML في لغات البرمجة الأخرى.

يسرد هذا الجدول الارتباطات المدعومة لـ SFML  .

الوظائف الإضافية غير الرسمية 
يوفر SFML الوظائف الأساسية التي يمكن بناء البرامج عالية المستوى عليها. توجد مكتبات إضافية توفر دعمًا إضافيًا لواجهات المستخدم الرسومية (GUI) ،  الإضاءة ثنائية الأبعاد ،  أنظمة الجسيمات والرسوم المتحركة ،  تشغيل الفيديو  والخرائط .

الاستقبال والتبني 
يتم استخدام SFML بشكل أساسي من قبل مطوري ألعاب بقصد الترفيه، ومطوري ألعاب الفيديو المستقلين في الشركات الصغيرة ، والشركات الناشئة التي لاتتكون من العديد من المطورين. نظرًا لأن SFML لا تتطلب كتابة كميات كبيرة من التعليمات البرمجية ، فقد تم اعتمادها أيضًا من قبل العديد من المشاركين في Ludum Dare . مقارنةً بالمكتبات القديمة مثل Simple DirectMedia Layer (SDL) و Allegro ، فإن قاعدة مستخدمي SFML صغيرة نسبيًا ولكنها تنمو.  ، تم تمييز مستودع برامج GitHub الخاص به بواسطة 6549 مستخدمًا.

تم استخدام SFML في التدريس في الجامعات وفي المشاريع العلمية.

مراجع 

تطوير ألعاب الفيديو
برمجيات حرة
برمجيات متعددة المنصات
مكتبات سي++
مكتبات صوتية
واجهات برمجة التطبيقات