راهنمایی برای شروع برنامه نویسی برای ساختن بازی موبایل و رایانه

سلام و خدا قوت به همگی

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

واقعا دوست دارم برنامه نویسی رو یاد بگیرم.ولی نمی دونم از کجا شروع کنم یا با کدوم برنامه. از سایت www.bestprogramminglanguagefor.me کمک گرفتم و بهم C++رو توصیه کرد.گفتم می خوام بازی 2D برای موبایل بسازم.

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

پاسخ ها

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

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

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

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

جاوا زبان قدرتمندی است ولی برای باز های ساده تر .....

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش
سلام. اينکه قبلا برنامه نويسي کار کردين خيلي خوبه، حداقلش اينه که سطحتون صفر نيست. با همه‌ي زبان‌هاي برنامه نويسي ميشه بازي نوشت، با جاوا، سي شارپ و ... اما بهترين زبان سي پلاس پلاس هست. تا اونجايي که من اطلاع دارم براي بازي سازي از OpenGL استفاده مي‌کنن. يه کتابخانه گرافيکي منبع باز هست که توسعه‌ش هم توسط شرکت‌هاي بزرگ کامپيوتريه، مثل انوديا (نيازمند تحقيق). کلا براي برنامه نويسي يه سري مباحثي است که حتما بايد ياد بگيريد. مثلا ساختمان داده‌ها و طراحي الگوريتم‌ها مباحث بسيار مهميه که براي خوب فهميدنشون حتما بايد رياضي بلد باشيد، حداقل مباحث ماتريس‌ها، رياضيات گسسته که مبحث گراف خيلي مهمه. من هم پيشنهاد مي‌کنم که زبان ++C و شروع به يادگيري کنيد و در ابتداي راه خيلي نبايد درگير مباحث گرافيکي بشين. يعني ابتدا سعي کنيد تمام مفاهيم پايه برنامه نويسي و ياد بگيريد و بعد سعي کنيد با همون مباحثي که ياد گرفتين برنامه‌هاي نسبتا کاربردي بنويسين. مثلا يه برنامه‌اي بنويسيد که وقتي اجرا ميشه با ستاره (*) بر روي کنسول حرف B و چاپ کنه. اينکار يه کاريه که شما بايد خيلي فک کنيد تا بتونيد يه الگوريتمي طراحي کنيد که همچين کاري و انجام بده. بعد هم وارد مباحث گرافيکي بشين و کم کم به صورت گرافيکي برنامه بنويسيد. يک سري موتور‌هاي بازي سازي هست که بايد کار با اون‌ها رُ هم ياد بگيريد (من خودم شخصا کار نکردم و فقط ديدم). يه جورايي ميشه گفت که اين موتور‌هاي بازي سازي يه نوع استديو بازي سازي هستن که يک سري ابزار‌هايي و در اختيارتون قرار ميده که با استفاده از اون‌ها مي‌تونيد بازي بسازيد. مثل فتوشاپ که ابزار‌هايي براي کارهاي عکاسي در اختيار قرار ميده و با استفاده از اون‌ها کار‌هاي خيلي خيلي متفاوتي ميشه کرد. البته مثل فتوشاپ اين موتور‌هاي بازي سازي رايگان نيستن (البته رايگان هم هست) ولي اکثرا به صورت تجاري معرفي ميشن. مثلا unity یه موتور بازی سازی هست که دو نسخه داره، هم رایگان و هم تجاری. که با نسخه رایگانش هم خیلی خوب میشه بازی درست کرد. در کل مبحث بازی سازی، مبحث سختیه و هیچ وقت کسی یه نفری نمی‌تونه بازی بسازه (مگر در حد بازی‌های ساده). سخت‌ترین نوع برنامه نویسی طراحی سیستم عامل هست و بعدش بازی سازی. بازی‌های پیچیده خیلی آدم براش می‌خواد. درضمن ایران هم که در زمینه بازی سازی اصلا خوب نیست. مگر اینکه ایده‌ای که برای بازی دارین خیلی به اصطلاح خفن باشه. یعنی خیلی گرافیک خاصی نخواد و بجاش خلاقیت توش زیاد باشه. مثلا بازی 2048 یه بازی‌ای هست که گرافیک خاصی نداره، ولی فکر قوی‌ای پشتش هست. در کل ایده خیلی مهمه ولی مهم تر از اون اینه که بتونیم اون ایده رُ پیاده سازی کنیم. امیدوارم اطلاعات کمم کمک کرده باشه. موفق باشید :)
sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

نمیشه ریاضی رو بیخیال شیم.

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

سلام

با عرض شرمندگی برای مزاحمت دوباره.

برای شروع برنامه نویسی برای گیم و موضوعات مرتبت. خود شما اساتید هم به عنوان اولین قدم زبان c++ رو توصیه می کنید یا زبان ساده تری رو؟

وبرای شروع چه برنامه هایی رو باید دانلود کنم تا شروع کنم؟

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

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

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

دوم شروع یادگیری برنامه نویسی بدون پرداختن به جزییات سطح میانی و سخت افزاری  

هردو روش در نهایت یک هدف دنبال می کنند

مثلا اموزش کامپیوتر ساینس هاروارد سی را استفاده کرده

https://www.edx.org/course/introduction-computer-science-harvardx-cs50x

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

روش دوم  برای کسی که می خواد شروع کنه یک شروع اسان تر مثلا شروع کردن با جاوا ،پایتون

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

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

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

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

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

 

 

 

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

سلام

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

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

سلام دوست عزیزبنده اول نظرم نوشتم به نظر بنده...

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

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

هرکدام یک ویژگی و یک جا کاربرد دارد ارایه پشته صف ها درخت ها...

پس هدف نحوه ی یادگیری طراحی ساختمان داده برای کار با  دیتا است....

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

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

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

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

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

پس حقیقت اینه سرفصل های computer science کافی است 20 درصد دروس در حد اشنایی برای بازی سازی

فقط کافی است شما یک کد را بخواهید از لحاظ امنیتی بررسی کنید شما در صورتی قادر هستید این کار کنید که فقط متخصص امنیت باشید که این خودش نیازمند یک عمر 20 ساله گذاشتن است

تو فریم ورک چون کار گروهی بوده این ها حل شده

بد نیست لیست دورس ببنید http://curriculums.uast.ac.ir/ksh.fa/ksh.fa.38.pdf

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

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

در کل این نظر بنده بود و دلیلی برای درست بودن نیست ولی هرکس در نظرات و عقایدش ازاد است

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

سلام

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

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

بازم سلام

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

 

 

 

 

 

 

 

 

 

 

sokanacademy forum
کاربر سکان آکادمی 8 سال پیش

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

برای شروع اول رفتم سراغ آموزش اصول برنامه نویسی و بعدش دوره جاوا رو مرور می کنم تا با مبانی برنامه نویسی تا حدودی آشنا بشم بعد انشالله به احتمال زیاد برم سراغ زبان c++

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

از همه متشکرم.

sokanacademy forum
کاربر سکان آکادمی 6 سال پیش
در این سال ها حوزه‌هایی که طرفدار و رونق بیشتری دارن، وب و موبایل هستن و توصیه میشه که مهارت‌های توسعه‌ی نرم‌افزار در این دو پلتفرم رو فرا بگیرین. برای شروع یادگیری Web Development شما باید یک شاخه‌ی Front-End یا Back-End را انتخاب کنید و به پیش برید اما زبان HTML پایه‌ی صفحات وب هست. در مورد توسعه‌ی اپلیکیشن های موبایل هم چندین راه وجود داره و با توجه به پروژه و ویژگی های اون و همچنین تسلط شما به اون روش، میتونید یکی رو انتخاب کنید. میتونید از زبان جاوا یا کاتلین استفاده کنید و یا روش هیبریدی رو در پیش بگیرید و با Cordova کار کنید و یا حتی با ابزارهایی مثل React Native و یا Xamarin کار کنید.
sokanacademy forum
کاربر سکان آکادمی 6 سال پیش

سلام ، وقت بخیر

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

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

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

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

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

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

online-support-icon