TGJ Summercamp, dag 4

Fjärde dagen av The Great Journey Summercamp är till ända och jag tror att det här blev den roligaste dagen hittills för deltagarna.

Idag byggde vi klart menyn så att vi sparar ett high score.

Vi skriptade också så att stenarna går sönder med ett kraschljud när de når marken.

Vi ökade på svårighetsgraden så att stenarna faller snabbare över tid och att det genereras flera stenar samtidigt och med ökande intensitet över tid.

Sen var spelet klart och det var dags att ta ut en exekverbar fil så spelet kan köras utanför Unity.

Det var inte utan att det märktes en viss stolthet bland deltagarna när de tagit ut en .exe och spelade sitt spel för första gången som separat fil.

Det är ju också då man ser hur det blir och en del upptäckte att vissa saker inte uppförde sig som de tänkt eller att menytexterna blev alldeles för små eller för stora så sen var det finslipning på schemat, fram till lunchen.

Efter lunchen började den roliga delen, dvs. att verkligen fundera på hur just mitt spel ska se ut och vara och börja göra individuella ändringar. Det kommer vi också fortsätta med på sista dagen. Det innefattar att skapa helt nya 3D-objekt eller att ändra funktioner så att man kanske ska fånga det som faller från himlen istället för att undvika dem. Eller varför inte göra om spelet så det fungerar i VR?

Dagen avslutades med The Great Journeys sommaravslutning. Där fick vi som är med i ett spelteam, visa hur det går med vårt spel, och få lite feedback. Undertecknad tog bland annat med VR-spelet (rymdskjutarspel) som mitt team gör. Det var trevligt att testspela det på Vive Pro. Och jag fick med mig lite bra feedback som jag ska förmedla till mitt team.

Annonser

TGJ Summercamp, dag 3

NWT kom och besökte oss igår vilket resulterade i en halvsida i tidningen idag. Kul!

Idag har det flutit på utan några större problem. Till och med så att vi har börjat på morgondagens uppgifter.

Det vi har gjort idag är:

  • Random rotation och skala på fallande stenar.
  • Upptäcka krockar mellan fallande stenar och spelaren/marken.
  • Räkna poäng – varje box som man undvikit är 1 poäng.
  • Skapa en textbox för att visa poäng.
  • Fixa Gameover – om en box landar på spelaren.
  • “Auto-restart” dvs. spelet startas om när det är Gameover.

Vi har också påbörjat att:

  • skapa en startmeny.
  • skapa en Highscore (som del av startmenyn).

Det är kul för nu börjar det se ut och uppföra sig som ett riktigt spel och deltagarna är riktigt duktiga. Många har gjort egna spelplaner som är riktigt fina och andra har modifierat funktionerna till något eget.

TGJ Summercamp, dag 2

Dag två har flutit på bra och vi är i fas med schemat trots lite strul med Visual Studio-installationer.

Vi började med att öppna startprojektet i Unity och gå igenom användargränssnittet samt hur man manövrerar sig i scenen.

Vi har:

  • skapat en fallande boll, som vi sedan gjort om till ett player object.
  • skriptat så vi kan flytta spelaren (player object) med tangentbordet i x-led.
  • kopplat kameran så den följer spelaren i x-led.
  • skapat stenar som faller från himlen i en random position i x-led.

Vi har importerat några assets (ett custom package som vi skapat i förväg) och börjat bygg upp scenen och också gått igenom vad en Prefab är.

Och så avslutade vi dagen med att lägga till bakgrundsmusik som loopar medan spelet körs.

Det är väldigt kul att se att många av deltagarna har egna idéer och på eget initiativ modifierar skript och/eller scenuppbyggnad både vad gäller objekt och material.

En lyckad dag helt enkelt!

TGJ Summercamp, dag 1

Den här veckan har jag semester för att hjälpa till på The Great Journey Summercamp, fem dagar där ungdomar i åldern 16-25 år får prova på spelutveckling.

Den här första dagen var det Karlstad Makers som lärde ut programmeringstänket med hjälp av Scratch, ett visuellt programmeringsverktyg. Första delen ägnades åt att tillsammans skapa ett litet spel medan andra delen innebar att skapa något efter eget huvud. Det fanns mycket kreativitet och stor variation i vad deltagarna skapade. Kul!

Vi hann också med att installera Unity och se till att alla kunde öppna programmet.

Tisdag till torsdag ska vi skapa ett arkadspel i 2.5D i Unity tillsammans. Det vill säga 3D modeller i ett fixerat sidoperspektiv.  Fredagen ska de få ägna åt att modifiera både utseende och funktioner som de själva vill. Bland annat finns då möjlighet att titta på ett par assets från asset store, Post-Processing stack och ProBuilder. Det finns också möjlighet att göra om spelet till VR.

Vi som är med och guidar ungdomarna, träffades en helg för ett tag sedan och gjorde spelet som vi ska lära ut. Det var faktiskt jäkligt kul att träffas och tillsammans utveckla ett litet spel. Det hoppas jag blir en återkommande aktivitet på The Great Journey under hösten. Ett bra och roligt sätt att utvecklas tillsammans med andra.

Animerad planet

Den här helgen har jag tittat på en Blenderkurs som jag köpte för ett tag sedan. Space VFX Elements heter den och den går igenom allt man kan behöva för en rymdscen. Det är Aidy Burrows och Gleb Alexandrov som gjort kursen, båda är extremt kunniga i Blender. Mycket nyttigheter som går att applicera på annat än rymden också så jag kan verkligen rekommendera kursen.

Jag skapade en planet enligt min vision och jag valde att göra en procedurell planet, dvs. utan bilder som texturer utan med olika genererade funktioner i Cycles. Det har tagit mig hela helgen att få ordning på allting.

Planeten består av grundplaneten och två lager med moln som alla tre är animerade i rotationen med olika hastighet. För att verkligen se hur det blev så rekommenderar jag att du kör WebGL-applikationen.

screen4.jpg

Samma instruktioner som tidigare och applikationen funkar som vanligt inte i Internet Explorer.

Klicka här för att starta.

Spel snowflake klart

Nu är jag faktiskt klar med spelet. Känner mig riktigt nöjd. Det jag är osäker på är svårighetsgraden. Jag har ju tänkt mig målgruppen någonstans kring 5-7 år så jag vill gärna att några barn testar spelet och berättar om det är för enkelt, eller för svårt. Eller till och med om det är roligt.

Klicka på bilden här nedanför och spela vetja!

screen.jpg

Jag laddade också upp hela scenen på Sketchfab så vill man titta på spelets komponenter i 3d så är det bara att klicka här nedanför och sedan vrida på modellen.

Spel Snowflakes, starten

Jag har börjat på spelprojektet i Unity, lagt in all grafik, ljud (både musik och egeninspelade ljudeffekter) och ett typsnitt som jag vill använda till poängräkningen. Jag har också tittat på några tutorials om animation i 2D och börjar förstå hur animationerna och animationskontrollen fungerar. Sonen är bollplank och hade lite synpunkter på animationen så jag ska ändra gubben lite imorgon och göra om gubbens animationer åt höger och vänster. Det går framåt 🙂

screenshot1.jpg

Grafik till sista speluppgiften

Nu när jag är klar med sista uppgiften i videoredigeringskursen (jag skrev och lämnade in reflektionen igår kväll) så måste jag sätta fart med den sista uppgiften i spelutvecklingskursen.

Jag har funderat mycket på vad jag ska välja för tema och fick många fina idéer när jag var i Bengtsfors. Jag tror det var Max, 6 år, som kom på det där med att fånga snöflingor med tungan, i alla fall gillade han idéen.

Så här står det i uppgiftsbeskrivningen:

Skapa ett spel där spelaren är en katträddare med korg längst ned på skärmen. Man kan flytta sig (och korgen) i sidled och fånga katter i korgen. Katterna ramlar slumpvist ned från ovan från en slumpad placering. Om en katt når marken är spelet slut. I detta spel skall katterna som ramlar ner animeras, så även benen på kattfångaren. Du väljer om du vill göra spelet i 2D eller i 3D.

Jag frågade dock om jag fick använda ett annat tema än just katter och kattfångare och fick ett positivt besked på det.

Så jag har modellerat en fantasifigur med stor tunga och figuren har godkänts av Max 🙂 Det kommer finnas tre olika flingor, en vit som ger minst poäng, en gul som är lite mindre och rör sig lite snabbare som ger lite mer poäng och en röd som är minst och rör sig snabbast som ger mest poäng. Tror jag. Alternativt så kommer man ha tre liv och den röda flingan fyller på liv. Jag har inte tänkt ut precis allt ännu.

Här är en skiss över hur spelscenen kommer se ut.

scene

All grafiken är modellerad i Blender och sedan renderad mot transparent bakgrund. Materialet är en toon-shader som jag gillar skarpt och som beskrivs av Dillon Gu på Blender Cloud. Så här ser spritesheetet ut.

spritesheet2

Det kommer bli intressant att programmera det här spelet. Till skillnad från de två tidigare spelen blir det här i 2D även om grafiken är gjord i 3D från början.

Spelutveckling

Idag har jag jobbat hårt med programmering av nästa examinationsuppgift.

screenshot

Uppgiftsbeskrivning:
Med hjälp av Physics ska en boll flyga uppåt och komma igenom hål i väggar. När man trycker på SPACE åker spelaren uppåt och när man släpper SPACE drar gravitationen spelaren nedåt. Väggarna skall komma från höger med fast takt, men med slumpad placering av hålet. Om man nuddar tak, golv eller vägg dör man. Fågeln kan vara en boll och övriga objekt kuber.

Tänk på att göra ditt spel på ett sådant sätt att det får en lagom svårighetsnivå för den målgrupp du avser. Tänk även på att i så hög utsträckning du förmår att ge ditt spel liv och känsla, till exempel genom att ha ett uttänkt färgschema, skapa rätt stämning och ge din spelare en personlighet som den tänkta målgruppen kan relatera till.

Min tänkta målgrupp är barn i åldern 5-10 år.

Nyckelpigan och blommorna har jag modellerat i Blender och sedan tagit in i Unity. Så även om spelet ser ut att vara i 2D så är det i 3D.

För mig som har väldigt lite erfarenhet av programmering så har det här varit en riktig utmaning. När jag började hade jag verkligen ingen aning om hur jag skulle ta mig an uppgiften. Och jag erkänner att jag under en period, precis innan lunch, kände mig helt obildbar.

Men jag tog en funktion i taget och började med att få nyckelpigan att åka uppåt när man trycker på mellanslagstangenten för att sjunka av gravitationen när man släpper tangenten.

Sen såg jag till att en grupp med blommor rörde sig från höger till vänster i jämn takt för att sedan koda så att placeringen i höjdled slumpas mellan två värden. Den funktionen tog mig ganska lång tid att få till men när jag väl fått till den så blev det inte så många rader med kod.

Nästa funktion var att flytta den blomgrupp som åker ut ur bild åt vänster, till början men på en ny slumpad position i höjdled.

Sen var det funktionen där det blir game over när man åker in i blommorna, alternativt åker utanför spelplanen.

Det sista jag gjorde var att spelarn försvinner, blommorna stannar och texten Game Over kommer fram när man åker in i något av hindren.

Ja, det har varit en utmattande men lärorik dag.

Och vill man testa att spela så kan man klicka på länken här, alternativt på bilden i början på inlägget. Det enda man använder för att styra nyckelpigan är mellanslagstangenten.

Det jag har gjort idag är i stort sett grundfunktionerna för spelet och om man kan visa upp ett fungerande spel så har man fått godkänt. Resten av veckan ska jag ägna mig åt slutprojektet i 3DS Max-kursen, både den och den här uppgiften ska vara klara till 18:e december, så får vi se sedan om jag får någon tid att förfina spelet med poängräkning, bakgrundsmusik, ljudeffekter, startaom-knapp osv.

 

Roll-a-ball

Spelutvecklingskursen har dragit igång och jag har gjort min första uppgift. Den ska egentligen inte vara klar förrän nästa helg men jag är ju lite otålig som ni vet.

Vi ska totalt göra 3 små spel under kursens gång och den första är en riktig hålla-handen-uppgift. Dvs. läraren håller oss i handen under hela spelutvecklingen. Uppgiften finns också som tutorial på Unitys webbplats om ni vill testa att göra spelet.

Spelet är väldigt enkelt. Man ska rulla en boll med hjälp av tangenterna W, A, S och D alternativt piltangenterna. Och efter enbart en vecka på kursen så har jag inte lärt mig att göra en knapp så man kan starta om spelet. Men mitt spel finns på sussijohansson.com  om man vill testa det så kan man klicka här eller på bilden.

roll-a-ball

Istället för ett standalone windowsspel så byggde jag ett WebGL-spel som körs på nätet. Det funkar faktiskt bra.