HTML5 játék hosztolása a weboldalon: feltöltés, beágyazás, javítás
Gyakorlati útmutató egy statikus játékmappához: hová kerül, hogyan nyitható meg, hogyan kerül egy oldalba, és mit kell ellenőrizni, ha nem indul.

HTML5 játék hosztolása egy mondatban: töltsd fel a játék game/ mappájának tartalmát bármely olyan webtárhelyre, amely statikus fájlokat szolgál ki, az almappákat hagyd pontosan úgy, ahogy vannak, és nyisd meg a mappa címét böngészőben. A piactéren található minden kiadás game/ mappája változtatás nélkül fut: nincs PHP, nincs adatbázis, nincs build lépés és nincs fiók, így a tárhelynek csak fájlokat kell átadnia a játékos böngészőjének.
Ha minden jól megy, ennyi a teendő. Ez az útmutató a többi napról szól: fehér képernyőről, 404-es hibákról, egy MIME-típus üzenetről, egy iframe-ről, amely semmit sem mutat. Ezeket a sablonokat mi árusítjuk, ezért úgy olvasd, mint a saját csomagjaink terepkönyvét. A Gridspark és a Velvet Pool másolatait egy eldobható helyi szerveren futtattuk, a Gridspark-ot több módon szándékosan elrontottuk, és más kiadások nyilvános kézikönyveit is elolvastuk. Ahol az állítás a kézikönyvből származik, nem a saját tesztünkből, ott ezt jelezzük.
Mit jelent egy HTML5 játék hosztolása
A statikus tárhely fájlokat tárol, és kérésre átadja őket a böngészőnek. A játékot soha nem futtatja; ezt a játékos böngészője teszi. Ezért olyan egyszerűek a kiadásaink követelményei: aktuális böngésző, statikus fájlokat HTTP vagy HTTPS fölött kiszolgáló tárhely, és nincs szükség PHP-re, adatbázisra vagy fiókra a játékhoz. A game/ mappa már el van készítve, így a közzétételhez nincs szükség npm-re és build lépésre.
Két korlátot érdemes tudni, mielőtt elkezdesz. Néhány kiadásnak vannak nem statikus, opcionális részei: a Zabum és a Ricopop opcionális ranglistát kínál, amelyhez PHP 7.4 vagy újabb és írható mappa kell. A TypeScript kiadásoknak (Beep Out, Pinloop, Trimora, Twirldrop, Riffvolt, Sunset Rally, Tenguin, Mochi Monsters, Deepforge, Barricade Z és Zabum) csak akkor kell a Node.js, ha a forráskódot szeretnéd szerkeszteni és újraépíteni; minden kézikönyv megadja a verziót. A Velvet Pool, a Puttide, a Ricopop és a Gridspark sima JavaScriptet használ, a szerkesztéseid és a feltöltött fájlok között nincs fordítási lépés. A játék változtatás nélküli közzétételéhez ezek egyikére sincs szükség. A tárhely maga sem része a vásárlásnak: az üzleti feltételek szerint a szervereden történő tárhely és telepítés külön szolgáltatás, amelyet munka előtt árazunk; a támogatás a telepítéssel és a fájlok használatával kapcsolatos kérdésekre terjed ki.
Mi kerül fel, és mi marad a számítógépen:
- Töltsd fel a game/ mappa teljes tartalmát: index.html, szkriptek, stílusok, képek, hangok és betűtípusok.
- Ne töltsd fel a source/ mappát (a szerkeszthető fejlesztői másolat), a documentation/ mappát (a kézikönyv) és magát a ZIP-et. A Zabum kézikönyve megemlíti, hogy a source/ tévedésből történő feltöltése 404-es hibákat okoz, például a main.tsx miatt.
- A csomaggal érkező harmadik féltől származó licencértesítéseket tartsd meg a terméked mellett, ahogy a feltételek kérik.
Nézd meg a Gridspark-ot, a példaként használt kiadást
HTML5 játék hosztolása: a rövid út a ZIP-től a lejátszható oldalig
Ezek a lépések a Velvet Pool, a Puttide, a Gridspark és a Sunset Rally kézikönyvének telepítési fejezetein alapulnak, kiegészítve a tesztjeink után hozzáadott ellenőrzésekkel. A Gridspark a példa, mert ezt szolgáltuk ki a legtöbbször, és ezt törtük el a leggyakrabban.
- Csomagold ki a csomagot a számítógépeden. Ezt találod: game/ (a mappa, amelyet közzéteszel), source/ (a szerkeszthető másolat) és documentation/ (a kézikönyv).
- Opcionális, de olcsó: teszteld helyben. Nyiss terminált a game/ mappában, futtasd a python -m http.server 8765 parancsot, és nyisd meg a http://localhost:8765/ címet. Ha ott játszható, a fájlok rendben vannak, és minden későbbi probléma a tárhelyhez kötődik.
- Döntsd el most a végleges címet, például https://your-site.example/games/gridspark/. Az almappa működik, mert a játékon belüli útvonalak relatívak; a Gridspark kézikönyve a public_html/games/gridspark/ mappát javasolja.
- Töltsd fel a game/ tartalmát abba a mappába a tárhely fájlkezelőjével vagy egy FTP-kliensel, az almappákat megtartva. Az index.html-nek közvetlenül a mappában kell lennie, nem egy szinttel mélyebben.
- Nyisd meg a mappa címét https-en, a végén perjellel. A Gridspark-ban koppints a kezdőképernyőre (a böngészők a hangot csak érintés vagy kattintás után engedik), majd nyomd meg a Play (Lejátszás) gombot.
- Tegyél meg egy lépést, töltsd újra az oldalt, és ellenőrizd, hogy a menü most a Continue (Folytatás) lehetőséget kínálja. Ez bizonyítja, hogy a böngésző menti a haladást a te címedhez.
- Linkeld a mappát a webhelyedről, vagy ágyazd be egy oldalba (lásd lent az iframe részt).
A kész Gridspark-mappa az index.html, a style.css, a gridspark.config.js, valamint az src/ és assets/ mappák egymás mellett található; a kézikönyv kéri, hogy maradjanak együtt. Más kiadásoknál másképp van elrendezve a tartalom (a Velvet Pool css/ és assets/ mappát használ egyetlen stíluslap helyett), de a szabály ugyanaz: a mappát úgy töltsd fel, ahogy érkezett.
Miért fehér az oldal, ha duplán kattintasz az index.html-re
A megnyitott kiadások kódját ES modulként töltik be, a böngészők pedig nem töltenek be modulokat file:// címről. A Gridspark-ot közvetlenül lemezről nyitottuk meg Chromiumban, és egy sötét, üres képernyőt kaptunk. A konzol szerint a szkriptet a CORS-szabályzat blokkolta, ezzel az indokkal: „Cross origin requests are only supported for protocol schemes” (a más eredetű kérések csak olyan sémákon támogatottak, mint a http és a https). Ugyanez a mappa helyi webkiszolgálón már azonnal megmutatta a kezdőképernyőt. A Velvet Pool, a Puttide, a Sunset Rally és a Gridspark kézikönyve mind ugyanezt írja: ne nyisd meg a játékot file:// címről.
- Nem működik: file:///C:/Users/te/games/gridspark/index.html
- Működik: http://localhost:8765/ helyi tesztszerverről, vagy https://your-site.example/games/gridspark/ a tárhelyeden.
Csak a Chromiumot teszteltük. A kézikönyvek szerint ezt a viselkedést a gyakori böngészők megvalósítják, ezért mindenhol számolj vele.
A játék beágyazása oldalba iframe-mel
Ahhoz, hogy a játékot egy már meglévő oldalon mutasd meg, az iframe-nek a feltöltött mappára kell mutatnia. Ez a tesztelt címke:
<iframe src="https://your-site.example/games/gridspark/" title="Gridspark" allow="fullscreen; autoplay" width="960" height="540" style="border:0"></iframe>
- src: a mappa teljes címe, https-sel és a végi perjellel.
- title: rövid név. A képernyőolvasók ezzel írják le a keretet.
- allow="fullscreen; autoplay": a kézikönyvek szerint szükség esetén engedélyezd az iframe-ben a teljes képernyőt és az automatikus lejátszást. Tesztünkben egy másik címről érkező keretben, amelyben ez nincs megadva, a teljes képernyő le volt tiltva, a Gridspark pedig egyszerűen elrejtette a teljes képernyő gombját. A régebbi allowfullscreen attribútum ugyanazt az eredményt adta, mint az allow. Ha a keret ugyanazon a címen van, mint az oldal, a teljes képernyő mindkét esetben működik.
- Nincs sandbox attribútum. Ha csak a sandbox="allow-scripts" van megadva, a Gridspark nem indult el: a keret null eredetet kapott, a böngésző blokkolta a játék saját szkriptjét, a helyi tárolás pedig biztonsági hibát dobott. Az allow-same-origin hozzáadásával működik, de az MDN figyelmeztet, hogy ez a páros azonos eredetű kereten megszünteti a védelmet, ezért a saját tárhelyeden hosztolt játéknál hagyd ki a sandbox-ot.
Méretezés telefonra
Egy fix 16:9-es doboz asztali gépen jól néz ki, telefonon viszont rosszul. 390 px szélességnél egy 16:9 arányú iframe csak 219 px magas, és a Gridspark menüje a Daily challenge (napi kihívás) gomb alatt elvágódott. Ha a kerethez 75svh magasságot adtunk, vagyis a képernyő magasságának háromnegyedét, a teljes menü látszott. Az oldaladnak szüksége van viewport meta címkére is; a megvizsgált hat csomag mindegyike tartalmazza ezt a saját index.html-jében, ezért a játék közvetlen megnyitáskor is méretezkedik.

A játék a saját címén, körülötte oldal nélkül is működik, így a címére mutató egyszerű link mindig érvényes tartalék megoldás.
Nézd meg a Velvet Pool-t, egy 3D kiadást, amely ugyanígy ágyazható be
WordPress és más weboldal-szerkesztők
A mappa tárhelyre töltése és egy oldalon való megjelenítése két külön feladat, és WordPressben két különböző eszközt használnak hozzájuk. Az alábbiak a WordPress dokumentációjából és fejlesztői referenciájából származnak, nem abból, hogy mi magunk futtattunk WordPresst.
- Töltsd fel a mappát a tárhely fájlkezelőjével vagy FTP-vel a webhely mappastruktúrájába (például a WordPress-mappák mellé egy games/ mappába). Ne a Médiatárban keresztül: a WordPress kódja eltávolítja a .html és a .js fájlokat az engedélyezett feltöltési típusok közül, hacsak a felhasználó nem rendelkezik az unfiltered_html képességgel.
- Nyisd meg a mappa címét önmagában, mielőtt bármelyik oldalhoz hozzányúlnál. A WordPress dokumentált alapértelmezett Apache-szabályai csak akkor küldik a kérést az index.php-nek, ha nincs megfelelő fájl vagy mappa (ezt vizsgálja a !-f és !-d feltétel), így a feltöltött mappa változtatás nélkül jelenik meg.
- Adj hozzá iframe-et egy Egyéni HTML blokkban. A WordPress dokumentálja, hogy az unfiltered_html képesség nélküli felhasználók, például egy közreműködő, mentéskor elveszítik az iframe címkéket. Ha a keret mentés után eltűnik, nézd meg, ki szerkesztette az oldalt.
Más weboldal-szerkesztőkkel és CMS-ekkel nem teszteltünk, és egyikről sem állítunk semmit. A játéknak mindenhol ugyanaz kell: hely a feltöltött mappának, és egy beágyazható elem, amely elfogad iframe-et. Ha egy szerkesztő egyiket sem kínálja, tárold a mappát bárhol, ahol statikus fájlok szolgálhatók ki, és linkelj a címére.
Ha nem indul el: hibaelhárító lista
Mielőtt bármit változtatnál, nyisd meg a böngésző fejlesztői eszközeit (asztali böngészőkben többnyire F12), és nézd meg a Konzol és a Hálózat füleket. Minden alábbi hiba piros sort hagy ott, és a benne szereplő fájlnév általában megmutatja az okot.
Fehér képernyő
Ebben a sorrendben ellenőrizd: a cím http:// vagy https:// kezdetű; a konzolban nincs piros sor; a fájlnevek megtartják a pontos kis- és nagybetűs írásmódjukat; és a 3D kiadásoknál elérhető a WebGL2 (a Velvet Pool kézikönyve azt írja, hogy kapcsold be a hardveres gyorsítást). A Linux tárhelyek a Game.js és a game.js fájlt két külön fájlnak tekintik, a Windows nem, így a számítógépen működő mappa feltöltés után elromolhat. A Velvet Pool és a Zabum kézikönyve is figyelmeztet a kis- és nagybetűkre.
404 a src/main.js, a betűtípusok vagy a képek miatt
A mappa egy része nem érkezett meg, vagy egy szinttel mélyebbre került. Úgy reprodukáltuk, hogy csak az index.html, a style.css és a konfigurációs fájl került fel: a képernyő üres maradt, a Hálózat fül pedig 404-et mutatott a src/main.js-re és minden betűtípusra. Töltsd fel a hiányzó mappákat, vagy húzd feljebb a tartalmat úgy, hogy az index.html a megnyitott címen legyen. Ha képek vagy hangok hiányoznak vagy sérültek, a Zabum kézikönyve bináris vagy automatikus módú FTP-t javasol, vagy ZIP feltöltését és kicsomagolását a tárhely fájlkezelőjében. A 404 hiányzó fájlt jelent, nem MIME-problémát.
Az oldal stílus nélkül töltődik be, óriási ikonokkal
Ha egy átírási vagy tiszta URL-beállítás a végi perjel nélkül szolgálja ki a mappát, a relatív útvonalak egy szinttel feljebb oldódnak fel. Egy olyan tesztszerverrel reprodukáltuk, amely átirányítás nélkül adja vissza a mappa oldalát. A böngésző a /games/style.css és a /games/src/main.js címeket kérte a /games/gridspark/ mappában lévő fájlok helyett, 404-et kapott, és a menüt nyers gombokként és túlméretezett ikonokként rajzolta ki. Linkelj a mappára a végi perjellel, vagy közvetlenül az index.html-re.

MIME-típus hiba modulszkripten
A tesztünkben a konzol ezt írta: „Failed to load module script: Expected a JavaScript-or-Wasm module script but the server responded with a MIME type of "text/plain".” A böngészők szigorúak a modulszkriptekkel. A kézikönyvek szerint a szervernek a .js fájlokat JavaScript MIME-típussal kell küldenie, a .wasm fájlokat application/wasm típussal; a Sunset Rally kézikönyve a .mjs fájlokat is hozzáteszi. A Hálózat fül minden fájl Content-Type értékét mutatja. A megnyitott buildekben a modulok .js fájlok. Ha saját .mjs fájlokat adsz hozzá, és egy régi Apache-konfiguráció nem képezi le őket, egyetlen sor a .htaccess fájlban megoldja, ugyanaz, amit a saját oldalunk is használ:
AddType text/javascript .mjs
A tesztgépünkön futó Apache 2.4.62 típustáblázata már a js és mjs fájlokat text/javascript, a wasm fájlokat application/wasm típusra képezi le, így egy alapértelmezett telepítéshez nincs szükség erre a sorra. Más szerverek saját táblázatot használnak; kérdezd meg azt, aki a tiédet üzemelteti.
Blokkolva a CORS-szabályzat miatt
A más címről betöltött modulszkriptekhez és betűtípusokhoz a címnek Access-Control-Allow-Origin fejlécet kell küldenie. A tesztünkben egy portról futó oldal nem tudott modulszkriptet betölteni egy másik portról, amíg a második szerver nem küldte el a fejlécet. A gyakorlatban a javítás unalmas: tartsd a játék fájljait egy mappában, egy címen, ahogy a csomagokat is felépítettük. Ahhoz, hogy a játékot egy másik oldal iframe-jébe ágyazd, nincs szükség CORS-ra, mert az iframe egyszerűen betölti a játék címét. A beágyazáson belüli CORS-hiba általában a fent leírt sandbox attribútumból ered.
Vegyes tartalom https oldalon
Az https-en kiszolgált oldal nem tölthet be szkripteket vagy iframe-eket http-n keresztül: a böngészők mindkettőt blokkolják, az MDN pedig a betűtípusokat és a fetch kéréseket is a blokkolt típusok közé sorolja. Használj https:// címet az iframe src-ben és minden beírt teljes címben. A játék saját fájljai relatív útvonalakat használnak, így követik a megnyitott cím sémáját. Ha az https cím meg sem nyílik, először a tárhely panelján engedélyezd a tanúsítványt.
Az iframe azt írja: „refused to connect”
A tesztünkben a Chromium ezt a sort naplózta, a blokkolt keret címével az első idézőjelek között: „Refused to display 'https://game-host.example/' in a frame because it set 'X-Frame-Options' to 'sameorigin'.” A játékot hosztoló szerver küldte ezt a fejlécet. A SAMEORIGIN csak ugyanarról a címről engedi a beágyazást, a DENY soha nem engedi; a Content-Security-Policy fejlécben lévő frame-ancestors szabály hasonló célt szolgál. Változtasd meg a fejlécet a játék mappájára, vagy szolgáld ki az oldalt és a játékot ugyanarról a címről.
Kezdetben nincs hang
A böngészők az első koppintásig vagy kattintásig blokkolják a hangot, ezért nyílik a Gridspark koppintásra induló képernyővel. Koppints egyszer, majd ellenőrizd a hangerőt és a böngésző engedélyeit.
Nézd meg a Puttide-ot, a golf kiadást kész, feltölthető buildgel
A játék frissítése anélkül, hogy félig régi verzió futna
A böngészők gyorsítótárazzák a szkripteket, ezért feltöltés után te vagy a játékos még mindig a régi játékot láthatja. A Gridspark kézikönyve adja a szabályt: mentsd el a módosításaidat, cseréld le a játszható fájlokat egyetlen csomagként, teszteld, és ha a tárhely gyorsítótárazza a régi modulokat, frissíts kemény újratöltéssel. Ne keverd a régi és az új modulokat. Sok kis fájlból álló játékot, amelyek egymást importálják, rossz félig frissíteni.
A service worker-rel rendelkező kiadásoknak saját gyorsítótáruk van. A Zabum PWA: frissítés után végezz kemény újratöltést (Ctrl vagy Cmd + Shift + R). Ha hangfájlokat cseréltél, változtasd meg a gyorsítótár nevét az sw.js-ben (a kézikönyv példája zabum-v5-ről zabum-v6-ra vált), és töltsd fel ezt a fájlt. Ha a webhelyed CDN mögött van, a CDN gyorsítótárát is ürítsd. Az áttekintett kézikönyvek közül a Zabum az egyetlen PWA: a Velvet Pool és a Puttide kézikönyve kifejezetten kimondja, hogy az övék nem telepíthető offline alkalmazás.
Olvasd el a változásnaplót, mielőtt fájlokat cserélnél, és őrizz meg egy másolatot mindenről, amit szerkesztettél. A mentések minden játékos saját böngészőjében vannak, nem a feltöltött mappában, így a fájlok cseréje nem törli őket.
Nézd meg a Zabum-ot, a PWA kiadást opcionális PHP ranglistával
Hol mentődik a haladás, és mi történik, ha törlöd a böngésző adatait
Ezeknek a kiadásoknak nincs fiókjuk és nincs szerveroldali adatbázisuk. A beállítások, a nyelv, az aktuális játék és a személyes rekordok a böngésző helyi tárolójában (local storage) vannak, és semmi nem megy a Polar Games-nek. A Gridspark kézikönyve a kulcsokat gridspark.standalone.v1.* néven nevezi meg; egy lépés után ezeket láttuk: gridspark.standalone.v1.best és gridspark.standalone.v1.save.

A tárolás a címhez tartozik (protokoll, gazdagép és port), nem a mappához. Háromféleképpen ellenőriztük. Egy Gridspark-másolat ugyanazon cím másik mappájában ugyanazokat a mentett értékeket olvasta. Ugyanez a játék localhost helyett 127.0.0.1 címen üresen indult, és üresen indult ugyanez a cím másik porton is. A Zabum kézikönyve hozzáteszi, hogy a http és a https, a www és a nem-www, valamint az aldomainek mind saját tárolóval rendelkeznek.
- A webhely adatainak vagy sütiknek a törlése kitörli a mentett játékot és a rekordokat. Privát ablakban a haladás csak a munkamenetig maradhat meg; a játék akkor is fut, ha a tárolás tiltott.
- Másik böngészőben vagy másik eszközön nulláról indul. Nincs szinkronizálás és nincs bejelentkezés.
- A cím megváltoztatása mindenkit visszaállít: http-ről https-re, www-ről nem-www-re, új domainre.
- A játék másik mappába történő áthelyezése ugyanazon a címen megtartja a mentéseket, ahogy a Gridspark tesztünk mutatta.
Tesztlista a link megosztása előtt
- Nyisd meg a végleges címet a játékosaid böngészőiben: egy Chromium-alapú böngészőben (Chrome vagy Edge), Firefoxban és Safariban. Mi csak Chromiumban teszteltünk, ezért ezt a listát neked kell lefuttatnod.
- Nyisd meg valódi telefonon, először a játék saját címén, majd az oldaladba ágyazva, mindkét tájolásban.
- Lassítsd a kapcsolatot a fejlesztői eszközökben, és figyeld az első betöltést. A Gridspark a mi helyi szerverünkről tömörítés nélkül, körülbelül 0,5 MB-ot és 26 kérést igényelt a kezdőképernyőig. 1,6 Mbit/s sebességre és 150 ms késleltetésre lassított Chromiumban a képernyő nagyjából 3 másodperc múlva jelent meg. A teljes game/ mappa a mi példányunkon körülbelül 3,4 MB; a Velvet Pool körülbelül 7,3 MB, a Puttide körülbelül 15 MB. Ha a régi telefonokon lassú, a Zabum kézikönyve azt javasolja, ellenőrizd, hogy a tárhely gzip vagy brotli tömörítést használ-e.
- Játssz egy lépést, töltsd újra, és győződj meg róla, hogy a Continue és a legjobb eredmény megvan.
- Koppints egyszer, és ellenőrizd, hogy elindul-e a hang. A koppintás előtti csend normális.
- Nyiss privát ablakot. A játéknak akkor is futnia kell, még ha a bezáráskor el is felejti a haladást.
- Az első betöltésnél nézd a Konzol és a Hálózat füleket: nincs piros sor, nincs 404.
- Beágyazásban ellenőrizd, hogy megjelenik-e a teljes képernyő gomb, és hogy a keret elég magas-e telefonon.
Gyakran ismételt kérdések
Kell PHP, adatbázis vagy speciális szerver egy HTML5 játék hosztolásához?
A kiadásainknál, ahogy vannak, nem. Statikusak: töltsd fel a game/ mappát egy olyan tárhelyre, amely HTTP vagy HTTPS fölött szolgál ki fájlokat, és nyisd meg. A Zabum és a Ricopop opcionális ranglistával rendelkezik, amelyhez PHP 7.4 vagy újabb és írható mappa kell.
Csak duplán kattinthatok az index.html-re?
Nem. A böngészők blokkolják a játékmodulokat a file:// címen, és az oldal üres marad. Nyisd meg a játékot http vagy https címen keresztül, akár a tárhelyeden, akár helyi tesztszerveren, például a python -m http.server 8765 paranccsal.
Kell HTTPS?
A kézikönyvek nyilvános tárhelyhez HTTPS-t javasolnak. A Zabum kézikönyve szerint az Add to home screen (Hozzáadás a kezdőképernyőhöz) funkcióhoz szükséges, az https oldal pedig nem ágyazhat be http iframe-et, mert a böngésző vegyes tartalomként blokkolja.
Hogyan adom hozzá a játékot egy WordPress oldalhoz?
Töltsd fel a mappát a tárhely fájlkezelőjével vagy FTP-vel, nyisd meg a címét, hogy megbizonyosodj róla, hogy játszható, majd adj hozzá iframe-et egy Egyéni HTML blokkban. Az unfiltered_html képesség nélküli felhasználóknál az iframe-eket eltávolítják, ezért nézd meg, milyen szerepe van annak, aki az oldalt szerkeszti.
Hol mentődik a haladás, és mi van, ha a játékosok törlik a böngésző adatait?
A böngésző helyi tárolójában, címenként. A webhely adatainak törlése kitörli, egy másik böngésző vagy eszköz üresen indul, a domain megváltoztatása vagy a http és https közötti váltás pedig visszaállítja. Nincsenek fiókok, és semmi nem jut el hozzánk.
A Polar Games hosztolja helyettem a játékot?
Nem. A bolt a fájlokat árulja. A támogatás a telepítésükkel és használatukkal kapcsolatos kérdésekre terjed ki; a hosztolás és a telepítés a saját szervereden külön szolgáltatás, amelyet munka előtt árazunk.
Következő lépés
Ha még választasz HTML5 játékot a weboldaladhoz, minden termékoldal felsorolja a követelményeit, linkeli a kézikönyvét, és a vásárlás előtt kipróbálhatod a demót. Először a telepítési fejezetet olvasd el a kézikönyvben: ez az oldal lesz, amelyet ehhez a munkához használni fogsz.
