مقالات

now browsing by category

مقالات بهینه سازی سایت, طراحی سایت و نرم افزاراندروید.

 

با چه انجینی بازی بسازیم !!!!! (بررسی و مقایسه UDK با Unity)

UTINY

با چه انجینی بازی بسازیم !!!!! (بررسی و مقایسه UDK با Unity)
خب منبع اصلی این مقاله سایت : http://www.udk.ir و نویسنده این مقاله هم منم .
هدف از نوشتن این مقاله یکسری بررسی بر سر ویژگی ها و ضعف های این ابزار های بازی سازی که تیم سازنده بودنن از کدوم استفاده کنن .
درضمن به خاطر این دارم مقاله رو توی سایت های مختلف بزارم تا نظرات اهالی فن و متخصص در این مورد رو هم بدونم .
مقاله سه بخشی فوق به قلم اینجانب نوشته شده است
بخش اول و دوم این مقاله اماده شده ولی بخش سوم رو امشب اماده می کنم و می فرستم بعد اون اماده شنیدن نظراتتون هستم

* توجه داشته باشید که در این مقاله مقایسه بین اخرین ورژ« های هر کدام از این انجین ها صورت گرفته

* توجه داشته باشید که مقایسه کاملا عادلانه بودنه و ابتدا با معرفی و بررسی ویژگی ها و سپس ضعف ها انتخاب رو به عهده خود سازنده قرار میده

————————————————————–

قسمت اول :

مقدمه :
قاعدتا ساخت یک بازی رایانه ای خوب نیازمند ابزاری مناسب و در خورد توانایی و چهارچوب تعیین شده یک بازی می باشد . اینکه بدانیم یک بازی رایانه ای یا بازی رایانه ای که ما در حال ساخت آن هستیم و یا می خواهیم بسازیم به چه ابزار و امکاناتی برای ساخت نیازمند است و بدانیم طبق پیش بینی های ما این بازی رایانه ای چه گونه و در چه رنج امکاناتی را از سازنده می خواهد بسیار و بسیار می تواند به پیش برد روند ساخت بازی و هرچه بهتر و با کیفیت تر بودن محصول خروجی ما کمک کند .
در دنیای بازی سازان مستقل کم ترین خرج بهترین موفقیت است . هر آن چقدر که بازی سازان بزرگ و شرکت های غول پیکر بازی سازی تا می توانند خرج می کنند تا محصول مناسب تری را برای خروجی اماده کنند . دنیای بازی سازان مستقل با صرفه جویی ها و کم خرجی ها پیش می رود . در دنیای بازی سازان مستقل همیشه سعی می شود از بهترین ابزار موجود بهترین استفاده شود حال انکه به دلیل رایگان بودن این ابزار , ابزار فوق نتواند نیاز های تیم سازنده را به طور کامل بر طرف کند که خب این مسئله کاملا منطقی است . همیشه انتخاب ابزار خوب جهت ساخته بازی در ابتدای پروژه بهترین و اولین اولویت است . این ابزار بازی سازی است که می تواند تعیین کننده کیفیت بازی و حتی چگونگی گیم پلی و رووند ساخت بازی باشد .
در حال حاظر تعداد زیادی از ابزار ها یا همان انجین های ساخت بازی در شبکه جهانی اینترنت موجود می باشد که اکثر غریب به اتفاق آن ها به صورت رایگان و بعضا تحت لیسانس های قانونی برای تولید قرار دارند . ما در اینجا می خواهیم دو مورد از معروف ترین این ابزار بازی سازی (انجین) را بررسی کنیم و در اخر نتیجه گیری کنیم که کدامین یک جهت پیش برد یک پروژه بازی سازی مناسب تر است .

UDK

Udk

Udk

معرفی :
انریل انجین بدون شک اگر یکی از قوی ترین ابزار ساخت بازی در جهان نباشد یکی از بهترین هاست . برای اثبات این مسئله می توان به بازی های ساخته شده با این انجین پرطرفدار نگاهی انداخت . بازی های مانند Gears Of ware و یا بازی فوق محبوب بتمن و غیره ….
می توان ارزش و شهرت این ابزار بازی سازی یا همان انجین بازی سازی را در لایسنس های سالاینه آن توسط شرکت های بیشمار بازی سازی دانست که می توان حتی گفت این یک عرف است که زمانی که شرکتی می خواهد اولین بار وارد دنیای بازی سازی شود به سراغ انریل انجین می رود .
در سال ۲۰۰۹ همزمان با وعده قبل اپیک گیمز مبنی بر ورود به دنیای بازی سازان مستقل , نسخه ای از انجین محبوب انریل با نام تجاری Unreal Development Kit و یا به اختصار UDK در شبکه جهانی نت منتشر شد . می توان گفت رویای بازی سازان در حال به حقیقت رسیدن بود . اکنون بازی سازان مستقل که تا قبل از این روند ساخت بازی را از یک باز دور کره زمین پیاده رفتن سخت تر میدن و تمام وقت کیفیت سازه های خروجی توسط این بازی سازان مستقل (صرف محصولات سه بعدی ) پایین بود با امدن و در دسترس قرار گرفتن یکی از بهترین انجین های دنیا اکنون قدم جدیدی را در ورود به دنیای بازی سازی پی موده اند .
شعار UDK این است ک ه
هر کس. همه کس. اگر شما ایده ای برای گیم دارید که برای پیاده سازی نیاز به یک پلت فرم دارد، UDK برای شماست.
UDK نسخه باینری شده از انجین بیس انریل انجین ۳ بوده که از زمان انتشار به جز از ورود به نیمه دوم سال ۲۰۱۲ تا کنون به صورت اپدیت ماهانه عرضه میشده و در تمامی زمان ها با پیشرفت انریل انجین ۳ یو دی کی هم پیشرفت کرده است . به نظر می رسد یکی از اهداف اپیک گیمز برای ارائه این محصول تست و فیدبک امکانات جدید انری انجین بوده است .
البته توجه داشته باشید که قبل از ارائه نسخه یو دی کی ادیتور انریل نیز به همراه بازی Gears Of Ware و همچنین انریل تورنومنت در دسترس ماد سازان در سراسر دنیا بوده که به وسیله آن بسیاری از ماد ها معروف دنیا به وجود امده است .
انچه UDK را متمایز از انریل ادیتور می کند همین قابلیت تهیه نسخه های Stand Alone است که به وسیله آن یک سازنده بازی می تواند برخلاف یک ماد یک بازی کاملا جدا – با هر سبک دلخواه و به هر صورتی را به وجود بیاورد که خب همین مسئله به محبوبیت بیش از پیش این ابزار بازی سازی اضافه کرده است .
همچنین به گفته اپیک گیمز که بسیار هم بر این مسئله تاکید دارد از نظر ابزار بازی سازی یو دی کی فرقی با انریل انجین ۳ ندارد . همچنین از نظر قدرت نیز به همین گونه است . همانند اینکه می توان این نقل قول مستقیم را از اپیک گیمز کرد که : شما به وسیله UDK می تواند حتی یک Gears Of Ware نیز بسازید !!!! تا حدودی حق با اپیک گیمز است چرا که ابزار های متعدد و
حرفه ای ساخت بازی در تمامی زمینه ها چه ساخت میان پرده ها – بافت – طراحی مراحل و غیره …. به خوبی در این انجین تولید شده که پیش از پیش به قدرت و باز بودن دست سازنده گان یک بازی رایانه ای کمک خواهد کرد که در این زمینه واقعا حق با اپیک است که گفته بود هر انچه شما می خواهید در یو دی کی امکان پذیر است . البته انجین فوق محدودیت هایی نیز دارد که بسته به مهارت بازی سازان و طراحان محترم که چگونه می توانند با آن کنار بیایند طبقه بندی و با آن ها برخورد می شود که در طول مبحث مقایسه به آن خواهیم پرداخت .
قابلیت خروجی بر روی PC و موبایل و همینطور سیستم عامل مک و لینوکس از تنها ویژگی های مولتی پلتفرم این انجین می باشد

در حال حاظر اخرین نسخه UDK را با حجم تقریبی ۲ گیگابایت می توانید از ادرس :
Free Game Engine for Indie Game Development | UDK Unreal Developer’s Kit تهیه کنید

Unity:

معرفی
می توان از ای انجین به عنوان دوست و یار همیشگی بازی سازان مستقل نام برد . در زمانی که کاربران مستقل به انجین های قدرتمند دسترسی نداشتند و بلاجبار برای ساخت بازی مجبور بودند که از کیفیت بازی صرف نظر کنند ابزار بازی سازی به نام یونیتی به وجود امد که به قول معروف تسکینی بر دل بازی سازان مستقل گذاشت .
نسخه اول یونیتی در سال۲۰۰۷(فکر می کنم البته ) برای دسترسی عموم به سیستم عامل مایکروسافت پورت شده که البته تا اطلاعی که اینجانب دارم از قبل نیز انجین یونیتی تحت مک وجود داشته که غالبا از آن برای ساخت بازی های دوبعدی تحت مک و موبایل استفاده می شد .
پس از انتشار عمومی این محصول , و به علت ساده گی و کاربر پسند بودن این ابزار بازی سازی ان قدر معروف شده که بدون شک می توان گفت اولین انتخاب در بین بازی سازان مستقل دنیا یو نیتی است .
محصولی سبک
کاربر پسند
مطابق با اخرین و بهترین تکنولوژی ها ساخت بازی که به جهت امکانات بسیار این محصول بازی سازی را برای سازنده گان به کاری لذت بخش تبدیل کرده است .
یونیتی را می توان کاربر پسند ترین ابزار بازی سازی پس از انجین های اوپن سورس دانست . یونیتی این اجازه را به کاربران می دهد که هر کاری , تاکید می کنم هر کاری که می خواهند بر روی بازی خودشان بدون محدودیت انجام دهند . از قابلیت های کلیدی که این مسئله را ایجاد می کند می توان به زبان های متعدد پشتیبانی شده و همچنین قابلیت ساخت پلاگین های گوناگون برای انجین فوق را دانست.
یونیتی هر انچه را که برای ساخت یک بازی است را در اختیار شما قرار می دهد .
محیطی کاربر پسند
پشتیبانی مولتی پلتفرم
لایسنس ارزان
خروجی قدرتمند و حتی تحت وب !!!
پشتیبانی از فرمت های گوناگون منابع
و غیره ….
که به وسیله آن ها می توان بازی سازی را با قدرت ادامه داد .
از ویژگی های یونیتی که کاربران و پیش تر سازندگان ادعا می کنند سرعت ساخت است که در آن هرچه قدرتمند تر و سریعتر می توان مقدمات یک نقشه بازی را طراحی کرد و مراحل بازی را ساخت که این مسئله به خاطر همان ادیتور ساده یونیتی می باشد .
علاوه بر ویزگی های بسیار خوب این محصول باید این را نیز بدانید که در مقایسه ب عمل امده در وب سایت های معتبر
یونیتی در صدر سبک ترین انجین های مستقل بازی سازی در سراسر جهان شناخته میشود که خب این مسئله هم به اهمیت بسیار بالای این محصول می تواند اشاره کند .
برعکس یو دی کی یو نیتی به صورت یک بسته مستقل و جدا ازابتدا تحت ورژن های گوناگون انتشار یافته و بنا بر نظرات و سیاست های سازنده گان اپدیت هایی به صورت پک های ورژنی به آن اضافه شده است .
هممکنون اخرین نسخه این انجین نسخه ۴ بوده که می توانید آن را از وب سایت اصلی سازنده درسافت کنید :
Unity – Game Engine

ویژگی های اختصاصی :
UDK
ما با انجینی بسیار گسترده روبه رو هستیم که شاید به سختی بتوان تمامی امکانات آن را مورد بررسی قرار داد و یا نام برد
UnrealEditor :

قدرت انریل ادیتور به راحتی و با سرعت در دسترس طراحان می باشد . این قسمت تمامی امکانات و چیزهایی که شما برای ساخت یک جهان بازی در هر زمان نیاز دارید را در اختیار شما قرار خواهد داد .

بررسی ویژگی های انریل ادیتور :
Unreal Content Browser
ابزاری بسیار قدرتمند برای دسته بندی و طبقه بندی فایل های منابع بازی که به راحتی می توان ان ها را در غالب پکیج های گوناگون ذخیره کرده و در زمان مناسب فقط با جستجو و تنها با کشیدن و رها کردن ابجکت ها بر روی سکانس از منابع وارد شده استفاده کرد .
کیفیت این فسمت آن قدر موفق بوده که حتی چندین انجین بازی سازی معروف دنیا نیز از روی ان الگو برداری کرده اند .

Fast Game Preview :
به وسیله ادیتور انریل انجین شما می توانید به راحتی نمای بازی را مشاهده کنید . همچنین این قابلیت نیز وجود دارد که شما بتوانید بازی را فقط در یکی از نماهای ادیتور اجرا کرده و در نماهای دیگر جنبه های طراحی آن را مشاهده کنید

Accurate Graphics :
تمامی نماهایی که داخل ادیتور آن را مشاهده می کنید دقیقا همان گرافیکی را دارد که در خود بازی مشاهده می کنید . این بسیار می تواند به طراحی بازی و سرعت بخشیدن به خروجی های طراحان کمک کند

Unreal Kismet, :
برنامه نویسی ویژوال که با استفاده از ان حتی طراحان مراحل نیز می توانند کدهای برنامه نویسان را به هر آن گونه که می خواهند تغییر داده و یا استفاده کنند

Unreal Matinee :
ابزار ساخت سکانس های سینمایی در بازی بوده که به وسیله آن می توان روند ساخت این گونه سکانس ها را همانند یک فیلم هالیودی سرعت و کیفیت بخشید

Material Editor :
ابزار ساخت بافت ها که به وسیله آن می توان هر آن چه می خواهیم را بر روی تکسچر ها اعمال کنیم. ابزاری که یکی از جنبه های معروفیت انریل انجین به خاطر آن می باشد

Unreal Engine Partner
تقریبا هر شرکت گردن کلفت و خوش نامی همکار و تهیه کننده میان افزار های انریل انجین است (بدین لحاظ از نام انریل انجین به جای یو دی کی استفاده کرده ایم که در بخش های فوق یک هستند )
که می توانید لیست شرکت های فوق را از ادرس زیر مشاهده کنید :
UDN – Three – IntegratedPartnersProgram
انواع و اقسام میان افزار های بهینه سازی مراحل وساخت مراحل – ساخت طبیعت – انیمیشن و غیره …. در انریل انجین و یو دی کی قرار دارد .
البته در لیست ارائه شده مواردی نیز وجود دارند که به خاطر سیاست های شرکت سازنده در اختیار یو دی کی و بازی سازیان مستقل قرار نگرفته است
مانند HumanIk معروف از شرکت اتودسک .

رندر :

قدرت رندر فوق العاده و به روز انریل انجین در کنار استفاده از اخرین تکنیک های روز تصویر سازی در دنیا بوده است .
قابلیت به کاربران این امکان را میدهد که بهتری خروجی ها را تحت دایرکت ایکس ۹ , ۱۰ و ۱۱ بگیرند .
قابلیت پشتیبانی از رندر چند هسته ای – اخرین نسخه PrePixl Light
انواع و اقسام نور پردازی ها
پشتیانی از انواع و اقسام سایه ها و تکنیک های سایه پردازی
و همچنین عدم بیش از حد استفاده کردن این سیستم از امکانات Pc را تنها گوشه ای از قدرت این قسمت دانست
Rendering System | Unreal Gemini

UnrealSwarm :
یکی از ابزار های فوق العاده ای که در کنار ابزارهای بی شمار این انجین قرار دارد ابزار رندر می باشد . به وسیله این ابزار می توان رندر و پردازش بازی را به صورت دسته ای در میان یک شبکه تقسیم بندی کرد
Distributed Computing System | Unreal Swarm

انریل اسکریپت :
زبان برنامه نویسی با ده سال سابقه . اسان و قدرتمند که به راحتی تمامی جنبه های ساخت یک بازی پیشرفته را فراهم می کند

UnrealScript Object Oriented Programming Language

Terrain :
ابزاری جهت ساخت عوارض زمین که آن را به نام LandScape نیز می شناسند برای ساخت و می توان گفت تسهیل بخشیدن به روند ساخت کوه ها – تپه و در کل همان تعریف عوارض زمین
از ویژگی های این سیستم :
ابزار قدرتمند ویرایش
پشتبانی از سیستم Lod
پشتیبانی از قابلیت Tessellation و displacement دایرکت ایکس ۱۱
قابلیت استفاده از بافت های چند لایه ای
قابلیت استفاده از بافت های با Resolution بالا بدون پایین امدن و یا افت حافظه سیستم

و غیره ….

UserInterface به لطف همکاری ScaleFrom :

ابزار فوق یکی از ساخته های موفقش شرکت ScaleFrom یکی از شرکت های زیر مجموعه اتودسک سازنده نرم افزار فوق محبوب تری دی مکس بوده که بی شک در انقدر بازی استفاده شده که معروفیت آن بیش از پیش است
در بازی های مختلفی مانند :
اساسین کرید
اسپلینتر سل
و غیره ….
این ابزار این قابلیت را به کاربران می دهد که به وسیله ابزار فلش بتوانند منو ها و رابط کاربری را در بازی پیاده سازی کنند
udk2a

فیزیک :

فیزیک قدرتمند این انجین با قدرت گرفتن از انجین فیزیک معروف انویدا این قابلیت را به سازنده گان می دهد که به راحتی هر انچه م یخواهند را در بازی پیاده سازی کنند
از قابلیت های این سیستم :

Unreal PhAt :
ابزاری فیزیک مجازی برای مدل ها در انریل ادیتور

Intense Physics :
شامل تقریبا تمامی تکنیک های شناخته شده در صنعت بازی :
Rigid bodies, soft bodies, elastics, ragdoll characters and dismemberable objects
که همگی آن ها به راحتی در اختیار سازنده گان قرار گرفته است

Animation Blending :
ادغام فیزیک با انیمشن برای طراحی هرچه بیشتر و واقعی تر حرکات د بازی

Crowd System :
تکنولوژی جمعیت که باعث میشود بتوان هزاران کارکتر را بدون پایین امدن و لگ در بازی قرار داد

Simulated Clothing :
شبیه ساز پارچه که سابقا به وسیله نسخه های قدیمی تر انجین فیزیک انویدا در انریل انجام میشده اما در حال حاظر می توان به وسیله میان افزار Apex به واقعی ترین شکل ممکن ان را انجام داد

Destructible Environments :
ابزار تخریب پذیری فوق العاده که به کاربران این اماکن را می دهد که وسیله آن محیط های تمام تخریب پذیر را ایجادک نند . همچنین با اضافه شده Apex Destruction نیز می توان به جرات گفت قدرت این قابلیت ۱۰۰ برابر شده که شما می توان هزارات تکه تخریب پذیر به وجود بیاورد

Cascade :
ابزار ایجاد و کار با سیستم پارتیکل در بازی . این ابزار این اجازه را به طراحان می دهد که به راحتی با استفاده از اسپرایت های گوناگون هر انچه از یک پارتیکل می خواهند را بتوانند بسازند !!!!!
این قسمت با دارا بودن ادیتور جدا و قدرتمند این قابلیت را به طراحان می دهد که به راحتی از تمامی امکانات و از انچه که در ذهن دارند برای ساخت بهترین خروجی ها استفاده کنند
از قابلیت هعای این سیستم :
کنترل پارتیکل ها در فرایند سینماتیک سازی
فیزیک پارتیکل به وسیله انجین فیزیک انویدیا
ماژول های گوناگون برای کار بر روی اسپرایت های انیمیشنی
استفاده از هر نوع متریال برای این کار

ویژگی های دیگر :

پشتیبانی از تکنولوژی محبوب Substance
پشتیانی از اکثریت قابلیت های معرفی شده دایرکت ایکس ۱۱
پشتبانی از نرم افزار معروف متحرک سازی چهره FaceFx
پشتیانی از نرم افزار معروف ساخت سیستم طبیعت Speedtree
و غیره ….

http://www.unrealengine.com/en/features/ قسمت دوم مقاله :

Unity3d
ویژگی های اختصاصی :
خوشبختانه انقدر پیشرفت این انجین زیاد بوده که نمی توان به همین ساده گی ویژگی ها آن را بر شمرد .

WorkFlow

Unity Editor :
یک ابزار کامل و گستره با رابط کاربری بسازی مناسب جهت ساخت بازی های رایانه ای به وسیله این ابزار شما به راحتی می توانید نور وارد سکانس کرده – کارکتر دربازی قرار داده و محیط را به راحتی طراحی کنید .
از قابلیت های بسیار مناسب ای ادیتور :

ProjectBrowser

که در نسخه های اخیر یونیتی به ان اضافه شده و به راحتی و با دسته بندی منابع وارد شده توسط طراحان می تواند به ان ها در طراحی بازی کمک بسیار کند

[تصویر: projectbrowser-small.jpg]

Game :
قابلیت کنترل روند اجرای بازی در سکانس ادیتور . به این صورت که شما هر زمان که بخواهید می توانید بازی را در ادیتور اجرا کرده و درست در هز زمانی که بخواهید ان را نگه دارید
[تصویر: game-small.jpg]

و از دیگر قابلیت مهم ان می تواند به قابلیت GUI اسکریپت برای اضافه کردن ادیتور به آن اشاره کرد

AssetWorkFlow :
این قسمت به وسیله مدیر منابعی که در قسمت بالا نیز به ان اشاره شد به راحتی به طراحان قابلیت طبقه بندی و استفاده مجدد از منابع را در بازی می دهد . این بخش به راحتی به کاربران این امکان را میدهد که هر مدلی که می خواهند – هر منبع صوتی که می خواهند از ورودی وارد انیجن کرده و سپس با پردازش مناسب ان به راحتی در بازی استفاده کنند
قابلیت پشتبانی از فرمت های گوناگن برای منابع بازی تنها گوشه ای از قدرت این سیستم در طراحی مراحل در یونیتی می باشد
Unity – Asset Workflow – Line up your assets in your game with Unity’s fast and no-fuss asset pipeline

Scene Building:
[تصویر: scene-view.jpg]

یونیتی را بیشتر برای سرعت ساخت ان میشناستند . به وسیله یونیتی می توان به سرعت و به راحتی یک سکانس بازی را با قابلیت کنترل کوچک ترین جزئیات سکانس در دست گرفت . به وسیله یونیتی شما دیگر محدودیتی در ساخت یک سکانس استاندارد نخواهید داشت و می توانید کامپونتنت های مورد نظر خود را تنها با اشاره و کلیک و یا کشیدن و رها کردن در بازی خود قرار دهید

Unity scripting :

اسکریپت در یونیتی به شما این اجازه را می دهد که با سرعت و قدرت کامل برنامه نویسی محیطی خود را انجام دهید . جالب است این را هم بدانید که حتی در این قسمت نیز رفاه کاربران در نظر گرفته شده و از میان چندین زبان برنامه نویسی این انتخاب به خود کاربران داده شده که از کدامین زبان برنامه نویسی بخواهند استفاده کنند
از زبان های پشتبانی شده ای ن قسمت می توان به :
C#
Boo
Java
اشاره کرد .
قابلیت Easy Debugging نیز به واسله رابط مونو در ویندوز و مک به وجود امده است . به همین راحتی بازی خود را نگه داشته یک خط را تغییر دهید و دوباره بازی را در ادیتور در همان حالت اجرا کرده و تغییر را مشاهده کنید .
Unity – Scripting – Script your gameplay in a world-leading programming environment

quality
ساخت عناوین AAA به راحتی به وسیله سیستم رندر قدرتمند یونیتِی

به واسطه این سیستم قدرتمند و امکانات فراوان ان می توان به راحتی عناوینی بسیار عالی را به وجود اورد . شاید باور ان سخت باشد که تکنیک ها و تکنولوژی های گران قیمتی که شرکت های بزرگ دیگر بازی سازی ملیون ها دلار برای ان خرج می کنند در اینجا به صورت رایگان و یا با قیمتی بسیار پایین در اختیار کاربران و می توان گفت هر کاربری قرار دارد

Rendering :
[تصویر: dx11-small.jpg] پشتیبانی گسترده از APi های دایرکت ایکس ۱۱ .
یونیتی با پشتیبانی از Api قدرتمند گرافیکی دایرکت ایکس ۱۱ و با بهینه سازی بسیاز گسترده و عالی از شدر های این Api و با در اختیار قرار دادن ShaderModel5 به وسیله پردازش موازی بین Gpu و Cpu به راحتی می تواند نهایت کیفیت ممکن را برای محیط های ساخته شده کاربران فراهم کند .

سیستم نورپدازی گسترده :
یونیتی از سیستم رندرن deferred light برای استفاده از نهایت قدرتند و تکنولوژی نورپردازی وسایه ها در بازی استفاده می کند . به وسیله آن شما میتوانید از نور های بسیاری برای نورپردازی سکانس خود استفاده کرده و بدون پایین امدن پرفرمنس حافظه به راحتی محیط های زبای خود را به وجود بیاورد . از قابلیت های پشتبانی این سیستم نیز می توان به رندر HDR نیز اشاره کرد و همچنین قابلیت رندر چند هسته ای که می تواند به سرعت رندر بازی نزد بازی سازان کمک بسیاری کند

Occlusion Culling :

این قابلیت با استفاده از میان افزار امبرا که استفاده ان در بازی های بزرگ و معروف دنیا قابلیت های ان را نیز اثبات کرده است می تواند بسیار و بسیار به طبیعی تر بودن سایه ها در عمق سایه ها در سکانس و مدل ها کمک کند . در باره پرفرمنس این قسمت نمی توان چیزی گفت چرا که امبرا فوق العاده بودن خود را قبلا هم ثابت کرده است

معایب و ضعف ها :
به طور معمول می توان این مسئله را منطقی دانست که محصول رایگان نمی تواند بهترین باشد چرا که اگر بهترین باشد خب شرکت های دیگر چرا باید پول های هنگفتی جهت تهیه انجین ها و ابزارهای گران قیمت بدهند در حالی که می توانند از همین ابزار رایگان استفاده کنند . در اینجا ما می خواهیم به ترتیب ضعف های مربوط به این دو ابزار بازی سازی به همراه باورهای غلطی که در مورد ان ها به وجود امده و یا وجود دارد را بررسی کنیم
UnrealDevelopmentKit
مقدمه :
هم زمان با معرفی این کیت رایگان توسط اپیک گیمز این مسئله در بین بازی سازان مستقل سراسر دنیا مطرح شد که ایا این کیت می تواند انتظارات و امکانات در بخش فنی ساخت بازی را فراهم کند یا خیز ؟؟؟ ایا این کیت دوباره همان انریل ادیتور ماد ساز قبلی را ارائه خواهد داد یا اپیک گیمز واقعا چیز جدیدی را ارائه کرده است ؟؟؟
شاید باورش سخت باشد که بگوییم اپیک گیمز واقعا یک کیت تمام عیار بازی سازی برای بازی سازان مستقل ارائه داده است که صد البته محدودیت های آن در مقابل امکاناتی که در برابر بازی سازان مستقل قرار میدهد را می توان به جرات گفت دیده نخواهد شد .
ضعف های معمول :
کرش های متعدد انجین در حین ساخت بازی :

می توان گفت این مشکل تقریبا حل شده . سابقا و می توان گفت این مشکل در دو سال ابتدایی بسیار دیده میشد که با تنها اشتباه کوچکی ادیتور کرش کرده و بدون سیو کردن انجین بسته میشد که این موضوع به علت عدم Error Handle کردن نرم افزار از طرف سازندگان بوده است . این مشکل تا حدودی بسیار زیادی برطرف شده اما هنوز هم می توان گفت این مشکل در بعضی موارد وجود دارد . به عنوان مثال استفاده نامناسب از ابزار پایلون و چینش نامناسب آن باعث کرش کردن انجین خواهد شد !!! و یا رندر نکردن در مدت زمان زیاد باعث میشود که برنامه هنگ کرده و خارج شود و مواردی از این دست …. که البته بیشتر این موارد از عدم استفاده مناسب کاربران انجین ناشی میشود که می توان با کمی بیشتر کردن مهارت آن ها را برطرف کرد .
کامپایل اسکریپت به صورت افلاین

یکی از مشکلاتی که سرعت ساخت و برنامه نویسی را توسط تیم سازنده بازی کم می کند همین کامپایل اسکریپت های برنامه نویسی شده به صورت افلان است . یعنی شما برنامه برنامه نویسی گیم پلی بازی ابتدا باید انجین را بسته تغییر را ایجاد کنید کامپایل کرده و دوباره انجین را ایجاد کرده و نتیجه را مشاهده کنید . این می تواند به خودی خود سرعت ساخت را از تیم سازنده بگیرد و در صورت عدم وقف پذیری تیم سازنده به این روند کاملا به یکی از عذاب اور ترین بخش های انجین تبدیل خواهد شد . البته این بخش در حین عذاب اور بودن به وسیله روش های و مسیر های پیشنهاد شده دیگری نیز توسط کاربران به کار گرفته میشود . مثلا استفاده از کیسمت و یا
Archetype ها که می تواند علاوه بر بالابردن سرعت کد نویسی عملیات مجدد کد نویسی و کامپایل مجدد آن را برطرف می کند . همانطور که گفته شد انقدر راه های متعددی برای کنار امدن با این بخش وجود دارد که استفاده از آن ها به راحتی می تواند تا حد بسیار زیادی کمبود این بخش را جبران کند
عدم وجود ادیتور ثابت برای اسکریپت نویسی :
اگر چه خود اپیک گیمز تاکید کرده که این مشکل نیست ولی باز هم عدم در اختیار داشتن ادیتور مناسب برای انجین یکی دیگر از مشکلات ان است . مطمئنا تمامی برنامه نویسان می خواهند در حین برنامه نویسی به قابلیت های AutoCompletion دسترسی داشته باشند اما این قابلیت تاکنون به طور کامل در پلاگین ها و ادیتور های ارائه شده برای انریل اسکریپت وجود ندارد . اگر چه ادیتور هایی نیز به وجود امده اند که این کار را با ترفند های متعددی انجام میدهند ولی باز هم عدم وجود یک ادیتور و مخصوصا یک ادیتور قابت و داخلی برای انجین کاملا حس می شود
اکم بودن پلتفرم های خروجی
در ابتدای عرضه این محصول اپیک گیمز قول پشتبانی از پلتفرم های خروجی بسیاری را داده بود اما متاسفانه بعد از ۴ سال اپیک گیمز حتی به همان نام هایی که برای پلتفرم های خروجی که می خواهد در انجین قرار بدهد نیز عمل نکرده . تنها و تنها ۴ خروجی برای یو دی کی وجود دارد . حتی اپیک گیمز با وجود فشار اوردن کاربران حاظر نیست خروجی اندروید را به یو دی کی اضافه کند که خب این در مقابل انجین های بازی سازان مستقل یک ضعف محسوب می شود
عدم پشتیبانی از زبان های برنامه نویسی مختلف
اگر چه یو دی کی انریل اسکریپت را دارد اما تنها به همین اکتفا کرده و اجازه به کاربران نمیدهد تا به غیر از این زبان با زبان دیگری کار کنند . هرچقدر انریل اسکریپت خوب باشد و مناسب عدم وجود زبان های متعدد برنامه نویسی به مزاغ برنامه نویسیان خوش نمیاد
لایسنس ارزان و در عین حال مشارکت گران
لایسنس یو دی کی واقعا ارزان است . فقط ۹۰ دلار برای کاربران و در حدود چند صد دلار نیز برای شرکت های بازی سازی . اما یک مسئله نیز این وسط وجود دارد در اینجا باید پس از رقم مشخصی مقداری را به عنوان مشارکت به اپیک گیمز پرداخت کرد که خب برای بار اول مطئنا به مذاغ سازنده گان خوش نمیاد . اما توجه داشته باشید که این فقط یک بار است و تمام …..
محدودیت دسترسی به فیزیک انجین
هر چقدر که فیزیک در این انجین دارای امکانات متعدد باشد باز هم عدم دسترسی تیم سازنده به طراحی فیزیک انجین محدودیت های بسیازی را ایجاد می کند به طوری که شما در ساخت بعضی از امکانات محدودیت دارید و مثلا نمی توانید شبیه سازی ماشین را به صورت کاملا استاندارد و مناسب انجام دهید و یا حتی می توان گفت به خاطر این محدودیت ها نمی توانید بعضی از سبک ها را با انریل انجین پیدا سازی کنید . (بعضی از سبک های معدود و انگشت شمار)
حذف میان افزارهای ضروری
شاید این سیاست شرکت های واگذار کننده باشد اما می توان این را یکی از تفاوت های بزرگ انریل انجین و یو دی کی دانست . حذف میان افزار هایی مانند HumanIk که می تواند یکی خروجی بازی را از این رو به ان رو کند چه در زمینه انیمیشن ها و هوش مصنوعی به لطف شرکت سازنده حذف شده است این محدودیت نیست ولی اگر بود بهتر میشد
عدم وجود نورهای کاملا دینامیک
متاسفانه علی رقم ظاهر ماجرا نور های تمام دینامیک در یو دی کی وجود ندارد . البته این مسئله در هر دو انجین انریل انجین و یو دی کی وجود دارد . که البته می شود آن را به وسیله بعضی از ترفند ها انجام داد اما باعث بالاتر رفتن استفاده از حافظه خواهد شد به خاطر همین مسئله است که یو دی کی و انریل انجین نمی توانند سکانس های نورپردازی همانند کرای انجین تولید کنند .
محدودیت در دسترسی های بخش اسکریپ
هر چقدر هم که بگوییم انریل اسکریپت خوب است و هرچقدر هم در نظر بگیریم که اپیک گیمز امکانات و دسترسی های کاملی را در انریل اسکریپت برای بازی سازان در نظر گرفته شده . باز هم عدم دسترسی به کد های Native می تواند باعث مشکل شود . اگر همانند انجین هایی مانند یونیتی دسترسی های بخش برنامه نویسی بیشتر بود می توانست بعضی از محدودیت های این بخش را بر طرف سازد
خروجی پر حجم :
هر کاری هم کنیم باز هم خروجی یو دی کی زیر ۱۰۰ مگ نخواهد بود . اپیک گیمز دلیل ان را سرعت در اجرای پکیج ها و بارگزاری آن ها میداند اما هرچقدر هم که بخواهیم در نظر نگیریم باز هم نمی توان به وسیله یو دی کی بازی های کم حجم ساخت (البته راه هایی نیز برای رفع این مشکل پیشنهاد شده که می تواند حجم بازی را خیلی کمتر کند امادر حالت معمول این مشکل وجود دارد) حتی این مسئله در مورد خروجی های موبایل نیز صادق است .
مشکل Texture Poup :
این مشکل در انجین اصلی نیز وجود دارد . این مشکل هنگامی پیش میاد که میزان استفاده از منابع حافظه به ناگاه زیاد شده و سپس دربازی شاهده آن خواهیم بود که تکسچر های مربوط به مدل ها در حین باز دوباره لود میشوند !!! و یا تغییر کیفیت میدهند که این مشکل با روند های بهینه سازی تقریبا حل شده و همچنین با اضافه شدن Substance به یو دی کی می توان گفت دیگر شاهد همچین مشکلاتی نخواهیم بود

باور های غلط :
متاسفانه این باور های که بیشتر در بین ما ایرانی ها نیز وجود دارد به علت عدم وجود مهارت و دید بازی سازی به ابزار های فوق است . اگر چه بازی ساز بازی ساز است و نه کاربر انجین .
در میان ما ایرانی ها در مورد این ابزار باورها و اطلاعات غلطی وجود دارد که می خواهیم در ادامه ان ها را بررسی کنیم :
UDK انریل انجین نیست :
خوشبختانه می توان گفت بیشتر امکاناتی که در انریل انجین قرار دارد در یو دی کی هم موجود می باشد . می توان گفت تقریبا بیشتر ابزارهایی که انریل انجین دارد یو دی کی هم دارد این را می توان با تاکید خود اپیک گیمز و تصاویر موجود از انریل انجین نیز به ان پی برد بعض از امکانات خاص که به خاطر محدودیت های لاینسس و به خاطر سیاست های خود شرکت در نسخه رایگان انجین وجود ندارد که کاملا منطقی است اما از نظر قدرت تفاوت ان چنانی ندارند……
پیچیده گی بیش از حد
در صورتی که در وب سایت ها و محافل مختلف بازی سازی بگردیم این مسئله را بارها شنیده و می شنویم که کار با UDK یکنفره نیست و نمی توان با ان بازی های کوچک ساخت و یا بازی سازان تک نفره و تیم های کوچک نمی توانند با ان کار کنند . این مسئله کاملا اشتباه و وابسته به باور کاملا غلطو اطلاعات نامناسب کاربران است . udk با ابزار متعدد نیامده که بازی سازی را سخت کند بلکه با ابزار متعدد می تواند روند و جزئیات ساخت بازی را هرچه راحت تر کند . افراد بسیار زیادی هستند که در سطح دنیا به وسیله یو دی کی بازی های مستقلی را ساخته و موفقیت هم کسب کرده اند . کافی است یکی بار به وب سایت اصلی یو دی کی مراجعه کرده تا تیم های کوچک و یا یک نفره را ببینید .
مطرح شدن این بخش مربوط به عدم مهارت سازندگان است که از روی تنبلی می خواهند برای عدم یادگیری انجین یو دی کی بهانه تراشی کنند
ساخت بازی با هزینه زیاد
هر چقدر امکانات مورد نیاز بازی ما بیشتر باشد مسلما هزینه ساخت ان نیز بیشتر می شود. خروجی یو دی کی به سبب امکاناتی که در اختیار بازی سازان قرار می دهد بسیار بالاتر از بیش از ۹۰ در صد انجین های رایگان بازار است . در یو دی کی به سبب متعدد بودن و ابزارهای گوناگون شغل ها و کاربران نیز بیشتر خواهند شد . اما این دلیل بر مهدودیت نمی شود اگر بازی خوب می خواهد کار خوب هم انجام دهید با کم کاری نمی توان محصول مناسبی داشت

دسترسی نداشتن به هسته انجین
سوال اصلی اینجاست کاربر محترم و متخصص عزیز اگر شما هسته انجین را داشته باشید ایا می توانید با ان کار کنید ؟؟؟؟ هسته انجین را چگونه می خواهید به کار ببرید و چرا می خواهید این کار را بکنید ؟؟؟
معمولا این صحبت در مجمع متخصصان بازی سازی ایرانی و بعضا خارجی مطرح است که چون یو دی کی دسترسی به سورس انجین را نمی دهد پس نامناسب است . اما سوال اصلی اینجاست که چرا شرکت سازنده با وجود انریل انجین چند صد هزار دلاری باید این کار را بر یو دی کی نیز انجام دهد ؟؟؟
این دسته از متخصصات می گویند که عدم دسترسی به سورس انجین باعث به وجود امدن محدودیت در ساخت و سبک های بازی مشود که این مسئله از عدم توانایی درک نحوه کار یو دی کی و چگونگی ساخت بازی با ان ناشی می شود .

عدم پرفرمنس مناسب بازی ها

پرفرمنس مناسب در یو دی کی همانند تمامی انجین های مستقل و چه تجاری نیاز مند بحث کامل و مفصلی به نام پروفایلینگ است . اگر بازی شما پرفرمنس مناسب ندارد خب بهتر بسازید !!!
این را که نمی توان از معماری انجین دانست ! مسئله پروفایلینگ و بهینه سازی بازی یکی از مهم ترین و حتی از خود ساخت بازی هم مهم تر است اگر نمی توانید این کار را انجام دهید دیگر چه دخلی به انجین مادر مرده دارد

عدم داشتن ابزار پروفایلینگ
همانطور که در بالا نیز گفته شده یو دی کی از ابزار پروفایلنیک بهره می برد . این ابزار علاوه در خود انجین به صورت برنامه های همراه انجین در پوشه اصلی خود برنامه قرار دارند .
از ابزار های بررسی شبکه گرفته تا حتی بررسی پرفرمنس تکسچر ها و کد های انریل اسکریپت

خروجی تحت پکیج خود یو دی کی
اگر چه خروجی که به وسیله کامپایلر یو دی کی تهیه میشود تحت همان پکیج اختصاصی یو دی کی و به همراه Installer ان است اما راه های متعددی برای ساخت فایل نصبی جدا توسط کاربران و همینطور خود اپیک گیمز ارائه شده

انریل اسکریپت زبانی سخت و غیر قابل یادگیری
خیلی ها از سخت بودن این زبان اسکریپت نویسی به جهت ضعف انجین نام می برند . اما این مسئله را باید به ان ها گفت اگر برنامه نویسی نمیداند لطفا ادعای برنامه نویس بودن نکنید .
در انریل اسکریپت زیبا ترین و کامل ترین مفاهیم شی گرایی و برنامه نویسی های پیشرفته قرار دارد . اگر مسئله شیئ گرایی را در زبان های برنامه نویسی بلد باشید به راحتی می توانید با انریل اسکریپت کناربیاید . فقط و فقط تاکید می کنم اگر مسائل شیئ گرایی همانند ارث بری ها و غیره … را بفهمید به راحتی می توانید با انریل اسکریپت کار کنید
اینکه سخت است و نمی توان یادگرفت به جهت عدم اشنایی و یا عدم تسلط کامل بر روی برنامه نویسی می باشد

کیسمت بی کاربرد

کیسمت نه تنها می تواند سرعت برنامه نویسی و امکانات آن را بیشتر کند بلکه می تواند از چندین بار نوشتن کد ها نیز جلوگیری کند به وسیله کیسمت حتی طراحان نیز می توانند بر روی کد ها و نحوه اجرای انها تاثیر بگزارند

عدم پشتیبانی مناسب و وجود نداشتن منابع یادگیری :
در حال حاظر فروم اپیک گیمز بخش یو دی کی به صورت فعال برای پشتیبانی از کاربران انجین فوق وجود دارد . و صد ها گیگ و ده ها شرکت مختلف در زمینه ساخت و اماده سازی اموزش های مربوط به این انجین فعال هستند . می توان گفت در این قسمت انریل انجین بسیار بهتر از دیگر انجین ها عمل کرده است
Unity :

مشکلات و ضعف ها :
وارد کردن و استفاده از منابع خارجی :
متاسفانه علی رقم پیشرفت یونیتی هنوز هم در میان کاربران مشکلات وارد کردن منابع به ادیتور وجود دارد .

عدم اضافه شدن میان افزار ها :

علی رقم قولی که سازنده گان در مورد اضافه شدن تمامی امکانات وعده داده شده در نمایشگاه ها و کنفرانس ها داده بودن باز هم شاهد این هستیم که بعضی از امکانات پرطرفدار همانند Apex در انجین فوق وجود ندارد و عملا تولید کننده گان در یونیتی نمی توانند از امکانات آن استفاده کنند

مش تخریب پذیر :
با اینکه راه کارهایی نیز برای انجام این کار پیش بینی شده اما ما هنوز هم خروجی هایی همانند انجین های دیگر ماندن یو دی کی در اینجا نخواهیم داشت
محدودیت های نسخه رایگان :

شاید منطقی به نظر برسد که اگر امکانات بیشتر می خواهد پول باید خرج کنید اما این مسئله می تواند برای کاربران تازه کار مشکلاتی را ایجاد می کند مثلا لوگوی یونیتی در ابتدای تمامی محصولات خروجی در نسخه رایگان و یا عدم وجود بعضی از امکانات. مثلا در نسخه های قبلی هنگام کار با یونیتی رایگان مشاهده میشد که نمی توانستیم از نورهای دینامیک استفاده کنیم و غیره ….

معماری قدیمی در حین پیشرفت :

هر چقدر هم که به ستایش از امکانات و ویژگی های جدید یونیتی بپردازیم
باز هم می توان گفت چشمه هایی از ورژن های قدیمی در این نسخه های جدید وجود دارد . با وجود پیشرفت ها زیاد در سیستم رندر و نورپردازی ها معلوم نیست چرا باز هم ما با خروجی همانند گذشته طرف هستیم ….
** موارد فوق از گزارش ها و فید بک های کاربران خود سایت یونیتی جمع اوردی شده است

سورس کد :
جالب است این را بدانید که حتی با خرید لاینس کامل یونیتی هم نمی توانید به سورس کامل ان دسترسی داشته باشید که قاعدتا این هزینه لایسنس نمی تواند توجه کننده ان باشد . توجه خود شرکت سازنده هم جالبت است که می گویند شما به وسیله زبان های برنامه نویسی مختلف امکانات بسیاری در انجام تمام کارهای مختلف دارید و دیگر نیازی به سورس c ++ انجین ندارید اما هر چقدر هم که خوش بین باشیم نمی توان آن را قبول کرد

GUI نامناسب :
شاید این مسئله در نسخه های جدید حل شده باشد اما بازم هم GUI پایه و فعلی در یونیتی وحشتناک است و در بیشتر موارد در خود فروم پشتیبانی یوینتی هم دیده میشود که کاربران از سازنده گان تقاضا می کنند تا GUI را عوض کنند

هزینه زیاد پردازش :

اضافه شدن تکنولوزی و تکنیک های نورپردازی در یونیتی قابل ستایش است اما مشکل اصلی اینجاست که در هنگام مواجه شدن با سکانس های پیچیده تر مشکل عمده مصرف حافظه و افت فریم پدید می اید . این مشکل همیشگی یونیتی بوده که کاربران نسخه های قبل نیز می توانند ان را تصدیق کنند اما متاسفانه هنوز به طور کامل برطرف نشده است

* مطمئنا یونیتی هم بدون خطا نیست و مشکلات خود را دارد . در اینجا سعی شده تا شایع ترین مشکلات ان مورد بررسی قرار گیرد . در صورتی که اطلاعات بیشتری در مورد مشکلات این بخش دارید لطفا از لیست فوق دریغ نکنید

باور های غلط :
جالب است این را بدانید که علاوه بر بازی ها گیم انجین ها هم فن های خاص خود را دارند و در صورتی که در نت به دنبال مباحث این چنینی بگردید می توانید دعواها و مباحث در مورد برتری یک انجین نسبت به یکی انجین دیگر را بیابید . متاسفانه در میان بازی سازان جهان و همچنین بازی سازان ایرانی نیز علاوه بر یو دی کی باورهای غلطی در مورد یونیتی وجود دارد که ماوردی از انها را بررسی خواهیم کرد :
یونیتی ضعیف

اینطور در میان بازی سازان جا افتاده است که یونیتی ضعیف است و نمی توان با ان بازی در سطح AAA تهیه کرد . جالب است این نکته را بدانید که همکنون شرکت های بزرگ دنیا مانند EA و شرکت نینتندو محصولاتی را با استفاده از یونیتی به بازار عرضه کرده اند . اگر ضعیف است چرا Ea ازیونیتی استفاده کرده ؟؟؟ این مسئله به عدم مهارت بازی سازان محترم بر می گردد و باز هم زنده کننده همان تعریف و فرق بازی ساز با کاربر انجین . بازی سازی فقط کار با انجین و زدن یک یا دو تیک نیست بازی سازی مجموعه ای از فعالیت هاست که هر چقدر کیفیت کار انها بیشتر باشد کیفیت خروجی نیز بهتر است . اگر میزان پولی گان مدل شما کم است انجین مادر مرده چیکار باید بکند …….
مناسب برای بازی های کوچک
این مسئله باز هم به عدم شناخت دقیق و عدم دانش کافی در بازی سازی ناشی می شود . بازی سازی بازی سازی است دیگر بزرگ و کوچک چیست ؟؟؟ یعنی یونیتی باعث می شود که بازی های کوچک بهتر ساخته شوند ؟؟؟ یعنی ابزار خاصی برای این کار وجود دارد یا مثلا کاری که برای یک بازی بزرگتر می توان انجام داد را اینجا نمی شود ؟؟؟؟
مناسب برای تازه کاران :
برعکس این طرز فکر یونیتی به دلیل دارا بودن و در اختیار قرار دادن دسترسی های بیشتر برای کاربران خود به بازی سازان واقعا حرفه ای نیازمند است هر چقدر هم در نظر بگیریم که کد نویسی در این انجین کم است ایا می توان از شیدر نویسی و مواردی از این دست به عنوان مناسب بودن برای تازه کاران صحبت کرد ؟؟؟؟؟
نتیجه گیری نهایی :
هر کدام از دو ابزار فوق ویژگی ها و ضعف های خود را دارا می باشند این کاربران هستند که باید این ضعف ها را شناخته و بر اساس انها تصضمیم گیری کنند . همانطور که در ابتدای مقاله نیز به ان اشاره شد سازندگان و تیم سازنده باید بر اساس نیاز های خود ابزار مناسب را انتخاب کند.

کاملترین مقایسه بین زبان برنامه نویسی وب ASP.NET و PHP – قسمت اول

مقایسه PHP,ASP

اکثر دوستان با این مسئله آشنایی دارند که بنده Unity برنامه نویس خوبی نیستم ، هر چند به برنامه نویسی خیلی علاقه مند هستم ، چند وقت پیش یکی از دوستان در خصوص انتخاب زبان برنامه نویسی وب از بنده سئوالاتی پرسید که بنده هم با جستجویی که انجام دادم این مطلب را نوشتم و در اختیار دوستان قرار می دهم ، امیدوارم مورد توجه شما قرار بگیرد. امروزه هر کسی که به دنبال برنامه نویسی وب و مخلفات آن می رود ناخودآگاه دو گزینه به گوشش می رسد که معمولا بین این دو گزینه بایستی یکی را برای شروع برنامه نویسی تحت وب انتخاب کند و آن را بصورت حرفه ای ادامه دهد. یکی از این اسامی PHP و دیگری ASP.NET و مشتقات آن است. یکی از مهمترین مشکلاتی که در انتخاب یکی از این زبان های برنامه نویسی وب وجود دارد این است که مقایسه درستی بین این دو زبان بصورت جامع و به زبان فارسی وجود ندارد ، شما کافیست تفاوت بین زبان ASP.Net و PHP را در اینترنت به فارسی جستجو کنید ، مشاهده می کنید که اکثر وب سایت ها با رویکرد طرفدارانه مقایسه خود را انجام داده اند یا فقط یه ترجمه یک متن خارجی کفایت کرده اند ، اگر شخصی برنامه نویس ASP.NET است به طرفداری از این زبان برنامه نویسی و کوبیدن زبان برنامه نویسی PHP پرداخته است و برعکس همین مورد هم برای برنامه نویسان PHP وجود دارد.

خوشبختانه بنده Unity به عنوان مدیر کل انجمن تخصصی فناوری اطلاعات ایران اصلا برنامه نویس نیستم و این مقاله را در قالب شخصی که قصد ورود به دنیای برنامه نویسی وب دارد و برای اینکار جستجوهایی زیادی انجام داده است می نویسم ، بنابراین مطمئن باشید در این مقاله از هیچ زبان برنامه نویسی حمایت نمی کنم و فقط به بررسی مزایا و یا معایت این دو زبان برنامه نویسی وب می پردازم ، ابتدا به معرفی ASP و PHP می پردازیم و سپس ملاک هایی که می توان برای مقایسه این دو زبان عنوان کرد را با هم مقایسه می کنیم و در نهایت به یک نتیجه کلی می رسیم که قطعا این نتیجه کلی طرفداری از زبان برنامه نویسی خاصی نخواهد بود و انتخاب اصلی با شما خواهد بود .قبل از اینکه انتخابی انجام دهید می خواهیم تفاوت بین این دو زبان برنامه نویسی را برای شما تشریح کنیم تا در انتخاب میان اینها دچار مشکل نشوید. هر دو زبان برنامه نویسی تحت PHP و ASP.NET در واقع زبان های اسکریپت نویسی سمت سرور یا در اصطلاح فنی Server Side Scripting هستند که برای طراحی وب سایت های داینامیک مورد استفاده قرار می گیرند. صفحات وب داینامیک ابتدا درخواست کلاینت را در سمت سرور پردازش کرده و در نهایت پس از هر بازدید کاربر نتیجه را به سمت کاربر ارسال می کنند. انتخاب بین این دو زبان اسکریپت نویسی بستگی به مواردی از قبیل اندازه و بزرگی وب سایت ، قابلیت های توسعه وب سایت ، هزینه های هاستیگ وب ، هزینه های پشتیبانی و زمان پیاده سازی و بسیاری دیگر از مواردی از این قبیل دارد که در ادامه به بررسی اکثر این موارد خواهیم پرداخت.

41488e4540da4cbba4f56faab60ca527
معرفی زبان : زبان برنامه نویسی وب ASP یا ASP.NET چیست ؟

ASP مخفف کلمه Active Server Pages است و یک محصول منحصر به فرد برای شرکت مایکروسافت به حساب می آید ، این زبان برنامه نویسی اکنون منسوخ شده است و جای خود را به زبان اسکریپت نویسی ASP.NET داده است. در همینجا به این نکته اشاره کنم که در واقع ASP.NET یک زبان برنامه نویسی نیست بلکه یک تکنولوژی برنامه نویسی وب با استفاده از دات نت است، شما می توانید با #C یا #F یا زبان های برنامه نویسی دیگر دات نت ASP.NET بنویسید ، اما با توجه با اینکه شما به عنوان یک زبان بیشتر با این محصول آشنا هستید ما در این سری مقالات از ASP.NET به عنوان یک زبان برنامه نویسی یاد می کنیم. بیشتر شرکت های و سازمان های بزرگ برای نرم افزارهای تحت وب خود از این زبان برنامه نویسی استفاده می کنند. نرم افزاری که بیشترین هماهنگی با این زبان برنامه نویسی را دارد به عنوان Microsoft Visual Studio شناخته می شود که در واقع محیط برنامه نویسی مایکروسافت محسوب می شود. در این نرم افزار قابلیت های بسیار زیادی برای برنامه نویسی بصورت پیشفرض قرار گرفته اند که کار برنامه نویسی را برای برنامه نویسان بسیار راحت می کند. معمولا تعداد خط های کدی که باید برای یک برنامه به زبان ASP.NET نوشته بشود نسبت به محصولات مشابه کمی بیشتر است که همین دلیل می تواند تا حدودی باعث زمانگیر بودن کدنویسی در این زبان برنامه نویسی برای فعالیت های پیچیده شود. در صورتیکه تغییری در هر خط کد از این زبان برنامه نویسی انجام شود به ناچار کل برنامه بایستی مجددا کامپایل شود ، بنابراین زمان برنامه نویسی تا حدودی افزایش می یابد.وب سروری که با این زبان برنامه نویسی هماهنگ است صرفا وب سرور شرکت مایکروسافت که همان IIS است می باشد و معمولا به عنوان پایگاه داده نیز در این نوع زبان برنامه نویسی از Microsoft SQL Server استفاده می شود.

ASP.NET چیست ؟

درست است که ASP.NET و IIS هر دو نرم افزارهایی رایگان هستند اما شما برای لایسنس ویندوز بایستی پول پرداخت کنید و از طرفی نرم افزار Visual Studio نیز نرم افزار ارزان قیمتی نیست. پشتیبانی زبان برنامه نویسی ASP.NET توسط وب سایت و مرجعی به نام MSDN انجام می شود که مخفف کلمه Microsoft Software Developer Network می باشد. پیشرفت ها و توسعه هایی که در این زبان برنامه نویسی انجام می شود توسط بازخوردها و تجاربی است که کاربران این محصول به وب سایت این شرکت اطلاع می دهند و همین موضوع باعث ارائه نسخه های جدیدتر این زبان برنامه نویسی با امکانات جدید می شود. ASP.NET تحت برند مایکروسافت است و این یعنی بسیاری از زبان ها یا Platform های دیگر را پشتیبانی نمی کند اما در این حین به شما امکانات بسیار ساده ای برای شروع برنامه نویسی می دهد ، ماژول های آماده و محیطی ساده و رابط کاربری آسان برنامه نویسی را برای کاربران لذت بخش می کند. توجه کنید که یکی از مشکلاتی که در دنیای برنامه نویسی به این زبان برنامه نویسی وارد می شود هزینه ای است که برای خرید نرم افزارهای آن صرف می شود ، اما با توجه به اینکه ما در ایران هستیم و هیچ هزینه ای برای خرید این نرم افزارها نمی کنیم ، ASP.NET می تواند گزینه مناسبی برای برنامه نویسی وب باشد. البته این نکته را هم متذکر می شوم که این قسمت ترجمه از یک وب سایت خارجی بود و تنها به عنوان معرفی استفاده شده است قطعا در ادامه بیشتر با این مواردی که ذکر کردیم آشنایی پیدا خواهید کرد.

معرفی زبان : زبان برنامه نویسی وب PHP چیست ؟

PHP مخفف کلمه PHP Hypertext Preprocessor است و یک نرم افزار یا بستر برنامه نویسی متن باز و رایگان است که توسط شخصی به نام رزموس لردورف در سال ۱۹۹۵ طراحی و ایجاد شد. یکی از نکات مهمی که در خصوص برنامه نویسی به زبان PHP وجود دارد این است که این زبان وابسته به هیچ Platform خاصی نیست و می توان آن را بر روی هر سیستمی عاملی اجرا و استفاده کرد. شرکت های متوسط و کوچک بیشتر از این زبان برنامه نویسی در دنیا استفاده می کنند زیرا هزینه توسعه و همچنین هزینه هاستینگی که در اینترنت دارد بسیار ارزان است. بسیاری از ابزارهای رایگان برای توسعه دهندگان این زبان برنامه نویسی بصورت رایگان در اینترنت وجود دارد که به برنامه نویسان PHP این امکان را می دهد که بتوانند براحتی با آنها برنامه بنویسند.

PHP چیست ؟

زمانیکه بحث زمان تولید پیش می آید با توجه به اینکه معمولا در پروژه های پیچیده تعداد خطوط کد PHP کمتر از ASP.NET است زمان کمتری برای پیاده سازی لازم است. PHP را می توانید بر روی هر سروری که بتواند از HTML پشتیبانی کند اجرا و استفاده کنید و معمولا پایگاده داده ای که برای نرم افزارهای تحت PHP استفاده می شود پایگاده داده رایگان MySQL است که متن باز نیز می باشد. هزینه هاستینگ PHP با توجه به قابلیت استفاده این زبان از لینوکس به عنوان یک سرور رایگان ارزانتر از نمونه ویندوزی است. توسعه ، پیشرفت و ارتفاء این زبان برنامه نویسی نیز بر اساس بازخوردهایی است که در تالارهای گفتمان آنلاین و مجامعی که برای این مورد در نظر گرفته شده اند انجام می شود. البته این نکته را هم متذکر می شوم که این قسمت ترجمه از یک وب سایت خارجی بود و تنها به عنوان معرفی استفاده شده است قطعا در ادامه بیشتر با این مواردی که ذکر کردیم آشنایی پیدا خواهید کرد.

ملاک های انتخاب یک زبان برنامه نویسی وب چیست ؟

اگر از دانشجویان شبکه و امنیت بنده سئوال کنید حتما این مورد را به شما می گویند که به هیچ عنوان بصورت کلی نمی توانیم بگوییم فلان چیز خوب است یا فلان چیز بد است ، برای تعیین خوبی یا بدی چیزی بایستی شما دارای ملاک یا فاکتور باشید در غیر اینصورت مقایسه یا انتخاب شما غیرفنی و از روی تعصب یا نادانی خواهد بود. در خصوص انتخاب زبان برنامه نویسی هم همینطور است ، شما بایستی بدانید ملاک های شما برای انتخاب یک زبان برنامه نویسی وب چیست ؟ صرفا به دلیل اینکه فردی بگوید زبان برنامه نویسی PHP بهتر است زیرا وی برنامه نویس PHP است و یا بر عکس برای برنامه نویسان ASP.NET ، شما نباید انتخاب انجام دهید. بنابراین مقایسه و انتخابی درست است که بر اساس ملاک و فاکتور و بدور از تعصب باشد. تکنولوژی مورد استفاده ، سادگی کار یا سهولت کاربری ، وابستگی به Platform ، امنیت ، سرعت و کارایی در اجرا ، ابزارها و رابط های کاربری ، سرعت توسعه ، منابع آموزشی و یادگیری ، پشتیبانی ، بازار کار ، هزینه و بحث بهینه سازی برای موتورهای جستجو می تواند مهمترین ملاک ها برای تعیین برتری یک زبان برنامه نویسی تحت وب می باشد که در ادامه به بررسی تک تک این موراد برای مقایسه ASP.NET و PHP خواهیم پرداخت. در قسمت بعدی به بررسی این فاکتورها خواهیم پرداخت. ITPRO باشید.

(Untitled)

 

با شنیدن زنگ اس ام اس خود، دیگر نگران نباشید که کسی اس ام اس های شما را بخواند. البته این موضوع شامل ایمیل ها هم می شود، با استفاده از نرم افزار Secret Message Pro که امروز بصورت رایگان  در اختیار شما کاربران گرامی قرار می گیرد، شما مطمئن خواهید بود که اس ام اس های شما توسط الگوريتم AES رمز نگاری شده است و بدون وارد کردن پسورد نمی توان اس ام اس ها را خواند!

امیدواریم مفید واقع شود.

نکته: توجه داشته باشید که هر دو طرف باید این نرم افزار را نصب کنند و برای خودشان یک پسورد مشترک انتخاب کنند(گیرنده،باید پسورد پیام را بداند تا بتواند پیام را رمز گشایی کند).

 

posix

استفاده از عبارت‌های منظم در php با کمک دو کتابخانه‌ی درونی امکان‌پذیر است. کتابخانه‌ی اول که از مدل POSIX پیروی می‌کند و شامل تابع‌های ereg، ereg_replace، split و … است و کتابخانه‌ی دوم که از مدل PERL پیروی می‌کند و شامل تابع‌های preg_match، preg_replace، preg_split و … می‌شود.
استفاده از سری توابع POSIX در نسخه‌های جدید php منسوخ شده است و توصیه شده تا برنامه‌نویسان از کتابخانه‌ی PERL استفاده کنند.

تلاش می‌کنیم با چند مثال ساده، شیوه‌ی استفاده از عبارت‌های منظم در php با استفاده از کتابخانه‌ی PCRE یا سازگار با PERL را مرور کنیم.

برای آشنایی با Regular Expression یا عبارت منظم، اینجا کلیک کنید

preg_match

ساده‌ترین شکل استفاده از عبارت‌های منظم، عمل جستجو است که این تابع انجام آن را بر عهده دارد.
دو پارامتر ابتدایی این تابع اجباری هستند که به ترتیب «عبارت منظم» و «رشته‌ی هدف» را مشخص می‌کنند. برای مثال به نمونه کد زیر تو

تفاوت بین سینگل کوتیشن و دبل کوتیشن

تفاوت بین سینگل کوتیشن و دبل کوتیشن در پی اچ پی PHP  در لینک زیر:

تفاوت بین سینگل کوتیشن و دبل کوتیشن

تفاوت اسکرام با روش های قدیمی مدیریت پروژه چیست

خلاصه ای درباره ی اسکرام Scrum  در لینک زیر:

تفاوت اسکرام با روش های قدیمی مدیریت پروژه چیست

تابع های posix چی هستند

نوشته ای مفید در زمینه توابع posix  در ابر پیوند یا همون لینک! زیر:

تابع های posix در زبان پی اچ پی چی هستند

ارسال ایمیل در php چطور پیاده سازی می شود

شرح یکی از بهترین روش های ارسال ایمیل در پی اچ پی را در لینک زیر بخوانید:

ارسال ایمیل در php چطور پیاده سازی می شود

از تابع phpinfo در کجا استفاده میشه کرد و چطور؟

توضیح مختصری در این مورد در لینک زیر:

از تابع phpinfo در کجا استفاده میشه کرد و چطور؟

چه نکته هایی رو در استفاده از مای اس کیو ال باید رعایت کرد؟

برای خواندن مطلب به لینک زیر مراجعه فرمایید:

چه نکته هایی رو در استفاده از مای اس کیو ال باید رعایت کرد؟

^