OhMyGame
OhMyGame is the open-source studio for making games with AI. Design, build, playtest, and publish games in one app, with your own model keys.
A 3D survival mystery game in your browser.
Translation pending
GamesJavaScript · CSSGitHub @amitshabatgoltz-createOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗משחק הישרדות ומסתורין בתלת־ממד, רץ בדפדפן במחשב. נבנה עם Three.js ו־Vite (JavaScript). כל המודלים נבנו מגאומטריה בקוד, הטקסטורות מצוירות ב־canvas והסאונד מסונתז ב־Web Audio — אין נכסים חיצוניים.
דרוש Node.js 18 ומעלה.
npm install
npm run dev # http://localhost:5173
npm run build # יוצר את dist/
npm run preview # מריץ את dist/ על http://localhost:4173
npm run build ואז לגרור את התיקייה dist אל https://app.netlify.com/dropnetlify.toml כבר מגדיר npm run build ו-dist.אפשר להוריד את המשחק ולהתקין אותו כמו כל משחק רגיל: https://github.com/amitshabatgoltz-create/lost-island/releases/latest
LOST-Setup.exe מתקין את המשחק ושם אייקון על שולחן העבודה.LOST-Portable.exe מריץ את המשחק בלי התקנה.עדכונים: הגרסה המותקנת לא מתעדכנת לבד. אחרי כל עדכון של המשחק מורידים שוב את LOST-Setup.exe מאותו קישור ומתקינים מעל; השמירות והדמות שבחרת נשמרות (הן בתיקיית המשתמש של Windows, לא בתיקיית ההתקנה).
הקובץ נבנה אוטומטית ב-GitHub Actions (.github/workflows/desktop.yml) בכל עדכון של main. הקוד של האפליקציה נמצא ב-desktop/ (Electron). להרצה מקומית: npm run build, להעתיק את dist אל desktop/app, ואז בתוך desktop/ להריץ npm install, npx install-electron ו-npm start.
npm run build:poki בונה את המשחק עם ה-SDK של Poki לתיקייה dist-poki, ו-npm run build:crazygames בונה אותו עם ה-SDK של CrazyGames לתיקייה dist-crazygames.
בכל עדכון של main נבנים אוטומטית (.github/workflows/portals.yml):
LOST-poki.zip בדף https://github.com/amitshabatgoltz-create/lost-island/releases/tag/poki-latest (מעלים ב-developers.poki.com)
LOST-crazygames.zip בדף https://github.com/amitshabatgoltz-create/lost-island/releases/tag/crazygames-latest (מעלים ב-developer.crazygames.com)
src/portal.js מדבר עם ה-SDK של האתר: מודיע מתי הטעינה נגמרה, מתי משחקים ומתי לא (לובי, הפסקה, סוף פרק), ומציג פרסומת קצרה רק ברגעים טבעיים: כשלוחצים "Play" בלובי וכשממשיכים לחלק הבא. בזמן הפרסומת הצליל מושתק.
בכל גרסה אחרת (האתר, המחשב) אין SDK, וכל הקריאות האלה לא עושות כלום.
הגופנים ארוזים בתוך המשחק (@fontsource) ולא נטענים מגוגל, כדי שהמשחק לא יפנה לאתרים אחרים.
| מקש | פעולה |
|---|---|
| W A S D / חצים | תנועה |
| עכבר | מצלמה (לחיצה נועלת את העכבר; אפשר גם לגרור) |
| Shift | ריצה |
| E | אינטראקציה / איסוף |
| J | חוברת הרמזים (רמזים · מפה) |
| F | פנס |
| H | רמז למשימה הנוכחית (כל לחיצה נותנת רמז ברור יותר, עד שלושה) |
| 0–9, Enter | הקלדת קוד במקלדת הארגז הנעול |
| Esc | תפריט השהיה / סגירת חלונות |
| Space | דילוג על הפתיחה (מהפעם השנייה) |
בתפריט הראשי ובתפריט ההשהיה יש "שחק עם חברים": אחד יוצר חדר ומקבל קוד של 6 תווים, והחברים מקלידים אותו ונכנסים. עד 4 שחקנים. כל אחד משחק את הסיפור והשמירה שלו; רואים את החברים מסתובבים באי עם הדמות שבחרו, שם מעל הראש ופנס בלילה, ו־Enter פותח צ'אט. חבר מוצג רק כשהוא באותו אזור (חוף, יער, רכס, מתקן).
src/net/online.js החיבור: PeerJS (WebRTC). מי שיצר את החדר הוא המארח ומעביר את העדכונים בין כולם
src/net/remotes.js הדמויות של החברים: שכפול הדמות, אנימציות הליכה/ריצה, שם ופנס, החלקה בין עדכונים
src/net/panel.js מסך החדר, התג במשחק והצ'אט
?peerhost=localhost&peerport=9000&peersecure=0 משתמש בשרת PeerJS אחר (בדיקות או שרת משלכם).המשחק נפתח בלובי על החוף: הדמות שלך עומדת על החול, שברי המטוס והג׳ונגל ברקע.
בכניסה הראשונה בוחרים אחת מ־8 דמויות (Mixamo): אלכס, נועה, מרקוס, שרה, דניאל, יוני, מאיה ורמי.
הבחירה נשמרת בהגדרות (skin) ואפשר להחליף אותה בכל זמן ב"החלף דמות" — היא לא נוגעת בהתקדמות.
מי ששיחק לפני העדכון מקבל את אלכס (הדמות המקורית) כבחירה מסומנת מראש.
"שחק" ממשיך מהשמירה אם יש כזו, ואחרת מתחיל מהפתיחה במטוס; "משחק חדש" מוחק את השמירה (אחרי אישור).
כל הדמויות משתמשות באותן אנימציות (מ־survivor.glb), מותאמות לגובה של כל אחת.
כשמתחילים ללכת מעמידה, הדמות עושה את הצעדים הראשונים באנימציית Start Walking (מ־public/models/anims/), בקצב של התנועה כדי שהרגליים לא יחליקו, ואז ממשיכה להליכה הרגילה. הוספת אנימציה: tools/anims/README.md.
index.html כל שכבות הממשק (HUD, חוברת, מקלדת קוד, רשומה אחרונה, כרטיסי סיום)
src/main.js מצבי משחק, טעינת אזורים, שרשרת משימות, שמירה, קלט
src/env.js סביבה משותפת: שמיים, שמש/ירח, ערפל, יום/לילה
src/player.js הדמות (סקין לבחירה + אנימציות משותפות), התנגשויות, מצלמת גוף שלישי
src/lobby.js הלובי הראשי ומסך בחירת הדמות, מעל החוף האמיתי של המשחק
src/data/skins.js רשימת הדמויות (שם, תפקיד, קובץ). הוספת דמות: tools/skins/README.md
src/audio.js סאונד מסונתז, כולל צלילים מרחביים ושכבת לילה
src/ui.js HUD, חוברת, מפות, מקלדת קוד
src/intro.js הפתיחה בתא הנוסעים
src/items.js מודלים של חפצים והסמל
src/save.js שמירה ב-localStorage (תואם לשמירות של חלק 1)
src/core/dispose.js שחרור זיכרון GPU של אזור שעוזבים
src/core/sequencer.js אירועים מתוזמנים לפי זמן משחק (סצנות, מפגש, סיום)
src/data/quests.js כל המשימות כנתונים: תנאי סיום, יעד לחץ, תת־משימות
src/data/items.js חפצים
src/data/clues.js רשומות החוברת
src/systems/inventory.js תיק ומכולות לפי כמויות: הוספה, הוצאה והעברה ששומרות על הסכום
src/data/resources.js ערימות משאבים בעולם (חוף ויער)
src/data/recipes.js מקום לשרטוטים ושדרוגים עתידיים (ריק בינתיים)
src/data/puzzles.js הגדרות החידות של חלקים 2–3 והפתרונות שלהן
src/zones/resources.js הופך ערימות משאבים לחפצים לאיסוף
src/zones/beach/basecamp.js מחנה הבסיס: מחסה, תיבה, שולחן עבודה, לוח ראיות, פנס
src/zones/shared.js גאומטריה משותפת (עצים, שיחים, טקסטורות)
src/zones/beach/ אזור החוף (חלק 1): שטח, ים, שברים, אינטראקציות
src/zones/forest/ אזור היער (חלק 2): שטח, נחל, רכס, משדר, מחנה, תצפית, אינטראקציות
src/zones/ridge/ הרכס הצפוני (חלק 3): עמק, כבל, גנרטור, תיבת חיבורים, דלת הבונקר
src/zones/facility/ המתקן N-1 (חלק 3): מסדרון, עמדת ביטחון, חדר תצפית, ארכיון, חדר בקרה
כל אזור נטען כקובץ JS נפרד (dynamic import) רק כשנכנסים אליו, והאזור הקודם משוחרר מהזיכרון.
src/gfx/textures.js טקסטורות פרוצדורליות שחוזרות על עצמן (חול, דשא, אדמה, סלע, עלים, קליפה, פח מטוס) + מפות נורמל
src/gfx/materials.js שיידר קרקע עם 4 שכבות מעורבבות לפי גובה, טקסטורה טריפלנרית לסלעים, עלווה עם רוח ואור עובר
src/gfx/post.js עיבוד תמונה: MSAA, זוהר עדין, תיקון צבע וויניטה
src/gfx/perf.js איכות אוטומטית לפי קצב הפריימים + הסתרת צמחייה שנבלעת בערפל
בהגדרות יש "גרפיקה מתקדמת": כשהיא כבויה אין עיבוד תמונה, הקרקע פשוטה יותר והצללים ברזולוציה נמוכה — למחשבים חלשים. ?lowfx בכתובת מכבה אותה בכוח.
"התאמת איכות אוטומטית" (פועלת כברירת מחדל) מודדת את קצב הפריימים בזמן המשחק. אם המשחק נתקע היא מורידה בשלבים צללים, החלקת קצוות, אפקטים וצמחייה רחוקה (הרזולוציה לא יורדת אף פעם מתחת לרזולוציית המסך), ואם יש מקום היא מעלה בחזרה. השלב שנבחר נשמר להפעלה הבאה. ?fps בכתובת מציג את הקצב, את השלב ואת מספר הציורים בפריים.
ביער אין מצפן. מנווטים לפי האור האדום מעל הצמרות, לפי השבילים והעקבות, ולפי מפת היער בחוברת. כשנתקעים, H נותן רמז מדורג.
כל הפתרונות נמצאים ב-src/data/puzzles.js, והרמזים בתוך src/data/quests.js.
src/data/story.js (מטרות ותוכן עמוד החקירה), src/data/quests.js (רמזים), src/ui.js.