آموزش طراحی بازی به کودکان : علاقه به ایجاد بازی در کودکان روز به روز در حال افزایش است.
این راهنما برای والدین یا خوانندگان جوان تری است که میخواهند وارد دنیای بازی سازی شوند.یعنی در ابتدا روی فناوری هایی تمرکز خواهیم کرد که برای مبتدیان مناسب هستند.
سن مناسب برای بازی سازی ؟
یکی از رایج ترین سوالاتی که پرسیده می شود این است : من (یا فرزندم) باید چند ساله باشم تا توسعه بازی را شروع کنم؟
پاسخ این سوال غیرممکن است زیرا همه بچه ها متفاوت هستند.
در قشر بسیار کمی (و با استفاده از ابزارهای مناسب)، یک کودک 6 ساله با انگیزه احتمالاً می تواند موفقیت هایی داشته باشد.
در طیف دیگر، یک نوجوان 12 ساله معمولی احتمالا دارای پایه تحصیلی و توانایی های ذهنی برای موفقیت می باشد.
چند نکته مهم وجود دارد که باید از قبل از آنها آگاه بود :
اولین مورد انگیزه است.
به احتمال زیاد بزرگترین مانع موفقیت انگیزه است، نه توانایی ذهنی.
اگر کودک شما کاملاً عاشق ساختن چیزی است و مایل به آزمون و خطا است، توسعه بازی برا آنها عالی است.
لازم به ذکر است که عشق به بازی کردن بازی های ویدیویی بسیار متفاوت از عشق به ساخت بازی های ویدیویی است.
دوم مدیریت انتظارات است.
اینجاست که ما بالقوه ترین توسعه دهندگان بازی را بدون توجه به سن از دست می دهیم.
همیشه توسعه بازی فوق العاده سخت نیست، ولی قطعاً پیچیده است.
فرزند شما قرار نیست به این زودی بازی های مدرن عظیمی مانند Call Of Duty یا NHL بسازد.
آنها باید از کوچک شروع کنند، بسیار کوچک و از آنجا به سمت بالا حرکت کنند.
یک راه کلیدی برای بهتر بیان کردن مساله این است :
اگر طرز فکر کودک شما این باشد که (من می خواهم Minecraft بعدی را ایجاد کنم) ، آنها شکست خواهند خورد و سخت شکست خواهند خورد.
از سوی دیگر، اگر ذهنیت آنها این باشد که (من می خواهم در نهایت Minecraft بعدی را بسازم)، شاید ذهنیت عالی برای موفقیت باشد.
دانستن تفاوت در آنجا بسیار مهم است.
تقریباً مانند هر مهارت دیگری، شما باید از کوچک شروع کنید و بر موفقیت های خود اضافه کنید.
شروع خیلی بزرگ فقط منجر به شکست و ناامیدی می شود.
به هر حال توسعه بازی (Game development) چیست؟
این قسمت کمی فنی تر می شود. اصطلاح توسعه بازی یک اصطلاح چتر مانند است. به این معنی که قابلیت های متفاوت زیادی گرد هم می آیند که تا یک کل بزرگتر را ایجاد کنند.
در مورد توسعه بازی مثل یک خودروسازی فکر کنید. در این صنعت فقط یک مهارت وجود ندارد.
بلکه برای خودوسازی نیاز به مهندسان، طراحان گرافیک، تولیدکنندگان، تضمین کیفیت و غیره دارید که همگی برای ساخت یک ماشین با یکدیگر همکاری می کنند.
هرچند در مورد بازی، هنوز هم این امکان وجود دارد که همه این وظایف مختلف توسط یک شخص انجام شود.
تعدادی بازی بسیار موفق وجود دارد که توسط یک شخص برنامه ریزی ، ساخته و تست شده است.
با این حال، مهم است که بدانیم، بازی سازی کاری تیمی است.
درواقع باید بدانیم که توسعه بازی تک حیطه ای نیس.
ممکن است فرزند شما واقعاً از یک قسمت آن لذت ببرد، درحالیکه ممکن است از بخشی دیگر از آن خوشش نیاید.
همچنین مهم است که به نوع ابزارها توجه کنید که آیا همراه با هنر هستند؟ آیا مثال های صوتی دارند؟
اگر به تیتراژ یک بازی مدرن نگاه کنید، به معنای واقعی کلمه صدها نام و عنوان شغلی مختلف را خواهید دید که در این پروژه نقش داشته اند.
با این حال، وقتی تازه شروع کرده اید، فقط دوکار هستند که باید روی آنها تمرکز کنید.
ایجاد بازی و ساختن چیزهایی که در بازی وجود دارد.
ساخت بازی که عموما برنامه نویسی نام دارد. و ساخت اشیا درون بازی که ممکن است طراحی، انیمیشن، موسیقی یا صدا باشد.
این مهارت ها کاملاً متفاوت هستند اما عموماً برای ساخت یک بازی مورد نیاز هستند.
آموزش واقعی بیشتر روی برنامه نویسی تمرکز میکند. زمانی که کودکان به توسعه بازی علاقه مند می شوند بیشتر منظور این قسمت است.
به عنوان مثال، کودکی که علاقه مند به یک هنرمند بازی است، احتمالاً از قبل کلی دفترچه با نقاشی های خود پر کرده است.
این تشخیص رویکردی عالی است، زیرا تفاوت بین “آرتیست” و “آرتیست بازی” بسیار ناچیز است.
برنامه نویسی چیست؟
بیشتر زمان ها زمانی که شخصی درباره توسعه بازی صحبت میکند منظورشان همان برنامه نویسی بازی است. اما برنامه نویسی چیست؟
سادهترین تعریفی که میتوانم بگویم، برنامهنویسی، هنر این است که به رایانه بگوییم چه کاری انجام دهد.
در مورد برنامه نویسی بازی، این به این معنی است که کارهایی مانند «وقتی کاربر فلش بالا را فشار می دهد این کار را انجام دهید» یا «وقتی سلامت بازیکن برابر 0 است، او را بُکشید» انجام دهید.
حالا اینکه چگونه بازیها را برنامهریزی میکنید، خیلی پیچیدهتر است و یکی از بزرگترین کارهایی است که با آن سر و کله خواهید زد.
مهمتر اینکه این به کودک شما بستگی دارد. زیرا همه یکسان فکر نمیکنند و ایده هایشان را یکسان بیان نمیکنند.
در برخی موارد یک کودک میتواند عاشقی روشی باشد که یک کودک دیگر از آن متنفر است.
در بیشتر موارد برای برنامه نویسی بازی، سه راه مختلف وجود دارد که به رایانه بگویید چه کاری انجام دهد (و اغلب ترکیبی از هر سه مورد است) :
از نظر بصری (Visual)
این یک رویکرد بسیار رایج برای مبتدیان و به طور کلی برای توسعه بازی است ( Unreal Engine 4، یکی از متداولترین فناوریهای بازی تجاری که یک رابط برنامهنویسی ویژوال به نام Blueprint دارد).
در زبانهای برنامهنویسی بصری، شما در حال کشیدن و انداختن آیتم ها در صفحه بازی هستید. سپس آنها را مانند یک فلوچارت به یکدیگر متصل میکنید.
اگر کودک شما متفکر دیداری است، این ممکن است بهترین مسیر برای او باشد.
در اینجا یک نمونه از ابزار توسعه بازی ویژوال، Construct آورده شده است :
اسکریپت های برنامه نویسی
با زبان های برنامه نویسی به رایانه می گویید که با استفاده از فایل های متنی کوچک چه کاری انجام دهد.
به جای استفاده از حالت بصری در قسمت بالا از کدها استفاده میکنید.
در اینجا نمونه ای از زبان برنامه نویسی LUA با استفاده از یک کتابخانه بازی دو بعدی به نام LÖVE آورده شده است :
این متن کوچک به رایانه میگوید که یک تصویر را با نام فایل “whale.png” بارگذاری کند و سپس آن را روی صفحه بکشد.
زبان های برنامه نویسی سنتی
در نهایت بسیاری از توسعه بازی ها در زبان های برنامه نویسی سنتی انجام می شود.
نام های رایج عبارتند از C++، Java، یس شارپ و غیره.
من باید بلافاصله شروع کنم و بگویم که توصیه نمیکنم برنامه نویسان جدید از این زبان های سنتی (یا زبان های برنامه نویسی کامپایل شده)شروع به کار کنند.
سوال بزرگی که ممکن است داشته باشید این است که تفاوت بین زبان برنامه نویسی اسکریپت نویسی و کامپایل چیست؟
بسیاری از آنها فنی هستند و خارج از محدوده این مقاله هستند، اما بیشتر آنها به پیچیدگی مربوط میشوند.
سر و کار داشتن با یک زبان کامپایل شده باعث می شود با تعدادی از چیزها سر و کار داشته باشید که در زبان های دیگر به راحتی نیازی نیست نگران آنها باشید.
مواردی مانند کامپایل کردن (عمل تبدیل متنی که می نویسید به چیزی که رایانه می تواند بفهمد)، پیوند دادن (این مورد را نمی توان به راحتی توضیح داد) و بیشتر.
شاید مهمتر از آن، هدف است.
زبانهای اسکریپت نویسی معمولاً تمرکز بیشتری روی کاری دارند که انجام میدهند و به گونهای طراحی شدهاند که کارها را برای توسعهدهنده آسانتر کنند.
به عبارت ساده تر، زبان های اسکریپت نویسی معمولاً برای یادگیری و استفاده بسیار آسان تر هستند.
اگر می خواهید درباره زبان های برنامه نویسی سنتی بیشتر بدانید، می توانید این راهنما را بخوانید.
این یک راهنمای بسیار فنی تر است. اگر فرزند شما در سنین نوجوانی است، این می تواند جای مناسبی برای شروع باشد.
البته این بدان معنا نیست که نوجوانان (و بزرگتر) برای چیزهایی که در زیر توصیه می شود خیلی مسن هستند.
در پایان اغلب میبینید که ابزارهای توسعه بازی هم سیستم بصری و هم یک زبان برنامهنویسی را ارائه میدهند، جایی که بیشتر بازی با drag & drop ایجاد میشود اما میتوان میزان ها را با استفاده از یک زبان برنامهنویسی کنترل کرد.
IDE، کتابخانه، چی؟؟؟
مجموعه ای از اصطلاحات و عبارات وجود دارد که ممکن است گیج کننده باشد.
سعی میکنیم خیلی خلاصه مفید آنها را توضیح دهیم.
زبان (Language)
این زبان برنامه نویسی مورد استفاده است.
همانطور که از انگلیسی، اسپانیایی، آلمانی و غیره برای صحبت با یکدیگر استفاده می کنیم، از زبان های مختلف برای صحبت با رایانه استفاده می کنیم.
در مثال بالا زبان برنامه نویسی Lua بود.
IDE
محیط توسعه یکپارچه (Integrated Development Environment)
این مجموعه ای از تعدادی کار است که همه در یک برنامه واحد هستند.
همه پیشنهادات دارای IDE نیستند، به این معنی که برای انجام کارهای مختلف باید از برنامه های مختلف استفاده کنید.
به طور کلی یک IDE شامل یک ویرایشگر متن، یک زبان برنامه نویسی و ابزارهای مختلف است که همه در یک برنامه هستند.
کتابخانه
به کتابخانه مانند کسی که یکسری کار را برای شما انجام می دهد، فکر کنید.
به طور کلی حتی «چیزهای ساده» نیز در واقع بخشی از زبان نیستند، مانند طراحی روی صفحه.
در عوض مردم آن موارد را می نویسند و به عنوان کتابخانه در دسترس شما قرار می دهند.
برخی مانند GameMaker یا Construct همه با هم در یک جا قرار دارند.
در یک مورد دیگر مانند Lua شما کتابخانه ای را برای استفاده از زبان برنامه نویسی انتخاب می کنید.
هر رویکرد دارای مزایا و معایبی است.
برای مثال، Gamemaker که همه چیز را با هم ترکیب میکند، شروع را آسانتر میکند.
اما با Lua، اگر کتابخانه خاصی را دوست ندارند، میتوانند به سادگی از کتابخانه دیگری استفاده کنند.
اسپرایت
اسپرایت گرافیکی است که در یک بازی استفاده می شود. برای مثال بازیکن.
یک sprite میتواند یک تصویر واحد باشد یا میتواند حاوی چندین انیمیشن باشد.
معنای دقیق Sprite از موتوری به موتور دیگر تغییر می کند، اما همیشه یک چیز قابل مشاهده در بازی است که حرکت می کند.
اگر بازی برادران سوپر ماریو را بازی کرده باشید، ماریو، لاک پشت ها، توپ های آتشین و غیره … همگی اسپرایت در نظر گرفته می شوند.
با این حال، جهان، مانند لوله ها و آسمان، به طور کلی اسپرایت در نظر گرفته نمی شود.
HTML 5
این یکی ممکن است کمی گیج کننده باشد.
HTML5 جدیدترین نسخه HTML (Hyper Text Markup Language) است که زبان وب است.
هنگامی که یک صفحه وب را در مرورگر یا تلفن خود بارگذاری می کنید، معمولاً یک سند HTML است که به آن نگاه می کنید.
بخش گیج کننده این است که HTML5 در واقع یک اصطلاح چتر برای تعدادی از فناوری ها است که با هم کار می کنند تا وب را کار کند.
اینها شامل خود HTML است که زبانی است که محتویات یک صفحه وب را توصیف می کند.
CSS که زبان دیگری است که نحوه ظاهر یک صفحه وب را توصیف می کند.
و در نهایت جاوا اسکریپت که یک زبان برنامه نویسی است که منطق را کنترل می کند.
مردم اغلب از اصطلاحات HTML، HTML5 و JavaScript به جای یکدیگر استفاده می کنند، اگرچه این از نظر فنی درست نیست.
HTML5 را می توان برای ایجاد بازی استفاده کرد و لازم نیست در یک مرورگر وب اجرا شود.
دیباگر
وقتی بازی شما به درستی اجرا نمی شود، فهمیدن دلیل آن می تواند مشکل باشد.
برخی از بستهها با چیزی به نام دیباگر ارسال میشوند که ابزاری برای کمک به شناسایی مشکلات یا باگ های بازی شما است.
این یک ویژگی تا حدی پیشرفته برای مبتدیان است.
اما در نقطه ای که به آن نیاز دارید، یک دیباگر می تواند ارزشمند باشد.
برای اطلاعات بیشتر در مورد اشکال زدایی اینجا را کلیک کنید (هشدار : مقاله بسیار تخصصی است.)
گزینه های توسعه بازی دوستانه برای کودکان
پیشنهادات واقعی برای ابزارهای توسعه برای آشنا کردن کودک خود با دنیای توسعه بازی.
این به هیچ وجه یک لیست جامع نیست!
آخرین نکته بسیار مهمی که باید به آن توجه کنید… هر یک از این گزینه ها معتبر است، واقعاً یک گزینه “بهترین” وجود ندارد.
تصمیم خود را طوری تنظیم کنید که به بهترین نحو با علایق فرزندانتان مطابقت داشته باشد.
اگر انتخاب اول شما جواب نداد، یکی دیگر را امتحان کنید.
لیست زیر ترتیب خاصی ندارد و به زودی برای هریک مقاله معرفی نوشته خواهد شد :
- Scratch
- Construct 2
- Game Maker
- Lua with LOVE
- Python with PyGame
- HTML5 with various
- Lego Mindstorm
- Honorable Mentions
لیست افتخاری
همه لیست ها باید در نقطه ای به پایان برسند، و این لیست هم از این قاعده مستثنی نیست.
اما اگر هیچ چیز در بالا برای شما جذاب نیست، حتما گزینه های زیر را بررسی کنید.
با کلیک کردن روی اسم آنها میتوانید وارد لینک آنها شوید.
توجه داشتید باشید برخی تیترها دارای دو لینک هستند.
Minecraft Modding
اگر بچههای شما بازی میکنند، احتمال زیادی وجود دارد که قبلاً با بازی Minecraft آشنا باشد.
Modding عمل تغییر یک بازی از پیش موجود است و Minecraft یک بازی بسیار محبوب برای mod است.
اصلاح یک بازی موجود اغلب می تواند یک راه عالی یا حداقل انگیزه برای یادگیری برنامه نویسی باشد.
جامعه عظیمی از افراد وجود دارد که Minecraft را اصلاح می کنند.
نکته منفی این است که با زبان برنامه نویسی جاوا انجام می شود و مطمئناً برای کودکان خردسال مناسب نیست.
اگر فرزند شما علاقه زیادی به Minecraft دارد، این می تواند رویکرد خوبی باشد.
GameSalad
GameSalad یکی دیگر از کیت های ساخت بازی بصری در رگه های Stencyl و Construct2 است که در بالا ذکر شد.
این کیت برای ساخت بازیهای حرفهای استفاده شده است، نسخه رایگان آن و همچنین نسخههای پولی برای سایر پلتفرمهای هدفمند موجود است.
من شخصا تجربه ای با GameSalad ندارم.
Codea
Codea یک اپلیکیشن آی پد برای ساخت بازی در آیپد است. در حال حاضر 10 دلار آمریکا قیمت دارد.
از زبان برنامه نویسی Lua استفاده می کند و کتابخانه خود را برای ایجاد بازی هایی که یادگیری آنها بسیار آسان است فراهم می کند.
این اپ با ابزارهای ویرایش کد، دیباگر و ابزارهایی برای اتصال به رایانه شما همراه است.
بعداً میتوانید آن را به Mac متصل کنید و در واقع یک بازی برای انتشار ایجاد کنید.
با این حال، تایپ کد روی صفحه کلید iPad بسیار ناخوشایند است، بنابراین یک صفحه کلید بلوتوث تقریباً ضروری است.
هرچند، با هزاران مثال همراه است و در واقع یک گزینه عالی برای توسعه دهندگان جوانی است که iPad دارند، به خصوص اگر این تنها چیزی است که آنها دارند.
Kodu or Project Spark
این یک بازی است که در مورد ایجاد بازی است. اساساً این یک بازی است که می توانید آن را برای انجام هر کاری تغییر دهید.
Kodu یک زبان برنامه نویسی بصری است که مایکروسافت آن را ساخته است.
Project Spark نسخه اصلاح شده Kodu است که به زودی برای کنسول XBox One منتشر می شود.
این بسیار دور از برنامه نویسی بازی نمال است، اما بسیاری از مفاهیم (و نتیجه نهایی!) بسیار شبیه به هم هستند.
Code Combat
Code combat طرح جالبی است.
این یک بازی مبتنی بر وب است که در آن شما کاراکتر خود را از طریق برنامه نویسی کنترل می کنید.
همانطور که در بازی پیشرفت می کنید، مفاهیم سخت تری را آموزش می دهد.
درواقع شما برنامه نویسی را در حین انجام دادن یک بازی یاد می گیرید.
در ابتدا برای آموزش جاوا اسکریپت ایجاد شد، اما از آن زمان به بعد زبان های دیگر نیز اضافه شده است.
به گمانم کاملا رایگان است، بنابراین اگر تلاش کنید چیزی را از دست نمی دهید.
Alice (آلیس)
Alice یک راه حل برنامه نویسی یکپارچه است که برای آموزش برنامه نویسی طراحی شده است.
با کلمات خودشان اینطوری آلیس را تعریف کرده اند :
« آلیس یک محیط برنامه نویسی سه بعدی خلاقانه است که ایجاد انیمیشن برای گفتن یک داستان، انجام یک بازی تعاملی، یا اشتراک گذاشتن یک ویدئو در وب را آسان می کند.
آلیس یک ابزار آموزشی رایگان در دسترس است که برای اولین بار دانش آموز را در معرض برنامه نویسی شی گرایی قرار میدهد.
این امکان را به دانش آموزان می دهد تا مفاهیم اساسی برنامه نویسی را در زمینه ایجاد فیلم های متحرک و بازی های ویدیویی ساده بیاموزند.
در آلیس، اشیاء سه بعدی (مانند افراد، حیوانات و وسایل نقلیه) یک دنیای مجازی را پر می کنند و دانش آموزان برنامه ای برای متحرک سازی اشیا می سازد. »
آلیس توسط دانشگاه Carnegie Mellon نگهداری می شود و کاملا رایگان است.
RPGMAKER
RPGMaker Ace محصولی شبیه به GameMaker است که اختصاصا برای ایجاد یک نوع بازی، (Role Play Games)، عموما به سبک ژاپنی است.
شعار آنها به معنای واقعی کلمه این است : «به اندازه کافی برای یک کودک ساده و به اندازه کافی برای یک توسعه دهنده قدرتمند است.»
برخی از بازیهای تجاری موجود هستند که با استفاده از RPGMaker میتوان آن را نوشت.
اگر فرزند شما واقعاً به این سبک بازی علاقه دارد، RPGMaker می تواند مقدمه ای عالی برای برنامه نویسی بازی باشد.
RPGMaker هفتاد دلار است، اگرچه اغلب در Steam به آن تخفیف میخورد.
نتیجه گیری
البته که تمام گزینه ها همین نیست ولی موارد زیادی را مطرح کردیم.
مهمترین چیزی که باید به خاطر بسپارید این است که همه کودکان متفاوت هستند.
بنابراین رویکردی که برای یک کودک موثر است ممکن است برای دیگری مناسب نباشد.
گزینه ای را انتخاب کنید که فکر می کنید بیشتر با شخصیت فرزندتان مطابقت دارد.
اما اگر هیچکدام مناسب به نظر نمی رسد، به یاد داشته باشید که ده ها گزینه دیگر نیز وجود دارد!
امیدوارم مفید بوده باشه موفق باشید.
منبع : gamefromscratch