مكتبة وسائط متعددة بسيطة وسريعة
مكتبة الوسائط المتعددة البسيطة والسريعة ( 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 من وحدات نمطية متنوعة:
- النظام – فئات السلاسل المتجهة واليونيكود ، ووظائف الترابط المحمولة والمؤقت
- نافذة – إدارة النوافذ وأجهزة الإدخال بما في ذلك دعم عصي التحكم ، وإدارة سياق OpenGL
- الرسومات – تسريع معالجة الرسومات ثنائية الأبعاد باستخدام الأجهزة، بما في ذلك الصور النقطية والمضلعات وعرض النصوص.
- الصوت – تشغيل وتسجيل الصوت المكاني المُسرّع بواسطة الأجهزة
- الشبكة – منافذ شبكة TCP وUDP ، وآليات تغليف البيانات، وفئات HTTP و FTP
على الرغم من أن وحدة الرسومات تُعدّ إحدى الميزات الرئيسية لـ 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.js | Node.js | 2.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 ]
أمثلة على استخدام ألعاب الفيديو
- لعبة Atom Zombie Smasher ، [ 24 ] لعبة استراتيجية في الوقت الحقيقي .
- Away Team,[25]SimulationInteractive Fiction game.
- Chesster,[26]puzzle game.
- Cosmoscroll,[27] free open-source space-based shoot 'em up game.
- Crea,[28] moddable 2D sandbox game.
- Enchanted Forest[29]
- Extreme Tux Racer,[30] free open-source arctic racing game featuring Tux (using SFML since version 0.7).
- GravytX The Gravytoid,[31] 2D action-platform, adventure game for Web, Mobile and PC.
- HolySpirit,[32] 3D isometrichack and slash game.
- Hope,[33] point and click adventure game (like Myst).
- I Can Transform,[31] 2D action-platform, multiplayer (playable also in solo) game for Web, Mobile and PC.
- Jin Conception,[34] 2D pixel art JRPG for Nintendo Switch.
- KeeperRL,[35] dungeon simulator with rogue-like and RPG elements.
- Kroniax,[36] minimalistic side-scroller, and the first SFML game for Android.
- Limit Theory,[37] infinite, proceduralspace game.
- M.A.R.S.,[38] multiplayer shoot 'em up game.
- Moonman,[39] pixel art exploration sandbox game.
- Open Hexagon,[40] free open-source Super Hexagon clone.
- Ovid The Owl,[41] puzzle platform game.
- Pioneers,[42]turn based exploration game with some RPG elements.[29]
- Postmortem: one must die,[43] narrative adventure game.
- Project Black Sun,[44] retro 2D side-scrolling video game.
- TacWars ، [ 45 ] لعبة ألغاز RPG تضع الأقزام في مواجهة العفاريت.
- لعبة The Duke ، [ 46 ] لعبة منصات حركية.
- لعبة إطلاق النار على إسحاق ، [ 47 ] لعبة إطلاق نار عمودية.
- Vagante ، [ 48 ] لعبة منصاتأكشن RPG .
- Zloxx ، [ 49 ] لعبة منصات ثنائية الأبعاد.
توجد أمثلة أخرى للألعاب التي تستخدم SFML مدرجة على موقع IndieDB . [ 50 ]
استخدام برامج أخرى
- Aquila ، [ 51 ] مكتبة معالجة الإشارات الرقمية مفتوحة المصدر (DSP) للغة C++.
- Otter مؤرشف في 2014-12-10 في Wayback Machine ، [ 52 ] إطار عمل ثنائي الأبعاد C# مبني على SFML 2.
- GDevelop ، [ 53 ] برنامج مفتوح المصدر لإنشاء الألعاب.
- محرك الانغماس مؤرشف في 2015-02-12 في Wayback Machine ، [ 54 ] أداة لتصور المناظر الطبيعية والهندسة المعمارية المفصلة.
- is::Engine ، [ 55 ] محرك ألعاب ثنائي الأبعاد مكتوب بلغة C++ لأجهزة Nintendo Switch والويب (HTML 5) والهواتف المحمولة وأجهزة الكمبيوتر.
انظر أيضاً
مراجع
- ↑ "الترخيص" .
- ↑ "GitHub - SFML/SFML: مكتبة وسائط متعددة بسيطة وسريعة" . GitHub . 14 ديسمبر 2021.
- 1 2 "الروابط (SFML / تنزيل)" . SFML . تم الاسترجاع في 13 نوفمبر 2014 .
- ↑ "سجل التغييرات (SFML / التطوير)" . تم الاطلاع عليه بتاريخ 18 ديسمبر 2014 .
- ↑ "استبدال OpenAL بـ miniaudio" . GitHub . تم الاطلاع عليه بتاريخ 25-12-2024 .
- ↑ غوميلا، لوران. "SFML 2.1 (SFML / تنزيل)" . SFML . تم الاطلاع عليه بتاريخ 9 أغسطس 2014 .
- ↑ "SFML/Config.cmake at f24ca9a84012531cf886f72354c1f88341dd7ac7 · SFML/SFML" . GitHub . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
- ↑ "إصدار SFML 3.0.0 · SFML/SFML" . GitHub . تم الاطلاع عليه بتاريخ 25-12-2024 .
- ↑ "SFGUI" . SFGUI. مؤرشف من الأصل في 17 فبراير 2020. تم الاسترجاع في 13 نوفمبر 2014 .
- ↑ "TGUI" . TGUI . تم الاسترجاع في 13 نوفمبر 2014 .
- ↑ "hovatterz/light" . GitHub . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
- ↑ "بروميون :: ثور" . جان هالر . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
- ↑ "sfeMovie" . sfeMovie . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
- ↑ "محمل خرائط SFML المُجزأ | SourceForge.net" . SourceForge . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
- ↑ "SFML وVisual Studio" . www.sfml-dev.org.
- ^ "sfml | لودوم دير" . لودوم داري . تم الاسترجاع 13 نوفمبر 2014 .
- ↑ "SFML/SFML" . GitHub . تم الاطلاع عليه بتاريخ 25 ديسمبر 2024 .
- ↑ "إعداد SFML" . جامعة ماري واشنطن . مؤرشف من الأصل في 25 مارس 2018. تم الاطلاع عليه في 13 نوفمبر 2014 .
- ↑ "مركز رينسيلار للبرمجيات مفتوحة المصدر" . معهد رينسيلار للفنون التطبيقية . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
- ↑ "CSCI 261 - مفاهيم البرمجة" . كلية كولورادو للمناجم . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
- ↑ "مقرر علوم الحاسوب 464: رسومات الحاسوب" . جامعة ولاية بويز . مؤرشف من الأصل بتاريخ 13 نوفمبر 2014. تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
- ↑ "مجموعة الحوسبة التفاعلية | Comp4spr14 / PS5b" . جامعة ماساتشوستس لويل . مؤرشف من الأصل في 17 فبراير 2023. تم الاطلاع عليه في 13 نوفمبر 2014 .
- ↑ "الصفحة الرئيسية لتيانيو تشنغ" . جامعة تكساس في أوستن . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
- ↑ تشونغ، بريندن (20 أغسطس 2011). "تقنية زومبي الذرة « أخبار بليندو" . ألعاب بليندو . تم الاسترجاع في 9 أغسطس 2014 .
- ↑ "فريق الاستكشاف - خيال علمي تفاعلي" . 7 يوليو 2016. تم الاطلاع عليه في 1 أبريل 2020 .
- ↑ "لعبة الشطرنج [ لعبة ألغاز SFML ] " . 18 أكتوبر 2011. تم الاطلاع عليه في 13 نوفمبر 2014 .
- ↑ "cosmoscroll - لعبة إطلاق نار تعتمد على مكتبة SFML. - Github" . GitHub . تم الاطلاع عليه بتاريخ 19 يوليو 2015 .
- ↑ "تحديث التطوير - الإضاءة والحفظ | ألعاب الحصار" . ألعاب الحصار. 3 أبريل 2012. تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
- 1 2 "كنز القراصنة والغابة المسحورة" . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
- ↑ "أخبار عن سباق التاكسي المتطرف" . مراجعة 698. 27 أغسطس 2017. تم الاطلاع عليه بتاريخ 12 سبتمبر 2017 .
- 1 2 "أستطيع أن أتحول" . تم الاطلاع عليه بتاريخ 9 نوفمبر 2018 .
- ↑ "لعبة HolySpirit لنظام ويندوز | ديسورا" . ديسورا . ١٣ نوفمبر ٢٠١٤. تم الاطلاع عليه بتاريخ ١٩ يوليو ٢٠١٥ .
- ↑ "الأسئلة الشائعة - مدونة هوب ديف" . 11 أغسطس 2015. تم الاطلاع عليه بتاريخ 11 أغسطس 2015 .
- ↑ "مفهوم جين" . صحيفة ديلي ميرور . 5 يونيو 2021. تم الاطلاع عليه بتاريخ 11 مايو 2022 .
- ↑ "miki151/keeperrl" . GitHub . تم الاطلاع عليه بتاريخ 11 يناير 2015 .
- ↑ "لعبة Kroniax متوفرة في متجر Play!" . تم الاطلاع عليها بتاريخ 15 نوفمبر 2014 .
- ↑ "منتديات نظرية الحد • عرض الموضوع - SFML::Texuring" . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
- ↑ "MARS - لعبة إطلاق نار سخيفة - إصدار MARS 0.7.2 لإصلاح الأخطاء" . MARS، 26 أبريل 2011. تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
- ↑ "SFML 2.0 | BP | أنا أصنع ألعاب الفيديو" . بن بورتر . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
- ↑ "Open Hexagon - لعبة سريعة الإيقاع مليئة بالتحديات" . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
- ↑ "LZR Ovid the Owl" . ليران ز. رافايلي . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
- ^ "ملاحظات تطوير Eigen" . إيجين لينك . تم الاسترجاع 13 نوفمبر 2014 .
- ↑ "أدوات وموارد لصنع لعبة مستقلة | موقع Koobazaur's Domain" . جاكوب كاستالسكي. 20 أبريل 2013. تاريخ الاطلاع: 13 نوفمبر 2014 .
- ↑ "الإصدار 1.0.2 متوفر الآن لأجهزة الكمبيوتر الشخصية وأنظمة لينكس - لعبة Project Black Sun - قاعدة بيانات الألعاب المستقلة" . قاعدة بيانات الألعاب المستقلة . 20 ديسمبر 2011. تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
- ↑ "الصفحة الرئيسية للعبة ألغاز تقمص الأدوار TacWars" . فيسبوك .
- ↑ "الدوق" . 8 يونيو 2009. تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
- ↑ "فيليب أوفرمان » إطلاق النار على إسحاق" . فيليب أوفرمان . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
- ↑ "فاجانتي | أدوات المهنة" . لعبة فاجانتي. 3 ديسمبر 2013. مؤرشف من الأصل في 13 نوفمبر 2014. تم الاطلاع عليه في 13 نوفمبر 2014 .
- ↑ "Zloxx II - لعبة أكشن قفز وركض" . تم الاطلاع عليه بتاريخ 15 نوفمبر 2014 .
- ↑ sfml/games
- ↑ "تنزيل | أكويلا - مكتبة C++ لمعالجة الإشارات الرقمية" . زبيغنيو سيسيارز . تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
- ↑ "أوتر - إطار عمل ثنائي الأبعاد بلغة سي شارب مبني على مكتبة SFML 2" . كايل بولفر. مؤرشف من الأصل بتاريخ 10 ديسمبر 2014. تم الاطلاع عليه بتاريخ 13 نوفمبر 2014 .
- ↑ "الموقع الإلكتروني الشخصي لفلوريان ريفال" . فلوريان ريفال . تم الاطلاع عليه بتاريخ 14 نوفمبر 2014 .
- ↑ "أخبار سارة لـ ImmersionEngine" . فيسبوك . تم الاطلاع عليه بتاريخ 12 فبراير 2015 .
- ↑ "is::Engine - محرك ألعاب ثنائي الأبعاد مكتوب بلغة C++ لنظامي Android والكمبيوتر الشخصي" . إيس داودا . تم الاطلاع عليه بتاريخ 19 فبراير 2020 .
للمزيد من القراءة
- جان هالر، هنريك فوجيليوس هانسون، أرتور موريرا: تطوير ألعاب SFML ، Packt Publishing، ISBN 1-849696-84-5
- http://www.lifehacker.com.au/2013/02/xna-is-dead-3-alternatives-that-let-you-use-your-c-and-net-skills/
- https://www.binpress.com/tutorial/creating-a-city-building-game-with-sfml/137
- http://www.gamefromscratch.com/page/Game-From-Scratch-CPP-Edition-The-Introduction.aspx
روابط خارجية
- واجهات برمجة التطبيقات
- مكتبات الصوت
- مكتبات C++
- برامج متعددة المنصات
- مكتبات الرسومات
- واجهات برمجة تطبيقات لينكس
- واجهات برمجة تطبيقات نظام التشغيل macOS
- البرامج التي تستخدم ترخيص zlib
- برنامج تطوير ألعاب الفيديو لنظام التشغيل لينكس
- واجهات برمجة تطبيقات ويندوز
