Seattle Game Dev JS: نظرة إلى الوراء وخطوة إلى الأمام.
في شهر يناير من هذا العام، أتمت مجموعة مطوري ألعاب HTML5 لدينا عامها الأول. (إنهم يكبرون بسرعة كبيرة!) ومع وضع هذا الإنجاز في الاعتبار، نود أن نتقدم بشكر قلبي لجميع أعضائنا والجهات الراعية وكل من ساعد في جعل اجتماعاتنا تلك الشذرات الرائعة المليئة بالمعرفة التي هي عليها الآن!
ويبدو أن هذا العام سيكون أفضل من العام الماضي. لقد بدأناه بانقطاع في التيار الكهربائي، أعقبه تعافٍ مذهل وعرض تقديمي (على الرغم من انقطاع الكهرباء!) حول تحسينات HTML5، قدمه فريق Double Down للهواتف المحمولة. لا توجد لحظة مملة أبدًا!
في العام الماضي، ارتفع عدد أعضاء مجموعتنا من 0 إلى 380 عضوًا، وهو إنجاز ضخم! طاقم Game Dev JS هو مجتمع متنوع مليء بالمطورين والفنانين واللاعبين ومديري البرامج ومسؤولي الشبكات وعشاق JS من جميع الأنواع. أصغر عضو مطور لدينا يبلغ من العمر 13 عامًا فقط! من خلال الحفاظ دائمًا على تحديث المحتوى وتنشيط المتحدثين وتفاعل الأعضاء، تمكنا من بناء مجتمع قوي - ولم يكن بإمكاننا القيام بذلك بدونكم!
إذا كنت مهتمًا بـ JS، فإن اللقاءات (meetups) تمثل فرصة رائعة للاستمتاع وتعلم شيء جديد ومشاركة ما تعرفه والتعرف على بعض الشخصيات المثيرة للاهتمام.
النقاط الرئيسية
- نمت مجموعة Seattle Game Dev JS من صفر إلى 380 عضوًا في عامها الأول، بناءً على مزيج من المحادثات، والعروض التوضيحية السريعة (lightning demos)، وساعات الترفيه (happy hours).
- شملت تشكيلة المجموعة لعام 2012 حزمة HTML5 الكاملة: العرض (rendering)، وحيل الـ canvas، والصوت، والأغلفة الأصلية (native wrappers)، ونظام Windows 8، وهندسة خادم node.js.
- مجتمع مثل هذا ينجح لأنه يظل متعدد التخصصات بشكل متعمد - المطورون والفنانون ومديرو المشاريع ومسؤولو الشبكات، كلهم في غرفة واحدة.
- أفضل طريقة للحصول على قيمة من اللقاءات هي الحضور، وطرح الأسئلة، وفي النهاية تقديم عرض تقديمي بنفسك.
- التخطيط لعام 2013 مفتوح: نريد أفكاركم للموضوعات، واقتراحات الأماكن، وعروض المتحدثين.
لماذا تهم مجموعة مطوري ألعاب JavaScript
عندما بدأنا هذه المجموعة، كانت عبارة “تطوير ألعاب HTML5” لا تزال عبارة تجعل الكثير من الناس يشككون. كان عنصر <canvas> حديثًا، وكان أداء المتصفح غير متسق، وكان يُنظر إلى فكرة إمكانية إطلاق لعبة حقيقية - وليس مجرد عرض تقني - باستخدام JavaScript على أنها مجرد بدعة وليست منصة.
وبعد مرور عام، تغير هذا النقاش تمامًا. السبب في أهمية اللقاءات المحلية في مجال كهذا هو أن التوثيق يتخلف عن الواقع؛ فمنشورات المدونات تصف ما نجح قبل ستة أشهر، ومحادثات المؤتمرات تكون مصقولة لدرجة تصبح معها مجردة. إن ما يدفع المطور إلى الأمام فعليًا هو الجلوس بجانب شخص حل مشكلتك بالضبط في الأسبوع الماضي - مثل canvas يتلعثم على جهاز معين، أو عنصر صوتي لا يفتح على الهاتف المحمول، أو خط أنابيب بناء (build pipeline) يختنق بسبب حزمة أصول كبيرة.
ذات صلة: — الأعمال الفنية والأدوات والقوالب الجاهزة التي تدخل مباشرةً في مشروع Unity الخاص بك.
هذه هي الفجوة التي تملأها Game Dev JS. إنها ليست سلسلة محاضرات، بل هي غرفة مليئة بأشخاص يواجهون مشاكل تقنية في الوقت الحالي، ويتبادلون الملاحظات.
ما قمنا بتغطيته في عام 2012
إليكم بعض ما قمنا بتغطيته خلال العام:
- تطوير ألعاب Javascript: نظرة عامة – Grant Goodale, Massively Fun
- مكتبات رسومات الوضع المحتجز (Retained Mode Graphics Libraries) – Kevin Moore, Pixel Lab
- حيل Canvas غبية – Dean Hudson, Massively Fun
- نسخة HTML5 من لعبة Cut the Rope لشركة Zepto Labs – Joel Fillmore, Pixel Lab
- تحديات بناء تطبيق UIWebView أصلي حول تطبيق ويب HTML5 – Jeff Close, Adam Hardtke, Sean Stringer, and Nate Vaughn, DDI
- تقنية الغلاف الأصلي: CocoonJS – Iker Jamardo, Ludei
- تطوير ألعاب HTML5 لنظام Windows 8 – Giorgio Sardo, Microsoft
- تصميم محرك ألعاب يعتمد على node.js و express.js – Dean Hudson and Mason Browne, Massively Fun
- Co+Pilot: أداة مبنية باستخدام Javascript وبناء جملة يشبه JQuery للسماح للمستخدمين بإنشاء تطبيقات أصلية – Myron Millin and David Whitlark
- صوت ألعاب HTML5 فعال – Chris Khoo, Wappworks Studios
تم تقديم كل هذه المواضيع والعديد من المحادثات السريعة والعروض التوضيحية من قبل أعضاء المجموعة على مدار العام. وبالطبع، نجتمع معًا في بعض الأحيان في ساعات ترفيهية أيضًا!
إذا كنت تتسوق: — محرك HTML5 قائم على المتصفح بدون تعليمات برمجية ويتم تصديره إلى الويب والهاتف المحمول وسطح المكتب.
شكر خاص جدًا لـ Double Down Interactive وBig Fish Games وGameHouse وThe Makers Space على الاستضافة!
الثيمات الكامنة وراء المحادثات
بالنظر إلى تلك القائمة، نجد بعض الخيوط الواضحة التي تربط بينها - وهي تستحق التسمية، لأنها تطابق تقريبًا القرارات التي يتعين على أي مطور HTML5 اتخاذها.
العرض وسؤال الوضع المحتجز (retained-mode). حديث كيفن مور عن مكتبات رسومات الوضع المحتجز و”حيل Canvas الغبية” لدين هدسون يقعان على طرفي نقيض من مفترق طرق معماري حقيقي. يمنحك الرسم على الـ canvas في الوضع الفوري (Immediate-mode) تحكمًا كاملاً وأقل قدر من النفقات العامة، ولكنك تدير كل عملية إعادة رسم بنفسك. أما مكتبات الوضع المحتجز (السلالة التي تمر عبر أطر عمل مثل CreateJS وPixiJS ولاحقًا Phaser) فتمنحك رسمًا بيانيًا للمشهد (scene graph)، واختبار التصادم (hit testing)، والتحريك (tweening) جاهزة للاستخدام - وذلك على حساب طبقة تجريد بينك وبين وحدة معالجة الرسومات (GPU). لا يوجد خيار “صحيح” مطلق؛ فالإجابة الصحيحة تعتمد على ما إذا كانت لعبتك عبارة عن حفنة من الصور (sprites) أم عالم معقد قائم على الحالة.
مشكلة الغلاف (wrapper). ثلاث محادثات منفصلة - جلسة DDI UIWebView، وعرض CocoonJS التقديمي من Iker Jamardo، وCo+Pilot - كلها دارت حول نفس السؤال: كيف يمكنك إيصال تطبيق ويب إلى متجر التطبيقات؟ في عام 2012 كانت الخيارات تقريبًا:
| النهج | ماذا يقدم لك | المقايضة |
|---|---|---|
| تطبيق ويب عادي | سلاسة تامة، تحديثات فورية | لا وجود في المتجر، واجهات برمجة تطبيقات (APIs) محدودة للجهاز |
| غلاف WebView أصلي | توزيع عبر المتجر، بعض الربط الأصلي (native hooks) | سقف للأداء، عدم تطابق واجهة المستخدم مع إطار المتصفح الأصلي |
| غلاف متسارع (مثل CocoonJS) | لوحة رسم (canvas) مسرعة بواسطة GPU، سرعة أقرب إلى السرعة الأصلية | الارتباط بمورد واحد (Vendor lock-in)، تعقيدات خاصة بالمنصة |
ولا يزال هذا الجدول وسيلة مفيدة للتفكير في القرار اليوم، على الرغم من تطور الأدوات المحددة.
الصوت. كان حديث كريس خو حول الصوت الفعال لألعاب HTML5، ولا يزال، واحدًا من أكثر المواضيع التي لا تحظى بالتقدير الكافي في هذا المجال. الصوت هو الجانب الذي تتعطل فيه ألعاب الويب في أغلب الأحيان: سياسات التشغيل التلقائي، واختلافات دعم برنامج الترميز (codec)، وزمن الاستجابة بين إيماءة المستخدم وتشغيل الصوت فعليًا. إذا كنت تبني لعبة اليوم، فخصص وقتًا حقيقيًا للصوت - فهي ليست مجرد مشكلة “إدراج ملف”.
جافا سكريبت من جانب الخادم. كان حديث دين هدسون وماسون براون حول تصميم محرك الألعاب باستخدام node.js وexpress.js بمثابة إشارة مبكرة إلى أنه يمكن للخادم والعميل مشاركة لغة واحدة. وهذا الأمر أهم مما يبدو: كود مشترك للتحقق من حالة اللعبة، وتنسيقات بيانات مشتركة، ونموذج ذهني واحد عبر كامل البنية التقنية (stack).
كيفية تحقيق أقصى استفادة من اللقاء (Meetup)
إذا كنت جديدًا في هذا النوع من المجموعات - أو كنت تتابع من بعيد ولم تشارك بعد - فإليك النصيحة العملية التي نقدمها لأي شخص.
- تعال بمشكلة واحدة محددة. جملة “لعبتي بطيئة” تجلب لك التعاطف، أما جملة “لوحة الرسم (canvas) لدي تسقط الإطارات عندما أرسم أكثر من بضع مئات من العناصر (sprites)” فتجلب لك إجابة.
- تحدث مع الشخص الذي بجانبك، وليس المتحدث فقط. الحديث هو مجرد ذريعة؛ أما القيمة الحقيقية فهي في محادثات الردهات.
- ألقِ عرضًا سريعًا (lightning talk). خمس دقائق عن شيء تعلمته هي أسرع طريقة لتصبح شخصًا معروفًا في المجموعة. لا تحتاج إلى أن تكون خبيرًا - بل تحتاج فقط إلى أن تكون قد حللت مشكلة واحدة.
- تابع التواصل. تبادل معلومات الاتصال، وأرسل فعليًا الرابط أو مقتطف الكود الذي وعدت به.
- أحضر وجهة نظرك غير التطويرية. يطرح الفنانون، ومديرو المنتجات (PMs)، ومسؤولو الشبكات الأسئلة التي ينسى المطورون طرحها، وغالبًا ما تكون هذه الأسئلة هي الأكثر فائدة في القاعة.
بناء مجتمع يدوم
النمو من صفر إلى 380 عضوًا في عام واحد قد يبدو كمقياس شكلي، لكن الرقم الذي يهم حقًا هو نسبة الاستبقاء (retention) - كم عدد هؤلاء الأشخاص الذين عادوا مجددًا. إليكم بعض الأشياء التي تعلمناها حول الحفاظ على حيوية المجتمع التقني:
- نوع المحتوى. إذا كان كل اجتماع عبارة عن درس تعليمي للمبتدئين في لوحة الرسم (canvas)، فسيتوقف الأعضاء ذوو الخبرة عن الحضور. وإذا كان كل اجتماع عبارة عن تحسين عميق لوحدة معالجة الرسومات (GPU)، فستفقد القادمين الجدد. امزج بين النظرات العامة، والغوص العميق، والعروض التوضيحية.
- اجعل حاجز التحدث منخفضًا. العروض السريعة وعروض الأعضاء التوضيحية تقلل من الرهبة وتبرز الأشخاص الذين لن يتطوعوا أبدًا لشغل فقرة زمنية كاملة.
- أطعم الناس، حرفيًا. الساعات السعيدة والوجبات المشتركة تفعل لتماسك المجتمع أكثر مما يفعله أي قدر من التخطيط لجدول الأعمال.
- اشكر مضيفيك علنًا. قدمت لنا Double Down Interactive وBig Fish Games وGameHouse وThe Makers Space قاعات، والقاعات هي الشرط الأساسي غير المبهر لكل شيء آخر.
- اجعل المجتمع مرحبًا بكل الأعمار والخلفيات. أصغر أعضائنا يبلغ من العمر 13 عامًا. وهذا ليس أمرًا غريبًا - بل هو تذكير بأن هذا المجال يتميز بحاجز دخول منخفض بشكل غير عادي، ويجب أن تعكس المجموعة ذلك.
التطلع إلى عام 2013
يبدو الأمر رائعًا، أليس كذلك؟ ما الذي تودون أن نتحدث عنه في عام 2013؟ وأين تريدون أن نلتقي؟
بعض الاتجاهات التي تثير فضولنا، ونود الحصول على آرائكم بشأنها:
- أداء الهاتف المحمول والتوصيف (profiling) — كيفية قياس مكان ضياع الإطارات فعليًا، باستخدام أدوات تطوير المتصفح واختبار الأجهزة.
- تعدد اللاعبين والشبكات — WebSockets، وتعويض زمن الوصول (latency compensation)، والحقائق الفوضوية للمزامنة في الوقت الفعلي.
- الأدوات وسير العمل — أنظمة البناء (build systems)، وخطوط تدفق الأصول (asset pipelines)، وكيفية شحن الفرق الصغيرة لمنتجاتها بدون مهندس أدوات مخصص.
- الفيزياء والاصطدام — متى تستخدم مكتبة جاهزة ومتى تكتب مكتبتك الخاصة.
- إمكانية الوصول والإدخال — منصات لوحة المفاتيح، واللمس، والتحكم في الحركة، وكيفية دعم أكثر من واحدة دون مضاعفة جهد العمل.
ردوا أدناه بأفكاركم أو غردوا إلى @massivelyfun باستخدام الوسم #GameDevJS. نراكم قريبًا!
الأسئلة المتداولة
ما هو Seattle Game Dev JS؟
إنها مجموعة لقاءات في منطقة سياتل للأشخاص المهتمين بتطوير ألعاب JavaScript وHTML5. تجمع المطورين، والفنانين، والمصممين، ومديري البرامج، ومسؤولي الشبكات، وعشاق JS بشكل عام للمحاضرات، والعروض التوضيحية السريعة، والفعاليات الاجتماعية.
هل أحتاج إلى أن أكون مطورًا خبيرًا للحضور؟
لا. تدمج المجموعة عمدًا بين المحاضرات العامة والتعمق التقني، ويتراوح الأعضاء من هواة في سن 13 عامًا إلى مهندسين محترفين في استوديوهات عريقة. إذا كنت فضوليًا بشأن تطوير ألعاب JS، فمكانك معنا في القاعة.
كيف يمكنني اقتراح محاضرة أو موضوع؟
رد في التعليقات على هذا المنشور، أو غرد إلى @massivelyfun باستخدام الوسم #GameDevJS. نحن نبحث بنشاط عن أفكار للموضوعات، واقتراحات للأماكن، وعروض للمتحدثين لعام 2013.
ما هي أنواع المواضيع التي تغطيها المجموعة؟
تاريخيًا: تقنيات العرض ولوحة الرسم (canvas)، ومكتبات الرسومات، والأغلفة الأصلية (native wrappers) والتوزيع عبر متاجر التطبيقات، وصوت HTML5، وتطوير Windows 8، وهندسة خادم node.js/express.js. نحن مهتمون بالتوسع في توصيف أداء الهواتف المحمولة، وشبكات تعدد اللاعبين، والأدوات، والفيزياء، وإمكانية الوصول.
من يستضيف الاجتماعات؟
لقد استضافتنا كل من Double Down Interactive، وBig Fish Games، وGameHouse، وThe Makers Space، ونحن ممتنون لهم جميعًا. إذا كانت شركتك تملك مساحة وترغب في دعم مجتمع المطورين المحلي، فنحن نود التواصل معك.
هل هذه المجموعة مخصصة للألعاب فقط؟
التركيز ينصب على الألعاب، ولكن المهارات تتداخل بشكل كبير مع تطوير الويب والتطبيقات العامة — فعمليات رندرة الـ canvas، ومعالجة الصوت، والأغلفة الأصلية (native wrappers)، وبنية Node.js، كلها تُطبق بشكل جيد في مجالات تتجاوز الألعاب. كما أن الكثير من أعضائنا يعملون على مشاريع غير متعلقة بالألعاب.
شارك هذا: Twitter Facebook Google Pinterest Reddit
مزيد من القراءة
- HTML5 — ويكيبيديا
- Canvas element — ويكيبيديا
- Node.js — ويكيبيديا
- Meetup (service) — ويكيبيديا
Frequently asked questions
What is Seattle Game Dev JS?
It's a Seattle-area meetup group for people interested in JavaScript and HTML5 game development. It brings together developers, artists, designers, program managers, network admins, and general JS enthusiasts for talks, lightning demos, and social events.
Do I need to be an experienced developer to attend?
No. The group deliberately mixes overview talks with deep technical dives, and members range from a 13-year-old hobbyist to professional engineers at established studios. If you're curious about JS game development, you belong in the room.
How can I propose a talk or suggest a topic?
Reply in the comments on this post, or tweet @massivelyfun using the GameDevJS hashtag. We're actively looking for topic ideas, venue suggestions, and speaker pitches for 2013.
What kinds of topics does the group cover?
Historically: rendering and canvas techniques, graphics libraries, native wrappers and app-store distribution, HTML5 audio, Windows 8 development, and node.js/express.js server architecture. We're interested in expanding into mobile profiling, multiplayer networking, tooling, physics, and accessibility.
Who hosts the meetings?
We've been hosted by Double Down Interactive, Big Fish Games, GameHouse, and The Makers Space, and we're grateful to all of them. If your company has space and wants to support the local dev community, we'd love to hear from you.
Is this group only about games?
The focus is games, but the skills overlap heavily with general web and app development — canvas rendering, audio handling, native wrappers, and node.js architecture all apply well beyond games. Plenty of our members work on non-game projects. Share this: Twitter Facebook Google Pinterest Reddit <!-- citations:start --> Further reading - [HTML5](https://en.wikipedia.org/wiki/HTML5) — Wikipedia - [Canvas element](https://en.wikipedia.org/wiki/Canvas_element) — Wikipedia - [Node.js](https://en.wikipedia.org/wiki/Node.js) — Wikipedia - [Meetup (service)](https://en.wikipedia.org/wiki/Meetup_(serv
قم بتخزين مكتب التطوير الخاص بك
كتب برمجة الألعاب ولوحات المفاتيح الميكانيكية والشاشات وأجهزة مكتب التطوير