ورود

View Full Version : سوال: اسکریپت انجین مناسب



mohammadali1375
پنج شنبه 12 اردیبهشت 1392, 19:40 عصر
سلام
من چند وقته دنبال یه اسکریپت انجین خوب میگردم که تو پروژه هام ازش استفاده کنم. چند تایی دیدم. حتی angel script رو هم راه انداختم و چند تا نیم چه برنامه با قابلیت گرفتن اسکریپت هم نوشتم ولی این angel به نظرم زیاد خوب نمیاد چون هیچ چیز خاصی نداره. بقیه هم زیاد به کارم نیومد. چیزی که میخام از لحاظ سینکتکس خانواده سی باشه ، شی گرایی و ... هم داشته باشه خیلی خوب میشه. و مهمتر از همه رایگان باشه.
مثلا این java script رو که من چیزی پیدا نکردم که چجوری میشه به عنوان اسکریپت تو برنامه استفاده کرد یعنی کلا کتابخونه ای چیزی براش ندیدم :متفکر: . mono هم که فکر نکنم رایگان باشه. رایگانه ؟ سرعتو خیلی داغون نمیکنه؟

خلاصه اگه چیز خوبی سراغ دارید اسمشو بدید ممنون میشم. :قلب:

littledemon
شنبه 14 اردیبهشت 1392, 11:10 صبح
مونو که رایگانیش رایگانه . سرعت رو هم اونقدری که برا شما محسوس باشه داغون نمیکنه (شاید در عمل بتونم بگم داغون نمیکنه)
برا شروع من فکر میکنم گزینه مناسبی باشه . البته من خودم اطلاعاتم در این زمینه زیاد نیست !

orache
شنبه 14 اردیبهشت 1392, 15:19 عصر
سلام محمد خوبی در این زمینه اطلاعات زیادی ندارم ولی اگه برای ادیتور 2 بعدی میخای بهترین زبان اسکریپتی Angel Script هست اینطور که مشخصه چون اکثر کسایی که انجین 2 بعدی ساختن با این زبانه تو اموزش ها و... اگه ادیتورت 3 بعدیه بهتره که اسکریپت انجینو خودت بنویسه اکثر کسایی که این کار رو میکنن یعنی اسکریپت انجینو مینویسن با lua مینویسن حتی شرکت های بزرگ ولی angel script بازم فکر کنم خوب باشه ادیتور اسکریپتش هم Scintilla میتونی بذاری
موفق باشی

mohammadali1375
دوشنبه 16 اردیبهشت 1392, 17:29 عصر
سلام
من برا دو بعدی میخام ولی همونطور که گفتم با Angle کار کردم، دنبال چیز بهتریم :لبخندساده:

orache
دوشنبه 16 اردیبهشت 1392, 20:59 عصر
ببین یکدومو انتخاب کن دیگه :لبخندساده:
mono script
java script
chai script
nebula 2d (البته این اسکریپت انجین خالص نیست خیلی افزونه های دیگه هم داره )

amin.v
دوشنبه 16 اردیبهشت 1392, 21:06 عصر
mohammadali1375 ,

اسکریپت انجین آماده که زیاده
squirrel و Lua رو هم امتحان کن ...
http://www.squirrel-lang.org/
www.lua.org/‎

lua که خیلی معروف و حساب پس داده هم هست ...

jack
چهارشنبه 18 اردیبهشت 1392, 11:29 صبح
سلام
من چند وقته دنبال یه اسکریپت انجین خوب میگردم که تو پروژه هام ازش استفاده کنم. چند تایی دیدم. حتی angel script رو هم راه انداختم و چند تا نیم چه برنامه با قابلیت گرفتن اسکریپت هم نوشتم ولی این angel به نظرم زیاد خوب نمیاد چون هیچ چیز خاصی نداره. بقیه هم زیاد به کارم نیومد. چیزی که میخام از لحاظ سینکتکس خانواده سی باشه ، شی گرایی و ... هم داشته باشه خیلی خوب میشه. و مهمتر از همه رایگان باشه.
مثلا این java script رو که من چیزی پیدا نکردم که چجوری میشه به عنوان اسکریپت تو برنامه استفاده کرد یعنی کلا کتابخونه ای چیزی براش ندیدم :متفکر: . mono هم که فکر نکنم رایگان باشه. رایگانه ؟ سرعتو خیلی داغون نمیکنه؟

خلاصه اگه چیز خوبی سراغ دارید اسمشو بدید ممنون میشم. :قلب:

برای اسکریپت نویسی با javascript باید با تکنولوژی com و atl اشنا باشید بعد باید تمام اشیا به صورت اکتیو اکس باشند تا بتونند از سیستم event در javascript استفاده کنند . یعنی باید محدود به micro$oft باشید . سایت http://www.gameengineer.net/index.html توتوریالهای خوبی برای anglescript داره .

UfnCod3r
چهارشنبه 18 اردیبهشت 1392, 15:58 عصر
د اخه اسکریپت چرا (من یکی ک تعصب خاصی به سی++ و سرعت دارم و کلا با اسکریپت مخالفم :قهقهه:)
خب با اسکریپت می خوای چی کار کنی کد های بازی رو بنویسی ؟
می تونی با سی++ راحت ی رابط بین برنامت بنویسی که بشه براش پلاگین و .. نوشت . می تونی ران تایم دی ال ال رو سریع لود کنی مثل کرای انجین و هزار تا برنامه ی دیگه
اسکریپت این وسط چی می خواد من نمی دونم :متفکر:

ولی خب اگه اسکریپت می خوای اول از همه ی چی انتخاب کن ک ی IDE خوب براش باشه .
الان دیگه مثل پشگل تو نت زبان اسکریپتی ریخته جدا کن سوا کن
ولی ی چی انتخاب کن که خوب و معروف باشه مثل Lua
:لبخند:

orache
چهارشنبه 18 اردیبهشت 1392, 17:39 عصر
اره به نظر من هم lua خیلی خوبه الان یک چیزی یادم اومد که اسکریپت انجین cryengine 3 هم lua هست یعنی با این زبان براش برنامه نویسی میکنیم و میشه (البته با سی ++ هم میشه ولی اصلی و پاییه اینطور که از سایتش معلومه lua هست ) اسکریپت انجین شیوا هم lua هست
اسکریپت ادیتور 2 بعدی که زیاد چیز خاصی نمیخاد Scintilla براش کافیه ولی اگه 3 بعدی باشه بهترین ادیتور فکر کنم همون mono development باشه همون که برای یونیتی هم استفاده میشه چیزایی مثل VS و QT خوب نیستن برای یو دی کا از همینا استفاده میشن عذاب آوره !!!

littledemon
پنج شنبه 19 اردیبهشت 1392, 07:07 صبح
ولی من هنوز برام سواله چرا نیازت رو براورده نکرده angel. میتونی بگی دقیقا کجا باهاش به مشکل برخوردی که میخوای از یه چی دیگه استفاده کنی ؟:متفکر:

mohammadali1375
پنج شنبه 19 اردیبهشت 1392, 13:24 عصر
آرایه داینامیک + رشته و خیلی انواع داده کمی داشت ( البته میدونم بعضی اسکریپت انجینا خیلی کمتر هم دارند )
تا اونجا که فهمیدم هم شی گرایی نداره. البته احتمالا یکی از گزینه های خیلی خوب باشه. سعی میکنم بیشتر روش کار کنم

orache
پنج شنبه 19 اردیبهشت 1392, 14:21 عصر
تا اونجایی که میدونم شی گرا هست ولی یک سوال تو تو بازی 2 بعدی چرا میخای از ارایه ی داینامیک استفاده کنی ؟؟ اسکریپت انجین هایی که ساختن با lua و python کلی محدودیت دارن ولی میبینی که بهترین موتور 2 بعدی یعنی کانستراکت با اون همه قدرتش از همین اسکریپت انجین بهره میبره تازه یک موتور 2 بعدی بیشتر باید از پلاگین ها استفاده بشه که باید توسط فرد نوشته بشه اسکریپت انجین زیاد استفاده نمیشه (البته یک خورده استفاده میشه )

UfnCod3r
پنج شنبه 19 اردیبهشت 1392, 19:16 عصر
تو بازی 2 بعدی چرا میخای از ارایه ی داینامیک استفاده کنی ؟؟

:متعجب::متعجب:

mohammadali1375
پنج شنبه 19 اردیبهشت 1392, 20:38 عصر
آرایه داینامیک نیازی نیست تو دو بعدی ؟؟؟؟ اصلا چه ربطی به دو بعدی و سه بعدیش داره :لبخند:

orache
پنج شنبه 19 اردیبهشت 1392, 21:23 عصر
خوب یعنی اینقدر نیاز میشه که میخای یک اسکریپت انجین آلبالو رو بذاری کنار برو ببین بقیه ی اسکریپت انجینا چی دارن :لبخند: هیچی ندارن که آدم بهشون امیدوار باشه تو ویکی پدیا موتور های 2 بعدی رو سرچ کن ببین اسکریپت انجینشون چیه
موفق باشی

orache
شنبه 21 اردیبهشت 1392, 08:47 صبح
میدونم که تاپیک قدیمی شده ولی یه نگا به لینک زیر بنداز اکثر موتور ها توش هستن + اسکریپت انجیناشون نگاه کنی کی چی داره بعضی از موتور های 3 بعدی هم انجین اسکریپتشون angle هست
http://en.wikipedia.org/wiki/List_of_game_engines

kochol
شنبه 21 اردیبهشت 1392, 18:43 عصر
سلام
من طبق تجربه خودم فهمیدم که سی++ بهترین زبان اسکریپت می تونه باشه.

من اول cyrus script رو نوشتم و بازی سیاوش رو هم با این اسکریپت دادیم بیرون که انصافا سرعت اجرای اسکریپت خیلی عالی بود.

ولی بعد از سیاوش تغییراتی در ادیتور دادم که به این صورت بود وقتی تو ادیتور بازی مرحله جدیدی می ساختی یک فایل پروژه vs 2010 می ده که بازش می کنی و می تونی اونجا تو تابع هایی که داره کد بزنی.
حالا مثلا یه entitty جدید میزاری تو صحنه خود پروژت آپدیت می شه و به پوینتر اون انتیتی دسترسی داری GUI که می زاری همین طور یه فایل جدید اضافه می شه که می تونی توش برای رویداد های GUI ات کد بزنی
خلاصه تو ادیتور هر تغییری بدی اون ور هم پروژت آپدیت می شه.

وقتی که کامپایل می کنی کدت رو یه dll می شه که ادیتور هم موقع اجرا اونو لود می کنه و تابع های اونو صدا می زنه.

قابلیت هایی که این طوری نسیبت می شه عبارت است از.
1. سرعت بالا
2. امکانات زیاد هر چی سی ++ داره تو هم داری
3. باگ نداشتن تو زبان اسکریپتت
4. از همه مهمتر بهترین دیباگر رو داری که می تونی کد اسکریپتت رو دیباگ کنی و ببینی تو اسکریپتت کجاها اشتباه کردی.

mohammadali1375
یک شنبه 22 اردیبهشت 1392, 17:21 عصر
آره فکر کنم C++ باشه بهتر باشه. یه دوست دیگه ای هم همینو گفت. احتمالا هم همینکارو میکنم. فقط اینطوری مشکل کامپایل ریل تایم پیدا نمیشه ؟ یعنی برای هر بار تست کردن کد تو ادیتور نیاز نیست ادیتور رو دوباره باز و بسته کرد تا dll ها که قبلا لود شده بتونند با dll های جدید که کامپایل شده جایگزین بشند ؟

سپول
یک شنبه 22 اردیبهشت 1392, 18:07 عصر
آره فکر کنم C++‎‎‎‎ باشه بهتر باشه. یه دوست دیگه ای هم همینو گفت. احتمالا هم همینکارو میکنم. فقط اینطوری مشکل کامپایل ریل تایم پیدا نمیشه ؟ یعنی برای هر بار تست کردن کد تو ادیتور نیاز نیست ادیتور رو دوباره باز و بسته کرد تا dll ها که قبلا لود شده بتونند با dll های جدید که کامپایل شده جایگزین بشند ؟
می تونی با استفاده از تکنیک hot-loading خودبه خود تشخیص بدی که فایل DLL تغییر کرده یا نه ، و با استفاده از LoadLibrary دوباره لود، توابع رو بگیری و اجرا کنی. فقط واضحه که اگه حافظه ای در DLL تخصیص داده باشی می پره.


من طبق تجربه خودم فهمیدم که سی++ بهترین زبان اسکریپت می تونه باشه.
موافق نیستم. من با cyrus script کار نکردم ولی تو مورد اسکریپت، مهمترین چیز در وحله اول سادگی کار با اسکریپت مخصوصا از دید یک شخصی که به برنامه نویسی آشنایی چندانی نداره، هست. سرعت در اولویت های بعدی قرار می گیره.
- از اسکریپت معمولا برای کل gameplay کسی استفاده نمی کنه، بلکه level-designer یا designer ها برای تعریف منطق های کلی بازی، رابط گرافیکی کاربر، رویدادهای ساده و حتی ساختن میانپرده ازش استفاده می کنند. نه - اینکه به فرض بیان کل هوش مصنوعی یا مسیریابی رو با اسکریپت پیاده کنند. پس لود آنچنانی روی روند بازی نخواهد داشت و اصلا نباید داشته باشه. وگرنه اون قسمت ها رو باید با C نوشت و به زبان اسکریپت bind کرد.
- اسکریپت هایی مانند lua و flashscript صرفا برای کسانی طراحی شده که آشنایی عمیق با مفاهیم و زبان های برنامه نویسی ندارند، یک دیزاینر اگه کمی از برنامه نویسی هم سر دربیاره باز هم اصلا نمی تونه با SDK و زبان C++‎‎‎ ، کامپایلر، مدیریت حافظه، اشاره گرها و این چیزها کنار بیاد. خود برنامه نویس هم کلی اشتباه می تونه انجام بده و خیلی وفت بیشتری برای کارهای ساده ازش می گیره دیگه چه برسه به دیزاینر.
- در طراحی بازی مهمترین مورد سرعت خروجی گرفتن هست، یعنی به فرض متغیری رو تغییر بدید، و همونجا نتیجه رو ببینید. نه اینکه برای تست های کوچک و تغییر متغییرهای بازی (که خیلی زیاد هم پیش میاد) 100 بار کامپایل کنید.


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

من خودم Lua رو باهاش کار می کنم و خیلی هم راضی هستم به شما هم همون رو پیشنهاد می کنم. خودش با زبان C نوشته شده و بسیار سبک هست. دستور زبانی بسیار ساده ای هم داره شبیه basic هست و کل دستورش رو در یک صفحه می شه به هر کسی یاد داد (دنبال اسکریپتی نرید که صرفا دستوری شبیه C داشته باشه) . جالب اینه که اگه سورس ترجمه گراش (interpreter) رو نگاه بندازید، مجموعا 500 خط بیشتر نیست. اگه سرعت براتون مهمه، سرعت بسیار خوبی هم داره، اگه سرعت بیشتر براتون مهمه، نگاهی به luaJIT بندازید. که با اختلاف زیاد از نظر سرعت از بیشتر موتورهای اسکریپت پیشی می گیره.

orache
یک شنبه 22 اردیبهشت 1392, 18:27 عصر
اسکریپت انجین بهترین انجین بازی سازی یعنی unreal رو با ++C نوشتن
بعد از اون CryEngine هست که با lua نوشتن یعنی استفاده شده
ولی در کل من با نظر سپول موافقم چون سادگی کار با اسکریپت انجین حرف اولو میزنه و در صورتی که انجین بخاد برای عموم افراد قرار بگیره و یا حتی خصوصی باشه (چون بالاخره کار کنان شرکت باهاش کار میکنن ) باید راحت باشه مثل cry engine که اسکریپتش خیلی راحت و قابل فهمه