لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 09/16/15 in مقالات البرمجة
-
رغم أنني لم أنجز بعد أي مشروع عملي بـ Ruby وما زلت مكتفيا في كل مشاريعي بالبرمجة بـ PHP، إلا أنني منذ ألقيت أول نظرة على لغة البرمجة روبي، سنة 2008، وأنا معجب بها بفضل ما تتميز به من سلاسة وقوة وما تضفيه على البرمجة من متعة. أما سبب عدم اعتمادي عليها حتى الآن في مشروع ما هو أنني لم أحتجها بعد بشكل جدي، فغالبا ما أنجز ما أريد بشكل سريع بواسطة PHP، خاصة أنه على مستوى المواقع الصغيرة، يبقى الحصول على استضافة المواقع المبرمجة بـ PHP أسهل وأرخص. كما هي العادة؛ الحاجة أم الاختراع. كان يوكيهيرو ماتسوموتو (Yukihiro Matsumoto) يبحث عن لغة برمجة تزيد من إنتاجيته، لغة تجعله يستمتع بالبرمجة. لم يجد، فبدأ التفكير في إبداع لغة برمجية جديدة سنة 1993 سماها روبي Ruby وأطلق أول نسخة عامة منها شهر ديسمبر 1995. استفادت روبي من مميزات لغات برمجة أخرى وأتت بمفاهيم جديدة لترفع من إنتاجية المبرمجين وتشعرهم بمتعة البرمجة، فحققت اللغة بذلك نجاحا كبيرا في اليابان، لكنها رغم ذلك، وبسبب عدم ترجمة وثائقها إلى الانجليزية، لم تستطع إثارة اهتمام المبرمجين من خارج اليابان إلا سنة 2000، واحتاجت بعد ذلك لخمس سنوات أخرى قبل أن تصبح ظاهرة عالمية بعد أن جاء المبرمج الدنماركي دافيد هاينماير هانسون، سنة 2005، بإبداعه الذي غير الكثير من مفاهيم تطوير مواقع وخدمات الويب؛ إطار العمل البرمجي روبي أون ريلز Ruby On Rails. يقول يوكيهيرو ماتسوموتو أن لغة روبي مصممة للإنتاجية وللمرح، وهي تركز على احتياجات الإنسان، وليس جهاز الكمبيوتر: «الناس في كثير من الأحيان، ولا سيما مهندسو الحاسب الآلي، يكون تركيزهم على الكمبيوتر. إنهم يعتقدون، "من خلال القيام بذلك، فإن الجهاز سوف يعمل بشكل أسرع. من خلال ذلك، فإن الجهاز يعمل بفعالية أكثر. من خلال ذلك، فإن الجهاز سيكون ويكون ويكون" ولكن في الحقيقة نحن بحاجة إلى التركيز على البشر وعلى كيفية كتابة وفهمنا للبرامج أو تطبيقات تعمل على الجهاز. نحن السادة (البشر). هم العبيد (الجهاز).» لذلك فإن تعابير اللغة بسيطة، سهلة الفهم وأكثر إنسانية. النتيجة دائما: نصوص برمجية أنيقة، سهلة القراءة والفهم. مع متعة بلا حدود خلال البرمجة. أفضل المصادر لتعلم روبي يمكنني أن أقول بأنني قرأت الكثير من كتب التقنية والبرمجة، عن لغات برمجة مختلفة، لكتاب مختلفين ومن ناشرين مختلفين. لكن أفضل كتاب -على الإطلاق- لشرح وتعليم لغة برمجية كان كتاب ”Beginning Ruby: From Novice to Professional“، يبدأ من البدايات؛ يشرح المفاهيم الأساسية ثم يتعمق تدريجيا حتى ينقلك من مستوى المبتدئين إلى مستوى المحترفين، بأسلوب سهل وممتع. بالنسبة إليّ، لو كتب المؤلف (Peter Cooper) أي كتاب آخر، حول التقنية أو البرمجة، فإني حتما سأشتريه مهما يكن موضوعه. هو شخص مبدع ونشيط في المجال التقني، وهو يحرر نشرة بريدية أسبوعية عن روبي، يجمع فيها أهم الأخبار، المقالات التعليمية وجديد المكتبات البرمجية الخاصة بروبي. بعد هذا الكتاب، يمكنك الانتقال إلى كتاب Programming Ruby 1.9 & 2.0 الذي يغوص عميقا في تفاصيل اللغة ويشرح وحداتها البرمجية الرئيسية جميعها. هذا الكتاب عبارة عن دليل مرجعي (reference manual) يمكنك العودة إليه في أي وقت تحتاج إلى الإلمام بتفصيلة معينة خاصة باللغة، ولا حاجة لقراءته كاملا من الغلاف إلى الغلاف. تزخر المكتبة البرمجية بكثير من الكتب التي تشرح لغة البرمجة روبي، لكن هاذين الكتابين يكفيان تماما لنقلك من مستوى المبرمج المبتدئ إلى الخبير المتمكن من كل تفاصيل روبي. لا حاجة لك لأن تقرأ كتبا أخرى. يمكنك قراءة وثائق المساعدة في الموقع الرسمي، ومتابعة النشرة البريدية، التي يحررها بيتر كوبر، لتبقى على إطلاع على أخبار اللغة وأبرز ما يكتب عنها. أفضل المصادر لتعلم روبي أون ريلز لا شك أن الفضل في الانتشار العالمي لروبي يعود إلى الإطار البرمجي Ruby On Rails، الذي أحدث ثورة في مجال تطوير تطبيقات الويب خلال فترة الفورة التي عرفتها تطبيقات ويب 2.0، حيث ساعد الإطار كل من لديه فكرة ما، وقدرة على تعلم البرمجة -ولو قليلا- على تنفيذ الفكرة بسرعة كبيرة وإطلاق الموقع للاستخدام خلال أيام أو أسابيع معدودة. إذا أردت أن تلقي نظرة سريعة على إطار ريلز، وتعلمه لتنفيذ مشروع صغير، فلن تجد أفضل من كتاب ”Ruby on Rails Tutorial: Learn Web Development with Rails“، الذي يقدم كل ما يحتاج إليه الوافد الجديد لعالم ريلز، من تثبيت النظام إلى رفع الموقع إلى الإنترنت. الكتاب متوفر للقراءة مجانا من الإنترنت. أو يمكنك الاكتفاء بالدليل التعليمي المقدم من فريق ريلز Rails Guides. حين تحتاج إلى تعميق معرفتك بريلز، أو تحترف البرمجة به، فإن الكتاب الأفضل هو ”Agile Web Development with Rails“، الذي كان أول وأفضل كتاب يصدر عن ريلز، ولعله ما يزال الأفضل. يبدأ الكتاب مباشرة بنموذج عملي لبناء تطبيق ويب، خطوة بخطوة مع شرح كاف لكل مرحلة. ثم في الجزء الثاني من الكتاب ينقلك لتتعمق أكثر في التفاصيل الدقيقة. خلافا للكتب التي نوهت عنها هنا تتوفر عدد من الدروس المرئية لكل من ريلز وروبي، إضافة إلى كثير من المقالات التعليمية. لكني لم أطلع عليها، فأنا بالأساس من هواة التعلم من الكتب، لذلك لم أذكر تلك المصادر واكتفيت بذكر الكتب، التي أراها الأفضل على الإطلاق. تحديثات: 14/08/2017: تم تحديث روابط الكتب لآخر الإصدارات 04/03/2018: تقدم أكاديمية حسوب دورة شاملة لتعلم تطوير تطبيقات الويب باستخدام لغة Ruby1 نقطة
-
نبذة مختصرة عن صناعة الألعاب وتطويرها لعل صناعة الألعاب هي إحدى أصعب الصناعات في هذا العصر، وذلك من عدة نواح تبدأ بالتحديات التقنية، مرورا بجمهور صعب الإرضاء ولا يرحم حتى كبريات الشركات إن لم تكن منتجاتها بالمستوى المطلوب، وليس انتهاءا بالمنافسة الشرسة ونسب الفشل العالية وصعوبة تحقيق أرباح تغطي تكاليف الإنتاج المرتفعة. على الجانب الآخر يوجد ميزات لهذه الصناعة تجعل من النجاة فيها أمرا ممكنا، فعلى الجانب التقني مثلا، لا تخلوا الغالبية العظمى من الألعاب من وظائف متشابهة وأنماط متكررة من معالجة البيانات، مما يجعل إعادة استخدام الوحدات البرمجية للألعاب السابقة من أجل إنشاء ألعاب جديدة أمرا ممكنا، وهذا بدوره يساهم في تذليل العقبات التقنية واختصار الوقت والجهد. عندما تتحدث عن صناعة لعبة، فأنت هنا تذكر العملية الكبرى والتي تنطوي على عشرات وربما مئات المهام التي يجب أن تنجزها في مجالات عدة. فصناعة لعبة تعني إنتاجها وتسويقها ونشرها وكل ما يتعلق بهذه العمليات من إجراءات وخطوات إدارية وتقنية وفنية ومالية وقانونية. على أية حال فإن ما يهمنا في سلسلة الدروس هذه هو الجانب التقني وهو تطوير اللعبة، وهي عملية بناء المنتج البرمجي النهائي بكافة مكوّناته. هذه العملية لا تشمل بالضرورة تصميم اللعبة، حيث أن عملية التصميم ذات منظور أوسع وتركز على أمور مثل القصة والسمة العامة للعبة وأشكال المراحل وطبيعة الخصوم، بالإضافة إلى قواعد اللعبة وأهدافها وشروط الفوز والخسارة. بالعودة لعملية تطوير اللعبة، نجد أن العديد من الاختصاصات والمهارات تساهم في هذه العملية، فهناك الرسامون ومصممو النماذج وفنيو التحريك ومهندسو الصوت والمخرج، إضافة – بالطبع – للمبرمجين. هذه النظرة الشاملة مهمة لنعرف أن دور المبرمج في إنتاج اللعبة ليس سوى دورا مكمّلا لأدوار غيره من أعضاء الفريق، ولو أن هذه الصورة بدأت تتغير بظهور المطورين المستقلين Indie Developers والذين يقومون بالعديد من المهام إلى جانب البرمجة. لماذا نستخدم محركات الألعاب؟ لو أردنا الحديث بتفصيل أكبر عن دور المبرمجين في صناعة الألعاب، سنجد أنه حتى على مستوى البرمجة نفسها هناك أدوار عديدة يجب القيام بها: فهناك برمجة الرسومات وهناك أنظم الإدخال وأنظمة استيراد الموارد والذكاء الاصطناعي ومحاكاة الفيزياء وغيرها مثل مكتبات الصوت والأدوات المساعدة. كل هذه المهام يمكن إنجازها على شكل وحدات برمجية قابلة لإعادة الاستخدام كما سبق وذكرت، وبالتالي فهذه الوحدات تشكل معا ما يعرف بمحرك الألعاب Game Engine. باستخدامك للمحرك والمكتبات البرمجية التي يتكون منها، فأنت تختصر على نفسك الجهد اللازم لبناء نظام الإدخال والإخراج والاستيراد ومحاكاة الفيزياء، وحتى جزء من الذكاء الاصطناعي. وما يتبقى عليك هو كتابة منطق لعبتك الخاصة وإبداع ما يميزها عن غيرها من الألعاب. هذه النقطة الأخيرة هي ما ستدور حوله سلسلة الدروس القادمة، وبالرغم من أن المهمة تبدو صغيرة جدا مقارنة بتطوير اللعبة كاملة، إلا أنها على صغرها تحتاج لمجهود معتبر في التصميم والتنفيذ كما سنرى. خطوات سريعة لتبدأ مع محرك Unity إن لم تكن ذا خبرة سابقة بهذا المحرك يمكنك قراءة هذه المقدمة السريعة، كما يمكنك تخطيها إن كنت تعاملت مع هذا المحرك سابقا. لن أطيل شرح هذه الخطوات حيث هناك الكثير من الدروس سواء بالعربية أو الإنجليزية تتناولها، لكنها هنا لنتأكد من أن كل قارئ للسلسلة على نفس الدرجة من المعرفة الأولية قبل البدء. الخطوة الأولى: تحميل وتنصيب المحرك لتنزيل الإصدار الأحدث من المحرك وهو 5 ادخل مباشرة إلى الموقع http://unity3d.com ومن ثم قم بتحميل النسخة المناسبة لنظام التشغيل الذي تستخدمه، علما بأن النسخة المجانية من المحرك ذات إمكانات كبيرة وهي تفي بالغرض بالنسبة لمشروعنا في سلسلة الدروس هذه. الخطوة الثانية: إنشاء المشروع بمجرد تشغيل المحرك بعد تنصيبه ستظهر لك شاشة البداية، قم بالضغط على New Project لتظهر لك شاشة كالتي تراها في الصورة أدناه. كل ما عليك هو اختيار النوع 2D ومن ثم اختيار اسم وموقع المشروع الجديد الذي ستقوم بإنشائه، ومن ثم الضغط على Create Project. الخطوة الثالثة: التعرف على نوافذ البرنامج الرئيسية تهمنا في البداية 4 نوافذ رئيسية في محرك Unity، وفيما يلي ملخص لوظائفها: نافذة المشهد Scene: وهي التي تستخدمها لبناء مشهد اللعبة وإضافة الكائنات المختلفة إليه وتوزيعها في الفضاء ثنائي الأبعاد. تحتوي هذه النافذة مبدئيا على كائن واحد وهو الكاميرا. هرمية المشهد Hierarchy: تحتوي على ترتيب شجري يحوي كافة الكائنات التي تمت إضافتها للمشهد ويساعدك في تنظيم العلاقات بينها، حيث أنه من الممكن أن تضيف كائنات كأبناء لكائنات أخرى بحيث يتأثر الكائن الابن بالكائن الأب كما سنرى. تحتوي هذه النافذة مبدئيا على كائن واحد وهو الكاميرا. مستعرض المشروع Project: يقوم بعرض جميع الملفات الموجودة داخل مجلد المشروع، سواء تلك التي تمت إضافتها للمشهد أم التي لم تُضف. يحتوي المشروع مبدئيا على مجلد واحد يسمى Assets، وسنضيف داخله كافة الملفات والمجلدات الأخرى. نافذة الخصائص Inspector: عند اختيار أي كائن من هرمية المشهد أو نافذة المشهد أو مستعرض المشروع، فإن خصائصه ستظهر في هذه النافذة ويمكنك تغييرها من هناك. استعرضنا في هذا الدرس ما يظهر من واجهة Unity3D للوهلة الأولى، مع مقدمة بسيطة حول صناعة الألعاب، سنشرع في الدروس القادمة في مشروع عملي نتعلم من خلاله كيفية صناعة لعبة كاملة حقيقية. فترقبوا!1 نقطة