لينوكس
و بازیهای كامپيوتری
حميد يوسف زاده
تا چندی پيش لينوكس به عنوان محيطی كه تنها بازینويسان غيرحرفهای در آن فعاليت داشتند، محيطی بكر و جذاب برای كار در زمينه بازیهای كامپيوتری به نظر میرسيد. اما در حال حاضر تعداد زيادی از بازیهای سورس آزاد – كه البته اكثر آنها نسخههای hack شده بازیهای تجاری پرطرفدار هستند – تحت لينوكس وجود دارند. بيشتر اين بازیها كه به عنوان مثال میتوان از Quake III، Arena، Civilization: Call to Power، Railroad Tycoon II، Myth II نام برد، در سالهای اخير به يك پنگوئن در لوگوی خود مزين شدهاند.
اما حقيقتاً برای بسياری از كاربران عادی كامپيوتر، در انتخاب يك سيستمعامل هيچ چيز بدتر از وجود نداشتن بازیهای بزرگ و جذاب تحت آن نيست. در حالی كه نصب يك بازی تحت محيط ويندوز به راحتی يك double click روی ماوس است، تا چندی پيش نصب بازیها تحت لينوكس بسيار مشكل بود، بخصوص نصب يك بازی سهبعدی تحت لينوكس را میشد با جراحی باز روی قلب يك سيستم كامپيوتر برابر دانست.
اما شرايط به سرعت درحال تغيير بود. در مارس 2000 شركت( Loki (
www.lokigames.com، بزرگ ترين توليدكننده بازیهای كامپيوتری تحت لينوكس، با همكاری شركت Creative Technologies كه يكی از معروفترين توليدكنندگان سختافزارهای چندرسانهای است، اعلام كردند كه به زودی با همكاری يكديگر يك كتابخانه به نام OpenAL (Open-source Audio Library) عرضه خواهند كرد كه به توليدكنندگان بازیهای كامپيوتری امكان ايجاد بسيار آسانتر درايورهای صدا و پشتيبانی از صدای سه بعدی تحت لينوكس را خواهد داد.
در حال حاضر لينوكس به خوبی گرافيك و صدای سهبعدی را پشتيبانی میكند، در نتيجه علاقه به ارائه بازیها تحت لينوكس روز به روز بيشتر میشود و اين سيستمعامل مجانی میرود كه به يك بازيگر فعال در زمينه سرگرمیهای كامپيوتری تبديل شود.
همانطور كه مايكروسافت با ارتقای DirectX 5به DirectX 6 رضايت خاطر توليدكنندگان نرمافزار و بخصوص بازیهای كامپيوتری را به دست آورد، ارتقای Xfree86 3 به نگارش 4، عرضه OpenAL و برخی ديگر از محصولاتی كه تحت لينوكس ارائه شدند، باعث شدند كه هزينه توليد بازیهای كامپيوتری تحت لينوكس بسيار كمتر شود و در نتيجه بسياری از شركتها بازیهای خود را تحت لينوكس عرضه كردند.
دوران طلايی بازیها
بازیها هميشه تحت لينوكس وجود داشتهاند. تقريبا از همان زمانی كه لينوكس پا به عرصه وجود گذاشت، يك برنامهنويس جرات خود را با نوشتن يك برنامه تحت X-window امتحان كرد. Asteroids (بر مبنای بازی Arcade)، Smiletris (مشابه بازی Tetris)، و بازی جذاب Mahjongg (نسخهای از بازی Shanghai) كه جزو اولين بازیهای تحت لينوكس بودند، همچنان همراه با آخرين نگارشهای لينوكس نصب میشوند.
يكی از پرآوازهترين بازیهای تحت لينوكس، بازی FreeCiv (
www.freeciv.org) است كه نتيجه يك كار تيمی برای ساختن يك بازی مشابه بازی Civilization است. نوشتن اين بازی در سال 1995 آغاز شده است و به مرور به يك بازی چندمحيطی (Multi-platform) تبديل شده است كه بيش از يكصد برنامهنويس در ايجاد جنبههای مختلف اين بازی با يكديگر همكاری میكنند. علاوهبراين، ويژگی ذاتی لينوكس يعنی پشتيبانی كارهای شبكهای باعث شده است كه ايجاد يك بازی چند كاربره يك اولويت اصلی برای ايجادكنندگان اين بازی به شمار رود. در واقع FreeCiv ماهها قبل از اينكه شركت Hasbro Interactive قابليت بازی چند نفره روی شبكه را در محصول خود قرار دهد، اين امكان را فراهم كرده بود.
در سال 1996 برخی ديگر از بازیهای مهم ديگر نسخه تحت لينوكس خود را ارائه كردند. بازی Doom كه اولين نسخه آن در سال 1993 به اتمام رسيده بود، از امكان دور زدن X-window slow lane و نوشتن اطلاعات مستقيما روی صفحه نمايش استفاده كرد تا محصول خود را تحت لينوكس امتحان كند. اين امكان توسط دانشجويان دانشگاه MIT فراهم شده بود. slow lane يك لايه نرمافزاری سيستمعامل است كه عمل نوشتن اطلاعات روی صفحه نمايش را انجام میدهد. دور زدن اين بخش از سيستمعامل و كار مستقيم با صفحة نمايش، افزايش قابل توجهی در سرعت برنامههای گرافيكی بوجود میآورد. به دنبال اين تجربه برخی ديگر از شركتها نيز از اين امكان استفاده كردند و بازیهای خود را به محيط لينوكس منتقل كردند. اما انتقال يك بازی به محيط لينوكس باعث شد كه اكثر توليدكنندگان بازیهای كامپيوتری متقاعد شوند كه لينوكس را میتوان يك سيستمعامل مناسب برای بازیهای كامپيوتری دانست. اين بازی Quake بود كه توسط شركت id software عرضه شده بود. توليد اين بازی در سال 1996 به اتمام رسيد و در سال 1997 نسخه سورسآزاد آن توسط John Carmack (يكی از برنامهنويسان id software) تحت ليسانس GNU منتشر شد و سپس Dave Kirsh (يكی ديگر از برنامهنويسان اين شركت) آن را به لينوكس منتقل كرد.
در حال حاضر شركتها از Quake III برای نشان دادن قدرت سختافزارها و نسخه لينوكس خود استفاده میكنند. بعد از آن John Carmack به عنوان يك فرد ثابتقدم در زمينه بازیهای لينوكس همواره در اين زمينه فعال بوده است.
اما محصول ديگری كه تحول قابل توجهی در زمينه بازیهای لينوكس به وجود آورده است، برنامه WINE (Windows Emulator) است كه با استفاده از آن میتوان بسياری از بازیهای تهيه شده برای محيط ويندوز را تحت لينوكس اجرا كرد. به اين ترتيب بدون نياز به هيچگونه تغييری در بازیها و تنها با استفاده از WINE میتوان بسياری از بازیها را تحت لينوكس اجرا كرد. فهرستی از بازیهايی كه امكان اجرا در محيط لينوكس با استفاده از WINEبرای آنها فراهم است در آدرس
www.linuxgames.com/wine قرار داده شده است. اما متأسفانه بسياری از اين بازیها تنها روی كارتهای گرافيك معدودی اجرا میشوند.
ماجرای تايتانيك
اگر قرار باشد مثالی بزنيم كه ثابت میكند لينوكس، گرافيك را به شكل عالی آن پشتيبانی میكند، بايد از «تايتانيك» نام ببريم. منظور، كشتی تايتانيك نيست بلكه فيلم «تايتانيك» را میگوييم. زمانی كه فيلم تايتانيك در 19 دسامبر 1997 به روی پرده آمد، برنامهنويسان لينوكس به وجد آمدند. البته نه به خاطر خود فيلم يا بازی هنرپيشههای آن، بلكه به اين دليل كه تايتانيك وجود خود را مديون سيستمعامل لينوكس بود. در واقع شركت Digital Domain جلوههای ويژه اين فيلم را (كه نياز به قدرت پردازشی فوقالعاده زيادی داشت) با استفاده از 105 كارگزار لينوكس ايجاد كرده بود.
Darryl Straussكه مديريت اين پروژه را به عهده داشت و قبل از آن هم كارهايی نظير Apollo 13، The Fifth Element، Dante`s Peak و What Dreams May Come را در كارنامه خود داشت، میگويد: در اين پروژه ما يكی از 500 سوپركامپيوتر برتر جهان را ايجاد كرده بوديم.
در همين زمان Strauss درست به همان دليلی كه بسياری از ديگر شركتها كارگزارهای اينترنت خود را به لينوكس منتقل میكردند، لينوكس را به عنوان سيستم عامل كار خود انتخاب كرد يعنی مجانی بودن لينوكس. در حالی كه هر نسخه از اكثر سيستمهای عامل موجود صدها و بلكه هزارها دلار هزينه به پروژه تحميل میكردند، انتخاب لينوكس باعث شد كه اين شركت ميليونها دلار صرفهجويی كند.
Strauss كه دستی هم در برنامهنويسی تحت يونيكس داشت، میدانست كه لينوكس حتی زمانی كه روی يك PC معمولی هم نصب شده باشد میتواند از عهده پردازش كارهای گرافيكی سنگين برآيد. به همين دليل به سراغ كارتهای گرافيكی Voodoo رفت كه در سال 1995 توسط شركت 3dfx Interactive ارائه شده بودند.
او میگويد «من در سال 1996 نگاهی به قابليتهای كارتهای Voodoo انداختم و به فكرم رسيد كه میتوانم از آن برای كار خود استفاده كنم.» در آن سال او 3dfx را متقاعد كرد كه به او اجازه دهد Glide را به محيط لينوكس منتقل كند. Glide يك مجموعه دستورات برنامهنويسی گرافيك سهبعدی است كه توسط 3dfx خاص كارتهای Voodoo ايجاد شده است، اما با استفاده از برخی مبدلها میتوان آن را برای ساير كارتهای گرافيكی نيز استفاده كرد. Strauss حدود يك سال از اوقات فراغت خود را روی اين كار گذاشت و سرانجام آن را به پايان برد. همزمان با به پايان رسيدن كار توليد فيلم تايتانيك، ارائه Glide و Mesa (يك پيادهسازی از OpenGL API) نيز گرافيك سهبعدی را به دنيای كامپيوترهای شخصی وارد كردند.
زمانی كه Strauss كار روی تايتانيك را به پايان برد، خود را برای يك تغيير آماده میديد. او در سال 1998 بعد از شش سال كار در زمينه جلوههای ويژه، خود را در اين زمينه بازنشست كرد. به اين ترتيب او تبديل به يك نويسنده تماموقت برنامههای گرافيكی تحت لينوكس شد و به شركت Precision Insight پيوست و ***** پروژه توليد سيستمهای گرافيكی Xfree86 برای لينوكس را به عهده گرفت.
از قانون تا لينوكس
Strauss تنها كسی نبود كه در سال 1997 متوجه بازار بكر لينوكس در زمينه بازیهای كامپيوتری و پتانسيل موجود در آن شد. Scott Draeker كه هم طرفدار لينوكس و هم هواخواه جدی بازیهای كامپيوتری بود نيز، متوجه اين نوزاد شد كه نياز به تربيت و راهنمايی داشت.
او متوجه تقاضاهای نسبتا زيادی شد كه به شركتهای توليدكننده بازی میرسيد و از آنها میخواست كه آخرين بازیهای تحت ويندوز خود را تحت لينوكس نيز عرضه كنند. او میگويد: «برخی از مشتریهای من شركتهای توليدكننده بازی بودند و من میدانستم كه آنها هرگز به اين كار، تن نخواهند داد؛ ولی من اين را هم میدانستم كه كاری بايد كرد».
در يك اقدام غيرمنتظره، او كار خود را رها كرد و تلاشی را آغاز كرد تا توليدكنندگان بازیهای كامپيوتری بزرگ و مشهور را برای انتقال محصول خود به لينوكس متقاعد كند. در سال 1998 او برنامه خود را بر بحث با شركت Activision برای انتقال بازی Civilization: Call to Power به لينوكس متمركز كرد.
آنچه كه كار Draeker در رها كردن كار خود و تلاش در اين زمينه را برجستهتر میسازد اين است كه او به هيچ وجه يك نويسنده بازیهای كامپيوتری كه شيفته لينوكس شده باشد نيست. رئيس شركت Loki Interactive Entertainment – كه شايد مشهورترين شركت توليدكننده بازیهای تحت لينوكس است – خود يك وكيل است. دانستن اين واقعيت شايد باعث شود كه بازینويسان تحت لينوكس با ديد عميقتری به بازیهای بعدی كه توسط اين شركت توليد میشود نگاه كنند. ولی يك نكته را نبايد از نظر دور داشت. Draeker عاشق بازیهای كامپيوتری است، عاشق لينوكس است و با خود عهد كرده است كه اين دو معشوق خود را در كنار هم قرار دهد.
اين كار، كار سادهای نيست. در ابتدا همه چيزی كه از دست او برمیآمد، ترغيب شركتهای بازینويس برای استفاده از اين سيستمعامل مجانی بود. ولی دو چيز او را در راهی كه انتخاب كرده بود استوار كرد: «اولين عامل اين كه من به داخل پروژه KDE رفتم و ماهيت آن را مشاهده كردم. و دوم اين كه يك كپی از سيدی RedHat را در جلد آن در يك مغازه مشاهده كردم». اكنون او به موقعيتی رسيده است كه هر شركتی كه میخواهد بازی خود را به لينوكس منتقل كند ابتدا با او مشورت میكند.
يك انتقال برای تمام برنامهها
با تمام مطالب گفته شده در بالا، بازهم توليدكنندگان بازی كه با لينوكس آشنايی نداشتند نوعی ترس از وارد شدن به اين عرصه احساس میكردند. اما با انتقالی كه يكی از برنامهنويسان Loki به نام Sam Lantinga انجام داد، كار بازینويسان تحت لينوكس باز هم كمی راحتتر شد.
در سال 1997 اين برنامهنويس تصميم گرفت كه يورش خود به دنيای بازینويسی را با ايجاد يك بازی جديد به نام Pirates Ho! (pirates.devolution.com) آغاز كند. او يك بررسی روی ابزارهايی كه برای نوشتن بازی تحت لينوكس وجود داشتند كرد. نتايج بررسی برای او كاملا نااميد كننده بود. ابزارهای بسيار كمی وجود داشتند كه با استفاده از آنها بتوان بازیهايی ايجاد كرد كه انتقال آنها از يك سيستمعامل به سيستمعامل ديگر به سادگی انجام شود.
Lantinga به اين نتيجه رسيد كه يك زبان برنامهنويسی گرافيكی مورد نياز است، كه برنامههای نوشته شده با آن به سادگی قابل انتقال بين دو محيط مختلف باشند. او با همكاری چند نفر ديگر كتابخانه SDL (Simple DirectMedia Layer) را ايجاد كردند. هر بازی كه با استفاده از اين كتابخانه نوشته شود، میتواند توسط برنامهنويسان مسلط به SDL به سرعت (در طی چند هفته يا چند ماه) به يك سيستم عامل ديگر منتقل شود.