PDA

نسخه کامل مشاهده نسخه کامل : [آموزش] UNREAL SCRIPT



AMIR REZAs
14-11-2010, 14:04
سلام:11:
تو این تاپیک تمرینات مربوط به Unreal script رو انجام میدیم:10:
من خودم تازه دارم شروع میکنم به یادگیری ولی مطمئنم با کمک همدیگه میتونیم ، راحت یادش بگیریم.:46:

اول از همه پیشنهاد میکنم آموزش های فصل 1 silsin رو حتما بخونید :

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



Unreal script چیست ؟؟

منبع

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


Unreal Script


سلام

دیدم قبل اینکه بیام یه روش آموزشی برای آنریل اسکریپت بگم، بهتره اول یه توضیحی بدم که آنریل اسکریپت دقیقا چیه و امکاناتش در چه حده.

آنریل اسکریپت چیه؟

آنریل آسکریپت تنها زبونی هست که می تونید پروژه های UDK رو باهاش برنامه نویسی کنید. یه زبان اسکریپتی هست و کامپایلر مخصوص خودشو داره.

کلا دو دسته زبون برنامه نویسی وجود داره:

General Purpose Language یا GPL: به زبونای همه منظوره مثل ++C و VB گفته می شه.
Domain Specific Language یا DSL: به زبونایی گفته می شه که برای منظور خاصی طراحی شدن. مثل Mel یا زبونای مختص یه نرم افزار خاص مثل زبون نرم افزار Matlab.


با زبونای GPL اغلب کار ها رو می شه انجام داد ولی به صورت عادی. برعکس DSL فقط برای یه سری کار ها طراحی شده ولی همون کار ها رو معمولا بهتر از GPL انجام می ده.

آنریل اسکریپت یه زبون DSL هست. به عنوان مثال برای جمله ی بالا، آنریل اسکریپت نمی تونه با فایل ها یا پروتکل های شبکه کار کنه، کارایی که تو ++C می شه انجام داد. برعکس آنریل اسکریپت برای طراحی گیم پلی یه بازی خیلی راحت تر و کاملتره. دلایلشو جلوتر می گم. (از این بعد هر جا گفتم US، منظور آنریل اسکریپته)

این تفاوت ها رو گفتم که بتونید این مطلبو متوجه بشید: زبونای GPL و DSL در کل قابل قیاس نیستن که مثلا بتونید بگید US بهتره یا ++C. هر کدوم برای یه کاری ساخته شدن و هر دو کار خودشونو بهتر از اون یکی انجام می دن. مثل هواپیما و ماشین می مونه که نمی تونید بگید کدوم بهتره. هر کدوم تو کار خودشون بهتر عمل می کنن.

برای ساخت بازی، یه سری امکانات توی US هست که توی ++C نیست. به عنوان مثال State ها که قابلیت فوق العاده مهمی هست و بدون State عملا ساخت بازی های متوسط و بزرگ چند صد درصد سخت تره. گاها غیر ممکنه. یه سری زبون هستن که State ها رو پشتیبانی می کنن. US علاوه بر اینکه State ها رو تو خودش داره، ارث بری State ها رو هم پشتیبانی می کنه که این یکی رو تا حالا توی زبون دیگه ای ندیدم. تا الان یه بار استفادش کردم، خیلی امکان به درد بخوریه و هر چی بازیتون بزرگتر باشه، احساس نیازتون به این 2 تا قابلیت بیشتر می شه. یه مورد دیگه هم که توی ++C نیست و باید خودتون کل سیستمشو پیاده کنید، Replication هست که اینم توی US پیاده شده. تعریفش جامع تر از اینه ولی در کل برای یکپارچگی و کنترل متغیر ها توی شبکه استفاده می شه. این مورد رو هم فقط وقتی می خواید بازی شبکه یا آنلاین بسازید می فهمید چقدر کارتونو سریع می کنه.

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

نکته: زمان هایی هم که نیاز دارین سیستمی رو تو ++C طراحی کنید و به بازیتون وصلش کنید، دو راه دارید، یه راه قدیمی تر که همه جا جواب می ده، TCPLink هست. البته کاربردش یه مقدار پیچیدس، باید به مفاهیم شبکه آشنا باشید. یه راه خیلی ساده و جدید هم هست به اسم DllBind که به سادگی می تونید یه Native Dll رو تو ++C بسازید و به بازیتون وصل کنید، البته برای همه ی سیستم ها قابل استفاده نیست.

در مورد جزئیات آنریل اسکریپت توضیحی نمی دم، چون تو مرحله ی اول یادگیری، تمامشو یاد می گیرید.

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

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

آیا لازمه قبل آنریل اسکریپت زبون دیگه ای بدونیم؟

خیر. هیچ زبونی مورد نیاز نیست، تنها مسئله ی خیلی مهم مفاهیم شیئ گرایی هست که این دیگه دست خودتونه. می تونید، یه وقتی بذارید مفاهیمشو در حالت کلی یاد بگیرید، می تونید یه زبون شی گرا مثل Java و VB.Net و ++C رو انتخاب کنید و این مفاهیمو توی اون زبون یاد بگیرید، می تونید هم خود آنریل اسکریپت رو شروع کنید و اولای کار وقت بیشتری بذارید روی یادگیری این مفاهیم توی آنریل اسکریپت. هر کدوم مزایا و معایب خودشو داره. انتخابش با خودتون. هر چند توصیه ی من حالت اول هست.

برای اینکه انگیزه بگیرید هم اینو بگم: بعد از اینکه به آنریل اسکریپت مسلط شدین دو تا مزیت بزرگ دارید:

یکی 99.5 درصد چیزایی که تو ذهنتونه ممکنه توی یه بازی نیاز بشه رو با US (و گاها با کمک ++C) می تونید پیاده کنید، چیزایی که شاید الان به عنوان یه ایده ی غیر قابل پیاده سازی توسط ادیتور ها تو ذهنتون باشه.
دوم اینکه با ادیتور ها فقط از حدود 50-60 درصد قدرت UDK می تونید استفاده کنید، بعد از یادگیری آنریل اسکریپت به صورت کامل، از 100 درصد انجین بلدین استفاده کنید و تازه اونوقته که قدرت واقعی آنریل انجین رو به چشم می بینید.



روند یادگیری آنریل اسکریپت: قسمت اول


با سلام

خب اول همه، اگه کسی هست که پست قبلیو در این مورد نخونده، اول اونو بخونه:

کد:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
باز تاکید می کنم، تا به ادیتور های UDK مسلط نشدین آنریل اسکریپت رو شروع نکنید که به مشکل می خورید.

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

مرحله ی اول یادگیری آنریل اسکریپت:

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

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

برای شروع برید به این صفحه:

کد:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
5 تا کادر خاکستری توی این صفحه می بینید. تو این مرحله فقط با 2 تاش کار دارید. کادر دوم و آخر. سر جمع 16 تا مقاله میشه.

با کادر دوم یا Language Topics شروع کنید:


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

مقالات داخل این کادرو به این ترتیب بخونید:


UnrealScript Reference
UnrealScript Cheat Sheet
Strings In UnrealScript
UnrealScript Structs
UnrealScript Interfaces
UnrealScript Preprocessor
UnrealScript Delegates
Coding Standard


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

بعدش نوبت کادر آخر یا Resources هست:


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] image has been resized. Click this bar to view the full image. The original image is sized 1108x230.[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

اینا رو به همون ترتیبی که لیست کرده بخونید.

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

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

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

------

در ضمن یادتون باشه، تا زمانی که خودم بهتون نگفتم، کدنویسی رو شروع نمی کنید، حتی برای کنجکاوی.

دیگه باید برم. تو فرصت بعدی میام ادامه ی متد رو براتون می تایپم.
TOVAMOHAMMAD

AMIR REZAs
15-11-2010, 15:24
خوب سه تا آموزش PDF میذارم زبان انگلیسی :


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


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


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

اینم خیلی بدرد میخوره :


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

ترجمه گوگل:


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

:11::11:

*PiNk PaNTHeR*
16-11-2010, 07:16
تشکر. من هرچی پیدا کردم فقط ساخت مرحله رو باهاش توضیح میداد.

AMIR REZAs
18-11-2010, 16:43
سلام

اینجا هم میتونید چند تا مقاله پیدا کنید:


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

////

من خودم تازه دارم شروع میکنم به یادگیری ولی مطمئنم با کمک همدیگه میتونیم ، راحت یادش بگیریم.[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
لطفا شما هم شروع کنید .... :20:

AMIR REZAs
22-11-2010, 19:18
سلام
خوب امیدوارم شما هم یه سری منابع پیدا کنید تا راحت تر بتونیم ، رو این زبان کار کنیم....

What is Unrealscript?

Unrealscript is the soft architecture behind all of the core game mechanics in Unreal Tournament 3, and many, many other games. In Unreal Tournament 3, it not only controls things such as how the power ups and weapons are handled, it also deals with the gameplay fundamentals, and even the vast majority of the editor and effectively every ingame object, from a static mesh to a brush. We have access to all of that script, which makes us pretty powerful!
The concept behind unrealscript was to offer a powerfu, built in scripting language that could control various aspects of the unreal game, concepts of time, state, properties, and networking, all without the need to delve into over-complication C++ source code. Unrealscript thus focuses on these core game orientated elements and does so by taking out the need to deal with all those individual bits and pixels. It gives us a safe environment to experiment in, free of pointers, unsafe code and complexity, so that we can write games and not worry about dealing with the nastier elements of games programming.
Basic Variables and Operators

The first thing we need to know is how to use, declare and manipulate the basicmost variables. These are the ones you'll come across and be using the most and are generally fundamentally the most important. Variables can be declared in local or global space. The difference? A global variable is accessible by all of the functions in that script class, and in fact by every other class in the game.Global variables must be declared before any functions are declared - otherwise the compiler will tell you that they are unexpected and will refuse to compile. Local variables are specific to individual functions, and can only be accessed by those functions - they are declared within the function itself, and manipulated from within the function.
There are also a number of different operators that can be used with our variables that allow us to modify and manipulate them as we need to. This is always done from within a function. Some operators can only be used to manipulate certain variables, and some may have different effects dependent on what variable they are attempting to manipulate.
uscript code:
class UnrealScriptTest;

var byte ByteNumber;
var int IntegerNumber;
var float FloatingPointNumber;
var float FloatArray[10];

function DoMath();
{
local bool Boolean;
local string String;
local name Name;

FloatingPointNumber = ByteNumber + IntegerNumber;
FloatArray[0] = FloatingPointNumber;
}

DefaultProperties
{
ByteNumber = 1
IntegerNumber = 5
FloatingPointNumber = 10.5f
}

What have we got here then? Well, we've declared three global variables and an array of variables - a byte, an integer, a floating point number and an array of integers. We could use these variables anywhere we wish - but we have to be mindful about what they have been set to in the past. The array is a special construction that in this instance will contain a sequence of 10 integer variables, and can often come in quite useful. We need to be careful with arrays however, and remember that the first number we put in the array is not position '1', but is in fact position '0'. This means that to access the first number in the array, we use FloatArray[0], and to access the last we use FloatArray[9]. Confusing, perhaps, but this is how it works. We also gave some of our global variables default values. This is generally a good idea, because otherwise if we try to use them and haven't given them a value yet, then our script will return 'none' (which will appear in the script logs as a warning), and we could get some whacky things going on in the game, or something might not work at all.
We also have three local variables declared in our function; a boolean value (true or false), a string of characters and an unrealscript specific variable, a name. These variables can only be used inside this function, and just can't be accessed from anywhere else - in fact if you try, the unrealscript compiler will just give you a good telling off.
We didn't actually use our local variables in our DoMath function, which means that the unrealscript compiler will give us some warnings. It will tell us that they are unused, which means that we can happily delete them from our code, or comment them out. We can still run the game with the code, because warnings are just warnings, and not errors, afterall.

ادامه ی مطلب :

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


----------------------------------------------------------------
A Supereasy Unrealscript tutorial, and some learning… ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])


ادامه ی مطلب :

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

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

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

Beginner's Guide to Unrealscript ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

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

و.........................

ادامه ی مطلب :

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

موفق باشید......:8:

AMIR REZAs
04-01-2011, 20:42
سلام
با اجازه ی آقامحمد میخوام یه سری از پست های ایشون رو که تو تاپیک 218 صفحه ایه UDK در مورد آنریل اسکریپت هست رو اینجا بگذارم....:11:
البته پست زیادی در این رابطه اونجا موجود نیست:31:ولی هر چی هست میذارم...


سوال : از چه برنامه ای برای نوشتن کدهای آنریل اسکریپت استفاده کنم ؟

جواب :
اگه منظورت اینه با چه برنامه ای کدنویسی کنی، در کل هیچ محدودیتی نیست، و با هر ادیتور متنی می تونی، حتی Notepad. با ااین همه یه سری برنامه هست، که Color Highlight یا Class Tree بهت میده.

UnCodeX: کلا اکثر این امکاناتو داره، ولی برنامش چندان جدید نیست، و احتمال بروز باگ توش هست. یه سری تنظیمات هم برای شروع نیاز داره. برای تنظیمات اولیش یه سرچ بکن.

Wotgreal: امکاناتش خوبه، هر چند برای من مدام قفل می کرد، در نتیجه سریع عوضش کردم. اینم برای تنظیمات اولیش یه سرچ بکن.

++Notepad: این برنامه برخلاف قبلیها ادیتور همه منظورست. شاید بشه گفت خوشدست ترین برنامست برای هر زبونی، البته غیر VS. بیش از 40 زبون رو ساپورت می کنه و برای باز کردن تعداد خیلی زیاد فایل هم فوق العاده سریع هست. فقط چون همه منظورست، Class Tree نداره.

Nfringe: این یه برنامه نیست، صرفا یه Language Service هست برای Vidual Studio. حتما می دونی که VS بهترین برنامه برای کد نویسیه. حالا Nfringe اومده زبون Unreal Script رو بهش اضافه کرده. کلا گزینه ی خوبی هست، یه مدت با این کار می کردم، ولی خب یه چنتا باگ داشت که خوشم نیومد. اگه این گزینه رو انتخاب کردی، برای تنظیماتش برو یه سر بزن به آموزش سایت X9Productions. این مورد تنها گزینه ای هست که بهت Intelliscence می ده. و سرعت کدنویسیت حدودا 1/3 زیاد میشه.

Context: این برنامه هم مثل ++Notepad یه ادیتور همه منظورست. الان 4-3 ماهیه از Context استفاده می کنم، هر چند این یکی هم Class Tree نداره. ولی خب در کل خیلی برنامه ی راحتیه. دکمه های User Command که داره خیلی به کار کمک می کنه. این موردو اگه خواستی، نیاز به تنظیم خاصی نداره. خودم بازی آخرمو کامل با Context انجام دادم.

برای شروع توصیه می کنم از برنامه ای استفاده کن که حداقل Class Tree داشته باشه. که++Notepad و Context ندارن. Nfringe احتمالا گزینه ی خوبی باشه برات.

راستی برای پروژه های Commercial، همه رایگان هستن، به جز Wotgreal و Nfringe. غیر اینا 6-5 تا برنامه ی دیگه هم هستن ولی چندان مالی نیستن.
پست مربوطه :

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

دانلود ابزار Nfringe برای برنامه نویسی آنریل اسکریپت در ویژوآل استدیو:


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

نکته : قبل از نصب Nfringe باید microsoft visual studio رو نصب کرده باشید.....

AMIR REZAs
04-01-2011, 20:52
و حالا آموزش آنریل اسکریپت به صورت ویدیئویی:31: :


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

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


ویرایش شد....

همون طور که Silsin گفتن آموزش های ویدیئویی 3d buzz هم اومده که میتونید رایگان بعد ثبت نام تو سایت به صورت آنلاین فیلمها رو ببینید:


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

AMIR REZAs
22-02-2011, 18:59
سلام
امروز این سایتو پیدا کردم خیلی مطالبش واسه مبتدی های آنریل اسکریپت بدرد بخوره حیفم اومد نذارم اینجا



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

AMIR REZAs
10-04-2011, 19:01
یه سری آموزش جدید:


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

online_amin
10-04-2011, 21:26
آقا نگرفتیم, زبان برنامه نویسی انریل چیه؟ c++ یا c یا C# یا یه چیز دیگه؟

silsin
10-04-2011, 21:44
زبان برنامه نویسیش انریل اسکریپته .

online_amin
10-04-2011, 22:01
وای خدای من, تو چقدر زرنگی :دی شوخی کردم. شوخی کردم. قصد جسارت نداشتم.

میخواستم بدونم بیشتر شبیه به چه زبانی هست؟ من اگر کدوم زبان رو بلد باشم بهتر میتونم unreal script رو یاد بگیرم و بهتر متوجه بشم؟

silsin
10-04-2011, 22:08
به پست اول مراجعه شود . اموزش خودم رو بشین بخون می فهمی.

AMIR REZAs
03-08-2011, 07:56
پست اول ویرایش شد ...

کلا چند پست صفحه اول دیگه هم تا چند روز دیگه ویرایش میشه!

lord arthas
05-11-2011, 18:15
میگم این صفحه هایی که محمد گفته عوض شدن کسی سیو کردشون؟!