Nekromanti Speldesign/programmering - monsteruppfödning

krank

Lättkränkt cancelkultur-kommunist
Joined
28 Dec 2002
Messages
36,180
Location
Rissne
Jo, pressad/inspirerad av diskussioner med Rising om programmering och övningar, och av mina programmeringselevers gränslösa optimism och entusiasm för ämnet (fo' real!) så har jag beslutat mig för att bygga ett hyfsat simpelt spel.

Spelet kommer att skrivas i Python och till en början vara textbaserat. All eventuell grafik ska vara ASCII-art.

I den här tråden tänkte jag försöka plutta ur mig nåt som liknar ett överskådligt designdokument.

Förslag och kritik tas tacksamt emot, och jag kommer också att presentera ett par spelighetsfrågor.

--------------------------------------------------------

När man startar spelet kommer man till en meny, där man kan starta nytt spel, ladda ett sparat spel, eller avsluta spelet. Klassiskt, helt enkelt, och hyfsat självförklarande.

När man startar ett nytt spel får man ett monster som är Klass 1. Ens första monster får man välja vilken ras det ska vara, mellan de raser som finns tillgängliga under Klass 1 (Tiny Dragon, Phoenix Sparrow och Small Salamander). Monstret ges ett namn av spelaren, och får med sig en viss mängd styrka, hp, ork och vapenskada från sin ras. De får också ett vapen, t.ex klor eller eldsprut (eller i fallet tiny dragon, "warm breath"). Namnet på vapnet är spelmekaniskt ointressant, iaf i skissen just nu.

Sedan finns det tre(/fyra) olika aktiviteter:

1. Träna monster

Här presenteras man med möjligheten att träna ett av sina monster. Varje gång man tränar går alla monsters ork ner med 1, utom det monster man tränar, vars ork går ner med 2. Monstret som tränas får 1 mer i styrka.

Här kan man också mata sina monster. Mat kostar pengar, och höjer Ork, dock max upp till orginalvärdet (max). Mat höjer Ork i procent.

2. Utmana andra monster i Arenatornet

Här väljer man vilken våning man vill ta sig till. Ju högre våning, desto ondare monster. Man väljer också hur många monster man vill slåss mot. Fler monster är svårare, men ger mer pengar än om man hade slagits mot monstren ett och ett. Man väljer också vilka av ens monster som ska vara med och slåss.

När man slåss går det ett antal automatiska rundor. I varje runda räknas varje "sidas" sammanlagda attackvärde ut - varje monster har styrka plus vapenskadan, där vapenskadan är variabel (t.ex 4+[2-4] där 2-4 innebär att ett tal mellan 2 och 4 slumpas fram) - och så jämförs attackvärdena mot varandra. Båda sidor tar skada, det finns inga försvarsslag här. Skadan varje monster tar är den totala mängden skada motståndarlaget gjorde delat med antal monster i det egna laget. När ett monster når 0 hp dör det. Den sida som sist har levande monster kvar vinner. Om spelarens monster vinner får spelaren pengar.

(Eventuellt kan det senare tillkomma mer avancerade stridssaker - t.ex uppdelade rundor där man kan göra olika handlingar, möjligheten att targeta individuellt, etc. Såna idéer har jag, men jag börjar enkelt)


3. Föda upp nya monster

Här får man två val - antingen köpa ett ägg av en viss Klass - det finns Klass 1 upp till, säg 5 - eller kombinera två av sina existerande monster. Båda varianterna kostar pengar.

Om man väljer att köpa ett ägg av en viss klass så slumpas rasen på innehållet - det kan lika gärna vara en drake som en salamander eller vad det nu kan vara.

Vissa raser har bättre naturliga vapen (vapenskada), andra har bättre grundstyrka, ytterligare andra har bra ork eller hp. Detta är viktigt, eftersom man kan träna upp en dålig styrka, men å andra sidan kan ett bra vapen följa med om man kombinerar för att få ett nytt monster.

På tal om det, ja. Monstren anses vara tvekönade. När man väljer att kombinera två av sina monster så kostar detta lite mer än att slumpa ett helt nytt monster, men å andra sidan kommer man att få ett nytt monster med de bästa attributen (styrka, skada, maxhp, maxork) hos båda föräldrarna. (Eller ska det slumpas för varje attribut vems man får?)

4. Spara sitt spel.
Öh, döh... Spelet sparas. Om jag är elak kostar det pengar att spara.

I dagsläget finns det egentligen inget mål med spelet. Kanske vinner man när man spöar bossen som bor på våning 11 i Arenatornet? Det finns inte mycket till backstory här, ska erkännas.

--------------------------------------------------------

OK, det var det, ungefär.

Framförallt ser jag fram emot kommentarer från ren spelighetssynpunkt - hur gör man det här så att det blir roligt att spela? Hur gör man så att det blir roliga utmaningar att bedöma när det är dags att sluta träna etc? Jag ser helst att spelet hålls så hyfsat enkelt som möjligt, så alltför många nya variabler eller funktioner kommer jag nog inte att stoppa in i första laget...
 

Wilmer

Hero
Joined
9 Jan 2005
Messages
1,086
Location
Grindmaiden
Lamark?

Kommer upptränad styrka vara ärftlig? Isåfall tränar man ju sönder sitt monster innan man avlar det. Imo så är det intressantare om man inte ärver det bästa attributet automatiskt, då är ju avel alltid att föredra. Intressantare vore om man kunde kombinera två starka men dumma djur och få ett jättestarkt jättedumt djur.
 

krank

Lättkränkt cancelkultur-kommunist
Joined
28 Dec 2002
Messages
36,180
Location
Rissne
Re: Lamark?

Wilmer said:
Kommer upptränad styrka vara ärftlig? Isåfall tränar man ju sönder sitt monster innan man avlar det. Imo så är det intressantare om man inte ärver det bästa attributet automatiskt, då är ju avel alltid att föredra. Intressantare vore om man kunde kombinera två starka men dumma djur och få ett jättestarkt jättedumt djur.
Dumma är i och för sig djuren inte. Eller tja, det finns inget intelligensattribut... Inte än iaf. vet inte hur nödvändigt det skulle vara, möjligen inverka på hur snabbt man lär sig grejer...

Däremot måste det någonstans finnas en poäng i att inte träna sitt monster "för mycket". Utom att det kostar pengar, då.Och sedan måste man ju likförbannat mata alla sina monster även om man bara tränar ett...

En avvägning är ju hur mycket det är värt att träna sitt monster innan man helt enkelt bara köper ett nytt monster av nästa klass istället. Träning kostar ju pengar (eftersom det kostar ork, och att få tillbaks ork kostar pengar).

Jag funderar på om det ska finnas ett "ålder"-attribut, så att monster efter ett visst antal rundor blir gamla (=gör bara hälften i skada i strid, men har fortfarande full vigör om man avlar dem) och sedan dör av sig själva...

Det kanske kunde vara nåt? Tränar man för hårt blir de för gamla för att slåss?

En runda kan för övrigt vara:
- att avla nytt monster
- att köpa nytt monster
- en strid
- en träning
 

Rising

Vila i frid
Joined
15 Aug 2001
Messages
12,763
Location
End of the green line
Kul med en sådan här tråd!

Det här är de frågor jag tycker att du borde se till att besvara innan du går vidare med att programmera:

Varför ska man någonsin vilja slåss på en hög våning i arenatornet?
Ju högre upp - desto svårare motstånd och bättre belöning, men varför skulle man som spelare någonsin ta en risk och pröva sina vingar på en hög nivå när hon istället kan ta det säkert och istället slåss *flera gånger* på lägre nivåer?

Om jag vore du så skulle jag se till att det fanns något incitament inbyggt i spelet att ta chansningar och hela tiden försöka slåss på så hög nivå som möjligt.

Det behöver inte vara något krångligt. En enkel tidsgräns i stil med: "Man har bara hundra drag på sig; därefter inleds slutfajten med bossen", skulle kunna fungera fint. Om man bara fisåker framåt och aldrig tar några risker så lyckas man helt enkelt inte omsätta tillräckligt mycket pengar för att ha tränat upp sig ordentligt.

Hur ser jag till att valet mellan de olika strategierna blir intressant?
Det finns flera olika vägar att öka ens möjligheter att vinna strider:
- Att bara träna upp monstret man börjar med, och göra det superstarkt.
- Att skaffa sig ett jättestort antal låglevelmonster.
- Att köpa sig så dyra och starka monster som möjligt.
- Att avla fram starka kombinationer av monster.

Som jag ser det, så är avlandet lugnt viktigast. Det roliga med avlandet är ju att det inbegriper de andra delarna.

Men eftersom man muterar samman två monster för att få ett enda - så är det också förknippat med stora nackdelar. Du har visserligen infört en mekanism för att motverka att man skaffar sig många monster - eftersom alla monster förlorar ork när man tränar upp ett monster - men den regeln uppmuntrar å andra sidan bara spelaren till att träna upp monstret man startar spelet med så länge som möjligt.

Avvägningarna som står i fokus tycker jag är:
1. Du vill att spelaren ska skaffa sig många monster, eftersom man då får ett val när det blir strid och eftersom det uppmuntrar spelaren att köpa nya monster istället för att bara träna upp startmonstret; men om man tjänar för mycket på att utöka antalet monster man har i sin ägo - eller om maxantalet monster man kan äga är väldigt stort - så motverkar detta spelaren till att både träna, spara pengarna till monster av högre lever, samt att kombinera ens monster.
2. Du vill att träningsfunktionen ska vara användbar åtminstone någon gång, men samtidigt vill du undvika att spelaren låser sig i ett beteende där det mest framgångsrika bara är att fortsätta träna, träna, träna.

---

Det finns flera olika lösningar på dessa dilemman. Mitt förslag blir att du håller maxantalet för monster lågt (typ 5) och ändrar matematiken för träning så att dess effekt avtar med tiden.

Varför ett lågt maxantal för monster? Jo, för då kan man verkligen uppmuntra spelarna att köpa monster upp till en viss nivå, men ändå tämligen snabbt ställa dem inför en situation där de inte längre tjänar på att skaffa sig nya låglevelmonster. Om platsbrist görs till ett relevant problem tidigt i spelet, så betyder det att spelaren snabbt kommer känna behov av att gå över till de andra strategierna: Att träna upp monstren hon har, att kombinera monster för att frigöra plats, samt att fortsättningsvis försöka spara på slantarna till dyrare monster.

Maxgränser är ett oerhört bra spelighetsmässigt verktyg, vilket tog mig väldigt lång tid innan jag förstod. Idag förstår jag varför det ofta blir bättre spel av att ens äventyrare har en slot för hjälm, en slot för rustning på överkroppen och en slot för ring på vardera ringfingrar, osv, än att man ska kunna uppgradera ens ninja med hur många olika "ninjaträningar" som helst.

Varför ändra matematiken för träning? Jo, för att linjära bonusar är väldigt vanskliga. När de väl blir användbara, så slutar de sällan vara det bästa valet. Och jag tycker att risken verkar stor att träning kan bli för starkt direkt från början. Jag tror att det skulle finnas många fördelar om träning var effektivt i början, men sedan avtog i effektivitet efter en viss tid. Alltså på så vis att ens tionde träning inte skulle ge en lika stor förbättring som ens första. Det skulle nämligen uppmuntra en till att träna alla ens monster något, men motverka alltför ensidiga strategier. Dessutom kan det leda till intressant spelmässighet där spelaren med tiden får bättre känsla för hur länge det verkligen är optimalt att träna ens monster.

Det smartaste sättet att uppnå detta programmeringsmässigt är att låta varje djur ha en variabel som håller reda på hur många gånger det har tränats. Typ djurets "level".

Hur gör jag det intressant att välja vilket monster jag ska låta slåss mot fiendemonstret?
Ponera att du är mitt inne i ett parti. Du väljer att utmana ett monster på tredje våningen i tornet, och strax kommer det en minotaur, eller whatever. Vilket av dina monster ska du välja för att slåss emot honom?

Hur ofta kommer det här valet egentligen vara intressant? Kommer du inte oftast bara att välja ditt bästa monster, och när det väl har fallit av pinn så tar man sitt näst bästa monster, osv.

Den här frågan hör ihop lite med monsterstatsen i övrigt, eftersom de alla egentligen gör en och samma sak: Monstrets attack är ett sätt att beräkna dess grundskada, monstrets styrka är en bonus till denna skada, och hög tålighet gör att monstret kan utdela mer skada innan det går i backen. Det finns visserligen en skillnad mellan wildcards som tjänar särskilt mycket på att ha en bra dag - och sådana som jämnar ut effekten av slump för båda parter, men frågan är om det räcker.

Jag skulle personligen lägga till Träffchans och en "Modifikation till motståndarens träffchans" i stil med Undvika eller på det sätt som AC fungerar i D&D. Ty då kan intressanta valsituationer uppstå, som får en att resonera "Hmm, den där fienden är ju skitsvår att träffa, men tål knappt någonting. Här kanske det rentutav vore bättre för mig att använda den löjliga salamandern jag började spelet med, än supermutanten jag just har avlat fram, för även om salamandern gör patetisk skada så träffar han ju åtminstone hela tiden."

Jag tror att en sådan här dimension skulle kunna göra väldigt mycket för spelet.
(Det finns andra möjligheter. Träffchans och Absorbtion, exempelvis. Att ha hög träffchans blir viktigare ju lägre Absorbtion motståndaren har, medan att kunna utdela hög skada när man väl träffar blir viktigare ju högre Absorbtionen är. Man behöver alltså inte stoppa in element a la Pokemon för att ändå kunna göra det spelmässigt intressant att välja rätt monster beroende på motståndet.)

Småsaker:
Förlorar man monster som dött i en strid? I så fall tror jag att det här kan bli ett väldigt dödligt och svårt spel, särskilt i början. Om inte, så bör man kunna slänga/sälja monster som man inte vill ha, eftersom överflödiga monster då kan vara en belastning.
 

Snow

Swashbuckler
Joined
17 May 2000
Messages
2,617
Location
Klippan
Den här frågan hör ihop lite med monsterstatsen i övrigt, eftersom de alla egentligen gör en och samma sak: Monstrets attack är ett sätt att beräkna dess grundskada, monstrets styrka är en bonus till denna skada, och hög tålighet gör att monstret kan utdela mer skada innan det går i backen. Det finns visserligen en skillnad mellan wildcards som tjänar särskilt mycket på att ha en bra dag - och sådana som jämnar ut effekten av slump för båda parter, men frågan är om det räcker.
En tanke är att varje monster har ett antal egenskaper. Eld, snabb, långsam, tung, vingar, päls... etc... etc...
Sen finns en tabell (hemlig men logisk) att:
Snabb ger +2 mot långsam
Eld ger +5 mot päls
Vingar ger +2 mot närstrid
etc
etc

Det går att se tornets innevånare från början. På nivå fem finns en syra-ödla. Aha... då ska jag se till att ha något som är bra mot syra när jag kommer dit. Samtidigt får man själv lista ut efterhand exakt hur bra de olika egenskaperna är mot de andra.

Då kan det löna sig att ha många monster, med stor bredd på förmågorna. Man kan handplocka monster efter motståndet. Eller så kan man ha fetingar som ignorerar att deras päls brinner, men som är så jävla starka att de vinner ändå.
 

krank

Lättkränkt cancelkultur-kommunist
Joined
28 Dec 2002
Messages
36,180
Location
Rissne
Rising said:
Varför ska man någonsin vilja slåss på en hög våning i arenatornet?
Ju högre upp - desto svårare motstånd och bättre belöning, men varför skulle man som spelare någonsin ta en risk och pröva sina vingar på en hög nivå när hon istället kan ta det säkert och istället slåss *flera gånger* på lägre nivåer?

Om jag vore du så skulle jag se till att det fanns något incitament inbyggt i spelet att ta chansningar och hela tiden försöka slåss på så hög nivå som möjligt.

Det behöver inte vara något krångligt. En enkel tidsgräns i stil med: "Man har bara hundra drag på sig; därefter inleds slutfajten med bossen", skulle kunna fungera fint. Om man bara fisåker framåt och aldrig tar några risker så lyckas man helt enkelt inte omsätta tillräckligt mycket pengar för att ha tränat upp sig ordentligt.
Jag tänker mig att man får fisåka så snuskigt skitlänge att det är fånigt om man vill kunna komma någonvart. Lite som i Final Fantasy - i nåt av spelen får man alltid minst 1 i exp för varje strid, så i teorin kan man skaffa sig level 100 från start - men vafan, det krävs 100.000 poäng för att bli level 100. Mellan level 1 och 5 kanske 1 exp är rimligt, men därefter blir det för lite level för att det ska vara rimligt...

(Sedan är jag ju själv en kronisk fisåkare och vill ogärna stänga den möjligheten helt, men det är en annan sak...)

Rising said:
Hur ser jag till att valet mellan de olika strategierna blir intressant?
Det finns flera olika vägar att öka ens möjligheter att vinna strider:
- Att bara träna upp monstret man börjar med, och göra det superstarkt.
- Att skaffa sig ett jättestort antal låglevelmonster.
- Att köpa sig så dyra och starka monster som möjligt.
- Att avla fram starka kombinationer av monster.

Som jag ser det, så är avlandet lugnt viktigast. Det roliga med avlandet är ju att det inbegriper de andra delarna.

Men eftersom man muterar samman två monster för att få ett enda - så är det också förknippat med stora nackdelar. Du har visserligen infört en mekanism för att motverka att man skaffar sig många monster - eftersom alla monster förlorar ork när man tränar upp ett monster - men den regeln uppmuntrar å andra sidan bara spelaren till att träna upp monstret man startar spelet med så länge som möjligt.
Där "som möjligt" är "tills det dör", då. För det kan det ju göra, av ålder. Det finns en viss naturlig omsättning på monster eftersom de liksom tar slut efter ett tag, och sålunda får man se till att para dem innan de dör...


Rising said:
Avvägningarna som står i fokus tycker jag är:
1. Du vill att spelaren ska skaffa sig många monster, eftersom man då får ett val när det blir strid och eftersom det uppmuntrar spelaren att köpa nya monster istället för att bara träna upp startmonstret; men om man tjänar för mycket på att utöka antalet monster man har i sin ägo - eller om maxantalet monster man kan äga är väldigt stort - så motverkar detta spelaren till att både träna, spara pengarna till monster av högre lever, samt att kombinera ens monster.
Av grafikprogrammerarskäl hade jag tänkt begränsa antalet monster till 5 eller 6, men det glömde jag att skriva.


Rising said:
Varför ändra matematiken för träning? Jo, för att linjära bonusar är väldigt vanskliga. När de väl blir användbara, så slutar de sällan vara det bästa valet. Och jag tycker att risken verkar stor att träning kan bli för starkt direkt från början. Jag tror att det skulle finnas många fördelar om träning var effektivt i början, men sedan avtog i effektivitet efter en viss tid. Alltså på så vis att ens tionde träning inte skulle ge en lika stor förbättring som ens första. Det skulle nämligen uppmuntra en till att träna alla ens monster något, men motverka alltför ensidiga strategier. Dessutom kan det leda till intressant spelmässighet där spelaren med tiden får bättre känsla för hur länge det verkligen är optimalt att träna ens monster.

Det smartaste sättet att uppnå detta programmeringsmässigt är att låta varje djur ha en variabel som håller reda på hur många gånger det har tränats. Typ djurets "level".
Det där ska jag fundera på. Om inte annat är det ju bara att jämföra monstrets styrka med dess ras' ursprungliga styrka.

Jag hade iofs tänkt mig ganska låga skalor på saker och ting men det kan ju ändras; om träning redan från början bara ger +1, då blir det liksom fånigt om man ska försöka sänka det...

Rising said:
Hur gör jag det intressant att välja vilket monster jag ska låta slåss mot fiendemonstret?
Ponera att du är mitt inne i ett parti. Du väljer att utmana ett monster på tredje våningen i tornet, och strax kommer det en minotaur, eller whatever. Vilket av dina monster ska du välja för att slåss emot honom?
Själv skulle jag göra avvägningen att försöka välja ett av mina monster som har goda chanser att fixa minotauren, men av de som har sådana chanser skulle jag välja det sämsta djuret. Det bästa djuret kanske man behöver senare...

Men så är jag en såndär spelare som faktiskt finner det lustfyllt att sitta och fisåka och lowlevelgrinda också, så vad jag skulle göra kan jag inte ta nån jättestor hänsyn till.


Rising said:
Den här frågan hör ihop lite med monsterstatsen i övrigt, eftersom de alla egentligen gör en och samma sak: Monstrets attack är ett sätt att beräkna dess grundskada, monstrets styrka är en bonus till denna skada, och hög tålighet gör att monstret kan utdela mer skada innan det går i backen. Det finns visserligen en skillnad mellan wildcards som tjänar särskilt mycket på att ha en bra dag - och sådana som jämnar ut effekten av slump för båda parter, men frågan är om det räcker.

Jag skulle personligen lägga till Träffchans och en "Modifikation till motståndarens träffchans" i stil med Undvika eller på det sätt som AC fungerar i D&D. Ty då kan intressanta valsituationer uppstå, som får en att resonera "Hmm, den där fienden är ju skitsvår att träffa, men tål knappt någonting. Här kanske det rentutav vore bättre för mig att använda den löjliga salamandern jag började spelet med, än supermutanten jag just har avlat fram, för även om salamandern gör patetisk skada så träffar han ju åtminstone hela tiden."

Jag tror att en sådan här dimension skulle kunna göra väldigt mycket för spelet.
(Det finns andra möjligheter. Träffchans och Absorbtion, exempelvis. Att ha hög träffchans blir viktigare ju lägre Absorbtion motståndaren har, medan att kunna utdela hög skada när man väl träffar blir viktigare ju högre Absorbtionen är. Man behöver alltså inte stoppa in element a la Pokemon för att ändå kunna göra det spelmässigt intressant att välja rätt monster beroende på motståndet.)
Känns komplext (hittills har man ju träffat automatiskt), men jag ska fundera på saken.


Rising said:
Småsaker:
Förlorar man monster som dött i en strid? I så fall tror jag att det här kan bli ett väldigt dödligt och svårt spel, särskilt i början.
Det är så jag tänkt, ja. Det är därför man är försiktig med att välja vilka av ens monster som ska vara med i en strid.
 
Top