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, 16 October 2018, 16.18
27 responses
642 visningar
2 gillar
Måns
av Måns
 
Skapad av Gurgeh, Igår, 13.58
16 responses
286 visningar
1 gillar
soda
av soda
 
Skapad av Swedish Chef, 11 October 2018, 14.38
83 responses
2.679 visningar
2 gillar
Basilides  
Skapad av zeerox, Igår, 17.32
2 responses
110 visningar
0 gillar
Siljestam  
Skapad av God45, Igår, 10.09
8 responses
156 visningar
2 gillar
Genesis
av Genesis
 
Skapad av SpelOchSpelare, Igår, 18.17
5 responses
99 visningar
1 gillar
Cybot
av Cybot
 
Skapad av anth, 17 October 2018, 10.22
32 responses
945 visningar
2 gillar
luddwig
av luddwig
 
Skapad av ceruleanfive, Igår, 12.38
5 responses
51 visningar
0 gillar
Guran89
av Guran89
 
Skapad av .Per., 14 October 2018, 22.48
31 responses
535 visningar
0 gillar
Nässe
av Nässe
 
Skapad av Lind, Igår, 08.56
3 responses
94 visningar
0 gillar
P.eLL.e
av P.eLL.e
 
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