OhMyGame
OhMyGame은 AI로 게임을 만들 수 있는 오픈소스 스튜디오로, 디자인·구축·플레이테스트·출판을 하나의 앱에서 모델 키와 함께 수행합니다
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
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.