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

مكتبة الوسائط المتعددة البسيطة والسريعة ( SFML ) هي مكتبة برمجية متعددة المنصات مصممة لتوفير واجهة برمجة تطبيقات (API) بسيطة لمختلف مكونات الوسائط المتعددة في أجهزة الكمبيوتر. كُتبت بلغة C++ مع روابط متاحة للغات Ada و C و Crystal و D و Euphoria و Go و Java و Julia و. NET و Nim و OCaml و Python و Ruby و Rust و Node.js و Beef و Zuko . [ 3 ] أُتيحت نسخ تجريبية للهواتف المحمولة لنظامي Android و iOS مع إصدار SFML 2.2. [ 4 ]

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

SFML برنامج مجاني ومفتوح المصدر، مُرخص بموجب شروط رخصة zlib/png . وهو متوفر لأنظمة Linux و macOS و Windows و FreeBSD . [ 6 ] [ 7 ] صدرت النسخة الأولى v1.0 في 9 أغسطس 2007، بينما صدرت أحدث نسخة v3.0.0 في 21 ديسمبر 2024. [ 8 ]

هندسة البرمجيات

الوحدات

يتكون SFML من وحدات نمطية متنوعة:

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

روابط اللغة

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

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

اسملغةالإصدار المدعوم
ASFMLآدا2.6
CSFML 1ج2.6
لحم بقري ممتازلحم2.5
SFML.Net 1.شبكة2.6
CrSFMLكريستال2.6
bindbc-sfmlد2.5
DSFMLد2.1
EuSFML2نشوة2.4
csfml-fpcفري باسكال2.5
go-sfmlيذهب2.5.1
GoSFML2يذهب2.0
اختراقهاسكل2.3
JSFMLجافا2.2
CSFML.jlجوليا2.5.1
nim-csfmlنيم2.3
Ocsfmlأوكاميل2.2
OCaml-SFMLأوكاميل2.5.1
باس إس إف إم إلباسكال2.4
pySFMLبايثون2.3.2
تمت أرشفة rbSFML بتاريخ 27 مايو 2018 على موقع Wayback Machine.روبي2.3.2
rust-sfmlالصدأ2.6.1
zig-sfmlزيج2.6.1
sfml.jsNode.js2.5.1
zukoSFMLزوكو2.5

1. المجلدات الرسمية

إضافات غير رسمية

توفر مكتبة SFML الوظائف الأساسية التي يمكن بناء برامج عالية المستوى عليها . وتوجد مكتبات إضافية توفر دعمًا إضافيًا لواجهات المستخدم الرسومية (GUIs)، [ 9 ] [ 10 ] والإضاءة ثنائية الأبعاد ، [ 11 ] وأنظمة الجسيمات والرسوم المتحركة ، [ 12 ] وتشغيل الفيديو ، [ 13 ] وخرائط البلاطات . [ 14 ]

مثال

هذا مثال أساسي على لغة SFML مذكور في صفحة البرنامج التعليمي، والذي يرسم دائرة خضراء. [ 15 ]

#include <SFML/Graphics.hpp>استيراد std ؛باستخدام sf :: Color ؛ باستخدام sf :: CircleShape ؛ باستخدام sf :: Event ؛ باستخدام sf :: RenderWindow ؛ باستخدام sf :: VideoMode ؛int main () { RenderWindow window ( VideoMode ({ 200 , 200 }), "SFML works!" ); CircleShape shape ( 100.0f ); shape . setFillColor ( Color :: Green );بينما ( نافذة.مفتوحة ( ) ) { بينما ( حدث اختياري ثابت = نافذة.استطلاع الحدث ( )) { إذا ( الحدث - > هو < حدث :: مغلق > ( )) { نافذة.إغلاق ( ) ; } }window.clear ( ) ; window.draw ( shape ) ; window.display ( ) ; } }

الاستقبال والتبني

تُستخدم مكتبة SFML بشكل أساسي من قِبل مطوري الألعاب الهواة، ومطوري ألعاب الفيديو المستقلين الصغار ، والشركات الناشئة التي تضم عددًا محدودًا من المطورين. ولأن SFML لا تتطلب كتابة كميات كبيرة من التعليمات البرمجية، فقد اعتمدها أيضًا العديد من المشاركين في مسابقة Ludum Dare . [ 16 ] بالمقارنة مع المكتبات الأقدم مثل Simple DirectMedia Layer (SDL) و Allegro ، فإن قاعدة مستخدمي SFML صغيرة نسبيًا ولكنها في ازدياد. اعتبارًا من 25 ديسمبر 2024  وقد حظي مستودع برامجها على منصة GitHub بأكثر من 10000 نجمة من المستخدمين. [ 17 ]

استُخدمت لغة SFML في التدريس بالجامعات وفي المشاريع العلمية. [ 18 ] [ 19 ] [ 20 ] [ 21 ] [ 22 ] [ 23 ]

أمثلة على استخدام ألعاب الفيديو

توجد أمثلة أخرى للألعاب التي تستخدم SFML مدرجة على موقع IndieDB . [ 50 ]

استخدام برامج أخرى

انظر أيضاً

مراجع

  1. "الترخيص" .
  2. "GitHub - SFML/SFML: مكتبة وسائط متعددة بسيطة وسريعة" . GitHub . 14 ديسمبر 2021.
  3. 1 2 "الروابط (SFML / تنزيل)" . SFML . تم الاسترجاع في 13 نوفمبر 2014 .
  4. "سجل التغييرات (SFML / التطوير)" . تم الاطلاع عليه بتاريخ 18 ديسمبر 2014 .
  5. "استبدال OpenAL بـ miniaudio" . GitHub . تم الاطلاع عليه بتاريخ 25-12-2024 .
  6. غوميلا، لوران. "SFML 2.1 (SFML / تنزيل)" . SFML . تم الاطلاع عليه بتاريخ 9 أغسطس 2014 .
  7. "SFML/Config.cmake at f24ca9a84012531cf886f72354c1f88341dd7ac7 · SFML/SFML" . GitHub . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
  8. "إصدار SFML 3.0.0 · SFML/SFML" . GitHub . تم الاطلاع عليه بتاريخ 25-12-2024 .
  9. "SFGUI" . SFGUI. مؤرشف من الأصل في 17 فبراير 2020. تم الاسترجاع في 13 نوفمبر 2014 .
  10. "TGUI" . TGUI . تم الاسترجاع في 13 نوفمبر 2014 .
  11. "hovatterz/light" . GitHub . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
  12. "بروميون :: ثور" . جان هالر . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 . 
  13. "sfeMovie" . sfeMovie . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
  14. "محمل خرائط SFML المُجزأ | SourceForge.net" . SourceForge . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
  15. "SFML وVisual Studio" . www.sfml-dev.org.
  16. ^ "sfml | لودوم دير" . لودوم داري . تم الاسترجاع 13 نوفمبر 2014 .
  17. "SFML/SFML" . GitHub . تم الاطلاع عليه بتاريخ 25 ديسمبر 2024 .
  18. "إعداد SFML" . جامعة ماري واشنطن . مؤرشف من الأصل في 25 مارس 2018. تم الاطلاع عليه في 13 نوفمبر 2014 .
  19. "مركز رينسيلار للبرمجيات مفتوحة المصدر" . معهد رينسيلار للفنون التطبيقية . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
  20. "CSCI 261 - مفاهيم البرمجة" . كلية كولورادو للمناجم . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
  21. "مقرر علوم الحاسوب 464: رسومات الحاسوب" . جامعة ولاية بويز . مؤرشف من الأصل بتاريخ 13 نوفمبر 2014. تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
  22. "مجموعة الحوسبة التفاعلية | Comp4spr14 / PS5b" . جامعة ماساتشوستس لويل . مؤرشف من الأصل في 17 فبراير 2023. تم الاطلاع عليه في 13 نوفمبر 2014 .
  23. "الصفحة الرئيسية لتيانيو تشنغ" . جامعة تكساس في أوستن . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
  24. تشونغ، بريندن (20 أغسطس 2011). "تقنية زومبي الذرة « أخبار بليندو" . ألعاب بليندو . تم الاسترجاع في 9 أغسطس 2014 . 
  25. "فريق الاستكشاف - خيال علمي تفاعلي" . 7 يوليو 2016. تم الاطلاع عليه في 1 أبريل 2020 .
  26. "لعبة الشطرنج [ لعبة ألغاز SFML ] " . 18 أكتوبر 2011. تم الاطلاع عليه في 13 نوفمبر 2014 .
  27. "cosmoscroll - لعبة إطلاق نار تعتمد على مكتبة SFML. - Github" . GitHub . تم الاطلاع عليه بتاريخ 19 يوليو 2015 .
  28. "تحديث التطوير - الإضاءة والحفظ | ألعاب الحصار" . ألعاب الحصار. 3 أبريل 2012. تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
  29. 1 2 "كنز القراصنة والغابة المسحورة" . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
  30. "أخبار عن سباق التاكسي المتطرف" . مراجعة 698. 27 أغسطس 2017. تم الاطلاع عليه بتاريخ 12 سبتمبر 2017 .
  31. 1 2 "أستطيع أن أتحول" . تم الاطلاع عليه بتاريخ 9 نوفمبر 2018 .
  32. "لعبة HolySpirit لنظام ويندوز | ديسورا" . ديسورا . ١٣ نوفمبر ٢٠١٤. تم الاطلاع عليه بتاريخ ١٩ يوليو ٢٠١٥ .
  33. "الأسئلة الشائعة - مدونة هوب ديف" . 11 أغسطس 2015. تم الاطلاع عليه بتاريخ 11 أغسطس 2015 .
  34. "مفهوم جين" . صحيفة ديلي ميرور . 5 يونيو 2021. تم الاطلاع عليه بتاريخ 11 مايو 2022 .
  35. "miki151/keeperrl" . GitHub . تم الاطلاع عليه بتاريخ 11 يناير 2015 .
  36. "لعبة Kroniax متوفرة في متجر Play!" . تم الاطلاع عليها بتاريخ 15 نوفمبر 2014 .
  37. "منتديات نظرية الحد • عرض الموضوع - SFML::Texuring" . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
  38. "MARS - لعبة إطلاق نار سخيفة - إصدار MARS 0.7.2 لإصلاح الأخطاء" . MARS، 26 أبريل 2011. تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
  39. "SFML 2.0 | BP | أنا أصنع ألعاب الفيديو" . بن بورتر . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
  40. "Open Hexagon - لعبة سريعة الإيقاع مليئة بالتحديات" . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
  41. "LZR Ovid the Owl" . ليران ز. رافايلي . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
  42. ^ "ملاحظات تطوير Eigen" . إيجين لينك . تم الاسترجاع 13 نوفمبر 2014 .
  43. "أدوات وموارد لصنع لعبة مستقلة | موقع Koobazaur's Domain" . جاكوب كاستالسكي. 20 أبريل 2013. تاريخ الاطلاع: 13 نوفمبر 2014 .
  44. "الإصدار 1.0.2 متوفر الآن لأجهزة الكمبيوتر الشخصية وأنظمة لينكس - لعبة Project Black Sun - قاعدة بيانات الألعاب المستقلة" . قاعدة بيانات الألعاب المستقلة . 20 ديسمبر 2011. تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
  45. "الصفحة الرئيسية للعبة ألغاز تقمص الأدوار TacWars" . فيسبوك .
  46. "الدوق" . 8 يونيو 2009. تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
  47. "فيليب أوفرمان » إطلاق النار على إسحاق" . فيليب أوفرمان . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 . 
  48. "فاجانتي | أدوات المهنة" . لعبة فاجانتي. 3 ديسمبر 2013. مؤرشف من الأصل في 13 نوفمبر 2014. تم الاطلاع عليه في 13 نوفمبر 2014 .
  49. "Zloxx II - لعبة أكشن قفز وركض" . تم الاطلاع عليه بتاريخ 15 نوفمبر 2014 .
  50. sfml/games
  51. "تنزيل | أكويلا - مكتبة C++ لمعالجة الإشارات الرقمية" . زبيغنيو سيسيارز . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
  52. "أوتر - إطار عمل ثنائي الأبعاد بلغة سي شارب مبني على مكتبة SFML 2" . كايل بولفر. مؤرشف من الأصل بتاريخ 10 ديسمبر 2014. تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
  53. "الموقع الإلكتروني الشخصي لفلوريان ريفال" . فلوريان ريفال . تم الاطلاع عليه بتاريخ 14 نوفمبر 2014 .
  54. "أخبار سارة لـ ImmersionEngine" . فيسبوك . تم الاطلاع عليه بتاريخ 12 فبراير 2015 .
  55. "is::Engine - محرك ألعاب ثنائي الأبعاد مكتوب بلغة C++ لنظامي Android والكمبيوتر الشخصي" . إيس داودا . تم الاطلاع عليه بتاريخ 19 فبراير 2020 .

للمزيد من القراءة