Contacts
صفحه اصلی پورتال | صفحه اصلی تالار | ثبت نام | اعضاء | گروه ها | جستجو | پرسش و پاسخ | فروشگاه الکترونیکی | خرید پستی بازی های کامپیوتری





صفحه اول انجمنها -> بازیها و پروژه های در دست تولید -> موتور بازی آبنوس
 

ارسال يك موضوع جديد   پاسخ به يك موضوع ديدن موضوع قبلي :: ديدن موضوع بعدي
برو به صفحه قبلي  1, 2, 3, 4, 5, 6  بعدي

نويسنده
پيغام
ali.solati
کاربر جدید
کاربر جدید


تاريخ عضويت: جمعه 4 بهمن 1387
تعداد ارسالها: 6


جمعه 11 بهمن 1387 - 10:01
پاسخ بصورت نقل قول
........................


اين نامه توسط ali.solati در جمعه 11 بهمن 1387 - 10:08 ويرايش شده است.
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

نويسنده
پيغام
ali.solati
کاربر جدید
کاربر جدید


تاريخ عضويت: جمعه 4 بهمن 1387
تعداد ارسالها: 6


جمعه 11 بهمن 1387 - 10:04
پاسخ بصورت نقل قول
اجراش کردم، فکر کنم با VS2008 نوشته شده باشه، و بعد از اینکه بسته Microsoft Visual Studio 2008 Redist رو نصب کردم اجرا شد.
کار خاصی نتونستن انجام بدم توش، ولی کار جالبی بود، تبریک می گم که موتوری از پایه و بدون دروغ درست کردین.
در مورد Fps شاید "همه" بازی ها اینجوری نباشن ولی بیشتر موتورها اینجوری کار می کنه که کنترلی روی Fps نمی گذارن ، البته امکان vsync که با فرکانس مانیتور هماهنگ می شه همیشه می شه گذاشت که از tearing جلوگیری کنه.
در مورد تایم هم سریعترین راه استفاده از توابع QueryPerformanceFrequency و QueryPerformanceCounter هست که برای استفاده از اونها MSDN رو ببینید.
Sleep هم بهتره که استفاده نکنید چون latency داره و در تایم های ریز به طور دقیق جواب نمی ده. به جاش از یک حلقه while استفاده کنید که در هر بار اجرای حلقه تایم رو چک کنه به مقدار لازم که رسید از حلقه بیاد بیرون. در موتور 0.5 میلی ثانیه هم مهمه که در توابعی مثل Sleep همچین دقتی وجود نداره
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

نويسنده
پيغام
Seyed
در حال رشد
در حال رشد


تاريخ عضويت: 3 شنبه 5 دي 1385
تعداد ارسالها: 65


4 شنبه 16 بهمن 1387 - 06:48
پاسخ بصورت نقل قول
دوست دارم بدونم روند توليد اين موتور تا كجا پيش رفته ؟

_________________

[img]
بازي كابوس مركاوا (دانلود رايگان ) مربوط به جنگ غزه
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل ديدن وب سايت كاربر نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
samdeath
کاربر جدید
کاربر جدید


تاريخ عضويت: 4 شنبه 19 ارديبهشت 1386
تعداد ارسالها: 6
محل سكونت: تهران


4 شنبه 16 بهمن 1387 - 09:47
پاسخ بصورت نقل قول
سلام
فعلاً به دلایل نه چندان موجهی، مدتیه که من تقریباً هیچ کاری روی موتور نکردم. ولی محمدرضا داره خوب کار می کنه روش و خیلی بهتر می تونه جواب بده. من یه جواب اجمالی می دم.

همون طور که توی پاسخ های قبلی هم اشاره شده، اون دمو که گذاشتیم مال نسخه ی 1 موتور بود و ما به علت کمبود زمان (هم اصراری که دوستان بر گذاشتن دمو روی سایت داشتن، هم اصراری که اساتید روی رسوندن پروژه داشتن!) خیلی جاها رو پیچوندیم و به طرز فجیعی افتضاح نوشتیم! به همین دلیل محمدرضا پروژه رو برد روی نسخه ی دوم. در واقع شروع به نوشتن مجدد موتور کرد، البته با انتقال دادن بخش هایی از موتور قبلی. همون طور که خود محمدرضا گفته بود، الان بیشتر به مفاهیمی مثل Unit، Hero، Item و غیره و هم چنین استفاده از Scripting برای ساختن مراحل داره (داریم؟!) می پردازه.

حالا باز هم دقیق ترش رو خود محمدرضا باید بگه.

در ضمن در مورد اون پست قبلی باید بگم که استفاده از یه حلقه ی while به جای Sleep، مشکل Busy Waiting ایجاد می کنه، یعنی پردازنده توی یه حلقه در حالی که هیچ کاری انجام نمی ده، کاملاً مشغوله. این کلاً زیاد جالب نیست، مخصوصاً در مورد برنامه های عادی (غیر از بازی). در مورد بازی هم نمی دونم، ولی اصلاً نظر خوبی در مورد اون ندارم. حداقل بدی ای که داره، اینه که روی لپ تاپ، پردازنده دائماً مشغول می شه و در نتیجه مصرف توانش می ره بالا و فن پردازنده هم هی روشن می مونه.

نکته ی دیگه این که دقت Sleep در حد میلی ثانیه هست، و FPS حداکثر دیگه می شه 300. یعنی 1000 تقسیم بر 300 که تقریباً می شه 3.33 یعنی هر فریم 3.33 میلی ثانیه طول می کشه. حالا ما اگه بخوایم FPS رو ببریم روی 60، 1000 تقسیم بر 60 می شه 16.6، یعنی 16.6 منهای 3.3 تقریباً 13.3 میلی ثانیه باید توی هر فریم بی کار باشیم (با فرض FPS 300). خوب خیلی ساده می تونیم با استفاده از Sleep، توی دو فریم 13 میلی ثانیه و توی فریم سوم 14 میلی ثانیه Sleep کنیم که این مشکل عدم وجود دقت کافی رو از بین می بره (این همون کاریه که توی نسخه ی جدید دمو (که نذاشتیمش این جا!) کردیم و نتیجه هم بسیار دقیق بود، یعنی مثلا FPS رو محدود کردیم به 53 (که یه عدد اوله و نتایج اون تقسیم قبلی خیلی افتضاح می شه!) و بعد که اندازه گرفتیم، دقیقاً روی 53 بود). مسئله اینه که توی سرعت 60 فریم در ثانیه، یه فریم به تنهایی اصلاً اهمیت نداره. مهم مجموع فریم هاست که باید اون نتیجه ی لازم رو داشته باشه.

باز هم اگه نظری دارین یا فکر می کنین جایی اشتباه می کنم، خوش حال می شم بگین.
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
mralizadeh
در حال رشد
در حال رشد


تاريخ عضويت: 1 شنبه 16 اسفند 1383
تعداد ارسالها: 65
محل سكونت: تهران


4 شنبه 16 بهمن 1387 - 16:10
پاسخ بصورت نقل قول
اشتباه می کنی !!!
با توجه به اون چيزی که من يه جا خوندم تابع Sleep ضمانتی در مورد حداکثر زمان نميده. در ضمن هيچ جوره هم نميشه به سيستم عامل اطمينان کرد که سر وقت ما رو خبر کنه. لذا بنده از همون روش حلقه ای استفاده کردم. در ضمن برای گرفتن زمان نيز از دو تابع timeGetTime و QueryPerformanceCounter استفاده شده (چون گويا بعضی سيستم ها QueryPerformanceCounter رو پشتيبانی نمی کنن). اينا جواب آقای ميرزایی بود.

اما در مورد روند توليد موتور:
فهرستی از چيزهایی که تا الان اضافه شدن به شرح زير است (البته اين فهرست تقريبيه):
1- يک Terrain جديد اضافه شده. Terrain قبلی پيچيده تر بود و MultiPass هم کشيده میشد. (البته بسيار منعطف بود، و می شد هر تعداد لايه و بافتی رو روی اون کار کرد). اما Terrain جديد ساده است. DetailMap داره و از روی يک Heightmap ساخته می شه. به علاوه من برنامه ی توليد سايه رو هم برای Terrain نوشتم که هنوز يکم مشکل داره. البته اميدوارم که هرچه زودتر همون Terrain قبلی رو SinglePass کنم چونکه بسيار باحال تره!!!

2- توی نسخه ی قبلی برنامه ی "انتخاب" (Picking) نوشته شده خيلی ساده تر بود و فقط در صورتی که سطح صاف بود درست کار می کرد. اما الان يک روش ديگه برای Picking نوشته شده که روی HeightMap نقطه انتخاب شده رو پيدا می کنه. در ضمن ارتفاع نقاط روی Terrain هم ميان يابی (Interpolate) میشن.

3- در حال حاضر تمامی عناصر GUI می تونن توی محيط دو بعدی (همون روش عادی)، يا توی محيط سه بعدی باشن (با استفاده از پروجکشن). اين برای اينه که بشه اطلاعات ملت رو بالای سرشون نشون داد (اطلاعاتی از قبيل جون و اسمشون).

4- اسکريپت به موتور اضافه شده. الان Config اوليه ی کار از قبيل اندازه ی پنجره و تمام صفحه بودن و ... . با اسکريپت انجام ميشه. در ضمن يک رابط (Interface) بين موتور و اسکريپت نوشته شده که بوسيله ی اون ميشه موجودات رو ايجاد کرد.

5- يک کلاس TerrainDecal اضافه شده که برای نمايش نيروهای انتخاب شده به کار می ره. توی نسخه ی قبلی يک شکلی زير نيروهای انتخاب شده نشون داده می شد. اما فقط يک Quad ساده بود که اگر زمين زيرش پستی بلندی داشت خراب میشد (می رفتن توی هم). اما اين کلاس جديد کاملا روی Terrain قرار می گيره.
6- کلاس Billboard اضافه شده که فعلا هيچ استفاده ای ازش نکرديم.
7- سيستم حرکتی نيروها توی نسخه ی قبلی مشکل داشت (توی چرخيدن رو به هدف). که الان درست شده
8- يک سری کلاس برای منطق کار اضافه شدن (بعضی ها شون هنوز ناکامل هستند):
Attribute: برای چيزهایی مثل جون، سرعت حرکت، Damage. به اين کلاس می تونه يک سری Effector اضافه بشه که توی زمان مقدارش رو عوض کنن. (مثلا اثر زهر روی يک نفر با اضافه کردن Effector کاهنده به جونش شبيه سازی می شه).
Effector: اين کلاس به يک Attribute وصل می شه و مقدار اون رو يا در طول زمان يا ناگهانی عوض می کنه.
Hero: خوب معلومه ديگه. معمولا اسم مشخص داره و مهمتر از Unit عادی هم هست.
Unit: اين هم معلومه.
Ability: يک کاری که Unit يا Hero میتونن انجام بدن. Ability می تونه در طی بازی به يک نفر اضافه بشه يا اينکه کم بشه.
Buff: يک Buff مجموع ای از Effector هاست که روی يک نفر میافته و Attribute های اون رو عوض می کنه. اين Buff ها معمولا حاصل اعمال يک Ability روی يک نفرن. (مثلا Buff برای شمشير زهرآلود: جون طرف رو طی 5 ثانيه 100 تا کم می کنه در ضمن طی 10 ثانيه طرف رو کند می کنه، ...)
Player: معادل طرفين در بازی (آدمی که بازی می کنه يا AI). معمولا يک سری Resource داره و ... .
Rule: قوانين بازی. شامل يک سری شرطی که اگر صادق بشن يک سری عمليات بايد انجام بشه (اگر Heroی شما رو بکشن، شما می بازين، يا اگر شما فلان شمشير رو به دست بيارين می تونين يک مرحله ی خاص رو هم بازی کنين، ...).
Trigger: که Region هم گفته می شه. معمولا يک جايی هست که اگر شما وارد اون بشين (يا خارج بشين) يک اتفاقی می افته.

9 و ... - يک سری عنصر جديد هم به GUI اضافه شدن (مثل BorderedElement و Image و ImageSet ). کلاس EnvironmentEffect شامل Fog، Rain، Day، CameraShaker اضافه شده. کلاسهای Mouse و KeyBoard با استفاده از DirectInput اضافه شده.

در حال حاضر هم من مشغول Collision Detection هستم. البته Detection کاری زيادی نداره و Response کردنش اذيت میکنه. در ضمن سيستم PathFinding رو هم دارم می نويسم.

فکر می کنم با نوشتن دو مورد بالا و تکميل کلاس Rule بشه يک بازی ساده نوشت.

شرمنده که خيلی حرف زدم. منتظر پيشنهاد و انتقاد شما هستيم.
موفق باشيد.
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل ديدن وب سايت كاربر
 

نويسنده
پيغام
mralizadeh
در حال رشد
در حال رشد


تاريخ عضويت: 1 شنبه 16 اسفند 1383
تعداد ارسالها: 65
محل سكونت: تهران


2 شنبه 9 شهريور 1388 - 15:10
پاسخ بصورت نقل قول
به نام خدا
سلام
نماز و روزه هاتون قبول

بعد از مدت مديدی کار روی موتور، کار به جاهای نسبتاً خوبی رسيده. چند تا تصوير از اينجای! کار گذاشتم تا ببينيد و نظرتون رو بگيد. البته کلی از چيزهایی که نوشتيم توی اين عکس ها ديده نميشه، مثل صدا، منطق بازی و مسيريابی و ... . به همين دليل سعی می کنيم تا آخر هفته يک نمونه از کار برای آزمايش بذاريم.

در آخر يادآوری می کنم که مدل ها و بافت های استفاده شده، از بازی Warcraft III وام گرفته شده!!! مگر تعداد معدودی از اونها. من جمله نشانگر موس و چند تا از عناصر GUI. با تشکر.
نظر فراموش نشه.










اگر بالایی ها جواب نداد:
http://gamedev.parsbox.com/screenshots/1.jpg
http://gamedev.parsbox.com/screenshots/2.jpg
http://gamedev.parsbox.com/screenshots/3.jpg
http://gamedev.parsbox.com/screenshots/4.jpg
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل ديدن وب سايت كاربر
 

نويسنده
پيغام
Kochol
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: شنبه 1 مرداد 1384
تعداد ارسالها: 298


3 شنبه 10 شهريور 1388 - 16:27
پاسخ بصورت نقل قول
سلام
خیلی پروژه باحالی رو انتخاب کردین تبریک می گم

اول راجب به دمو بگم که خوب بود ولی تو دستگاه من فریم ریت 1800 بود و سه سوت تموم بازی تموم می شد.

این مشکل رو باید حل کنید البته امیدوارم که تا حالا حل شده باشه باید سرعت حرکت بر اساس زمان باشد مثلا فرض می کنیم که کاراکتر باید در هر ثانیه 5 واحد جلو بره اونوقت در هر فریم کسر زمان را در جابه جایی ضرب می کنیم.

بعد راجب به تکستچر terrain باید بگم که تکستچر terrain در بالا ها تار دیده می شد که این مشکل به خاطر mipmap است وقتی دارید از tile استفاده می کنید باید طوری میپ مپ بسازید که هر خونه از تایل جداگانه scale بشن و در جای خودشون قرار بگیرن من این کار رو با devil نجام دادم. بعد برای یک تکستچر ای که 16*16 تا تایل داره کوچمترین میپ مپ باید 16*16 پیکسل باشه نه 1*1

در مورد sleep هم بگم که سعی کنید که استفاده نکنید و حلقه هم همین طور و به جاش از vsync مانیتور استفاده کنید ولی دستوری هست که در ویندوز تابع sleep رو دقیقتر می کنه.

timeBeginPeriod(1);

و قبل از خارج شدن از برنامه هم

timeEndPeriod(1);

کاش نوع terrain رو هم عوض نمی کردی.

_________________
Kochol Game Engine

[img]http://barnamenevis.org/forum/image.php?type=sigpic&userid=6875&dateline=1258101798[/img]
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
samdeath
کاربر جدید
کاربر جدید


تاريخ عضويت: 4 شنبه 19 ارديبهشت 1386
تعداد ارسالها: 6
محل سكونت: تهران


5 شنبه 12 شهريور 1388 - 17:39
پاسخ بصورت نقل قول
سلام به همه
با نهایت تأسف و تأثر! باید خدمتتون بگم که ما موفق نشدیم دمو رو کامل کنیم و برای نمایش روی سایت بذاریم.
می‏خوایم یه مرحله‏ی کامل درست کنیم که قابلیت‏های ساخته شده رو تا حد خوبی نشون بده.
سعی می‏کنیم طی هفته‏ی آینده دمو رو کامل کنیم.
با عرض پوزش از تأخیر پیش آمده!
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
Pswin
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: جمعه 29 دي 1385
تعداد ارسالها: 261
محل سكونت: پشت کامپیوترم


5 شنبه 12 شهريور 1388 - 20:30
پاسخ بصورت نقل قول
کارتون عالیه.


کوچول:
کدوم یکی 9800 و یا 9900؟

_________________
سمینار تخصصی بازی سازی و گرافیک کامپیوتری (یکشنبه 29 آذر 1388 - 9:30 صبح تا 13 بعد از ظهر ):
http://barnamenevis.org/forum/forumdisplay.php?f=28
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ديدن وب سايت كاربر نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
Kochol
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: شنبه 1 مرداد 1384
تعداد ارسالها: 298


5 شنبه 19 شهريور 1388 - 13:51
پاسخ بصورت نقل قول
چی پرسیدی؟

فکر کنم منظورت مدل کارت گرافیکمه.

کارت من 260 gtx است

_________________
Kochol Game Engine

[img]http://barnamenevis.org/forum/image.php?type=sigpic&userid=6875&dateline=1258101798[/img]
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

نمايش نامه هاي ارسال شده قبلي:   
ارسال يك موضوع جديد   پاسخ به يك موضوع    صفحه 4 از 6 تمام ساعات و تاريخها بر حسب 3.5+ ساعت گرينويچ مي باشد
برو به صفحه قبلي  1, 2, 3, 4, 5, 6  بعدي


 
پرش به:  


شما نمي توانيد در اين انجمن نامه ارسال كنيد.
شما نمي توانيد به موضوعات اين انجمن پاسخ دهيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن ويرايش كنيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن حذف كنيد
شما نمي توانيد در نظر سنجي هاي اين انجمن شركت كنيد


unity3d

بازگردانی به فارسی : علی کسایی @ توسعه مجازی کادوس 2004-2011
Powered by phpBB © 2001, 2011 phpBB Group
| Home | عضويت | ليست اعضا | گروه هاي كاربران | جستجو | راهنماي اين انجمن | Log In |