Gör ett spel som funkar här
Allt som körs i en webbläsare går att ladda upp. Spelet packas som en zip-fil, och om det har en egen Node.js-server kör vi den åt dig.
Webbspel med HTML, CSS och JavaScript
Lägg spelet i en mapp med index.html som startsida och zippa mappen. Bygger du med Vite, React eller liknande laddar du upp den byggda mappen (oftast dist).
mitt-spel.zip
index.html
style.css
game.js
cover.png omslagsbild, valfri
assets/
hopp.mp3
- localStorage fungerar. Varje spel får ett eget utrymme, så två spel kan inte skriva över varandras highscore.
- SQLite i webbläsaren fungerar med till exempel sql.js. WebAssembly-filer serveras med rätt filtyp.
- Använd relativa sökvägar. Sökvägar som börjar med
/styrs om till spelets mapp, men relativa är säkrast.
Spel med Node.js-server och SQLite
Har spelet en gemensam topplista, inloggning eller flerspelarläge behöver det en server. Ta med package.json och serverfilen i zip-filen. Lämna node_modules utanför, vi installerar paketen på servern.
topplista.zip
package.json "start": "node server.js"
server.js
public/
index.html
game.js
- Lyssna på
process.env.PORT. Servern får en egen port när någon börjar spela. - Spara databasen i
process.env.DATA_DIR. Den mappen finns kvar när du laddar upp en ny version. - Anropa API:et relativt, som
fetch("api/score"). WebSocket och Socket.IO fungerar också. - Servern startar när någon spelar och somnar efter 10 minuter utan spelare. Första starten kan ta några sekunder.
- Node.js-spel granskas innan de publiceras, eftersom de kör kod på servern.
Be din AI om rätt upplägg
Klistra in det här i din prompt så blir spelet rätt paketerat från början.
Bygg spelet så att det går att ladda upp som en zip-fil på fredagsmys.se: - Lägg allt i en mapp med index.html som startsida. - Använd relativa sökvägar till filer (t.ex. "js/game.js", inte "C:/..." eller "/js/game.js"). - Spara highscore och inställningar i localStorage. - Lägg en omslagsbild som cover.png (1280×800) i mappen. - Spelet ska fylla fönstret och skala om när fönstret ändrar storlek. Om spelet behöver en server (t.ex. gemensam topplista eller flerspelarläge): - Använd Node.js med en package.json som har "start": "node server.js". - Servern ska lyssna på process.env.PORT. - Spara SQLite-databasen i mappen process.env.DATA_DIR (t.ex. path.join(process.env.DATA_DIR, "game.db")). - Servera index.html och övriga filer från servern, och anropa API:et med relativa sökvägar som "api/score".
Gränser
Zip-filen får vara högst 100 MB och 300 MB uppackad, med som mest 5 000 filer.