joe / sukar
كل المشاريع

TimeStop

ثق بإحساسك بالوقت.

تحدٍّ صغير للتوقيت بمجموعة متنوعة من الأوضاع: اشعر بالمدة، وأوقف الساعة، واكتشف مدى دقة إحساسك بالوقت.

دوري
تصميم اللعبة وتطوير Flutter وأنظمة المنافسة والإصدار على Android
المنصة
Android
التقنيات
Flutter / Dart / Riverpod / go_router / SharedPreferences / Supabase / Sentry
لديك مشروع مشابه؟ لنتحدث ↖
الشاشة الرئيسية في TimeStop تعرض لعبة التوقيت وأوضاعها
واجهة TimeStop المصممة للتركيز على الجوّال.
التحدي
تحتاج لعبة توقيت صغيرة إلى قياس موثوق وسبب يشجع على العودة.
مساهمتي
تصميم اللعبة وتطوير Flutter وأنظمة المنافسة والإصدار على Android.
النتيجة
لعبة توقيت منشورة بقياس محلي وأوضاع متنوعة ونتائج محفوظة يمكن إعادة إرسالها.

ما مدى دقة إحساسك بالوقت؟

تطلب TimeStop من اللاعب تقدير مدة مستهدفة ذهنيًا. ابدأ الساعة، ودع التوقيت المرئي يفسح المجال لفترة يختفي خلالها العداد، ثم أوقفها عندما تشعر باكتمال المدة. تُظهر النتيجة مدى اقتراب محاولتك من الهدف.

بنيت اللعبة وأصدرتها عبر Jiss Tech على Android. فكرتها بسيطة بما يكفي لجلسة سريعة، لكنها تدعم التقدم والتدريب والمنافسة دون الحاجة إلى تفاعل أساسي مختلف في كل وضع.

تفاعل واحد، وأسباب متعددة للعودة.

تمنح التحديات اليومية والأسبوعية اللاعبين أهدافًا مشتركة ومحاولة رسمية محدودة. ويربط رمز من ستة أحرف شخصين في مبارزة، مع إمكانية إعادة المواجهة. يمتد مسار التقدم على 45 مستوى في خمسة عوالم، مع أهداف أطول وأصعب والعداد مخفي.

تغيّر أوضاع التدريب شروط اللعب: فترات قصيرة، وتوقف دون تجاوز الهدف، وهامش بقاء يتقلص، وماراثون من 100 جولة، وتركيز ممتد. تختبر هذه التنويعات الإحساس نفسه بالتوقيت، وتترك لكل لاعب اختيار مقدار الوقت والانتباه الذي يريد تخصيصه.

قس أولًا، ثم اعرض النتيجة.

تجري العمليات التي تتطلب دقة على الجهاز. تلتقط ساعة Dart Stopwatch الرتيبة لحظة التوقف قبل عرض واجهة النتيجة. يوفّر Flutter تجربة التطبيق، بينما ينظم Riverpod وgo_router الحالة والتنقل.

للشبكة مسؤولية مختلفة: مشاركة النتيجة. فهي لا تحدد المدة التي استغرقتها محاولة اللاعب. يفصل القياس المحلي بين بطء الاتصال وآلية اللعب الأساسية، لتُحسب الدرجة من الفترة الملتقطة بدلًا من استجابة الخادم.

انقطاع الاتصال لا ينبغي أن يمحو المحاولة.

يخزّن SharedPreferences التقدم والنتائج التي تنتظر الإرسال. تُحفظ المحاولة قبل رفعها، لتتمكن المزامنة من إعادة المحاولة إذا انقطع الاتصال. وتظل الترتيبات المخزنة مؤقتًا متاحة إلى أن تكتمل المزامنة.

تُشتق الأهداف اليومية والأسبوعية من تواريخ UTC. يدعم Supabase وPostgREST سجلات الترتيب، بينما يخدم البث والحضور في Realtime قنوات المبارزة المؤقتة. للنتائج الدائمة والجلسات المباشرة بين لاعبين مدد حياة مختلفة، ولذلك تستخدم أجزاء مختلفة من النظام.

التركيز أيضًا قرار في تصميم الواجهة.

يركز التصميم البصري على الأرقام البارزة والألوان الهادئة وفعل مباشر للبدء والتوقف. تتيح أدوات ضبط حجم النص ولوحة ألوان ملائمة لعمى الألوان والألوان المميزة القابلة للاختيار وإعدادات الصوت والموسيقى والاهتزاز المنفصلة تخصيص التجربة.

يمكن تعطيل إشعارات التذكير. يربط التكامل الاختياري مع Play Games إحصاءات محددة، بينما يظل التقدم محفوظًا على الجهاز ولا يصبح حفظًا سحابيًا. توضيح هذه الفروق يساعد اللاعب على فهم ما يحدث عند تغيير الجهاز أو تعديل الإعدادات.

لعبة مكتملة حول فكرة صغيرة.

يتضمن إصدار Android إعلانات، وفرص إعادة تعبئة اختيارية مقابل مشاهدة إعلان، وخدمات تشخيصية. تدعم هذه العناصر التطبيق المنشور حول آلية اللعب الأساسية، إلى جانب العمل الأقل ظهورًا في التنقل والحفظ وإعادة المحاولة وصيانة الإصدار.

تعرض TimeStop فروق التوقيت بأجزاء الألف من الثانية؛ وهذا العرض لا يمثل وعدًا بدقة أجهزة معتمدة. القرار التصميمي المفيد هو إعطاء القياس والتغذية الراجعة وإرسال النتائج عبر الشبكة مهام محددة. حتى اللعبة البسيطة تستفيد من الحدود المدروسة حين تكون المحاولة مهمة للاعب.

كيف تتكامل الأجزاء.

  1. 01

    حدد الهدف

    اختر تحديًا أو مستوى أو وضع تدريب أو مبارزة برمز.

  2. 02

    اشعر بالمدة

    ابدأ، وركز، ثم توقف بالاعتماد على المؤقت الرتيب للجهاز.

  3. 03

    احفظ وقارن

    احتفظ بالمحاولة محليًا قبل مزامنة النتائج المؤهلة.

المشروع التالي
CMD Mail

لديك مشكلة تستحق الحل؟

أخبرني بما تبنيه، أو بما يحتاج إلى تحسين.

ابدأ مشروعًا ↖