ساختار بازی ها ، چندمرده حلاجی ؟
تمام کامپیوتر ، خونه خونست. مثلا مانیتور از تعداد زیادی لامپ تشکیل شده ؛ رم از تعداد زیادی خازن و...
توی حافظه موقت و دائم ، به هر خازن و اطلاعاتش میگن یک بیت (bit) ، و به هر دسته ۸ تایی از بیت ها میگن بایت(byte).
وقتی کامپیوتر روشن میشه ، هر خازن از حافظه یا cpu ، یا روشنه یا خاموش.
اگه روشن باشه بهش میگن : 1 , true , on و...
اگه خاموش باشه بهش میگن : 0 , false , off و...
در هر بایت ، تعدادی از خازن ها روشنن و تعدادی خاموش ؛ و بر اساس شمردن خونه های روشن و خاموش و جمع زدنشون ، میشه اطلاعات رو پردازش کرد و اینطوری برنامه ها به وجود میان.
البته ما نمیفهمیم چین :/
مثلا اندیس یه برنامه رو بهت بدن یه همچین چیزیه :
101010000001010101111010100000000000010000001010010101111111111100001111100000000010101001100000010100001
:/
(اندیس نویسی یعنی نمایش کد به صورت زبان دیجیتال)
برای همین ما از زبان های برنامه نویسی استفاده میکنیم . زبان های برنامه نویسی ، شبیه به زبان محاوره ای هستن و میتونن به وسیله مفسر یا کامپایلر به زبان دیجیتالی تبدیل بشن.
انجین های بازی سازی ، یه نوع مفسر محسوب میشن . مفسر ها ، کد ها رو به ترتیب از اول به آخر میخونن و به ترتیب اجراشون میکنن .
مثلا اینجا:

اگه متغیر اتک مساوی با true بشه ، :
اول انیمیشن ضربه زدن اجرا میشه ، بعد از نوار استامینا ده واحد کم میشه ، و بعد محدوده ضربه زدن فعال میشه. البته اینا خیلی نزدیک به هم هستن و احساس نمیکنید که توالی دارن ، بلکه اجراشون رو همزمان حس میکنید.
بر اساس قدرت برنامه مفسر ، کد ها با سرعت های مختلفی اجرا میشن. مثلا یک سیُم ثانیه ، یک شصتم ثانیه ، یک صد و بیستم ثانیه و...
برای بعضی کد ها که بهشون "حلقه" گفته میشه ؛ وقتی مفسر به آخرین کد میرسه و اجراش میکنه ، دوباره به اولین کد بر میگرده و دوباره از اول اجرا کردن این نوع کد رو شروع میکنه.
البته حلقه میتونه بعد از چندین بار دور زدن ، متوقف بشه و بگه کارم تموم شد.
مثلا :
ابزار های انیمیشن سازی در این موتور ها ، حلقه محسوب میشن. دائما تصاویر رو چک میکنن و در هر بار خوندن ، یک فریم میرن جلو تا وقتی که انیمیشن تموم بشه.
وقتی که کد های زیادی به طور همزمان میخوان اجرا بشن ، ممکنه به سقف توانایی مفسر برسن ، یا همه خازن های حافظه رو پر کنن.
اینجاست که بازی لگ ، یا کرش میشه و ممکنه دستگاهتون هم بسوزه :/
برای جلوگیری ازش چه برایمان آورده ای مارکو ؟!
بهینه سازی !!!
همگی تعظیم کنید !
خب حالا بهینه سازی چی هست اصلا ؟
یعنی موقع ساخت برنامه ، بدون ایجاد تغییر یا اشکال در عملکردش ،تا میتونیم تعداد کد ها رو کم کنیم.
مثلا کد های تکراری ننویسیم ؛ و اگه نیاز بود ، یک بار اون کد رو بنویسیم و بقیه جا ها اون رو فراخوانی کنیم.
یا مثلا از تعریف داده ها و متغیر های اضافی پرهیز کنیم
همین :/ ولی خیلیا همین کارو هم نمیکنن :/
چون یه قانون نانوشته هست که میگه : وقتی کدنویسی رو شروع کنی ، همه برنامه نویسا میفهمن چی نوشتی ؛ ولی وقتی برنامت کامل شد ، فقط خدا میدونه :/
کدنویسی کثیف ! به این حالت میگن کدنویسی کثیف .
البته بعضی از بازی ها واقعا پر جزئیاتن و در بهینه ترین حالتشون هم سنگینن ، ولی تو الان به من بگو پرنس آف پرشیا روگ چرا باید سنگین باشه ؟
تو هم سنگین نباش کامنت بده