Tillkännagivande

Tillkännagivande Module
Minimera
Inga tillkännagivanden ännu.

[Subway] Att generera flödesscheman - jag har byggt en liten grej

Sidnamn Module
Flytta Ta bort Minimera

Senaste inlägg

Senaste inlägg Module
Minimera

Diskussioner Statistik Senaste inlägg
Skapad av God45, 27 March 2018, 22.04
45 responses
2.643 visningar
12 gillar
God45
av God45
 
Skapad av krank, 18 June 2018, 17.00
6 responses
60 visningar
0 gillar
krank
av krank
 
Skapad av LJSLarsson, Igår, 09.39
5 responses
232 visningar
7 gillar
Jocke
av Jocke
 
Skapad av Wolfbane, Igår, 22.26
0 responses
20 visningar
0 gillar
Wolfbane  
Skapad av Genesis, 18 June 2018, 18.30
69 responses
1.524 visningar
0 gillar
Ulfgeir
av Ulfgeir
 
Skapad av Mannen i skogen, 23 June 2018, 20.43
2 responses
103 visningar
0 gillar
Mannen i skogen  
Skapad av Skarpskytten, 14 June 2017, 08.54
38 responses
1.119 visningar
6 gillar
Skarpskytten  
Skapad av dawnrazor, Igår, 11.09
1 response
38 visningar
0 gillar
grolin
av grolin
 
Skapad av RedMoon, 06 April 2018, 15.24
29 responses
566 visningar
3 gillar
God45
av God45
 
Skapad av Wolfbane, Igår, 00.11
1 response
100 visningar
0 gillar
Paal
av Paal
 
X
Konversationsdetalj Module
Minimera
  • Filtrera
  • Tidsrymd
  • Visa
Rensa All
nya inlägg

  • [Subway] Att generera flödesscheman - jag har byggt en liten grej

    Jag har sportlov och tänkte använda det till att återhämta mig. En sak som jag märkt är supereffektivt för mig när det gäller återhämtning är att programmera saker. Inte åt någon annan i första hand, utan bara egen programmering för min egen skull. Inga krav på att det ska bli "bra kod" eller så.

    Så. De senaste dagarna har jag byggt på SUBWAY.

    Bilaga

    Här: http://subway.krank.se/.

    Den kan vara lite småtung att ladda in första gången (ett av javascript-biblioteken jag använder klockar in på ca 1.6mb) men det bör gå snabbare efterföljande gånger.

    Subway genererar flödesscheman utifrån de principer jag brukar följa när jag designar mysterielösar-äventyr.
    • Varje nod kan vara en plats eller en person, eller i vissa fall en bit information.
    • Varje pil är en bit information som pekar mot en annan plats/person.
      • Generellt är informationen tänkt att levereras i form av en ledtråd till rollpersonen, som då behöver göra någon form av avkodning.
      • Ledtrådarna kan såklart vara låsta eller kräva en insats i form av genomsökning, övertalning, strid etc.
    • De flesta vanliga noder (minst typ 60% om jag minns rätt) har 2+ utgående pilar.
    • De flesta har också 2+ ingående pilar.
    • Man har alltid en startnod. Till exempel en brottsplats. Därifrån går det lite fler kopplingar än vad som är normen för vanliga noder, så att spelarna får flera olika vägar att följa redan från början.
    • Det kan finnas flera slutnoder. Antagligen är bara en av dem "slut-encountern", informationen om vem som faktiskt utförde mordet, skurkens hemliga gömställe, etc. Resten är dead ends, falska "skyldiga", etc. Red herrings.
    Just nu kan man ändra texten i noderna, och lägga till eller ta bort noder från "End nodes" och "Nodes"-listorna.

    Om man genererar ett flödesschema som man gillar, men man vill ha annan text i rutorna, så kan man ändra texten till vänster och trycka på den lite mindre "redraw"-knappen till höger om "Go".

    Resultatet kan zoomas och panoreras. Det mesta bör funka på mobila enheter, men inte i IE.

    För den som vill förfäras över min dåliga källkod så finns allting tillgängligt här på GitLab. Där kan man också kolla under "Issues" vilka saker jag planerar att implementera framöver. Där lägger jag också in buggar om jag inte fixar dem direkt.

    Just nu tänker jag att jag ska prioritera:
    • Genremässiga platser som kan slumpas in i existerande noder. T.ex. cyberpunkplatser, fantasyplatser, etc. Och något enkelt sätt att bidra med egna listor.
    • ...I dunno. Generera formaterad text som man kan klistra in i t.ex. Word, tror jag.
    Så. Testa gärna. Säg snälla, konstruktiva saker. Ställ frågor.

    (Namnet kommer från att någon beskrev mina flödesscheman, det ickelinjära men fortfarande inte sandlådiga sättet att bygga äventyr, som ett "tunnelbanenätverk". Det klingade bättre än min gamla käpphäst "spindelnätsmodellen").

  • #2
    Det vore coolt om ledtrådspilarna på något vis definierades. Alltså vad är det för ledtråd som leder från nod 1 till nod 2.

    Sedan kanske det borde vara möjligt att det går två ledtrådar från nod 1 till nod 2?

    Kommentera


    • #3
      Riktigt snajdigt! Påminner väldigt mycket om hur mina äventyr blir till.

      En fundering: Varje gång man ändrar texten i en ruta så zoomar den ut. Skulle det gå att behålla zoomläget?

      Kommentera


      • #4
        Lägger man till en ny slutnod heter den inte End #2 i default utan får namnet F.

        Kommentera


        • #5
          Ursprungligen skrivet av Vimes Visa inlägg
          Det vore coolt om ledtrådspilarna på något vis definierades. Alltså vad är det för ledtråd som leder från nod 1 till nod 2.
          Absolut. Jag tänker akta mig lite för feature creep, men man kan absolut tänka sig att man t.ex. ger varje koppling en siffra och sedan genererar/slumpar lite olika typer av info kring vad för slags ledtråd det är. Isåfall på något ganska generiskt sätt, för jag kommer nog inte att palla att t.ex. knyta det till vilken plats som slumpats fram etc. Så i värsta fall blir det kanske något användaren får göra själv =)

          Ursprungligen skrivet av Vimes Visa inlägg
          Sedan kanske det borde vara möjligt att det går två ledtrådar från nod 1 till nod 2?
          Jag funderade på det men valde att åtminstone tills vidare tänka att en pil i de fallen får representera flera ledtrådar. För att minska plottrigheten något.

          Det är lite som att det egentligen borde vara möjligt för två noder att ha ledtrådar till varandra, dvs att det skapas en loop, men jag har åtminstone tillfälligt hindrat det. Jag har nåt slags vag tanke (som antagligen aldrig blir av) om att låta användaren välja vad som ska göras och i vilken ordning - dvs hur mycket ska slumpas, i vilken riktning, hur många pilar kan man ha, ska det finnas loopar etc. Men det blir antagligen mycket mer jobb än det är värt...

          Kommentera


          • #6
            Finns det inlagt hur många steg det måste vara från start till mål? Nu körde jag ett antal genereringar, och även med ganska många noder slutar jag oftast på två steg.

            Kommentera


            • #7
              Ursprungligen skrivet av Vimes Visa inlägg
              Finns det inlagt hur många steg det måste vara från start till mål? Nu körde jag ett antal genereringar, och även med ganska många noder slutar jag oftast på två steg.

              Det finns inte inlagt; risken minskar såklart om man lägger in fler noder men du har en poäng. Skriver upp det bland saker jag ska fundera på hur jag ska lösa.

              Kommentera


              • #8
                Ursprungligen skrivet av krank Visa inlägg

                Absolut. Jag tänker akta mig lite för feature creep, men man kan absolut tänka sig att man t.ex. ger varje koppling en siffra och sedan genererar/slumpar lite olika typer av info kring vad för slags ledtråd det är. Isåfall på något ganska generiskt sätt, för jag kommer nog inte att palla att t.ex. knyta det till vilken plats som slumpats fram etc. Så i värsta fall blir det kanske något användaren får göra själv =)
                Verkar rimligt. Och mer prioriterat att göra listor att använda tänker jag mig. Har man väl fått hjälp med vad noderna, och vilka som leder till vilka, borde man fått en helt del hjälp på vägen mot att själv kunna definierar ledtrådarna.

                Kommentera


                • #9
                  Ursprungligen skrivet av krank Visa inlägg

                  Absolut. Jag tänker akta mig lite för feature creep, men man kan absolut tänka sig att man t.ex. ger varje koppling en siffra och sedan genererar/slumpar lite olika typer av info kring vad för slags ledtråd det är. Isåfall på något ganska generiskt sätt, för jag kommer nog inte att palla att t.ex. knyta det till vilken plats som slumpats fram etc. Så i värsta fall blir det kanske något användaren får göra själv =)
                  Verkar rimligt. Och mer prioriterat att göra listor att använda tänker jag mig. Har man väl fått hjälp med vad noderna, och vilka som leder till vilka, borde man fått en helt del hjälp på vägen mot att själv kunna definierar ledtrådarna.

                  Kommentera


                  • #10
                    Ursprungligen skrivet av krank Visa inlägg


                    Det finns inte inlagt; risken minskar såklart om man lägger in fler noder men du har en poäng. Skriver upp det bland saker jag ska fundera på hur jag ska lösa.
                    När jag lajjade runt nu kan jag konstatera att jag hitintills inte fått fler än noder mellan start och mål när jag har A-G. Med A-H är det för det mesta samma sak, men ibland 3 noder. Med A-J verkar det nästan alltid bli 3 noder.

                    Det kanske inte är ett jätteproblem egentligen, i synnerhet med red herring-slutnoder (vilket jag inte testat något).

                    Kommentera


                    • #11
                      Ursprungligen skrivet av clarence redd Visa inlägg
                      Riktigt snajdigt! Påminner väldigt mycket om hur mina äventyr blir till.

                      En fundering: Varje gång man ändrar texten i en ruta så zoomar den ut. Skulle det gå att behålla zoomläget?
                      Det borde inte vara omöjligt, om det är önskvärt. Nackdelen blir isf att det inte längre finns något sätt att återställa... Men det kanske kan lösas med en separat knapp. Lägger in det som en issue iaf, så ordnar jag det förr eller senare.

                      Kommentera


                      • #12
                        Ursprungligen skrivet av Vimes Visa inlägg
                        Lägger man till en ny slutnod heter den inte End #2 i default utan får namnet F.

                        Yup, det är för att jag använder samma "hämta nästa bokstav i alfabetet"-grej som för andra noder. En vacker dag ska jag fixa så att den går över till "AA", "AB, "AC" etc. när den når Z...

                        Jag funderar på att bygga en "om den tidigare texten slutar på en eller flera siffror, använd de siffrorna som ett tal och använd grundtexten + lägsta lediga tal"-grej också.

                        Frågan är vilket som är bäst om det t.ex. bara finns en "End #4" kvar:​
                        1. Nästa blir "End #5"
                        2. Nästa blir "End #1"

                        Kommentera


                        • #13
                          Ursprungligen skrivet av Vimes Visa inlägg

                          När jag lajjade runt nu kan jag konstatera att jag hitintills inte fått fler än noder mellan start och mål när jag har A-G. Med A-H är det för det mesta samma sak, men ibland 3 noder. Med A-J verkar det nästan alltid bli 3 noder.

                          Det kanske inte är ett jätteproblem egentligen, i synnerhet med red herring-slutnoder (vilket jag inte testat något).
                          Jag tror att steg 1 kommer att vara en mycket enkel grej som förhindrar tvåstegslösningar, dvs att en slutnod aldrig kopplar sig till någon av de noder som utgår från startnoden om det finns några andra alternativ.

                          I senare skede kan jag göra det mer avancerat; att den kollar ett visst antal steg från startnoden beroende på molnets storlek, eller kanske får en lista av noder sorterad efter hur nära de har till startnoden och slumpar så att det är mer sannolikt att få de noder som ligger långt ifrån.

                          Kommentera


                          • #14
                            Ursprungligen skrivet av Vimes Visa inlägg
                            När jag lajjade runt nu kan jag konstatera att jag hitintills inte fått fler än noder mellan start och mål när jag har A-G. Med A-H är det för det mesta samma sak, men ibland 3 noder. Med A-J verkar det nästan alltid bli 3 noder.

                            Det kanske inte är ett jätteproblem egentligen, i synnerhet med red herring-slutnoder (vilket jag inte testat något).
                            Nu har jag fixat så att den skippar noderna närmast startnoden. När det blir för få noder, så att det inte funkar (det blir svårt på två noder, eller en) så struntar den i det, men har man 3+ noder så bör det inte skapas några tvåstegslösningar nu.

                            Kommentera


                            • #15
                              Ursprungligen skrivet av clarence redd Visa inlägg
                              En fundering: Varje gång man ändrar texten i en ruta så zoomar den ut. Skulle det gå att behålla zoomläget?
                              Fixat nu. Har också lagt till knappar för zoom och återställning av zoom/panorering, så det hela funkar lite bättre på mobila enheter.

                              Ursprungligen skrivet av Vimes
                              Lägger man till en ny slutnod heter den inte End #2 i default utan får namnet F.
                              Det är delvis önskat beteende, men numera så numrerar den iaf uppåt ifall man klonar slutnoder. Eller andra noder med ett nummer i slutet.



                              Nästa projekt nu blir definitivt "fyll nuvarande noder med slumpade platser från miljö/genre X"; jag har skjutit upp det länge nog. Det är dock ett ganska omfattande projekt, som jag åtminstone inte gör ikväll... =)

                              Kommentera

                              Arbetar …
                              X