# 🎮 Phaser - Programmeringsmetodik genom att skapa ett spel i phaser

Vi ska arbeta tillsammans för att förbättra projektet “Mimer Game”, vilket är en
samling av små spel.

## Innehåll

Läs igenom planeringen för detta moment:
[https://htsit.se/k/#!/programmering-2/phaser]

### Games

- Akriv: [Länk](https://gitlab.com/krmit/mimer-game-2021)
- Demo: [Länk](https://htsit.se/h/)

Detta är en samling av spel och bra objekt för att skapa spel i phaser. Spelen
är enkla och har stor utvecklingspotential. Din uppgift är att förbättra en del
av detta arkiv. Efter varje läsår så kommer arkivet att nollställas, men om du
har bidragit med något som lever vidare till nästa version kommer ditt namn
finnas i filen “CONTRIBUTORS.md” om du vill.

Licensen på alla spelen är GPL.

### Games Lib

- [Länk](https://gitlab.com/krmit/mimer-game-lib)

Detta är en liten samling av kod som kan vara till nytta i olika projekt. Alla
spel i “Mimer Game” ska importera kod från detta biblioteken för att få spelen
att se mer lika ut. Detta bibliotek är under uppbyggnad.

### Demos

- [Länk](https://gitlab.com/krmit/mimer-phaser-demo-pre)
- [Se dem](https://htsit.se/b/)

De finns ett arkiv med olika demonstrationer på vad man kan göra med phaser.
Dessa är uppdelade i olika kategorier och till varje kategori finns det en
kommentar om koncepten bakom dessa demonstrationer. Där finns det också länkar
till andra exempel på phaser kod, men dessa exempel kan vara mer invecklade.
Varje demonstration är enkel och förklara i första hand hur du kan åstadkomma en
sak med phaser. Detta gör dem bra för att lära dig phaser och länkar kommer att
kopplas från uppgifter till dessa demonstrationer. Observera dock att dessa
demonstrationer är långt ifrån färdiga utan kompletteras utifrån problem som
många har.

### Resurser

- [Länk](https://gitlab.com/krmit/mimer-assets-pre)

Detta arkiv är samling av bilder och annat material som kan användas för att
göra enkla spel. Dessa är anpassade för att fungera väl tillsammans med Demo och
Game arkiven som vi diskuterar ovan. Du kan hämta de resurser du behöver från
detta arkiv så du kan koncentrera sig på att programmera.

Varje resurs är noggrann länkat till originalet, skaparen är namngiven och det
är också angivet vilket licens som användas. I första hand är licensen antingen
“Public domain”, “Creative commons public domain (CC0)” och “Creative commons
Attribution-ShareAlike (CC BY-SA 3.0)”. Dessa licenser låter dig modifiera
resurserna så som du vill och fortfarande kunna använda spel du utvecklar så som
du vill, men glöm dock inte bort att ge kredit till dem som skapat de resurser
du har använt.

### Guider

Dessa guide är till för att hjälpa er komma igång.

#### Enkel utveckling

Det är det “enklaste” sättet att utveckla på. det vill säga kräver att du kan
minst om olika verktyg för utveckling.

1. Ladda ned filen från https://htsit.se/f/mimer-game-2021.zip
2. Packa upp filen.
3. Gå till mappen.
4. Starta Visual studio kod i mappen eller bara välja öppna den mappen när du
   har startat visual studio kod.
5. Starta en webbserver i den mappen. Se nedan för guider hur du gör det finns
   http-server för linux och ran för alla system. Båda kräver antagligen att du
   är administratör.
6. Du kan nu gå till ditt spel och se det i webbläsaren.
7. Gör ändringarna du vill göra i din Visual Studio kod, vill du lägga till en
   bild se nedan.
8. När du är nöjd med en ändring gå till
   https://gitlab.com/krmit/mimer-game-2021
9. Välj filerna du vill ändra och öppna webbeditorn.
10. Välja att göra en push request.
11. Glöm inte att ange vilket ärende som du har löst.

#### Att använda **http-server** webbserver

Om du har ett system där du har mode och npm kan du lätt installera följande
webbserver.

1. Install npm programmet http-server. **sudo npm install -g http-server**
2. Starta programmet när du är i den folder som du vill ska bli en webbmapp.
   **http-server**

- Om du vill använda en specifik port får du använda en flagga: **sudo
  http-server -p 80**

4. Öppna nu sidan [http://localhost:8080] i din browser.

#### Att använda **ran** webbserver

Om du har ett system där du admin kan du använda run servern.

1. Ladda ned en binär för run server från deras github sida.
2. Packa upp filen och lägg den i mappen som du vill visa i webbservern.
3. Kör filen genom att dubbelklicka på filen i en filhanterare.
4. Öppna nu sidan http://localhost:8080 i din browser.

#### Hur du klonar vårt projekt till din dator

1. Har du möjlighet registrera en ssh nyckel för det system du sitter på.
2. Skriv följande kommando i en terminal: a. För ssh: git clone
   1. git@gitlab.com:krmit/mimer-game-2018.git b. Om inte ssh: git clone
   2. https://gitlab.com/krmit/mimer-game-2018.git

#### Lägga till bild:

1. Hitta en eller flera bilder du får använda:
   1. Skap en bild själv med GIMP eller Adobe Illustrator.
   2. Ladda ned en bild från www.opengameart.org.
2. Använd ett script för att skapa en standardbild, titta under ”tools” i
   arkivet.
3. Har du fler bilder foga samman dem till en.
   1. Använd imagemagick verktyg convert. Exempel
   2. Foga samman horisontellt: convert +append \* colored-balls-128x128-9.png
   3. Foga samman vertikalt: convert -append \* colored-balls-128x128-9x9.png
4. Ge filen ett bra namn. Avsluta med storlek i x och y, samt antal bilder i x
   och y led.
5. Lägg bilden i lämplig undermapp av “assets”, lägg till lämplig under mapp om
   ni inte hittar någon.
6. Till assets/README.md filen lägg till credit för dem som har gjort bilden.

### Hur man lämna in via git från terminal

Det är mycket lättare att göra det via användargränssnittet, gör det istället!

Om du vill “commita” från terminal, så ska du först göra en “Fork”, sedan klonar
du den forken till din lokala dator, push tillbaka ändringar och väljer väljer
sedan att göra en “pull request” på gitlab.

Se till att du ofta gör “git pull” så ditt lokala arkiv är i fas med det som
finns på servern.

1. Lägg till alla filer: git add .
   1. Du kan också ange vilka filer som du vill “commita”. git add filNamn
2. Kommit alla filer du lagt till: git commit -m “Min kommentar!”
3. Pusha alla kommits upp till servern: git push
   1. Första gången kan du behöva ange till vilken “gren” du ska pusha: git push
      origin master

## Tips

-

## Genomförande

Du kommer få ett antal ärenden. Dessa ärenden kommer ha en nivå som antingen är
“easy”, “normal” och “hard”. Exakt hur dessa sedan kommer bedömas beror på hur
utvecklingsprocessen blir, en “easy” uppgift kan visa sig svår och gör du många
“easy” kan de tillsammans utgöra något på C nivå. Likaså kan en extra “hard”
uppgift ersätta fler enklare uppgifter. Men som en riktmärke finns bedömningen
nedan.

Inlämningen sker kontinuerlig, men tänk på att deadline gäller. Det finns ett
ärende med titeln “Klara med spelet för 2021 års version”, avsluta detta ärende
när du känner dig klar med uppgiften. Läraren kommer annars avsluta det åt dig
när deadlinen har passerats.

### E nivå

- Du ska ha gjort 3 stycken uppgifter på “easy” nivå.

### C nivå

- Klarat E nivån.
- Du ska ha gjort 2 stycken uppgifter på “normal” nivå.

### A nivå

- Klarat C nivån.
- Du ska ha gjort en uppgift på “hard” nivå.

**Lycka till!**

**/krm**
