Hej!
Har dröjt lite med denna uppdateringen, inte för att jag slutat jobba på projektet utan snarare tvärtom
Gjort rätt mycket Behind the Scenes grejer senaste veckorna, och tänkte skriva en liten sammanställning på det intressanta för de som bryr sig
Det största jag arbetet på, är ett sätt att synka projektet mellan användarna, på ett smidigt sätt.
Jag har använt Unitys Collaboration innan, och det har fungerat Ok. Inte 100%, men godkänt. Har känts extremt långsamt, och dessutom så kunde projektet ibland få för sig att "Checking for Updates", och detta kunde ibland ta upp till 10 minuter...
Detta hände några gånger per dag. Men största anledningen till att jag ville hitta ett annat sätt var för att Collaboration endast stödjer 3 personer, 1GB Cloud Space om man inte betalar för Pro (runt 1000:- / Månad).
Då vi snart ska bli 5 personer som kommer arbeta på projektet, och eftersom spelet inte drar in en enda slant, så försökte jag skapa ett billigare alternativ.
Jag vet inte om jag har nämnt utökningen i vårt "Team" innan, men i slutet av April, så kommer vi samlas 5 personer, och ha ett "Uppstartsmöte". Där kommer vi ha en utbildning av mina verktyg som finns tillgängliga, som dessa personer då kommer använda för att börja skapa världen och storyn. De kommer även skapa alla Items, Spells osv. Vi kommer tilldela personer olika ansvarsområden så vi vet vem som gör vad.
Vi har personer med bra erfarenheter inom t.ex Rollspel och liknande, som jag vet kommer kunna leverera en bra grund för Storyn.
Åter till Synkningen av projektet:
Jag testade att använda GitHub, men stötte på en del problem, och dessutom inte jättelätt att använda ihop med Unity (Kanske missade jag någon bra lösning?) så jag tog några dagar och gjorde en egen, liknande GitHub lösning. Jag tog sen detta och implementerade direkt in i Unity.
SyncProject Window
Enkelt: Denna ansluter till en server som har en "master" av hela projektet. Jag som programmerare, kan välja att skicka alla ändringar jag gjort till servern. Den jämför filerna jag har, med de som finns på servern och uppdaterar "master"-datan så den matchar. Servern körs på min Filserver som en tjänst. Den lagrar dessutom alla projekt som synkas (Byggde in stöd för fler projekt, så jag kan använda det även i framtiden) på Dropbox, så jag vet att jag får en Cloud Backup på den automatiskt.
Användarna kan sedan "Fetcha" ändringar. Den gör då samma sak, ansluter till servern, jämför lokala filer med master-datan och uppdaterar klienten med de filer som är ändrade. (Commit Knappen syns endast för användare som har rättigheter att skicka filer till servern, just nu är det bara jag).
Mitt Nätverksbibliotek är inte speciellt designat för att skicka filer, men jag har funktioner för det. Jag bryr mig inte om överföringshastigheten sådär jättemycket, så jag lade inte ner alltför mycket tid på att optimera det.
I en test där jag skapade ett helt nytt Unity Projekt på en av mina andra datorer, och Fetchade hela projektet från Mastern, så skickade den i runt 300Mbits som snabbast (nästan 40mb/s). Projektet med 1.6gb data, 23.200 filer tog ca 2-3 minuter.
Jag tyckte att det fick duga, även om det går att kräma ut mer med lite optimering.
Status Editor
Förra inlägget skrev jag att jag höll på med en Editor för Status Effects (Buffs, debuffs o liknande). Denna blev färdig rätt fort. Kunde nästan Copy-Paste det mesta från Spell Editorn.
Den fungerar utmärkt.
Load Status Effect
Status Effect Settings
En status Effect har, förutom de vanliga Triggers som allt annat har, dessutom inställningar för Entity Modifiers.
Detta är Modifiers som påverkar Entiteten som är påverkad av Status effekten.
Så i Exempelt ovan, så har vi en Strenght Modifier, som ökar strenght med X. En Movementspeed modifier samt en Attackspeed modifier.
Denna Status Effekten implementerar också 3 Triggers. OnStatusAdded, OnStatusRemoved och OnInterval.
OnInterval Triggar 1 gång per interval, som man själv bestämmer per trigger.
Så i nedan exempel ser ni att denna är inställt på att trigga 4ggr per sekund, och gör en Heal på Entiteten med 2 Hp.
Trigger Example, OnInterval.
Övriga Editor Ändringar
En annan snabb liten grej jag gjorde är att jag lade in stöd i Editorerna så dom automatiskt Grupperar ihop fält baserat på deras gruppering på servern.
Detta ger en bättre översikt över alla inställningar. Har gjort det med Spell Editorn och Entity Editorn just nu, ska också göras på övriga editorer. En liten grej som gör rätt stor skillnad.
New Spell Editor, With Groups
New Entity Editor, With Groups