عن المشروع

تعد Violencetown لعبة action-RPG ثنائية الأبعاد بسيطة ولكنها غنية بالأنظمة، يمكن لعبها مباشرة في المتصفح دون الحاجة إلى تبعيات أو خطوات بناء. تم بناؤها بالكامل باستخدام vanilla JavaScript وباستخدام HTML5 Canvas، وهي تركز على الوضوح المعماري والتصميم الحتمي. تعمل اللعبة بناءً على ساعة عالم واحدة: حيث يؤدي كل إدخال من اللاعب إلى تقديم دور واحد، مما يؤدي إلى مزامنة القتال وسلوك الـ NPC ودورات الليل والنهار. تستخدم عجلة الإجراءات الشعاعية نموذج حالة نقياً حيث تحدد وظيفة واحدة المربعات المتأثرة، مما يضمن الاتساق بين التغذية الراجعة المرئية، وتأكيد النيران الصديقة، وفض الضرر. يتم التحكم في الـ NPCs بواسطة مقياس 'disposition' واحد يؤثر على الحوارات، والرشاوي، والتحالفات، وأسعار التجار، مما يوحد الأنظمة الاجتماعية والاقتصادية. جميع العناصر العشوائية تعتمد على بذور (seeded) لضمان إمكانية إعادة الإنتاج، ويتم حفظ التقدم عبر localStorage. تم تصميم العالم يدوياً بمناطق توجيهية (Street, Sewer, Factory, Carnival, Graveyard, Wilderness) متصلة بانتقالات مادية. القتال مسطح وحتمي - بدون رمي نرد - مع ظهور تأثيرات ضربات مصنفة لتوفير تغذية راجعة فورية. تسمح ميزة مطاردة المناطق للأعداء بتتبع اللاعبين عبر المناطق؛ ويمكن سد الأبواب بالأنابيب لتحقيق سلامة مؤقتة. عناصر التحكم نمطية وتعتمد على لوحة المفاتيح، مع دعم اللمس/الماوس للتنقل وواجهة المستخدم. يتضمن المشروع إعداد PWA كاملاً (manifest + service worker)، وخادم تطوير للتحديث المباشر، ومجموعة اختبارات شاملة تعمل في Node.js. قرارات التصميم موثقة في دليل 'plans/'، بما في ذلك موجز الميزات ومصفوفات المخاطر. تشمل الأصول الخارجية sprites من Kenney تحت رخصة CC0 وخط VT323 بموجب تراخيصهم الخاصة. تم هيكلة قاعدة الكود حول وحدات أساسية مثل القتال، وتحديد المسارات، والمخزون، والذكاء الاصطناعي، وجميعها مصممة لاختبارات الوحدة وقابلية الصيانة. يتبع التطوير خط أنابيب من أربع بوابات موضح في GAME_STUDIO_PLAN.md. لا تتطلب اللعبة حسابات أو خلفية برمجية (backend) - فكل شيء يعمل من جهة العميل.