2006/12/20

العرض الأولي للمصدر المفتوح و برمجة الألعاب

بسم الله الرحمن الرحيم

تكملة للموضوع السابق "نظرة عامة"
ها نحن نضع اللمسات الأولى على تلك المحركات

-------


1- Panda3D
قضيت وقتا طويلا و ممتعا .. فقط لكي أرى هذا المحرك...
==> المحرك فعلا مذهل .. و معقد(متطور)
و اتضح ان البرمجة فيه هي بلغة البايثون و تستخدم مكتبات مكتوبة بالC++
رؤية الأمثلة فيه ممتعة جدا .. هذا بالاضافة الى وجود لعبة Asteroids المشهورة جدا .. و هي ممتازة كأساس و بداية.
و ايضا المحرك باندا يتضمن الpaython compiler .. لذا لا داعي للقلق بشأن الcompilers
هذا غير الدروس الكافية التي تستطيعون الحصول عليها من موقع الشركة (حتى ان هناك بعض الدروس بالفيديو )

الخلاصة:
- محرك قوي جدا .. لكنه يتطلب المام جيد بلغة البايثون و معرفة جيدة عن كيفية رسم الرسوميات ثلاثية (او ثنائية) الأبعاد (المتجهات Vectors و ما شابه).
- قد يكون صعبا على المبتدئين.

---------------------------------------------------------

2- PPTactical
استخدامه معقد نوعا ما .. بالرغم من وجود الLevel Editor
و استخدامه مثل استخدام باقي الLevel Editors للالعاب من اضافة الوحدات Units و الاسطح و الخ..مع تحديد حركات الوحدات و أحداثها ..

الخلاصة:
صراحة لم اجربه لوقت طويل .. و تقييمي له هو ما دون المتوسط (قد اكون تسرعت في الحكم)

ملاحظة: من المهم جدا قراءة ملف الارشاد له بتمعن .. حتى تعرف كيفية استخدامه.

---------------------------------------------------------

3- GOLDEN T GAME ENGINE - GTGE
محرك ثنائي الأبعاد خفيف و سريع، مزود بدروس مفهومة و جيدة ..
و الجميل أنه بلغة الجافا => و المميز بلغة الجافا هو توحيد طريقة كتابة البرامج .. فمن ينظر للأكواد لا يستغربها بل يراها محببة
يمكن العيب فيها هو عدم وجود SDK ، يعني سمة البرمجة فيه هي الغالبة. لكن لماذا الSDK و البرمجة فيها بسيطة !
لكن من الممكن تحميل أداة الgraphical user interface - GUI له .. و التي قد تساعد كثيرا عند البرمجة.

* تستطيعون رؤية ألعاب استخدمت نفس المحرك:
http://goldenstudios.or.id/products/games/index.php

الخلاصة:
- ممتاز و سهل الاستخدام
- أفضله للمبتدئين و خصوصا لمحبي الجافا.

---------------------------------------------------------

4- Nebula 2
للأسف .. ما فهمته من الموقع ان هذا المحرك يتطلب الVisual Studio .NET و أيضا Microsoft DirectX SDK
لكن ما رأيته كان مذهلا ... مذهلا جدا .. ففيه أدوات احترافية و رائعة .. و تحسسك بأنك تستخدم محرك ذو مستوى عال

مواقع تستخدم هذا المحرك:
radonlabs.de
لعبة NVA
لعبة Betablockers

الخلاصة:
- محرك به خصائص كثيرة و متنوعة قوية جدا.
- للمتوسطين و المحترفين.

---------------------------------------------------------
5- Crystal Space
محرك جميل و قوي، يستخدم لغة الC++ و الcompilers المستحدمة
(Visual Studio, MinGW & Cygwin)

به العديد من مقومات المحرك الثلاثي الابعاد الكامل.

لكن الغريب ان استخدامه ليس سهلا .. فأغلب العمليات تتم يدويا.
و طبعا في حالة البرامج اليدوية يضطر الشخص لقراءة الملف الارشادي بتمهل.

ما يميز هذا المحرك .. هو دعمه بتمارين و شروح جيدة جدا من موقع الشركة..
مثلا هذا درس(خطوة بخطوة) للعبة "متاهة"
http://www.crystalspace3d.org/mazet...t_tutorial.html


و ايضا هذا العرض التقديمي الرائع => به الكثير من المعلومات المهمة في مجال محركات الألعاب بشكل عام و محرك CS بشكل خاص.
http://www.crystalspace3d.org/semin..._seminarie.html

ألعاب استخدمت هذا المحرك:
Crystal Core
Bonez
Open Outcast

الخلاصة:
- محرك قوي
- دعمه بالشروحات الكثيرة و الجيدة
- ليس للمبتدئين

------------------------
6- irrlicht
محرك جيد به أغلب ما تحتاجه لعمل لعبة 1st Person أو اي لعبة 3دي بالطبع..بالاضافة الى جاهزيته لعمل العاب 2.5D (مثل لعبة diablo)
برمجته بلغة C++ و يتطلب الcompilers:
Visual Studio و DevC++4.9

دروسه قليلة و لكنها كافية و مشروحه بعناية و بطريقة مفهومة.
ملاحظة .. في الموقع .. هناك اداة اسمها (Exception) لاستخدام هذا المحرك داخل الGamemaker !

الخلاصة:
- محرك جيد جدا
- بساطة دروسه ما يسمح لمحبي محركات الثري دي و المبتدئين لاستخدامه.

----------------------------------

7- Pygame
.. برمجة الالعاب بلغة البايثون .... لم اتوقع انها straight forward هكذا !
اذا احد سألني عن برمجة الالعاب (برمجيا) => فسأقول له python

البرمجة فيها برمجة بحته .. اي لا ترى شيئا (interface) حتى تعمل compile
و بالنسبة لي، هذا افضل لكي يركز المبرمج على البرمجة و الذكاء الاصطناعي و الخ من اساس اللعبة ..

لغة البايثون هي لغة(OOP - Object Oriented Programming) و تشبه الى حد كبير برمجة الجافا أو الPerl و هي سهلة و سريعة و portable (اي من الممكن ان تعمل برامجها على اي نظام تشغيل) و هي قوية بسبب اعتمادها على مكتبة SDL

الوضع الطبيعي للغة هي عمل العاب ثنائية الأبعاد، اما ان كنت تريد دعم ثلاثي الابعاد فعليك بانزال PyOpenGL أو py3d.org

و ما اعجبني هو بساطة الموقع و الشروحات (Documentations and tutorials) المرتبة و الجيدة جدا، مما يسهل على المتعلم التعلم

أمثلة لألعابها:
http://www.pygame.org/projects/6
http://www.pygame.org/gamelets/

الخلاصة:
- ضرب عصفورين بحجر لمن يريد تعلم البرمجة و برمجة الالعاب (و حتى التطبيقات)
- للجميع

-----------------------------------
أما عن البقية => فهذه آخر الأخبار:

Quake2 و Quake3 Engine
الظاهر يحتاجان الى وجود اللعبة الاصلية .. لانهما يتطلبان الملف quake2.exe أو quake3.exe

MasterX
عمل معي لكن الامثلة بسيطة جدا (فقط Hello World ! )

Allegiance
كانت لعبة من شركة ميكروسوف .. و بالرغم من انها كانت قوية برسومها و اعداداتها للاونلاين .. الا انها لم تلق النجاح المناسب.. ثم بعدها قرت ان تضعه الشركة كOpen Source، و حتى الان لم اجرب تشغيله.

ClanLib
كان على وشك العمل .. الا انها ظهرت لي مشكلة لم اجد لها حلا => ربما لأني استخدم MS Visual Studeo .Net 2005

jME
عذبني هذا المحرك =>لم يعمل معي !؟

OGRE
متطلباته لل Studeo .Net 2005 كثيرة ..

-------------------------------

2006/12/17

نظرة عامة على المصدر المفتوح و برمجة الألعاب

السلام عليكم و رحمة الله و بركاته*

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

برمجة الألعاب ==> يعني طريقة أخرى غير الGame Maker

بسم الله نبدأ..


محركات الألعاب:

MasterX SDK

و هو عبارة عن Classes و وظائف Functions للمساعدة على برمجة العاب الDirectX

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


Quake 2 Engine

محرك ممتاز و مشهور بألعابه الجيدة مثل Soldier of Fortune مكتوب بلغة C++



Allegiance

لعبة فضاء ضخمة، لاكثر من لاعب من ميكروسوفت

http://www.freeallegiance.org/


Pygame

نظام لبرمجة الالعاب باستخدام لغة الPython


PPTactical Engine

محرك رائع لعمل العاب استراتيجية (حقيقية أو تكتيكية)

يستخدم الSDL و الDirectX

http://aspc.cs.utt.ro/~karg/ppt/ss/0.9.6/easyrecon_respiro_m.jpg


Golden T Game Engine

محرك جافا ثنائي الأبعاد و هو بسيط و سلس.



Crystal Space

محرك قوي ثلاثي الأبعاد مكتوب بلغة C++

http://community.crystalspace3d.org/show_image.php?id=293&thumb=1


ClanLib

نظام متكامل ثنائي و ثلاثي الأبعاد متوافق مع DirectX و OpenGL


OGRE

محرك ثلاثي الابعاد رائع مكتوب بC++


Irrlicht

محرك ثلاثي الابعاد ممتاز و مرن، يستخدم الC++/C, C#, VB.NET


jME

محرك جافا ثلاثي الأبعاد => رائع



Pand3D

محرك رهيب => C++


Nebula

لا أعرف ماذا أقول لوصف هذا المحرك .!


ألعاب جاهزة للتطوير:

و أيضا .. لمن يريد تطوير ألعاب كاملة و جاهزة، فعليه الدخول هنا:

https://sourceforge.net/softwaremap/trove_list.php?form_cat=80


ما قد تحتاجه:

- مكتبة SDL

- Python Compilers

- C/C++ Compiler

- Java Compilers

- Pathlib: يتضمن خوارزميات لايجاد اقصر الطرق و تتبع الحركات و التوقيت و التصادم و التخلص من الطرق المسدودة


مصطلحات:

* محركات الألعاب - Game Engines

هو اساس برمجي لمحتويات لعبة فيديو، و يتعامل مع تصيير الرسوميات Graphical Rendering و التقنيات الأخرى الضرورية و قد يكون منها الذكاء الاصطناعي و بعض قوانين الفيزياء collision detection، و ايضا من خواص المحركات انها تكون جاهزة لكي تعمل على نظام معين (ويندوز او game consoles)

SDL

اختصار لSimple DirectMedia Layer

و هي مكتبة نظام ربط للوسائط المتعددة Cross-Platform multimedia library تركب على النظم (رسوميات، صوتيات، تطبيقات) و تستخدم لبرمجة الألعاب أو تطبيقات برمجية للوسائط المتعددة.

DirectX

عبارة عن مجموعة تطبيقات برمجية لتسهيل برمجة الالعاب مع النظام ويندوز.

OpenGL

اختصار لOpen Graphics Library و هو نظام ربط للتطبيقات الثلاثية و الثنائية الأبعاد، و يتميز بواجهة تضم اكثر من 250 وظيفة لانشاء مشاهد معقدة.

الSDK Software Development Kit - (حزمة تطوير البرمجيات)
هي مجموعة من الادوات اللازمة لتطوير البرامج و غالبا ما تكون لها واجهة سهلة الاستخدام .. تسهل على المبرمجين عمل البرامج .. تماما كما في برنامج الGameMaker..


المصادر:

http://en.wikipedia.org

http://www.devmaster.net/engines/

http://www.lostsidedead-software.com/ => شكرا لArgonaut

http://cyberloonies.com/game-engines.html

Free Game Programming Libraries and Source Code


و أخيرا .. أتمنى ان يعجبكم و يفيدكم هذا الموضوع .. و لعل وعسى يحفزكم على البرمجة و التطلع للأفضل ;)

كتب بلوحة مفاتيح Well-knownQ8

و شكرا و السلام ^^

-------------

كتب هذا الموضوع في الثالث من ديسمبر 2005

2006/11/24

ما هو المصدر المفتوح Open Source ؟

السلام عليكم و رحمة الله و بركاته


بين ايديكم بحث بسيط قمت به عن موضوع الـ Open Source ، لما يعد من المواضيع المثيرة جدا
و المهمة في عالم الكمبيوتر و الانترنت...

بسم الله الرحمن الرحيم

البداية:
المصدر المفتوح -Open Source- هو أحد السياسات المتبعة في إدارة عملية كتابة برمجيات الحاسوب والأنظمة وإدارتها. إذ أن البرمجيات المفتوحة المصدر توفر النص المصدري - Source Code- كما كتب من المبرمج، ومع السماح بقراءة هذا النص، وتوزيعه، والتعديل عليه.
ظهر مصطلح Open Source ، في نهاية التسعينات من قبل اريك ريموند في محاوله منه لإيجاد مصطلح بديل عن مصطلح برمجيات حرة Free Software الذي كان يفهم خطأ على أنه برمجيات مجانية، إذ كان قطاع الأعمال يتخوف من إستعمال وتوظيف والعمل في لينكس (مثلا) والبرمجيات الحرة، لأن كلمة Free كانت تعني لهم المجانية، وبالتالي عدم وجود أرباح، و لكن مع المصطلح الجديد قل هذا اللبس.

حاليا، يتم إستعمال مصطلح البرمجيات المفتوحة المصدر في الإعلام بشكل أساسي، للدلالة على البرمجيات الحرة. لكن خلال تطور مفهوم المصدر المفتوحة، قام بروس بيرنز بتطوير تعريف للبرمجيات المفتوحة المصدر.


التعريف:

من الممكن إختصار تعريف البرمجيات المفتوحة المصدر، بأنها البرمجيات التي تحقق الشروط التالية:
- حرية إعادة توزيع البرنامج.
- توفر النص المصدري للبرنامج، وحرية توزيع النص المصدري.
- حرية إنتاج برمجيات مشتقة أو معدلة من البرنامج الأصلي، وحرية توزيعها تحت نفس الترخيص للبرمجيات الأصلي.
- من الممكن أن يمنع الترخيص توزيع النص المصدري للنسخ المعدلة على شرط السماح بتوزيع ملفات التي تحتوي على التعديلات بجانب النص الأصلي.
- عدم وجود أي تمييز في الترخيص لأي مجموعة أو أشخاص.
- عدم وجود أي تحديد لمجالات إستخدام البرنامج.
- الحقوق الموجودة في الترخيص يجب أن تعطى لكل من يتم توزيع البرنامج إليه.


هذه المييزات الأساسية لأي ترخيص من الممكن أن يطلق عليه ترخيص مفتوح المصدر.


فائدته و أهميته:
يعتبر المصدر المفتوح الآن أحد أهم عوامل تطوير البرمجيات، و قد لاحظنا ذلك في الفترة الأخرة من ظهور برمجيات عالية المستوى في مختلف التخصصات و الأصناف من وسائط متعددة Multimedia و نظم تشغيل Operating Systems و متصفحات انترنت و مضادات الفيروسات و الملفات المشبوهة و برامج الحماية و حتى الألعاب.
و ما يعطي الموضوع حلاوة خاصة هو انه يمكن لأي شخص التعديل و الإضافة و التطوير لأي برنامج ثم يضع ما قام به في الانترنت، و من ثم يعلق عليه الآخرون و يبلغونه بأي مشكلة حصلت أو ثغرات Bugs ، بالاضافة الى انه يمكن لأشخاص آخرون أخذ هذا البرنامج ثم تطويره و هكذا (طبعا باتباع الشروط السابقة).


أمثلة:
- نظام التشغيل لينيكس
نبذه سريعة:
في نهاية عام 1990 قام طالب في جامعة هلسينكي في فنلندا بالإعلان عن مشروع يعمل عليه. الطالب هو لينوس تورفالدس، والمشروع كان نظام تشغيل بسيط. وقد اختار لينوس تورفالدس أن يضع مشروعه تحت ترخيص البرامج الحرة، مما أتاح لمن يريد إمكانية الاطلاع على النص المصدري لهذا النظام، والعمل على تعديله وتطويره، نتيجة لذلك، شارك الآلاف من المبرمجين المتطوعين حول العالم في المشروع.

- المتصفح Firefox
نبذه سريعة:
هو متصفح ويب، يتم تطويره من قبل مؤسسة موزيلا.
تهدف مؤسسة موزيلا بفايرفوكس الى تطوير متصفح سريع، صغير، قابل للتوسيع و التطوير ، منفصل عن طقم موزيلا.
و بذلك يستطيع المبرمجين المتطوعين إضافة الplug-ins له و تطويره.

هذان مثالان قد لمسنا نتائجهما الرائعة و المثيرة للجدل، و بالطبع فهناك الكثير و الكثير من برامج مفتوحة المصدر المشهورة...


الخلاصة:
مما سبق اتضحت لنا أهمية تطوير برامج مجانية Free Software أو مفتوحة المصدر Open Source ، لما ليس لها من قيود لمحبي و متطوعي البرمجة و ايضا بعيدا عن احتكار الشركات ، و هذا ما يزيد من شريحة المبدعين في عالم البرمجة و الكمبيوتر و التكنولوجيا :)

---------
المصادر:
http://en.wikipedia.org
http://www.opensource.org
http://www.redhat.com

================
تمت كتابة هذا الموضوع في 2 ابريل 2005 في منتدى المنتدى و منتديات طموح

2006/11/21

برنامج التزامن Synctoy من Microsoft

السلام عليكم و رحمة الله و بركاته

أستعرض لكم هذا البرنامج الممتاز من مايكروسوفت (للأسف و لحسن الحظ بنفس الوقت!)
و الذي يقوم بربط و تتبع للملفات بين مجلدين .. هذه صورة توضيحية:


مثال على استخدام البرنامج:
يستخدم لنقل الملفات الشخصية من مجلدك المفضل(My Pictures مثلا) الى مجلد آخر في الفلاش ميموري => حالما يكون هناك تغيير/إضافة/تعديل في احد أو كلا المجلدين..

حجم البرنامج 1 ميجابايت!، التحميل هـنـا

***********

هامش:
-استخدم هذا البرنامج منذ ما يقارب السنة و وجدت انه قوي و فعال جدا و صراحة لم أر مثله
-هذا البرنامج هو أحد أدوات ال Power Toys للويندوز ادخل هـنـا لمعرفة المزيد

----------------------
* وضع في منتدى المنتدى بتاريخ 31-اكتوبر-2006 (الوصلة)

هل تهتم بكفاءة البرمجة - Do you care about Programming Efficiency؟

السلام عليكم و رحمة الله و بركاته

أهلا بعلماء المستقبل ..
--------------------

بسم الله ..

حدثـْت مؤخرا جهاز البالم Treo 650p من 1.05 إلى 1.2 و الذي به تصحيح لبعض الأخطاء المهمة و زيادة أداء الجهاز (توفير البطارية)،
و فرحتي لهذا التحديث، أني قمت بتنزيل بعض البرامج و الألعاب (المجانية) من موقع الشركة.


و طبعا بعدها أخذني الوقت في تجربة هذه البرامج .. و بعد مدة .. اغلقت البرامج .. و إذ اني أرى علامة البطارية أصبحت باللون الأحمر (أي قرب نفاذ شحن البطارية) !!!

قلت مو مشكلة .. يبدو ان ذلك من آثار التحديث و انه جديد و و و ..
في اليوم التالي .. لعبت قليلا بإحدى الألعاب .. ثم رأيت هبوطا واضحا في نسبة استهلاك

البطارية !.. غريب .. فالجهاز كان يستمر معي طوال 3 أيام .. فماذا به أصبح و كأنه ليوم واحد فقط !
قلت مو مشكلة .. يمكن ذلك بسبب أن اللعبة بها الكثير من المؤثرات الصوتية و المرئية .. ناهيك عن عمل الشاشة طوال الوقت (حجم الشاشة كبير)..

بعد ذلك .. أخذت بتجربة لعبة بسيطة جدا جدا .. ألوانها لا تزيد عن الأربعة ألوان .. وليس هناك مؤثرات لا صوتية و لا مرئية (لعبة الEight Queens المشهورة)..!
ثم أيضا .. نفس النتيجة .. إذ أن النسبة قلت كثيرا ... ! ما هذا ..!

الصراحة .. خفت على جهازي .. و خفت أن يكون ذلك بسبب التحديث ..!
و حتى أقتل الشك باليقين .. استخدمت الجهاز كالسابق .. و لم أشغل عليه أي برنامج خارجي .. ثم .....
س
الجهاز استمر معي لمدة 3 أيام كالسابق ^_^..
و عندها تأكدت مما كنت أشك في أهميته و استخداماته ..
ألا وهو "الكفاءة - Efficiency" ...

المقدمة

منذ أن أخذت مادة "الرياضيات متقطعة" (أيام الجامعة) و بالتحديد عند موضوع Big O ntation (اضغط هنا لمعرفة المزيد عنه).. وذكر الدكتور أن استخدام مجرد حلقتين مشبوكتين (2 nested loops) في البرنامج يعتبر إضاعة لمجهود المعالج من دون فائدة، و ضرورة إيجاد بديل "أبسط و أخف"

و مثال على ذلك .. ترتيب المصفوفة (array) إذ أن لترتيبها تصاعدا يلزمنا حلقتين مشبوكتين .. كالتالي:


1: for (int i = 1 ; i < n ; i++) {
2: for (int j = 0 ; j < n-i ; j++) {
3: if (data[j] > data[j+1]) {
4: double temp = data[j];
5: data[j] = data[j+1];
6: data[j+1] = temp;
7: } else {
8: break;
9: }
10: }
11: }
اضغط هنا لرؤية مثال على طريقة الترتيب ..
طبعا هذا حل صحيح .. و يؤدي الغرض .. لكن قد تلاحظون أن المسألة جدا بسيطة .. لكنها تأخذ من الوقت الكثير.. !

فلنفترض أن كل عملية تبديل(الأسطر من 4 إلى 6) تأخذ ثانية واحدة .. فإذا أردنا ترتيب أسماء 10 أشخاص، اذا فسيكون الوقت الكلي 100 ثانية !
فتخيل .. كم سيستغرق من الوقت (و الجهد) اذا كنت تريد تريتب أسماء عدد سكان مدينة كاملة !
و تخيل انك تملك جهاز صغير(ساعة يد مثلا) فيها هذه الاسماء .. فهل ستتمكن الشركة من وضع معالج جبار لتطبيق عملية قد تكون تافهة ...

أعلم ان الأجهزة الآن قادرة على تطبيق مئات الملايين من العمليات في الثانية الواحدة .. لكن هناك اجهزة ابسط مثل(التفونات النقالة و الPDA و الportable devices بشتى أنواعها)

فالحل ليس بانتاج معالج أسرع .. و إنما بتبسيط و تحسين(optimizing) البرنامج..

لماذا التحسين ؟

ببساطة .. لانه ليس سهلا على الجميع الحصول على جهاز خارق السرعة لكي يحل المسألة بسهولة، و ايضا .. لماذا نستهلك جهد كبير للجهاز لأداء عمليات بسيطة، بالرغم من أن هناك عمليات أخرى أهم تستخدم هذه القوة!، لذلك وجدت دراسات كثيرة لعمل طرق و حلول و بدائل للكثير من الخوارزميات في عالم البرمجة.


و هنا قد يتبادر هذا السؤال في ذهن المبرمج:


و ما هي مشكلتي إذا كانت بعض الأجهزة ضعيفة لتشغل برنامجي؟
فنرد عليه بـ:
ألا تريد نشر برنامجك الى أكبر عدد ممكن !؟
أو هل تريد أن تقل سمعتك إذا وجد الناس أن برنامجك يأخذ مصادر الجهاز كلها ..؟
أو بطريقة أخرى .
تخيلوا لعبة كمبيوتر جديدة نزلت .. و تتطلب هذه المواصفات (على الأقل لتشغيل اللعبة)
Pentium D 3.8 gigaHz
4 gigaByte Ram
كرت شاشة Geforce 7900
و بالنهاية تجد أن أداء اللعبة برسومياتها و أصواتها مثل لعبة HalfLife 2 مثلا ..!؟


-----

من البديهي أن المبرمج يريد للغالبية العظمى أن يستخدم برنامجه بسهولة و من دون مشاكل .. و هذا ما يتم بتحسين الكفاءة.

طرق كيفية تحسين الكفاءة:
1- جعل كل ما في البرنامج صغير:
من دوال و متغيرات و وظائف حتى تبدو بسيطة و مرنة

2- عدم تكرار العمليات المنجزة، و هذا شي بديهي

3- تحديد و تقليص المتغيرات - Make data sets small(limit variables)
يعني اذا انت تعلم انك لن تستخدم اشارة السالب في الأرقام -مثلا- .. فبدلا من انك تستخدم int x تستبدلها بunsigned int x
أو اذا تستخدم الأعداد الصحيحة فقط .. فبدلا من أن تستخدم double x تستبدلها ب int x
و هكذا لبقية المتغيرات

4- Selective Processing With an IF
و هذا يوفر كثير من العمليات التي لاداعي لها.

5- If-Then-Else and Cases
نفس السبب السابق

6- طول الجمل
و ذلك لتوفير مساحات في الذاكرة و الوقت اللازم لاسترجاعها،
فبدلا من انشاء ذاكرة لكل كلمة، يتم انشاء ذاكرة واحدة لجملة تتضمن تلك الكلمات.

7- تحويل بين الأرقام و الأحرف
تقريبا كسابقتها، بدلا من انشاء ذاكرة جديدة لمتغير جديد، نستخدم نفس الذاكرة السابقة لهذا المتغير الجديد.

و ماذا علينا أن نفعل؟
طبعا ليس بشرط استخدام النقاط السابقة جميعها، و انما محاولة استخدام ما يمكن من هذه النقاط بما يتناسب مع البرنامج.

الخلاصة:
بعد أن عرفنا ماهية الكفاءة و لماذا نحسنها و استعراض طرق تحسينها، عرفنا الآن أهميتها الكبيرة في توفير الوقت و الجهد لإجراء العمليات البرمجية في أي معالج و أي نظام بصورة ممتازة و مناسبة و مقبولة.
و أحب أن أشير إلى أنه حتى هذه اللحظة و العلم يبحث الكثير و الكثير من طرق التلخيص و التوفير لرفع الكفاءة في جميع الصناعات و الخدمات في عالمنا المعاصر.

---------------------
*هذا الموضوع كتب في منتدى المنتدى من تاريخ 25 من شهر يونيو 2006
[مقال] هل تهتم بالكفاءة - Do you care about Efficiency ؟
و ايضا في الموضوع هناك إضافات جميلة فحبذا لو تقرأوها.