PDA

نسخه کامل مشاهده نسخه کامل : فیزیک در بازی های ویدئویی



mohammd1
28-09-2012, 19:20
هدف از ساخت این تاپیک همین است که آن چه در زمینه به کار بستن فیزیک در بازی های رایانه ای میدونم رو بذارم تا همه بتونند استفاده کنند. چون اکثر بازدید کنندگان این صحفه رو افراد نوآموز ( مث خودم ) تشکیل میدن من چند پست ابتدای تاپیک رو اختصاص می دهم به بیان ابتدایی ترین مفاهیم و تا جایی ادامه میدم که برای کسایی که میخواهند یک فیزیک خفن ببندن به بازی هاشون کاربرد داشته باشه. از دو بعدی و انجین گیم میکر شروع میکنم تا ( اگه استقبال شد ) برسیم به سه بعدی و احتمالا یو دی کی

چند تا نکته
1-اگه اساتید من خواستن چیزی به تاپیک اضافه کنند، دستشون درد نکنه:31:

2-در صورتی که با اضافه کردن یک قانون فیزیکی به بازیتون مشکلی داشتید همین جا مطرح کنید
3-چمیدونم زیاد حرف زدم دیگه:20:

خب... همین امشب قسمت مقدمه رو میذارم

mohammd1
28-09-2012, 20:11
فیزیک چیست ؟
منظور از فیزیک در بازی های رایانه ای این است که شما بیائید یک سری قوانین فیزیکی را در بازی هایتان اعمال کنید تا هر چه طبیعی تر شوند( ساده ترین تعریف ) از سال 2005 به بعد بازی سازان رویکرد جدیدی را در فیزیک آغاز کردند که باعث عمومیت این اصطلاح در بازی سازی شد.

این رویکرد چه بود ؟
در نظر بگیرید قرار است یک بازی شوتر بسازید که در آن با یک دستگاه بازوکا به غول های رباتیک شلیک می کنید. در گذشته نچندان دور برای اصابت گلوله بازوکا به ربات انیمیشن های خاصی وجود داشت و این که کدام اجرا شود می توانست به صورت یک رندم باشد یا بسته به نقطه اصابت ( یا هر دو ! ) اما در بازی های نسل کنونی انمیشن از پیش تعیین شده ای وجود ندارد و همانند دنیای طبیعی این قوانین فیزیک هستند که تعیین می کنند ربات چه واکنشی نشان دهد. البته خیلی وقت است که بسیاری از قوانین فیزیک همانند جاذبه در بازی ها بکار می روند.

افتاد...!؟
در پست بعدی فیزیک در بازی های دوبعدی رو استارت می زنیم.

راستی اگه احساس کردید تاپیک چرتی زدم بگید تا الکی ادامه ندم

dark_dragon
28-09-2012, 22:09
چرت چیه. خیلی هم مفیده. دستت هم درد نکنه.

Mohammad Yek110
28-09-2012, 22:11
تاپیک خیلی عالیه
جا داره یکی از نمونه های زیبای فیزیک در بازی رو مثال بزنم:
Limbo

mohammd1
29-09-2012, 15:53
خب اول از همه تشکر می کنم که تشکر می کنید:20:
قرار شد طراحی فیزیک در بازی های دوبعدی رو استارت بزنیم که به عنوان انجین گیم میکر خوبه برای شروع. بزارید با قوانینی شروع کنیم که ایزاک نیوتن ( آقا اسحاق خودمون ) کشف کرده :

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

اولین قانون
یه روز این بابا زیر درخت گلابی نشسته بوده که... بله جاذبه کشف شد! به کار بردن جاذبه در گیم میکر بسیار سادس. به این صورت که شما روی [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] کلیک می کنید و سپس روی Add Event و از اون جا step رو انتخاب میکنید (چون ما می خواهیم در قدم به قدم بازی جاذبه داشته باشیم )حالا از سربرگ Move اکشن [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]رو انتخاب می کنید که همون جاذبه هستش بعدشم مطابق عکس پیش برید و OK کنید

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

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

اگه تصاویر لود نشد روی این لینک کلیک کنید : [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

mohammd1
29-09-2012, 16:12
تاپیک خیلی عالیه
جا داره یکی از نمونه های زیبای فیزیک در بازی رو مثال بزنم:
Limbo

من عاشق این بازی هستم :19:

dark_dragon
29-09-2012, 16:50
ببخشید آقا میشه بگید توی این انجینی که ما ساختیم فیزیک چطوریه ؟ آخه خودم هنوز کشف نکردم :دی

mohammd1
30-09-2012, 14:35
ببخشید آقا میشه بگید توی این انجینی که ما ساختیم فیزیک چطوریه ؟ آخه خودم هنوز کشف نکردم :دی

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

dark_dragon
01-10-2012, 23:55
والا من موز و هلو رو نگرفتم. در مقابل ِ چی ؟ (من موز رو بیشتر دوس دارم :دی)

mohammd1
12-02-2013, 22:02
خب به جای این که بیام تو هر پست یه اکشن معرفی کنم به صورت چند تا جدول خلاصه رو می ذارم تا بعد بریم سر مطالب مهم تر...



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]





Move [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Move Fixed
Action Function:


1

action_move(direction,speed);






در اینجا direction با جهت در دیگر توابع متفاوت است. اینجا می بایست یک رشته 9 کاراکتری از 0 و 1 قرار داد که هر کدام از کاراکترها اگر 1 باشد، جهتی را برای انتخاب فعال می کند. ترتیب جهت ها به نوبت از چپ به راست در رشته به این صورت است:
بالا راست – بالا – بالا چپ – راست – وسط – چپ – پایین راست – پایین – پایین چپ برای مثال، اگر بخواهیم به طور تصادفی جهت چپ یا راست را انتخاب کند، باید در رشته ی direction مقدار زیر را وارد کنیم:

1

"000101000"






GML Code:


1

motion_set(direction,speed);






[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Move Free
Action Function:
GML Code:


1

motion_set(direction,speed);






[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Move Towards
Action Function:


1

action_move_point(x,y,speed);






GML Code:


1

move_towards_point(x,y,speed);






[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Speed Horizontal
Action Function:


1

action_set_hspeed(value);






GML Code:


1

hspeed=speed;






[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Speed Vertical
Action Function:


1

action_set_vspeed(value);






GML Code:


1

vspeed=speed;






[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Set Gravity
Action Function:


1

action_set_gravity(direction,gravity);






GML Code:


1
2

gravity_direction=direction;
gravity=amount;






[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Reverse Horizontal
Action Function:


1

action_reverse_xdir();






GML Function:


1

hspeed=-hspeed; //actual code.






[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Reverse Vertical
Action Function:


1

action_reverse_ydir();






GML Function:


1

vspeed=-vspeed; //actual code.






[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Set Friction
Action Function:


1

action_set_friction(value);






GML Function:


1

friction=amount;