# مباحث متفرقه برنامه نویسی > طراحی و ساخت بازی‌های کامپیوتری >  Kochol Game Engine

## kochol

سلام
این پروژه ساخت یک موتور بازی هست که کارهای مربوط به رندر و فیزیک و ورودی ها و شبکه یا اینترنت را باید برای بازی ها انجام دهد (البته فعلا طرحی برای هوش مصنوعی ندارم) و مهمترین قسمتش هم Game Editor انجین هست که می دونم اینقدر کدهاش زیاد می شه که نگو برای این پروژه سنگین که تقریبا هر علمی توی ساختش باید بکار بره مثل ریاضی و فیزیک و گرافیک سه بعدی و انواع و اقسام الگوریتم ها به یه تیم بزرگ نیاز هست ولی خوب هر چه قدر هم تیممون کوچک باشه من باید تمومش کنم.
خلاصه تجربه عالی هست.
ما پروژه رو بر روی سایت sourceforge.net ثبت کرده ایم و تمامی کارهامونو رو اون سایت انجام میدیم البته به صورت اینگلیسی و قسمت فارسی هم رو سایت irangamedev.com هست ولی http://sourceforge.net/projects/kge فعال تر هست.

هر چی خواستید راحت بپرسید.
موفق باشید

----------


## oxygenws

به خاطر این کار قشنگتون بهتون تبریک می گم :)

----------


## kochol

سلام
ممنون می تونید همیشه پکیج مثال ها رو دانلود کنبد و موتور رو تست کنید.http://prdownloads.sourceforge.net/k...s.zip?download

برای دریافت اخرین نسخه سورس ها این کارهارو بکنید.
سلام 
در این تاپیک می خواهم که نحوه اتصال cvs و دریافت اخرین سورس کدها را به شما اموزش بدم. 

ابتدا برنامه TortoiseCVS را با حجم 5.67 مگ دانلود کنید. 
لینک دریافت: http://tortoisecvs.sourceforge.net/download.shtml 

بعد از نصب برنامه یه شاخه بسازید به هر اسمی که می خواهید مثلا kge 

رو شاخه رایت کلیک کنید و گزینه cvs checkout را انتخاب کنید. و تنظیماتش را طبق لیست زیر پر کنید. 
protocol = password server 
server = cvs.sourceforge.net 
Repository folder = /cvsroot/kge 
username = anonymous 
خوب حالا ما سه تا ماژول داریم که با زدن هر کدام یه سری از کدها می یاد. 
1. برای سورس های مربوط به KGEOGL نام ماژول را KGEOGL قرار دهید 
2. KGED3D 
3. KGERenderer 

لینک در سایت: http://www.irangamedev.com/modules.p...viewtopic&t=72

----------


## Behrouz_Rad

تبریکات صمیمانه ی بنده را نیز پذیرا باشید.

----------


## ramin_rp

من هم تبریک میگم

----------


## kochol

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

همین الان یه ایمیل اومد که cvs یه خورده عوض شده و نا سرور رو باید بنویسید. 
server = kge.cvs.sourceforge.net 
موفق باشید.

----------


## kochol

سلام
من یه کتابخانه ساده برای ریاضیات انجین ساختم که در بعضی از قسمت ها از SSE استفاده شده هست.
که شامل کلاس های زیر هست.


KGEAabb = Axis aligned bounding box class
KGEMatrix
KGEObb = Oriented bounding box class
KGEPlane
KGEPolygon = برای مدیریت صحنه البته در آینده.
KGEQuat =Quaternion class
KGERay
KGEVector

----------


## kochol

سلام
من در حال نوشتن یک سری مستندات کامل برای انجین هستم که برای علاقه مندان مفید خواهد بود.
http://www.irangamedev.com/modules.p...iewtopic&p=462

----------


## bijan kamkar

خسته نباشید

----------


## mehdi58

خیلی عالیه

----------


## kochol

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

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

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

----------


## kochol

سلام
من چند بار این پست رو زدم ولی خوب یه بار پاک شد یه بار پست نشد و ...
KGE 0.0.2b آماده شد و خود KGE 0.0.2 هم آماده هست یعنی باگ هاش رفع شد و من حالا دارم براش مثال می نویسم برای دریافت فایل ها به سایت http://www.sourceforge.net/projects/kge بروید می توانید با دانلود پکیج examples انجین رو در حین عمل تست کنید.
اسکرین شات ها رو هم ببینید.

موفق باشید.

----------


## cybercoder

پروژه زیبایی رو شروع کردید. امیدوارم روزی  شما و تیمتون مثل John Karmak و تیم ID معروف و قدرتمند بشید.

موفق باشید.

----------


## aidinwashere

kochol جان!
بسیار از کاری که میکنید لذت میبرم و خوب میدونم چقدر سختی داره
1-سختی کار با آدمایی که تیمی کار کردن رو نمیدونن (مثل من).
2-کشوری که ارزش این نوع کارها رو درک نمیکنه.

یه پیشنهاد:
سعی کنیم چیزهایی که پیدا کردین/کردیم رو به هم لینک بدیم تا بچه ها باهم synch باشن و همه باهم جلوبریم، این باعث میشه هم به همدیگه چیز یاد بدیم، هم شاهد کارهایی بیشتر از این دست باشیم.

با آرزوی موفقیت برای هممون.

----------


## kochol

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

خوب من یه 45 روزی هست که ساخت KGE 0.0.3 رو شروع کردم و می تونید ـخرین اخبارش رو از طریق لینک زیر بخونید.
http://www.irangamedev.com/modules.p...iewtopic&p=130

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

----------


## kochol

سلام

Kochol Game Engine 0.0.3 آماده شد. همان طور که می دونید این نسخه از انجین دوباره از اول نوشته شد و دیزاینش عوض شد دیزاین جدید قابل انعطاف تر هست و همین طور هم اسون تر.

این نسخه دارای ۱۶۷ کیلو بایت کد و ۴۷ فایل هست بیشتر از ۶۵۰۰ خط کد دارد.
همچنین یک داکیومنت به زبان فنگلیش هم برای ان موجو هست.

قابلیت هایی که در این نسخه ایجاد شده است عبارتند از:

۱. دیزاین انجین طوری هست که مستقل از پلت فرم بوده.
۲. پشتیبانی از دو API مشهور Direct3D و OpenGL.
۳. دوربین که هم از دوربین اول شخص و هم از دوربین سوم شخص پشتیبانی می کنه.
۴. لود کردن انواع فرمت های تکستچر.
۵. لود انیمیشن و مش های MS3D که توسط برنامه MilkShape3D ساخته می شوند.
۶. مدیریت کننده تکستچر ها که از لود تکستچر های تکراری جلو گیری می کند.

----------


## nothingelz

دوست عزیز من علاقه مندم باهات تو این پروژه همکاری کنم !

----------


## kochol

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

----------


## nothingelz

تجربه های مرتبط :
opengl & directx به صورت سمپلی
به صورت حرفه ای رو مبحث موتور بازی کار نکردم.

----------


## kochol

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

----------


## nothingelz

کرج - بلی !

خوب باید امکاناتی که تو طرح کار هست رو بزاری تقسیم وظایف و ...

----------


## nothingelz

..............

----------


## kochol

سلام
من راستش یه پروژه دارم که تا 15 روز دیگه طول می کشه ولی بعدش افتادم تو یه مسیری که می خوام به صورت تمام وقت روی گرافیک سه بعدی و کلا بازی سازی کار کنم.

----------


## kochol

سلام
همون طور که گفتم دوباره شروع به ساخت انجین کردم.
سایت هم از فردا دوباره راه اندازی می شه.
یه همکار هم پیدا کردم که با هم روی شیدر ها کار خواهیم کرد احتمالا به مدت 6 ماه.
کار اولی که می کنم نسخه 0.0.4 رو ریلیز می کنم.
یه کلاس استرینگ می نویسم و باگ MS3D Loader رو رفع می کنم باگی که تو IrrLicht هم هست.

----------


## kochol

سلام
KGE 0.0.4 هم ریلیز شد.
به این نسخه نور پردازی اظافه شده و همچنین اجسام شفاف رو هم رندر می گیره و 4 باگ نسخه قبلی هم پاک شد.
این نسخه 225 کیلو بایت کد داره و 59 فایل و بیشتر از 8900 خط کد.
ایده های بسیار زیادی درباره ی دیزاین به فکرم رسیده که تو نسخه بعدی سعی می کنم اظافه شون  کنم که در این صورت انجین جای پیشرفت بسیار زیادی خواهد داشت.

----------


## kochol

سلام
برای کسانی که دوست دارند اطلاعات زیادی در رابطه با Kochol Game Engine بدست بیارن مخصوصا اون هایی که می خواهند در این پروژه شرکت کنند به آدرس http://wiki.gamedev.ir/doku.php?id=k...ol_game_engine بزنید.

----------


## kochol

سلام به همه علاقه مندان به این تاپیک و این پروژه.

می خوام یه خبری رو بهتون بدم که بعد از عید قرار هست که من و چند نفر دیگه یه موشن کپچر( دستگاهی برای ساخت و نمایش و ذخیره انیمیشن های اسکلتی مثل همین مثال نینجا ولی با سنسور هایی که به آدم های زنده وصل می شه تا حرکات کاملا طبیعی باشد) بسازیم که در این پروژه برای رندر از Kochol Game Engine استفاده خواهد شد ولی امکانش هست که بعدا از یه موتور دیگه به احتمال خیلی زیاد IrrLicht استفاده کنیم ولی تا پایان تحقیقات از KGE استفاده خواهد شد.

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

----------


## kochol

سلام
یک سال از شروع به ساخت انجین می گزره و حقیقت اینه که من کد زیادی نتونستم بنویسم ولی حداقل تونستم مسیر درست رو برای خودم پیدا کنم.

یک نفر جدید هم به اعضا اظافه شده که داره کدهای مربوط به رفلکشن (بازتاب و آیینه) رو می نویسه که با دیزاینی که من براش تعریف کردم کارش خیلی سخت می شه ولی 90% کارشو انجام داده.

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

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

----------


## kochol

سلام
بالاخره بازتاب هم آماده شد این کار خیلی ساده در انجین انجام می شه و این یکی از امکانات موتور ما هست که بهش می گن easy to use.
مثلا برای ایجاد خاصیت آیینه ای کافیه بنویسی.

	kge::efx::Effect* pMirror = NULL;
	pIce->AddEffect( kge::efx::EET_MirrorPlane , &pMirror );
	pMirror->AddNodes(pNinja);

و برای رندر هم فقط کافیه بنویسی.

		pRen->BeginRendering( true , true , true );
		pSnmgr->RenderAll();
		pRen->EndRendering();

این هم یک اسکرین شات.

----------


## kochol

سلام
سایه هم آماده شد کار کردش مثل بالا هست.

----------


## سپول

سلام، تکنیک سایه چی هست ؟

----------


## kochol

سلام
تکنیک سایه خوب ساده ترین نوعش هست یعنی Planar Shadow.

----------


## توسعه نویس

> kochol جان!
> بسیار از کاری که میکنید لذت میبرم و خوب میدونم چقدر سختی داره
> 1-سختی کار با آدمایی که تیمی کار کردن رو نمیدونن (مثل من).
> 2-کشوری که ارزش این نوع کارها رو درک نمیکنه.
> 
> یه پیشنهاد:
> سعی کنیم چیزهایی که پیدا کردین/کردیم رو به هم لینک بدیم تا بچه ها باهم synch باشن و همه باهم جلوبریم، این باعث میشه هم به همدیگه چیز یاد بدیم، هم شاهد کارهایی بیشتر از این دست باشیم.
> 
> با آرزوی موفقیت برای هممون.


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

----------


## kochol

سلام
امکاناتی که به این نسخه اظافه شده.
1. آیینه و reflection های روی سطح صاف است.
2. سایه روی سطح های صاف مثل کف و دیوار ها.
3. تکست هم می تونید اظافه کنید.

چیزهای اصلی که اظافه شدن همین ها بودند و بقیه چیزها به تغییراتی و گسترش در دیزاین قسمت های دیگه بوده است.

این نسخه دارای 278 کیلو بایت کد دارد و 11175 خط کد دارد و 79 تا فایل دارد.
این هم آمارش بود که دادم.

برای دانلود به سایت سورس فورج بروید.
http://sourceforge.net/projects/kge

----------


## kochol

KGE 0.0.5.5 ریلیز شد.

نسخه جدید KGE به علت اینکه نسخه های قبلی به صورت dll نبودند که باعث سخت شدن کار با موتور یا غیر ممکن شدن ان می شد ریلیز شد.
قابلیت هایی که در این نسخه اضافه شده اند.
1. شیدر ها به 3 زبان اسمبلی ، HLSL و GLSL اضافه شده اند.
2. مدیریت حافظه بهتر شده است.
3. صدای سه بعدی اضافه شده است.
4. رندر OpenGL هم خیلی توسعه یافته است.

----------


## mostafa_C

این عالیه.
خیلی خوبه.



> 1. شیدر ها به 3 زبان اسمبلی ، HLSL و GLSL اضافه شده اند.


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

----------


## kochol

سلام
KGE 0.0.6 هم بالاخره بعد از چند سال ریلیز شد.
این نسخه دارای 1180 KB سورس کد است که نسبت به نسخه قبلی تقریبا 4 برابر بیشتر است و بیشتر از 44000 خط کد داره.
متاسفانه در این نسخه OpenGL renderer اپدیت نشده و اصلا کار نمی کند ولی قصد داریم در آینده دوباره راش بندازیم

امکاناتی که به این نسخه اضافه شدند:
Fog مهFrustum cullingJoystickScene node systemBasic GUIResource managersTexture compressFarsi supportRender To Texture RTT with Anti aliasingMulti Rendering Target MRTTile based terrainAABBRayTriangleDecal for terrainMulti streamingShadow mapsPhysicsRigid bodyCollision detectionjointsTriggersParticle systemWaterRefractionHardware skinning

برای موتور 3 تا آموزش نوشته شده و این نسخه یه API document  نصفه و نیمه داره

http://kge3d.orgDecal01.jpg

----------


## saied_hacker

پس کو دیگه لینکشو نمی زاری از حالت اوپن سورس خارج شد؟ :افسرده: 

فقط اگه گذاشتی exeش رو هم بزار کا دیکه درگیر کامپایل و ریلیز و ... نشیم اگرم که نه که هیچی ....
راستی ادیتورم داره یا نه فقط رندرینگ هست؟

موفق باشد

----------


## REZAsys

*سلام
واقعا کارتون درسته ... اینم به افتخار شما ( لطفا اطلاعات رو آپدیت کنید :D)

http://www.devmaster.net/engines/eng...ils.php?id=382

راستی لینک دانلودش خرابه میشه واسه ما یه جا دیگه آپلود کنید؟
*

----------


## pswin.pooya

سلام
ادیتور داره ولی OpenSource نیست:
http://sourenagames.com/category/sim...-world-editor/

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

استادیو بازی سازی سورنا پردازش آریا:
http://sourenagames.com/

----------


## pswin.pooya

> * راستی لینک دانلودش خرابه میشه واسه ما یه جا دیگه آپلود کنید؟*


می تونید به جای دانلود سورس رو از روی svn بگیرید. و کامپایلش کنید. خیلی راحت می تونید با دستکاری فایل config.h گزینه هایی رو که می خوایید اضافه یا کم کنید.

----------


## kochol

> پس کو دیگه لینکشو نمی زاری از حالت اوپن سورس خارج شد؟
> 
> فقط اگه گذاشتی exeش رو هم بزار کا دیکه درگیر کامپایل و ریلیز و ... نشیم اگرم که نه که هیچی ....
> راستی ادیتورم داره یا نه فقط رندرینگ هست؟
> 
> موفق باشد


سلام
چرا دیگه لینکشو گذاشتم 
http://kge3d.org/downloads/
فقط چون سورس فورج تحریممون کرده باید یه جوری بتونید دورش بزنید.

انجین به صورت dll قابل استفاده است و از قبل هم به صورت دیباگ و هم ریلیز کامپایل شده.
متاسفانه برای این نسخه مثال آماده نکرده ایم کاری که باید می کردیم.

----------


## kochol

> *سلام
> واقعا کارتون درسته ... اینم به افتخار شما ( لطفا اطلاعات رو آپدیت کنید :D)
> 
> http://www.devmaster.net/engines/eng...ils.php?id=382
> 
> راستی لینک دانلودش خرابه میشه واسه ما یه جا دیگه آپلود کنید؟
> *


سلام
درخواست آپیدت اطلاعات رو دادم ولی مثله اینکه سرشون شولوغه و طول می کشه اپدیت کنن
این هم یه لینک دیگه برای دانلود http://kge3d.org/?file_id=6

----------


## kochol

سلام
خواستم ببینم از دوستان کسی پیشنهادی داره که چه چیزی به انجین برای نسخه بعدی اضافه کنیم؟

----------


## syntiberium

یه ادیتور اوپن سورس بهش اضافه کنید خیلی خوب می شه  :لبخند گشاده!:

----------


## kochol

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

شاید xpsm رو اضافه کردم
http://xmvlad.110mb.com/

----------


## kochol

Instancing هم قابلیت خوبی می تونه باشه برای اضافه شدن

----------


## gbg

خب من خيلي وقته كه مي بينم اين موتور رو داري توسعه مي دي واقعا خسته نباشي
2 باري هم فقط دانلودش كردم ولي حتي نگاه نكردم بهش ، حداقل يه جا امكاناتش رو كامل مي نوشتي تا با توجه به امكانات ديگر موتور ها مي گفتيم چه چيزي رو اضافه كني بهتره
در ضمن من تو سايتش دنبال برنامه آماده شده با اين انجين گشتم و چيزي پيدا نكردم بهتره چندتا فايل exe اضافه كني تا قدرت پردازشش رو هم در عمل ببينيم و مهمتر اين كه سايتش طوري باشه تا آدم راحت خواشته هاش رو بطونه تو سايت پيدا كنه
پيروز و موفق باشي

----------


## kochol

> خب من خيلي وقته كه مي بينم اين موتور رو داري توسعه مي دي واقعا خسته نباشي
> 2 باري هم فقط دانلودش كردم ولي حتي نگاه نكردم بهش ، حداقل يه جا امكاناتش رو كامل مي نوشتي تا با توجه به امكانات ديگر موتور ها مي گفتيم چه چيزي رو اضافه كني بهتره
> در ضمن من تو سايتش دنبال برنامه آماده شده با اين انجين گشتم و چيزي پيدا نكردم بهتره چندتا فايل exe اضافه كني تا قدرت پردازشش رو هم در عمل ببينيم و مهمتر اين كه سايتش طوري باشه تا آدم راحت خواشته هاش رو بطونه تو سايت پيدا كنه
> پيروز و موفق باشي


 سلام
تو این صفحه امکاناتش رو نوشتم http://kge3d.org/about/
تو قسمت دانلود یه دمو هست که البته برای سه سال پیشه http://kge3d.org/?file_id=3
برای ریلیز بعدی حتما دمو و مثال های بیشتری می زارم برای دانلود
اگر برای سایت هم نظری دارید بگید ممنون می شم

----------


## h00manb

خدا وکیلی یک کلمه فارسی هم تو ساتت نیست
این همه زحمت کشیدی ولی برای چه کسی؟

----------


## kochol

> خدا وکیلی یک کلمه فارسی هم تو ساتت نیست
> این همه زحمت کشیدی ولی برای چه کسی؟


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

----------


## pswin.pooya

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


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

----------


## syntiberium

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

----------


## kochol

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


واقعا این افرادی که شما می گید چقدر علاقه مند هستند :D

همین طور که داریم نسخه 0.0.7 رو می نویسیم در حال طراحی و نوشتن دیزاینی جدید برای نسخه 0.1.0 هستیم 

دیزاین جدید مولتی ترد ، پلاگین بیس و کامپوننت بیس است و کدهایی که از اول نوشته می شن یا از نسخه قبلی کپی می شن تر تمیز تر می شن و درست حسابی تر

برای نسخه جدید از nedmalloc به عنوان memory allocator استفاده می کنم.

برای شروع کلاس logger ای که نوشتم تو یه ترد دیگر لاگ می گیرد چون نوشتن تو کنسول یا فایل یه عملیات کند است و می تونه سرعت رو بیاره پایین ولی الان تو یه ترید دیگر این کار رو انجام می ده که باعث می شه سرعت نخوابه

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

توضیحات بیشتر تو wiki بخونید
http://kge3d.org/wiki/document/developers/

----------


## kochol

سلام
من دارم روی نسخه 0.1 کار می کنم که در این نسخه قصد ندارم فقط روی گرافیک کار کنم بلکه می خوام این نسخه یک گیم انجین باشه نه فقط رندرینگ انجین.
در این نسخه همه قسمت ها داکیومنت دارن و برای هر قسمت که نوشته می شه یه برنامه تست هم نوشته می شه.

یه چیزهای ابتدایی نوشتم که اینجا قرار می دم تا اگه کسی خواست نگاهی بندازه.
Thread & Mutex for windows and linux
پلاگین
http://kge3d.org/wiki/plugin/

در حال نوشتن یک web player برای انجین هستم که می خوام از java و jni استفاده کنم.
توضیحات بیشتر در لینک زیر اگر هم کسی سوالی داشت بپرسه.
http://kge3d.org/wiki/web-player/

کدهای Plugin Manager رو هم باید برای نسخه لینوکس بنویسم همین طور هم رندر اپن جی ال رو.

الان که دارم از اول کد می زنم موقعیت خوبی هست برای کسانی که دوست دارن تو این پروژه همکاری کنند.

----------


## amin1softco

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



> الان که دارم از اول کد می زنم موقعیت خوبی هست برای کسانی که دوست دارن تو این پروژه همکاری کنند.


کاش یکمی سطحم بالا بود منم می تونستم با هاتون همکاری کنم .
بعد به نظرم خیلی کار خوبیه که قسمت پلاگین رو براش طراحی کردید وانصافاً   webplayer  خیلی کار می بره البته تا جایی که من می دونم.

----------


## kochol

سلام
ممنون.
راستی یادم رفت بگم که حداقل نیازها برای همکاری آشنا بودن به زبان سی++ و انگلیسی است.

آره پلاگین هم انعطاف پذیری رو می بره بالا و هم تو کاهش compile time خیلی کمک می کنه هم اینکه کاربرها بعدا می تونن پلاگین های خودشون رو بسازند.

Java Native Interface این امکان رو می ده که تابع های داخل یک dll یا so رو صدا بزنی. کاری که من می کنم اینه که با جاوا یه اپلت می نویسم که تابع های داخل فایل های dll رو صدا بزنه مثل initialize update & shutdown و همین طور هم پوینتر hwnd رو بده به انجین برای ترسیم روی صفحه browser ها.
خوبی ای که این روش داره اینه که کاربر احتیاجی به نصب پلاگین یا ... نداره و فقط داشتن جاوا کافیه که روی 88% از کامپیوتر ها جاوا هست.

همین طور هم راه هایی وجود داره که بشه کدهای java script رو هم تو اون صفحه از وب اجرا کرد.

----------


## amin1softco

> Java Native Interface این امکان رو می ده که تابع های داخل یک dll یا so  رو صدا بزنی. کاری که من می کنم اینه که با جاوا یه اپلت می نویسم که تابع  های داخل فایل های dll رو صدا بزنه مثل initialize update & shutdown و  همین طور هم پوینتر hwnd رو بده به انجین برای ترسیم روی صفحه browser ها.
> خوبی ای که این روش داره اینه که کاربر احتیاجی به نصب پلاگین یا ... نداره  و فقط داشتن جاوا کافیه که روی 88% از کامپیوتر ها جاوا هست.
> همین طور هم راه هایی وجود داره که بشه کدهای java script رو هم تو اون صفحه از وب اجرا کرد.


برای لود شدن تکسچر ها و عکس ها باید یک زمانبندی خوبی ارائه بدید چون یک کاربر نمی تونه 1 ساعت همینطور منتظر لود شدن باشه یعنی سرعت اینترنت کاربر رو بگیرید و نسبت بهش فایل های پیش نیازش رو بفرستید و به نظرم این قسمتش یکمی کار می بره و قسمتی رو که جاوا اسکریپت قراره ترسیم کنه به نظرم باید با آجاکس پیاده بشه اما اگه اینجوری باشه که شما میگید خیلی خوبه چون زیاد وقت نمی بره و خروجیش به قول بچه های ما دهن پر کنه!!!!! 

 و اینکه زبان انگلیسی و سی من در حد مبتدیه  :لبخند گشاده!: ولی من خوشحال می شم در ایده ها یا جاهایی که گیر میکنید شرکت کنم.

----------


## kochol

سلام

KGEWebPlayer رو تست کردم کاملا کار می کنه /m\

روش کار به این صورت است که یه پروژه win32 dll می سازین و از کلاس kge::web::WebApplication یک کلاس مشتق می کنید تا بتونید رویداد ها رو هندل کنید.
این هم یه نمونه کد از تعریف این کلاس

#ifndef TESTWEBAPPLICATION_H
#define TESTWEBAPPLICATION_H

#include "../../engine/include/WebApplication.h"
#include "../../engine/include/Device.h"
#include "../../engine/include/Renderer.h"

kge::Device dev;
kge::InitParameters params;
kge::gfx::Renderer* pRen;
namespace kge
{
	namespace web
	{
		class KGE_API TestWebApp: public WebApplication
		{
		public:

			//! Constructor
			TestWebApp() {}

			//! Destructor
			~TestWebApp() {}

			//! The WebPlayer call this function when you have to initialise your application.
			void Initialise() {}

			//! The WebPlayer call this function when you have to update your game step.
			/*! Return false to stop the WebPlayer
			 */
			bool Update() 
			{
				if (dev.Run())
				{
					pRen->BeginRendering(true, true, true);
					pRen->EndRendering();
					return true;
				}

				return false;
			}

			//! The WebPlayer call this function when you have to shutdown your application.
			void ShutDown() {}

			//! The WebPlayer call this function give you the window handle and size for render.
			/*!
				\param hwnd The Window handle
				\param width The window width
				\param height The window height
			 */
			void SetCanvas(int hwnd, int width, int height) 
			{	
				params.hwnd = (void*)hwnd;
				dev.Init(params);
				pRen = dev.GetRenderer();
			}

			//! Gives the resource path for loading default resources
			void SetResourcePath(const char* path) {}


		}; // TestWebApp

	} // web

} // kge

#endif // TESTWEBAPPLICATION_H



بعد باید تابع WebMain رو بنویسید که WebApplication رو بسازید و WebPlayer رو هم بسازید و استارت کنید.

تابع WebMain نقطه اصلی شروع برنامه شماست.


#include "../../engine/include/KgeMemory.h"
#include "../../engine/include/WebPlayer.h"
#include "Test web application.h"

extern "C"
{
	KGE_API void WebMain()
	{
		kge::web::TestWebApp* pWebApp = new kge::web::TestWebApp();

		kge::web::WebPlayer* pWebPlayer = new kge::web::WebPlayer(pWebApp);

	} // WebMain

} // extern "C"



این دیزاینی هست که من برای کار با WebPlayer در آوردم حالا شما قدرت کامل ++C رو در browser خود دارید.

فایل dll شما حتما باید به اسم KGEWebApp.dll باشه.

متاسفانه من الان سرباز(آش خور) هستم و روزی حد اکثر 2 تا 3 ساعت می تونم کار کنم ولی باز همین هم خدا رو شکر می کنم.

----------


## kochol

سلام پویا
نمی دونم الان وقت داری روی KGE کار  کنی یا نه؟
می خوام که پلاگین RendererGL رو بنویسی قبلا می گفتی که KGE کامنت و داکیومنت و مثال نداره ...
حالا که داره و اگر هم وقت داری خوشحال می شم دوباره با هم روی KGE کار کنیم 
اگر هم فقط روی کدهای OpenGL نظارت کنی هم ممنون می شم.

----------


## pswin.pooya

> نمی دونم الان وقت داری روی KGE کار  کنی یا نه؟


آقا رو چشم. شما تنها کافیه که امر کنی.




> اگر هم فقط روی کدهای OpenGL نظارت کنی هم ممنون می شم.


کلا میتونی اونها رو به من بسپری

----------


## pswin.pooya

فعلا یه مقدار دهی کننده اولیه OpenGL رو نوشتم که تا ورژن 4.1 ساپورت  میده  و توی لینوکس و ویندوز هم کار میکنه. فردا هم کد ایجاد محتوی  (context) رو برای ویندوز و لینوکس رو میزنم. فقط داخل لینوکس میخوای با  X11 کار کنی یا اینکه کتابخونه های دیگه مثل SDL و ... رو در نظر داری؟

----------


## kochol

من هم لود کردن پلاگین ها رو برای لینوکس نوشتم
http://kge3d.org/wiki/plugin/#Resources

من برداشتم glew رو به شاخه libs اضافه کردم تا کامپایل پروژه راحت تر بشه.

من که نتونستم تو لینوکس کامپایل کنم از تمامی تابع هایی که تو initGL.h تعریف کردی ایراد می گیره.

من نظرم رو X11 هست

----------


## pswin.pooya

> من که نتونستم تو لینوکس کامپایل کنم از تمامی تابع هایی که تو initGL.h تعریف کردی ایراد می گیره.


جالبه برای من کامپایل میشه. ( توی dge) یه چک میکنم ببینم مشکل از کجاست. فایل glxext.h رو داری؟




> من برداشتم glew رو به شاخه libs اضافه کردم تا کامپایل پروژه راحت تر بشه.


فقط از یه تابع glew استفاده میشه. اون رو هم به زودی حذف میکنم.




> من نظرم رو X11 هست


منم موافقم.

----------


## kochol

راجب به دیزاین انجین نظری داشتی بگو

تو کامپیوتر من تابع glGetString( GL_VERSION ) 
null بر می گردونه؟ باید چی کارش کنم؟

----------


## pswin.pooya

> تو کامپیوتر من تابع glGetString( GL_VERSION ) 
> null بر می گردونه؟ باید چی کارش کنم؟


این بخاطر اینه که هنوز محتوی معتبر نداریم. بعد از ایجاد محتوی کار میکنه. 

البته باید کارت گرافیکت رو هم نصب کنی وگرنه OpenGL 2   کار نمیکنه.






> راجب به دیزاین انجین نظری داشتی بگو


به نظر من اندازه بافر عمق و اندازه بافر استثیل رو هم باید به InitParameters اضافه کنی. من که پیش فرض عمق رو 24 و استثیل رو 8 گرفتم ( سازگارترین مقادیر هستن)

فعلا که vs2010 من رو سرویس کرده هر 3، 4 دقیقه یکبار کرش میکنه.

----------


## hadi robati

سلام
امید وارم خوب باشید

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

کوچول و پویا می دونن که من عاشق Embedded Systems هستم و می خواهم اگر موافق باشید با هم کاری کنیم که  انجین برای آنها هم کار کنه ، البته از OpenGL  ES می بایست استفاده کنیم و باید وارد دنیای به سرعت رو به رشد Android هم بشیم،نظر شما چی هست؟

اگر به بنده برنامه کار بدین خوش حال می شوم
موفق باشید

----------


## pswin.pooya

> کوچول و پویا می دونن که من عاشق Embedded Systems هستم


سلام هادي جان خوبي؟ تو اين مورد مثل من هستي  :لبخند گشاده!: 



> می خواهم اگر موافق باشید با هم کاری کنیم که  انجین برای آنها هم کار کنه ،  البته از OpenGL  ES می بایست استفاده کنیم و باید وارد دنیای به سرعت رو  به رشد Android هم بشیم،نظر شما چی هست؟


من بخاطر يه پروژه كه اتفاقا اون هم embedded هست مجبورم روي OpenGL ES كار كنم. چه بهتر كه از اين نقطه كار شروع بشه. 

اكبر:

همونجوري كه صحبت كرديم من مي خوام براي انجين خودم از متريال اسكريپتها استفاده كنم. فعلا تصمصيم دارم اسكريپتهاي من چيزي شبيه به زير باشن:

material <mat_name>
{
    technique <tech_name>
    {
        pass <number>
        {
            vertex_shader = "<shader_path>";
            pixel_shader = "<shader_path>";
            
            tex[target]= "<texture_path>";
            tex[0] = "s.bmp";
            <identifier> = <expr>;
            
            // fixed vars
            val1 = Vector3D(1.0,2,1.3f);
            
            // this function called every frame from code
            void update()
            {
                val2 = Vector3D(1.0) * cos(DeltaTime);
                
            }

            // collosion function
            void collossion(Vector3D pos)
            {
                pixel_shader="sss";
                color = Color::Red;
            }
        }
    }
}

تابع update توي هر فريم براي به روز كردن متريال صدا زده ميشه.
تابع collision تنها زماني صدا زده ميشه كه يه برخورد رخ بده (فعلا دقيقا در مورد اين تابع نه اطمينان دارم و نه ايده اي بابت طراحيش فقط توي MOGL خونده بودم كه بعضي ها اون رو جزئي از متريال ميذارن و ... 
تكنيك هم كه توي انجين من براي render_path ها استفاده ميشه. شايد بهتر باشه كه توي KGE هم از اون استفاده كنيم. 

براي افزايش سرعت بعضي از متغييرها رو مثل DeltaTime  رو اشاره گرشون رو ارسال مي كنيم كه باعث ميشه تغيير داخل اسكريپت مستقيما اعمال بشه (مثل AngleScript)  و توابع محاسبات رو هم با JIT پياده مي كنيم كه باعث ميشه سرعتش به سرعت كد واقعي نزديكتر بشه. تابع Update رو هم ميشه بوسيله يك اشاره گر به تابع خيلي سريع از داخل كد صداش زد (بعد از پياده سازي JIT)

اگر شما روي پارسر و ماشين مجازيش كار كني منم ميتونم به موازات اون روي JIT اش كار كنم. فقط بايد از ماشين مجازي استفاده كنيم و گرنه نمي تونيم بعدا از جيت استفاده كنيم.

----------


## kochol

> سلام
> امید وارم خوب باشید
> 
> من خیلی از پروژه عقب موندم و کد هایی که زدم برای انجین مثل فیزیک و امثال آنها کامل نشدن ولی می خواهم با جدیت بیشتری دوباره شروع کنم چون واقعا تازه می فهمم که از برنامه نویسی چیزی نمی دونم.
> 
> کوچول و پویا می دونن که من عاشق Embedded Systems هستم و می خواهم اگر موافق باشید با هم کاری کنیم که  انجین برای آنها هم کار کنه ، البته از OpenGL  ES می بایست استفاده کنیم و باید وارد دنیای به سرعت رو به رشد Android هم بشیم،نظر شما چی هست؟
> 
> اگر به بنده برنامه کار بدین خوش حال می شوم
> موفق باشید



سلام
همین که فهمیدی چیزی از برنامه نویسی نمی دونی خودش عالیه lol
من هم وقتی اینو فهمیدم رفتم یه ذره برنامه نویسی یاد گرفتم.

خوب این خیلی عالیه
اول از همه می دونی که به Android 2.3 احتیاج داری تا بتونی از NDK استفاده کنی فکر کنم باید یه چند روزی فقط مشغول دانلود باشی.

به نظرم این قدم اول هست بعد باید برنامه های اسون برای اندروید بنویسیم و بعد بریم سراغ OpenGL ES و پورت دادن KGE به اندروید.

من می خوام از این فرصت استفاده کنم و به سراحت اعلام کنم که هدف از ساخت نسخه جدید انجین یه گیم انجین هست که در مرحله اول به درد ساخت بازی های اسون شبکه بخوره مثل بازی های turn base

----------


## kochol

> تابع update توي هر فريم براي به روز كردن متريال صدا زده ميشه.
> تابع collision تنها زماني صدا زده ميشه كه يه برخورد رخ بده (فعلا دقيقا در مورد اين تابع نه اطمينان دارم و نه ايده اي بابت طراحيش فقط توي MOGL خونده بودم كه بعضي ها اون رو جزئي از متريال ميذارن و ... 
> تكنيك هم كه توي انجين من براي render_path ها استفاده ميشه. شايد بهتر باشه كه توي KGE هم از اون استفاده كنيم. 
> 
> براي افزايش سرعت بعضي از متغييرها رو مثل DeltaTime  رو اشاره گرشون رو ارسال مي كنيم كه باعث ميشه تغيير داخل اسكريپت مستقيما اعمال بشه (مثل AngleScript)  و توابع محاسبات رو هم با JIT پياده مي كنيم كه باعث ميشه سرعتش به سرعت كد واقعي نزديكتر بشه. تابع Update رو هم ميشه بوسيله يك اشاره گر به تابع خيلي سريع از داخل كد صداش زد (بعد از پياده سازي JIT)
> 
> اگر شما روي پارسر و ماشين مجازيش كار كني منم ميتونم به موازات اون روي JIT اش كار كنم. فقط بايد از ماشين مجازي استفاده كنيم و گرنه نمي تونيم بعدا از جيت استفاده كنيم.


به نظرم یه چیز هایی تو ذهنت هست ولی کامل نیستن

پس کد شیدرت کجا ساخته می شه؟

=========================

از RakNet برای شبکه می خوام استفاده کنم.

http://www.jenkinssoftware.com/

هادی این API هم به نظر خیلی جالب می یاد یه نگاهی بهش بنداز

http://www.madewithmarmalade.com/

----------


## pswin.pooya

> پس کد شیدرت کجا ساخته می شه؟


كد شيدرها داخل فايلهاي جدا نگهداري ميشن. توي متريال فقط آدرس اونها از مسير پايه يا اسم اونها نگهداري ميشه. من توي انجينم هر شيدر يه اسم داره كه با اسم فايلش يكيه. خود انجين بعد از كامپايل اسم رو به شيدر ميده و داخل ريسورس منيجر نمونه اون رو نگهداري ميكنه. بعدش ميشه با اسم نمونه كلاسش رو گرفت.




> به نظرم یه چیز هایی تو ذهنت هست ولی کامل نیستن


دقيقا اين شكليه. بخاطر تجربه كم نمي دونم دقيقا چه ديزايني درسته. تنها چيزي كه به ذهنم ميرسه اينه. 
فعلا يه كلاس متريال دارم كه توابعش بصورت virtual هست كه هم بتونم تو حالت اسكريپت و هارد كد ازش استفاده كنم و يه تابع به اسم clone دارم كه اجازه نمونه برداري از انواع مختلف رو به متريال منيجرم ميده. 




> از RakNet برای شبکه می خوام استفاده کنم.


تو استفاده تجاري ميشه ازش استفاده كرد؟‌ (‌ با توجه به شرايط ايران) نسخه evoluation اون مثل fmod هست يا فقط 30 روز كار ميكنه؟

----------


## hadi robati

هادی این API هم به نظر خیلی جالب می یاد یه نگاهی بهش بنداز

http://www.madewithmarmalade.com/[/QUOTE]


سلام
امید وارم خوب باشین

باشه من مطالعه می کنم روش

موفق باشید

----------


## kochol

> كد شيدرها داخل فايلهاي جدا نگهداري ميشن


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




> تو استفاده تجاري ميشه ازش استفاده كرد؟‌ (‌ با توجه به شرايط ايران) نسخه evoluation اون مثل fmod هست يا فقط 30 روز كار ميكنه؟


برای پروژه های با بودجه کمتر از 100 هزار دلار مجانی است فقط باید Logo بندازی

ضمیمه 77462

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

دو تا قابلیت Interface و unsized array رو تو cgfx دیدم خیلی خوشم اومد ولی هنوز دقیقا تصمیم نگرفتم که چه روشی بهتر است.

راجب دیزاین بالا هم بعدا توضیح می دم

----------


## pswin.pooya

اون فايل شيدر كناري رو ميتونه برنامه نويس بنويسه و يا شبيه يه tool كه قبلا همراه cgfx بود آرتيست بسازه كه اين مورد شبيه همون ديزاني هست كه شما مد نظر داري. متريال اسكريپت مثل اسكريپت خود بازي ميمونه و نميشه دقيقا به يه مورد خاص اشاره كرد اما در عين حال تقريبا توي پروژه هاي بزرگ ضروري.

----------


## hadi robati

سلام
من یه نگاه سطحی به makewithmarmalade انداختم برای پروژه های غیر تجاری رایگان هست ولی خیلی از امکاناتش که هنوز دقیقا نمی دونم چی هست رو این نسخه رایگان نداره.

خدا بگم چی کارشون بکنه؟؟؟؟؟؟؟؟ نصف سایت هارو که فیلتر کردیم نصف دیگشون هم که تحریم هستیم حالا ما موندیم و انجینمون:D

من دارم سعی می کنم رو برد Devkit8000 اندروید 2.2  را بالا بیارم و البته روی گوشیم هم بتونم 2.3 رو بوت کنم خوب می شه که با استفاده از آنها کد هایی که می زنم رو تست هم کنم.

http://www.embedinfo.com/english/product/devkit8000.asp

قبلا برای devkit8k بجز اندروید روی CD خودش هیچ پروژه دیگه ای اجرا نمی شد ولی به تازگی خوشبختانه 0xlab برد من رو هم پشتیبانی می کنه البته تا این لحظه خودم تستش نکردم ببینم چه طور است این هم لینک سایتشون:http://code.google.com/p/0xdroid/

هر خبری شد به شما اطلاع میدم

----------


## kochol

> خدا بگم چی کارشون بکنه؟؟؟؟؟؟؟؟ نصف سایت هارو که فیلتر کردیم نصف دیگشون هم که تحریم هستیم حالا ما موندیم و انجینمون:D


دقیقا همین طور شده




> اون فايل شيدر كناري رو ميتونه برنامه نويس بنويسه و يا شبيه يه tool كه قبلا همراه cgfx بود آرتيست بسازه كه اين مورد شبيه همون ديزاني هست كه شما مد نظر داري.


به نظرم برای اول پروژه این مطلب ضروری تر هستش.




> من دارم سعی می کنم رو برد Devkit8000 اندروید 2.2 را بالا بیارم و البته روی گوشیم هم بتونم 2.3 رو بوت کنم خوب می شه که با استفاده از آنها کد هایی که می زنم رو تست هم کنم.


منتظر هستم ببینم کی می تونی این کار رو بکنی
البته انروید یه سری نسخه ها داره فقط برای تبلت هاست مثل اندروید 3

----------


## kochol

سلام
از NDK دو مدل می شه استفاده کرد.
1- توسط JNI که تابع داخل یک فایل so رو صدا می زنی که این روش روی اندروید 1.5 به بالا کار می کنه.
2- یک اینترفیس NDK داره که با اون می تونی کلا با سی++ کد بزنی و به جاوا نیازی نیست و روی اندروید 2.3 به بالا کار می کنه.

----------


## kochol

سلام

می خوام در مورد دیزاین متریال سیستمی که تو ذهنم است بگم تا اگه نظری دارید بدید.

Material system: خروجی که می دهد یک تکه کد شیدر هست که متغییرهایی مثل Diffuse, Specular و ... دارد.
بعد بر اساس نوع Render path تصمیم گرفته می شود که چه استفاده ای از این متغییر ها بشود مثلا اگر forward shading بود Render path می گه.

return Diffuse * Specular;

و اگر هم که Deffered shading بود می تونه از MRT ای که می خواد استفاده کنه برای پر کردن بافر هاش یا ...

out.Diffuse = Diffuse;
out.Specular = Specular;
out.Normal = Normal;
out.Position = Position;
return out;


Render path می تواند یکسری data های لازم را هم برای خودش به Material Manager سفارش بدهد مثل Perpixel Normal یا Position تا Material system آنها را Generate کند تا بعد Render path و post process ها از آن استفاده کننند.

MaterialParam: این کلاس خصوصیات عمومی اون متریال رو در خودش نگه می دارد مثل این که چندتا نور رو ساپورت می ده یا مثلا نوع نورپردازی چی هست تا بعد بر اساس این اطلاعات شیدر مورد نظر ساخته شود.

CustomMaterial: در موقع ساخته شدن کد شیدر Custom Material ها می تونن تکه های خاصی از کد شیدر را تغییر بدن.

MaterialBlock: که بیشتر به درد ساخت یک tools برای Artist می خوره.

این دیزاینی هست که تا این لحظه به فکر من رسیده.

----------


## pswin.pooya

به نظر من این باید توی tool باشه نه خود انجین.

من تقریبا اسکریپت متریال خودم رو نوشتم ( حدود ۹۰ درصد). در حال حاضر با مفسر کار میکنه و کنده. (خب البته قواعد زیادی رو مثل type-castingها و ... رو رعایت میکنه.) کارهایی که برای اسکریپتم مونده تا انجامشون بدم:

۱. تعریف توابع (دارم تحقیق میکنم ظاهرا باید برای پیاده سازی درست توابع یه چیزهای به اسم فریم، پرولوگ و ... رو تعریف کرد که بشه از مواردی مثل تعریف متغییر داخل اونها و فراخوانی بازگشتی پشتیانی کرد. البته توابع خارجی رو می تونم به صورت کامل صدا بزنم.
۲. شی گرایی (برای مواردی مثل وکتورها و ماتریسها لازمش دارم) بیشترین کار رو هم همین نقطه داره.


 بعدا به vm و jit پورتش میکنم. منتها این جیت درد سر به تمام معناست. بعضی چیزا توی لینوکس درست جواب میده و توی ویندوز جواب نمیده و یا برعکس. مثلا مقدار یه متغییر رو داخل ویندوز عوض میکنم منتها فقط توی تابعی که عوض شده تغییر میکنه (تابع نوشته شده با جیت) اما همون توی لینوکس جواب میده تا حالا تقریبا تمام کارها رو تونستم باهاش انجام بدم و ازش راضی هستم فقط موردهای زیر موندن:

۱. عوض کردن مقدار متغییرها (متغییرهای خارجی داخل کد C/C++‎
۲. پرولوگ توابع

----------


## kochol

پویا جان این متریال اسکریپتت چه قابلیت هایی داره یعنی اگه ساخته بشه به انجین چه قابلیت هایی اضافه می کنه؟

----------


## mohamad.zakery

سلام به همه ي بچه هاي عزيز توسعه دهنده 

مخصوصا  Kochol عزيز:

من 3،4 سالي هست وارد مقوله game design شدم و واقعا ميتونم بگم از مقالات شما استفاده كردم!!!  مخصوصا اون نسخه اي از Kge كه در vb.net بود اگه اشتباه نكنم!!!!

در حال حاضر چند تكنولوژي جديد طراحي كردم كه بماند ولي اولينش كه داره رونمايي ميشه mz server هست. تست انساني اين سرور 30/8 قرار انجام بشه. توضيحات رو توي فيسبوك قرار دادم. اگه خواستيد ببينيد يك سر به فيسبوك بزنيد!!! mohamad zakeri

و اما خواستم بگم توي قسمت شبكه ميتونين روي من حساب كنيد!!!  ميتونم قول بدم api در حد direct play ميتونم بنويسم!!!

در آخرم ازتون تشكر مي كنم كه در قسمت ترسيمات 3 بعدي و طراحي گيم شروع و استارت من از مقالات و آموزش هاي شما بود!!!!

----------


## hadi robati

سلام

من هر بار در این فروم چیزی مینویسم، پوست نمیشه و پیغام میآد بعد از بررسی پیام شما درج خواهد شد؟؟؟

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

----------


## hadi robati

شد ، هوراااااااااااااااااااااا  اا
بازم سلام
نمی دونم چی شد ولی انگار دیگه می خواد نوشته های من پست بشه

من در مورد marmalade یه مقداری خوندم ظاهرا چیز خوبی است ولی مشکلی که داره اینه که رایگان نیست و البته یک نسخه گذاشته تو سایت که برای محصولات غیر تجاری می شود از آن استفاده کرد.

خوبی آن نسبت به NDK Android این است کدی که می زنی برای iOS هم اجرا می شود.

این رو هم باید در نظر داشت که NDK رایگان است.

از طرفی من یک سخت افزار دارم به اسم Devkit8000 که روش Android بوت می شود ولی نسخه ای که در CD همراه برد بود خیلی قدیمی و غیر قابل استفاده است: Android 1.2 ولی به تازگی اندروید 2.2 رو هم یکی از سایت ها دیدم روش بالا آوردن من هم دارم سعی می کنم این کار را انجام بدم

http://www.embedinfo.com/english/product/devkit8000.asp

برای استفاده از NDK باید Android 2.3 به بالا داشته باشی ولی Marmalade روی اندروید 1.3 به بالا اجرا می شود!!!

موندم چی کار کنم

----------


## Sepehr M

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

ممنون!!!

----------


## kochol

سلام به همگی

پویا نمی تونم Renderer_ogl رو تحت لینوکس کامپایل کنم این خطا رو می ده.
error: 'void (* glBlendColor)(GLclampf, GLclampf, GLclampf, GLclampf)' redeclared as different kind of symbol




> پویا جان این متریال اسکریپتت چه قابلیت هایی داره یعنی اگه ساخته بشه به انجین چه قابلیت هایی اضافه می کنه؟


چرا جواب این سوال کلیدی منو نمی دی؟




> و اما خواستم بگم توي قسمت شبكه ميتونين روي من حساب كنيد!!! ميتونم قول بدم api در حد direct play ميتونم بنويسم!!!


ما فعلا قصد ساخت api نداریم و به نظر من استفاده از RakNet بهترین گزینه است
الان چیزی که بیشتر از همه برای من مهم است اینه که بتونیم شبکه رو تو انجین به راحتی پیاده سازی کنیم.
مثلا با اضافه کردن یه کامپوننت به صورت خودکار شبکه اضافه بشه.
هم سیستم شبکه command base که به درد بازی های استراتژیک می خوره و هم سیستمی که بصورت اتوماتیک اشیای داخل صحنه رو سینک کنه که به درد بازی های اول شخص بیشتر می خوره.
من بیشتر به دنبال این مسایل هستم.
حالا تو این قسمت ها می تونی کمک کنی




> من هر بار در این فروم چیزی مینویسم، پوست نمیشه و پیغام میآد بعد از بررسی پیام شما درج خواهد شد؟؟؟


نمی دونم راستش من چنین مشکلی تا حالا نداشتم.




> من در مورد marmalade یه مقداری خوندم ظاهرا چیز خوبی است ولی مشکلی که داره اینه که رایگان نیست و البته یک نسخه گذاشته تو سایت که برای محصولات غیر تجاری می شود از آن استفاده کرد.
> 
> خوبی آن نسبت به NDK Android این است کدی که می زنی برای iOS هم اجرا می شود.


من بیشتر قصدم این بود که از مارمالات ایده بگیری مگر نه باید حتما از NDK استفاده کنیم.

از NDK دو مدل می شه استفاده کرد.
1- توسط JNI که تابع داخل یک فایل so رو صدا می زنی که این روش روی اندروید 1.5 به بالا کار می کنه. روشی که برای ساخت KGE webplayer استفاده کردم http://kge3d.org/wiki/web-player/#JNI
2- یک اینترفیس NDK داره که با اون می تونی کلا با سی++ کد بزنی و به جاوا نیازی نیست و روی اندروید 2.3 به بالا کار می کنه.




> سلام
> برای ساخت یه انجین دو بعدی یا یه بازیه دو بعدی چقدر تو قسمت برنامه نویسی کار از ریاضی استفاده میشه؟
> اگه هیچی که خدا رو شکر!!!
> اگه آره...چقدر؟؟؟ در چه حد؟؟؟ اخه کار برنامه نویسی هرچقدرم سخت باشه باز ادم یه جورایی از پسش بر میاد ولی ریاضیات پدر ادمو در میاره...
> ممنون میشم راهنماییم کنید...
> چون من خودم با خود برنامه نویسی مشکلی ندارم ولی با ریاضی چرا...یه جورایی سختمه...
> ممنون میشم بگید واسه ساخت انجین و بازیهای دو بعدی تا چه حد ریاضیات کاربرد دارند؟


محاسبات زیادی نداره ولی اونقدر ها هم سخت نیست و کد زیاد گیر میاد براش

----------


## pswin.pooya

> چرا جواب این سوال کلیدی منو نمی دی؟


منتظرم بسازنمش تا نشون بدم. اين كه خود اسكريپت چه قابلتي اضافه ميكنه ميشه گفت هيچ اسكريپتي هيچي اضافه نميكنه (همه كارها رو ميشه با هارد كد هم كرد) منتها اسكريپت به درد آرتيستها و زمان طراحي و بعد از انتشار ميخوره و تا يه حدي كارها رو آسونتر ميكنه. فعلا واقعا سرم شلوغه و دارم روي دو تا مغاله همزمان كار مي كنم ولي 100 درصد تا چند ماه آينده كامل پياده سازيش ميكنم. يكسري ايده هاي جديد هم به ذهنم رسيده كه نيازمند قابليتهاي جديد رندري هست كه بايد به انجينم اضافه كنم. 




> پویا نمی تونم Renderer_ogl رو تحت لینوکس کامپایل کنم این خطا رو می ده.


جالبه من از همين كد دارم داخل لينوكس استفاده ميكنم و جواب هم داده. اين مورد احتمال تداخل هدر هست. چون نسخه ويندوز و لينوكس رو بصورت جدا نوشتم. و بعدا تركيبش كردم و بعد از اون هم متوجه شدم كه كلاس فانكتورهام داخل لينوكس كامپايل نميشه. بازم چك ميكنم اما براي اينكه 100 درصد مطمئن شم بايد انجين خودم رو داخل لينوكس كامپايل كنم كه قبل از اون بايد مشكل فانكتورها و پلاگينهاي لينوكس رو حل كنم.

----------


## kochol

سلام
پویا گفتی یه کدی داری که String رو به int تبدیل می کنه.
اونو برام می فرستی

----------


## kochol

InputManager ها داخل انجین بصورت پلاگین هستند.
پلاگینی برای این کار توسط OIS نوشتم که با WebPlayer کار نمی کنه و باید یه پلاگین InputManager جدید برای KGEWebPlayer بنویسم.

----------


## pswin.pooya

> پویا گفتی یه کدی داری که String رو به int تبدیل می کنه.


منظورت هش هست؟

----------


## kochol

آره دیگه :D

----------


## pswin.pooya

> پویا نمی تونم Renderer_ogl رو تحت لینوکس کامپایل کنم این خطا رو می ده.
> 1
> error: 'void (* glBlendColor)(GLclampf, GLclampf, GLclampf, GLclampf)' redeclared as different kind of symbol


من همین الان توی لینوکس کامپایل کردم و جواب گرفتم. یه Error گرفتم که با اضافه کردن هدر stdio حل شد. نمی دونم مشکل شما از کجاست اما احتمالا مربوط میشه به کتابخونه های قدیمی ( من توی اوبنتو 10.4 کامپایل کردم.).  svn به روز کردیم

----------


## kochol

salam
to linux farsi nadaram alan to windows editesh mikonam
من fedora 15 دارم این فایلی که ضمیمه کردم فایل gl.h من هست.
یه سری چیزها رو خودش تعریف کرده توش به خاطر همین اون خطا رو می ده به نظرم یا باید از ifndeF#‎ استفاده کنیم یا اینکه یه هدر بزاریم مستقل از gl.h باشه که من راه دوم رو بیشتر می پسندم

----------


## hadi robati

سلام بچه ها
واقعا که راست گفتی Kochol دانلود نرم افزارهای توسعه اندروید با این اینترنت ما و این تحریم یک هفته ای طول می کشه
1-اول NDK رو دانلود کردم میگه SDK حتما باید باشه میگم چشم
2-فایل SDK رو برای ویندوز دانلود کردن حالا میام SDK رو نصب کنم میگه اول باید JDK نصب کنی میگم چشم
3-به سلامتی بعد از دانلود و نصب JDK توانستم SDK رو نصب کنم تازه می فهمم وارد یک بازیه پیچیده شدم چون این SDK هیچی نداره
4-برای شروع باید حتما یه پلتفورم اندروید رو دانلود و نصب کنم من هم Android 2.2 Platform رو انتخاب و به سختی فایل مربوط به آن را دانلود کردم ( واسه این میگم سختی چون به علت تحریم و لطف فیلتر دوستان لینک دانلود مستقیم رو رفتم از فایل های XML برنامه SDK Manager پیدا کردم بعد با دانلود منیجر و با وی پی اینا و اونا دانلودش کردم)
5- بعد شروع به دانلود google-api و USB Driver و Docs، Platform Tools و...
6- تازه آماده شده برای برنامه نویسی که می بینم به به همه مثال هاش با Eclips نوشته و برای کامپایل توی ویندوز حتما Cygwin می خواد
خلاصه ما هنوز در حال تلاشیم
اول باید چند تا برنامه ساده بنویسم تا چند و چون آن رو در بیارم بعد برم سراغ NDK و بعد هم انشاا... KGE
موفق باشید

----------


## kochol

سلام
آره من یه چیزی می دونستم که گفتم من هم دانلودشون کردم ولی اینقدر درد سر نکشیدم چون همه ی برنامه هاش تنظیمات پ ر و ک س ی داشتن و ست کردم که از ف شکن استفاده کنه.
اینترنت به دو بخش تقسیم می شه 1- سایتهایی که مخابرات بسته 2- سایتهایی که ما رو تحریم کردن
خوبه که حداقل sourceforge تحریمشو برداشت

----------


## kochol

سلام پویا
می تونی این gl.h ای که توی لینوکست داری رو برای من اینجا اپلود کنی تا من یه نگاهی بهش بندازم.

----------


## pswin.pooya

> می تونی این gl.h ای که توی لینوکست داری رو برای من اینجا اپلود کنی تا من یه نگاهی بهش بندازم.


سلام
چرا که نه

----------


## kochol

> سلام
> چرا که نه


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

----------


## pswin.pooya

> با این هدر فایل تونستم تو لینوکس کامپایل کنم.


خب، اين خيلي خوبه.من هم دارم از ديتام پشتيبان ميگيرم بعد از اينكه تموم شد فقط يه پارتيشن 80 گيگي ميذارم براي ويندوز و روي بقيه لينوكسها رو نصب ميكنم (fedora، ubuntu و آرچ) بعد از اون شروع ميكنم به اديت سورس.




> یه سری چیزها رو خودش تعریف کرده توش به خاطر همین اون خطا رو می ده به  نظرم یا باید از ifndeF#‎‎ استفاده کنیم یا اینکه یه هدر بزاریم مستقل از  gl.h باشه که من راه دوم رو بیشتر می پسندم


منظورت از روش دوم اينه:

مثلا glBlend ==> kglBlend

----------


## kochol

سلام




> منظورت از روش دوم اينه:
> 
> مثلا glBlend ==> kglBlend


نه من منظورم اینه که کلا فایل gl.h خودمون رو داشته باشیم.

این کدی که تو فایل gnuc_def.h زده بودی باعث می شد که برنامه های تستم تو لینوکس دیگه کام‍‍‍پایل نشن. دهنم سرویس شد تا پیداش کردم

//#ifdef KGE_EXPORT
//	#define KGE_API  __attribute__ ((visibility("default")))
//#else
//	#define KGE_API __attribute__ ((visibility("hidden")))
//#endif
//
//#define KGE_IMPORT __attribute__ ((visibility("hidden")))

----------


## kochol

سلام
من وقتی می خوام کامپایل کنم این خطا ها رو میگیرم

/home/akbar/codes/kge/engine/Renderer_ogl/RendererOGL.cpp:129: error: ‘XF86VidModeModeInfo’ was not declared in this scope
/home/akbar/codes/kge/engine/Renderer_ogl/RendererOGL.cpp:129: error: ‘modes’ was not declared in this scope
/home/akbar/codes/kge/engine/Renderer_ogl/RendererOGL.cpp:149: error: ‘_fsaa’ was not declared in this scope
/home/akbar/codes/kge/engine/Renderer_ogl/RendererOGL.cpp:182: error: return-statement with no value, in function returning ‘bool’
/home/akbar/codes/kge/engine/Renderer_ogl/RendererOGL.cpp:203: error: ‘XF86VidModeGetAllModeLines’ was not declared in this scope
/home/akbar/codes/kge/engine/Renderer_ogl/RendererOGL.cpp:206: error: ‘_height’ was not declared in this scope
/home/akbar/codes/kge/engine/Renderer_ogl/RendererOGL.cpp:216: error: ‘XF86VidModeSwitchToMode’ was not declared in this scope
/home/akbar/codes/kge/engine/Renderer_ogl/RendererOGL.cpp:217: error: ‘XF86VidModeSetViewPort’ was not declared in this scope

فکر کنم یه هدر رو جا انداختی

----------


## pswin.pooya

> این کدی که تو فایل gnuc_def.h زده بودی باعث می شد که برنامه های تستم تو لینوکس دیگه کام‍‍‍پایل نشن. دهنم سرویس شد تا پیداش کردم


آرگومان زير رو به خط فرمان كامپايلر اضافه كن: 




> -DKGEEXPORT


يا اينكه KGE_EXPORT رو داخل آپشنهاي  IDE ست كن.





> فکر کنم یه هدر رو جا انداختی


يه نگاهي بهش ميندازم. فكر نكنم هدر جا مونده باشه. من كدهاي انجين خودم رو كپي پيست كردم و ...





> نه من منظورم اینه که کلا فایل gl.h خودمون رو داشته باشیم.


حله يه چند روزي سرم بدجوري شلوغه. حلش ميكنم. به نظر من هم خيلي خوبه فقط امكان داره مشكل سازگاري با پلتفرم پيدا كنيم. يعني براي هر پلتفرم بايد يه gl.h بنويسيم. آخه مثلا تو بعضيها GLint ، 32 بيتي هست و تو بعضي ديگه 64 بيتي.

----------


## kochol

> يا اينكه KGE_EXPORT رو داخل آپشنهاي IDE ست كن.


سلام
نه با این کار هم درست نشد من فکر کنم درست مفهوم __attribute__ ((visibility("default"))) نفهمیدی
اینجا رو ببین
http://gcc.gnu.org/wiki/Visibility

----------


## pswin.pooya

> نه با این کار هم درست نشد من فکر کنم درست مفهوم __attribute__ ((visibility("default"))) نفهمیدی


من دقيقا همين رو دارم توي انجين خودم استفاده ميكنم و جواب داده. 




> http://gcc.gnu.org/wiki/Visibility


اين متن رو ميخونم. شايد واقعا من دارم اشتباه مي كنم.

----------


## kochol

سلام
بالاخره تونستم تو لینوکس کامپایلش کنم.
کار می کنه.
کدها رو کامیت می کنم.
همین طور که گفته بود یه سری هدر ها رو include نکرده بودی
من از codeblocks تو لینوکس استفاده می کنم با هاش پروژه رو باز کن و تو هم تست کن.

----------


## kochol

سلام
این چند روز داشتم رو NDK و اندروید کار می کردم به یه نتیجه هایی رسیدم فعلا دارم کلاس logger رو پورت می کنم روی اندروید.
اطلاعاتی رو که بدست آوردم توی صفحه ویکی http://kge3d.org/wiki/android/ قرار دادم اطلاعات به درد بخوری جمع شده.
کدها رو هم کامیت کردم.
اگه سوالی داشتی بپرس

----------


## kochol

سلام
این NDK عجب چیز اعصاب خورد کنیه
تونستم logger رو برای شروع پورت کنم روی اندروید ولی وقتی تست شماره 1 رو امتحان می کردم بعد از یه مدتی برنامه بسته میشه که نمی دونم از چیه. البته برنامه به صورت کامل اجرا می شه و توی LogCat لاگ می گیره ولی بدون نمایش هیچ خطایی از برنامه خارج می شه.
اومدم تست دوم رو که memory test هست رو راه بندازم که کلا crash می کنه باید حتما ndk-gdb رو راه بندازم تا بشه برنامه رو debug کرد.

----------


## hi.alir

> این NDK عجب چیز اعصاب خورد کنیه


تایید میشه. ولی اگه vs-android تا تا حالا ندیدی برو یه سرچی بزن چیز توپیه. من کارم با اون و مثالاش راه افتاد.

----------


## kochol

> تایید میشه. ولی اگه vs-android تا تا حالا ندیدی برو یه سرچی بزن چیز توپیه. من کارم با اون و مثالاش راه افتاد.


سلام
مرسی از پیشنهادتون تونستم یه سری از چیزها رو پورت کنم رو اندروید ولی هنوز با دیباگ کردن مشکل دارم و راه خوبی برای دیباگ کردن پیدا نکردم البته wingdb به نظر جالب می یاد ولی پولی هست.

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

این خدمت من هم تموم نمی شه برگردم به کار های خودم

----------


## pswin.pooya

> پویا می تونی یه کلاس استرینگ برای kge بسازی؟


كلاس string؟
حله. چه چيزايي داشته باشه؟!!!




> این خدمت من هم تموم نمی شه برگردم به کار های خودم


هففففففففففف. كاش ميشد تقسيمش كرد؟

----------


## kochol

> كلاس string؟
> حله. چه چيزايي داشته باشه؟!!!


فعلا یه سری چیزهای اولیه داشته باشه.

یه terrain جدید هم برای انجین ساختم که خیلی خوب عمل می کنه و مشکلات terrain قبلی رو هم نداره و کیفیت بازی سیاوش رو به تنهایی خیلی بهتر کرده .

برای دیدن شات ها به سایت http://sourenagames.com/ بروید.

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

----------


## kochol

> تونستم logger رو برای شروع پورت کنم روی اندروید ولی وقتی تست شماره 1 رو امتحان می کردم بعد از یه مدتی برنامه بسته میشه که نمی دونم از چیه. البته برنامه به صورت کامل اجرا می شه و توی LogCat لاگ می گیره ولی بدون نمایش هیچ خطایی از برنامه خارج می شه.


سلام دلیلی که این اتفاق می افتاد این بود که thread اصلی قبل از اینکه thread logger رو ببنده خارج می شد.

----------


## jack

> سلام
> بالاخره تونستم تو لینوکس کامپایلش کنم.
> کار می کنه.
> کدها رو کامیت می کنم.
> همین طور که گفته بود یه سری هدر ها رو include نکرده بودی
> من از codeblocks تو لینوکس استفاده می کنم با هاش پروژه رو باز کن و تو هم تست کن.


سلام خسته نباشید . خیلی تاپیک خوبی هستش . نرم افزار codeblocks با فدورا 11 هماهنگه ؟ این سوالم برای اینه که توی کامپایل پروژه ها با eclipse مشکل داشتم نمی دونستم مشکل از نسخه eclipse هستش یا سیستم عامل fedora . اخر متوجه شدم خود فدورا یک نسخه eclipse مختص خودش داره به نام fedora eclipse

----------


## kochol

سلام
آره من خودم از codeblocks تو فدورا استفاده کردم مشکلی نداشت
مشکل شما هم نمی دونم چیه با eclipse

----------


## jack

> سلام
> آره من خودم از codeblocks تو فدورا استفاده کردم مشکلی نداشت
> مشکل شما هم نمی دونم چیه با eclipse


مشکل من اینه که الان یک پروژه موتور بازی تحت visual studio دارم می خوام از موتورم توی لینوکس و مک خروجی بگیرم. نمی خوام چند نسخه از پروژه داشته باشم می خوام یک محیط توسعه و یک سورس داشته باشم و بتونم خروجی موتورم رو تحت سیستم عاملهای مختلف داشته باشم . ولی مشکل من با eclipse اینه که ممکنه روی ورژنهای مختلف تحت ویندوز و تحت لینوکس و تحت مک یک سری خطا  داشته باشم. و لازم باشه کد برنامه رو تغییر بدم . البته بازم به رو راستی codeblocks  که خودش گفته تحت مک این برنامه خیلی stable نیست.

----------


## kochol

سلام
به نظر من برای این کار از cmake استفاده کن.




> ولی مشکل من با eclipse اینه که ممکنه روی ورژنهای مختلف تحت ویندوز و تحت لینوکس و تحت مک یک سری خطا داشته باشم.


خوب این خطاها بر می گرده به کامپایلری که استفاده می کنی
مثلا خود  من هم وقتی تو ویندوز با visual studio کامپایل می کنم همه چی درسته و وقتی که دارم با gcc کامپایل می کنم تو لینوکس یه عالمه خطا می ده مخصوصا تو جاهایی که از template ها استفاده کردم

----------


## pswin.pooya

> مثلا خود  من هم وقتی تو ویندوز با visual studio کامپایل می کنم همه چی  درسته و وقتی که دارم با gcc کامپایل می کنم تو لینوکس یه عالمه خطا می ده  مخصوصا تو جاهایی که از template ها استفاده کردم


خب دلیلش اینه که gcc هر template رو کامل کامپایل میکنه اما ویژوال استادیو فقط کدهای استفاده شده رو. این مشکل مربوط به اینه که توی template ها مشکل برنامه نویسی ( خطای کدینگ ) دارید. وگرنه از نظر قالبها GCC سالها از VS جلوتره و الحاقیهای زیادی رو داره.

----------


## orache

سلام یه سوال خیلی خیلی مهم دارم ! 
این انجین رو چجوری ساختین ؟؟ مراحل ساختشو توضیح میدین یعنی با چه چیزی ساختین ؟؟ مثلا با ویژوال استادیو ؟؟ با کتابخانه ها ؟؟ یه توضیح کوچکی بدین من هم میخام یاد بگیرم و یه تیم جم کنم و بسازم 
دست شما درد نکنه

----------


## kochol

KGE 0.0.7 ریلیز شد.
این نسخه امکانات خیلی زیادی داره ولی هنوز هم developer friendly نیست ولی نسخه بعدی این قضیه درست خواهد شد.
از جمله امکانات این نسخه Deferred shading
Deferred shadingshadow mapsShader generatorparticle systemEffect managerPost bloomTile terrain

برای اطلاعات بیشتر برید به http://kge3d.org

----------


## kochol

سلام
خیلی وقته که این تاپیک رو آپدیت نکردم از اون موقع تا حالا 3 تا ریلیز برای انجین دادم. 
که بیشتر تمکزم روی تغییر دیزاین و refactor بود تا اضافه کردن امکانات جدید.

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

لیست ریز کارهای انجام شده تو این نسخه

- Add InitParameters structure
- Fix comments in kge namespace headers
- Add Tutorial 01
- Rename kge::core::Timer->GetSeconds() to GetTimeElapsed
- Fix a bug in adding lights after adding the meshes
- Fix a bug in shadow map with ATI cards


نسخه 0.0.9
توی این نسخه هم چندتا باگ گرفتم و مدیریت حافظه رو اضافه کردم که باعث شد memory leak ها رو به طور اتوماتیک پیدا کنیم.
لینک دانلود

لیست ریز کارهای انجام شده تو این نسخه

- A bug in Calculating animation on CPU Fixed.
- Add some information to memory leak log
- Fix 3 bugs in tile terrain
- Add 05terrain tutorial showing how to use tile terrain.
- Add KgeArray
- Fix bugs in KgeMemory
- Add KgeMemory::ReallocateBytes
- Use KgeMemory for memory managment
- Add 02Input tutorial for show how to use keyboard and moving the camera


نسخه 0.0.10
توی این نسخه هم پلاگین ها اضافه شدند و همین طور هم شبکه به صورت اولیه و libRocket که یه سیستم برای رسم GUI است اضافه شد.
لینک دانلود

لیست ریز کارهای انجام شده تو این نسخه

- Add Plugin interface
- Add Plugin Manager class
- Update logger class
- Add Loader interface
- Add Renderer_d3d9 plugin
- Fix a bug in SceneManager::RemoveSceneNode
- Add Renderer::SetScissorRegion
- Add Texture::GetWidth and Texture::GetHeight
- Add libRocket renderer
- Add Netwok class that uses RakNet for networking.
- Add NetworkEvents for listening to network events.
- Add 06libRocketGUI tutorial
- Add 07Network tutorial

----------


## kochol

سلام
نسخه 0.1.0 انجین هم ریلیز شد تو این نسخه پلاگین رندر OpenGL اضافه شده زبان شیدر نویسی CG اضافه شده. 
برای این کار کلاس Renderer کلی دیزاینش تغییر کرده و کلا تر و تمیز تر شده.

یه Entity system بر پایه کامپوننت با قابلیت multithread اضافه شده.

یه Task manager اضافه شده که می تونه کار ها رو تو ترد های مختلف تقسیم بندی کنه.

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

دانلود

من در حال ساختن یه بازی MMORTS با انجین خودم هستم که نسخه های بعدی بر اساس نیاز های من در این بازی ساخته خواهند شد. احتمالا در نسخه بعدی پلاگین Assimp رو برای لود کردن مش ها اضافه می کنم چون خسته شدم از کانورت کردن فایل ها به MS3D خیلی از کاربران انجین Irrlicht رو هم سر این قضیه از دست دادم.

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


- Add EntitySystem tool
- Add 08EntitySystem tutorial
- Upgraded from SDL 1.2 to SDL 2.0
- Add mouse wheel event listener
- Add LoaderDDS for loading DDS textures with this loader
- Add Stream class for streaming data from varius locations
- Add FileSystem and FileSystemManager for serching a file in different locations.
- Add Renderer_ogl plugin
- Refactor the Renderer class
- Remove some gui classes
- Add CG shaders to opengl renderer plugin
- Add KgeThread
- Add KgeMutex
- Add TaskManager
- Add TaskManagerThread
- Add Task interface
- Add TaskGroup
- Update CPU class
- Update Timer class to work with SDL
- Add TSQueue a Tread Safe Queue
- Add KgeLock to make use of KgeMutex easier

----------


## barnamenevisforme

با عرض سلام و خسته نباشید خدمت جناب kochol
من تا به حال دوبار حاصل دسترنج شما رو دانلود کردم ولی متاسفانه موفق به اجرای demo ها نشدم.
نمونه ای از خطاها:
Error    16    error C1083: Cannot open include file: 'SDL_joystick.h': No such file or directory        13    1    KGE
Error    17    error C1083: Cannot open include file: 'SDL.h': No such file or directory       9    1    KGE
Error    20    error C1083: Cannot open include file: 'SDL_cpuinfo.h': No such file or directory        9    1    KGE
Error    53    error C1083: Cannot open include file: 'SDL_thread.h': No such file or directory      6    1    KGE
Error    69    error C1083: Cannot open include file: 'SDL_mutex.h': No such file or directory       3    1    KGE

قبول دارم که یک بخش از این مشکل بر میگرده به خود من و اون کمبود وقت هست.
پیشنهادهای خدمتتون داشتم برای بهتر شدن نتیجه کار.
1-من از آخرین پستی که نوشته بودید تا پست اول رو گشتم،متاسفانه هیچ اشاره ای به نحوه اجرای برنامه های demo نکردید.
2-بهتره در پست اول یک لینک فهرست کلی از موضوع های مختلفی که پست کردید رو قرار بدید تا بهتر بشه رابطه پست ها رو با هم بررسی کرد.
3-بیشتر پست های شما تا به حال از دید ارتباط با developer _یا همون توسعه دهنده_ بوده و توجه چندانی به user _یا کاربر _ نشده.
همون طور که میدونید خیلی از دوستان که در سایت عضو هستند شاید در تمام عمر برنامه نویسی شون حتی با یک موتور سه بعدی هم کار نکرده باشن،چه برسه به این که توسعه دهنده اون باشن.
4-اگرچه آماده کردن امکانات تازه موتور سه بعدی کلی وقت شما رو میگیره.ولی اگر امکانش بود که به روز رسانی  رو از طریق ارائه sdk package دنبال کنید،و در هر sdk به کار بر زبان خاص (مثلا vb.net یا C#‎‎ یا c)
توجه میشد نتیجه بهتر بود.
5-من چند سالی هست که از موتور 3dstate استفاده میکنم.هرچند به این نتیجه رسیدم _و خودتون هم در پست هاتون به اون اشاره کردید_که امکانات خوبی نداره،ولی نکات و سبک هایی رو برای الگو برداری داراست.
از جمله اینکه در نام گذاری توابع طوری رفتار شده که بتوان از روی عبارت نتیجه اعمال تابع رو حدس زد و این به نظر من یکی از نقاط مثبتی هست که باید در ارتباط با کاربر به اون توجه کرد.
در پایان کار شما رو تحسین میکنم و امیدوارم در توسعه این موتور سه بعدی و کارهای دیگرتون موفق و پیروز باشید.

----------


## kochol

سلام

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

برای کامپایل انجین شما به SDL 2 نیاز دارید و همین طور هم directx sdk و CG 




> 1-من از آخرین پستی که نوشته بودید تا پست اول رو گشتم،متاسفانه هیچ اشاره ای به نحوه اجرای برنامه های demo نکردید.


 اگر که نسخه کامپایل شده رو دانلود کنید تو شاخه bin\debug باید فایل های اجرایی مثال ها باشه که اگه vs 2010 redistributable نصب باشه باید بدون مشکل اجرا بشن.




> 3-بیشتر پست های شما تا به حال از دید ارتباط با developer _یا همون توسعه دهنده_ بوده و توجه چندانی به user _یا کاربر _ نشده.


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

از بقیه پیشنهاداتون هم ممنون هستم.

----------


## UfnCod3r

برای من مثال هاش اجرا نمیشن. بعضی هاشون به cg.dll نیاز دارن و بعضی ها هم این خطا رو میده (  can't find constance eyepos in hlsl code)
من قبلنا همKGE رو دانلود کرده بودم الانم ک نگا انداختم زیاد تغییری نکرده . :متفکر: 
ی مسله ذهن منو مشغول کرده 
مگه موتور رو نمی سازن تا باهاش بازی بسازن
توی لینوکس که بازی معنی نداره (فلسفه نرم افزار رایگان کلا تو دنیای گیم نمیتونه اجرا بشه. بازی یعنی انحصار طلبی)
مک هم تو زمینه بازی وضع خوبی نداره . کنسول های بازی هم که کلا ابزار های توسعشو به ما نمیدن و اگه بدنم پولشو نداریم بخریم :لبخند گشاده!: 
فقط ی ویندوز می مونه که اصل کاری همینه .مگه شما سیاوش رو ساختید کسی گفت من برا لینوکس و .. هم می خوامش . :متفکر: 
تو ایران که اکثرا ویندوز دارن . و عده ای هم که اهل لینوکس و .. هستن معمولا سمت بازی نمیرن
درکل اینکه شما وقتی ویندوز داری DX رو هم داری و نیازی به GL و امثالشم نداری . 
بهتر نبود رو یک پلتفرم و یک API برای رندرینگ کار می کردید و نتیجه بهتری می گرفتید تا اینکه با چند تا کتابخونه و چند تا پلتفرم سر و کله بزنید.
تا اونجا ای که من می دونم ماها در حد Epic, Crytech نیستیم که 400 تا برنامه نویس داشته باشیم برا هرچی خواستیم موتور بنویسیم. :ناراحت: 

من خودم شخصا به این نتیجه رسیدم که اگه بخوام ی موتور بازی خوب بنویسم Win و DX11 رو انتخاب کنم .
اینطوری هم خودم راحت ترم. هم خروجی بهتری نسیبم میشه و هم اینکه توسعه دهنده ها کمتر عذاب می کشن.
+ اینکه در اخر هم با باگ های خیلی کمتری مواجه می شیم.

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

----------


## barnamenevisforme

> برای کامپایل انجین شما به SDL 2 نیاز دارید و همین طور هم directx sdk و CG


سلام
ممنون از راهمایی شما
من همون بسته ای که در آخرین پست قرار دادید یعنی kge010 رو دانلود کردم.
چشم،مقدمات رو که فراهم کردم دوباره اجرا میکنم و نتیجه رو خدمتتون عرض خواهم کرد.




> توی لینوکس که بازی معنی نداره


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

----------


## kochol

سلام



> برای من مثال هاش اجرا نمیشن. بعضی هاشون به cg.dll نیاز دارن و بعضی ها هم این خطا رو میده ( can't find constance eyepos in hlsl code)


اون cg.dll رو در ورژن بعدی که همین روز ها می یاد اصلاح می کنم. اون دومی هم نباید مشکل باشه فقط یه وارنینگ هست.




> من قبلنا همKGE رو دانلود کرده بودم الانم ک نگا انداختم زیاد تغییری نکرده .


من لیست تغییرات رو می نویسم حالا شاید مثال ها کارهای پیچیده ای انجام ندن ولی با نگاه به بازی سیاوش می تونید از امکانات گرافیکی بازی با خبر بشید.
http://steamcommunity.com/sharedfile.../?id=200232540




> فقط ی ویندوز می مونه که اصل کاری همینه


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

الان بازی های مستقل که کیفیت خوبی ندارن باید برای همه پلتفرم ها باشن تا بتونن سود خوبی بکنن.

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




> من جای شما بودم استارت ی موتور دیگه رو می زدم


چرا؟
به نظرم  این بدترین کاریه که می تونم انجام بدم.

----------


## samanst

سلام دوست عزیز
چند روزه هر کاری میکنم نمی تونم انجین کامپایل کنم
هرچی لازم هست مثل _ directx sdk  و SDL2  دارم ولی بازم نمیشه اگه میشه منو راهنمایی کنید
_


BassSoundBuffer.obj : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/OPT:LBR' specification

bass.lib(BASS.dll) : error LNK2026: module unsafe for SAFESEH image

C:\kge010\\bin\debug\KGE.dll : fatal error LNK1281: Unable to generate SAFESEH image
البته غیر از این کلی warning  دیگه هم هست

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

----------


## kochol

سلام
یه چنین خطایی رو من تا حالا ندیده بودم ولی به نظر میاد وقتی اتفاق می افته که فایل .lib با یه ورژن قبلی ویژوال استادیو ساخته شده باشه
راه سریعی که به شما ‍یشنهاد می کنم اینه که تو فایل config.h خط 49 رو کامنت کنی

#define KGE_USE_BASS 0

----------


## samanst

سلام  

kochol  عزیز یه پیغام برات گذاشتم

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

ممنون!

----------


## kochol

سلام 
بهتر بود سوالتو همین جا می پرسیدی شاید سوال یکی دیگه هم بود بعدا.

----------


## samanst

سلام
kochol عزیز مرسی از راهنماییت
اما هنوز این error  می ده 

KGE_10.vcxproj -> C:\kge-master\\bin\debug\KGE.dll

برای چی  KGE.dll     اینجا error  می ده؟ :متفکر:

----------


## kochol

سلام
با ویژوال استادیو 2010 کامپایل می کنی؟

نمی دونم مشکل از چیه ولی تو مسیر فایلت دو تا \\ پشت سر هم داری قبل از bin فکر کنم باید تنظیمات پروژه مربوط به خروجی فایل رو تغییر بدی.

----------


## samanst

سلام
نه با استادیو 2013 کامپایل میکنم
یعنی چه تغییراتی دقیقا؟

----------


## kochol

> سلام
> kochol عزیز مرسی از راهنماییت
> اما هنوز این error می ده
> 
> KGE_10.vcxproj -> C:\kge-master\\bin\debug\KGE.dll
> 
> برای چی KGE.dll اینجا error می ده؟


سلام
فهمیدم مشکلت از کجاست تو داری یه برنامه که خروجی اش dll هست رو اجرا می کنی باید تو solution explorer یکی از tutorial ها رو Set as starup project کنی و اون ها رو اجرا کنی.

----------


## samanst

سلام




> فهمیدم مشکلت از کجاست تو داری یه برنامه که خروجی اش dll هست رو اجرا می کنی باید تو solution explorer یکی از tutorial ها رو Set as starup project کنی و اون ها رو اجرا کنی.


 kochol عزیز
قبلا این کارو انجام دادم باز تست کردم

msvcp100d.dll  ارور میده در صورتی که این dll هیچ مشکلی نداره

----------


## kochol

نمی دونم مشکل از چیه ولی شاید یکی لایبری هایی که استفاده می کنی با ویژوال استادیو 2010 کامپایل شده و با نصب Microsoft Visual C++‎ 2010 Redistributable Package  درست بشه.

----------


## mohamad.zakery

سلام جناب kochol عزیز اگر اشتباه نکنم علی اکبر محمدیامیدوارم حالتان خوب باشید و دست مریزاد عرض می کنم خدمت شما بابت kgeمن خودم هم توسعه دهنده cg بودم و هستم و هم اکنون نیز در این عالم بزرگ فعالیت میکنمسالهای متعدد در cg کار کردم و بصورت تخصصی با vC++‎ win32 آشنایی دارم و بینهایت عاشق کدنویسی هستم بودم و انشالله اگر عمری باشد خواهم بود؛ البته الان یک استودیو 3d دارم و بصورت تخصصی تولید انیمیشن داریم و انشالله در آینده ای نزدیک یکی بهترین کارهایمان عرضه میشود. اما بحث من راجع به توسعه موتورهای بازیسازی است که علاقه شخصی من هست. شما اگر اسم من (محمد ذاکری) در اینترنت جستجو کنید از مقالات من درباره دنیای 3d نتایجی را مشاهده می کنید که اگر بخواهم خلاصه بگویم من هم سالها در حال تولید موتور بازیسازی بودم که به جاهای خوبی رسیدم که متاسفانه با توجه به تنها بودن و عدم وقت داشتن لازم نتونستم MZG engine را کامل کامل کنم ولی پروژهای متعدد دیگر مثل Mz Server , Mz Lang , Mz Life editor و همچنین Mz Qtitler دارم که کامل شده اند!!!حالا صحبت را خلاصه می کنم و عرض می کنم که اگر صلاح بدانید تمایل به همکاری در جهت کامل کردن kge دارم و توضیح عرض بکنم به غیر از opengl که آشنایی ندارم تقریبا در همه جاهای دیگه توسعه از توسعه کامپایلر تا توسعه برنامه های سازمانی کار کرده ام. همچنین با Dx 9 , 10 آشنایی کامل دارم همچنین یکی توسعه دهنده های Nvidia نیز هستم.در آخر آرزوی موفقیت دارمبا احترام محمد ذاکری

----------


## moien1

درود برشما 
میشه فایل exe انجین هم بزاری نتونستم اجراع کنم

----------


## kochol

> سلام جناب kochol عزیز اگر اشتباه نکنم علی اکبر محمدیامیدوارم حالتان خوب باشید و دست مریزاد عرض می کنم خدمت شما بابت kgeمن خودم هم توسعه دهنده cg بودم و هستم و هم اکنون نیز در این عالم بزرگ فعالیت میکنمسالهای متعدد در cg کار کردم و بصورت تخصصی با vC++‎‎ win32 آشنایی دارم و بینهایت عاشق کدنویسی هستم بودم و انشالله اگر عمری باشد خواهم بود؛ البته الان یک استودیو 3d دارم و بصورت تخصصی تولید انیمیشن داریم و انشالله در آینده ای نزدیک یکی بهترین کارهایمان عرضه میشود. اما بحث من راجع به توسعه موتورهای بازیسازی است که علاقه شخصی من هست. شما اگر اسم من (محمد ذاکری) در اینترنت جستجو کنید از مقالات من درباره دنیای 3d نتایجی را مشاهده می کنید که اگر بخواهم خلاصه بگویم من هم سالها در حال تولید موتور بازیسازی بودم که به جاهای خوبی رسیدم که متاسفانه با توجه به تنها بودن و عدم وقت داشتن لازم نتونستم MZG engine را کامل کامل کنم ولی پروژهای متعدد دیگر مثل Mz Server , Mz Lang , Mz Life editor و همچنین Mz Qtitler دارم که کامل شده اند!!!حالا صحبت را خلاصه می کنم و عرض می کنم که اگر صلاح بدانید تمایل به همکاری در جهت کامل کردن kge دارم و توضیح عرض بکنم به غیر از opengl که آشنایی ندارم تقریبا در همه جاهای دیگه توسعه از توسعه کامپایلر تا توسعه برنامه های سازمانی کار کرده ام. همچنین با Dx 9 , 10 آشنایی کامل دارم همچنین یکی توسعه دهنده های Nvidia نیز هستم.در آخر آرزوی موفقیت دارمبا احترام محمد ذاکری


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

----------


## mohamad.zakery

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


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

http://www.mostafa3d.com/blog/item/u...ngine-overview

پارسال هم مقاله ای برای یونیتی نوشته بودم:
http://www.mostafa3d.com/blog/item/unity43-new-features

و همچنین مقاله ای راجع به کمپانی nvidia:
http://www.mostafa3d.com/blog/item/n...-and-hairworks

اگر بتونیم یکی 2 نفر دیگه هم اضافه کنیم که عالی میشه!!!!   :لبخند گشاده!:  :لبخند گشاده!:  :لبخند گشاده!:  :لبخند گشاده!:  :لبخند گشاده!:  :لبخند گشاده!:  :لبخند گشاده!:

----------


## sampad_abbas1370

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

----------

