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





صفحه اول انجمنها -> برنامه نويسي تخصصي DirectX و اصول برنامه نويسي تحت ويندوز -> Kochol Game Engine
 

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

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


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


جمعه 6 آبان 1384 - 01:17
پاسخ بصورت نقل قول
سلام
من امروز يه گيم انجين براي خودم ساختم من از ساخت اين چند هدف را دنبال مي کنم.
1. يادگيري
2. کار گروهي در ايران من مي خواهم اين پروژه بصورت اپن سورس فقط دست ايرانيان باشه و اگه کسي مايل بود با همديگه هم ياد بگيريم هم يه انجين براي خودمان داشته باشيم
3. مي خواهم استفاده از اين موتور ساده باشه حالا اين نمونه کد را بررسي کنيد ببينيد که ساده به نظر مي ياد يا نه.

كد:

Imports KGE 'We want to use Kochol Game Engine

Public Class Form1
Inherits System.Windows.Forms.Form
Private KgeX As New KgeX
Dim Kge3D As Kge3D
Dim xFile As KgeMesh
Dim xFile2 As KgeMesh

Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
Kge3D.ColorFill(Color.OliveDrab)
xFile.Draw()
xFile2.Draw()
Kge3D.Flip()
End Sub

Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated
Kge3D = New Kge3D(KgeX, Me)
Dim Cam As New KgeCamera(Kge3D, New KgeVector3(0, -300, 55), New KgeVector3)
xFile = New KgeMesh(Kge3D)
xFile.LoadFromFile("C:\Documents and Settings\Kochol Soft\My Documents\Visual Studio Projects\c#\d3dtest01\bin\Debug\tiny.x")
xFile2 = New KgeMesh(Kge3D)
xFile2.LoadFromFile("C:\Documents and Settings\Kochol Soft\My Documents\Visual Studio Projects\c#\d3dtest01\bin\Debug\Warrior1.x")
End Sub
End Class

کلاسهاي ايجاد شده تا به اين جا:
KgeX
Kge3D
KgeVector3
KgeCamera
KgeMesh
طراحي اين کلاسها طوري هست که بدون داشتن دايرکت ايکس اس دي کي هم بشه از اين موتور استفاده کرد ولي ديگه براي تغيير سورس ان بايد حتما دايرکت ايکس اس دي کي را نصب کنيد.

برای دانلود کردن فایلها می تونید از ادرس زیر استفاده کنید.
http://www.barnamenevis.org/forum/showthread.php?p=157567#post157567#post157567

_________________
Kochol Game Engine

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

نويسنده
پيغام
Sirus-v
کاربر اخراج شده


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


جمعه 6 آبان 1384 - 02:54
پاسخ بصورت نقل قول
خیلی جالبه . اگه میشه توضیح بیشتری در مورد قابلیت های Engine تون بدید و اینکه از چه منابعی استفاده کردید ؟؟ اگه کتاب خوبی در مورد برنامه نویسی Game Programming با VB.NET که استفاده کردید دارید نامش رو ذکر کنید ممنون می شم Mr. Green

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

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


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


جمعه 6 آبان 1384 - 10:17
پاسخ بصورت نقل قول
سلام
خیلی هنوز قابلیتهای زیادی نداره و در حال حاضر یک روز از عمرش می گذره و من هنوز در فاز یاد گیری هستم ولی خوب همونطور که در نمونه کد بالا می بینید می شه خیلی راحت تنها با 3 خط کد یک فایل .ایکس را خوند و نمایش داد که از این 3 خط
1. تعریف متغیر
2. لود فایل
3. نمایش فایل 3 بعدی
البته یه باگ داره که اونم وقتیه که یه فایل 3 بعدی رو می خونه دنبال تکستچرش تو خود شاخه ای که برنامه هست می گرده نه اون شاخه ای که براش تعریف شده.

این هم کتابی که من از روش می خونم.
مقدمه
Managed DirectX was released with the latest version of the core DirectX libraries in DirectX9. It enables developers using the new .NET languages (i.e. C#, VB.NET, etc.) to develop rich multimedia applications with DirectX. Unfortunately the Managed DirectX runtime was released without adequate documentation, and developers are having a hard time figuring out the best way to write managed applications. This book covers how to use the Managed DirectX objects, how they differ from the core DirectX libraries, and how to create these rich multimedia applications in C#. It also covers in depth graphics techniques and the new high-level shader language shipping with DirectX9.
لينکهاي دانلود:
http://docs.cirkva.net/E-books/!naucne/Game%20programming/Managed%20DirectX%209%20Kick%20Start%20-%20Graphics%20and%20Game%20Programming%20-%20Sams.chm

http://www2.fixdown.com/en/soft/14203.htm

_________________
Kochol Game Engine

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

نويسنده
پيغام
Sirus-v
کاربر اخراج شده


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


جمعه 6 آبان 1384 - 12:19
پاسخ بصورت نقل قول
خیلی خوبه . مطمئنم Engine تون پیشرفت های زیادی می کنه . این کتاب هم کتاب خیلی خوبیه و خیلی واضح توضیح داده هفته پیش یکم ازش رو خوندم . ممنون .
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي نام كاربري در پيغامگير Yahoo
 

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


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


شنبه 7 آبان 1384 - 10:03
پاسخ بصورت نقل قول
Small Update
سلام
کلاسهای ایجاد شده:
KgeSprite
کلاسهای تغییر کرده:
KgeX
KgeMesh
باگهای رفع شده:
باگ شماره 1.

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

این کلاس هنوز از Trancparenty پشتیبانی نمی کنه یعنی نمیشه یه رنگ از عکس را محو کرد و همچنین عکس های نمایش داده را تبدیل می کنه به یکی از اندازه های 2*2 4*4 8*8 16*16 32*32 64*64 128*128 256*256 ... 4048*4048 که البته در خود کتاب هم نوشته بود اگر من کدهای این کتاب را گیر بیاورم فکر کنم بتونم این دو تا کمبود را در کلاس درست کنم و همچنین قابلیت انیمیشن هم به این کلاس می دهم.

درخواست کمک:
هر کسی که مایل بود و به اینترنت همیشه وصل بود لطفا با emule برای من فایل کدهای کتاب Managed directx را بگیرد و من هر قسمتی را که خواستم به من بدهد تا من بتونم کارهایی را که باید انجام بدهم راحتتر و سریع تر انجام بدهم. به خاطر اینکه تعداد افرادی که این فایل را دارند در ایمول کم هست پس من هم که در روز 1 ساعت بیشتر نمی تونم انلاین بشم خودم نمی تونم دانلودش کنم.

درضمن دو تا اسکرین شات هم گذاشتم اگر دوست داشتید از این ادرس ببینید.
http://www.barnamenevis.org/forum/showthread.php?t=31272

خیلی ممنون آقا سیروس حرفهای شما واقعا به من دلگرمی می ده.

_________________
Kochol Game Engine

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

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


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


1 شنبه 8 آبان 1384 - 12:49
پاسخ بصورت نقل قول
سلام
کلاس جدید:
KgeTimer
این کلاس فکر کنم بسیار پر کاربرد باشد و در بازی ها زیاد استفاده بشه کلا کار با این کلاس ساده هست و دارای سا تابع برگشتی هست که:
1. MilliSecondsPassed
تعداد میلی ثانیه هایی که از ایجاد کلاس یا از آخرین زمانی که این تابع فراخوانده شده را بر می گرداند. از 0 تا 999 میلی ثانیه
2. SecondsPassed
مثل تابع بالا هست ولی ثانیه ها را برمی گرداند. از 0 تا 59 ثانیه
3. NextFrame
این هم وقتی است که شما می خواهید کاری را بر اساس مقداری از زمان که گذشته استفاده کنید. معمولا در هر بار که صفحه را رندر می کنید چک می کنید که این تابع مقدار true را دارد یا نه اگر داشت هر کاری که باید انجام شود را به او می دهید. این زمانی هم که باید چک کند از طریغ خاصیت Interval قابل تعریف هست.
البته باید یه روال Reset هم برای این کلاس بسازم.

کلاس به روز شده:
KgeX
اگر کارت گرافیک شما بتونه و توانایی ساپورت را داشته باشه تکستچر ها را شفاف تر و دقیق تر نمایش می دهد.
به اصطلاح اگر کارت گرافیک شما از MinifyAnisotropic و MagnifyAnisotropic پشتیبانی کنه موتور به صورت اتوماتیک استفاده می کند.

کارهای بعدی:
احتمالا بر روی کلاس KgeMesh کار می کنم و تغییرات زیادی را به آن می دهم.

من دوست دارم هر دو یا سه روز یک بار این موتور را آپدیت کنم تا حالا که این کارو کردم ولی می ترسم از این به بعد وقتم محدود تر بشه و هفته ای یه اپدیت برای این موتور بدم Crying or Very sad

_________________
Kochol Game Engine

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

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


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


جمعه 13 آبان 1384 - 11:04
پاسخ بصورت نقل قول
سلام
من این چند وقته داشتم بیشتر بر روی پایه و اساس موتور فکر می کردم و اینکه چه چیزهایی لازم دارد و چگونه باید باشد به همین دلیل ساختار شی گرایی و راحتی کار با ان را تغییر دادم.
ساختار قبلی طوری بود که کلاس KgeX بسیار بزرگ می شد و کلاسهای دیگر همه ی وظایف خود را به این کلاس واگذار می کردند پس به کل این کلاس را حذف کردم و کدهاشو در بین کلاس های دیگر تقسیم کردم.
و کلاس Kge3D هم به KgeScreen تغییر نام پیدا کرد بقیه کلاس ها هم کار خود را خودشان انجام می دهند اینطوری برنامه خیلی قابل فهم تر شد.

کلاس های جدید:
KgeParameter
این کلاس خیلی می تونه موثر باشه در هدف ما که می خواهیم این موتور آسان باشه کارهایی که قرار است انجام بدهد این است که محل و تغییر اندازه و چرخش را در خود نگه دارد و همه محاسبات جابجایی بر روی مسیر دایره ای و ... را انجام بدهد باید این کلاس را در عمل ببینید ولی خوب هنوز کار داره و کاربرد کمی در موتور داره ولی باید این کلاس کم کم پیشرفت کنه.
KgeBillboard
این کلاس برای ایجاد تکنولوژی بیلبورد در بازی ها استفاده می شه همون تکنیکی که یک تصویر دو بعدی همیشه رو به دوربین دارد و معمولا برای نمایش درختها و سنگها در صحنه استفاده می شه ولی عملا هنوز این کلاس کاری انجام نمی دهد و نیاز به تغییرات زیادی هم از نظر ریاضیات به کار برده شده و هم از نظر اینکه نمایش خود تصاویر هنوز کار دارد ولی من این را طوری خواهم ساخت که برای ساخت بازی های دو بعدی بشه از این کلاس استفاده کرد.
کلاسهای تغییر کرده:
KgeMesh
به این کلاس قابلیت کامل همخوانی با کلاس KgeParameter داده شده است.

نظرات يادتون نره Surprised

_________________
Kochol Game Engine

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

نويسنده
پيغام
GameOver
بازی ساز
بازی ساز


تاريخ عضويت: 2 شنبه 11 مهر 1384
تعداد ارسالها: 131


شنبه 14 آبان 1384 - 01:42
پاسخ بصورت نقل قول
توي اون پست نوشتم اين جا هم ميگم : كارت 20 Laughing 20

فقط يكم بيشتر روي پايه انجينت دقت كن چون بعدا با مشکل بزرگتری روبه رو میشی
سای کن که هر چیز رو توی کلاس های جدا طبقه بندی کنی مثلا قسمت Renderer رو از MapReader جدا کنی یا keybord input رو توی یک کلاس جدا قرار بدی که اگه وقتی خاستی مثلا کیبرد رو توی یک برنامه دیگه یا قسمت دیگه از برنامت استفاده کنی کد ها رو نخای دوباره بنویسی . Surprised
نمیدونم. شاید ار من بهتر بلد باشی ولی گفتم که یه وقت فراموش نکنی Very Happy
موفق باشی. Arrow
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي شماره ICQ
 

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


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


شنبه 14 آبان 1384 - 18:09
پاسخ بصورت نقل قول
خيلي ممنون به اين چيزهايي هم كه گفتيد كاملا عمل مي كنم.

_________________
Kochol Game Engine

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

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


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


1 شنبه 15 آبان 1384 - 09:11
پاسخ بصورت نقل قول
سلام
کلاسهای جدید:
Kge2DSprite
این کلاس برای نمایش انیمیشانهای دو بعدی هست و کلا اگر بخواهیم بازی 2 بعدی بسازیم باید از این کلاس استفاده کنیم هر چند که می شود از نور پردازی و اشیای 3 بعدی هم در صفحه استفاده کرد ولی کلا این کلاسبرای این کار هست که من یکی از ارزوهام ساختن این کلاس بود چون همیشه دوست دارم بازیهای 2 بعدی بسازم تا 3 بعدی البته هنوز انیمیشن را ساپورت نمی کنه که من فکر کنم تا فردا بتونم این رو هم درست کنم.
KgeImages
این کلاس به نظر من یکی از شاهکارهای این موتور هست که البته نه سازندهای داره نه هیچی و کاربر هیچ استفاده ای از این کلاس نمی تونه بکنه حالا کار این کلاس عجیب چیه این کلاس تمام تکستچرها را در کل برنامه کنترل می کند اگر بخواهیم که یک تکستچری که قبلا لود شده را لود کنیم این کلاس شماره تکستچر قبلی را می فرستد که یک اشاره ای می کند و تکستچر جدید را لود نمی کند و همینطور هم این کار را برای ست کردن تکستچر بر روی دیوایس انجام می دهد.

کلاس های تغییر پیدا کرده:
KgeScreen
این کلاس تغییر زیادی نکرده فقط یکسری تغییرات جزیی برای دستیابی به اندازه صفحه در اون ایجاد شده هست.
KgeCamera
این کلاس هم یک روال بهش اظافه شده که دوربین حالت 2 بعدی را فعال می کند.

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

_________________
Kochol Game Engine

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

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


 
پرش به:  


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


unity3d

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