OhMyGame
OhMyGame은 AI로 게임을 만들 수 있는 오픈소스 스튜디오로, 디자인·구축·플레이테스트·출판을 하나의 앱에서 모델 키와 함께 수행합니다
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기DOTA Kids 3D - djecji DOTA All-Stars klon u Three.js (9 junaka, 3v3 s botovima, magla rata, dzungla, recepti)
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗🇬🇧 English: a kids' DOTA-style MOBA in 3D that runs in the browser — 27 heroes, 5 vs 5 against bots or with a friend online, talking heroes, achievements, works on tablets. The whole game is available in English (and in Croatian/Bosnian and Serbian, Latin and Cyrillic) — pick the language on the start screen (or open the game with
?lang=en). Play: dota-kids-brown.vercel.app
Dječji DOTA All-Stars klon u 3D — kompletan mini-MOBA koji radi u pregledniku, bez instalacije. v0.56: 🌲 uloga DŽUNGLA od levela 1 (🦎 mali kampovi, 🐾 Lovački nož, 🌩️ Kazna), 🏰 baze kao u DotA 2 (T1 i T2 na stazi, T3 pred vojarnom), 🪙 jasan okvir zlata, A + klik = zadnji udarac i S = stani, 🛒 25 novih predmeta i 🎲 botovi s različitim predmetima svaku igru. v0.55: 🦛🐆🦂 tri nova junaka s moćima iz DotA 2 — 🦛 Pecko (udica kao Pudge), 🐆 Inja (ledena strijelkinja kao Drow Ranger) i 🦂 Škorpo (kralj pijeska kao Sand King) — s 3D modelima, glasovima i talentima, i 🎨 novi portreti i ikone moći svih 27 junaka iz GPT Image 2.5.** v0.54: 💰 sporije zlato i predmeti u normalnoj igri (trećina manje zlata, za ubojstvo ~60 % manje) i 🎯 bogata meta — nitko više ne pobjegne prerano (manje snowballa).** v0.53: ✏️ junaci imaju obris kao u crtanom filmu, 👀 izražajnija lica (oči svjetlucaju, zaobljene obrve, sovin disk lica, majmunova maska), 🪶 krila od pravih pera i 🖼️ krupniji portreti (glava i ramena).** v0.52: 👕 svaki junak nosi svoju odjeću kao na portretu (prsluci, kaputi, halje, kapuljače, šeširi) — više nisu svi u istoj plavoj uniformi.** v0.51: 🧠 botovi procjenjuju kad u gank, u džunglu, po runu, u pomoć i na Velikog Zmaja — više ne po satu.** v0.50: 🛣️ biraš stazu (gore, sredina, dolje) kao ulogu u LoL-u — prava faza na stazama.** v0.49: 🪖 izdržljiviji vojnici (kao u DotA 2) koji jačaju kroz cijelu igru i 🤖 botovi koji se više ne zalijeću jedan po jedan na jakog junaka.** v0.48: ⭐ leveli kao u DotA 2 — level 2 dolazi brzo, a svaki sljedeći traži sve više iskustva (level 25 tek u dugoj igri).** v0.47: 🌙 ljepša noć (mjesečina umjesto mraka) i dan, 🏮 fenjeri i svjetla koja noću obasjaju tlo, 🌫️ nova magla rata, 🐲 čudovišta i zmajevi jačaju s vremenom, 🗼 kampovi daleko od kula i 🗺️ 20 % veća mapa.** v0.46: 🐗 džungla kao u DotA 2 (čudovišta su mirna dok ih ne udariš, kamp se može povući do vojnika i pod kulu), 🐻 6 novih kampova, 🐢 sporiji junaci i 🗡️ kasniji gankovi botova.** v0.45: ⚡ brza igra (~10 min), 🎁 nagrade za postignuća (trag i kruna/ljubimac), 🎶 glazba, 📊 statistika po junaku i ⚖️ ujednačeniji junaci.** v0.44: 🎯 zadaci za početnike sa zlatom, 📈 graf „Tko je vodio” na kraju igre i 🌐 poruke na svom jeziku u igri s prijateljem.** v0.43: 🌍 cijela igra i na srpskom (latinica i ćirilica) i engleskom — biraš na početku — i 🎬 novi početni ekran.** v0.42: 🏆 postignuća i profil — 15 postignuća, pobjede sa svakim junakom i 🎖️ „Novo postignuće!” na kraju igre.** v0.41: 🔊 novi zvuk — bogatiji efekti, prostorni zvuk (lijevo/desno, tiše izdaleka) i 🌲 zvukovi prirode.** v0.40: 🪙 pomoć za zadnji udarac, 💡 savjeti za početnike, 🏅 medalje na kraju igre, 🗺️ portreti na minimapi i 🔥 junaci „u vatri”.** v0.39: čišći ekran (brojevi štete samo kad si ti uključen, manje poruka), 💨 brže putovanje izvan borbe i 🪙 zlatnici koji polete do tebe kad pobijediš junaka.** v0.38: veliko poliranje — ⛶ cijeli zaslon, 🐿️ Nišan i 🐂 Bikoš, 🎓 svaki junak ima svoje talente, 💥 kritični udarci, 🛒 jasniji dućan, 🗺️ veća mapa, 🗼 aggro kao u Doti, 🌫️ prava magla rata, 🌿 tango jede drvo i 🤖 pametniji botovi (gankovi, guranje, obrana).** (v0.37: 👥 pravih 5 na 5, v0.36: peglanje za mobitel i opisi gumba, v0.35: u mrežnoj igri svatko vidi svoje, v0.34: 📣 najavljivač, 🤖 težina botova, 💀 pregled pogibije, 💃 ples)
🎮 Igraj odmah: dota-kids-brown.vercel.app
Ili lokalno: preuzmi repo i otvori index.html dvoklikom (radi offline — Three.js je uključen; za multiplayer treba internet).
P2P preko WebRTC-a (PeerJS), bez servera. Magla rata vrijedi za svakoga iz perspektive njegovog tima, a ako igrač izleti — bot preuzima njegovog junaka.
🌲 Uloga DŽUNGLA — junak u džungli je pravi od levela 1 (v0.56) — na ekranu junaka uz ⬆️ Gore / ↗️ Sredina / ➡️ Dolje sada je i 🌲 Džungla:
JUNGLE_PLAN u data.js); bez odabira džungle raspored je kao prije (1 sredina, 2 gore, 2 dolje)mob_lizard: niske noge, dugi rep, šarena krijesta); s Lovačkim nožem dva mala kampa = level 2 za ~1 minnode tools/sim/sim.js 4 --lane=jungle): junak u džungli je level 2 u 1. minuti, level 3 u 1:30, bez pogibije u prvih 10 min, a u 10. minuti ~level 9 (kao junak na sredini)🏰 Baze kao u DotA 2 (v0.56) — na svakoj stazi T1 (vanjska, na 36 % puta) i T2 (25 %), T3 na ulazu u bazu (13,5 %; na sredini 15,5 %) s vojarnom odmah iza nje, i dvije T4 uz prijestol:
node tools/sim/sim.js 4 --max=3000, i s --lane=jungle): svih 8 normalnih igara završi s pobjednikom, prosječno za 28–29 min; jungleri u 15 igara s džunglom: K/D/A 8,2/7,3/18,3 i ~16 % više zlata od prosjeka tima (2. po zlatu u timu)| Tipka | Radnja |
|---|---|
| 🖱️ klik | kreći se / napadni |
| Q W E R | moći (s prikazom dometa) |
| T | teleport (pa klik na svoju kulu; T dvaput = kući) |
| B | dućan |
| 1–6 | aktivni predmet iz torbe |
| O | otkup (kad si mrtav) |
| D / F | čarolije prizivača |
| Y | Glif utvrde (kule 5 s neranjive) |
| Tab | tablica rezultata |
| J | 💃 ples (i šaljiva replika) |
| A pa klik | napad u hodu; A + klik na vojnika = samo jedan udarac (zadnji udarac, v0.56) |
| S | stani (prekida i zamah udarca; junak ne napada sam dok ne dobije naredbu) |
| razmaknica | kamera prati junaka |
| strelice / miš uz rub / kotačić | kamera / zum |
| Esc | postavke |
| ⛶ gumb | cijeli zaslon (miš ostaje u igri; Esc ga otpusti) |
| P / M / H | pauza / zvuk / pomoć |
👆 Na tabletu: dodir = kreći se / napadni / gumb • povuci prstom = kamera • dva prsta = zum • 📋 tablica • 🎯 kamera na junaka • drži prst na predmetu = opis (1 s = prodaja).
Čisti JavaScript + Three.js (r149, vendoran u lib/ zajedno s GLTFLoaderom i RoomEnvironmentom) — bez build koraka.
i18n.js (jezik: L('hrvatski', 'English'), data-en atributi u HTML-u, pretvorba u srpski i ćirilicu) • sr.js (rječnik hrvatski → srpski) • data.js (junaci, predmeti, konfiguracija) • voices.js (glasovi junaka) • game.js (logika, AI, HUD) • scene3d.js (3D prikaz, modeli, animacije, čestice) • net.js (multiplayer) • shop.js (dućan, opisi) • landing.js (početni ekran) • 2d-verzija/ (originalna 2D verzija).
Replike su u voices.js (svaki junak: Fish Audio glas + 9 replika na engleskom, uključujući taunt za ples; najavljivač ANNOUNCER s 32 najave; upute poput [proud and heroic] ili <whisper>…</whisper> govore glumcu kako da izgovori, a imena su napisana kako se izgovaraju na engleskom, npr. Zharko, Zooya). Zvuk je napravljen glumačkim modelom drama-3 (čist i izražajan; s2.1-pro je na engleskom dodavao jeku). Linkovi generiranih datoteka su u tools/voice/urls.json (stari hrvatski glasovi iz v0.32 ostaju u tools/voice/urls_hr.json), python3 tools/voice/rec.py junak ključ=task_id … dodaje nove, a python3 tools/voice/gen.py ih upisuje u voices.js. v0.56: sve replike su u igri (assets/voice/<junak>/<replika>.mp3, 275 datoteka, ~3,4 MB; mono 24 kHz, 40 kbps; učitavaju se tek kad zatrebaju) — igra više ne ovisi o Fish Audio poslužitelju. python3 tools/voice/dl.py ih preuzme iz urls.json, skrati tišinu, izjednači glasnoću i postavi VOICE_LOCAL = true (nova replika: rec.py → gen.py → dl.py, preuzima samo one kojih još nema).
Svi modeli nastaju iz jedne skripte (--dev-v55 brzo prikaže Pecka, Inju, Škorpa, udicu i nalet, --dev-v52 --only=ledena,zarko brzo prikaže odabrane junake bez izvoza, --dev-v53 --only=sova,gavran --out=mapa rendera njihove portrete izbliza, --portraits-all rendera svih 14 portreta iz modela): tools/blender/build_models.py. Ona u Blenderu slaže modele od jednostavnih oblika (kugle, valjci, stošci, kocke s obrubom), boji ih bojama vrhova, slaže dijelove u hijerarhiju (noge, tijelo, glava, ruke, rep, krila) i animira ih (idle, walk, attack, cast), pa sve izveze u assets/models.glb. Uz jedinice i građevine tu su i projektili (proj_*), efekti moći (fx_*: meteor, korijenje, led, val, zvijezda, srce, duh, nadgrobni kamen) i rune (rune_*). Prije izvoza skripta ispeče ambijentalnu okluziju (Cycles, 24 uzorka, ~12 s za 157 objekata) izravno u boje vrhova, pa modeli imaju sjene u udubinama bez tekstura. Three.js ga učita, klonira model za svaku jedinicu i pušta animacije preko AnimationMixer-a (idle, idle2, walk, attack, cast, channel, jump, hit, die, victory); efekti koji se pojavljuju u velikom broju (kiša strijela, korijenje, srca, roj pčela, zidine) idu kao InstancedMesh — jedan draw call za sve primjerke. Ista skripta s --portraits rendera portrete novih junaka za ekran odabira.
# Blender 4.2+ / 5.x
blender -b -P tools/blender/build_models.py
# ili Blender kao Python modul (Python 3.13): pip install bpy==5.2.2
python tools/blender/build_models.py # --preview za render svih modela, --no-ao za brže iteracije
# zatim sažmi geometriju (Draco) — GLB ~4× manji, igra ga dekodira s lib/draco/
cd tools/compress && npm install && node compress.mjs
Svi oblici su glatki: sjenčanje je glatko svugdje, a oštro ostaje samo gdje se plohe lome jače od 40° (poklopci valjaka, rubovi krila, brušeni kristali). Kocke imaju zaobljene rubove, veće kugle i valjci više segmenata, krošnje i kamenje glatke izbočine, a ambijentalna okluzija se peče po vrhu pa su prijelazi mekani. Kompresija (tools/compress/compress.mjs, gltf-transform + Draco) napravi i assets/models.js (GLB i Draco dekoder kao base64) da igra radi i kad otvoriš index.html dvoklikom (file://). Ako se modeli ne učitaju, igra se vraća na jednostavne oblike i AI portrete.
Sajt se objavljuje automatski: Vercel je povezan s ovim repozitorijem i svaki push na main postaje nova produkcijska verzija.
UI je na hrvatskom/bosanskom. Napravljeno uz Claude Code. 🤖
🪙 Jasan okvir zlata (v0.56) — iznad ploče junaka veliki okvir s 🪙 i brojem zlata koji glatko broji gore/dolje, +N kad nešto zaradiš, crveno bljesne kad potrošiš, i koliko zlata dobivaš u minuti; klik na okvir otvara dućan
🪙 A i S za zadnji udarac (v0.56) — A pa klik na vojnika (ili čudovište) = junak udari samo jednom i stane, pa ne gura stazu dok čekaš zlatnik; S = stani: prekine kretanje, napad i zamah udarca (udarac se ne potroši) i junak stoji dok ne dobije novu naredbu — ne napada sam vojnike oko sebe
🛒 25 novih predmeta (v0.56) — sada ih je 99, s novim učincima:
stats.mres (otpor magiji, množi se), stats.cdr (ne zbraja se, s talentima najviše 50 %), stats.amp, chain, cold, mburn, hunt; status disarmT; u opisu u dućanu nove crte (otpor magiji, hlađenje, jačina magija)BUILD_ALTS), a junaci s vlastitom gradnjom u 40 % igara zamijene zadnji predmet novim legendarnim (LATE_ALTS); botovi znaju koristiti sve nove aktivne predmete🏹 Napadi, kretanje i animacije junaka (v0.56):
<junak>_tip — sredina luka, kugla na štapu, čarobna kugla u ruci, usta cijevi puške, vrh krila), koja prati animaciju napada; projektil krene odande i u prvoj trećini leta glatko prijeđe na svoju putanju; i sjaj punjenja napada svijetli na vrhu oružjarun (dug korak, nagib naprijed, ruke rade, ptice raširenih krila) kad junak ide brže (izvan borbe, ubrzanje); u borbi hoda — brzina koraka prati stvarnu brzinu po tlu, pa noge puno manje kližu (prije je brzina animacije bila stalna)stun — tetura, glava kruži, ruke mlitavo vise (prije je samo usporio mirovanje)🧸 Junaci s identitetom: svoja glava i teksture (v0.56) — prije je skoro svaki junak imao istu okruglu glavu s istom „medvjeđom” njuškom, a ptice tanak kljun poput štapa. Sada svaka vrsta ima svoje lice (tools/blender/build_models.py, snout=):
🔤 Novi font i jasnije ikone predmeta (v0.56):
cursive font — „pisana slova”) igra koristi Nunito: zaobljen i čitljiv, s našim slovima i ćirilicom (varijabilni font, ~125 KB u assets/fonts/, licenca SIL OFL); bez interneta ili s file:// ostaje sistemski font bez rukopisnih slova; HUD (platno) ga učita odmah pri pokretanju⚖️ Balans junaka iz 48 + 32 simulirane igre (v0.56; strane izjednačene 23 : 23) — izdvajali su se Luna (85 % pobjeda), Mrak (79 %), Bambus (12 %) i Mudra (23 %):
✅ Automatska provjera prije objave (v0.56) — sh tools/check.sh (sintaksa svih skripti + tri kratke simulirane igre: normalna, brza na engleskom, džungla na ćirilici; ~40 s) i node tools/smoke.js (probna igra u Chromiumu na hrvatskom i engleskom — pada na svaku grešku na stranici, i u 3D crtanju). Na GitHubu ih pokreće .github/workflows/check.yml kod svakog slanja na main ili claude/… grane (~2,5 min); na main (koji Vercel odmah objavljuje) ide samo kad je provjera zelena
🌐 Jasnije spajanje preko interneta (v0.56) — server za spajanje ima 12 s, a prijatelj 15 s da se javi, inače igra kaže što se dogodilo i vrati izbornik (prije je zauvijek pisalo „Spajam se…”); svaka greška ima svoju poruku (nema sobe s tim kodom, server ne odgovara, mreža blokira vezu između uređaja, preglednik ne podržava igru preko interneta), a zauzet kod sobe zamijeni se novim. Testirano i pravom vezom (PeerJS + WebRTC) između dvije stranice preglednika: soba, spajanje, odabir junaka, SPREMAN i početak meča
🛒 Dućan na mobitelu (v0.56) — na niskom zaslonu prazan opis s uputama za miš ne zauzima mjesto (stane još jedan red predmeta), a na dodirnom zaslonu uputa kaže „dodirni predmet”; gumb brze igre kaže „~15–20 min” (izmjereno u simulacijama: medijan ~18 min)
⚖️ Druga runda balansa: 88 + 60 simuliranih igara (v0.56; strane 43 : 38 i 28 : 30) — uz ~30 igara po junaku mijenjani su samo jasni izuzeci:
📈 Iskustvo za zaostale (v0.56) — junak ispod prosječnog levela svih junaka dobiva +20 % iskustva po levelu zaostatka (najviše +50 %), isto za oba tima: tko izgubi prvu razmjenu na stazi, sustigne. (Probno „oprezniji botovi na početku staze” izbačeno je jer je u simulacijama davalo prednost crvenima: plavi je vodio u 9 od 30 igara, bez toga u 14–16 od 30)
⚡ Brza igra bez „gotovo za 6 minuta” (v0.56) — simulacija je pokazala zašto je ponekad završila za 5–10 min: na bočnoj stazi junak koji izgubi prvu razmjenu (level 1) odmakne se 800–1500 od vala, izvan dometa iskustva od vojnika (720), ostane na levelu 1, a s kulama od 60 % života T1 padne u 1.–2. minuti i krene lavina. Sada:
🔊 Glasovi su u igri (v0.56) — svih 275 replika (27 junaka × 9 + 32 najavljivača) preuzeto je u assets/voice/ (~3,4 MB, učitavaju se tek kad zatrebaju): igra više ne ovisi o Fish Audio poslužitelju
📱 Mobitel: manje natpisa i cijeli zaslon (v0.56) — na niskom zaslonu (logična visina < 600, npr. mobitel s trakom preglednika) velika ploča junaka postaje uska traka (portret s levelom i prstenom iskustva + 6 predmeta u redu, manji okvir zlata; život i mana su iznad junaka), nema savjeta za početnike (spominjali su tipke) ni kartice zadatka, najviše 3 kraće poruke, bez natpisa „Poen vještine” i „Povuci = nišani”, manja imena nad junacima; stupac gumba (📊 🛡️ 🏠 🛒) je ispod gornjih gumba • ⛶ cijeli zaslon radi i na mobitelu: uključuje se na ▶️ ZAIGRAJ (postavka ⚙️ „Cijeli zaslon”, na mobitelu posebna i uključena) i gumbom ⛶ u igri (dodir se broji na otpuštanju prsta, kako preglednik traži), a zaslon se zaključa vodoravno • iPhone u pregledniku nema cijeli zaslon: ⛶ kaže kako igru dodati na početni zaslon (manifest.webmanifest, ikone assets/icon-*.png, apple-mobile-web-app-capable) — odande se otvara bez trake preglednika
📱 Kontrole kao u LoL: Wild Riftu (v0.56, na dodirnom zaslonu; ⚙️ „Kontrole kao u Wild Riftu” ih isključuje i vraća stari način dodir = hodaj) — minimapa je gore lijevo, dolje lijevo je palica (pojavi se gdje palac dotakne zaslon, osnova prati palac ako ode predaleko; junak dobiva naredbu 240 ispred sebe svakih ~0,11 s, a kad pustiš, stane bez „✋ Stojiš” pa i dalje sam napada) • desno veliki ⚔️ napad (najbliži junak, pa vojnik, pa kula; držanje svakih 0,25 s provjeri metu, ali je ne mijenja usred udarca), 🪙 vojnik s najmanje života (ili svoj za uskraćivanje) i 🏰 kula • moći i čarolije u luku oko napada: povuci iz gumba = nišan (isti indikator na tlu kao mišem, smjer povlačenja se preračuna kroz kameru, duljina povlačenja = udaljenost; strijela i Bljesak uvijek do kraja), pusti = baci, povuci na ✖ = odustani, kratki dodir = na najbližeg neprijateljskog junaka u dometu (pa vojnika; Kazna na čudovište, Bljesak naprijed) uz pomoć pri ciljanju • svaki prst ima svoju ulogu pa se hoda i nišani istodobno; dva prsta na tlu = zum; pušten prst s minimape vrati kameru na junaka • u mrežnoj igri gost šalje „stani” (halt) kad pusti palicu
📱 Manje ploče na mobitelu (v0.56) — sučelje (gornja ploča, ploča junaka, moći, minimapa, talenti, savjeti) crta se u logičnoj veličini od barem ~1000 × 560 i na manjem zaslonu umanji (UI_K 0,72–1): na mobitelu 760 × 380 ploče zauzimaju ~četvrtinu visine umjesto ~40 % i više se ne preklapaju; trake života i brojevi nad jedinicama ostaju u pravoj veličini; dodir i klik se preračunaju (inRect, miniToWorld), a na računalu (1000 × 560 i veće) sve je isto
🌐 Provjerena mrežna igra (v0.56) — test s dvije stranice preglednika (domaćin i gost, iste poruke kao kroz PeerJS): gost vidi Luninu strijelu, svoju omamu s trakom, crvenu traku kad mu padne toranj (domaćin zlatnu), munje fontane i talente sa slikama, a odabrani talent stiže domaćinu; ispravljeno: mrežni meč nije pozivao applyMode(), pa nije imao nove cijene predmeta (a nakon brze igre bi naslijedio njene postavke)
⚡ Brže učitavanje (v0.56) — naslovna slika 474 → 283 KB, traka učitavanja 3D modela više ne stoji na 99 % pola vremena (Vercel šalje sažeto bez duljine), vercel.json dulje pamti biblioteke, fontove, glasove i ikone. Najveći dio i dalje su 3D modeli (~5,2 MB sažeto; junaci ~16 000 točaka zbog uzoraka krzna)
⛲ Fontana brani bazu (v0.56, kao u DotA 2) — neprijatelja koji uđe u njen krug (470, do prijestola je 533) gađa munjama svakih 0,3 s, do 3 mete odjednom (junaci prvi, vidi i nevidljive): 140 štete + 4 % najvećeg života po hicu — junak s 2600 života padne za ~3 s. Prijestol se i dalje ruši s puta staza (fontana ga ne dosegne). Kad si blizu neprijateljske fontane, crveni krug na tlu pokaže dokle puca, a pri prvom hicu iskoči „⛲ Fontana te gađa — bježi!”; botovi iz nje odmah izlaze i ne jure metu u nju; ubojstvo dobiva junak koji je metu zadnji udario (kao kod kula)
💰 Ekonomija normalne igre (v0.56; brza igra ostaje ista) — simulacija je pokazala da ubojstvo junaka nosi ~350 zlata ukupno (ubojica + svaki pomagač po 45 + bonusi „povratak” i „bogata meta”), ~30 % svega zlata:
applyItemPrices u game.js)🌠 Lunina Sveta strijela kao Miranina (v0.56) — Q leti 2000 (preko pola mape) brzinom 950 i zabije se u prvoga koga pogodi — i vojnik na putu je zaustavi, u tome je vještina (indikator pokaže koga će pogoditi): što dulje leti, dulje omami (0,6 → do 3,6 s na rangu 4, najjače nakon 1500 puta) i jače rani (do 320); čudovište iz džungle pada odmah (osim Velikog Zmaja i zmajčića). Iza sebe vuče mjesečev trag, a pri pogotku junaka iz daljine piše „🌙 Dalekometni pogodak!”. Botovska Luna gađa i ranjene junake izvan blizine, ali ne puca kad joj vojnik stoji na putu (u simulaciji pogodi junaka u ~70 % bacanja)
🎯 Bolje ciljanje (v0.56):
shotSpeed) uperena u neprijatelja ili blizu neprijateljskog junaka pogodi njega — i gađa malo ispred ako hoda (kao botovi, assistAim / leadAim); vrijedi za tipku, klik i dodir💫 Jače omame (v0.56): kad omama počne — zlatni udarni val, bljesak i iskre iz glave, zvuk „bonk + ptičice”, a junak kojeg vodiš zadrma kameru; iznad junaka 5 zvjezdica i zlatni kolut koji se ljulja (ostali 3 zvjezdice), pred kraj se smanje; zlatna traka omame ispod trake života (i kod vojnika i čudovišta) prazni se do kraja, uz junake piše koliko je još sekundi (💫1.4), iznad omamljenog junaka iskoči „💫 2.4 s”; dok si omamljen ili ušutkan, gumbi moći potamne s 💫 / 🤐
🎨 Naslikani talenti i najave (v0.56) — talenti i velike najave više nisu samo emoji i nacrtani okviri:
assets/talent/, talentIconSrc u data.js); tekst izbora ide u dva retkaassets/ui/banner_*.webp): 🟡 zlatna za dobru vijest za tvoj tim, 🔴 crvena za lošu (pala ti je kula, „Ne brini!”, poraz), 🔵 plava za obične vijesti; traka „iskoči”, sama se proširi za dug tekst, a u mrežnoj igri gost vidi boju iz svoje perspektivepython3 tools/art/ui.py izreže ikone iz dva lista 4 × 2 i makne magenta pozadinu s traka (originali su u tools/art/src/, nisu u gitu)🌐 Provjereni prijevodi (v0.56) — automatska provjera svih tekstova na engleskom, srpskom i ćirilici: podaci (junaci, moći, talenti, predmeti, čudovišta, zmajevi, rune, čarolije, postignuća), ekran junaka, dućan i opisi predmeta, HUD, poruke i najave iz 25 min simulirane igre te statični HTML (pomoć, postavke) u pregledniku:
fixNames u i18n.js; imena se pamte dok se učitava data.js)🦛🐆🦂 Tri nova junaka s moćima iz DotA 2 (v0.55) — sada ih je 27. Svaki ima urođenu pasivu, 4 moći, talente, 3D model iz Blendera (s animacijama i obrisom), glas (Fish Audio, 9 replika) i botove koji ga znaju igrati:
hook — udica samo kad se tim bori ili je meta ranjena, s gađanjem ispred mete koja hoda; grab — zalogaj uz sebe; burrow — Podzemni juriš u borbu, a ranjen bot njime pobjegne prema fontani)proj_hook (udica) i proj_gust (ledeni polumjesec); --dev-v55 brzo prikaže samo njih. Model je nakon Draco sažimanja 6,7 MB (prije 6,1 MB)node tools/sim/sim.js --vs=nilski,irbis,skorpion --check; sva tri u crvenom timu, botovi vode oba tima): botovi bacaju sve moći novih junaka (Škorpo npr. Q 18–27, W 34–59, E 44–63, R 8–12 puta po igri). ⚖️ Ravnoteža u 4 kruga po 6–8 igara (ubojstva/pogibije zbrojeno):
🎨 Portreti i ikone moći iz GPT Image 2.5 (v0.55) — svih 27 junaka dobilo je novi naslikani portret (1024 px, kvaliteta medium) i list od 6 ikona (urođena pasiva, Q, W, E, R i talenti; mreža 3 × 2, 1152 × 768) — ukupno 27 portreta i 162 ikone, generirano preko Fish Audio (gpt-image-2.5-sunburst):
tools/art/prompts.json (pravi ih tools/art/prompts.py iz engleskih naziva i opisa moći iz data.js i opisa izgleda svakog junaka — isti kostimi kao na 3D modelu), a linkovi gotovih slika u tools/art/urls.jsonpython3 tools/art/dl.py preuzme slike, smanji portrete u assets/hero_<junak>.jpg (512 px), na svakom listu pronađe granice pločica (najjači rub oko svake trećine/polovice — GPT ponekad pomakne crtu ili nacrta tanki razmak), izreže 6 kvadratnih ikona u assets/ab/<junak>_<P|Q|W|E|R|T>.jpg (128 px) i upiše junake u SPELL_ICONS u data.jsassets/hero_<junak>.jpg) i 162 ikone (assets/ab/) — SPELL_ICONS sadrži svih 27 junaka. Na 7 listova (gavran, nisan, orlina, pcela, sova, tragac, zarko) pločice nemaju vidljiv razmak pa je traženje ruba pomaknulo crtu reza; dl.py zato zanemari pronađeni rub koji je više od 1 % od točne trećine/polovice i reže po pravilnoj mreži (orlina s --inset 0,05), pa ponovno pokretanje daje iste, čiste ikone💰 Sporije zlato i predmeti, manje „snowballa” (v0.54) — u normalnoj igri zlato je stizalo prebrzo. Veliki predmeti ovdje koštaju otprilike pola cijene iz DotA 2 (Amulet skoka 1125, Kraljevski oklop 2000), a vojnici su davali puno DotA zlato, ubojstvo junaka i više od DotA (200 + 12 po levelu žrtve), a runa zlata 40 + 3 po minuti svakom junaku u timu — predmeti su se skupljali otprilike dvostruko brže nego u Doti. Tko bi rano pobijedio par puta, brzo bi pobjegao svima ostalima: najbogatiji junak zarađivao je dvostruko više od ostalih, od ubojstava čak 3,6× više.
TURBO_GOLD u game.js); bogata meta i dijeljenje bonusa vrijede i u njoj, a traje i dalje oko 15–18 minutatools/sim/econ.js za svaki zlatnik zapiše izvor (botovi vode oba tima; 12 igara prije i 12 poslije, uz 4 isprobane međuvarijante):
✏️ Ljepši junaci izbliza (v0.53) — krug poliranja 3D modela junaka:
face_cap stavlja takve mrlje uz zakrivljenu glavu: spljošteni elipsoid iz kojeg viri samo vrh, pa se rub glatko utapa u glavu👕 Junaci u svojoj odjeći (v0.52) — prije su svi nosili istu suknju i šal, kapuljaču ili plašt u boji tima, a gornji dio tijela bio je golo krzno, pa su plavi junaci izgledali kao „plava uniforma”. Sada svaki ima svoj kostim u svojim bojama, kao na portretu:
🧠 Botovi procjenjuju kad u gank, u džunglu, po runu i u pomoć (v0.51) — faza na stazama ostaje, ali botovi više ne rade „po satu”, nego kad se isplati:
🛣️ Biraš stazu kao ulogu u LoL-u (v0.50) — za pravu fazu na stazama u normalnoj igri:
🪖🤖 Izdržljiviji vojnici i pametniji botovi (v0.49):
⭐ Sporiji leveli kao u DotA 2 (v0.48):
🌙🗺️ Ljepša grafika, magla rata, jača čudovišta i veća mapa (v0.47):
Points objekt, a svjetla na tlu jedan instancirani mesh (2 draw calla za sve)lantern0, mushglow0, mushglow1; --dev-v47 brzo prikaže samo njih)🐗🐢 Džungla kao u Doti, sporiji junaci i kasniji gankovi (v0.46) — da igra ne ide „brzo, brzo” i da se više koristi prostor mape:
tools/sim/sim.js, 12 igara prije i 12 poslije, botovi vode oba tima): igra i dalje traje ~22 min (prije ~23), junaci su prosječno dalje od najbližeg protivnika (1606 umjesto 1556), u borbi su rjeđe (22% vremena umjesto 24%), ubojstava je ~13% manje u minuti, a prvi gank je prosječno u 4:27 (prije 2:13, najranije 1:16); AI statistika u simulaciji sada piše i kada je bio prvi gank (g1)⚡🎁🎶 Brza igra, nagrade, glazba i ravnoteža (v0.45):
tools/sim/sim.js --json, procjena snage junaka iz sastava timova):
🎯 Zadaci, graf i jezik u mrežnoj igri (v0.44):
🌍 Četiri jezika i novi početni ekran (v0.43):
?lang=hr, ?lang=sr, ?lang=cy (ćirilica) ili ?lang=en odmah otvara igru na tom jeziku🏆 Postignuća i profil (v0.42) — igra pamti (u pregledniku) tvoje igre i pobjede:
🔊 Novi zvuk (v0.41):
🏅 Za početnike i za zabavu (v0.40):
🧹 Čišće i zabavnije (v0.39):
✨ Veliko poliranje (v0.38):
tools/sim/sim.js — simulacija cijelih partija bez preglednika (node tools/sim/sim.js 4 --max=2700) za provjeru ravnoteže, veličine mape i ponašanja botovatools/sim/econ.js (v0.54) — ista simulacija, ali mjeri ekonomiju: odakle dolazi zlato (po izvoru i fazi igre), neto vrijednost, kad se kupuju veliki predmeti i koliko je najbogatiji junak ispred ostalih (node tools/sim/econ.js 4, --set=creepGoldMul=0.6 za probu drugih vrijednosti, --turbo za brzu igru)👥 5 na 5 (v0.37) — timovi su sada veliki kao u DotA-i i LoL-u:
🧽 Peglanje 2 (v0.36):
🌐 Mrežna igra: svatko vidi svoje (v0.35) — popravci za igru 1 na 1 preko interneta:
📣 Najavljivač, težina botova, pregled pogibije i ples (v0.34):
🗣️ Glasovi junaka (v0.32, na engleskom od v0.33) — kao u LoL-u i DotA, svaki junak ima svoj glas i 8 replika na engleskom (176 replika, napravljeno s Fish Audio):
voices.js; igra učitava samo replike tvog junaka i ulti ostalih junaka u meču🎯 Ciljanje mišem, indikatori i priprema (v0.31) — popravci po prijavama testera:
🦸 Potpisni detalji svakog junaka (v0.30) — kao kod LoL junaka, svatko ima svoj prepoznatljiv rekvizit koji priča njegovu priču i moći (smješten tako da se vidi i odozgo, iz kamere u igri):
⚔️ 3D modeli bliže League of Legendsu (v0.29):
🌳 Džungla, svjetlo i vojnici (v0.28):
🎨 Dizajn i 3D modeli (v0.27):
🐉 Zmajčići, tablet i postavke (v0.26):
⚡ Detalji iz League of Legends (v0.25):
🧽 Peglanje (v0.24):
🛒 Predmeti kao u DotA (v0.23):
⚔️ Animacije udaraca i magija (v0.22):
🗺️ 3D dorada, 3. dio (v0.21):
⛰️ 3D dorada, 2. dio (v0.20):
🏔️ 3D dorada, 1. dio (v0.19):
🧭 Jasniji izbor junaka (v0.18): kratak naslov i jedna rečenica o igri; kartice samo sa slikom, imenom i ikonom ⚔️/🏹; filtri Svi / Blizina / Daljina; desno 3D model, uloga i 5 pločica (✨ urođena pasiva + Q W E R) — prijeđi ili klikni pločicu za opis; prvi junak je odmah odabran pa je dovoljno pritisnuti ZAIGRAJ; multiplayer se otvara gumbom 👥; na mobitelu su gumbi uvijek pri dnu ekrana
⚔️ Patch sposobnosti (v0.17):
✨ Glatki modeli (v0.16): svi Blender modeli (junaci, vojnici, čudovišta, kule, drveće, kamenje, ukrasi, efekti) dobili su glatko sjenčanje, zaobljene rubove kocki, više segmenata na velikim oblinama i meke izbočine na krošnjama i kamenju; AO sjene se peku po vrhu pa su prijelazi mekani. Geometrija se sažima Dracom pa je models.glb ~4× manji nego prije (brže učitavanje, posebno na mobitelu)
🦄 Novi junaci i DotA sitnice (v0.15):
🫏 Kurir i 3D magije (v0.14):
✨ Detalji i magije (v0.13):
⚔️ DotA borba (v0.12):
🌳 Živa okolina i više složenosti (v0.11):
🐺 Još junaka i DotA detalja (v0.10):
🏚️ DotA mehanike (v0.9):
🦁 Ljepši modeli (v0.8): svi junaci imaju lica s osmijehom, obrvama i velikim očima; svaki ima svoj potpis — Lavko ramene štitnike i veću grivu, Žarko veća krila, plamen na repu i trbušne ploče, Ledena pahuljicu na kapi i rukavice, Strijela pero u kosi, Listko cvijet na glavi, Munja munju na čelu i očnjake, Skokica pjege, Orlina naočale za nišanjenje i repna pera, Luna zvjezdani plašt, Tragač šuriken na remenu; vuk ima očnjake i krzneni ovratnik, medo kandže, Zmaj veća krila
🔥 Čarolije u 3D-u (v0.7): strijele, vatrene kugle, ledene strijele, pera, šurikeni, žirevi, mjesečeve strijele i sokoli su Blender modeli koji lete, vrte se i ostavljaju trag; žablji jezik se stvarno rasteže do mete
🧸 3D modeli iz Blendera (v0.6): svih 10 junaka-životinja, vojnici (pješak, čarobnjak, opsadna kola s ovnom), čudovišta iz džungle (veprić, vuk, medo, Veliki Zmaj s krilima), kule, prijestoli, fontane, drveće, kamenje, grmlje i gljive — sve proceduralno modelirano Python skriptom u Blenderu
🎨 AI ilustracije (v0.5): naslikani portreti svih 10 junaka (select ekran, HUD i 3D glave u igri), portreti čudovišta iz džungle, slikovite teksture trave/staze/rijeke i epska splash pozadina — uz automatski fallback na emoji ako se slike ne učitaju
🗺️ Kompletna mapa: 3 staze, rijeka u udolini, baze na platoima (high/low ground — pucanje uzbrdo promaši 25%!), šuma, kule, fontane
🤖 5 protiv 5 (od v0.37; prije 3 protiv 3): ti + 4 bota protiv 5 botova — sredina sama, na bočnim stazama po dvoje; botovi farmaju, koriste moći i ultije, uče vještine, slažu recepte, idu u džunglu, bježe teleportom
🦁 27 junaka-životinja: svaki ima ✨ urođenu pasivu, 4 aktivne moći (Q/W/E/R) i 🎓 svoje talente; ULTI se otključava na levelu 6
🐺 DotA creep aggro: creepovi se biju s creepovima, siege vojnici ruše građevine, a napadneš li junaka — njegovi creepovi (i kula!) okreću se na tebe na 2.3 s
🎯 Indikatori moći: lebdenje nad gumbom pokazuje domet i krug djelovanja, tooltipi pokazuju štetu za tvoj rang
⬆️ Poeni vještina: svaki level (do 18!) = 1 poen — Q/W/E po 3 ranga, ulti 3 ranga (leveli 6/11/16), plus 6 poena za 📊 atribute
💪🤸🧠 Atributi kao u DotA: Snaga (život), Okretnost (brzina + brzina napada), Inteligencija (mana) — glavni atribut daje štetu i raste svaki level
🛒 Dućan s receptima: kategorije kao u DotA (potrošno, napad, obrana, magija, čizme, legendarno) i ⭐ Preporučeno — build za tvog junaka s oznakom 🎯 što kupiti sljedeće; torba sa 6 mjesta, aktivni predmeti, prodaja desnim klikom
⚔️ Auto-napad kao u DotA: junak koji stoji sam napada neprijatelje u dometu (junaci prvo, pa vojnici) — strijelci više ne čekaju klik
🎯 DotA ciljanje: prsten dometa + krug područja prije bacanja moći
🌫️ Magla rata — vid po jedinicama u zrakama (drveće i plato zaklanjaju pogled), noću kraći; gankovi rade u oba smjera
🌀 Teleport (T) — na svoju kulu/vojarnu (3,5 s) ili kući (T dvaput, 3 s); prekida se kretanjem/omamom
🐻 Džungla: 10 neutralnih kampova (veprići, vatreni vukovi, vukovi, 🗿 golemi, 🪨 kameni golemi) + 🐉 zmajčići + 🐲 Veliki Zmaj (boss — timski plijen, blagoslov i Zmajev štit)
✨ Rune na rijeci svake 2 minute • 🌙 dan/noć ciklus • 💪 veliki vojnik svaki 3. val
🗼 Aggro kula: napadneš li junaka ispod kule — kula gađa tebe! Na početku igre kule junacima rade dvostruku štetu
👑 Pobjeda rušenjem neprijateljskog prijestola (čuvarske kule prvo!)