ورود

View Full Version : مبتدی: انتخاب زبان و API برای شروع بازی سازی



manatech
یک شنبه 03 بهمن 1389, 13:35 عصر
با سلام خدمت دوستان و متخصصین گرامی.

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

من #C هم یه خورده بلدم. با XNA شروع کنم خوبه؟

REZAsys
یک شنبه 03 بهمن 1389, 20:41 عصر
سلام
شما کلا میتونی از دو راه بازی بسازی:
1. خودت اول انجین بنویسی بعد باهاش کار کنی
2. انجین آماده استفاده کنی
من خودم راه دوم رو پیشنهاد میکنم xna هم یکی از این انجینهای آمادست ! که خیلی خوبه ولی خوب برای کارهای بزرگ مناسب نیست بیشتر برای کارهای دوبعدی با ایده ی خوب هست....
اگر خواستی واست بقیه انجینهای آماده رو معرفی میکنم....

mahdi1373
یک شنبه 03 بهمن 1389, 20:41 عصر
سلام،
اگه می خواهی بازی ساز حرفه ای بشی، باید با c++ بنویسی. ولی برای بازی های نه چندان حرفه ای، XNA خوبه.
(این نظرم بود، لطفا دعوا راه نندازین...!)

manatech
یک شنبه 03 بهمن 1389, 21:22 عصر
سلام
شما کلا میتونی از دو راه بازی بسازی:
1. خودت اول انجین بنویسی بعد باهاش کار کنی
2. انجین آماده استفاده کنی
من خودم راه دوم رو پیشنهاد میکنم xna هم یکی از این انجینهای آمادست !


تا اونجا که من می دونم XNA انجین نیست و فقط یک API است. ولی با API هایی که در XNA وجود داره میشه انجین نوشت.

دوست گرامی جناب mahdi1373 شما از چه لحاظ می فرمایین XNA فریموورک حرفه ای نیست؟ چه محدودیت هایی در XNA وجود داره که مانع از بازی سازی حرفه ای میشه؟ من از سبک برنامه نویسی ++C زیاد خوشم نمیاد.

pswin.pooya
یک شنبه 03 بهمن 1389, 21:33 عصر
دوست گرامی جناب mahdi1373 شما از چه لحاظ می فرمایین XNA فریموورک حرفه ای نیست؟ چه محدودیت هایی در XNA وجود داره که مانع از بازی سازی حرفه ای میشه؟

1. اگر میخواهید با java بازی بسازین بهترین گزینه برای شما OpenGL ( jogl هست.

2. XNA برای دات نت فریم ورک هست.

manatech
یک شنبه 03 بهمن 1389, 21:39 عصر
1. اگر میخواهید با java بازی بسازین بهترین گزینه برای شما OpenGL ( jogl هست.

2. XNA برای دات نت فریم ورک هست.

با JOGL میشه بازی هایی در حد Prince Of Persia یا Assasin ساخت؟

Vahid_67
دوشنبه 04 بهمن 1389, 01:28 صبح
سلام
در ادامه و تایید نظر دوستان:

1-


یک کامپایلر:(C , ++ , # ...)
API :

- DirectX : مجموعه‌ای از رابط‌ های برنامه‌نویسی نرم‌افزار است که کارهای مربوط به محیط‌های چندرسانه‌ای در سکوهای مایکروسافت بر عهده دارد.
-OpenGL : به معنای کتابخانه گرافیکی منبع باز(اُپن سورس) است که توسط شرکت Sillicon Graphics ساخته شده‌است . این ابزار یک شتابدهنده گرافیکی است که به برنامه نویس قابلیت اجرای گرافیک با کیفیت و سرعت بالا را که در سیستم‌های عامل به صورت پیش فرض امکان آن نیست را می‌دهد .
- XNA : کتابخانه مجموع دایرکت ایکس روی سکوی .net برای پلتفورم های PC , XBOX360 , ZUNE , WindowsMobile ...


کتابخانه های آماده : Physic - Sound - AI - ...
ساختن یه انجین از اینها
نوشتن یه LevelEditor برای انجین
طراحی و ساخت فایل های بازی (مدل ها ، صداها ، بافت ها ...)
طراحی کلی بازی
صفا!

2-


یک موتور (Unreal3 - Unity3D ...)
طراحی و ساخت فایل های بازی (مدل ها ، صداها ، بافت ها ...)
طراحی کلی بازی
صفا!

اینها روشهای ساخت بازی هستند (تا جایی که من میدونم) . انتخاب با خودته.
ولی اوضاع در مورد XNA کمی فرق داره.مایکروسافت جایی نمیشینه که آب زیرش بره.مطمئنن XNA رو واسه ساخت منچ و شطرنج نداده بیرون.XNA یه راه حل برای کسایی یا شرکت هاییه که میخان بی دردسر بازی بسازن. XNA خیلی کار رو راحت تر میکنه در کل اومده کارهای اولیه ای که هر کس برای ساخت و طراحی بازی و انجین انجام میده رو توی یه سطح میانی به صورت فریم ورک درآورده که تو این کار ترازوی کارایی و کیفیت رو وسط و متعادل نگه داشته.اینجوری که خارج از تکنیکهایی که فلان موتور برای رندر یا فلان موتور برای سایه زنی و ... استفاده میکنه،یه قالب کلی از همه اینها رو دراورده که کار رو راه میندازه.مثلا با XNA داری دایرکت ایکس مینویسی ولی دیگه نیاز نیست تابع رندر بنویسی اصلا تابع رندر به برنامه نویس XNA مربوط نیست ، فقط یه تایع کوچیک به اسم Draw هست که توی اون میگی چی رندر بشه چی نشه.بهترین قسمت کار دات نت بودنشه که دیگه اصلا لازم نیست برنامه نویس روی مدیریت حافظه کار کنه،فقط کافیه مدل هایی که قراره لود بشن تولیست لود و اونایی که قراره آنلود بشن تو لیست آنلود بزاری و دات نت خودش همه کارهارو میکنه.چیزهای دیگه هم هست مثل تشخیص پشتیبانی های سخت افزاری و ساپورتها که همه رو XNA خودش انجام میده.XNA فقط یه لول ادیتور کم داره که باید خودت بر حسب نیاز بازیت اونو واسش بنویسی.ولی اینجا این بحث مطرح میشه که XNA بخاطر دات نت بودنش (چند مرحله ای بودن اجراش ) کند تره.این کاملا درسته.ولی به نظر من هدف مایکروسافت از ارائه XNA فقط توسعه بازی برای XBOX360 بوده و هست.روی این کنسول دیگه چند مرحله ای بودن و دات نتی بودن مهم نیست چون ساختار این کنسول همینجوریه.چند فریم کمتر واسه کنسول زیاد مهم نیست . الان بازی های خیلی کمی هستن که روی این کنسول با 60فریم اجرا میشن.من فقط CallOfDuty رو دیدم که 60فریم بوده.چند پلتفرمی مهم نیست چون اینجا فقط یه پلتفرمه.قابلیت استفاده مجدد مهم نیست برنامه نویس واسه بازیش یه نیمچه انجین (اگه بشه گفت انجین) میسازه واسه بازیه دیگش یکی دیگه میسازه و هزارتا دلیل دیگه.اینجا فقط و فقط تسهیل فرایند توسعه کنسول XBOX360 مهمه (برای برنامه نویس). اگه بازی نویسی واسه این کنسول راحت باشه ، بازی های بیشتری واسش ساخته میشه ، کنسول فروش بیشتری میکنه. تو دنیا بازی های کنسول بیشتر از بازی های پی سی فروش دارن (بجز بعضی ها مثل Crysis ...) .توی بازی کنسولی هم کسی زیاد به انجینی که باهاش بازی و ساختن و تکنیکها و شیدر ها و ... زیاد اهمیت نمیده (توهین نشه چون بیشتر کسایی که با کنسول بازی میکنن اطلاعات کمتری از این مسائل دارن) حالا فکرشو بکن بخای واسه پول درآوردن یه بازی کنسولی بسازی با انجین ساخت خودت یا XNA? یه مسئله دیگه هم اینه که تا حالا بازی بزرگ و معروفی با XNA درست نشده.اینو میشه پای این گذاشت که شرکت هایی که بازی های بزرگ و معروف رو میسازن عمدتا بازیشون رو چند پلتفرمه میدن پس اگه بخان با XNA بسازن اول باید دات نت رو روی PS3 و Wii پیاده کنن! پس اصلا سراغش نمیرن.درکل XNA اصلا به این بدی و ضعیفی که همه جا دربارش میگن نیست.(البته فقط توی سایت های فارسی زبان دیدم).

من خودم یه تست بین xna - c# - c++ زدم. یه برنامه نوشتم که 5000 تا مدل (از یک نوع) بدون بافت رو لود و توی صحنه Draw میکرد(با آرایه).(سیستم : CPU AMD965 X4 - RAM 2GBDDR3 - VGA GTX260)نتیجش این بود:
سی پلاس توی 8.5 ثانیه 20-25 فریم
سی شارپ توی 17 ثانیه 20-25 فریم
XNA توی 1.5 ثانیه برنامه رو اجرا کردن.! 30 فریم به بالا (خاصیت DefaultLighting برای XNA فعال بود)
فکر کنم اینجوری بود که واسه XNA دیگه کارهایی که با اون دوتا قرار بود قبل لود کردن انجام بشه نمیشد چون همشون توی دات نت از قبل بودن.

1-
طبق توصیه دوستان برای کامپایل ویژوال سی پلاس.
برای API نظر خودم DirectX
باز هم طبق توصیه دوستان برای برنامه نویسی با دایرکت ایکس ، ویژوال سی پلاس بهترین گزینست.برای سی شارپ هم XNA و SlimDX(کتابخانه رایگان دایرکت اکس برای C#) هستند.
واسه کتابخانه آماده ، HAVOK همه رو داره ولی فکر کنم پولیه.
زحمت انجین و بقه کارها رو باید خودت بکشی.موتورهای گرافیکی آماده و رایگان زیاد هست میتونی بگیری و کاملش منی.

2-
Unreal3 به نظرم بهترینه از هر لحاض،باید کار کردن باهاشو یاد بگیری که میتونی از فیلم های آموزشی سایتش استفاده کنی.وقتی بازیتو فروختی باید 25% از سود فروشش رو به عنوان لیسانس به اپیک گیم بدی.

و3-
مراحل بالا رو با XNA کامل کنی و واسه ی کنسول XBOX360 یه بازی بنویسی.

در کل:
اگه میخای با سرعت ، کیفیت ، کارایی ، پول دربیاری و معروف شی از موتور آماده استفاده کن.
اگه میخای با سرعت پول دربیاری و معروف شی از XNA استفاده کن.
اگه میخای با کیفیت و کارایی بازی بنویسی و خیلی معروف شی و خیلی پولدار شی (البته با سرعت خیلی کم و زمان بیشتر) خودت یه موتور بنویس و باهاش بازی بساز.
چقدر حرف زدم!؟

manatech
دوشنبه 04 بهمن 1389, 09:06 صبح
دوستان فکر می کنم برداشت شما از #C یا جاوا کمی با برداشت من فرق می کنه! همیشه مشکل این بوده که زبان #C به خاطر تفسیر شدن کند اجرا میشه ولی این درست نیست. برنامه های نوشته شده با #C همیشه JIT Compile میشن. یعنی عمل تفسیر فقط در مرحله ی اول انجام میشه اینطور نیست که کدی که یکبار اجرا شده بار دوم هم مجددا به زبان ماشین تبدیل بشه و بعد اجرا بشه بلکه از کد های زبان ماشین که در مرحله ی اول توسط Jitter تولید شدن استفاده میشه یعنی با زبان های کامپایل شده مانند ++C هیچ تفاوتی نداره. من قبلاً برنامه نویسی کرده ام و فکر نمی کنم دات نت یا جاوا باعث بغرنج شدن مسائل بشن.

فرمودید با XNA فقط میشه برای XBOX طراحی کرد؟ آیا بازی های طراحی شده با XNA روی PC اجرا نخواهد شد؟ از طرفی پروژه ی Mono داره دات نت فریموورک رو به صورت اوپن سورس توسعه می ده و هم اکنون روی بیشتر نسخه های لینوکس هم وجود داره. PS هم از هسته ی لینوکس استفاده می کنه پس فکر نمی کنم برای انتقال دات نت به PS مشکل زیادی وجود داشته باشه. دیروز من یک موتور بازی به نام Axiom رو دانلود کردم که با استفاده از تکنولوژی دات نت و زبان #C ساخته شده و میشه با همین زبان اون رو گسترش داد.

با همه ی این اوصاف من هم که از بازی سازی زیاد سر در نمیاررم بهتر نیست از همین XNA شروع کنم؟

Vahid_67
دوشنبه 04 بهمن 1389, 09:36 صبح
همیشه مشکل این بوده که زبان #C به خاطر تفسیر شدن کند اجرا میشه ولی این درست نیست. برنامه های نوشته شده با #C همیشه JIT Compile میشن. یعنی عمل تفسیر فقط در مرحله ی اول انجام میشه اینطور نیست که کدی که یکبار اجرا شده بار دوم هم مجددا به زبان ماشین تبدیل بشه و بعد اجرا بشه بلکه از کد های زبان ماشین که در مرحله ی اول توسط Jitter تولید شدن استفاده میشه یعنی با زبان های کامپایل شده مانند ++C هیچ تفاوتی ندارهخدا خیرت بده که اینو گفتی.

فرمودید با XNA فقط میشه برای XBOX طراحی کرد؟ آیا بازی های طراحی شده با XNA روی PC اجرا نخواهد شد؟ هر برنامه ای که با XNA نوشته شه میتونه روی PC - XBOX360 - ZUNE - WinMobile اجرا بشه.من گفتم هدفش توسعه بازی های XBOX360.

دیروز من یک موتور بازی به نام Axiom رو دانلود کردم که با استفاده از تکنولوژی دات نت و زبان #C ساخته شده و میشه با همین زبان اون رو گسترش داد.تا جایی که من میدونم Axiom یه موتور گرافیکی رایگان یه زبان سی شارپ که DX-OGL-XNA و پلتفرم های Win-Linux ساپورت میکنه.

با همه ی این اوصاف من هم که از بازی سازی زیاد سر در نمیاررم بهتر نیست از همین XNA شروع کنم؟ خوبه ولی بهتره اول با یکی دوتا موتور آماده مثل 3DGS کار کنی تا مفهوم های پایه ای رو یاد بگیری.

kochol
دوشنبه 04 بهمن 1389, 11:29 صبح
دوستان فکر می کنم برداشت شما از #C یا جاوا کمی با برداشت من فرق می کنه! همیشه مشکل این بوده که زبان #C به خاطر تفسیر شدن کند اجرا میشه ولی این درست نیست. برنامه های نوشته شده با #C همیشه JIT Compile میشن. یعنی عمل تفسیر فقط در مرحله ی اول انجام میشه اینطور نیست که کدی که یکبار اجرا شده بار دوم هم مجددا به زبان ماشین تبدیل بشه و بعد اجرا بشه بلکه از کد های زبان ماشین که در مرحله ی اول توسط Jitter تولید شدن استفاده میشه یعنی با زبان های کامپایل شده مانند ++C هیچ تفاوتی نداره
پس چرا exe ها و dll های دات نت رو می شه توسط reflector به کد دوباره برگردوندشون

manatech
دوشنبه 04 بهمن 1389, 11:46 صبح
پس چرا exe ها و dll های دات نت رو می شه توسط reflector به کد دوباره برگردوندشون

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

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

REZAsys
دوشنبه 04 بهمن 1389, 13:09 عصر
با همه ی این اوصاف من هم که از بازی سازی زیاد سر در نمیاررم بهتر نیست از همین XNA شروع کنم؟
اگر خیلی میخوای رو برنامه نویسی کار کنی و از کارهای گرافیکی و اینچنینی خوشت نمیاد همین Xna خوبه ، ولی اگر میخوای حرفه ای با انجین ها کار کنی برای خودت دردسر ایجاد نکن منظورم اینه که سعی کن بیخیال دایرکت ایکس و اپن جی ال بشی چون اینا بیشتر واسه انجین نویسی هست و اینجور که شما گفتی میخوای بازی بسازی ...
نظر من همیشه UDK هست ، ولی اگر میخوای فقط کد بنویسی برو xna یاد بگیر...

سپول
دوشنبه 04 بهمن 1389, 13:26 عصر
چیزهای دیگه هم هست مثل تشخیص پشتیبانی های سخت افزاری و ساپورتها که همه رو XNA خودش انجام میده.XNA فقط یه لول ادیتور کم داره که باید خودت بر حسب نیاز بازیت اونو واسش بنویسی.ولی اینجا این بحث مطرح میشه که XNA بخاطر دات نت بودنش (چند مرحله ای بودن اجراش ) کند تره.این کاملا درسته.ولی به نظر من هدف مایکروسافت از ارائه XNA فقط توسعه بازی برای XBOX360 بوده و هست.روی این کنسول دیگه چند مرحله ای بودن و دات نتی بودن مهم نیست چون ساختار این کنسول همینجوریه.چند فریم کمتر واسه کنسول زیاد مهم نیست . الان بازی های خیلی کمی هستن که روی این کنسول با 60فریم اجرا میشن.

آقای Vahid_67، اولا اینجارو مثل فروم شخصیه خودت کردی و مثل گوگل ازش استفاده می کنی که هیچی. الان صفحه اول اینجا پر شده از تاپیک های بیهوده شما که "کدام بهتر است ؟" ، "این خوب است یا بد؟" ، "C++ بهتر است یا xna ..."، "کمک ..."
حالا هم که شدی راهنمای بقیه...

- یعنی چی روی کنسول Xbox "چند مرحله ای مهم نیست" ؟ شما اصلا کوچکترین اطلاعاتی از ساختار xbox دارید که به مردم توصیه می کنید ؟ Xbox یک SDK داره تحت C به نام XDK که تمام بازی ها رو با اون می نویسن، که اتقاقاً از PC و directx هم دسترسی سطح پایینتری به سخت افزار می ده.

- روی کنسول ها از جمله Xbox اتفاقاً کوچکترین مقدار سرعت (Fps) مهمه و خیلی مهمتر از PC هست، چون رقابت برای بازی های کیفیت خفن زیاده و سخت افزار کنسول به نسبت PC محدودتر هست.

- بازی های کمی هستن که 60 fps اجرا می شن چون بازی ها تا اونجایی که می شه optimize می شن که با گرافیک بالا Release بشن، و در نتیجه معمولا سازنده های بازی سعی می کنند حداقل با 30 fps بازی اجرا بشه. که هم کیفیت بازی بالا باشه و سرعت پایین نباشه.


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


س اصلا سراغش نمیرن.درکل XNA اصلا به این بدی و ضعیفی که همه جا دربارش میگن نیست.(البته فقط توی سایت های فارسی زبان دیدم).
کسی نگفته که XNa بده، به شرط اینکه شما اینجوری بی اطلاع راجع بهش صحبت نکنید.
برای همون بازی های خیلی ساده مثل Board games و puzzle برای Windows و Xbox Live خوبه... نه برای کار حرفه ای.
برنامه نویس های گرافیک هم برای prototype و تست تکنیک های گرافیکی در PC ازش استفاده می کنند.
حتی بازی های Action تر و از لحاظ کیفیت بالاتر indie رو برای Xbox با همون C + XDK درست می کنند.


من خودم یه تست بین xna - c# - c++ زدم. یه برنامه نوشتم که 5000 تا مدل (از یک نوع) بدون بافت رو لود و توی صحنه Draw میکرد
بهت پیشنهاد می کنم قبل از اینکه از اینگونه تست ها انجام بدی اولا یک مروری روی کتاب های Effective C++ و امثال اینها بکنی که بتونی حداقل از 30-40% قدرت زبان C استفاده کنی. C برای یک آماتور از هر زبانی می تونه کندتر باشه و برای یک حرفه ای چندین برابر سرعت زبان های دیگه .

و اما XNA :
- تحت زبان میانی C# هست که در برنامه های بزرگ و محاسباتی اصلا قابل مقایسه نیست با C و زبان هایی که native کامپایل می کنند. در واقع با java و برنامه های دیتابیس مقایسه می شه.
- Mono که multiplatform زبان های .NET هست در خیلی از موتورهای حرفه ای به عنوان "زبان اسکریپت" استفاده می شه، نه زبانی که باهاش موتور می نویسند !
- در حال حاضر با وجود بازی های i-phone و دیگر پلتفرم های موجود که بهتر از مایکروسافت فروش می کنه، محبوبیت XNA کمتر شده (به جز ایران ظاهراً) و همونطور که گفتم در PC که بیشتر به عنوان prototype برنامه های گرافیکی استفاده می شه. در xbox هم معمولا بازی های board games و اینها تحت شبکه Xbox live می سازند.

* در هر کاری از جمله بازی سازی و در هر زمانی، اگه می خواهید کار High-End انجام بدید "سخت" هست و هیچ راه آسونی برای حرفه ای شدن وجود نداره، پس دنبالش نرین، ولی اگه می خواهید مبانی رو یاد بگیرین XNA انتخاب خوبی هست.


چقدر حرف زدم!؟
زیاد و اشتباه !!!

manatech
دوشنبه 04 بهمن 1389, 14:19 عصر
دوستان دعوا نکنید لطفاً! من اینجا سؤالی داشتم که پرسیدم و از همه ی اون کسانی که نظرشون رو عنوان کردند سپاس گزارم. چه آن هایی که درست جواب دادند و چه آن هایی که بدون داشتن اطلاعات کامل جواب دادند. تصمیم بنده هم این است که ابتدا مفاهیم رو با XNA یاد بگیرم و بعد با UDK کار کنم. دلیل این که از اول نمی خوام برم سراغ Game Engine اینه که به کد نویسی عادت کردم و برای من کد نویسی جالب تر از کار کردن با موتور های GUI است. جناب سپول شما هم چندجا سوتی بدی دادین که بنده که چندین سال است برنامه نویسی می کنم با اون ها آشنایی دارم ولی دلیل نمیشه تو یه محیط همگانی مچتون رو بگیرم و باهاتون جدل کنم. باز هم ممنون از همه ی دوستان و از شما جناب سپول که سعی در راهنمایی من داشتید. لطفاً دیگر جدل نکنید.

hi.alir
دوشنبه 04 بهمن 1389, 15:36 عصر
همونطور که قبلا گفتم اولویت اول در XNA پلتفرم هست و کارایی در اولویت دوم قرار داره.

manatech
دوشنبه 04 بهمن 1389, 15:52 عصر
به عنوان یک مبتدی بازی سازی و اینکه شاید بسیاری از دوستان هم سطح من باشند لازم دونستم سایتی رو که خودم مطالبش رو دارم می خونم و خیلی به دردم می خوره معرفی کنم. البته به زبان انگلیسی هست.

http://www.riemers.net

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

سپول
دوشنبه 04 بهمن 1389, 17:03 عصر
فقط یه پیشنهاد بهت می کنم، یه فرومی هست به اسم http://www.persian-designers.com/ اونجا بیشتر مناسب شما هست و فکر کنم بیشتر تحویل گرفته بشی و کسی هم خودش رو باهات ارضا نمی کنه.
سطح اش هم برای اینجور بحث ها و سوالات بهتره.
بیا اینم یه تاپیک که خیلی حال می کنی : http://www.persian-designers.com/forum/viewtopic.php?p=64075#64075
با هم گل بگین و گل بشنوین ...


- از اون user ای که می گه "سوتی" دادم و نخواست "مچ" من رو بگیره هم تشکر می کنم. خیلی کارش درسته و خوب فلسفه فروم علمی رو فهمیده !!!

pswin.pooya
دوشنبه 04 بهمن 1389, 21:22 عصر
با JOGL میشه بازی هایی در حد Prince Of Persia یا Assasin ساخت؟

بله.
ولی بازی سازی با OpenGL به مراتب سختر از DX و یا XNA هست. و برای یه مبتدی به نظر من DX و یا XNA بهترین گرینه به شمار میره. اما اگر می خوایین با جاوا کار کنین بدون هیچ تردیدی برین سراغ OpenGL

manatech
دوشنبه 04 بهمن 1389, 21:37 عصر
با تشکر از مدیریت ارزشمندتون جناب pswin.pooya.

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

pswin.pooya
دوشنبه 04 بهمن 1389, 23:32 عصر
من زیاد با جاوا کار نکردم.

شما یکی از آیتم ها رو از آدرس زیر انتخاب کنید و بدین من (آدرس رو) براتون آپلود کنم.

http://kenai.com/projects/jogl/

manatech
سه شنبه 05 بهمن 1389, 01:07 صبح
خوب من که نمی دونم کدوم یکی بهتره اصلا نمی دونم چی هستن. شما یکی رو به انتخاب خودت هر کدوم رو صلاح می دونی بهم بگو.
من فقط برنامه نویسی تحت ویندوز و وب رو با جاوا کار کردم ازGame هیچی سرم نمیشه. البته من خودم می خواستم از سایت https://jogl.dev.java.net دانلود کنم که باز نشد!

manatech
سه شنبه 05 بهمن 1389, 22:30 عصر
لطفاً کمک کنید دوستان. من خیلی به game programming علاقه دارم. همچنان منتظر پاسخ هستم.

pswin.pooya
سه شنبه 05 بهمن 1389, 23:09 عصر
واقعیت رو بخوایین من هم مثل شما هستم. من تست کردم. مشکل داونلود نداره. اگر بازهم شما با هر کدوم از فایلهایی که میخواستین مشکل داشتین بگین من upload کنم

manatech
جمعه 08 بهمن 1389, 00:00 صبح
چند روی پیش تو ویکی پدیا می خوندم که در بازی Assasin چهره ها با ZBrush، محیط بازی با 3Ds Max و در کنترل منطق بازی از موتور بازی Anvil کمک گرفته شده. آیا بازی ساز لازمه با نرم افزار 3ds max یا Maya آشنا باشه؟ اگه قراره از موتور بازی استفاده کنیم دیگه چه نیازی به یادگیری برنامه نویسی directX یا OpenGL هست؟

pswin.pooya
جمعه 08 بهمن 1389, 00:35 صبح
چند روی پیش تو ویکی پدیا می خوندم که در بازی Assasin چهره ها با ZBrush، محیط بازی با 3Ds Max و در کنترل منطق بازی از موتور بازی Anvil کمک گرفته شده. آیا بازی ساز لازمه با نرم افزار 3ds max یا Maya آشنا باشه؟ اگه قراره از موتور بازی استفاده کنیم دیگه چه نیازی به یادگیری برنامه نویسی directX یا OpenGL هست؟ اینو بهتره کسایی که واقعا تجربه دارن جواب بدن اما اگر قراره از موتور بازی آماده استفاده بکنین (مخصوصا موتور حرفه ای) بهتره که حداقل با یه API آشنا باشین تا بتونین از اصطلاحات و تکنیکهای بکار رفته سر در بیارین. از یه طرف دیگه کسایی که toolsetها رو می نویسن باید مکس و مایا آشنا باشن تا بتونن ادیتورها و اکسپورترهای لازم رو بنویسن. هر بازی سازی باید حداقل یه آشنایی مقدماتی به تمامی مفاهیم مطرح و یه آشنایی حرفه ای به تخصص خودش داشته باشه (مثل گرافیک و یا هوش مصنوعی) تا بتونه با تیم بازی کاملا ارتباط برقرار کنه و متوجه نیازمندهای اونها بشه.
از طرف دیگه اکثر بازیهای حرفه ای به همراهشون موتورهای بازی ساخته میشه در حقیقت نرم افزارهای کامپیوتر به این صورت مونتاژ قطعات ساخته نمی شن. بلکه بنا به تعریف نیازمندهای مساله (پروژه) تعریف و توسعه داده میشن. پروژه های حرفه ای به این نگاه نمی کنن که باید با توجه به چه ابزاری بازی بسازن بلکه ابزار کارشون رو با توجه به نیازمندیهای خودشون می سازن. این مساله توی نرم افزارهای بلادرنگ حساستر هست. چون این نوع نرم افزار باید بیشترین سرعت و دقت رو داشته باشن. که بازیها هم جزء نرم افزارهای بلادرنگ نرم به حساب میرن.
بیشترین چالشها در بازیسازی در مرحله اول متوجه سرعت هست و در مرحله بعد متوجه موارد دیگه مثل اندازه حافظه (البته این دو رابطه تنگاتنگی باهم دارن چون مدیریت خوب حافظه میتونه به افزایش سرعت هم کمک کنه)‌.
مورد دیگه در بازیسازی، مساله سرگرمی هست نه گرافیک و ... در حقیقت بازی باید سرگرم کننده باشه و لازمه اون گیم پلی خوب هست. افرادی که سناریو رو می نویسن در حقیقت باید تمام خلاقیت خودشون رو بروز بدن و اصلا درگیر مواردی مثل محدودیتهای نرم افزاری نباشن. استفاده از موتور آماده باعث میشه که ذهنیت این آدمها درگیر محدودیتها موتور بشه و ...