Recompia
Pokémon Pokopia (Switch 2) recompiled to run natively on Windows with Linux/Handheld support. Multiplayer included, modding, feature enhancements and more! Join the discord community as well
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
אוסף משחקי מדע בעברית, בסגנון אנימציה של שנות ה-30. המשחק נפתח במסך פתיחה, ואחריו מגיעים למעבדה של פרופסור מדעני. כל פינה במעבדה פותחת משחק אחר. המעבדה המעבדה היא איור אחד שלם (assets/art/lab_hub.jpg). כל פינה נגזרת מתוכו לשכבה נפרדת שמונחת בדיוק מעל האיור, כך שבמנוחה רואים תמונה אחת. כשהעכבר מצביע על פינה, רק השכבה שלה זזה וזוהרת. הפינות מוגדרות ב-LAB_CORNERS שב-game/lab.js. כדי להוסיף משחק מוסיפים לפינה מסך open. פינה בלי open מוצגת כ"בקרוב".Read the full README ↗
משחקי מדע בעברית לילדים, בסגנון סרטים מצוירים של שנות ה-30. נכנסים למעבדה של פרופסור מדעני, וכל פינה בה פותחת משחק אחר.
המשחק רץ בדפדפן, במחשב ובטלפון (עדיף לסובב את הטלפון לרוחב), בלי התקנה.
אחרי מסך הפתיחה נכנסים למעבדה. פרופסור מדעני מקבל את פניכם, וכל פינה במעבדה מובילה למשחק: פינת האנרגיה פתוחה, ופינות הכימיה, החשמל והמגנטים והחלל יגיעו בקרוב. מי שמחכה יותר מדי בלי לבחור פינה יגלה שגם לפרופסור יש צרכים…
| מסך הפתיחה | המעבדה: הפינה שמצביעים עליה זוהרת |
המשחק הראשון מלמד על אנרגיה: סוגי אנרגיה, מקורות אנרגיה וממירים. חייזרים תוקפים את כדור הארץ, ובכל שלב בונים נשק נגדם. כדי שהנשק יעבוד, מרכיבים שרשרת של המרות אנרגיה מהקלפים: מקור ← אנרגיה ← ממיר ← אנרגיה ← הנשק. למשל, בשלב הראשון: שמש ← אור ← תא סולרי ← חשמל ← לייזר.
הפרופסור מסביר כל צעד בקול, וכל טעות עולה בכוכב. כשהשרשרת שלמה מושכים את הידית, ודרך החלון רואים את הנשק מגרש את החייזר.
יש שישה שלבים, ולכל אחד חייזר ונשק משלו: הלייזר הסולארי, התותח הקולי, תותח הסערה, תותח המים, משגר הלהבות ורוגטקת-העל.
| מפת השלבים | בונים את שרשרת האנרגיה |
| השרשרת שלמה: מושכים את הידית! | הלייזר יוצא לפעולה |
| בּוּם! | כדור הארץ ניצל, עם סיכום של מה שלמדנו |
אחרי כל שלב אפשר לענות על בוחן קצר של חמש שאלות: שאלות בחירה, סידור שרשרת לפי הסדר, ושאלה פתוחה שבה משווים את התשובה שלכם לתשובה של הפרופסור. הכוכבים והציונים נשמרים בדפדפן ומופיעים במפת השלבים.
המשחק כתוב ב-HTML, CSS ו-JavaScript רגילים, בלי ספריות ובלי שלב בנייה. הקוד נמצא ב-game/, והאתר מתארח ב-Vercel ומתעדכן מכל דחיפה ל-main. הכלים לייצור הגרפיקה, הצלילים והקריינות כתובים ב-Python ונמצאים ב-tools/, והבדיקות (pytest) ב-tests/:
python3 -m pytest
כדי לשחק, להריץ את המשחק מקומית, לשנות את הקוד או להריץ את הבדיקות לא צריך שום מפתח ושום חשבון. כל הגרפיקה, הצלילים, המוזיקה והקריינות כבר שמורים בריפו (ב-assets/), והמשחק לא פונה לשום שירות חיצוני מלבד הגופנים של Google Fonts.
Gemini, ElevenLabs ו-Suno שימשו רק ליצירת הנכסים האלה. המפתחות GEMINI_API_KEY ו-ELEVENLABS_API_KEY נחוצים רק למי שרוצה ליצור גרפיקה, צלילים או קריינות חדשים, עם הכלים שמתוארים בהמשך. הכלים שרק מעבדים נכסים קיימים לא צריכים מפתח: optimize_images.py, make_share_images.py, prepare_music.py ו-cut_lab_layers.py --reuse.
מגישים את התיקייה עם שרת מקומי ופותחים את game/index.html:
python3 -m http.server 8000
# http://localhost:8000/game/
המשחק הוא עמוד אחד (כדי שהצלילים לא ייקטעו בין מסכים), אבל לכל מסך יש כתובת משלו: #lab, #energy, #credits. אפשר לשלוח קישור ישיר, וכפתור "חזרה" בדפדפן עובר בין המסכים. מסך הפתיחה תמיד מופיע ראשון, כי הדפדפן לא משמיע צלילים לפני הקשה ראשונה.
המעבדה היא איור אחד שלם (assets/art/lab_hub.jpg). כל פינה נגזרת מתוכו לשכבה נפרדת שמונחת בדיוק מעל האיור, כך שבמנוחה רואים תמונה אחת. כשהעכבר מצביע על פינה, רק השכבה שלה זזה וזוהרת.
הפינות מוגדרות ב-LAB_CORNERS שב-game/lab.js. כדי להוסיף משחק מוסיפים לפינה מסך open. פינה בלי open מוצגת כ"בקרוב".
python3 tools/generate_assets.py lab_hub # האיור המלא
python3 tools/cut_lab_layers.py # גזירת הפינות (Gemini מסמן כל פינה, והגזירה נעשית מהאיור המקורי)
python3 tools/cut_lab_layers.py --reuse # גזירה מחדש מהמסכות השמורות, בלי קריאות API
הגרפיקה נוצרה עם Gemini (gemini-3-pro-image), והיא כבר בריפו. רק כדי ליצור גרפיקה חדשה צריך להגדיר את המשתנה GEMINI_API_KEY בסביבה.
python3 tools/generate_assets.py # רק נכסים חסרים
python3 tools/generate_assets.py sparky # נכס מסוים
python3 tools/generate_assets.py --force # הכול מחדש
הספרייטים נוצרים על רקע מג'נטה, והסקריפט מסיר את הרקע אוטומטית. הקבצים נשמרים ב-assets/art/.
הקבצים ב-assets/art/ הם המקור (גדולים, ולא עולים לאתר). המשחק טוען עותקי WebP קטנים מ-assets/web/, ולכן אחרי כל שינוי בגרפיקה מריצים את הסקריפט הבא ומעלים גם את assets/web/:
python3 tools/optimize_images.py # רק תמונות חדשות או ששונו
python3 tools/optimize_images.py --force # הכול מחדש
התמונה שמופיעה כששולחים קישור למשחק (וואטסאפ, פייסבוק וכו'), האייקונים וה-favicon נוצרים מהאיורים ומהגופנים של המשחק:
python3 tools/make_share_images.py # assets/share/ ו-favicon.ico
הטקסטים לשיתוף ולמנועי חיפוש נמצאים ב-<head> של game/index.html. אם משנים את הכותרת, משנים אותה גם ב-TITLE שבסקריפט ומריצים אותו מחדש. הכתובת של האתר (rotem-science-game.vercel.app) כתובה גם ב-robots.txt וב-sitemap.xml.
אפקטי הקול במשחק נוצרו ב-ElevenLabs (יצירת צלילים מטקסט), והם כבר שמורים ב-assets/sfx/ כ-MP3. מפתח של ElevenLabs צריך רק כדי ליצור צלילים חדשים. לכל צליל יש שתי גרסאות, והמשחק בוחר אחת באקראי ומשנה מעט את הגובה בכל השמעה, כדי שצלילים חוזרים לא יישמעו זהים. הרשימה נמצאת ב-assets/sfx/variants.json.
הפרומפטים נמצאים ב-tools/sfx_manifest.json. tools/fetch_sounds.py מייצר את הצלילים (דורש ELEVENLABS_API_KEY, ומנוי בתשלום לשימוש מסחרי), חותך שקט, ממיר למונו 44.1kHz ומאזן עוצמה. התוצאות נשמרות ב-assets/sfx_candidates/:
python3 tools/fetch_sounds.py elevenlabs boom # צליל חסר או מסוים
python3 tools/fetch_sounds.py elevenlabs --force # עיבוד מחדש מהמטמון, בלי קריאות API
python3 tools/fetch_sounds.py elevenlabs boom --refetch # יצירה חדשה (עולה קרדיטים)
python3 tools/fetch_sounds.py promote elevenlabs # העברה למשחק (MP3 + variants.json)
This is the beginning of the README. Read the rest at the original. Read the full README ↗