OhMyGame
OhMyGame은 AI로 게임을 만들 수 있는 오픈소스 스튜디오로, 디자인·구축·플레이테스트·출판을 하나의 앱에서 모델 키와 함께 수행합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗موقع ألعاب للجمعة يشتغل على GitHub Pages، ويستخدم Firebase للغرف أونلاين.
الرابط: https://fridaynight-sa.github.io
| المجلد | اللعبة |
|---|---|
/ | الصفحة الرئيسية: خانة «ادخل برمز الغرفة»، وتحتها قسمين: «للجمعات 👨👩👧👦» (الألعاب الجماعية + شاشة العرض) و«لحالك 🧠» (Mind Games، وأي لعبة لحالك تنضاف بعدين) |
seenjeem/ | 🎬 سين جيم (مسلسلات وأفلام) |
outside/ | 🤫 برا السالفة |
sedq/ | 🤥 صدق ولا كذب |
mf/ | 👀 مين فينا؟ |
draw/ | 🎨 ارسم وخمّن |
dafour/ | 🤓 الدافور (أسئلة معلومات عامة بأربع خيارات) |
tv/ | 📺 شاشة العرض للتلفزيون (تشتغل مع كل الألعاب، وتمشي مع السهرة) |
mind/ | 🧠 Mind Games: ألعاب لحالك تدرّب العقل: mind/lamha/ ⚡ لمحة، وmind/dots/ 🧩 توصيل النقاط، وmind/squares/ 🟨 تذكّر المربعات، وmind/words/ 📚 لوحة الكلمات، وmind/search/ 🔎 دوّر الكلمة |
كل الغرف رموزها 4 حروف. رموز سين جيم القديمة (AB123) والروابط القديمة (الموقع/#AB123) تشتغل بعد.
fnnight.js (محمّل في كل لعبة). قاعدة البيانات: night/<CODE>/state. كل غرفة تعرف رقم خطوتها في السهرة (nt).site.webmanifest + الأيقونات (icon-192.png، icon-512.png، icon-maskable-512.png).fninstall.js يطلع شريط «حمّل» في الصفحة الرئيسية: الأندرويد بضغطة، والآيفون يشرح خطوات «إضافة إلى الشاشة الرئيسية».pick/)r:1 ومخفية من اللعب لين تنضاف صورتها.pick/ (أو من «الصور المطلوبة» في سين جيم)، والصق مفتاح TMDB (ينحفظ في المتصفح بس).picks/ في GitHub. الـ Action (apply-picks.yml) يصغّر الصور (1024px) ويحطها في img/ ويحدّث الأسئلة وينشر الموقع.seenjeem/index.html: أسئلة سين جيم، والصور في img/outside/words.json: أقسام وكلمات برا السالفةsedq/questions.json: أسئلة صدق ولا كذبmf/questions.json: أسئلة مين فيناdraw/words.json: كلمات ارسم وخمّنdafour/questions.json: أسئلة الدافور (options أربع خيارات، note معلومة اختيارية). رقم الجواب الصحيح مخفي في k عشان ما ينقرا من الملف وسط اللعب (يتحسب من answer وid، شف dafour/app.js). الخيارات تنخلط كل مرة.fnnight.js: السهرة وزر «🔄 بدّل اللعبة» (محمّل في كل لعبة)fnanim.js و fnfx.js: الحركات (احتفال، فائز…) والأصوات وزر كتم الصوتfnwake.js: يخلي شاشة صاحب الغرفة صاحية (هو اللي يشغّل المؤقتات)fninstall.js: شريط «حمّل Friday Night على جوالك»draw/board.js: لوحة الرسم (للعبة وشاشة العرض): خطوط و🪣 تعبئة، وصورة الرسمة للمعرضfncrypto.js: تشفير أسرار الغرف (الأدوار، التصويت، الكذبات، الأجوبة) عشان محد يقدر يغش من قاعدة البياناتshim.js و sw.js: تشغيل سين جيم على Firebase وعرض صور «فئاتي»firebase-config.js: إعدادات Firebasedatabase.rules.json: قواعد قاعدة البيانات. أي تعديل عليها لازم ينلصق في Firebase (Realtime Database ← Rules ← Publish)scripts/localize_tmdb.py: ينزّل صور TMDB داخل img/ (يشتغل تلقائي على GitHub Actions)الدافور وصدق ولا كذب وارسم وخمّن: كل جوال يحفظ الأسئلة/الكلمات اللي شافها (df-seen-v1، sq-seen-v1، draw-seen-v1)،
وكل لاعب يرسل آخرها مع اسمه (sn). صاحب الغرفة يختار اللي محد شافه، ولما يخلص كل شي يرجع الأقدم أول.
كل رسمة تنحفظ صورة صغيرة في media/<id> (32 حرف). آخر اللعبة (3 لاعبين وأكثر) الكل يصوّت لأحلى وأسوأ رسمة
(أحلى رسمة +10). الصور القديمة تنمسح أول ما تبدأ لعبة جديدة بنفس الغرفة.
mind/mind.css شكل القسم. mind/index.html صفحة القسم (تقرا أفضل رقم من الجوال، وفيها بطاقة «حفظ تقدمك»).mind/lamha/: draw.js يرسم كل شي (السيارات، النجمة والأشكال اللي تشبهها، الخلفيات، التشويش) بدون ملفات صور. app.js اللعبة.PAIRS في draw.js) تطلع قبل البداية، مثل اللعبة الأصلية. الأزواج تمر كلها قبل ما يتكرر واحد (pq في التقدم)، وما يجي نفس الزوج جلستين ورا بعض.lamha-v1).mind/dots/)levels.js (5×5 لين 9×9). كل مستوى: "<n>:<حروف>"، الحرف الكبير نقطة والصغير الخط. انصنعت بـ scripts/dots/gen.py (يحتاج pip install pycosat) وكل مستوى له حل واحد بس، حتى لو الخط يمشي جنب نفسه.dots-v1).mind/squares/)squares-v1).mind/nback/ صار يحوّل لـ mind/squares/ (كانت فيه قبل لعبة n-back وانشالت).mind/words/)WORDS_CLUE) ببلاش.levels.js: WORDS_LEVELS كل مستوى "<الحروف>|<صفوف>|<أعمدة>|<كلمة>,<صف>,<عمود>,<h أو v>;…"، وWORDS_DICT الكلمات اللي تنحسب إضافية، وWORDS_MEAN الكلمة بتشكيلها ومعناها ومثال. ينصنع بـ scripts/words/ (اقرا scripts/words/README.md).OWNER_HASH)، والجوال يتذكره (words-owner).words-v1)، ووأنت تلعب الصفحة ثابتة.mind/sync.js) وبدون نتmind/<الرمز>/j لمحة وmind/<الرمز>/dots توصيل النقاط وmind/<الرمز>/squares تذكّر المربعات وmind/<الرمز>/words لوحة الكلمات (القواعد تسمح بأي لعبة جديدة باسم حروف صغيرة، فما تحتاج تعديل القواعد مع كل لعبة). النسخة ترتفع لحالها بعد كل جلسة، ولو ما فيه نت تنتظر (mind-dirty) وترتفع أول ما يرجع.<المفتاح>:in).firebase-config.js فيه apiKey وauthDomain. الحساب يحفظ الرمز في mindu/<uid>.sw.js يرد من نسخة محفوظة لصفحات Mind Games بس (الألعاب الثانية ما يلمسها). sync.js يعبي النسخة مرة وحدة بعد كل تحديث.فتح اللعبة بدون رمز يرجّعك لغرفتك بس إذا اللعبة شغالة وكنت فيها قبل أقل من ربع ساعة. السهرة اللي لها أكثر من 4 ساعات بدون تبديل ما تنقل أحد.
mind/search/)levels.js): من 6×6 فيها 4 كلمات، لين 10×10 فيها 12 كلمة. أول 20 مستوى بالعرض والطول، بعدها بالمايل، ومن 121 بالعكس بعد.
كل مستوى موضوع (56 موضوع في scripts/search/themes.txt، مكتوبة باليد).paper.js، ما ينزل إلا لما تنفتح): جريدة «الجمعة»، عدد كل يوم من 29 أكتوبر 2026 بتوقيت السعودية، 730 عدد.
«الكلمة الضائعة»: بعد ما تلقى الكلمات، الحروف اللي تبقى (سطر سطر، من اليمين لليسار) تكوّن مثل أو حديث أو شطر بيت
(scripts/search/sayings.txt). تقدر تكتب الحل قبل، والغلط يزيد 30 ثانية. «ترتيب العدد»: paper/<العدد>/<رقم الجوال> = {n: الاسم، s: الثواني}،
ينكتب مرة وحدة وما يتغير.python3 scripts/search/gen.py وبعدها python3 scripts/search/export.py. التحقق: كل كلمة موجودة مرة وحدة بس في كل الاتجاهات،
وما فيه كلمة داخل كلمة ثانية.search-v1، ونسخة احتياطية مع «رمز تقدمك» (mind/sync.js).الرابط: km165vr7/ (ما ينذكر في أي صفحة، ومخفي عن محركات البحث). تدخل بحساب Google.
الحماية من قواعد قاعدة البيانات، مو من الصفحة: الأرقام والرسالة يقدر عليها حساب واحد بس (رقم حسابه uid في database.rules.json).
أي حساب ثاني يطلع له «🔒 هذي الصفحة لصاحب الموقع بس». km165vr7/#setup يعرض رقم الحساب اللي داخل (لو تغيّر حساب صاحب الموقع).
📊 الزوار: fnstats.js (في الصفحة الرئيسية وكل لعبة) يزيد +1 مرة وحدة باليوم لكل جوال في stats/day/<يوم>، ومرة بالأسبوع
stats/week/<أول يوم في الأسبوع: الأحد>، ومرة بالشهر stats/month/<شهر>، و+1 لكل لعبة يفتحها باليوم stats/game/<يوم>/<لعبة>.
ما ينرسل أي شي عن الشخص. الأيام بتوقيت السعودية. القواعد ما تسمح إلا بزيادة واحد، وما أحد يقدر يمسح أو يغيّر الأرقام.
📢 رسالة للكل: notice = {t: النص, s: وقت النشر, e: وقت النهاية أو 0 = لين توقفها}. تطلع فوق خانة رمز الغرفة في الصفحة الرئيسية.
🚀 لوحة الكلمات: يفتح mind/words/#jump=<رقم>، ويشتغل بس في جوال انفتحت فيه لوحة المدير (أو انكتب فيه الرمز السري).
📱 مين دخل (للعائلة بس: لو صار الموقع للعامة، هذا الجزء يخالف نظام حماية البيانات الشخصية، فيتشال قبل النشر):
كل جوال له رقم عشوائي في جواله (fn-dev) وسجل واحد في dev/<الرقم>: نوع الجوال، شركة النت والمدينة (من get.geojs.io أو ipwho.is، مرة باليوم)،
وقت الدخول وآخر مرة كان موجود (كل دقيقة والصفحة قدامه)، الألعاب، الأسماء اللي كتبها في الألعاب، ومستواه في لوحة الكلمات.
صاحب الموقع يسمّي الجوال مرة وحدة (devname/<الرقم>). القراءة لصاحب الموقع بس.
🚫 الحظر المؤقت: ban/<الرقم> = {u: لين متى}. الجوال يشيّك عند فتح أي صفحة وكل دقيقة، ويطلع له «موقوف مؤقتاً». يوقف الجوال نفسه بس
(لو مسح بيانات المتصفح يصير جهاز جديد).
🚧 إخفاء لعبة: cfg/hide/<لعبة>: true. تختفي من الصفحة الرئيسية وشريط الألعاب و«بدّل اللعبة»، وصفحتها تقول «مقفلة مؤقتاً». إخفاء mind يخفي ألعابها كلها.
✨ كلام جنب الاسم: صاحب الموقع يكتبه لأي جوال (tag/<الرقم>) ولنفسه (cfg/me/t). ينضاف للاسم لما اللاعب يدخل غرفة (من خانة الاسم
fName/jName في كل الألعاب)، فيطلع في كل لعبة وفي التلفزيون والسهرة. الكلام بين علامتين مخفيتين (U+2063 … U+2064)
وfnstats.js يخليه شارة ملوّنة (ذهبية لصاحب الموقع، بنفسجية لغيره) عشان ما يبان إنه من الاسم. اللي يكتبه اللاعب بنفسه بعد «·» ينشال.
🖼️ صورة صاحب الموقع (cfg/me/img، صورة صغيرة 160×160): اسمه يحمل علامة مخفية (U+2060)، و يحط الصورة مكانها في أي جوال.
الجوال يعرف إنه حق صاحب الموقع لما تنفتح فيه لوحة المدير ()، أو لما صاحب الموقع يضغط «📌 هذا أنا» عنده في «مين دخل»
(كلامه يصير العلامة المخفية نفسها). أيقونة الموقع على الشاشة الرئيسية لها تخزين غير Safari، فتحتاج «هذا أنا» لحالها.
الأسماء المحفوظة في الجوال تتحدّث بالكلام الجديد من الصفحة اللي بعدها. قاعدة الموقع: الصورة بدون ذوات أرواح.
python3 scripts/stamp.py يحط رقم نسخة جديد على ملفات الموقع (app.js?v=…) عشان الجوالات ما تشغّل نسخة قديمة محفوظة.database.rules.json ← Publish.</> ← انسخ databaseURL و projectId إلى firebase-config.js.إذا firebase-config.js على null، تشتغل سين جيم وبرا السالفة على جهاز واحد بس.
fnstats.jsfn-ownertag/<الرقم>🔑 «ادخل بحساب Google» في الصفحة الرئيسية (اختياري، الألعاب تشتغل بدونه): يحفظ الاسم الأول لخانة الاسم في الألعاب (fn-gname)،
ويربط الجوال بالحساب في users/<uid> (الاسم والإيميل، يكتبه صاحب الحساب بس، ويقراه صاحب الموقع بس) عشان «مين دخل» يطلع باسمه.
لو الحساب هو حساب صاحب الموقع (يقدر يقرا أرقام الزوار)، الجوال ينعرف إنه حقه، فيطلع كلامه وصورته بدون «هذا أنا».
ما يشتغل من داخل تطبيقات مثل سناب وانستقرام (Google تمنعه هناك)، فتطلع رسالة تقول افتحه في Safari أو Chrome.
كل هذا في fnstats.js (محمّل في كل صفحة).
🛠️ القواعد بضغطة: في لوحة المدير زر «طبّق القواعد». Google يعطي الصفحة إذن مرة وحدة (حساب صاحب المشروع، scope firebase.database)،
والصفحة ترسل database.rules.json من الموقع إلى .settings/rules.json. ما ينحفظ الإذن. لو ما ضبط، تطلع خطوات اللصق باليد.
اللوحة تطلّع «فيه قواعد جديدة ما انطبقت» لحالها لو قسم من أقسامها مرفوض.