silsin
07-10-2011, 20:41
منبع : سیستم مدیریت پایان نامه های دانشگاه پیام نور مشهد
سایت :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مقدمه
بازیرایانه اینوعی سرگرمی تعاملی است که توسط یک دستگاه الکترونیکی مجهز بهپردازشگر یا میکرو کنترلر انجام میشود. بسیاری از بازیهای رایانهای به دلیلتولید تصویر متحرک با قابلیت نمایش روی صفحه تلویزیون یا نمایشگر رایانه، بازیویدئویی نیز محسوب میشوند.تعداد مخاطبان بازیهای رایانهای در سالهای گذشتهافزایش چشم گیر داشته و این بازیها به یکی از پر هوا دار ترین سرگرمیهای موجودتبدیل شدهاند.
بازیهای رایانهای بر اساس شیوه انجام بازی و حالت گرافیکیبه گروه (ژانر)های زیادی از جمله موارد اشاره شده در فهرست زیر بخش میگردند:
اموزشیEducational
اتومبیلرانیDriving games
مسابقه اتومبیلرانیRacing
راهبردStrategy
راهبرد نوبتیTurn Based Strategy
راهبرد بیدرنگReal Time Strategy
اکشن - ماجراییAction-Adventure
مخفی کاریStealth Action
Survival Horror
اینترنتیOnline games
سکوییPlatformers
تیراندازیShooters یاShoot'em Up
تیراندازی سوم شخصThird Person Shooters
تیر اندازی اول شخصFirst-person shooters
شبیهسازیSimulation
شبیهسازی فضاییSpace simulation
ضرباهنگیRhythm games
ماجراییAdventure
مبارزهایBeat 'em up/Fighting
معماییPuzzle
نقش افرینی (ایفای نقش)Role-Playing Games (RPG)
نقش افرینی غربی، امریکایی یا کامپیوتریComputer RPG
نقش افرینی کنسولی یا ژاپنیJapanese RPG
ورزشیSports
هزارتو (لابیرینتی)Maze games
اهمیت بازی های رایانهای:
تاثیر گذاری: تأثیر گذاری بالای این گونه بازی روی مخاطب، این بازیها را به یکابزار با استعداد بسیار بالا برای اموزش، اگهی، ترویج مذاهب، سو استفاده سیاسی،شستشوی مغزی و... تبدیل کردهاست. بسیاری از دولتها بازیهای رایانهای را به دلیلاحتمال تحریک کودکان و نوجوانان و ترویج خشونت محدود کردهاند.
سود اوری: امروزه صنعت تولید بازیهای رایانهای به یک عرصه سود اور تبدیلشدهاست و شرکتهای بزرگ تولید کننده این گونه بازیها هر سال سود هنگفتی به دستمیاوردند، به گونهای که در سال ۲۰۰۴میزان سود خالص سالانه به دست امده از صنعتبازیهای رایانهای به مرز ۱۰میلیارد دلار رسید و سود حاصل سالانه به دست امده ازهالیوود (نه و نیم میلیارد دلار) را پشت سر گذاشت.
سر گرم کننده بودن: بازیهای رایانهای بر خلاف بیشتر سر گرمیهای دیگر، تعاملیبوده و از این رو جذاب تر هستند.
اعتیاد: عدهای از محققین بازیهای رایانهای را اعتیاد اور و خطرناک قلمدادمیکنند. هر چند این مساله ثابت نشده است؛ اما شواهد موجود نشان میدهد تعدادی ازعلاقمندان به بازیهای رایانهای به طرز غیر طبیعی به این سرگرمی وابسته شده و اززندگی عادی خود بازی میمانند.
گروهیاز مردم، انجام یک بازی کامپیوتری را جزء لذت بخش ترین تفریحان خود می دانند حال انکه گروهی دیگر(که تعداد ان ها به مراتب کمتر از گروه اول است) خلق و طراحی یک بازیکامپیوتری را سرگرم کننده و جالب تر می دانند. مطمئنا شما نیز که در حال مطالعه اینمتن هستید جزء همان گروه محدود و خاص هستید که تصور تبدیل رویاهایتان به واقعیت (هرچند از نوع مجازی) شما را بیش از هر چیز به وجد می اورد.
یک بازی کامپیوتری قبلاز هر چیز در ذهن سازندگانش شکل می گیرد و از این اولین جرقه تا عرضه محصول نهایی،راهی بسیار طولانی اما فوق العاده جذاب طی می شود که به ان "ساخت بازی" می گویند.ساخت یک بازی کامپیوتری بیش از هر چیز به خلاقیت، قدرت تصور، هوش و پشتکار احتیاجدارد. به خاطر داشته باشید که سالیانه هزاران عنوان بازی کامپیوتری تولید می شوندکه از میان ان ها تنها تعداد محدودی (کمتر از مجموع انگشتان دو دست) به عنوان بازیهای موفق شناخته می شوند. مسلما اولین وظیفه یک طراح بازی، بررسی بازی های پرفروش وعلل موفقیت ان ها و در عین حال بررسی علل شکست و ناکامی دیگر بازی ساز هاست و درسگرفتن از این نقاط ضعف و قوت می تواند ریسک شکست را تا حد چشمگیری کاهش دهد.
درادامه به بررسی اصول اولیه طراحی بازی های کامپیوتری خواهیم پرداخت. اصولی که درنظر گرفتن تمامی ان ها می تواند احتمال موفقیت شما را افزایش دهد و در عین حال تخطیاز هر یک از ان ها می تواند بازی را با شکست کامل مواجه کند.
سرگرم کننده بودن
اولین و مهم ترین قانون درطراحی یک بازی کامپیوتری، توجه به جنبه "سرگرم کننده بودن" ان چیزی است که خلق میکنید چه مشغول ساخت یک بازی کوچک باشید که انجام ان تنها چند دقیقه وقت کاربررامی گیرد یا بازی با عظمتWorld Warcraft را طراحی می کنید که زمان لازم برای اتمامان بیش از یک هزار ساعت است، به خاطر داشته باشید که هدف نهایی شما تنها یک چیزاست: "سرگرم کردن مخاطب"
فریب ظاهر ساده این عبارت را نخورید. سرگرمی برای هرفرد تعریف متفاوتی دارد. خرید از فروشگاه ها، رانندگی در جاده، گوش کردن به موسیقی،تماشای فیلم، مطالعه کتاب و ... همه و همه تنها بخشی از سرگرمی های متداول مردمجهان هستند که هر یک از نمایی کلی مشابه به نظر می رسند. تماشای فیلم می تواندسرگرمی میلیون ها نفر باشد اما تفاوت نوع فیلم هایی که هر کس تماشا می کند، سرگرمیاو را از دیگران متمایز می کند. ان چه مسلم است، مخاطبان بازی ، حداقل در یکمورد توافق نظر دارند و ان هم استفاده از بازی کامپیوتری به عنوان یک سرگرمیاست. حال این بازی کامپیوتری باید توقع ان ها را در حد معمول براورده کند تا ازشکست رهایی یابد. مطمئنا به عنوان طراح یک بازی کامپیوتری نمی توان رضایت "تماممخاطبان" را به دست اورد، چرا که سلیقه ها بسیار متفاوت است اما حداقل کاری که میتوان انجام داد، این است که با انجام برخی کارها، سعی کرد توقع درصد بیشتریاز مخاطبان را براورده کرد.شناخت مخاطبان، مهم ترین کار است، این کار چندان هم مشکل نیست، به خصوص زمانی که قصد انجام نواوری در سبک ها رانداشته باشید و قرار باشد بر پایه سبک های موجود، بازی طراحی شود. برایشناخت مخاطبان باید ابتدا ان ها را پیدا کرد، بسیاری از بازی ها، سایت هایطرفداران خاص خود را در اینترنت دارند، در این سایت ها می توان نظرات مخاطبان هربازی را مشاهده کرد که چه چیز این بازی، ان ها را به خود جلب کرده است، کدامنواوری بازی، ان ها را به وجد اورده است و ... ،از همه این ها می توانیاری گرفت.
در این میان تنها به یک نکته باید توجه داشت : به نظرهایی که بیش ازحد امیخته با احساسات (چه مثبت و چه منفی) هستند، اهمیت چندانی ندهید. نگرش مغرضانهبه یک بازی می تواند فکرتان را درباره ان چه قرار است انجام دهید، تحت تاثیر قراردهد، به خاطر داشته باشید که قرار است بازی ای طراحی کنید که "اکثریت" از ان لذتببرند و نه فقط یک یا دو نفر.
به منظور نگاهى مختصر به وضعیت بازى هاى ویدئویى ورایانه اى در سطح بین الملل، مواردى گزیده ودر زیر اورده ایم:
- در ۷۵درصد از خانه هاى امریکا سیستم بازى هاى کامپیوترى وجوددارد.
- عمده استفاده کنندگان از بازیهاى رایانه اى در امریکا بین ۷تا ۳۴سال سن داشته و اغلب مرد هستند.
- در حال حاضر اغلب بازى کنان بازى هاىرایانه اى را پسران ۱۵-۲۴سال سن تشکیل مى دهند.
- یک جوان ۳۰ساله چینى که۶سال قبل شرکت بازى هاى ان لاین راه اندازى کرد هم اکنون دومین مرد ثروتمند کشورچین با یک میلیارد دلار دارایى به شمار مى رود.
- فروش بازى هاى ویدیویى درفصل اول اقتصادى سال ۲۰۰۵تقریباً ۲۳در صد بیش از سال قبل بوده و این افزایش بهبیش از ۲/۲میلیارد دلار رسیده است. که این افزایش به دلیل استقبال چشمگیر مردم ازدستگاه هاى بازى ویدئویى قابل حمل است.
- فروش دستگاه هاى بازى در سال ۲۰۰۵به بیشتر از یک میلیارد دلار رسیده است.
- اولین دوره مسابقات جهانى بازىهاى ویدیویى و رایانه اى در تابستان سال ۲۰۰۲در ژاپن برگزار شد جایزه اول ان صدهزار دلار بود و امتیاز پخش تلویزیونى ان نیز به فروش رسید هر کشورى با امکاناتکافى مى تواند متقاضى میزبانى باشد.
- بازى میست در سال ۱۹۹۳بیش از ۱۰میلیون نسخه و سرى بازى هاى سیمز نیز حدود هشت میلیون نسخه فروش داشته است.
- در سال ۲۰۰۳ارزان ترین محصولى که از سوى شرکتGame Cube عرض شد، مبلغ ۹۹دلار بوده است.
فصل اول-طراحی بازی
بخش اول :ساختار اسناد طراحی
مقدمه:هدف اسناد طراحی، بیان دید بازی، شرحمحتویات و اماده کردن یک طرح برای اجرا می باشد. اسناد طراحی به طور کلی یک کتابراهنما برای تولید کننده می باشد تا با کمک ان به هدف برسد، در این اسناد از ایدههای طراحی قهرمان تا انواع تکنیک ها و مهارت های ان برای هنرمندان و برنامه نویساننوشته شده است امّا متاسفانه این اسناد در بیشتر اوقات نادیده گرفته می شود و یا دررسیدن به اهداف این سند کوتاهی می شود که این کوتاهی می تواند توسط تولیدکننده،طراح بازی، برنامه نویس یا هنرمند انجام پذیرد.
هدف اسناد:هدف اسناد طراحی، ارتباط دیدن درجزئیات کافی با ابزارهای اجرایی است. این اسناد باعث حذف اشتباهات و ناشی گریطراحان، برنامه نویسان و هنرمندان در حین تولید و طراحی در اینده می شود و انهادیگر نخواهند پرسید که به عنوان مثال چرا این کار باید انجام شود؟ در حقیقت اسنادطراحی باعث ماندن برنامه نویسان یا دیگر اعضا در حیطه یک جعبه می شود.
اسنادطراحی چیزهای متفاوتی برای کاربران متفاوت یک تیم دارد، برای یک تولید کننده ایناسناد بسیار با اهمیت و همراه با نکات مهم برای ادامه کار می باشد. این اسناد یککتاب راهنما برای راهنمایی کردن و ارائه تمامی نکات لازم می باشد،و اگر نتواندنکات لازم را به طراحان گوش زد کند یا انرا برای اعضای تیم بخواند در اینده برایانها بی ارزش می شود.
در کل اسناد طراحی مجموعه ای کامل از وظایف، هنرها و کدها می باشد. اسناد طراحی تلاش یک تیم میباشد، و تمام تیم بزرگ بازی کنندگان بازیسهم بزرگی از طراحی را دارند.
استفاده از راهنما: توافق بر روی یک راهنمای ویژهمنفعت و سود بزرگی برای تمام پروژه می باشد، این کار باعث حذف اغراق در پروژه می شود و پروژه را واضح تر می کند. در زیر به برخی مزایای راهنما اشاره شده است:
روشنی و اطمینان: راهنما باعث واضح تر شدن و بهتر شدن اطمینانبه پروژه می شود. این مساله باعث ساخته شدن اسنادی است که خیلی راحت تر خوانده شودو همچنین اسنادی که راحت تر بتوان ان را نوشت،نویسنده اسناد می داند که تیم چهانتظاری از او دارد.
راهنما از فرایندهای معین یا روندی که در حال تعقیب توسعهاسناد است مراقبت می کند.
اماده کردن اسان جداول و طرح های ازمایشی: اسناد طراحییک سری راهنماهای ویژه ای را دنبال می کنند که خیلی راحت وظایف را به جداول ترجمهمی کند. لیست های اسناد مربوط به هنر و صدا نیازمند به هنرمند و اهنگساز است. وقتیداستان در قسمتی از مرحله قطع می شود طراح مرحله باید لیستی از اشیای مورد نظررا ثبت و توضیحات ان را بنویسد. تشخیص سطحهای برنامه و طرز عمل برنامهنویس، تشخیص عناصر بازی، ویژگی ها و تضمین کیفیت عملکرد تیم باید در هنگام اجرای یکطرح ازمایشی افزوده گردد.
راهنما برای ایده بازی: یک سند ایده بازی(game-concept) بیان کننده هسته ایده بازی می باشد. ایده باید بسیار مختصر و کوتاه باشد و جریانی ازایده ها را جاری کند.
به طور معمول تمام ایده به کارگردان محصول در حال توسعه(یا مدیر اجرایی) داده می شود،کارگردان می تواند تصمیم بگیرد که ایا ایده شایستگیکافی را دارد یا ندارد و سپس منابع کافی برای توسعه بازی را بدهد و ممکناست از ایده خوشش بیاید امّا درخواست تغییراتی را در ان بدهد.
یک ایده بازی بایدویژگی های زیر را داشته باشد.
• مقدمه • پس زمینه(اختیاری)
• تشریح و توصیفات • ویژگی های کلیدی
• سبک •سکو(Platform)
• طرح هنری ( اختیاری )
اکنون هر کدام از این قسمتها را که در حقیقت ساختار یک ایده را شکل می دهد توضیح می دهیم:
مقدمه:مقدمه ایده بازی محتوی چیزهایی است که شاید از مهمترینجملات کل ایده باشد، این جملات در حقیقت می تواند ضامن فروش سند به خریدار باشد.مقدمهدربردارنده عنوان، سبک، جهت، تنظیمات، edge، platformو دیگر چیزهای معنی دار، طوریکه خواننده حتی برای رسیدن به جمله بعد صبر نکند و تمام کلمات را با اشتیاق و دقتبخواند.Edge چیزی است که برای مجموعه بازی و صرف نظر از دیگر بازی ها در سبکشانتعریف می شود به عنوان نمونه:
Man or Machine یک بازی تیرانداز اوّل شخص برایPC است که از موتور Quake II استفاده می کند برای فرو بردن بازیکن به داستان یک ادماهنی فضایی-دریایی که در حال یک حماسه رزمی در میان ستارگان و جنگی مابین 37 کشوراست.
مقدمه باید گاهی اوقات با چندین جمله به منظور پذیرفتن قطع گردد، طولانی شدن بیش از حد مقدمه ایده ابکی بودن دید ایده پرداز را نشان میدهد.
پس زمینه (اختیاری): پس زمینه ایده بازی جایی است که باید رویدیگر محصول، پروژه ها، مجوزها یا دیگر مشخصه هایی که به ان اشاره خواهیم کرد را بسطبدهد، این قسمت اختیاری است. قسمت پس زمینه به طور طبیعی چیزی جدا ازمقدمه ایده بازی می باشد و خواننده می تواند از خواندن ان صرف نظر کند و سراغ قسمتهای بعدی برود، اما قسمت پس زمینه برای مشخصه های مجوز بسیار مهم است و نفوذ زیادیرا برای رها شدن عنوان خصوصاً در برخی سبک ها را دارد.
تشریح و توصیفات: در چند پاراگراف یا صفحه ،تشریح بازی به خواننده واگذار می شود. از دید دوم شخص استفاده کنید. داستان را طوریبسازید که به شکل یک تجربه به خواننده القا گردد و این شامل تمام عناصرکلیدی است که باید برای تعریف هسته اصلی روند بازی(Game Play) به کار برد وبه بیان بهتر این همان چیزی است که کاربر در حین بازی می بیند و همان کاری است کهکاربر در حین بازی انجام می دهد، یعنی خواننده همان شخصیت بازی شود. سطح جزئیات مرحلهنباید با یکGUI در تعامل باشد برای نمونه اینطور نوشته شود: (تاکتیکهای رادار را بررسی کنید و دو تا از دیوهای تربیت شده را که امده اند بردارید) به جای ان که بگویید: بر روی دکمه رادار تاکتیکی کلیک کنید تا پنجرهpops up ظاهر شود و سپس دو تا از دیوها را بردارید.
ویژگی های کلیدی: قسمت ویژگی هایکلیدی ایده بازی ،یک لیست از ایتم های نقاط، اصطلاحاً (گلوله) است که می تواندصرف نظر از دیگر اهداف برای بازی تنظیم شود، به بیان بهتر یک خلاصه از ویژگی هایی که در تشریح و توصیفات به ان اشارهشد را داشته باشد. ایننقاط می توانند قبل از جعبه بازی ظاهر شوندکه دربردارنده برخی جزئیات پشتیبانی است.
تصمیم بر این که در لیست ویژگی های بازی چه چیزهایی باید باشد یک کاربسیار حساس و بر اساس توازن است، لیستی که فقط یک یا دو ویژگی کلیدی در ان باشدیک لیست بد است. اگر هر چیزی را پیچیده تر از یک پازل در لیست قرار دهید ولیستی بیشتر از یک صفحه را ارائه دهید این مساله اشاره به این می کند که این پروژهیک کار بسیار دشوار و سخت است و کارگردانی که می خواهد ان ایده را به بازی تبدیلکند از پیچیدگی ها و دشواریهایی که ویژگی های ان دارد، می ترسد! لیستی که بسیار کوچکباشد، نشان از یک طرح کوچک دارد و همچنین لیستی که بسیار زیاد و ابکی باشد ویک پروژه بسیار بزرگ و قدرتمند را نشان دهد هر دو غلط است. نیازی به یک لیست ویژگی های معلوم ندارید همچون (گرافیک بزرگ،موسیقی موثر) . گرافیک بزرگ، موسیقی موثر و... اهداف رسیدنی در هر پروژه بازی میباشند.
سبک: در چند جمله کوتاه، تعیین سبک بازی و سلیقه بازی باید مشخص شود، برای این کار می توان از یک دسته بندی سبک های بازی در کتاب ها یا مجلات کمک گرفت ، نمونه هایی در مقدمه ذکر شده است.
Platforms: در چند جمله کوتاه، لیستی ازPlatform های هدف مشخص شود. اگر فکر می کنید ایده بازی در چندینPlatform قابل اجرا است بایدPlatform اوّلیه یا برتر را مشخص کرد و اگر ایده بازی از چندکاربره بودن تحت اینترنت پشتیبانی می کند و... تمام این مسائل باید در اینقسمت قرار بگیرد.
طرح هنری (اختیاری): هنر به فروش ایده بازی کمکمی کند و خواننده را در یک مسیر درست قرار می دهد. استفاده از هنر، ایده را به صورتجامع و بی همتا در می اورد.
اشتباهات عمومی:در زیر به برخی اشتباهات عمومی و راه حل ان ها اشاره کرده ایم.
• درمورد منابع، اسناد سوالات گیج کننده ای را همراه خود دارد، باید سعی کنید ایدهتان را با مشخصه ای که بتوان دوباره از ان کمک گرفت بسازید. محدودیت اصلی ایده ها این است که باید ان را برای یک زمان محدود و بودجه معقول نوشت وبتواند با یک تکنولوژی محدود تجربی کار کند. نمی توان از کمپانی انتظار داشت یک چرخش ناگهانی به سمت یک هوش مصنوعی جدید وپیشرفته بکند یا از یک موتوربروز و بسیار پیشرفته سه بعدی استفاده کند.
• اسناد گنجایش و حجم ندارند و نبایددر توضیحات مطالب کش دار نوشت.
• بازی یک تفریح نیست، یک تمرینکاربردی است که توسط ان کاربر به تمام خواسته هایش (نظیر: تیراندازی، فرمان، دویدن،خریدن، ساختن و دیدن) می رسد و خیالبافی می کند که چگونه بازیکن هرکدام از انها راانجام می دهد.
بخش سوم-داستان نویسی برای ساخت بازی
هنگامی که صنعت بازی سازی جوان بود داستان نویسی فقط مخصوص بازی های با سبک ماجرایی Adventureبود. سپس بازی های با سبک نقش افرینی role-playing gamesوارد صحنه شد و عناصر بسیار قوی وارد داستان های بازی شدند. اکنون داستان نویسی وارد تمامی سبک های بازی از جمله strategy actionو حتی sims(بازی های شهر سازی) شده است. یادگیری برخی مهارت های اصولی در زمینه چگونگی بیان یک داستان بسیار مهم است که به برخی از ان ها اشاره می کنیم.
طرح (شامل سه ساختار اصلی) :ساختار پایه باید شامل یک طرح خوب باشد که پیدا کردن این طرح مفید احتمالا زمان زیادی را می گیرد. یک داستان باید سه ساختار داشته باشد: ابتدا ، میانه و انتها.
ابتدا: می توان داستان بازی را با قطعه کوچکی از روند بازی(Game Play)شروع کرد بطوری که بازیکن چیز زیادی را نمی داند اما باید کار کوچکی انجام دهد . در کل روند بازی برای یک داستان نویس جوان که تاکنون فقط داستان می نوشته کار سختی است چرا که باید با این طرز تفکر داستان را بنویسد که خواننده باید بدون خواندن توضیحات او از تمامی داستان مطلع شود. در حقیقت باید یاد گرفت که چگونه داستان را شروع کرد و این کار فقط با تمرین و کسب تجربه بدست می اید .
میانه: هر چه که داستان جلوتر می رود بازیکن باید اهداف بزرگ تری داشته باشد و موانع بزگ تری جلوی او گذاشته شود.در بهترین داستان ها معمولا کار قهرمان ، چیره شدن بر کشمکش های درونی است و تنها پس از این کار است که می تواند به اهداف خود دست یابد. در حقیقت یک بازی ساز پیش از این که بخواهد صدها مانع در بازی بگذارد باید کاستی هایی را هم در بازیکن قرار بدهد، همه چیز نباید وقف مراد بازیکن باشد، او باید از کاستی هایی که در او وجود دارد بترسد و ترس از این کاستی ها نگذارد که او از موانع بگذرد و این خودش بیشترین هیجان را در بازیکن وارد می کند ، این در حالتی است که اگر او تلاش کند مسلما می تواند از این کاستی ها عبور کند.
انتها:پایان داستان وقتی است که قهرمان یا شخصیت اصلی داستان همه مشکلات و موانع را حل می کند.قسمت سوم بازی باید مانند پایان یک قطعه موسیقی باشد، پس از این که قهرمان داستان توانست به تمام مشکلات درونی و موانع غلبه کرد اماده می شود تا با مشکل خارجی داستان مواجه شود که معمولا این مشکل خارجی در شکل یک شخصیت اصلی منفی ظاهر می شود.در هر داستانی باید یک نوع کشمکش وجود داشته باشد باید یک شخص یا چیزی نگذارد قهرمان داستان با موفقیت به خواسته اش برسد و قهرمان با یک مبارزه بزرگ سد اصلی اهدافش را از جلوی راهش برداشته و به اهدافش می رسد.
محیط: یک داستان نویس احتیاجی به ازمایش طراحان هنری ندارد چرا که ان ها کار خود را خوب بلدند، ان ها هر روز تصاویر فوق العاده ای تولید می کنند و مسلما پیشرفت سخت افزار ها در کار ان ها تاثیر زیادی دارد.یک داستان نویس نباید فقط محیط بازی را معرفی کند بلکه باید نوع بازی را معرفی کند. به عنوان مثال بگوید که این بازی یک بازی تخیلی می باشد که می توان از عناصر جادویی در طراحی بازی استفاده کرد و یا یک بازی افسانه ای اما علمی باشد که به عنوان مثال می توان یک سیاره دور باقوانین غیر عادی طراحی کرد.
توسعه شخصیت های بازی:شخصیت های بازی،بیشتر، قسمت فریببنده بازی هستند. رویدادهای و اتفاقات انها برای مردم کاملاً جذاب وجالب توجه است. داستان های بسیاری تاکنون گفته شده اما بیشتر مردم شخصیت های اصلیداستان را بیشتر از سایر قسمت ها دوست دارند چرا که این شخصیت ها محرک داستانهستند و داستان بدون شخصیت همچون صفحه اخبار حوادث یک روزنامه می ماند.
بسیاریاز طراحان نمی خواهند که یک شخصیت را به عنوان شخصیت اصلی بازی طراحی کنند چرا کهباور دارند بازی باز باید همان شخصیت اصلی بازی باشد، امّا این کار باعثقدرتمند شدن بازی شما نخواهد شد. بازی های موفق دارای قهرمان هایی با شخصیتهای معین بودند. و این طور به نظر می اید که به عنوان مثال بازی بازها بسیار خشنودبودند که پاهایشان را در کفش های شخصیت هایی همچونDuke Nukem ، Lara Croft ، Max Payne ،James Bond و... می گذارند.پس باید تلاش کردتا برای داستان بازی شخصیت هایی ساخته شود که تا مدت ها در خاطر بازی بازباقی بماند.یکی از اصلی ترین ارکان شخصیت سازی تشدید تعقیب در پیداکردن مابینکشمکش و ارزو است و ان شخص که بیننده است بتواند مابین این دو انتخاب ایده الشرا برگزیند. قهرمان به کسب تجربه در جدال با کشمکش ها و برای رسیدن به ایده الهایشنیاز دارد، در چنین راهی است که می توان شخصیت هایی بسیار حرفه ای و محبوبساخت.
رشد شخصیت:در ادبیات سنتی ارزشیک داستان در رشد شخصیت ان شناخته می شد. چه تغییراتی قهرمان را با راه بدبختی وبیچارگی و سقوط شکل می دهد؟ چه می کند تا به تغییر زندگینزدیک شود؟ چه می کند که یکدفعه او می چرخد و به سمت یک شخص متفاوت حرکت میکند؟ هرچند در برخی داستان ها قهرمان تغییری در همه حال نمی کندو خمش وقایع بهخواست او انجام می شود. در بازی های امروز شخصیت ها بسیارکم رشد می کنند. امارهای انجام شده در بازی ها این مطلب دیده می شود که رشد شخصیتفقط در چیزهای بسیار ساده و ابتدایی نظیر افزایش مهارت و... است، زیراتوسعه شخصیت در یک رسانه خطی همچون فیلم مردم را در حالتی پر دغدغه و پریشانی میگذارد و صادقانه نمایش می دهد که چه کسی صادقانه برای ساخته شدن انتخاب شده است،امّا در بازی نمی توان با شخصیتی که زیر دست کاربر است چنین کاری کرد چون باعث میشود که در ساختن یک شخصیت تعاملی با مشکل مواجه شویم.
البته ذکر این نکتهضروری است که ممکن است برخی ها رشد شخصیتی را که در اینجا گفته شد با رشد شخصیت دربازی های با سبکRPG اشتباه بگیرند. رشد شخصیت در بازی های با این سبک در جهت تعاملی و مطابق با سلیقه کاربر برای بهتر طی کردن روند بازی صورت می گیرد، در صورتیکه رشد شخصیتی که در اینجا از ان صحبت کردیم در داستان اتفاق می افتد و باعث میشود که شخصیت در طی داستان به کلی تغییر کند و اخلاق و روحیاتش عوض شود که این با روح داستان نویسی برای بازی که باید شخصیتی کاملاً تعاملی و در زیر دست کاربر ساختنمی گنجد.
تعاملی:درخواست تعاملی کردن بازی با استفاده از داستانیکی از چالش برانگیز ترین قسمت های کار میان طراحان بازی و داستان نویسان است. دررسانه های سنتی مولف اقدام به کنترل داستان می کند و بدون هیچ مقاومتی جذب انتخابیمی شود که او ساخته است ولی در بازی ها یک کشمکش مستقیم میان ازادی که باید بهکاربر بدهیم و خطی بودن ساختار داستان وجود دارد. حل این مشکل در این است کهمحیط هایی ساخته شود که کاربر در ان ازادی داشته باشد و سپس بصورت سلسله مراتبی اینمحیط ها با هم دیگر در یک سری خطی قرار بگیرند. به عنوان مثال در بازی های باسبکRPG همچون یک سری محیط های جغرافیایی یا ماموریت ها، در بازی های با سبکAdventure این توانایی به کاربر داده می شود که بیشتر از یک معما برای کار در یکزمان بگیرد.
این ایده هم وجود دارد که کاربر با چالش های محدود مواجه شود و بطریقی در یکداستان بزرگ گنجانده شود. در این لحظه داستان نویس شروع به یک سریدستورالعمل های ماموریت های جدید می کند و شاید از میان صحنه های قطع کننده بازی کهاصطلاحاً به انcutscene می گویند، نتیجه اعمال مرحله را نشان دهد و کاربر را بهسمت چالش بعدی به جلو براند. به عنوان مثال: یک محیط را تصور کنید که در وقتغروب کاربر باید خود را به یک مسافرخانه برساند. امّا او باید از میان یک رودخانهبگذرد. او می تواند به خوبی سرتاسر رودخانه را شنا کند. یا بر روی درختان تاب بخوردو یا اینکه غول نگهبان پل را شکست دهد و از روی پل رد شود. امّا چیز مهم این است کهاو پیروز شود و تا پایان روز زنده بماند. کاربر به طور یقین از کل جزئیات داستانمطلع می شود، امّا ریسمان اصلی داستان در دستان مولف است. مسلماً کاربر می گوید:این قوه ابتکار او بوده تا ما با یکی از این رویدادها خود را به مهمانخانه برسانیم،امّا غول های جدید را برای فردا اماده کرده است و قهرمان از بازگشتش بهقلعه خوشحال خواهد شد.
این تکنیک در انواع سبک های بازی قابل اجرا است. با یکداستان خطی و یک محیط باز ، کاربر با راه های متفاوتی برای طی کردن بازی مواجه استدر عین حال مولف هم در حال کنترل کردن سیر خط داستان در بازی است و گذاشتنچند راه در یک بازی مزایای فراوان دیگری هم دارد که در مبحث طراحی مرحله به قدرکافی به ان اشاره شده است.
ابزارهای تجارت: این روزها طراحی بازیخیلی به نمایشنامه نویسی شباهت دارد و باید در ابزارهای ساخت فیلم حرفه ایباشیم. این مساله وقتی بیشتر خودش را نشان می دهد که موظف به ساختن برش صحنه هاcutscene و توضیحات متنی وقایع در بازی باشیم یا هرچیزی که برای دیالوگ هااستفاده می کنیم.
گذاشتن کلمات در دهان بازیگران و توصیف رفتارها برای حرکت او، نباید شبیه به یک رمان باشد. به عنوان مثال یک داستان نویس نباید در داستان بازی به توصیف حالات و روحیات درونی شخصیت ها بپردازد بلکه باید این توصیفات درونی را با نمایششخصیت در صحنه نشان دهد و برای این کار باید از دیالوگ ها و رفتارهای شخصیت در حینبازی یا فیلم، این حالات روحی نمایش داده شود، فراموش نکنیم که داریم برای یکبازی داستان می نویسیم و کاربر به هیچ عنوان نوشته ها را نمی خواند بلکه نوشتهها را می بینید پس باید همه چیز بر اساس دیدن حالات و رفتارها باشد نه خواندنو نمی توان در داستان نوشت فلان شخصیت یک فرد پرخاشگر است بلکه بایدنوشت فلان شخصیت با حالت پرخاشگری فریادی زد و با خشم به سمت شخصیت مقابل دوید.
برش صحنه:برش صحنه قطعه فیلمهای بسیار کوتاهی هستند که در حین، ابتدا و انتهای بازی به نمایش در می ایند،دران همچونیک طراح بازی باید هم یک نمایشنامه نویس بود و هم کارگردان و عکاس در تمامداستان. داستان همراه خودش مسئولیت می اورد، هر کس که بازی را بازی می کند ازدیدن تلویزیون و فیلم به سمت بازی رشد کرده است و هر کاربری برای خودش یک محککیفیتی پیرامون دیالوگ ها، محل دوربین، ایفای نقش ها و رفتارها دارد.
هر صحنه ای باید یک هدف ویژه داشته باشد. ایا این یکتوسعه شخصیت است، معرفی یک محیط جدید است، پیشرفت نقشه است یا تمام شدن اهداف مرحلهو رفتن به قسمت های بعدی است. طراحی صحنه در همکاری با حرفه ای ها است (معمولاًنویسنده ها و طراحان)، کسانی باید به شما برای رسیدن به اهدافتان کمک کنند کهبیشترین صرفه جویی را بکنند، این دارای دو مزیت می باشد، اول کاربر تنها از زحماتطراحان در پیشبرد داستان قدردانی نمی کند و دوم این است که به بودجه کار کمکبسیاری می شود و از صحنه های بسیار زحمت اور و پیچیده که هزینه های زیادی را بر جایمی گذارد و از همه بدتراز خستگی زیادی که به جای می گذارد جلوگیریمی شود.
توضیحات رویدادها:توضیحات رویدادها، سکانسهای کوتاهی در داخل مراحل است که معمولاً رهایی از برخی چیزهایی است که کاربران ها را انجام می دهد (اگر چه می تواند به همان اندازه بر پایه زمان باشد چهاین یک دیالوگ کوچک باشد یا یک کار بسیار کوچک. دو بازیMedal of Honor وHalo که با سبک جنگی هستندنمونه های بسیار خوبی در ارائه توضیحات رویدادها می باشند.
دیالوگ:یک صدای دیالوگ خوبحرفی است که منظم گفته شود. در دنیای واقعی ما گاهاً در حین صحبت کردن اشتباه میکنیم یا اصطلاحاً تپق می زنیم و سعی می کنیم تا گفته های اشتباهمان را تصحیح کنیم، امّا در بازی ها و فیلم ها، دیالوگ ها بسیار بهتر از دنیای واقعی هستند. نبایدوقت کاربر را با ارائه جملات اضافه هدر داد. هر خط از دیالوگی که می نویسیم بایددوبرابر وظیفه اش کار کند که این کار واقعاً به تجربه و تخصص نیاز دارد زیرا کاربربیشتر دوست دارد بازی کند تا مثل یک فیلم دیالوگ ها را بشنود.
در اینجا چندنکته در دیالوگ نویسی را قرار می دهم و پیشنهاد می کنم بازی های روز و موفق دنیا راگرفته و به دیالوگ های ان دقت کنید.
• هرگز چیزی را که کاربر می داند بادیالوگ تکرار نکنیم زیرا با این کار وقت او را هدر داده ایم.
• در اطلاع دادنخیلی دقت کنیم، اطلاع دادن به کاربر هرگز نباید طوری باشد که کاربر از طریق حرف زدن یک کاربر دیگر اطلاعاتی را پیرامون یک شخصیت دیگر که خودش می داند و به اناگاهی دارد را دوباره بشنود. به عنوان مثال هیچ چیز همچون این یک خط دیالوگ نمیتواند مبتدی بودن نویسنده را به کاربر ثابت کند: همانطور که می دانی، طلسم لرد ولدران وقتی می تواند کار کند که تو این سه جادو را سر جایشان قرار بدهی.
• در نوشتن دیالوگ ها سعی کنیم جملات را به صورت عامیانه بیان کنیم یعنی به همانصورتی که خودمان و همه برای مکالمه استفاده می کنند، به عنوان مثال از دیگراننمی پرسید: به کجا می روید؟ بلکه می پرسید: کجا می روی؟
پایان قهرمان:پایان بازی باید با قهرمان باشد. به طور یقین ابتدای داستان با امدن روند بازی می باشد امّا به طور قطع همواره می توانیم یک روند بازی بهتر را برای اطراف داستانبسازیم، هر سبک محدودیت های خاص خودش را دارد که باید به انها توجه کنیم .در کل در تمامی جریاناتبازی و به خصوص در ماموریت ها یا انتهای مراحل باید دو پایان نوشت پایان اوّلمربوط به پیروزی بازیکن و رسیدن او به هدفش است و پایان دوم مربوط به شکست است.البته در برخی بازی ها با نوشتن جمله بازی دوباره و تصاویری از جسد بازیکن یاحالتی که نمایش دهنده شکست او است را نمایش می دهند و مسلماً خود کاربر هم می فهمدکه در پایان شخصیت به اهدافش نرسیده و شکست خورده امّا در پایان اوّل که مربوطبه پیروزی است هم می توان برش صحنه از پایان موفقیت امیز و نتایج کار قهرمان رانشان داد یا با کلمه مرحله با موفقیت به اتمام رسید کار را تمام کرد امّا مسلماًنمایش برش صحنه تاثیر زیادی بر زیبایی و درک بیشتر داستان دارد.
— فصل دوم- توسعه بازی
بخش اول
برای شروع ساخت بازی باید از کجا شروع کرد؟
ازکدام دسته اید؟
در صنعت توسعه بازی اگر بخواهیم بهصورت کاملاً کلی بازی سازان را تقسیم کنیم انها به دو دسته سازندگان ابزارهای موردنیاز ساخت بازی (همچون سازندگان موتورهای بازی و...) و همچنین استفاده کنندگان ازاین ابزارها برای ساخت بازی تقسیم می شوند. به دسته اوّل توسعه دهنده ابزارهای ساختبازی و به دسته دوّم توسعه دهنده بازی می گویند. در حال حاضر بازی سازان کشور مافقط از دسته دوم هستند و هنوز دسته اوّل به صورت کامل ایجاد نشده است.دسته دوم یعنی استفاده کنندگان ازابزارها هم خود به دو دسته هنرمندان و برنامه نویسان تقسیم می شوند. مسلماً از ناماین دو دسته مشخص می شود که چه کارهایی انجام می دهند. برنامه نویس ها بیشتر به کار کدنویسی و اسکریپت نویسی در محیطهای متنی می پردازند و هنرمندان هم به کارهایی نظیرطراحی دو بعدی، مدل سازی سه بعدی (به عنوان مثال یا کمک برخی نرم افزارها همچون 3D Studio Maxطرح های دو بعدی را به یک مدل سه بعدی در فضای سه بعدی تبدیل می کنند) و سایر کارها نظیر طراحی مراحل و... مشغولند. ابتدا از شروع کار مدل ساز ها شروع می کنیم و سپس به شروع کار برنامهنویس ها خواهیم رسید.
شروع کار مدل ساز ها
یکی از راه های خوب برای مدلساز شدن استفاده از تصاویر برخی اشیا بهعنوان مرجع و کمک از انها برای ساختن مدل سه بعدی ان می باشد، این تصاویر می تواندبر اساس طرح هایی باشد که بر اساس تخیل بر روی کاغذ کشیده ایم یا تصاویریباشد که توسط دوربین از اشیا گرفته ایم. برای شروع می توان ازکتب مختلف اموزش مدلسازی در بازار استفاده کرد. بهترین نرم افزار مدلسازی برایتوسعه دهندگان که محبوبیت بسیاری هم دارد 3D Studio Max است البته علت هایی دیگریهم از استفاده وسیع توسعه دهندگان از این نرم افزار وجود دارد است همچون این که خروجی بسیاری از موتورها دراین نرم افزار بسیار قوی تر و بهتر کار می کند، البته نباید از قدرت نرم افزارMaya غافل شد ، نرم افزارMaya هم می تواند گزینه دوم و خوبی برای شروعمدلسازی باشد، نرم افزارهای دیگری هم هستند امّا چون منابع اموزشی برای ایندو نرم افزار بیشتر از سایر نرم افزارها است من یکی از این دو را به شما توصیه میکنم، هرچند که نرم افزارZbrush که برای ساخت و طراحی شخصیت به کار می رود سر و صدایزیادی به پا کرده و از کار با ان نباید غافل شد.
شروع کار برنامه نویسها
کدام دسته: توسعه دهندگان ابزاریا بازی
در صنعت توسعه بازی عموماً برنامهنویسان ساخت بازی به دو دسته توسعه دهندگان ابزار و توسعه دهندگان بازی تقسیم میشوند. تفاوت اصلی این دو دسته در این است که توسعه دهندگان ابزار متشکل از برنامهنویسان متخصص و با تجربه ای هستند که به ساختن ابزارهای مورد نیاز برای تولید بازی می پردازند. امّا توسعه دهندگان بازی کسانی هستند که از ابزارهای ساخته شده توسطتوسعه دهندگان ابزار استفاده می کنند. هر دو این گروه یک هدف دارند ساخت شدن بازی.اما توسعه دهندگان ابزار شاید در عمرشان حتی یک بازی کامل هم نسازند و اگر هم چیزیبسازند در حد یک نمونه کار اجرایی با موتور می باشد و همچنین به خاطر تخصصی بودنکار و نیاز به دانش بالا در علوم برنامه نویسی و ... کار این افراد بسیار سخت، امّااز نظر خودشان شیرین و لذت بخش می باشد. در ایران هم عده ای توسعه دهنده ابزارهستند اما در اقلیت هستند و بیشتر بازی سازان ایرانی توسعه دهنده بازی هستند. هنوز کسی را در ایران مشاهده نکرده ایم که یک موتور کامل ساخت بازی ایرانی را طراحیکند، البته کسانی بوده اند که با تلاش و پشتکار زیاد توانسته اند یک رندرگر ساده یا یکویرایشگر مرحله بسازند امّا هنوز تا رسیدن به یک موتور کامل راه بسیار زیادی در پیشاست و بازی بازهای ایرانی نباید فریب برخی شیادان که ادعای ساخت موتور بازی را میکنند امّا از کوچکترین اطلاعات فنی برخوردار نیستند را بخورند. تنها راه پیشرفتکشور توسعه دادن ابزارهای ساخت بازی مانند موتور بازی است و این توسعه دهندگانابزارهای ساخت بازی هستند که اینده این صنعت در کشور ما را تعیین می کنند مسلماًاگر توسعه دهندگان ابزار در صنعت جهانی ساخت بازی نباشند هیچ توسعه دهنده بازی نمیتواند هیچ بازی ای را بسازد، ساخت یک بازی نباید هدف باشد بلکه هدف باید رسیدن به علمساخت بازی باشد و اگر تا ابد هم یک توسعه دهنده بازی باشیم و با موتورهای امادهاقدام به ساخت بازی بکنیم نمی توانیم به دانش ساخت بازی ان هم به صورت کامل دستپیدا کنیم. امّا کسی که تجربه اندکی در علوم برنامه نویسی دارد نمی تواند و یا سختمی تواند برای ساخت یک موتور فعالیت کند و باید ابتدا با یک موتور منبع بازاماده کار کند و ان را توسعه دهد و وقتی که توانست نمونه های گرافیکی و یا حتی یکبازی توسط این موتور ها بسازد انوقت می تواند اقدام به تلاش برای ساخت یک موتوربازی اختصاصی بکند. عده دیگری هستند که سعی می کنند از نرم افزارهایی که بصورتکاربردی(Application) برای ساخت بازی طراحی شده استفاده کنند. این افراد هیچ علم ودانشی از برنامه نویسی ندارند و فکر می کنند که ساخت یک بازی یعنی چند کلیک موشوارهو ساخته شدن بازی است امّا این مساله اصلاً صحیح نیست و برای ساخت بازی باید زحماتفراوانی توسط یک گروه کاملاً مجرب و با تجربه در برنامه نویسی انجام گردد و کسی کههنوز مقدمات علم برنامه نویسی را نمی داند مسلماً نمی تواند یک بازی ساز خوب شود.برخی از افراد هم فکر می کنند که با نوشتن چند خط کد اسکریپت ساده در نرم افزارهای بسیار ساده ساخت بازی ( نظیر Game Maker یا 3D Game Studio ) به یک برنامه نویس تمامعیار بازی تبدیل شده اند این در حالی است که هیچ کدام از بازی سازان بزرگ دنیا بااسکریپت نویسی ساده در این نرم افزارها بزرگترین بازی های دنیا را نساخته اند کهاکنون این افراد می خواهند با توسل به این نرم افزارهای ساده بزرگترینبازی ها را بسازند بلکه این نرم افزارها فقط برای شروع کار مفید است و کاربر به محضاین که توانست با کمک این نرم افزار یک بازی ساده را بسازد باید سریعاً از کار باان دست کشیده و به سمت ابزارهای قوی تر و بهتر برود.کسانی که کاملاً مبتدیهستند باید علم برنامه نویسی را یاد بگیرند و می توانند در کنار یادگیری یک زبانبرنامه نویسی علم برنامه نویسی را هم یاد بگیرند. شخصی که می خواهد یک بازی سازبشود ابتدا باید یک برنامه نویس متبحر شود و به نوعی پیش نیاز بازی ساز شدن برنامه نویس شدن می باشد که باید با مباحث عمومی علم برنامه نویسی نظیر متغیرها، ارایهها، رشته ها، توابع و همچنین با مباحث شی گرایی نظیر ارث بری، چند ریختی، کلاس هاو... اشنا باشد.
بخش دوم
بازی های انلاین چیست و چگونه ساخته می شوند؟
مقدمه:امروزه کمتر بازیPC در بازارپیدا می شود که یک بخش نسخه انلاین یا تحت شبکه را در کنار بخش تک کاربره ان قرارنداده باشد. بازی های کنسولی هم اکثراً سعی می کنند به شبکه مخصوص ان کنسول متصلشده و به کاربرانشان امکانات بازی تحت شبکه با سایر کاربران در یک محیط مجازی رابدهند. امروزه برای وصل شدن به شبکه حتی دیگر نیازی به استفاده از کابل شبکه نیست وشما کافی است که با کمک کنسول یا رایانه به اینترنت وصل شوید و این بازی ها راتجربه کنید. حتی برخی از بازی های امروز فقط مخصوص بازی های انلاین و تحت شبکهعرضه می شود و شما در بازی هیچ قسمت تک کاربره را مشاهده نخواهید کرد(مانند بازی khanwars). این بازی هایک فضای مجازی را در اختیار کاربران قرار می دهند که کاربران به صورت زنده و انلاینمی توانند در ان فضا بگردند و بازی کنند.
در این قسمت می خواهیم مسائل زیررا مورد بررسی و ارزیابی قرار دهیم:
• انواع مختلف بازی های شبکه ای
• معرفی تکنولوژی شبکه
• انواع ساختارهای بازی های شبکه (ساختارPeer to Peer وClient/Server)
• انواع پروتکل های شبکه( UDPوTCP/IP)
• انواعAPI های شبکه(Berkeley Sockets وWindows Sockets (WinSock) و DirectPlay)
• دراعماق طراحی مراحل بازی های چند کاربره
انواع مختلف بازی هایشبکه ای
قبل از شروع هر بحث اینمساله بسیار مهم است که شما بدانید در کل بازی های تحت شبکه به چند نوع و چند سبکتقسیم می شود. هر یک از دو نوع بازی شبکه ای که در ادامه معرفی می شود خودشان بهچند سبک تقسیم می شوند،در کل بازی های شبکه ای به دو نوع تقسیم می شوند که این دونوع ساختار و اهداف کاملاً متفاوتی دارند.
1.بازی بر پایه قسمت Session based video games
2.جهان مجازی مداوم (Persistent virtual worlds)
بازی بر پایه قسمت:در محیط های بر پایهقسمت، هر بازیکن دارای یکClient در رایانه اش می باشد و از یک شخصیت که در بازینمایش داده شده و موقعیتی را می گیرد استفاده می کند. این شیوه بیشتر برای بازی هایاستراتژیکی استفاده می شود، در این بازی ها در یک قسمت بازیکن می تواند حرکت کند،چیزی را برای دیگر کاربران ارسال کند و تا زمانی که حرکت کنند صبر کند. اگر یک نوبتکامل شد اطلاعات لازم درون یک بسته شبکه گذاشته شده و برای تمامClient های مشترکدر ان قسمت ارسال می شود یا یک کار بهتر می تواند صورت بگیرد یک سرور نوبت بازی راتحلیل کرده و نتیجه رویدادهای لازم بازی را برای نوبت و چرخش بازی بعد رها کند.
دربازی های به صورت رایانه ای یا بازی هایplay by email (PBEM) ممکن است چند روز طولبکشد تا نوبت بازی تمام کاربران و بروزسانی انها، تا نتیجه سناریوشان کاملشود.
دراضافه بسیاری از بازی ها هستند که تمام کاربران می توانند در یک زمان یکسان در چرخهباشند بدون این که احساس کنند چرخه بازی دارای زمان خاص است. نمونه ای از این بازیها تیراندازهای اول شخص است.
بیشترین شهرت سبک های بازی بر پایه قسمت این است کهانتهای بازی تا جایی است که به هدف مشخص رسیده باشیم. ( یا تا جایی که تمام کاربرانبه حد کافی بازی کردند و می خواهند از بازی خارج بشوند) سپس بازی به اتمام می رسد ومی تواندrestart شود. امّا هیچ اطلاعاتی در سرور به استثنای ذخیره بالاترینامتیازات، انباشته و ذخیره نمی شود. اگر بازیکن بازی جدیدی را شروع کرد این بازیهیچ ارتباطی با قسمت های بازی که در گذشته، بازیکن ها ان را تجربه کردند ندارد ووضعیت هایی که او در قسمت های قبل داشته به هیچ عنوان برای قسمت های جدید ذخیره نمیشود به عنوان مثال وضعیت سلامتی، اسلحه ها، مهمات، دارایی ها و... که در قسمت جاریبرای قسمت های قبل و بعد در جایی ذخیره نمی شود و فقط در همان قسمت استفاده میشود.
این نوع بازی خود به سه سبک تقسیم می شود. 1. حریف کشی 2. تیم و شراکتی 3.گرفتن پرچم
حریف کشی:بازی سبک حریفکشی به این صورت است که گروهی از سرور ها برای اجرای بازی ابتدا از یک نقشه یامرحله شروع می کنند و تعدادی کاربر در ان نقشه یا مرحله تا زمان رسیدن به اهدافمرحله یا طی کردن زمان خاصی در ان مرحله می مانند. این کاربران هر کدام به صورتاصطلاحاً یکClient به سرور متصل می شوند و اگر اجازه دسترسی به بازی از طرف سروربه انها داده شود انها به شکل یک کاربر در مرحله یا نقشه بازی ظاهر می شوند و میتوانند بازی شان را شروع کنند. سرور همچنین می تواند تعدادی کاربر را که توسط هوشمصنوعی رایانه کنترل می شوند و اصطلاحاً به انbot می گویند را در بازی بفرستد. هدفسبک حریف کشی کاملاً واضح است. کاربران باید در این بازی سعی کنند سایر کاربران دربازی را از پای دراورده و بکشند، به این کار علاوه بر کشتن، اصطلاحاًfrag هم میگویند. بازی پس از یک دوره زمانی خاص به صورت خودکار به اتمام می رسد که این زمانمی تواند چیزی در حدود 5 دقیقه تا 1 ساعت باشد. امّا بازی می تواند در صورتی کهتمام بازیکن ها به غیر از یک نفر که برنده است کشته بشود یا این که شما تعدادحداکثری برای کشته شده ها تعیین کنید که به عنوان مثال اگر بازیکن های کشته شده بهفلان مقدار حد نصاب رسید بازی به پایان برسد. بازی هایQuake Arena وUnreal Tournament پرشهرت ترین بازی ها از این نوع سبک محسوب می شوند.
تیم و شراکتی:دربازی های با سبک تیمی یا مرحله گروهی سرور یکbackground را اجرا می کند.
بازیکن هاهمچون سبک حریف کشی از هر جای جهان وارد سرور شده و اصطلاحاًlog in می شوند و دربازی شریک می شوند. با این تفاوت نسب به سبک قبلی که هر کدام از این ها وارد یک تیممی شوند که این تیم ها در ضدیت با یکدیگر ساخته شده است و تنها کاربران نمی توانندهم تیمی های خودشان را بکشند. نوع شراکتی که تا حدود شبیه به نوع تیمی است هم بهاین صورت است که در نوع شراکتی شما عضو تیم های یکسانی می شوید که تیم مخالف شما درحقیقتbot هایی هستند که توسط رایانه کنترل می شوند و شما باید به همراه هم تیمهایتان که کاربران همچون خودتان هستند با اینbot ها بجنگند.
مشهورترین نمونهبازی بر پایه تیم بازیBattlefield 1942 می باشد. در این بازی کاربر می تواند یکتانک، جیپ، کشتی، زیردریایی و هواپیما را کنترل کند. کنترل اسلحه مرکزی تانک وکنترل مسلسل یا فقط راه رفتن در بازی در نوع حریف کشی تیمی و با هدف بیرون انداختن سایر دشمنان در صورت امکان است و در برخی حالات گرفتن پرچم دشمنهم جزئی از هدف می شود. البته در طراحی بازی و به خصوص بافت زنی لباس کاربرانخیلی مهم است که توسعه دهنده بازی هم بتواند طوری طراحی کند که دوستان و دشمناندر بازی قابل تشخیص باشند به عنوان مثال هر گروه لباسی با رنگ خاص داشته باشد و یاهر طرح دیگری که به ذهن می رسد. یک عیبی که سبک تیمی دارد ظاهر شدن اشخاصی استکه اصطلاحاً به ان کشنده تیم یاteam killers می گویند، این ها کاربرانی هست که همتیمی های خودشان را می خواهند بکشند و از ادامه بازی محرومشان کنند، زیرا اینها تحتپوشش کاربرانی از تیم مخالف هستند یا اینکه انها نمی دانند که بازی چگونه کار میکند و یا نمی دانند چه کسانی هم تیمشان است و نیست،برای همین تعداد زیادی از بازی های تحت شبکه تحت این سبک دارای تنظیمات بی اثر کردناتش دشمن می باشد که باعث می شود دیگر هیچ کاربری نتواند به کاربر دوستش اسیب بزند، هر چند که این روش باعث ایجاد یک حالت غیر طبیعی می شود که کاربر بتواند با اسلحه به راحتی به دشمنان بتازد در حالی که نگران اسیب دیدن هیچ کدام از هم تیمی هایش دراین اتش بازی و تاخت و تاز نباشد. راه دیگری هم هست و ان این است که یک مدیر درسرور نظارت کند و هر کاربری را که به هم تیمی اش شلیک کرد و او را تعمداً از پای دراورد او را از بازی حذف و نام کاربری اش را ببندد هرچند که این کار به صورت خودکارتوسط خود سرور هم شدنی است.
کشتن هم تیمی در هر جنگ سنگینی ممکن استرخ بدهد. پس می توان یک میزان حداکثری از کشته شدن هم تیمی تعیین کرد و وقتیکه به ان میزان رسید دستور رسیدگی و ملاحظه را توسط سرور داد، به عنوان مثال دربازی مذکور یعنیBattlefield 1942 بسیاری از مردم به خاطر رسیدن به اسلحه ای خاص همتیمی خودشان را می کشتند، یعنی زمانی که شخص و هم تیمی شان به سمت یک اسلحه حرفه ایمی رفتند و هر دو هدفشان یکسان بود یعنی برداشتن ان اسلحه خاص جنگی بین ان دو در میگیرد که مسلماً یکی از انها ان یکی را کشته و به هدفش یعنی رسیدن به ان اسلحه خاص می رسد. همچنین برخی از هم تیمی ها چون می خواهند کنترل یک ماشین را بدست بگیرند همتیمی راننده را برای رسیدن به این کار می کشند!
گرفتن پرچم:در این نوع بازی ها، بازیکن ها در تیمسازمان یافته هستند، هر تیم دارای تعدادی پرچم یا میله پرچم می باشد که باید از اننگهبانی کند و وظیفه بازیکنانlogin شده در سرور این است که به محل نگهداری پرچمسایر تیم ها بروند و پرچم انها را مورد سرقت قرار دهند و پرچم را به دوش گرفتهبه سمت یک میله پرچم ببرند و هر بار بازیکنان باید پرچم دزدیده شده را تا میله پرچمخانه خودشان مدیریت کنند و در نتیجه این کار امتیازی دریافت می کنند. اگر بازیکن درحین حمل پرچم ان را در فضای مجازی گم کند این پرچم می تواند توسط یکی از اعضای دیگرگروه یا گروه دشمن پیدا شود و برداشته شود.
پایان این نوع بازی ها معمولاً پس ازیک دوره معین از زمان یا زمانی که تعداد مشخص پرچم دزدیده شده به حد نصاب برسد، میباشد. چند نسخه از انواع متفاوت این بازی ها منتشر شده که می توان به سری بازی هایDelta Force اشاره نمود.
جهانمجازی مداوم:بعد ازمعرفی سه سبک نوع بازی بر پایه قسمت اکنون می خواهیم نوع دوم بازی ها را یعنی جهانمجازی مداومPresistent virtual world را توضیح دهیم. مدیریت بانک اطلاعاتی سرورتمام کاربران را برای بازی معین ثبت می کند، برای ثبت نام در بازی، نیاز به ریختن پول در حدود 5 الی 15 دلار در ماه است، سپس اجازه پیدا می کنید که بازیرا در 24 ساعت هر روز ان ماه بازی کنید. کاربر همچون یک انسان واقعی در یک محدودهشهری بزرگ، قاره یا حتی یک سیاره در جهان مجازی مداوم زندگی کرده و با گذشت زندگی،تجربه کسب می کند. همچون زندگی واقعی، در ان یک سیستم سیاسی بعلاوه سیستم اقتصادیقرار دارد و بازیکن باید رهبری گروهی از انسان ها را به عهده بگیرید.
این نوعکاملاً با نوع بازی بر پایه قسمت متفاوت است. در یک بازی با نوع جهان مداوم اطلاعاتدرباره کاربر (همچون نشان های شخصیت، سلامتی، تجهیزات و...) هر بار در خود بازیاجازه ذخیره شدن می گیرند. هنگامی که بعد از گذشت چند ساعت، روز یا هفته دوبارهشروع می کنید به بازی شخصیت شما همانی است که قبلاً با ان بازی می کردید و با همانمشخصات و قابلیات. در کل این نوع از بازی دو مولفه مرحله بندی و اطلاعات مداوم داردکه جداگانه انها را بررسی می کنیم.
مرحلهبندی:مرحله بندی بازی در حقیقت نوعی وجه های شخصیت ها را با یک سیستمهوشمند از قدرت ها و نشانه ها، کاربر را از انجام چیز خاصی از بازی بهبود می دهد. تنظیم کردن تمام این قدرت ها و نشانه ها به کلاس های خاص ، وظیفه زمان بری است.
اطلاعات مداوم:اگر بازیکن در جهان مجازی مداوماجازه دهد تمام قدرت شخصیت ذخیره شود، سخت افزار سرور تمام اطلاعات را در دیسکبانک اطلاعاتی قرار می دهد و این کار تا زمانی که سرور در حال اجرا و کارمی باشدانجام می گیرد. تمام اطلاعات بازی در حالت مداوم قرار دارد. از این رو جهان مجازیبه موجودیت و بازشدن خودش ادامه می دهد زیرا هزار بازیکن دیگر همچنان در حال بازیدر این جهان هستند. مشکل اینجاست که کاربرانی که در بازی جدی نیستند به زمان بیشتریبرای دست یابی به مراحل یکسان با سایر افرادی که مشغول بازی امّا جدی تر و چند ساعتدر روز هستند نیاز دارند،که این می تواند کاربرانی را که نمی توانند بیشتر بازیکنند نا امید کند. در این حالت برخی بازی هایی که محیط شان این چنین مشکلی داشت ازچند راه حل استفاده کردند، یکی از راه حل ها این است که بازیکن هایی که نمی توانندخیلی زیاد انلاین باشند و بازی کنند می توانند با سرعتی ضعیف تر قدرت خودشان رازیاد تر کنند و راه دیگر که در برخی بازی ها استفاده شده، این است که بازیکن می تواند در قبال دادن پول در دنیای واقعی به بازی ساز در قبال ان قدرت و اشیای لازم در جهانمجازی را بگیرد.
RPG در مقابلMMORPG: بازی های با سبکRole-Playing Game بازی هایی هستند که در یک محیطoffline بازی می شوند. امّا به صورت جهان گستر قابل استفاده است. همچون نوع جهانمجازی مداوم می توان ابعاد و احتمالات جدید را به ان اضافه نمود که باعث بزرگترشدنان می شود و در نتیجه این کار و فراخوانی قابلیت انلاین و چند کاربره، سبک جدیدی بانامmassive multiplayer online role playing درست می شود.
دستان میلیون هاانسان که بخواهند یک عنوان بین المللی را با موفقیت امتحان کنند چیز ساده ای نیست.بیشتر مردم کسانی هستند که انلاین هستند و به یک سرور واحد متصل هستند و بیشتروظیفه جامع تیم مدیریتی، این است که بازی با حداکثر سرعت و توانایی اجرا گردد. اینسوال است که چرا یک بازی واحد نمی تواند در یک سرور واحد اجرا شود؟ بسیاری ازاستراتژی ها از شکافتن وظایف درون قسمت مدیریت حکایت می کند. امّا عمومی ترین راهاین است که یک نمونه چند کاربره را بر روی چندین سرور اجرا نماییم طوری که کاربرنتواند شخصیتش را از این سرور یک سرور به دیگری ببرد.
حهان مجازی برای این کهچند بار نمونه های خاص بازی را اجرا کند به هر کدام از دیگری متصل نمی شود. اگر می خواهید به صورت انلاین با دوستتان بازی کنید باید ابتدا مطمئن شوید که تماماعضای تیم از یک سرور یکسان استفاده می کنند. هنگامی که در حال ساختن شخصیتتانهستید می توانید سرورتان را انتخاب نمایید، دیگر استراتژی که می توان از ان استفادهنمود استفاده از اقلیم متفاوت یا سیستم سیاره ای است. در این نوع سیستم هر قسمت ازجهان در یک سرور اجرا می شود. هنگامی که کاربر می خواهد از گوشه ای از جهان به گوشهای دیگر که در سروری دیگر قرار دارد برود باید یک بارگذاری کوچک را ببینید و تحملکند. در پس زمینه در حقیقت اطلاعات شخصیت از این سرور در حال انتقال به سرور دیگراست، برتری این روش در این است که تمام کاربران در یک جهان مجازی کاملاً یکسان قراردارند.
Lag :اخرین چیزی که باید در اینفصل در مورد بازی های چند کاربره بدانیمLag می باشد. اگر همواره یک بازی اکشنانلاین را بازی کرده باشید می خواهید بیشتر در مورد این اصطلاح بدانید زیرابیشتر مردم از توابع پیام استفاده می کنند.Lag،به سرعت خیلی کم سرور برمی گردد وبدترین حالت و موقعیت می باشد. اگر یک نفر تایپ کند:"Laaaaaaaaaag" او به ایناشاره می کند که اتصالش به سرور بسیار ضعیف است. زیرا اتصال ضعیف در حقیقت یک توقفکوتاه در بازی یا موقعیت و محل بازیکن است که باید این موقعیت و محل بازیکن هر چندثانیه تغییر کند و کاربر تخمین می زند که حرکتش کاملاً توسط سرور به درستی محاسبهنمی شود.
Lag دسته ای از رکود در بازی است، در حقیقت این مشکل زمانی اتفاق میافتد که بسته های اطلاعاتی نیاز به گردش از سرور بهclient را دارند. تنها راه حلمشکلlag این است که مساله انتقال اطلاعات چه از طریق اینترنت یا شبکه داخلی درست شود و خطی با سرعت بیشتر گرفته شود، بیشتر این مشکلات ناشی از سرعت کم انتقالاطلاعات ازclient می باشد. اگر ارتباط به شکلpeer to peer است که تمام بازیکن هابه نوعی باید این مشکل را تحمل کنند. هرچند که گاهی اوقات این احتمال هم وجود داردکه مشکلlag شدن به خاطرoverload شدن سرور با برخی ازclient ها باشد. در این حالتتعویض سرور می تواند مشکل را حل کند.
ساختارشبکه
ساختار پایه سیستم شبکه میتواند بر دو دسته تقسیم شود: 1.Peer to Peer2.Client/Server اینجا بحث بر سرچگونگی اتصال فیزیکی رایانه به شبکه نیست امّا چگونگی اتصال رایانه به دیگری مطرحاست. هر رایانه را می توان به دو صورتPeer to Peer یاClient/Server با سایر کاربران به صورت شبکه ای اجرانمود. تنها موجود واحدی که به شبکه متصل می گردد فقط برنامه ها هستند، همچون یکClient بعلاوه یک سرور یا یکpeer که بیشتر از یک نرم افزار نیست. حتیمی توان دو بازی تحت شبکه تیرانداز اوّل شخص را در عوض یکی بر روی رایانه اجرا نموده و با کمک دو مانیتور مشغول بازی شد. اکنون به تفصیل هر دو صورتPeer to Peer وClient/Server را توضیح خواهیم داد.
Peer to Peer :در یک شبکهPeer to Peer هرClient به تمام دیگرClient ها متصل است. این قاعده باعث می شود که هرClient مستقیماً با دیگران اتصالداشته باشد. در این حالت به هیچ سروری برای اتصال میان این دو نیازی نیست. شکل زیرساختارPeer to Peer را بهتر نشان می دهد:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
مزیت این نوع ارتباط:
• هر کاربر در هر زمان که بخواهد میتواند براحتی از شبکه خارج شود بدون این که موجب اختلال یا اشکال در ارتباط سایرکاربران شود.
معایب این نوع ارتباط:
• این نوع ارتباط دارای ترافیک زیاداست زیرا، اگر بخواهیم پیامی به تمامClient ها ارسال کنیم باید هرClient پیام رابهClient دیگر ارسال کند.
• عدم تمرکز در کنترل، اینجا مکان اشکاری برایذخیره لیست بالاترین امتیازها، لیست کاربرانband شده، لیست تنظیمات بازی و... وجودندارد.
• به طور عادی در میزان حداکثری کاربران به دلیل وجود ترافیک محدودیتوجود دارد.
Client/Server :در شبکههایClient/Server یک موجودیت یاentity یک سرور است و گروهی بازی یا هر ابزار کاربردی شبکه(client) نیز وجود دارد، که در شبکه اجرا می شود. دیگر موجودیت ها که می خواهند قسمتی ازشبکه باشند می توانند به سرور متصل شوند،و اگر این دسترسی را بگیرند، Client ها درشبکه قرار می گیرند. اگر یک پیام نیازمند ایجاد فرایندی مابینClient ها است یکClient اجازه ندارد که ان پیام را مستقیماً بهClient مورد نظر ارسال نماید و اصلاًچنین چیزی غیر ممکن است چون انClient اصلاً اتصالی باClient مورد نظر ندارد. درعوض تمام پیام ها به سمت سرور ارسال می شود و ان سرور پیام را به تمامClient ها یاان Clientکه باید پیام به دستش برسد ارسال می کند. برای درک بیشتر تصویر زیر راببینید:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
در این حالت از بازی های رایانه ای،سرور وظیفه ای در اجرای بخش مجازی بازی ندارد. سرور می تواند نمونه بازی را فقطشروع کند و به کاربران اجازه بازی بدهد. بنابر این سرور نیازی به محاسبه خروجیگرافیکی بازی ندارد. در عوض سرور در پراکندن پیام ها و محاسبهCollision detection (تشخیص تصادم) و چیزهایی مانند این درClient متمرکز می شود. البته می توان به سرور اجازهداد تا خروجی مجازی بازی را هم ارائه دهد در این حالت سرور می تواند یک نمونه ازبازی را هم در خودش اجرا کند.
تکنولوژیClient/Server معمولاً در بیشتر بازی هایرایانه ای استفاده می شود، مخصوصاً در بازی های تحت شبکه بسیار بزرگ نظیر بازی هایسبک MMORPG.سرور تمام نیازهای خودش در بانک اطلاعاتی را به کار می برد و با تماماطلاعات مداوم کار می کند زیراClient اجازه دسترسی مستقیم به اطلاعات را ندارد. پس هکرها می توانند کدهای یکClient را الوده کنند و کارهایی را کهنباید انجام بدهند را انجام دهند و باید مراقب این مساله هم بود.
اکنون میخواهیم مزایا و معایب این نوع از اتصال شبکه ای را برای شما توضیح دهیم:
مزایایشبکهClient/Server:
• این نوع شبکه برای بازی های شبکه بزرگ که از بانک هایاطلاعاتی استفاده می کنند بسیار مناسب است.
• هرClient فقط با یک موجود درشبکه کار می کند که ان موجود سرور است.
• این نوع شبکه دارای یک ارتباطمتمرکز و قوی مابینClient ها است.
• امنیت بالا، Client ها به اطلاعات مرکزیبازی دسترسی ندارند.
معایب شبکهClient/Server:
• اینجا یک نقطه شکست وجوددارد (اگر سرور قطع شود در حقیقت تمام شبکه قطع شده است).
• سخت افزار خاصیبرای سرور نیاز است.
• سرور به قدرت نیاز دارد.
تکنولوژی شبکه
بهطور اساسی، تنظیمات سیستم ارتباط شبکه ای با استفاده از کابل های مسی یا فیبرهاینور انجام می گیرد، و کاملاً شبیه به تلفن است که صدا را ارسال می کند.صدا در فرایندی قرار گرفته و مورد انتقال و مبادله با یک تلفن قرار می گیرد و صدا برای کسی که در حال صحبت با ان هستید بازپخش می شود، همچون کار اینسیستم اگر قسمتی از سیستم را دریافت کنید باید بدانید که چه نوع فرمت اطلاعاتیدر ان است.
کاربردهای یکسان برای یک شبکه رایانه ای استفاده از پروتکل های شبکه است. اینپروتکل ها تعریف می کنند که چگونه اطلاعات وارد شونده سازماندهی شوند؟ و اطلاعاتدارای چه محتوایی مورد سفارش ما باشند؟
مشهورترین پروتکل های شبکه عبارتند از:IPX/SPX، NETBEUI وTCP/IP (که برای اینترنت استفاده شده) هستند. البته بسیاری ازپروتکل های دیگر هم هستند که ما می توانیم در مورد ان ها در ادامه بحث کنیم امّاترجیح می دهم اوّلین بحثم را ازOSI Model شروع کنم که قسمتIP پروتکلTCP/IP میباشد.
OSI: مدلی از توسعهفرایند ارتباطات است که نام کامل انOpen System Interconnection می باشد و در سال 1970 توسط سازماناستاندارد جهانی(OSI) پایه گذاری شد. مدلOSI بر پایه 7 لایه ساخته شده است. یکفرایند ارتباطات همواره در بالاترین لایه اغاز می شود و به سمت پایین تا هفتمینلایه که پایین ترین لایه است کار می کند.
پس از این که اطلاعات از شبکه ارسالشد، اطلاعاتی که وارد مقصد می شوند باید از میان تمام هفتلایه دوباره عبور کنند. فقط در حالت معکوس، هنگامی که انها دوباره به بالاترین لایه میرسند کار اجرایی که انتظار ان می رود را می گیریم. در طی این روند هر لایه بااطلاعاتی که به کار ان می اید و به ان نیاز دارد کار می کند. یک تصمیم مهم در لایه چهارم باید انجام بگیرد، این تصمیم به این صورت است که باید تعیین کردبسته اطلاعاتی ایا به صورت بستهUser Datagram Protocol (UDP) ارسال شود یا به صورتTransmission Control Protocol (TCP) .تمامی لایه ها در تصویر زیر نشان داده شدهاست.
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
لایه 7Application : لایهApplication لایه ای است که در انجا کاربران راه های ارتباطی را تنظیم میکنند. اینApplication همان ابزاری است که با ان کار می کنید همچون ابزارEmail ، FTP Client یا حتی مرورگر اینترنتی، هر ابزاری که از پروتکل شبکه برای انتقال اطلاعات در شبکه استفاده می کند حتماً این لایه را به عنوان لایه هفتم وبالاترین لایه خودش استفاده می کند.
لایه 6Presentation : اینلایه، هسته معرفی اطلاعات است. به این مفهوم که ایا این اطلاعات برای حمل و نقل درشبکه رمز گذاری شده اند؟ ایا اینها فشرده هستند؟ و از این قبیل مسائل، اگراطلاعات رمز گذاری و فشرده سازی شده اند در صورت لزوم باید اطلاعات ورودی بازشده واز حالت فشرده شده خارج شوند.
لایه 5Session : این لایه تعیینمی کند که چگونه اتصال مابینClient وServer شروع یا تمام گردد. این لایه همچنینهمزمانی ارتباطات شبکه ای را بررسی می کند و ابزار را برای ارسال اطلاعات دراتصالات اجرایی توانا می کند.
لایه 4Transport : یک لایهTransport خطاهای اطلاعاتی را که باید ارسال بشوند را بررسی می کند و بسته ها را دریک مسیر سریعتر و راحتتر انتقال می دهد، در اضافه این لایه بررسی می کند که وضعیتجاری شبکه بسته های اطلاعاتی را صحیح ارسال و دریافت می کند و مهمترین کاری که اینلایه انجام می دهد تعیین نوع بسته ها بر اساس دو نوعUser Datagram Protocol (UDP) یاTransmission Control Protocol (TCP) می باشد.
لایه 3Network : برای ارسال بسته ها به مقصد درشبکه ، این لایه انها رابه یک ادرس مجهز می کند جایی که در مقصد می توانند پیدا بشوند. در این لایه کدها و سیگنال ها تحت یک پروتکل اینترنتی که اختصاراً به انIP می گویند نام گذاری میشوند و برای انهاIP تولید می شود.
لایه 2Data-Link : بررسی اعتبار ایمنی هر بسته قبل از ارسال با این لایه است. این لایه همچنیناتصال مابین دونقطه حقیقی سخت افزاری در شبکه را اماده می کند و بسته های اطلاعاتیرا به قطعه های کوچک که می تواند برای هر شخص ارسال شود تبدیل می کند.
لایه1 Physical : در نهایت لایه فیزیکی، لایه ای است که قطعه های کوچک را برروی کابل شبکه ارسال می کند و انها را بر اساس سیگنالHi/Lo تغییر می دهد. این بیتها به صورت فیزیکی به مقصد الکترونیکی (یا نوری) ارسال می شوند اطلاعات در این سطحرا اصطلاحاً (بر روی سیم) می گویند.
پروتکل ها
بدون پروتکل ها، ارتباطات شبکه امکانپذیر نیست. مشکل یکسانی کهاز ارتباطات شبکه ای می اید این است که رایانه می بیند که اطلاعاتی وارد شد امّااگر نداند که از چه پروتکلی استفاده شده است نمی تواند اطلاعات را تفسیر کند. رایانه باید بداند که اطلاعات چگونه به صورت تکه و کوچک شده گذاشته شده است. همچنینباید بداند که از چه قطع کننده ای برای شکستن اطلاعات به بسته ها و قطعه های کوچکاستفاده شده است. اگر از یک پروتکل یکسان برای ارسال و دریافت اطلاعات استفاده نشود سخت افزار نمی تواند بیت ها و بایتها را با هم در پیامش بگذارد و به شبکه به صورت صحیح ارسال کند. همانطور که قبلاً اشاره شد پروتکل های متفاوتی برای شبکه وجوددارد امّا در اینجا قصد دارم دو پروتکل مشهورتر و مهم تر در همه زمینه های شبکهاز جمله بازی های تحت شبکه را توضیح بدهم که ان دو پروتکلTCP وUDP میباشد.
UDP : UDP بی شباهت بهTCP ،یک راه غیرخطی برای ارسالاطلاعات می باشد که توانایی ان در اتصال مداوم کاربر به شبکه، پایدار نمی باشد از اینرو مقصد اطلاعات باید هربار که اطلاعات ارسال می شود نامگذاری شود. همچنین یکپروتکل بی ضمانت می باشد زیرا پس از ارسال اطلاعات لینک مابین منبع و مقصد بریدهشده و بازخوردی ندارد که ان را بررسی کند و ببیند که ایا بسته ها به سمت مقصد ایمن وبدون هیچ مشکلی و کامل ارسال شده اند یا نه.
از جمله مزایای استفاده از اینپروتکل این است که با از قلم انداختن بررسی ثبات و صحیح بودن ارائه اطلاعات سرعتبالایی را پیدا می کند. در یک بازی رایانه ای و زمانی که باید 20 بار در ثانیهموقعیت هر کدام از اشیایی که حرکت می کند را ارسال نمود اگر دو یا سه بستهگم شد مشکل خیلی خاصی نمی تواند ایجاد کند و Client می تواند در اخرینموقعیتی که قرار داشته باقی بماند.می توان یک بررسی کننده امنیتی برایUDP گذاشت،و هنگام ارسال بستهاز هر دو شیوه غیر ضمانت شده برای ارسال پیام های غیرمهم همچون اطلاعات مربوط به موقعیت و همچنین می توان از شیوه امنیتی برای پیام های مهم بازخورد از مقصد، همچون گلوله خوردن یک شخصیت استفاده نمود. همچنین می توان از هر دو پروتکلUDP وTCP استفاده نمود. می توان برای پیام هایی که گم شدن شانایراد اساسی در روند بازی ایجاد نمی کند ازUDP استفاده کرد همچون پیام های مربوطبه مختصات و موقعیت شخصیت ها، و برای پیام های حیاتی که بسیار مهم هستند همچون باختنشخصیت ها یا تیر خوردن انها می توان ازTCP استفاده کرد. امروزه موتورهایی وجود دارند کهاز هر دو این پروتکل ها استفاده می کنند به عنوان نمونه می توان به موتورTorque Game Engine اشاره نمود که در بخش شبکه از هر دو پروتکل استفاده میکند.
TCP/IP : پروتکلTCP که مختصرTransmission Control Protocol می باشد یک پروتکلاتصال محور یاConnection-Oriented می باشد. این پروتکل تنها در صورتی اجازه ارسالاطلاعات را می دهد که یک اتصال پایدار بین منبع و مقصد وجود داشته باشد، سپساین اتصال بعد از نگهداری تا زمانی که به طور واضح پایان پیدا کرد و کاربر ان را بست ادامه پیدا می کند، از این رو این اتصال تا زمانی که برنامه در حالت اجرا استپایدار باقی مانده و هیچ خطایی نباید در سخت افزار رخ دهد.TCP یک پروتکل ضمانت شدهاست زیرا هر بسته اطلاعاتی که ارسال می شود به صورت درونی تایید شده و در شکلی ازبازخورد مقصد است. اگر این بازخورد در داخل مقدار معینی از زمان بعد از ارسال پیاموارد نشود ارسال کننده به صورت خودکار دوباره پیام را ارسال می کند. TCPازاینرو یک چهره و وجه ضمانت شده ای را از خودش در زمینه ارسال و دریافت بسته هایاطلاعاتی دارد. هیچ بسته اطلاعاتی نیست که گم بشود زیرا اگر بسته اطلاعاتی گم بشودیک رونوشت از ان دوباره ارسال می شود. هیچ خطایی رخ نمی دهد زیرا تمام بسته هایزاید نادیده گرفته می شوند. دیگر مزایایTCP این است که بسته های اطلاعات خرد شدهرا به شکل سفارشی دریافت کرده و انها از قبل به صورت سفارشی به شکل یک بسته دوبارهسازی می شوند و به سمت مقصد ارسال می شوند. در عین حال شما می توان میزان کارکرد ان را دید، اما این پروتکل یک ترافیک اضافی ایجاد کرده و زمان کار شبکه را به پایینترین حالت ممکن پایین می برد امّا در عوض مطمئن هستید که هیچ کدام از بسته های اطلاعاتیشما گم نمی شود.
API هایشبکه
ما تمام ابزارهای 7 لایه مدلOSI را در اختیار نداریم زیرا بیشتر این لایه ها همواره در سخت افزار کار می کنند پس برایدسترسی بیشتر به لایه ها و سخت افزار نیاز به کار باAPI داریم. APIلایه ای ارتباطی بین برنامه نویس و سخت افزار است که برنامه نویس با کمکان می تواند به سخت افزار دسترسی و کنترل داشته باشد. در زیر می خواهیم لیستی ازAPI های مفید تحت شبکه را که دسترسی اسان به سخت افزارهای شبکه را می دهندمعرفی نماییم.
Berkeley Sockets :Berkeley Sockets اولینAPI بود که برای تعریفTCP/IP استفاده شد. در 1986 اینAPI برای نسخه های متفاوت سیستم عامل ها در دسترس بود کهالبته بیشتر، سیستم عاملUNIXاز ان استفاده می کرد. در 1991 نسخه 4.3 اینAPI اوّلین نقطه شروع برای توسعه دهندگان تحت ویندوز ان بود. امروزه اینAPI بیشتریناستفاده را در سیستم عاملLinux وUnix دارد و حتی به یکAPI استاندارد تحت شبکهبرای این سیستم عامل ها تبدیل شده است.
Windows Sockets: اینAPI قسمت کاملی از سیستم عامل ویندوز می باشد. بهطور جاری نسخه 2 ان در دسترس است و خیلی شبیه به نسخه قبلی اش می باشد واستانداردهای یکسانی باAPI قبلی یعنیBerkeley Sockets دارد. همچنیناگر برنامه تحت شبکه را با کمک اینAPI بنویسید برنامه می تواند با دیگرAPI هاکامپایل شود.
WinSock دارای چهره هایی است که ان را نمی توان درBerkeley Sockets پیدا کرد. ساختن یک برنامه تحت شبکه در ویندوز ان هم به اسانی هر چه تمام تر، که می تواند پیام های بر پایه تکرار را در سوکت های غیر همزمان بالا ببردکه این مکانیزم باعث می شود تا سوکت ها وقایع را به شما اعلام کنند. (مانند واردشدن اطلاعات جدیدWinSock ) یکAPI بسیار کارا و موثر که استفاده از ان اسان است امّا مانندتمامAPI های سطح پایین باید با توابع سطح پایین و استانداردها و معیارهایمتعارف یکنواخت دست و پنجه نرم کرد.
DirectPlay : یک مولفه از بسته مشهور و محبوب DirectX.DirectPlay کتابخانه ای است که از سوی مایکروسافت ارائه شده است و بیشتر برای پشتیبانی ازتوسعه دهندگان ابزارهای تحت شبکه به قصد ساخت بازی ساخته شده است. در این کتابخانهمقدار زیادی توابع سطح بالا وجود دارد همچون محلی برایLogin شدن بازیکن ها دربازی های شبکه و یک مسیریاب پیام و اتصالگرهای متفاوت. اگر به اسناد کمکی این کتابخانه نگاه کنید یک راهنمای جامع که بیشتر وظیفه اش تامین نیازهای کسیاست که می خواهد با کمک این کتابخانه یک بازی تیرانداز اوّل شخص تحت شبکه رابسازد ، وجود دارد.
اشکالی که در کتابخانهDirectPlay وجود دارد این است که فقط برایویندوز در دسترس است و فضاهای سرورهایMMORPG نمی توانند تحت ویندوز اجرا بشوند وباید حتماً تحتLinux یاUnix اجرا بشوند. همچنین اگر از اینAPI استفاده شود باید یک برنامه سرور جداگانه با استفاده از یکAPI شبکه دیگر تکمیل شود یااگر از اینAPI استفاده شد باید فقط از سرور ویندوز استفاده شود. ذکر این نکتههم ضروری است که چون اینAPI از یک پروتکل اختصاصی استفاده می کند به خاطر همیناتصال، یکClient که ازDirectPlay استفاده می کند به یک سرور غیر ازDirectPlay بسیار سخت می باشد. در هر صورت به عنوان حرف اخر از هر پروتکل، API و ابزارهایتحت شبکه که معیار استفاده فقط افزایش کارایی، سرعت و دقت باشد. فراموش نشودکه انتظار یک بازیکن تحت شبکه از بازی ساز مسلماً این نیست که بازی با بالاترینکیفیت گرافیکی ممکن ارائه شود بلکه با توجه به این که سرعت اتصالات اینترنت درایران در ضعیف ترین حالت ممکن قرار دارد و از طرفی رایانه هایی که در کافی نت هاقرار دارند ممکن است از سرعت و قدرت کافی برای شبکه داخلی برخوردار نباشند این استکه در کمترین سرعت ممکن هم بازی بتواند بهترین جواب را بدهد و سرعت انتقال بسته هایاطلاعاتی مابین رایانه و سرور یا اگرPeer to Peer استفاده می شود مابین رایانه هادر بیشترین حد ممکن باشد و در حقیقت سعی شود معیارها اوّل بر اساس سرعت بیشترو بعد بر اساس دقت باشد هرچند که همانطور که گفته شد با یک کار دقیق می توان ازتمامی پروتکل ها استفاده کرد و از دقت و سرعت هر دو پروتکل استفادهنمود.
سایت :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مقدمه
بازیرایانه اینوعی سرگرمی تعاملی است که توسط یک دستگاه الکترونیکی مجهز بهپردازشگر یا میکرو کنترلر انجام میشود. بسیاری از بازیهای رایانهای به دلیلتولید تصویر متحرک با قابلیت نمایش روی صفحه تلویزیون یا نمایشگر رایانه، بازیویدئویی نیز محسوب میشوند.تعداد مخاطبان بازیهای رایانهای در سالهای گذشتهافزایش چشم گیر داشته و این بازیها به یکی از پر هوا دار ترین سرگرمیهای موجودتبدیل شدهاند.
بازیهای رایانهای بر اساس شیوه انجام بازی و حالت گرافیکیبه گروه (ژانر)های زیادی از جمله موارد اشاره شده در فهرست زیر بخش میگردند:
اموزشیEducational
اتومبیلرانیDriving games
مسابقه اتومبیلرانیRacing
راهبردStrategy
راهبرد نوبتیTurn Based Strategy
راهبرد بیدرنگReal Time Strategy
اکشن - ماجراییAction-Adventure
مخفی کاریStealth Action
Survival Horror
اینترنتیOnline games
سکوییPlatformers
تیراندازیShooters یاShoot'em Up
تیراندازی سوم شخصThird Person Shooters
تیر اندازی اول شخصFirst-person shooters
شبیهسازیSimulation
شبیهسازی فضاییSpace simulation
ضرباهنگیRhythm games
ماجراییAdventure
مبارزهایBeat 'em up/Fighting
معماییPuzzle
نقش افرینی (ایفای نقش)Role-Playing Games (RPG)
نقش افرینی غربی، امریکایی یا کامپیوتریComputer RPG
نقش افرینی کنسولی یا ژاپنیJapanese RPG
ورزشیSports
هزارتو (لابیرینتی)Maze games
اهمیت بازی های رایانهای:
تاثیر گذاری: تأثیر گذاری بالای این گونه بازی روی مخاطب، این بازیها را به یکابزار با استعداد بسیار بالا برای اموزش، اگهی، ترویج مذاهب، سو استفاده سیاسی،شستشوی مغزی و... تبدیل کردهاست. بسیاری از دولتها بازیهای رایانهای را به دلیلاحتمال تحریک کودکان و نوجوانان و ترویج خشونت محدود کردهاند.
سود اوری: امروزه صنعت تولید بازیهای رایانهای به یک عرصه سود اور تبدیلشدهاست و شرکتهای بزرگ تولید کننده این گونه بازیها هر سال سود هنگفتی به دستمیاوردند، به گونهای که در سال ۲۰۰۴میزان سود خالص سالانه به دست امده از صنعتبازیهای رایانهای به مرز ۱۰میلیارد دلار رسید و سود حاصل سالانه به دست امده ازهالیوود (نه و نیم میلیارد دلار) را پشت سر گذاشت.
سر گرم کننده بودن: بازیهای رایانهای بر خلاف بیشتر سر گرمیهای دیگر، تعاملیبوده و از این رو جذاب تر هستند.
اعتیاد: عدهای از محققین بازیهای رایانهای را اعتیاد اور و خطرناک قلمدادمیکنند. هر چند این مساله ثابت نشده است؛ اما شواهد موجود نشان میدهد تعدادی ازعلاقمندان به بازیهای رایانهای به طرز غیر طبیعی به این سرگرمی وابسته شده و اززندگی عادی خود بازی میمانند.
گروهیاز مردم، انجام یک بازی کامپیوتری را جزء لذت بخش ترین تفریحان خود می دانند حال انکه گروهی دیگر(که تعداد ان ها به مراتب کمتر از گروه اول است) خلق و طراحی یک بازیکامپیوتری را سرگرم کننده و جالب تر می دانند. مطمئنا شما نیز که در حال مطالعه اینمتن هستید جزء همان گروه محدود و خاص هستید که تصور تبدیل رویاهایتان به واقعیت (هرچند از نوع مجازی) شما را بیش از هر چیز به وجد می اورد.
یک بازی کامپیوتری قبلاز هر چیز در ذهن سازندگانش شکل می گیرد و از این اولین جرقه تا عرضه محصول نهایی،راهی بسیار طولانی اما فوق العاده جذاب طی می شود که به ان "ساخت بازی" می گویند.ساخت یک بازی کامپیوتری بیش از هر چیز به خلاقیت، قدرت تصور، هوش و پشتکار احتیاجدارد. به خاطر داشته باشید که سالیانه هزاران عنوان بازی کامپیوتری تولید می شوندکه از میان ان ها تنها تعداد محدودی (کمتر از مجموع انگشتان دو دست) به عنوان بازیهای موفق شناخته می شوند. مسلما اولین وظیفه یک طراح بازی، بررسی بازی های پرفروش وعلل موفقیت ان ها و در عین حال بررسی علل شکست و ناکامی دیگر بازی ساز هاست و درسگرفتن از این نقاط ضعف و قوت می تواند ریسک شکست را تا حد چشمگیری کاهش دهد.
درادامه به بررسی اصول اولیه طراحی بازی های کامپیوتری خواهیم پرداخت. اصولی که درنظر گرفتن تمامی ان ها می تواند احتمال موفقیت شما را افزایش دهد و در عین حال تخطیاز هر یک از ان ها می تواند بازی را با شکست کامل مواجه کند.
سرگرم کننده بودن
اولین و مهم ترین قانون درطراحی یک بازی کامپیوتری، توجه به جنبه "سرگرم کننده بودن" ان چیزی است که خلق میکنید چه مشغول ساخت یک بازی کوچک باشید که انجام ان تنها چند دقیقه وقت کاربررامی گیرد یا بازی با عظمتWorld Warcraft را طراحی می کنید که زمان لازم برای اتمامان بیش از یک هزار ساعت است، به خاطر داشته باشید که هدف نهایی شما تنها یک چیزاست: "سرگرم کردن مخاطب"
فریب ظاهر ساده این عبارت را نخورید. سرگرمی برای هرفرد تعریف متفاوتی دارد. خرید از فروشگاه ها، رانندگی در جاده، گوش کردن به موسیقی،تماشای فیلم، مطالعه کتاب و ... همه و همه تنها بخشی از سرگرمی های متداول مردمجهان هستند که هر یک از نمایی کلی مشابه به نظر می رسند. تماشای فیلم می تواندسرگرمی میلیون ها نفر باشد اما تفاوت نوع فیلم هایی که هر کس تماشا می کند، سرگرمیاو را از دیگران متمایز می کند. ان چه مسلم است، مخاطبان بازی ، حداقل در یکمورد توافق نظر دارند و ان هم استفاده از بازی کامپیوتری به عنوان یک سرگرمیاست. حال این بازی کامپیوتری باید توقع ان ها را در حد معمول براورده کند تا ازشکست رهایی یابد. مطمئنا به عنوان طراح یک بازی کامپیوتری نمی توان رضایت "تماممخاطبان" را به دست اورد، چرا که سلیقه ها بسیار متفاوت است اما حداقل کاری که میتوان انجام داد، این است که با انجام برخی کارها، سعی کرد توقع درصد بیشتریاز مخاطبان را براورده کرد.شناخت مخاطبان، مهم ترین کار است، این کار چندان هم مشکل نیست، به خصوص زمانی که قصد انجام نواوری در سبک ها رانداشته باشید و قرار باشد بر پایه سبک های موجود، بازی طراحی شود. برایشناخت مخاطبان باید ابتدا ان ها را پیدا کرد، بسیاری از بازی ها، سایت هایطرفداران خاص خود را در اینترنت دارند، در این سایت ها می توان نظرات مخاطبان هربازی را مشاهده کرد که چه چیز این بازی، ان ها را به خود جلب کرده است، کدامنواوری بازی، ان ها را به وجد اورده است و ... ،از همه این ها می توانیاری گرفت.
در این میان تنها به یک نکته باید توجه داشت : به نظرهایی که بیش ازحد امیخته با احساسات (چه مثبت و چه منفی) هستند، اهمیت چندانی ندهید. نگرش مغرضانهبه یک بازی می تواند فکرتان را درباره ان چه قرار است انجام دهید، تحت تاثیر قراردهد، به خاطر داشته باشید که قرار است بازی ای طراحی کنید که "اکثریت" از ان لذتببرند و نه فقط یک یا دو نفر.
به منظور نگاهى مختصر به وضعیت بازى هاى ویدئویى ورایانه اى در سطح بین الملل، مواردى گزیده ودر زیر اورده ایم:
- در ۷۵درصد از خانه هاى امریکا سیستم بازى هاى کامپیوترى وجوددارد.
- عمده استفاده کنندگان از بازیهاى رایانه اى در امریکا بین ۷تا ۳۴سال سن داشته و اغلب مرد هستند.
- در حال حاضر اغلب بازى کنان بازى هاىرایانه اى را پسران ۱۵-۲۴سال سن تشکیل مى دهند.
- یک جوان ۳۰ساله چینى که۶سال قبل شرکت بازى هاى ان لاین راه اندازى کرد هم اکنون دومین مرد ثروتمند کشورچین با یک میلیارد دلار دارایى به شمار مى رود.
- فروش بازى هاى ویدیویى درفصل اول اقتصادى سال ۲۰۰۵تقریباً ۲۳در صد بیش از سال قبل بوده و این افزایش بهبیش از ۲/۲میلیارد دلار رسیده است. که این افزایش به دلیل استقبال چشمگیر مردم ازدستگاه هاى بازى ویدئویى قابل حمل است.
- فروش دستگاه هاى بازى در سال ۲۰۰۵به بیشتر از یک میلیارد دلار رسیده است.
- اولین دوره مسابقات جهانى بازىهاى ویدیویى و رایانه اى در تابستان سال ۲۰۰۲در ژاپن برگزار شد جایزه اول ان صدهزار دلار بود و امتیاز پخش تلویزیونى ان نیز به فروش رسید هر کشورى با امکاناتکافى مى تواند متقاضى میزبانى باشد.
- بازى میست در سال ۱۹۹۳بیش از ۱۰میلیون نسخه و سرى بازى هاى سیمز نیز حدود هشت میلیون نسخه فروش داشته است.
- در سال ۲۰۰۳ارزان ترین محصولى که از سوى شرکتGame Cube عرض شد، مبلغ ۹۹دلار بوده است.
فصل اول-طراحی بازی
بخش اول :ساختار اسناد طراحی
مقدمه:هدف اسناد طراحی، بیان دید بازی، شرحمحتویات و اماده کردن یک طرح برای اجرا می باشد. اسناد طراحی به طور کلی یک کتابراهنما برای تولید کننده می باشد تا با کمک ان به هدف برسد، در این اسناد از ایدههای طراحی قهرمان تا انواع تکنیک ها و مهارت های ان برای هنرمندان و برنامه نویساننوشته شده است امّا متاسفانه این اسناد در بیشتر اوقات نادیده گرفته می شود و یا دررسیدن به اهداف این سند کوتاهی می شود که این کوتاهی می تواند توسط تولیدکننده،طراح بازی، برنامه نویس یا هنرمند انجام پذیرد.
هدف اسناد:هدف اسناد طراحی، ارتباط دیدن درجزئیات کافی با ابزارهای اجرایی است. این اسناد باعث حذف اشتباهات و ناشی گریطراحان، برنامه نویسان و هنرمندان در حین تولید و طراحی در اینده می شود و انهادیگر نخواهند پرسید که به عنوان مثال چرا این کار باید انجام شود؟ در حقیقت اسنادطراحی باعث ماندن برنامه نویسان یا دیگر اعضا در حیطه یک جعبه می شود.
اسنادطراحی چیزهای متفاوتی برای کاربران متفاوت یک تیم دارد، برای یک تولید کننده ایناسناد بسیار با اهمیت و همراه با نکات مهم برای ادامه کار می باشد. این اسناد یککتاب راهنما برای راهنمایی کردن و ارائه تمامی نکات لازم می باشد،و اگر نتواندنکات لازم را به طراحان گوش زد کند یا انرا برای اعضای تیم بخواند در اینده برایانها بی ارزش می شود.
در کل اسناد طراحی مجموعه ای کامل از وظایف، هنرها و کدها می باشد. اسناد طراحی تلاش یک تیم میباشد، و تمام تیم بزرگ بازی کنندگان بازیسهم بزرگی از طراحی را دارند.
استفاده از راهنما: توافق بر روی یک راهنمای ویژهمنفعت و سود بزرگی برای تمام پروژه می باشد، این کار باعث حذف اغراق در پروژه می شود و پروژه را واضح تر می کند. در زیر به برخی مزایای راهنما اشاره شده است:
روشنی و اطمینان: راهنما باعث واضح تر شدن و بهتر شدن اطمینانبه پروژه می شود. این مساله باعث ساخته شدن اسنادی است که خیلی راحت تر خوانده شودو همچنین اسنادی که راحت تر بتوان ان را نوشت،نویسنده اسناد می داند که تیم چهانتظاری از او دارد.
راهنما از فرایندهای معین یا روندی که در حال تعقیب توسعهاسناد است مراقبت می کند.
اماده کردن اسان جداول و طرح های ازمایشی: اسناد طراحییک سری راهنماهای ویژه ای را دنبال می کنند که خیلی راحت وظایف را به جداول ترجمهمی کند. لیست های اسناد مربوط به هنر و صدا نیازمند به هنرمند و اهنگساز است. وقتیداستان در قسمتی از مرحله قطع می شود طراح مرحله باید لیستی از اشیای مورد نظررا ثبت و توضیحات ان را بنویسد. تشخیص سطحهای برنامه و طرز عمل برنامهنویس، تشخیص عناصر بازی، ویژگی ها و تضمین کیفیت عملکرد تیم باید در هنگام اجرای یکطرح ازمایشی افزوده گردد.
راهنما برای ایده بازی: یک سند ایده بازی(game-concept) بیان کننده هسته ایده بازی می باشد. ایده باید بسیار مختصر و کوتاه باشد و جریانی ازایده ها را جاری کند.
به طور معمول تمام ایده به کارگردان محصول در حال توسعه(یا مدیر اجرایی) داده می شود،کارگردان می تواند تصمیم بگیرد که ایا ایده شایستگیکافی را دارد یا ندارد و سپس منابع کافی برای توسعه بازی را بدهد و ممکناست از ایده خوشش بیاید امّا درخواست تغییراتی را در ان بدهد.
یک ایده بازی بایدویژگی های زیر را داشته باشد.
• مقدمه • پس زمینه(اختیاری)
• تشریح و توصیفات • ویژگی های کلیدی
• سبک •سکو(Platform)
• طرح هنری ( اختیاری )
اکنون هر کدام از این قسمتها را که در حقیقت ساختار یک ایده را شکل می دهد توضیح می دهیم:
مقدمه:مقدمه ایده بازی محتوی چیزهایی است که شاید از مهمترینجملات کل ایده باشد، این جملات در حقیقت می تواند ضامن فروش سند به خریدار باشد.مقدمهدربردارنده عنوان، سبک، جهت، تنظیمات، edge، platformو دیگر چیزهای معنی دار، طوریکه خواننده حتی برای رسیدن به جمله بعد صبر نکند و تمام کلمات را با اشتیاق و دقتبخواند.Edge چیزی است که برای مجموعه بازی و صرف نظر از دیگر بازی ها در سبکشانتعریف می شود به عنوان نمونه:
Man or Machine یک بازی تیرانداز اوّل شخص برایPC است که از موتور Quake II استفاده می کند برای فرو بردن بازیکن به داستان یک ادماهنی فضایی-دریایی که در حال یک حماسه رزمی در میان ستارگان و جنگی مابین 37 کشوراست.
مقدمه باید گاهی اوقات با چندین جمله به منظور پذیرفتن قطع گردد، طولانی شدن بیش از حد مقدمه ایده ابکی بودن دید ایده پرداز را نشان میدهد.
پس زمینه (اختیاری): پس زمینه ایده بازی جایی است که باید رویدیگر محصول، پروژه ها، مجوزها یا دیگر مشخصه هایی که به ان اشاره خواهیم کرد را بسطبدهد، این قسمت اختیاری است. قسمت پس زمینه به طور طبیعی چیزی جدا ازمقدمه ایده بازی می باشد و خواننده می تواند از خواندن ان صرف نظر کند و سراغ قسمتهای بعدی برود، اما قسمت پس زمینه برای مشخصه های مجوز بسیار مهم است و نفوذ زیادیرا برای رها شدن عنوان خصوصاً در برخی سبک ها را دارد.
تشریح و توصیفات: در چند پاراگراف یا صفحه ،تشریح بازی به خواننده واگذار می شود. از دید دوم شخص استفاده کنید. داستان را طوریبسازید که به شکل یک تجربه به خواننده القا گردد و این شامل تمام عناصرکلیدی است که باید برای تعریف هسته اصلی روند بازی(Game Play) به کار برد وبه بیان بهتر این همان چیزی است که کاربر در حین بازی می بیند و همان کاری است کهکاربر در حین بازی انجام می دهد، یعنی خواننده همان شخصیت بازی شود. سطح جزئیات مرحلهنباید با یکGUI در تعامل باشد برای نمونه اینطور نوشته شود: (تاکتیکهای رادار را بررسی کنید و دو تا از دیوهای تربیت شده را که امده اند بردارید) به جای ان که بگویید: بر روی دکمه رادار تاکتیکی کلیک کنید تا پنجرهpops up ظاهر شود و سپس دو تا از دیوها را بردارید.
ویژگی های کلیدی: قسمت ویژگی هایکلیدی ایده بازی ،یک لیست از ایتم های نقاط، اصطلاحاً (گلوله) است که می تواندصرف نظر از دیگر اهداف برای بازی تنظیم شود، به بیان بهتر یک خلاصه از ویژگی هایی که در تشریح و توصیفات به ان اشارهشد را داشته باشد. ایننقاط می توانند قبل از جعبه بازی ظاهر شوندکه دربردارنده برخی جزئیات پشتیبانی است.
تصمیم بر این که در لیست ویژگی های بازی چه چیزهایی باید باشد یک کاربسیار حساس و بر اساس توازن است، لیستی که فقط یک یا دو ویژگی کلیدی در ان باشدیک لیست بد است. اگر هر چیزی را پیچیده تر از یک پازل در لیست قرار دهید ولیستی بیشتر از یک صفحه را ارائه دهید این مساله اشاره به این می کند که این پروژهیک کار بسیار دشوار و سخت است و کارگردانی که می خواهد ان ایده را به بازی تبدیلکند از پیچیدگی ها و دشواریهایی که ویژگی های ان دارد، می ترسد! لیستی که بسیار کوچکباشد، نشان از یک طرح کوچک دارد و همچنین لیستی که بسیار زیاد و ابکی باشد ویک پروژه بسیار بزرگ و قدرتمند را نشان دهد هر دو غلط است. نیازی به یک لیست ویژگی های معلوم ندارید همچون (گرافیک بزرگ،موسیقی موثر) . گرافیک بزرگ، موسیقی موثر و... اهداف رسیدنی در هر پروژه بازی میباشند.
سبک: در چند جمله کوتاه، تعیین سبک بازی و سلیقه بازی باید مشخص شود، برای این کار می توان از یک دسته بندی سبک های بازی در کتاب ها یا مجلات کمک گرفت ، نمونه هایی در مقدمه ذکر شده است.
Platforms: در چند جمله کوتاه، لیستی ازPlatform های هدف مشخص شود. اگر فکر می کنید ایده بازی در چندینPlatform قابل اجرا است بایدPlatform اوّلیه یا برتر را مشخص کرد و اگر ایده بازی از چندکاربره بودن تحت اینترنت پشتیبانی می کند و... تمام این مسائل باید در اینقسمت قرار بگیرد.
طرح هنری (اختیاری): هنر به فروش ایده بازی کمکمی کند و خواننده را در یک مسیر درست قرار می دهد. استفاده از هنر، ایده را به صورتجامع و بی همتا در می اورد.
اشتباهات عمومی:در زیر به برخی اشتباهات عمومی و راه حل ان ها اشاره کرده ایم.
• درمورد منابع، اسناد سوالات گیج کننده ای را همراه خود دارد، باید سعی کنید ایدهتان را با مشخصه ای که بتوان دوباره از ان کمک گرفت بسازید. محدودیت اصلی ایده ها این است که باید ان را برای یک زمان محدود و بودجه معقول نوشت وبتواند با یک تکنولوژی محدود تجربی کار کند. نمی توان از کمپانی انتظار داشت یک چرخش ناگهانی به سمت یک هوش مصنوعی جدید وپیشرفته بکند یا از یک موتوربروز و بسیار پیشرفته سه بعدی استفاده کند.
• اسناد گنجایش و حجم ندارند و نبایددر توضیحات مطالب کش دار نوشت.
• بازی یک تفریح نیست، یک تمرینکاربردی است که توسط ان کاربر به تمام خواسته هایش (نظیر: تیراندازی، فرمان، دویدن،خریدن، ساختن و دیدن) می رسد و خیالبافی می کند که چگونه بازیکن هرکدام از انها راانجام می دهد.
بخش سوم-داستان نویسی برای ساخت بازی
هنگامی که صنعت بازی سازی جوان بود داستان نویسی فقط مخصوص بازی های با سبک ماجرایی Adventureبود. سپس بازی های با سبک نقش افرینی role-playing gamesوارد صحنه شد و عناصر بسیار قوی وارد داستان های بازی شدند. اکنون داستان نویسی وارد تمامی سبک های بازی از جمله strategy actionو حتی sims(بازی های شهر سازی) شده است. یادگیری برخی مهارت های اصولی در زمینه چگونگی بیان یک داستان بسیار مهم است که به برخی از ان ها اشاره می کنیم.
طرح (شامل سه ساختار اصلی) :ساختار پایه باید شامل یک طرح خوب باشد که پیدا کردن این طرح مفید احتمالا زمان زیادی را می گیرد. یک داستان باید سه ساختار داشته باشد: ابتدا ، میانه و انتها.
ابتدا: می توان داستان بازی را با قطعه کوچکی از روند بازی(Game Play)شروع کرد بطوری که بازیکن چیز زیادی را نمی داند اما باید کار کوچکی انجام دهد . در کل روند بازی برای یک داستان نویس جوان که تاکنون فقط داستان می نوشته کار سختی است چرا که باید با این طرز تفکر داستان را بنویسد که خواننده باید بدون خواندن توضیحات او از تمامی داستان مطلع شود. در حقیقت باید یاد گرفت که چگونه داستان را شروع کرد و این کار فقط با تمرین و کسب تجربه بدست می اید .
میانه: هر چه که داستان جلوتر می رود بازیکن باید اهداف بزرگ تری داشته باشد و موانع بزگ تری جلوی او گذاشته شود.در بهترین داستان ها معمولا کار قهرمان ، چیره شدن بر کشمکش های درونی است و تنها پس از این کار است که می تواند به اهداف خود دست یابد. در حقیقت یک بازی ساز پیش از این که بخواهد صدها مانع در بازی بگذارد باید کاستی هایی را هم در بازیکن قرار بدهد، همه چیز نباید وقف مراد بازیکن باشد، او باید از کاستی هایی که در او وجود دارد بترسد و ترس از این کاستی ها نگذارد که او از موانع بگذرد و این خودش بیشترین هیجان را در بازیکن وارد می کند ، این در حالتی است که اگر او تلاش کند مسلما می تواند از این کاستی ها عبور کند.
انتها:پایان داستان وقتی است که قهرمان یا شخصیت اصلی داستان همه مشکلات و موانع را حل می کند.قسمت سوم بازی باید مانند پایان یک قطعه موسیقی باشد، پس از این که قهرمان داستان توانست به تمام مشکلات درونی و موانع غلبه کرد اماده می شود تا با مشکل خارجی داستان مواجه شود که معمولا این مشکل خارجی در شکل یک شخصیت اصلی منفی ظاهر می شود.در هر داستانی باید یک نوع کشمکش وجود داشته باشد باید یک شخص یا چیزی نگذارد قهرمان داستان با موفقیت به خواسته اش برسد و قهرمان با یک مبارزه بزرگ سد اصلی اهدافش را از جلوی راهش برداشته و به اهدافش می رسد.
محیط: یک داستان نویس احتیاجی به ازمایش طراحان هنری ندارد چرا که ان ها کار خود را خوب بلدند، ان ها هر روز تصاویر فوق العاده ای تولید می کنند و مسلما پیشرفت سخت افزار ها در کار ان ها تاثیر زیادی دارد.یک داستان نویس نباید فقط محیط بازی را معرفی کند بلکه باید نوع بازی را معرفی کند. به عنوان مثال بگوید که این بازی یک بازی تخیلی می باشد که می توان از عناصر جادویی در طراحی بازی استفاده کرد و یا یک بازی افسانه ای اما علمی باشد که به عنوان مثال می توان یک سیاره دور باقوانین غیر عادی طراحی کرد.
توسعه شخصیت های بازی:شخصیت های بازی،بیشتر، قسمت فریببنده بازی هستند. رویدادهای و اتفاقات انها برای مردم کاملاً جذاب وجالب توجه است. داستان های بسیاری تاکنون گفته شده اما بیشتر مردم شخصیت های اصلیداستان را بیشتر از سایر قسمت ها دوست دارند چرا که این شخصیت ها محرک داستانهستند و داستان بدون شخصیت همچون صفحه اخبار حوادث یک روزنامه می ماند.
بسیاریاز طراحان نمی خواهند که یک شخصیت را به عنوان شخصیت اصلی بازی طراحی کنند چرا کهباور دارند بازی باز باید همان شخصیت اصلی بازی باشد، امّا این کار باعثقدرتمند شدن بازی شما نخواهد شد. بازی های موفق دارای قهرمان هایی با شخصیتهای معین بودند. و این طور به نظر می اید که به عنوان مثال بازی بازها بسیار خشنودبودند که پاهایشان را در کفش های شخصیت هایی همچونDuke Nukem ، Lara Croft ، Max Payne ،James Bond و... می گذارند.پس باید تلاش کردتا برای داستان بازی شخصیت هایی ساخته شود که تا مدت ها در خاطر بازی بازباقی بماند.یکی از اصلی ترین ارکان شخصیت سازی تشدید تعقیب در پیداکردن مابینکشمکش و ارزو است و ان شخص که بیننده است بتواند مابین این دو انتخاب ایده الشرا برگزیند. قهرمان به کسب تجربه در جدال با کشمکش ها و برای رسیدن به ایده الهایشنیاز دارد، در چنین راهی است که می توان شخصیت هایی بسیار حرفه ای و محبوبساخت.
رشد شخصیت:در ادبیات سنتی ارزشیک داستان در رشد شخصیت ان شناخته می شد. چه تغییراتی قهرمان را با راه بدبختی وبیچارگی و سقوط شکل می دهد؟ چه می کند تا به تغییر زندگینزدیک شود؟ چه می کند که یکدفعه او می چرخد و به سمت یک شخص متفاوت حرکت میکند؟ هرچند در برخی داستان ها قهرمان تغییری در همه حال نمی کندو خمش وقایع بهخواست او انجام می شود. در بازی های امروز شخصیت ها بسیارکم رشد می کنند. امارهای انجام شده در بازی ها این مطلب دیده می شود که رشد شخصیتفقط در چیزهای بسیار ساده و ابتدایی نظیر افزایش مهارت و... است، زیراتوسعه شخصیت در یک رسانه خطی همچون فیلم مردم را در حالتی پر دغدغه و پریشانی میگذارد و صادقانه نمایش می دهد که چه کسی صادقانه برای ساخته شدن انتخاب شده است،امّا در بازی نمی توان با شخصیتی که زیر دست کاربر است چنین کاری کرد چون باعث میشود که در ساختن یک شخصیت تعاملی با مشکل مواجه شویم.
البته ذکر این نکتهضروری است که ممکن است برخی ها رشد شخصیتی را که در اینجا گفته شد با رشد شخصیت دربازی های با سبکRPG اشتباه بگیرند. رشد شخصیت در بازی های با این سبک در جهت تعاملی و مطابق با سلیقه کاربر برای بهتر طی کردن روند بازی صورت می گیرد، در صورتیکه رشد شخصیتی که در اینجا از ان صحبت کردیم در داستان اتفاق می افتد و باعث میشود که شخصیت در طی داستان به کلی تغییر کند و اخلاق و روحیاتش عوض شود که این با روح داستان نویسی برای بازی که باید شخصیتی کاملاً تعاملی و در زیر دست کاربر ساختنمی گنجد.
تعاملی:درخواست تعاملی کردن بازی با استفاده از داستانیکی از چالش برانگیز ترین قسمت های کار میان طراحان بازی و داستان نویسان است. دررسانه های سنتی مولف اقدام به کنترل داستان می کند و بدون هیچ مقاومتی جذب انتخابیمی شود که او ساخته است ولی در بازی ها یک کشمکش مستقیم میان ازادی که باید بهکاربر بدهیم و خطی بودن ساختار داستان وجود دارد. حل این مشکل در این است کهمحیط هایی ساخته شود که کاربر در ان ازادی داشته باشد و سپس بصورت سلسله مراتبی اینمحیط ها با هم دیگر در یک سری خطی قرار بگیرند. به عنوان مثال در بازی های باسبکRPG همچون یک سری محیط های جغرافیایی یا ماموریت ها، در بازی های با سبکAdventure این توانایی به کاربر داده می شود که بیشتر از یک معما برای کار در یکزمان بگیرد.
این ایده هم وجود دارد که کاربر با چالش های محدود مواجه شود و بطریقی در یکداستان بزرگ گنجانده شود. در این لحظه داستان نویس شروع به یک سریدستورالعمل های ماموریت های جدید می کند و شاید از میان صحنه های قطع کننده بازی کهاصطلاحاً به انcutscene می گویند، نتیجه اعمال مرحله را نشان دهد و کاربر را بهسمت چالش بعدی به جلو براند. به عنوان مثال: یک محیط را تصور کنید که در وقتغروب کاربر باید خود را به یک مسافرخانه برساند. امّا او باید از میان یک رودخانهبگذرد. او می تواند به خوبی سرتاسر رودخانه را شنا کند. یا بر روی درختان تاب بخوردو یا اینکه غول نگهبان پل را شکست دهد و از روی پل رد شود. امّا چیز مهم این است کهاو پیروز شود و تا پایان روز زنده بماند. کاربر به طور یقین از کل جزئیات داستانمطلع می شود، امّا ریسمان اصلی داستان در دستان مولف است. مسلماً کاربر می گوید:این قوه ابتکار او بوده تا ما با یکی از این رویدادها خود را به مهمانخانه برسانیم،امّا غول های جدید را برای فردا اماده کرده است و قهرمان از بازگشتش بهقلعه خوشحال خواهد شد.
این تکنیک در انواع سبک های بازی قابل اجرا است. با یکداستان خطی و یک محیط باز ، کاربر با راه های متفاوتی برای طی کردن بازی مواجه استدر عین حال مولف هم در حال کنترل کردن سیر خط داستان در بازی است و گذاشتنچند راه در یک بازی مزایای فراوان دیگری هم دارد که در مبحث طراحی مرحله به قدرکافی به ان اشاره شده است.
ابزارهای تجارت: این روزها طراحی بازیخیلی به نمایشنامه نویسی شباهت دارد و باید در ابزارهای ساخت فیلم حرفه ایباشیم. این مساله وقتی بیشتر خودش را نشان می دهد که موظف به ساختن برش صحنه هاcutscene و توضیحات متنی وقایع در بازی باشیم یا هرچیزی که برای دیالوگ هااستفاده می کنیم.
گذاشتن کلمات در دهان بازیگران و توصیف رفتارها برای حرکت او، نباید شبیه به یک رمان باشد. به عنوان مثال یک داستان نویس نباید در داستان بازی به توصیف حالات و روحیات درونی شخصیت ها بپردازد بلکه باید این توصیفات درونی را با نمایششخصیت در صحنه نشان دهد و برای این کار باید از دیالوگ ها و رفتارهای شخصیت در حینبازی یا فیلم، این حالات روحی نمایش داده شود، فراموش نکنیم که داریم برای یکبازی داستان می نویسیم و کاربر به هیچ عنوان نوشته ها را نمی خواند بلکه نوشتهها را می بینید پس باید همه چیز بر اساس دیدن حالات و رفتارها باشد نه خواندنو نمی توان در داستان نوشت فلان شخصیت یک فرد پرخاشگر است بلکه بایدنوشت فلان شخصیت با حالت پرخاشگری فریادی زد و با خشم به سمت شخصیت مقابل دوید.
برش صحنه:برش صحنه قطعه فیلمهای بسیار کوتاهی هستند که در حین، ابتدا و انتهای بازی به نمایش در می ایند،دران همچونیک طراح بازی باید هم یک نمایشنامه نویس بود و هم کارگردان و عکاس در تمامداستان. داستان همراه خودش مسئولیت می اورد، هر کس که بازی را بازی می کند ازدیدن تلویزیون و فیلم به سمت بازی رشد کرده است و هر کاربری برای خودش یک محککیفیتی پیرامون دیالوگ ها، محل دوربین، ایفای نقش ها و رفتارها دارد.
هر صحنه ای باید یک هدف ویژه داشته باشد. ایا این یکتوسعه شخصیت است، معرفی یک محیط جدید است، پیشرفت نقشه است یا تمام شدن اهداف مرحلهو رفتن به قسمت های بعدی است. طراحی صحنه در همکاری با حرفه ای ها است (معمولاًنویسنده ها و طراحان)، کسانی باید به شما برای رسیدن به اهدافتان کمک کنند کهبیشترین صرفه جویی را بکنند، این دارای دو مزیت می باشد، اول کاربر تنها از زحماتطراحان در پیشبرد داستان قدردانی نمی کند و دوم این است که به بودجه کار کمکبسیاری می شود و از صحنه های بسیار زحمت اور و پیچیده که هزینه های زیادی را بر جایمی گذارد و از همه بدتراز خستگی زیادی که به جای می گذارد جلوگیریمی شود.
توضیحات رویدادها:توضیحات رویدادها، سکانسهای کوتاهی در داخل مراحل است که معمولاً رهایی از برخی چیزهایی است که کاربران ها را انجام می دهد (اگر چه می تواند به همان اندازه بر پایه زمان باشد چهاین یک دیالوگ کوچک باشد یا یک کار بسیار کوچک. دو بازیMedal of Honor وHalo که با سبک جنگی هستندنمونه های بسیار خوبی در ارائه توضیحات رویدادها می باشند.
دیالوگ:یک صدای دیالوگ خوبحرفی است که منظم گفته شود. در دنیای واقعی ما گاهاً در حین صحبت کردن اشتباه میکنیم یا اصطلاحاً تپق می زنیم و سعی می کنیم تا گفته های اشتباهمان را تصحیح کنیم، امّا در بازی ها و فیلم ها، دیالوگ ها بسیار بهتر از دنیای واقعی هستند. نبایدوقت کاربر را با ارائه جملات اضافه هدر داد. هر خط از دیالوگی که می نویسیم بایددوبرابر وظیفه اش کار کند که این کار واقعاً به تجربه و تخصص نیاز دارد زیرا کاربربیشتر دوست دارد بازی کند تا مثل یک فیلم دیالوگ ها را بشنود.
در اینجا چندنکته در دیالوگ نویسی را قرار می دهم و پیشنهاد می کنم بازی های روز و موفق دنیا راگرفته و به دیالوگ های ان دقت کنید.
• هرگز چیزی را که کاربر می داند بادیالوگ تکرار نکنیم زیرا با این کار وقت او را هدر داده ایم.
• در اطلاع دادنخیلی دقت کنیم، اطلاع دادن به کاربر هرگز نباید طوری باشد که کاربر از طریق حرف زدن یک کاربر دیگر اطلاعاتی را پیرامون یک شخصیت دیگر که خودش می داند و به اناگاهی دارد را دوباره بشنود. به عنوان مثال هیچ چیز همچون این یک خط دیالوگ نمیتواند مبتدی بودن نویسنده را به کاربر ثابت کند: همانطور که می دانی، طلسم لرد ولدران وقتی می تواند کار کند که تو این سه جادو را سر جایشان قرار بدهی.
• در نوشتن دیالوگ ها سعی کنیم جملات را به صورت عامیانه بیان کنیم یعنی به همانصورتی که خودمان و همه برای مکالمه استفاده می کنند، به عنوان مثال از دیگراننمی پرسید: به کجا می روید؟ بلکه می پرسید: کجا می روی؟
پایان قهرمان:پایان بازی باید با قهرمان باشد. به طور یقین ابتدای داستان با امدن روند بازی می باشد امّا به طور قطع همواره می توانیم یک روند بازی بهتر را برای اطراف داستانبسازیم، هر سبک محدودیت های خاص خودش را دارد که باید به انها توجه کنیم .در کل در تمامی جریاناتبازی و به خصوص در ماموریت ها یا انتهای مراحل باید دو پایان نوشت پایان اوّلمربوط به پیروزی بازیکن و رسیدن او به هدفش است و پایان دوم مربوط به شکست است.البته در برخی بازی ها با نوشتن جمله بازی دوباره و تصاویری از جسد بازیکن یاحالتی که نمایش دهنده شکست او است را نمایش می دهند و مسلماً خود کاربر هم می فهمدکه در پایان شخصیت به اهدافش نرسیده و شکست خورده امّا در پایان اوّل که مربوطبه پیروزی است هم می توان برش صحنه از پایان موفقیت امیز و نتایج کار قهرمان رانشان داد یا با کلمه مرحله با موفقیت به اتمام رسید کار را تمام کرد امّا مسلماًنمایش برش صحنه تاثیر زیادی بر زیبایی و درک بیشتر داستان دارد.
— فصل دوم- توسعه بازی
بخش اول
برای شروع ساخت بازی باید از کجا شروع کرد؟
ازکدام دسته اید؟
در صنعت توسعه بازی اگر بخواهیم بهصورت کاملاً کلی بازی سازان را تقسیم کنیم انها به دو دسته سازندگان ابزارهای موردنیاز ساخت بازی (همچون سازندگان موتورهای بازی و...) و همچنین استفاده کنندگان ازاین ابزارها برای ساخت بازی تقسیم می شوند. به دسته اوّل توسعه دهنده ابزارهای ساختبازی و به دسته دوّم توسعه دهنده بازی می گویند. در حال حاضر بازی سازان کشور مافقط از دسته دوم هستند و هنوز دسته اوّل به صورت کامل ایجاد نشده است.دسته دوم یعنی استفاده کنندگان ازابزارها هم خود به دو دسته هنرمندان و برنامه نویسان تقسیم می شوند. مسلماً از ناماین دو دسته مشخص می شود که چه کارهایی انجام می دهند. برنامه نویس ها بیشتر به کار کدنویسی و اسکریپت نویسی در محیطهای متنی می پردازند و هنرمندان هم به کارهایی نظیرطراحی دو بعدی، مدل سازی سه بعدی (به عنوان مثال یا کمک برخی نرم افزارها همچون 3D Studio Maxطرح های دو بعدی را به یک مدل سه بعدی در فضای سه بعدی تبدیل می کنند) و سایر کارها نظیر طراحی مراحل و... مشغولند. ابتدا از شروع کار مدل ساز ها شروع می کنیم و سپس به شروع کار برنامهنویس ها خواهیم رسید.
شروع کار مدل ساز ها
یکی از راه های خوب برای مدلساز شدن استفاده از تصاویر برخی اشیا بهعنوان مرجع و کمک از انها برای ساختن مدل سه بعدی ان می باشد، این تصاویر می تواندبر اساس طرح هایی باشد که بر اساس تخیل بر روی کاغذ کشیده ایم یا تصاویریباشد که توسط دوربین از اشیا گرفته ایم. برای شروع می توان ازکتب مختلف اموزش مدلسازی در بازار استفاده کرد. بهترین نرم افزار مدلسازی برایتوسعه دهندگان که محبوبیت بسیاری هم دارد 3D Studio Max است البته علت هایی دیگریهم از استفاده وسیع توسعه دهندگان از این نرم افزار وجود دارد است همچون این که خروجی بسیاری از موتورها دراین نرم افزار بسیار قوی تر و بهتر کار می کند، البته نباید از قدرت نرم افزارMaya غافل شد ، نرم افزارMaya هم می تواند گزینه دوم و خوبی برای شروعمدلسازی باشد، نرم افزارهای دیگری هم هستند امّا چون منابع اموزشی برای ایندو نرم افزار بیشتر از سایر نرم افزارها است من یکی از این دو را به شما توصیه میکنم، هرچند که نرم افزارZbrush که برای ساخت و طراحی شخصیت به کار می رود سر و صدایزیادی به پا کرده و از کار با ان نباید غافل شد.
شروع کار برنامه نویسها
کدام دسته: توسعه دهندگان ابزاریا بازی
در صنعت توسعه بازی عموماً برنامهنویسان ساخت بازی به دو دسته توسعه دهندگان ابزار و توسعه دهندگان بازی تقسیم میشوند. تفاوت اصلی این دو دسته در این است که توسعه دهندگان ابزار متشکل از برنامهنویسان متخصص و با تجربه ای هستند که به ساختن ابزارهای مورد نیاز برای تولید بازی می پردازند. امّا توسعه دهندگان بازی کسانی هستند که از ابزارهای ساخته شده توسطتوسعه دهندگان ابزار استفاده می کنند. هر دو این گروه یک هدف دارند ساخت شدن بازی.اما توسعه دهندگان ابزار شاید در عمرشان حتی یک بازی کامل هم نسازند و اگر هم چیزیبسازند در حد یک نمونه کار اجرایی با موتور می باشد و همچنین به خاطر تخصصی بودنکار و نیاز به دانش بالا در علوم برنامه نویسی و ... کار این افراد بسیار سخت، امّااز نظر خودشان شیرین و لذت بخش می باشد. در ایران هم عده ای توسعه دهنده ابزارهستند اما در اقلیت هستند و بیشتر بازی سازان ایرانی توسعه دهنده بازی هستند. هنوز کسی را در ایران مشاهده نکرده ایم که یک موتور کامل ساخت بازی ایرانی را طراحیکند، البته کسانی بوده اند که با تلاش و پشتکار زیاد توانسته اند یک رندرگر ساده یا یکویرایشگر مرحله بسازند امّا هنوز تا رسیدن به یک موتور کامل راه بسیار زیادی در پیشاست و بازی بازهای ایرانی نباید فریب برخی شیادان که ادعای ساخت موتور بازی را میکنند امّا از کوچکترین اطلاعات فنی برخوردار نیستند را بخورند. تنها راه پیشرفتکشور توسعه دادن ابزارهای ساخت بازی مانند موتور بازی است و این توسعه دهندگانابزارهای ساخت بازی هستند که اینده این صنعت در کشور ما را تعیین می کنند مسلماًاگر توسعه دهندگان ابزار در صنعت جهانی ساخت بازی نباشند هیچ توسعه دهنده بازی نمیتواند هیچ بازی ای را بسازد، ساخت یک بازی نباید هدف باشد بلکه هدف باید رسیدن به علمساخت بازی باشد و اگر تا ابد هم یک توسعه دهنده بازی باشیم و با موتورهای امادهاقدام به ساخت بازی بکنیم نمی توانیم به دانش ساخت بازی ان هم به صورت کامل دستپیدا کنیم. امّا کسی که تجربه اندکی در علوم برنامه نویسی دارد نمی تواند و یا سختمی تواند برای ساخت یک موتور فعالیت کند و باید ابتدا با یک موتور منبع بازاماده کار کند و ان را توسعه دهد و وقتی که توانست نمونه های گرافیکی و یا حتی یکبازی توسط این موتور ها بسازد انوقت می تواند اقدام به تلاش برای ساخت یک موتوربازی اختصاصی بکند. عده دیگری هستند که سعی می کنند از نرم افزارهایی که بصورتکاربردی(Application) برای ساخت بازی طراحی شده استفاده کنند. این افراد هیچ علم ودانشی از برنامه نویسی ندارند و فکر می کنند که ساخت یک بازی یعنی چند کلیک موشوارهو ساخته شدن بازی است امّا این مساله اصلاً صحیح نیست و برای ساخت بازی باید زحماتفراوانی توسط یک گروه کاملاً مجرب و با تجربه در برنامه نویسی انجام گردد و کسی کههنوز مقدمات علم برنامه نویسی را نمی داند مسلماً نمی تواند یک بازی ساز خوب شود.برخی از افراد هم فکر می کنند که با نوشتن چند خط کد اسکریپت ساده در نرم افزارهای بسیار ساده ساخت بازی ( نظیر Game Maker یا 3D Game Studio ) به یک برنامه نویس تمامعیار بازی تبدیل شده اند این در حالی است که هیچ کدام از بازی سازان بزرگ دنیا بااسکریپت نویسی ساده در این نرم افزارها بزرگترین بازی های دنیا را نساخته اند کهاکنون این افراد می خواهند با توسل به این نرم افزارهای ساده بزرگترینبازی ها را بسازند بلکه این نرم افزارها فقط برای شروع کار مفید است و کاربر به محضاین که توانست با کمک این نرم افزار یک بازی ساده را بسازد باید سریعاً از کار باان دست کشیده و به سمت ابزارهای قوی تر و بهتر برود.کسانی که کاملاً مبتدیهستند باید علم برنامه نویسی را یاد بگیرند و می توانند در کنار یادگیری یک زبانبرنامه نویسی علم برنامه نویسی را هم یاد بگیرند. شخصی که می خواهد یک بازی سازبشود ابتدا باید یک برنامه نویس متبحر شود و به نوعی پیش نیاز بازی ساز شدن برنامه نویس شدن می باشد که باید با مباحث عمومی علم برنامه نویسی نظیر متغیرها، ارایهها، رشته ها، توابع و همچنین با مباحث شی گرایی نظیر ارث بری، چند ریختی، کلاس هاو... اشنا باشد.
بخش دوم
بازی های انلاین چیست و چگونه ساخته می شوند؟
مقدمه:امروزه کمتر بازیPC در بازارپیدا می شود که یک بخش نسخه انلاین یا تحت شبکه را در کنار بخش تک کاربره ان قرارنداده باشد. بازی های کنسولی هم اکثراً سعی می کنند به شبکه مخصوص ان کنسول متصلشده و به کاربرانشان امکانات بازی تحت شبکه با سایر کاربران در یک محیط مجازی رابدهند. امروزه برای وصل شدن به شبکه حتی دیگر نیازی به استفاده از کابل شبکه نیست وشما کافی است که با کمک کنسول یا رایانه به اینترنت وصل شوید و این بازی ها راتجربه کنید. حتی برخی از بازی های امروز فقط مخصوص بازی های انلاین و تحت شبکهعرضه می شود و شما در بازی هیچ قسمت تک کاربره را مشاهده نخواهید کرد(مانند بازی khanwars). این بازی هایک فضای مجازی را در اختیار کاربران قرار می دهند که کاربران به صورت زنده و انلاینمی توانند در ان فضا بگردند و بازی کنند.
در این قسمت می خواهیم مسائل زیررا مورد بررسی و ارزیابی قرار دهیم:
• انواع مختلف بازی های شبکه ای
• معرفی تکنولوژی شبکه
• انواع ساختارهای بازی های شبکه (ساختارPeer to Peer وClient/Server)
• انواع پروتکل های شبکه( UDPوTCP/IP)
• انواعAPI های شبکه(Berkeley Sockets وWindows Sockets (WinSock) و DirectPlay)
• دراعماق طراحی مراحل بازی های چند کاربره
انواع مختلف بازی هایشبکه ای
قبل از شروع هر بحث اینمساله بسیار مهم است که شما بدانید در کل بازی های تحت شبکه به چند نوع و چند سبکتقسیم می شود. هر یک از دو نوع بازی شبکه ای که در ادامه معرفی می شود خودشان بهچند سبک تقسیم می شوند،در کل بازی های شبکه ای به دو نوع تقسیم می شوند که این دونوع ساختار و اهداف کاملاً متفاوتی دارند.
1.بازی بر پایه قسمت Session based video games
2.جهان مجازی مداوم (Persistent virtual worlds)
بازی بر پایه قسمت:در محیط های بر پایهقسمت، هر بازیکن دارای یکClient در رایانه اش می باشد و از یک شخصیت که در بازینمایش داده شده و موقعیتی را می گیرد استفاده می کند. این شیوه بیشتر برای بازی هایاستراتژیکی استفاده می شود، در این بازی ها در یک قسمت بازیکن می تواند حرکت کند،چیزی را برای دیگر کاربران ارسال کند و تا زمانی که حرکت کنند صبر کند. اگر یک نوبتکامل شد اطلاعات لازم درون یک بسته شبکه گذاشته شده و برای تمامClient های مشترکدر ان قسمت ارسال می شود یا یک کار بهتر می تواند صورت بگیرد یک سرور نوبت بازی راتحلیل کرده و نتیجه رویدادهای لازم بازی را برای نوبت و چرخش بازی بعد رها کند.
دربازی های به صورت رایانه ای یا بازی هایplay by email (PBEM) ممکن است چند روز طولبکشد تا نوبت بازی تمام کاربران و بروزسانی انها، تا نتیجه سناریوشان کاملشود.
دراضافه بسیاری از بازی ها هستند که تمام کاربران می توانند در یک زمان یکسان در چرخهباشند بدون این که احساس کنند چرخه بازی دارای زمان خاص است. نمونه ای از این بازیها تیراندازهای اول شخص است.
بیشترین شهرت سبک های بازی بر پایه قسمت این است کهانتهای بازی تا جایی است که به هدف مشخص رسیده باشیم. ( یا تا جایی که تمام کاربرانبه حد کافی بازی کردند و می خواهند از بازی خارج بشوند) سپس بازی به اتمام می رسد ومی تواندrestart شود. امّا هیچ اطلاعاتی در سرور به استثنای ذخیره بالاترینامتیازات، انباشته و ذخیره نمی شود. اگر بازیکن بازی جدیدی را شروع کرد این بازیهیچ ارتباطی با قسمت های بازی که در گذشته، بازیکن ها ان را تجربه کردند ندارد ووضعیت هایی که او در قسمت های قبل داشته به هیچ عنوان برای قسمت های جدید ذخیره نمیشود به عنوان مثال وضعیت سلامتی، اسلحه ها، مهمات، دارایی ها و... که در قسمت جاریبرای قسمت های قبل و بعد در جایی ذخیره نمی شود و فقط در همان قسمت استفاده میشود.
این نوع بازی خود به سه سبک تقسیم می شود. 1. حریف کشی 2. تیم و شراکتی 3.گرفتن پرچم
حریف کشی:بازی سبک حریفکشی به این صورت است که گروهی از سرور ها برای اجرای بازی ابتدا از یک نقشه یامرحله شروع می کنند و تعدادی کاربر در ان نقشه یا مرحله تا زمان رسیدن به اهدافمرحله یا طی کردن زمان خاصی در ان مرحله می مانند. این کاربران هر کدام به صورتاصطلاحاً یکClient به سرور متصل می شوند و اگر اجازه دسترسی به بازی از طرف سروربه انها داده شود انها به شکل یک کاربر در مرحله یا نقشه بازی ظاهر می شوند و میتوانند بازی شان را شروع کنند. سرور همچنین می تواند تعدادی کاربر را که توسط هوشمصنوعی رایانه کنترل می شوند و اصطلاحاً به انbot می گویند را در بازی بفرستد. هدفسبک حریف کشی کاملاً واضح است. کاربران باید در این بازی سعی کنند سایر کاربران دربازی را از پای دراورده و بکشند، به این کار علاوه بر کشتن، اصطلاحاًfrag هم میگویند. بازی پس از یک دوره زمانی خاص به صورت خودکار به اتمام می رسد که این زمانمی تواند چیزی در حدود 5 دقیقه تا 1 ساعت باشد. امّا بازی می تواند در صورتی کهتمام بازیکن ها به غیر از یک نفر که برنده است کشته بشود یا این که شما تعدادحداکثری برای کشته شده ها تعیین کنید که به عنوان مثال اگر بازیکن های کشته شده بهفلان مقدار حد نصاب رسید بازی به پایان برسد. بازی هایQuake Arena وUnreal Tournament پرشهرت ترین بازی ها از این نوع سبک محسوب می شوند.
تیم و شراکتی:دربازی های با سبک تیمی یا مرحله گروهی سرور یکbackground را اجرا می کند.
بازیکن هاهمچون سبک حریف کشی از هر جای جهان وارد سرور شده و اصطلاحاًlog in می شوند و دربازی شریک می شوند. با این تفاوت نسب به سبک قبلی که هر کدام از این ها وارد یک تیممی شوند که این تیم ها در ضدیت با یکدیگر ساخته شده است و تنها کاربران نمی توانندهم تیمی های خودشان را بکشند. نوع شراکتی که تا حدود شبیه به نوع تیمی است هم بهاین صورت است که در نوع شراکتی شما عضو تیم های یکسانی می شوید که تیم مخالف شما درحقیقتbot هایی هستند که توسط رایانه کنترل می شوند و شما باید به همراه هم تیمهایتان که کاربران همچون خودتان هستند با اینbot ها بجنگند.
مشهورترین نمونهبازی بر پایه تیم بازیBattlefield 1942 می باشد. در این بازی کاربر می تواند یکتانک، جیپ، کشتی، زیردریایی و هواپیما را کنترل کند. کنترل اسلحه مرکزی تانک وکنترل مسلسل یا فقط راه رفتن در بازی در نوع حریف کشی تیمی و با هدف بیرون انداختن سایر دشمنان در صورت امکان است و در برخی حالات گرفتن پرچم دشمنهم جزئی از هدف می شود. البته در طراحی بازی و به خصوص بافت زنی لباس کاربرانخیلی مهم است که توسعه دهنده بازی هم بتواند طوری طراحی کند که دوستان و دشمناندر بازی قابل تشخیص باشند به عنوان مثال هر گروه لباسی با رنگ خاص داشته باشد و یاهر طرح دیگری که به ذهن می رسد. یک عیبی که سبک تیمی دارد ظاهر شدن اشخاصی استکه اصطلاحاً به ان کشنده تیم یاteam killers می گویند، این ها کاربرانی هست که همتیمی های خودشان را می خواهند بکشند و از ادامه بازی محرومشان کنند، زیرا اینها تحتپوشش کاربرانی از تیم مخالف هستند یا اینکه انها نمی دانند که بازی چگونه کار میکند و یا نمی دانند چه کسانی هم تیمشان است و نیست،برای همین تعداد زیادی از بازی های تحت شبکه تحت این سبک دارای تنظیمات بی اثر کردناتش دشمن می باشد که باعث می شود دیگر هیچ کاربری نتواند به کاربر دوستش اسیب بزند، هر چند که این روش باعث ایجاد یک حالت غیر طبیعی می شود که کاربر بتواند با اسلحه به راحتی به دشمنان بتازد در حالی که نگران اسیب دیدن هیچ کدام از هم تیمی هایش دراین اتش بازی و تاخت و تاز نباشد. راه دیگری هم هست و ان این است که یک مدیر درسرور نظارت کند و هر کاربری را که به هم تیمی اش شلیک کرد و او را تعمداً از پای دراورد او را از بازی حذف و نام کاربری اش را ببندد هرچند که این کار به صورت خودکارتوسط خود سرور هم شدنی است.
کشتن هم تیمی در هر جنگ سنگینی ممکن استرخ بدهد. پس می توان یک میزان حداکثری از کشته شدن هم تیمی تعیین کرد و وقتیکه به ان میزان رسید دستور رسیدگی و ملاحظه را توسط سرور داد، به عنوان مثال دربازی مذکور یعنیBattlefield 1942 بسیاری از مردم به خاطر رسیدن به اسلحه ای خاص همتیمی خودشان را می کشتند، یعنی زمانی که شخص و هم تیمی شان به سمت یک اسلحه حرفه ایمی رفتند و هر دو هدفشان یکسان بود یعنی برداشتن ان اسلحه خاص جنگی بین ان دو در میگیرد که مسلماً یکی از انها ان یکی را کشته و به هدفش یعنی رسیدن به ان اسلحه خاص می رسد. همچنین برخی از هم تیمی ها چون می خواهند کنترل یک ماشین را بدست بگیرند همتیمی راننده را برای رسیدن به این کار می کشند!
گرفتن پرچم:در این نوع بازی ها، بازیکن ها در تیمسازمان یافته هستند، هر تیم دارای تعدادی پرچم یا میله پرچم می باشد که باید از اننگهبانی کند و وظیفه بازیکنانlogin شده در سرور این است که به محل نگهداری پرچمسایر تیم ها بروند و پرچم انها را مورد سرقت قرار دهند و پرچم را به دوش گرفتهبه سمت یک میله پرچم ببرند و هر بار بازیکنان باید پرچم دزدیده شده را تا میله پرچمخانه خودشان مدیریت کنند و در نتیجه این کار امتیازی دریافت می کنند. اگر بازیکن درحین حمل پرچم ان را در فضای مجازی گم کند این پرچم می تواند توسط یکی از اعضای دیگرگروه یا گروه دشمن پیدا شود و برداشته شود.
پایان این نوع بازی ها معمولاً پس ازیک دوره معین از زمان یا زمانی که تعداد مشخص پرچم دزدیده شده به حد نصاب برسد، میباشد. چند نسخه از انواع متفاوت این بازی ها منتشر شده که می توان به سری بازی هایDelta Force اشاره نمود.
جهانمجازی مداوم:بعد ازمعرفی سه سبک نوع بازی بر پایه قسمت اکنون می خواهیم نوع دوم بازی ها را یعنی جهانمجازی مداومPresistent virtual world را توضیح دهیم. مدیریت بانک اطلاعاتی سرورتمام کاربران را برای بازی معین ثبت می کند، برای ثبت نام در بازی، نیاز به ریختن پول در حدود 5 الی 15 دلار در ماه است، سپس اجازه پیدا می کنید که بازیرا در 24 ساعت هر روز ان ماه بازی کنید. کاربر همچون یک انسان واقعی در یک محدودهشهری بزرگ، قاره یا حتی یک سیاره در جهان مجازی مداوم زندگی کرده و با گذشت زندگی،تجربه کسب می کند. همچون زندگی واقعی، در ان یک سیستم سیاسی بعلاوه سیستم اقتصادیقرار دارد و بازیکن باید رهبری گروهی از انسان ها را به عهده بگیرید.
این نوعکاملاً با نوع بازی بر پایه قسمت متفاوت است. در یک بازی با نوع جهان مداوم اطلاعاتدرباره کاربر (همچون نشان های شخصیت، سلامتی، تجهیزات و...) هر بار در خود بازیاجازه ذخیره شدن می گیرند. هنگامی که بعد از گذشت چند ساعت، روز یا هفته دوبارهشروع می کنید به بازی شخصیت شما همانی است که قبلاً با ان بازی می کردید و با همانمشخصات و قابلیات. در کل این نوع از بازی دو مولفه مرحله بندی و اطلاعات مداوم داردکه جداگانه انها را بررسی می کنیم.
مرحلهبندی:مرحله بندی بازی در حقیقت نوعی وجه های شخصیت ها را با یک سیستمهوشمند از قدرت ها و نشانه ها، کاربر را از انجام چیز خاصی از بازی بهبود می دهد. تنظیم کردن تمام این قدرت ها و نشانه ها به کلاس های خاص ، وظیفه زمان بری است.
اطلاعات مداوم:اگر بازیکن در جهان مجازی مداوماجازه دهد تمام قدرت شخصیت ذخیره شود، سخت افزار سرور تمام اطلاعات را در دیسکبانک اطلاعاتی قرار می دهد و این کار تا زمانی که سرور در حال اجرا و کارمی باشدانجام می گیرد. تمام اطلاعات بازی در حالت مداوم قرار دارد. از این رو جهان مجازیبه موجودیت و بازشدن خودش ادامه می دهد زیرا هزار بازیکن دیگر همچنان در حال بازیدر این جهان هستند. مشکل اینجاست که کاربرانی که در بازی جدی نیستند به زمان بیشتریبرای دست یابی به مراحل یکسان با سایر افرادی که مشغول بازی امّا جدی تر و چند ساعتدر روز هستند نیاز دارند،که این می تواند کاربرانی را که نمی توانند بیشتر بازیکنند نا امید کند. در این حالت برخی بازی هایی که محیط شان این چنین مشکلی داشت ازچند راه حل استفاده کردند، یکی از راه حل ها این است که بازیکن هایی که نمی توانندخیلی زیاد انلاین باشند و بازی کنند می توانند با سرعتی ضعیف تر قدرت خودشان رازیاد تر کنند و راه دیگر که در برخی بازی ها استفاده شده، این است که بازیکن می تواند در قبال دادن پول در دنیای واقعی به بازی ساز در قبال ان قدرت و اشیای لازم در جهانمجازی را بگیرد.
RPG در مقابلMMORPG: بازی های با سبکRole-Playing Game بازی هایی هستند که در یک محیطoffline بازی می شوند. امّا به صورت جهان گستر قابل استفاده است. همچون نوع جهانمجازی مداوم می توان ابعاد و احتمالات جدید را به ان اضافه نمود که باعث بزرگترشدنان می شود و در نتیجه این کار و فراخوانی قابلیت انلاین و چند کاربره، سبک جدیدی بانامmassive multiplayer online role playing درست می شود.
دستان میلیون هاانسان که بخواهند یک عنوان بین المللی را با موفقیت امتحان کنند چیز ساده ای نیست.بیشتر مردم کسانی هستند که انلاین هستند و به یک سرور واحد متصل هستند و بیشتروظیفه جامع تیم مدیریتی، این است که بازی با حداکثر سرعت و توانایی اجرا گردد. اینسوال است که چرا یک بازی واحد نمی تواند در یک سرور واحد اجرا شود؟ بسیاری ازاستراتژی ها از شکافتن وظایف درون قسمت مدیریت حکایت می کند. امّا عمومی ترین راهاین است که یک نمونه چند کاربره را بر روی چندین سرور اجرا نماییم طوری که کاربرنتواند شخصیتش را از این سرور یک سرور به دیگری ببرد.
حهان مجازی برای این کهچند بار نمونه های خاص بازی را اجرا کند به هر کدام از دیگری متصل نمی شود. اگر می خواهید به صورت انلاین با دوستتان بازی کنید باید ابتدا مطمئن شوید که تماماعضای تیم از یک سرور یکسان استفاده می کنند. هنگامی که در حال ساختن شخصیتتانهستید می توانید سرورتان را انتخاب نمایید، دیگر استراتژی که می توان از ان استفادهنمود استفاده از اقلیم متفاوت یا سیستم سیاره ای است. در این نوع سیستم هر قسمت ازجهان در یک سرور اجرا می شود. هنگامی که کاربر می خواهد از گوشه ای از جهان به گوشهای دیگر که در سروری دیگر قرار دارد برود باید یک بارگذاری کوچک را ببینید و تحملکند. در پس زمینه در حقیقت اطلاعات شخصیت از این سرور در حال انتقال به سرور دیگراست، برتری این روش در این است که تمام کاربران در یک جهان مجازی کاملاً یکسان قراردارند.
Lag :اخرین چیزی که باید در اینفصل در مورد بازی های چند کاربره بدانیمLag می باشد. اگر همواره یک بازی اکشنانلاین را بازی کرده باشید می خواهید بیشتر در مورد این اصطلاح بدانید زیرابیشتر مردم از توابع پیام استفاده می کنند.Lag،به سرعت خیلی کم سرور برمی گردد وبدترین حالت و موقعیت می باشد. اگر یک نفر تایپ کند:"Laaaaaaaaaag" او به ایناشاره می کند که اتصالش به سرور بسیار ضعیف است. زیرا اتصال ضعیف در حقیقت یک توقفکوتاه در بازی یا موقعیت و محل بازیکن است که باید این موقعیت و محل بازیکن هر چندثانیه تغییر کند و کاربر تخمین می زند که حرکتش کاملاً توسط سرور به درستی محاسبهنمی شود.
Lag دسته ای از رکود در بازی است، در حقیقت این مشکل زمانی اتفاق میافتد که بسته های اطلاعاتی نیاز به گردش از سرور بهclient را دارند. تنها راه حلمشکلlag این است که مساله انتقال اطلاعات چه از طریق اینترنت یا شبکه داخلی درست شود و خطی با سرعت بیشتر گرفته شود، بیشتر این مشکلات ناشی از سرعت کم انتقالاطلاعات ازclient می باشد. اگر ارتباط به شکلpeer to peer است که تمام بازیکن هابه نوعی باید این مشکل را تحمل کنند. هرچند که گاهی اوقات این احتمال هم وجود داردکه مشکلlag شدن به خاطرoverload شدن سرور با برخی ازclient ها باشد. در این حالتتعویض سرور می تواند مشکل را حل کند.
ساختارشبکه
ساختار پایه سیستم شبکه میتواند بر دو دسته تقسیم شود: 1.Peer to Peer2.Client/Server اینجا بحث بر سرچگونگی اتصال فیزیکی رایانه به شبکه نیست امّا چگونگی اتصال رایانه به دیگری مطرحاست. هر رایانه را می توان به دو صورتPeer to Peer یاClient/Server با سایر کاربران به صورت شبکه ای اجرانمود. تنها موجود واحدی که به شبکه متصل می گردد فقط برنامه ها هستند، همچون یکClient بعلاوه یک سرور یا یکpeer که بیشتر از یک نرم افزار نیست. حتیمی توان دو بازی تحت شبکه تیرانداز اوّل شخص را در عوض یکی بر روی رایانه اجرا نموده و با کمک دو مانیتور مشغول بازی شد. اکنون به تفصیل هر دو صورتPeer to Peer وClient/Server را توضیح خواهیم داد.
Peer to Peer :در یک شبکهPeer to Peer هرClient به تمام دیگرClient ها متصل است. این قاعده باعث می شود که هرClient مستقیماً با دیگران اتصالداشته باشد. در این حالت به هیچ سروری برای اتصال میان این دو نیازی نیست. شکل زیرساختارPeer to Peer را بهتر نشان می دهد:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
مزیت این نوع ارتباط:
• هر کاربر در هر زمان که بخواهد میتواند براحتی از شبکه خارج شود بدون این که موجب اختلال یا اشکال در ارتباط سایرکاربران شود.
معایب این نوع ارتباط:
• این نوع ارتباط دارای ترافیک زیاداست زیرا، اگر بخواهیم پیامی به تمامClient ها ارسال کنیم باید هرClient پیام رابهClient دیگر ارسال کند.
• عدم تمرکز در کنترل، اینجا مکان اشکاری برایذخیره لیست بالاترین امتیازها، لیست کاربرانband شده، لیست تنظیمات بازی و... وجودندارد.
• به طور عادی در میزان حداکثری کاربران به دلیل وجود ترافیک محدودیتوجود دارد.
Client/Server :در شبکههایClient/Server یک موجودیت یاentity یک سرور است و گروهی بازی یا هر ابزار کاربردی شبکه(client) نیز وجود دارد، که در شبکه اجرا می شود. دیگر موجودیت ها که می خواهند قسمتی ازشبکه باشند می توانند به سرور متصل شوند،و اگر این دسترسی را بگیرند، Client ها درشبکه قرار می گیرند. اگر یک پیام نیازمند ایجاد فرایندی مابینClient ها است یکClient اجازه ندارد که ان پیام را مستقیماً بهClient مورد نظر ارسال نماید و اصلاًچنین چیزی غیر ممکن است چون انClient اصلاً اتصالی باClient مورد نظر ندارد. درعوض تمام پیام ها به سمت سرور ارسال می شود و ان سرور پیام را به تمامClient ها یاان Clientکه باید پیام به دستش برسد ارسال می کند. برای درک بیشتر تصویر زیر راببینید:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
در این حالت از بازی های رایانه ای،سرور وظیفه ای در اجرای بخش مجازی بازی ندارد. سرور می تواند نمونه بازی را فقطشروع کند و به کاربران اجازه بازی بدهد. بنابر این سرور نیازی به محاسبه خروجیگرافیکی بازی ندارد. در عوض سرور در پراکندن پیام ها و محاسبهCollision detection (تشخیص تصادم) و چیزهایی مانند این درClient متمرکز می شود. البته می توان به سرور اجازهداد تا خروجی مجازی بازی را هم ارائه دهد در این حالت سرور می تواند یک نمونه ازبازی را هم در خودش اجرا کند.
تکنولوژیClient/Server معمولاً در بیشتر بازی هایرایانه ای استفاده می شود، مخصوصاً در بازی های تحت شبکه بسیار بزرگ نظیر بازی هایسبک MMORPG.سرور تمام نیازهای خودش در بانک اطلاعاتی را به کار می برد و با تماماطلاعات مداوم کار می کند زیراClient اجازه دسترسی مستقیم به اطلاعات را ندارد. پس هکرها می توانند کدهای یکClient را الوده کنند و کارهایی را کهنباید انجام بدهند را انجام دهند و باید مراقب این مساله هم بود.
اکنون میخواهیم مزایا و معایب این نوع از اتصال شبکه ای را برای شما توضیح دهیم:
مزایایشبکهClient/Server:
• این نوع شبکه برای بازی های شبکه بزرگ که از بانک هایاطلاعاتی استفاده می کنند بسیار مناسب است.
• هرClient فقط با یک موجود درشبکه کار می کند که ان موجود سرور است.
• این نوع شبکه دارای یک ارتباطمتمرکز و قوی مابینClient ها است.
• امنیت بالا، Client ها به اطلاعات مرکزیبازی دسترسی ندارند.
معایب شبکهClient/Server:
• اینجا یک نقطه شکست وجوددارد (اگر سرور قطع شود در حقیقت تمام شبکه قطع شده است).
• سخت افزار خاصیبرای سرور نیاز است.
• سرور به قدرت نیاز دارد.
تکنولوژی شبکه
بهطور اساسی، تنظیمات سیستم ارتباط شبکه ای با استفاده از کابل های مسی یا فیبرهاینور انجام می گیرد، و کاملاً شبیه به تلفن است که صدا را ارسال می کند.صدا در فرایندی قرار گرفته و مورد انتقال و مبادله با یک تلفن قرار می گیرد و صدا برای کسی که در حال صحبت با ان هستید بازپخش می شود، همچون کار اینسیستم اگر قسمتی از سیستم را دریافت کنید باید بدانید که چه نوع فرمت اطلاعاتیدر ان است.
کاربردهای یکسان برای یک شبکه رایانه ای استفاده از پروتکل های شبکه است. اینپروتکل ها تعریف می کنند که چگونه اطلاعات وارد شونده سازماندهی شوند؟ و اطلاعاتدارای چه محتوایی مورد سفارش ما باشند؟
مشهورترین پروتکل های شبکه عبارتند از:IPX/SPX، NETBEUI وTCP/IP (که برای اینترنت استفاده شده) هستند. البته بسیاری ازپروتکل های دیگر هم هستند که ما می توانیم در مورد ان ها در ادامه بحث کنیم امّاترجیح می دهم اوّلین بحثم را ازOSI Model شروع کنم که قسمتIP پروتکلTCP/IP میباشد.
OSI: مدلی از توسعهفرایند ارتباطات است که نام کامل انOpen System Interconnection می باشد و در سال 1970 توسط سازماناستاندارد جهانی(OSI) پایه گذاری شد. مدلOSI بر پایه 7 لایه ساخته شده است. یکفرایند ارتباطات همواره در بالاترین لایه اغاز می شود و به سمت پایین تا هفتمینلایه که پایین ترین لایه است کار می کند.
پس از این که اطلاعات از شبکه ارسالشد، اطلاعاتی که وارد مقصد می شوند باید از میان تمام هفتلایه دوباره عبور کنند. فقط در حالت معکوس، هنگامی که انها دوباره به بالاترین لایه میرسند کار اجرایی که انتظار ان می رود را می گیریم. در طی این روند هر لایه بااطلاعاتی که به کار ان می اید و به ان نیاز دارد کار می کند. یک تصمیم مهم در لایه چهارم باید انجام بگیرد، این تصمیم به این صورت است که باید تعیین کردبسته اطلاعاتی ایا به صورت بستهUser Datagram Protocol (UDP) ارسال شود یا به صورتTransmission Control Protocol (TCP) .تمامی لایه ها در تصویر زیر نشان داده شدهاست.
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
لایه 7Application : لایهApplication لایه ای است که در انجا کاربران راه های ارتباطی را تنظیم میکنند. اینApplication همان ابزاری است که با ان کار می کنید همچون ابزارEmail ، FTP Client یا حتی مرورگر اینترنتی، هر ابزاری که از پروتکل شبکه برای انتقال اطلاعات در شبکه استفاده می کند حتماً این لایه را به عنوان لایه هفتم وبالاترین لایه خودش استفاده می کند.
لایه 6Presentation : اینلایه، هسته معرفی اطلاعات است. به این مفهوم که ایا این اطلاعات برای حمل و نقل درشبکه رمز گذاری شده اند؟ ایا اینها فشرده هستند؟ و از این قبیل مسائل، اگراطلاعات رمز گذاری و فشرده سازی شده اند در صورت لزوم باید اطلاعات ورودی بازشده واز حالت فشرده شده خارج شوند.
لایه 5Session : این لایه تعیینمی کند که چگونه اتصال مابینClient وServer شروع یا تمام گردد. این لایه همچنینهمزمانی ارتباطات شبکه ای را بررسی می کند و ابزار را برای ارسال اطلاعات دراتصالات اجرایی توانا می کند.
لایه 4Transport : یک لایهTransport خطاهای اطلاعاتی را که باید ارسال بشوند را بررسی می کند و بسته ها را دریک مسیر سریعتر و راحتتر انتقال می دهد، در اضافه این لایه بررسی می کند که وضعیتجاری شبکه بسته های اطلاعاتی را صحیح ارسال و دریافت می کند و مهمترین کاری که اینلایه انجام می دهد تعیین نوع بسته ها بر اساس دو نوعUser Datagram Protocol (UDP) یاTransmission Control Protocol (TCP) می باشد.
لایه 3Network : برای ارسال بسته ها به مقصد درشبکه ، این لایه انها رابه یک ادرس مجهز می کند جایی که در مقصد می توانند پیدا بشوند. در این لایه کدها و سیگنال ها تحت یک پروتکل اینترنتی که اختصاراً به انIP می گویند نام گذاری میشوند و برای انهاIP تولید می شود.
لایه 2Data-Link : بررسی اعتبار ایمنی هر بسته قبل از ارسال با این لایه است. این لایه همچنیناتصال مابین دونقطه حقیقی سخت افزاری در شبکه را اماده می کند و بسته های اطلاعاتیرا به قطعه های کوچک که می تواند برای هر شخص ارسال شود تبدیل می کند.
لایه1 Physical : در نهایت لایه فیزیکی، لایه ای است که قطعه های کوچک را برروی کابل شبکه ارسال می کند و انها را بر اساس سیگنالHi/Lo تغییر می دهد. این بیتها به صورت فیزیکی به مقصد الکترونیکی (یا نوری) ارسال می شوند اطلاعات در این سطحرا اصطلاحاً (بر روی سیم) می گویند.
پروتکل ها
بدون پروتکل ها، ارتباطات شبکه امکانپذیر نیست. مشکل یکسانی کهاز ارتباطات شبکه ای می اید این است که رایانه می بیند که اطلاعاتی وارد شد امّااگر نداند که از چه پروتکلی استفاده شده است نمی تواند اطلاعات را تفسیر کند. رایانه باید بداند که اطلاعات چگونه به صورت تکه و کوچک شده گذاشته شده است. همچنینباید بداند که از چه قطع کننده ای برای شکستن اطلاعات به بسته ها و قطعه های کوچکاستفاده شده است. اگر از یک پروتکل یکسان برای ارسال و دریافت اطلاعات استفاده نشود سخت افزار نمی تواند بیت ها و بایتها را با هم در پیامش بگذارد و به شبکه به صورت صحیح ارسال کند. همانطور که قبلاً اشاره شد پروتکل های متفاوتی برای شبکه وجوددارد امّا در اینجا قصد دارم دو پروتکل مشهورتر و مهم تر در همه زمینه های شبکهاز جمله بازی های تحت شبکه را توضیح بدهم که ان دو پروتکلTCP وUDP میباشد.
UDP : UDP بی شباهت بهTCP ،یک راه غیرخطی برای ارسالاطلاعات می باشد که توانایی ان در اتصال مداوم کاربر به شبکه، پایدار نمی باشد از اینرو مقصد اطلاعات باید هربار که اطلاعات ارسال می شود نامگذاری شود. همچنین یکپروتکل بی ضمانت می باشد زیرا پس از ارسال اطلاعات لینک مابین منبع و مقصد بریدهشده و بازخوردی ندارد که ان را بررسی کند و ببیند که ایا بسته ها به سمت مقصد ایمن وبدون هیچ مشکلی و کامل ارسال شده اند یا نه.
از جمله مزایای استفاده از اینپروتکل این است که با از قلم انداختن بررسی ثبات و صحیح بودن ارائه اطلاعات سرعتبالایی را پیدا می کند. در یک بازی رایانه ای و زمانی که باید 20 بار در ثانیهموقعیت هر کدام از اشیایی که حرکت می کند را ارسال نمود اگر دو یا سه بستهگم شد مشکل خیلی خاصی نمی تواند ایجاد کند و Client می تواند در اخرینموقعیتی که قرار داشته باقی بماند.می توان یک بررسی کننده امنیتی برایUDP گذاشت،و هنگام ارسال بستهاز هر دو شیوه غیر ضمانت شده برای ارسال پیام های غیرمهم همچون اطلاعات مربوط به موقعیت و همچنین می توان از شیوه امنیتی برای پیام های مهم بازخورد از مقصد، همچون گلوله خوردن یک شخصیت استفاده نمود. همچنین می توان از هر دو پروتکلUDP وTCP استفاده نمود. می توان برای پیام هایی که گم شدن شانایراد اساسی در روند بازی ایجاد نمی کند ازUDP استفاده کرد همچون پیام های مربوطبه مختصات و موقعیت شخصیت ها، و برای پیام های حیاتی که بسیار مهم هستند همچون باختنشخصیت ها یا تیر خوردن انها می توان ازTCP استفاده کرد. امروزه موتورهایی وجود دارند کهاز هر دو این پروتکل ها استفاده می کنند به عنوان نمونه می توان به موتورTorque Game Engine اشاره نمود که در بخش شبکه از هر دو پروتکل استفاده میکند.
TCP/IP : پروتکلTCP که مختصرTransmission Control Protocol می باشد یک پروتکلاتصال محور یاConnection-Oriented می باشد. این پروتکل تنها در صورتی اجازه ارسالاطلاعات را می دهد که یک اتصال پایدار بین منبع و مقصد وجود داشته باشد، سپساین اتصال بعد از نگهداری تا زمانی که به طور واضح پایان پیدا کرد و کاربر ان را بست ادامه پیدا می کند، از این رو این اتصال تا زمانی که برنامه در حالت اجرا استپایدار باقی مانده و هیچ خطایی نباید در سخت افزار رخ دهد.TCP یک پروتکل ضمانت شدهاست زیرا هر بسته اطلاعاتی که ارسال می شود به صورت درونی تایید شده و در شکلی ازبازخورد مقصد است. اگر این بازخورد در داخل مقدار معینی از زمان بعد از ارسال پیاموارد نشود ارسال کننده به صورت خودکار دوباره پیام را ارسال می کند. TCPازاینرو یک چهره و وجه ضمانت شده ای را از خودش در زمینه ارسال و دریافت بسته هایاطلاعاتی دارد. هیچ بسته اطلاعاتی نیست که گم بشود زیرا اگر بسته اطلاعاتی گم بشودیک رونوشت از ان دوباره ارسال می شود. هیچ خطایی رخ نمی دهد زیرا تمام بسته هایزاید نادیده گرفته می شوند. دیگر مزایایTCP این است که بسته های اطلاعات خرد شدهرا به شکل سفارشی دریافت کرده و انها از قبل به صورت سفارشی به شکل یک بسته دوبارهسازی می شوند و به سمت مقصد ارسال می شوند. در عین حال شما می توان میزان کارکرد ان را دید، اما این پروتکل یک ترافیک اضافی ایجاد کرده و زمان کار شبکه را به پایینترین حالت ممکن پایین می برد امّا در عوض مطمئن هستید که هیچ کدام از بسته های اطلاعاتیشما گم نمی شود.
API هایشبکه
ما تمام ابزارهای 7 لایه مدلOSI را در اختیار نداریم زیرا بیشتر این لایه ها همواره در سخت افزار کار می کنند پس برایدسترسی بیشتر به لایه ها و سخت افزار نیاز به کار باAPI داریم. APIلایه ای ارتباطی بین برنامه نویس و سخت افزار است که برنامه نویس با کمکان می تواند به سخت افزار دسترسی و کنترل داشته باشد. در زیر می خواهیم لیستی ازAPI های مفید تحت شبکه را که دسترسی اسان به سخت افزارهای شبکه را می دهندمعرفی نماییم.
Berkeley Sockets :Berkeley Sockets اولینAPI بود که برای تعریفTCP/IP استفاده شد. در 1986 اینAPI برای نسخه های متفاوت سیستم عامل ها در دسترس بود کهالبته بیشتر، سیستم عاملUNIXاز ان استفاده می کرد. در 1991 نسخه 4.3 اینAPI اوّلین نقطه شروع برای توسعه دهندگان تحت ویندوز ان بود. امروزه اینAPI بیشتریناستفاده را در سیستم عاملLinux وUnix دارد و حتی به یکAPI استاندارد تحت شبکهبرای این سیستم عامل ها تبدیل شده است.
Windows Sockets: اینAPI قسمت کاملی از سیستم عامل ویندوز می باشد. بهطور جاری نسخه 2 ان در دسترس است و خیلی شبیه به نسخه قبلی اش می باشد واستانداردهای یکسانی باAPI قبلی یعنیBerkeley Sockets دارد. همچنیناگر برنامه تحت شبکه را با کمک اینAPI بنویسید برنامه می تواند با دیگرAPI هاکامپایل شود.
WinSock دارای چهره هایی است که ان را نمی توان درBerkeley Sockets پیدا کرد. ساختن یک برنامه تحت شبکه در ویندوز ان هم به اسانی هر چه تمام تر، که می تواند پیام های بر پایه تکرار را در سوکت های غیر همزمان بالا ببردکه این مکانیزم باعث می شود تا سوکت ها وقایع را به شما اعلام کنند. (مانند واردشدن اطلاعات جدیدWinSock ) یکAPI بسیار کارا و موثر که استفاده از ان اسان است امّا مانندتمامAPI های سطح پایین باید با توابع سطح پایین و استانداردها و معیارهایمتعارف یکنواخت دست و پنجه نرم کرد.
DirectPlay : یک مولفه از بسته مشهور و محبوب DirectX.DirectPlay کتابخانه ای است که از سوی مایکروسافت ارائه شده است و بیشتر برای پشتیبانی ازتوسعه دهندگان ابزارهای تحت شبکه به قصد ساخت بازی ساخته شده است. در این کتابخانهمقدار زیادی توابع سطح بالا وجود دارد همچون محلی برایLogin شدن بازیکن ها دربازی های شبکه و یک مسیریاب پیام و اتصالگرهای متفاوت. اگر به اسناد کمکی این کتابخانه نگاه کنید یک راهنمای جامع که بیشتر وظیفه اش تامین نیازهای کسیاست که می خواهد با کمک این کتابخانه یک بازی تیرانداز اوّل شخص تحت شبکه رابسازد ، وجود دارد.
اشکالی که در کتابخانهDirectPlay وجود دارد این است که فقط برایویندوز در دسترس است و فضاهای سرورهایMMORPG نمی توانند تحت ویندوز اجرا بشوند وباید حتماً تحتLinux یاUnix اجرا بشوند. همچنین اگر از اینAPI استفاده شود باید یک برنامه سرور جداگانه با استفاده از یکAPI شبکه دیگر تکمیل شود یااگر از اینAPI استفاده شد باید فقط از سرور ویندوز استفاده شود. ذکر این نکتههم ضروری است که چون اینAPI از یک پروتکل اختصاصی استفاده می کند به خاطر همیناتصال، یکClient که ازDirectPlay استفاده می کند به یک سرور غیر ازDirectPlay بسیار سخت می باشد. در هر صورت به عنوان حرف اخر از هر پروتکل، API و ابزارهایتحت شبکه که معیار استفاده فقط افزایش کارایی، سرعت و دقت باشد. فراموش نشودکه انتظار یک بازیکن تحت شبکه از بازی ساز مسلماً این نیست که بازی با بالاترینکیفیت گرافیکی ممکن ارائه شود بلکه با توجه به این که سرعت اتصالات اینترنت درایران در ضعیف ترین حالت ممکن قرار دارد و از طرفی رایانه هایی که در کافی نت هاقرار دارند ممکن است از سرعت و قدرت کافی برای شبکه داخلی برخوردار نباشند این استکه در کمترین سرعت ممکن هم بازی بتواند بهترین جواب را بدهد و سرعت انتقال بسته هایاطلاعاتی مابین رایانه و سرور یا اگرPeer to Peer استفاده می شود مابین رایانه هادر بیشترین حد ممکن باشد و در حقیقت سعی شود معیارها اوّل بر اساس سرعت بیشترو بعد بر اساس دقت باشد هرچند که همانطور که گفته شد با یک کار دقیق می توان ازتمامی پروتکل ها استفاده کرد و از دقت و سرعت هر دو پروتکل استفادهنمود.