En introduktion till javascript genom att skapa ett inkrementellt clicker-spel.

Vad är ett incremental spel?

Ett incremental spel (inkrementella, ökande, svårt att översätta), är ett spel där spelare gör små handlingar för att öka en siffra eller poäng. Det finns lite olika typer, clickers, idle och management. Det är en genre som är populär på webben och i mobila enheter. Allt eftersom spelaren ökar sin poäng så kan spelaren köpa uppgraderingar som ökar poängen automatiskt eller i större mängd.

Olika typer

Som du ser så är det olika typer av spel med en gemensam grund.

Hur fungerar det då?

Inkrementella spel har ett enkelt spelsystem som uppmuntrar spelare att fortsätta spela genom att erbjuda belöningar och engagerande mekanik. Några nyckelkomponenter i ett inkrementellt spel inkluderar:

Viktiga frågor

Som alla spel är det svåraste att göra det engagerande och roligt. Här är några viktiga frågor att ställa när du designar ett inkrementellt spel:

Exempel på ett Inkrementellt Clicker-spel

Om du har svårt med att komma på ett spel så kan du använda mallen ovan som input för prompt till en generativ AI. Det kan hjälpa med kreativiteten och att komma igång. Fråga också efter flera förslag.

Här hittar du min prompt och Chat-GPTs svar.

En av fördelarna med att arbeta med AI på det här sättet är också att du kan fortsätta ställa frågor och utveckla idén. Kom ihåg att det är en AI tjänst och är du inte nöjd med svaret så kan du ställa om frågan eller be om fler förslag.

För den här texten så kör vi med iden från Chat-GPTs svar, ett cyberpunk clicker-spel.

Cyberpunk Hackersyndikat

I en dystopisk framtid styr megakorporationer städerna och övervakar allt. Du leder ett underjordiskt hackersyndikat med ett mål: att ta tillbaka kontrollen. Genom att hacka företag och stjäla deras data bryter du ner systemet bit för bit. Men varje framsteg innebär större risker – avancerad säkerhet hotar din existens.

Adobe firefly illustrtaion av speliden

Som mästare över stadens digitala underjord måste du balansera risk och belöning. Kan du krossa megakorporationernas grepp, eller förlorar du allt i jakten på digital makt?

Jag passade även på att be om hjälp med namn för spelet då Cyberpunk Hackersyndikat inte direkt rullar av tungan. Förslagen var sådär så vi kör med Nollskiftet.

Olika typer:

Hur fungerar det då?

Viktiga frågor:

Att skapa spelet

Nu har vi en idé att arbeta med. Så nu är det dags att sätta igång och skapa spelet. Vi kommer att använda oss av javascript, html och css för att skapa spelet.

Grundläggande struktur

Vi börjar med att skapa en grundläggande struktur för spelet. Vi behöver en HTML-fil, en CSS-fil och en JavaScript-fil.

Du kan skapa filerna lokalt eller kopiera projektet på Codepen.

HTML

För att fokusera på det viktigaste så inkluderar jag inte den fullständiga strukturen för en webbsida. Vi behöver en container för spelet, en rubrik, en knapp för att hacka systemet och en räknare för stulen data.

<main class="container">
  <h1>Nollskiftet</h1>
  <p>Klicka för att hacka systemet och stjäla data!</p>
  <button id="hackButton">Hacka!</button>
  <p>Stulen Data: <span id="dataStolen">0</span></p>
</main>

CSS

Stilarna på spelet är väldigt viktigt, men det blir snabbt mycket kod. Här är en enkel stil för att testa. Vill du se den fullständiga stilmallen så finns den på Codepen.

body {
  font-family: sans-serif;
  font-size: 1.2rem;
}
.container {
  width: min(70ch, 100% - 3rem);
  margin-inline: auto;
}
button {
  padding: 0.5em;
  font-size: 2rem;
  cursor: pointer;
}

JavaScript

För att göra spelet interaktivt behöver vi JavaScript för att hantera klickhändelsen och uppdatera data. Här är en enkel JavaScript-kod för att räkna stulen data när spelaren klickar på knappen.

const hackButton = document.querySelector("#hackButton")
const dataElement = document.querySelector("#dataStolen")

let dataStolen = 0

hackButton.addEventListener('click', () => {
  dataStolen += 1
  dataElement.textContent = dataStolen
});

Koden väljer element med querySelector och lägger till en händelselyssnare för klickhändelsen på knappen. När spelaren klickar på knappen ökar dataStolen-värdet med 1 och uppdaterar textinnehållet i dataElement.

Sammanfattning

I den här texten har vi tittat på vad ett inkrementellt spel är och hur det fungerar. Vi har också skapat en grundläggande struktur för ett inkrementellt clicker-spel med

I nästa del, [Incremental spel, game loop] kommer vi att titta på hur vi kan utöka spelet med fler funktioner och mekaniker för att göra det mer engagerande och roligt att spela.