PDA

نسخه کامل مشاهده نسخه کامل : آموزش برنامه نویسی Fpi Maker جهت ساخت بازی



3Dmajid
01-07-2008, 23:48
گفتم شاید کسایی باشن مثل خودم که دوست دارن این برنامه نویسی رو یاد بگیرن و برنامه های دلخواهشون رو برای بازی هایی که با FPSCreator میسازن بنویسن و من رفتم دنبالش و با پرسش و پاسخ این برنامه نویسی بسیار ساده رو یاد گرفتم.
از امروز آموزش رو شروع میکنیم. اگه سوالی دارید توی همین تاپیک بپرسید. اگه دیدم کسانی هستند که میخوان یاد بگیرن آموزش رو ادامه میدیم ولی اگه کسی نباشه شاید ادامه ندیم.
با نام خدا آموزش رو شروع میکنیم امیدوارم به دردتون بخوره. :10: :40: :20:

3Dmajid
01-07-2008, 23:49
به نام خدا.

آموزش برنامه نويسي اف پي آي رو شروع ميکنيم.

بخش اول : آشنايي با برنامه نويسي FPI

برنامه نويسي FPI بسيار ساده س و مطمئن باشيد عرض يک روز به راحتي ياد ميگيريد. نحوه ي برنامه نويسي FPI فقط به صورت دستور شرطيه. پس اگه کسي دستور شرطي اگر/سپس (if\then) رو بلد باشه به راحتي مي تونه اين رو ياد بگيره.اين برنامه نويسي به طور کلي از دو قسمت Conditions و Actions درست شده که به ترتيب وضعيت ها و عملکرد ها مي باشند.براي اين که بهتر متوجه بشيد و بخواهيد مطابق دستور اگر/سپس ياد بگيريد ميتونيد Conditions ها رو به عنوان شرط (يا همان اگر) و Actions ها رو به عنوان سپس (همان then ) در نظر بگيريد.پس ديديد که فهم اين برنامه نويسي بسيار آسان است لذا فقط لازمه که شما ليست کامل conditions و actions ها رو بلد باشيد که من خيلي وقت پيش اون ها رو ترجمه کردم و به صورت پي دي اف در اوردم و براتون خواهم گذاشت تا با تکرار زياد اونا رو ياد بگيريد.
حالا براي فهم بيشتر نمونه کد زير رو که بسيار ساده س تفسير ميکنيم :


کد:


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

خط اول : همونطور که ميبينيد اول خط سيمي کولن گذاشته شده و در حقيقت اين سيمي کولن همان comment هست. پس اگه خواستيد هر جاي اسکريپتتون توضيحي اضافه کنيد اول خط سيمي کولن بزاريد و پس از اون نوشته تون رو بنويسيد و خواهيد ديد که به رنگ سبز در مياد. وقتي کد شما در انجين پردازش ميشه، FPSC از پردازش خط هايي که اولشون سيمي کولن گذاشته ميشه صرف نظر ميکنه و اونا رو به عنوان توضيح ميشناسه پس توضيح اسکريپت شما هيچ تاثيري روي پردازش کد ها نداره. سپس کلمه ي Artificial Intelligence Script به معني اسکريپت هوش مصنوعي (AI) نوشته شده.

خط دوم : همانند خط اول و با اين تفاوت که کلمه ي Header اولش نوشته شده. در اسکريپت ها هر گاه پس از کولن کلمه ي Header رو ديديد به معني شروع نوشتن اسکريپت هست. پس بعد از توضيحاتون ميتونيد در خط پايين اين کلمه رو به معني شروع اسکريپت بنويسيد. توجه داشته باشيد که کاملا دل به خواهيه و اين کلمه هم حتما بايد با سيمي کولن بياد.

خط سوم : انجين FPSC کلمه ي desc رو به عنوان يک کد ميشناسه که کار همون سيمي کولن رو انجام ميده و شما ميتونيد بعد از گذاشتن مساوي توضيح بسيار مختصري از اسکريپتتون بديد. پس desc هم در پردازش کدها تاثيري نداره.خط چهارم : همانند خط دوم با اين تفاوت که با گذاشتن کلمه ي Triggers پس از سيمي کولن شروع نوشتن اسکريپت هاي اصلي رو اعلام ميکنه. توجه داشته باشيد که اين کار به مستند سازي برنامه اي که نوشتيد خيلي کمک ميکنه.

خط پنجم : همونطوري که ميبينيد هميشه بايد اسکريپت هاي اصلي تون رو با کولن شروع کنيد. پس هر وقت خواستيد دستور شرطي يا همون if يا به عبارت ديگه اي condition رو تعريف کنيد يادتون نره که حتما اولش کولن بزاريد. انجين FPSC همونطوري که خط هايي که اولش سيمي کولن داره به عنوان توضيح ميشناسه، خط هايي که اولشون کولن داره رو نيز به عنوان اسکريپت اصلي مي شناسه و پردازش مي کنه. من يه سري اسکريپت درستي نوشتم ولي وقتي تست کردم کار نکرد و بعد متوجه شدم که اول خط کولن نزاشتم، پس حتما دقت کنيد. پس از گذاشتن کولن کلمه ي plrwithinzone=1 رو ميبينيد که همون شرط ماست. کد plrwithinzone به معني اينه که " اگر پلاير درون منطقه بود " و وقتي مساوي يک گذاشتيد يعني true و اگه صفر بزاريد يعني
false. پس ديديد که کد plrwithinzone خودش يه شرط کامله. سپس ميبينيد که دوباره کولن گذاشته شده، پس از شرط تون براي اين که تعيين کنيد شرط گذاريتون تموم شده و ميخوايد کد سپس يا همون then يا به عبارت ديگه actions رو بنويسيد بايد دوباره کولن بزاريد و اين کولن جدا کننده ي conditions از actions هاست. پس تاکيد ميکنم فراموش نکنيد که قبل از شروع تعريف conditions ها و actions ها يک کولن بگذاريد. پس از کولن کلمه ي state=1 گذاشته شده. کد state مفهوم بسيار ساده اي داره ولي اجازه بديد در مقاله ي بعدي به طور کامل در مورد اين کد بحث کنيم چون ممکنه يه کمي گيج کننده باشه. پس از state يک کاما ميبينيد، اگه شما در اسکريپتتون خواستيد بيش تر از يک condition يا action تعريف کنيد بايد با کاما اونا رو از هم جدا کنيم. پس اين کاما دو action که بعد از صحيح بودن condition تعريف شده بايد اجرا شن رو از هم جدا ميکنه. پس از کاما کد plraddhealth=1 رو ميبينيد. کد plraddhealth يک action است و به معني اينه که " به سلامتي پلاير اضافه کن " و وقتي مساوي يک جلوي اون نوشته شده يعني يه دونه به سلامتي پلاير اضافه ميکنه. واضح تر بگم اگه سلامتي پلاير 99 باشه اون رو 100 ميکنه. در آينده با مثال هاي زيادي که ميزنم مطمئن باشيد خيلي خوب ياد ميگيريد. براي شروع کافيه. :19:

3Dmajid
01-07-2008, 23:53
بخش دوم : تعريف State

توي اين مقاله قصد داريم با کد state که بسيار ساده اما شايد پيچيده هست آشنا بشيم.

در حقيقت state هم کانديشن و هم اکشن هست. براي اين که بهتر متوجه کاربرد کد state بشيد مطالب زير رو با دقت تمام بخونيد :
State در Conditions ها :
همونطور که گفتيم conditions ها وضعيت يا شرط برنامه ي ماست. اگر بخواهيم از state به عنوان يک condition استفاده کنيم بهتره به صورت زير اين کد رو بيان کنيم :
اگر وضعيت ايکس فعال باشد.
حالا براي بهتر متوجه شدن کد State رو در کد زير بررسي ميکنيم :


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

فکر کنم با ديدن اين کد و مقايسه ي اون با کد قبلي متوجه بشيد که کد state بيشتر براي اسکريپت هاي پيچيده و يا بيشتر از يک خط استفاده ميشه. در کد بالا و در خط اول state به عنوان يک action تعريف شده، پس بهتره که قبل از تفسير state در اين کد مفهوم اين کد به عنوان action رو نيز بررسي کنيم.
State در Actions ها :
همونطور که گفتيم actions ها به عنوان دستوري هستند که بعد از true بودن condition بايد اجرا بشن. پس مفهوم کد state رو به عنوان يک action بدين شکل بيان ميکنيم :
وضعيت رو به ايکس تغيير بده.
در حقيقت ميشه گفت که state در action مانند يک کدي ست که ما براي تعريف متغير از اون استفاده ميکنيم. فرض کنيد state به عنوان کد تعريف متغير و عددي که پس از مساوي ميزاريم به معني اسم متغير ماست.
پس در کد بالا خط اول وقتي :state=2,plraddhealth=1 نوشته شده، يعني عملي که در قسمت اکشن نوشته شده در متغير state ريخته ميشه. پس در حقيقت براي مفهوم بيشتر ميشه اينجوري بنويسيم :

state 2 = "plraddhealth =1"

در خط دوم state به عنوان يک condition استفاده شده که مفهوم اون رو بالا گفتيم. پس ميتونيم معني خط دوم رو بدين شکل بيان کنيم :
اگر وضعيت 2 بود از سلامتي پلاير به مقدار -1 کم کن.
اگر کمي دقت کنيد ما در بالا توسط استفاده از کد state در اکشن عمل plraddhealth=1 رو در state=2 ريخته بوديم پس ميتونيم نتيجه بگيريم که کد بالا به صورت زير معني ميده :
اگر به سلامتي پلاير 1 اضافه شد سپس از سلامتي پلاير -1 کم کن.
اين شروع خوبي براي فهميدن state هست و با کمي فکر کردن ميتونيد به مفهوم آسون اما شايد پيچيده ي state پي ببريد.
در آينده مثال هايي رو ميزنم که مفهوم state رو خيلي بهتر ميفهميد.
نکته ها :
- اگه سوالي در مورد اين بخش داريد فقط توي اين تاپيک بپرسيد.
- استفاده از اين مقاله با ذکر منبع مشکلي نداره.
اميدوارم فهميده باشيد. :20:

m_maj2004
11-07-2008, 22:09
دست شما درد نکنه، واقعا قدرت بازی را بالا می بره.

3Dmajid
11-07-2008, 22:31
میدونی من این پست رو کی دادم ؟

از این که یه نفر نظر داد خیلی خوشحالم.

moz
19-07-2008, 16:40
سلام دوست من کارت عالیه
ادامه بده
منم تازه به این تاپیک اومدم
اگه یاد بگیرم
کلی اسکریپت مجانی واسه دانلود می سازم و تو سایت می ذارم تا دیگران استفاده کنند

moz
23-07-2008, 08:58
پس چی شد؟؟؟؟؟؟
ما منتظریم

3Dmajid
23-07-2008, 13:50
آخه زیاد استقبال نمیشه.

این دو تا مقاله که نوشتم برای یاد گیری کافیه ... فقط مونده دو تا فایل پی دی اف که آمادس رو آپلود کنم.

moz
23-07-2008, 17:44
اگه می شه آپلود کنید من که خیلی مشتاقم یاد بگیرم

3Dmajid
23-07-2008, 18:29
چشم یه کم فرصت بدید. اشاالله فردا.

Dark Prince
23-07-2008, 22:54
آموزش خوبی بود. لطفا ادامه بده.
با تشکر، Dark Prince

3Dmajid
24-07-2008, 22:14
آموزش تموم شده ... اگه سوالی چیزی دارید بپرسید تا بهتون جواب بدم.

pro 3d game studio
29-07-2008, 06:22
آموزش تموم شده ... اگه سوالی چیزی دارید بپرسید تا بهتون جواب بدم.


سلام دوست عزیز .

خسته نباشی

پس این آموزش رو کی برا دانلود میزاری؟

به نظر من این کدها رو فقط میشه با هم mix کرد و کد های جدیدی ساخت

اگه میشد هوش مصنوعی رو توی این موتور بالا برد خود سازندگان این موتور برای اون کدهای بهتری میساختن .

فکر نکنم بشه هوش مصنوعی رو با دستکاری کد ها بهتر کرد . فقط یه کار mix هست چیزه دیگه ای نیست

منظورم از mix اینه که همون کدهای قبلی که موجود هستن رو ما فقط به شکل های دیگه ای کنار هم میزاریم

و این که چیزه جدیدی نیست :41:

اگه اشتباه میکنم . بگید

موفق باشید:10:

3Dmajid
29-07-2008, 19:34
سلام دوست عزیز .
خسته نباشی


خیلی ممنونم.


پس این آموزش رو کی برا دانلود میزاری؟
گفتم که آموزش تموم شد !
الان من منتظرم اگه کسی در مورد این برنامه نویسی سوالی داره بپرسه.


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

من منظورتون رو از میکس کردن خیلی درست نفهمیدم.
ولی خوب این کار میتونه خیلی به ساخت بازی شما کمک بکنه.
مثلا شما میخوای بازیتون رو یه جوری بسازید که اف پی اس اون هارو برای شما آماده نداره.
برای مثال من اون اوایل که این برنامه نویسی رو یاد گرفتم یه اسکریپت نوشتم که تو انجمن اصلی خود گیم کریتورز هم استقبال زیادی ازش شد، اینجوری بود که مثلا یه سربازی میاد جلوی پلایر و ازتون یه سوال میپرسه و شما برای پاسخ دادن 4 گزینه ی انتخابی دارید، در مقابل هر پاسخی سرباز سه عکس العملی از خودش نشون میده !
خوب اگه شما بخواید بازیتون رو اینجوری بسازید نیاز به کد نویسی دارید و این یعنی خلاقیت، ابتکار، کلمه ی میکس که شما به کار
بردید درسته، ولی شما باید خلاقیت و ابتکاری از خودتون داشته باشید و با میکس کردن کدها برای بازیتون برنامه بنویسید.
یا مثلا زمانی که اسپلینتر سل بازی میکردم به فکر نوشتن یه اسکریپت برای بازی های مخفی کاری افتادم.
یه اسکریپت نوشتم که دوربین داره میچرخه، اگه شما تو زاویه ی دید دوربین باشید صدای آژیر میاد و سربازها از توی اتاق میان بیرون تا به شما شلیک کنن !! ولی اگه دوربین شما رو نبینه خیلی راحت بدون اینکه سرباز ها متوجه باشن میتونید از اتاقشون رد شید.
ولی خوب این ها که رو آماده توی اف پی اس نیست !
در مورد بالا بردن هوش طریق اسکریپت نویسی باید بگم که این کار تا حدی شدنیه و سازندگان نرم افزار خیلی چیزها رو آماده در اختیار شما نزاشتن تا شما خودتون برید دنبالش و یاد بگیرید.
البته توی نسخه ی x10 هوش مصنوعی خیلی بالا رفته و پیشنهاد من اینه که کسی سراغ x9 نره !

3Dmajid
21-08-2008, 14:32
از بچه ها کسی هست که بخواد برنامه نویسی با این موتور رو یاد بگیره تا ما بحث رو به طور جدی ادامه بدیم ؟

Snap CG
25-08-2008, 12:12
قابلیت این برنامه در مورد بازی استراتزیک تا چه حده ؟
با این میشه موتور بازی ساخت یا فقط برای اسکریپ نویسی هست؟
من برنامه نویسی بلد نیستم !

moz
03-09-2008, 12:00
آقا من که خیلی وقته دارم می گم به طور جدی شروع کنید

EduMan
05-09-2008, 14:13
از بچه ها کسی هست که بخواد برنامه نویسی با این موتور رو یاد بگیره تا ما بحث رو به طور جدی ادامه بدیم ؟
خیلی خوب بود ما هستیم ادامه بده

EduMan
07-09-2008, 08:01
ببخشید چند تا سئوال
1-
کلمه ي plrwithinzone=1 رو ميبينيد که همون شرط ماست. کد plrwithinzone به معني اينه که " اگر پلاير درون منطقه بود " و وقتي مساوي يک گذاشتيد يعني true و اگه صفر بزاريد يعني
false.
خوب چطوری بگیم کدام منطقه مثلا اگر منطقه مشخصی منورد نظر ما باشه؟

2-
بخش دوم : تعريف State

توي اين مقاله قصد داريم با کد state که بسيار ساده اما شايد پيچيده هست آشنا بشيم.

در حقيقت state هم کانديشن و هم اکشن هست. براي اين که بهتر متوجه کاربرد کد state بشيد مطالب زير رو با دقت تمام بخونيد :
State در Conditions ها :
همونطور که گفتيم conditions ها وضعيت يا شرط برنامه ي ماست. اگر بخواهيم از state به عنوان يک condition استفاده کنيم بهتره به صورت زير اين کد رو بيان کنيم :
اگر وضعيت ايکس فعال باشد.
حالا براي بهتر متوجه شدن کد State رو در کد زير بررسي ميکنيم :

کد:

:plrwithinzone=1:state=2,plraddhealth=1
:state=2:plraddhealth=-1
فکر کنم با ديدن اين کد و مقايسه ي اون با کد قبلي متوجه بشيد که کد state بيشتر براي اسکريپت هاي پيچيده و يا بيشتر از يک خط استفاده ميشه. در کد بالا و در خط اول state به عنوان يک action تعريف شده، پس بهتره که قبل از تفسير state در اين کد مفهوم اين کد به عنوان action رو نيز بررسي کنيم.
State در Actions ها :
همونطور که گفتيم actions ها به عنوان دستوري هستند که بعد از true بودن condition بايد اجرا بشن. پس مفهوم کد state رو به عنوان يک action بدين شکل بيان ميکنيم :
وضعيت رو به ايکس تغيير بده.
در حقيقت ميشه گفت که state در action مانند يک کدي ست که ما براي تعريف متغير از اون استفاده ميکنيم. فرض کنيد state به عنوان کد تعريف متغير و عددي که پس از مساوي ميزاريم به معني اسم متغير ماست.
پس در کد بالا خط اول وقتي :state=2,plraddhealth=1 نوشته شده، يعني عملي که در قسمت اکشن نوشته شده در متغير state ريخته ميشه. پس در حقيقت براي مفهوم بيشتر ميشه اينجوري بنويسيم :

state 2 = "plraddhealth =1"

در خط دوم state به عنوان يک condition استفاده شده که مفهوم اون رو بالا گفتيم. پس ميتونيم معني خط دوم رو بدين شکل بيان کنيم :
اگر وضعيت 2 بود از سلامتي پلاير به مقدار -1 کم کن.
اگر کمي دقت کنيد ما در بالا توسط استفاده از کد state در اکشن عمل plraddhealth=1 رو در state=2 ريخته بوديم پس ميتونيم نتيجه بگيريم که کد بالا به صورت زير معني ميده :
اگر به سلامتي پلاير 1 اضافه شد سپس از سلامتي پلاير -1 کم کن.
اين شروع خوبي براي فهميدن state هست و با کمي فکر کردن ميتونيد به مفهوم آسون اما شايد پيچيده ي state پي ببريد.
در آينده مثال هايي رو ميزنم که مفهوم state رو خيلي بهتر ميفهميد.
نکته ها :
- اگه سوالي در مورد اين بخش داريد فقط توي اين تاپيک بپرسيد.
- استفاده از اين مقاله با ذکر منبع مشکلي نداره.
اميدوارم فهميده باشيد.
ببخشید من در ست نفهمیدم یعنی چی اگر وضعیت 2 بود
یعنی در خط اول ما وضعیت 2 را فعال کردیم!!!؟؟؟
میشه بیشتر در این مورد توضیح بدهید

3-میشه PDF کدهای FPC را بزارید ؟