Text
‘Rise and shine mr. Freeman’ (Uge 19-25)
På grund af en masse helligdage og events har jeg ikke haft mulighed for at præsentere mit arbejde i et stykke tid. Jeg vil gå igennem hvad jeg har lavet i nogenlunde kronologisk rækkefølge.
Jeg har opdelt denne samling af mit arbejde op i flere posts. Hvis du vil se alle disse posts sammen kan du søge efter “uge 19-25″ oppe i venstre hjørne af blog-siden (kræver at du er logget ind!).
0 notes
Text
Læring om C#
Fra python til C#
Til ‘individuelt projekt’ satte jeg mig i gang med at lave nogle unity tutorials efter at have færdiggjort mit python spil, da jeg følte at jeg var klar til at lære hvordan man programmerer spil med grafik i engines ligesom unity. Den største udfordring bliver at mestre C# så jeg kan lave mine egne scripts fra bunden i stedet for at bruge kombinationer af simple værktøjer fra f.eks. unity playground, lidt ligesom man gør f.eks. i crey.
Sololearn C#
Ligesom da jeg skulle lære python bruger jeg en del forskellige steder til at lære C#. Mit ‘main’ sted er nok Sololearn, hvor jeg lærer om programmerings-principper, syntax osv., mens jeg bruger et Lynda course til at finde ud af bruge Unity ordentligt sammen med min kode.
^ sololearn progress/status
Eksperimenter med C#
Man begynder efterhånden, efter flere timer med små opgaver og tutorials/courses, at kede sig lidt - og min løsning på dette var bare at prøve at sætte et lille spil sammen med C# i samme stil som nogle af dem jeg har lavet førhen med python.
Ligesom mit tidligere ASCII spil, fandt jeg en tegning på nettet og begyndte at lave en smule dialog til hvorfor det skulle vises. Mit spil er bare et enkelt spørgsmål som man kan svare ja/nej til (”kunne du tænker dig pizza?”), men det ‘flotte’ ligger i detaljerne:
Spillet kan genstarte (og lukker ikke af sig selv)
Du kan svare hvad som helst, men den registrerer kun et ja hvis din besvarelse indeholder et ‘y’ (stort eller småt)
Teksten skrives gradvist på en mere menneskelig måde - i stedet for a printe en hel sætning af gangen så tager den hver bogstav af gangen
Der er sat små delays mellem hver sætning så det ikke går for hurtigt til at blive læst
Du kan spille mit spil ved først at have ‘.NET Core SDK‘ installeret og så følge disse steps:
Download mappen “Spilfiler” fra mit google drive
Pak indholdet ud af den downloadede .zip fil
Kopier stien til mappen
Åbn kommandoprompten
Indtast “cd [din kopierede sti]” og “dotnet run”
Her er en video til hvis du er i tvivl:
youtube
Undervejs i at lave spillet og at prøve at få det til at køre på min egen/andres maskiner har jeg også lært en del om hvordan C# programmer gemmes og kører. Mens at programmer i Python kan køres direkte med deres egen lille terminal så skal du med C# gemme dit program og program/projekt fil, have en compiler til at køre programmet og bruge andre værktøjer. Det er lidt mindre ligetil, men det afspejler bare hvor komplekst og advanceret C# er over f.eks. Python, ligeledes hvad Python gør godt.
0 notes
Text
Crey
Gruppe spørger om hjælp
Jeg har hjulpet en anden gruppe med deres mechanics i crey, da jeg ikke syntes jeg kunne hjælpe meget i min egen gruppe på et tidspunkt, og dem i den anden gruppe manglede nogen der kunne lave mechanics. Fra mit perspektiv virkede det ikke rigtigt til at de vidste hvad de ville have jeg skulle lave, men at jeg bare skulle “fikse det” eller “sætte en knap” uden nogen videre detaljer, så jeg gjorde mit bedste og spurgte ind til det en del gange undervejs. Jeg fik hjulpet med at lave en mekanisme der pauser et løbebånd (’conveyer belt’) når den drejer, to knapper der styrer om løbebåndet kører / skifter, og en knap/dør til en lastbil som skulle køre mod slutmålet.
0 notes
Text
Game jam U23 - Klima
I uge 23 skulle vi lave et spil på en uge i Unity, hvilket jeg ikke havde prøvet før. Temaet var ‘klima’ og vi begyndte direkte at gå ud i nogle lidt vanvittige ideer om det grønne parti, uffe elbæk, pia kjærsgaard osv. Her er et preview af hvordan spillet vi lavede endte med at se ud:
youtube
Fra teori til praksis
Vi fik at vide et par uger før at vi skulle lave næste game jam i Unity (spil-engine), efter at vi havde haft nogle classes på det.
Derfor prøvede jeg rigtig meget at klargøre mig til det og lære hvordan man brugte C# til Unity så vi kunne lave et fancy og unikt spil, og jeg nåede at få en lille forståelse for hvordan C# scripts skulle laves og så ud, men ikke nok til at vide præcis hvordan jeg ville lave dem til spil (især ift. at bruge Unity) Desværre gik det derfor også op for mig under game jam’en at:
Vores gruppe vil helst bare lave noget simpelt og mindre kreativt (forståeligt ift. programmerings-pespektiv, men det var ikke helt hvad de mente)
Vi har ikke nok resourcer med erfaring i C#/unity til at lave custom scripts
Jeg aner ikke hvad jeg laver, men min gruppe regner med mig
Indvikling
Naturligt så begyndte vi så at vikle os ind i scripts som vi havde brugt lidt før fra Unity playground (der bruges til at lære at kende Unitys interface osv.), hvilket betød at vi ikke rigtig vidste hvordan vores spil fungerede ift. programmering (el. ’mechanics’), så at løse bugs i Unity ville blive lidt mere udfordrende end ellers. Desuden satte det også enorme grænser for hvad vi kunne lave eller nå at lave, da der manglede en del simple features i de scripts vi havde, eksempelvis en en-gangs timer mechanic... der var kun en slags ‘timer’ der gentog sig selv hele tiden, så vi blev nødt til at skabe et manuel delay med physics uden for kameraet.
Generelt syntes jeg selv at jeg var meget produktiv i hvad jeg lavede, men samtidig følte jeg også at jeg slet ikke gjorde nok for at få andre med i hvad jeg lavede eller hvad de kunne hjælpe med. Jeg fik ikke opdateret mine opgaver på Trello (vores fælles arbejdsområde til fordeling og samarbejde) helt grundigt nok, især i starten, og jeg fortalte heller ikke nok til mine gruppemedlemmer hvordan de skulle bruge boardet - derfor var nogen der endte med slet ikke at bruge det. Undervejs fik jeg rettet op på der værste af dette, men i stedet for at være rolig og grundig så gik det stærkt - så jeg skrev en enormt masse til opgaverne på Trello, satte orden i det osv., men fik ikke sagt nok gange at mine gruppemedlemmer kunne skrive mere til deres individuelle opgaver så vores projekt var mere grundigt/gennemført og alle kunne hurtigt finde ud af hvad hinanden lavede.
Det var nok værst om onsdagen hvor nogle af os bare arbejdede på at få de simple spil-mekanikker til at virke, mens andre bare sad og var i tvivl om hvad de kunne hjælpe med. I slutningen var der hvor vi arbejdede bedst. Vi fordelte vores praktiske arbejde sammen, både på boardet og i snak. Vi gjorde indsats for at færdiggøre vores projekt nogenlunde ordentligt, og vi var produktive.
Stress
Desværre gik tiden også hurtigt, og i vores hast på implementere en ekstra modstander i vores spil fik vi ikke tid om fredagen til at teste vores spil for yderligere fejl vedrørende netop det, hvilket resulterede i at den version af spillet vi fremlagde havde en simpel fejl hvor du ikke kunne komme videre fra første modstander til den næste, som var enormt ærgerligt.
Trods alt dette syntes jeg dog stadig at vi arbejdede bedre end i den sidste game jam - ikke hvad vi nåede at lave, men mest ift. hvor godt vi kommunikerede og viste hvad jeg lavede + hvordan jeg prøvede at fordele arbejde.
Resultater
Efter nogle rimelig simple bug-fixes så virker spillet som det skal, også selvom det bare er en prototype (og føles derfor også lidt ufærdigt). Hvis du kunne tænke dig at prøve spillet skal du bare downloade “Klimakriger Uffe - Final build (2.0)”-mappen herfra og køre programmet (se nedenunder).
^ husk at pakke det ud af en zip-fil først.
Controls:
Klik på ‘start’ med mus for at starte
WASD for at bevæge din karakter
Mellemrum for at skyde træer
Besejr fjende og saml stjerne op for at gå videre
Hvis du er interesseret i at lege rundt i selve unity projektet, så kan du downloade det fra samme sted (”Unity project - 2.0 (07-06-2019)“).
0 notes
Text
Nyt header-billede
Tumblr blog ændringer
For nogle uger siden arbejdede jeg på at få sat en gif op på ‘header’ af denne blog af et spil som jeg er stor fan af, hvor man kan se en masse små maskiner arbejde sammen for a skabe nogle dimser, og jeg fik endelig formået at skabe både en gif i et nogenlunde rigtigt størrelsesforhold og data-størrelse, da tumblr nemlig kun accepterer billeder/gifs i en relativt lille størrelse (og gifs fylder relativt meget). Desværre kan jeg ikke få min blog til at vise min gifs så den faktisk kører i toppen. Når jeg oploader min gif så accepterer den gerne billedet og den kan godt vise den kørende i preview’et, men så snart jeg gemmer billedet og går ind på min side almindeligvis, så kører den ikke. Jeg har også prøvet at lave sådan en gif med photoshop i stedet for premiere pro (som jeg brugte før), da det har nogle flere indstillinger for hvordan din gif laves, men det giver nogle af de samme problemer. Jeg tror jeg lader det projekt ligge og viser min bedste gif her:
^ den gif jeg endte ud med som passede okay ift. størrelse og kvalitet.
Jeg var blevet lidt træt af mit gamle billedes farver så jeg lavede en ændring med color correction og sort/hvid filter som jeg bedre kan lide indtil videre:
^ billedet til venstre var det gamle, billedet til højre er det nye.
0 notes
Text
Mit program er færdigt (Uge 18)
hooray
Python
Jeg har endelig fået lavet en nogenlunde færdig version af programmet til at fungere! Denne gang med selve ascii-tegningerne i et separat .py dokument så det ikke fylder i mit hoved-script.
For at prøve programmet skal du bare have python installeret og hente denne folder fra google drive:
https://drive.google.com/open?id=1qFMu1bQc9DQZR3JQiv7YCtMiGUSLGGV9
^ download de 3 filer til samme folder og kør “Guess the drawing 2.0.py” med python (kræver at du har python 3 installeret)
Crey
I crey har jeg lavet videre på mechanics i vores fælles projekt, men alt hvad jeg lavede om torsdagen gik tabt da jeg ikke manuelt gemte banen og crey ikke kan autosave.
I programmør-stil har jeg fundet en metode til at få en connector til at checke dets indput og kun godkende en slags input, på en måde der minder meget om true / false. Jeg bruger bare en ekstra connector som en slags dobbelt power sådan her:
^ Input til venstre giver 2 power til den i midten, og input til højre giver 1 power. Connectoren i midten kræver lige præcis 2 power for a fungere, så hvis den skal give noget output til lampen (eksempel), så skal det være fra venstre side alene. De to inputs er bare eksempler, det er stortset ligegyldigt hvilken slags power der bruges.
0 notes
Text
endelig færdig? (Uge 17)
...næsten da. Denne uge har jeg mest arbejdet med python, så det er hvad jeg vil snakke om.
Python
Mit program virkede stortset fra mandag, men der var et problem med at nogle ord/tegninger bare behøvede have et enkelt bogstav rigtigt til fælles med brugerens input, på grund af den måde programmet gik igennem svarmulighederne.
For loop variation fejl
Fordi at jeg mente at det var bedst at inkludere nogle flere svar en bare et ved flere af tegningerne, skulle jeg ændre mit svar-test funktion så den kunne tænke over dette, og jeg brugte et ‘for’ loop som jeg mente ville passe fint hertil. Funktionen skal gå igennem alle ordene på en liste en gang og binde den til en variabel (x) som indholdet i loopet kan bruge.
Problemet opstår når ‘remaining_DRAWINGS[current_drawing][0]’ (som nedenunder er “cow”) ikke er en liste, men en enkelt string (anderledes fra ovenover).
Min løsning på dette er egentlig rimelig simpel. Jeg bruger bare et if-statement og isinstance til at checke om mine ord er en enkelt string eller flere strings i en liste:
Fra liste til tekst
Ud over det, så arbejder jeg også på at fikse på nogle små optimeringer af programmet, eksempelvis dette:
Funktionen ovenover skal opdatere current_word så den kan udskrive/vise hvilke mulige svar/ord der var ved en tegning når du har gættet forkert 3 gange. Lige nu virker den ikke, da den ikke rigtig ændrer current_word, og programmet tager bare definitionen af current_word der står ovenover, altså at ‘current_word = “” ‘ (altså ingenting) som jeg brugte til at komme uden om at programmet ikke vidste hvad current_word var, da det kun bliver defineret i en funktion... så det skal jeg finde ud af at fikse. Udeover det virker det ellers fint ved min test:
...som omdanner en liste til en formateret tekst-streng.
Så når jeg kan finde ud af at implementere det i mit program går jeg ud fra at det virker okay.
Men ellers så virker programmet fint, så vidt jeg ved.
Her er et link til koden: (kræver python compiler)
https://pastebin.com/nJpZbMM5
0 notes
Text
Mechanics og programmering (Uge 14&15)
Uge 14 var dedikeret til en game jam i crey, og i uge 15 har jeg lavet videre på mit lille spil + lidt i et andet crey projekt.
CREY: game jam u14
Jeg stod for mechanics på vores team og da vi fokuserede på at lave en relativt stor bossfight så var det også det jeg brugt langt det meste af min tid på at lave.
youtube
^ trump bossfight i vores færdige prototype af spillet
‘Trump’ har en skyder i hånden. Hans arm bevæger sig i intervaller så han sigter på dig og skyder en lift mod dig med en kugle + dmg zone dims som skader dig hvis du ikke løber fra hvor han sigtede mode dig. Desuden har den også en lydeffekt på, så man kan høre skuddet suse forbi én hvis man hører godt efter osv. osv.
Han og banen har en masse detaljer som ikke er tydelige hver eneste gang man spiller, men gør sådan at udfordringen fungerer ordenligt og giver mening for en anden spiller.
Python: ascii spil progress
Spillet er ved at være godt undervejs til at fungere ordentligt.
^ screenshot af mit program i min editor (VS code)
HVAD DER VIRKER:
Intro/forklaring til spillet vises ved start
Spillet viser en tilfældig “tegning”
Du kan svare på tegningen, nogle af dem har endda flere svarmuligheder (f.eks. ”man” og “stickman” bruges om samme tegning for at gøre det mere fair)
Du kan svare forkert (du har 3 forsøg) og dine korrekte svar bliver talt op
Der er forskellige feedback spilleren får ift. om de svarede korrekt og om det er i første forsøg
Spillet kan genstarte eller slutte
Spillet holder styr på hvor mange rigtige du har gættet og hvor mange tegninger der er tilbage (og viser det til brugeren)
Spillet viser hvor mange du fik rigtigt til sidst
Spillet kan “forsøge” at lave et nyt gem-fil hvis det ikke lykkedes at ændre den
HVAD DER IKKE VIRKER:
Spillet kan ikke gemme til et tekstdokument (den kan ikke skrive i filen)
^ screenshot af hvad der ikke virker. området ved X laver den en fejl, og så går den derfor videre til (except) og ned til området med spørgsmåltegn, som betyder at jeg ikke rigtig ved hvad der foregår der endnu
HVAD DER MANGLER:
En mere advanceret version af min “game over” screen når du er færdig:
Display af hvor mange du fik i første forsøg
Læsning af hvor mange du har gættet rigtig (of all time)
Andet information der kan gemmes til en anden session af programmet (f.eks. all time “første forsøg”, gennesnitlige rigtig/forkert ratio
Mange af de her ting er ikke nødvendige for at spillet fungerer, og nogen af de ting jeg gerne vil have virker åndsvage når man tænker på lidt indhold der faktisk er i spillet, men det er fordi at jeg først og fremmest eksperimenter med alt det rundt om selve spørgsmålene, som spillet går ud på.
Jeg har kigget meget på det med at åbne og gemme tekstdokumenter, som jeg finder meget interresant, i og med at det betyder man i princippet kunne gemme sin progress i spillet når man lukker det (for eksempel noget man ikke kan i crey eller nogen andre spil som jeg selv har lavet før).
Koden til programmet findes her (copy-paste):
https://pastebin.com/p5f6Ffzz
Jeg har fjernet saving området lige her da det får programmet til ikke at virke.
Desuden så fik jeg også fikset nogle af de problemer jeg havde med at lave kopier af min liste (fra tuple til ny liste i virkeligheden), som jeg løste ved at bruge “ list(deepcopy()) ” i stedet for bare at pointe (altså at jeg viste programmet hvor den skulle få og ændre variablen fra, i stedet for at lave en rigtig kopi af det) til tuplen i som jeg teknisk set gjorde før, som først lavede problemer efter lidt tid.
CREY: fælles projekt
Jeg har lavet en dør, som når den får input, eksploderer og sender to stykker planker (rester af døren) ud-ad for at simulere eksplosionen.
Her er hvordan det nogenlunde kommer til at se ud (den skal dog sættes det rigtige sted hen):
youtube
0 notes
Text
Py, HL2, Ps og crey (Uge 12&13)
Da vi havde fri fredag i uge 12 så har jeg kombineret begge uger til et slide så det hele kan præsenteres på en gang.
^ jeg ændrede lidt i layout og farver siden sidst.
Python: ASCII ‘gæt tegningen’-spil
Den næste opgave der lå på Invent with python hed “Hangman” som jeg fik læst lidt om, men det blev lidt kedeligt efter lidt tid så jeg kastede mig ud i at lave mit eget spil af samme stil for så at sammenligne til sidst.
^ udklip af mine kode for spillet. Den del der er vist er hvad der er meningen skal gennemføre en runde af spillet (men den kan ikke køre alene).
Her er et link til koden (pastebin):
https://pastebin.com/7vL4K4vj
Spillet er stadig ikke færdigt, og et problem jeg løber ind i er at når jeg sletter noget fra af en liste (”remaining_DRAWINGS”) så sletter den også den samme data i en helt anden liste (”backup_DRAWINGS”). Den eneste forbindelse de to lister har med hinanden er at de begge kommer som kopier fra en tredje liste (”DRAWINGS”). Den sletter desuden også indholdet i denne tredje liste.
^ læg mærke til de to ‘print()’. I den første så har vi en fuld liste af al data fra DRAWINGS, og bagefter ‘del’ så mangler der noget data fra en liste som jeg ellers mener burde være urørt.
TEMA Tirsdag (gamle spil)
Uge 12:
Half Life 2 DM var enormt sjovt at spille. Mange af os kender til den engine spillet kører på (Source), for eksempel fra counter strike, men også lidt i nyere spil som Apex Legends (som bruger en engine der stammer fra Source), og spillet er designet enormt godt så man sagtens kan få en god oplevelse af det i dag, mere end 14 år efter spillet kom ud i 2004. Der er varierede, taktisk placerede våben og områder, og hver bane er unik på en eller anden måde, det føles bare ligetil at samle et våben op og skyde med det og virkelig flydende at bevæge sig rundt i mappet med bhops i høj hastighed.
Uge 13:
Man kan godt mærke at Diablo er et gammelt spil. Det er ikke nemt at styre din karakter, det er ikke klart hvordan du skal gøre det NPC’erne vil have, du mister alt dit loot/equipment når du dør og den første store udfordring i spillet, nemlig bossen “the Butcher” er kendt som en af de sværeste første bosser nogensinde (af god grund). De eneste måder du realistisk set slå ham er at farme XP på forskellige saves indtil en hvis mængde som er nærmest umulig at nå inden du møder ham, og så teame op med nogle andre spillet om at slå ham, ELLER finde et eller andet exploit som du kan bruge til at slå ham ihjel uden han gør modstand. De ting jeg godt kan lide ved spillet er den lore karaktererne byder på, dets simple menuer (som måske bare er et resultat af en lav mængde indhold/dybde?), spillets LAN-multiplayer system (som virker nemt at bruge til at joine andre spillere), og hvor relativt enkelt det er at equippe items og opgradere din karakter ved lvl-up. Ikke at det er fantastisk og banebrydende, men det virker godt nok.
Photoshop hjemmeopgave
Til torsdag i uge 12 blev vi sat på en opgave som vi skulle løse derhjemme i Photoshop CS2. Da jeg allerede havde photoshop CC 2018 installeret så brugte jeg bare det i stedet og lavede opgaverne deri.
Jeg skulle lave et billede med et portræt og et citat sat ind i, og et visitkort af en slags.
Portræt:
Visitkort:
Creatense / crey: Alarm
Jeg har til vores fælles projekt lavet en alarm post ting som eksempel på hvordan man kunne løse opgave 1.
^ min alarm. Den bliver triggered af en sensor som giver et signal forever når du træder ind i den, altså ind a porten, hvorefter en alarm går i gang og lyset på alarmboxen skifter mellem rød og grøn. Hvis du så går hen og holde E inde på boxen så kan du slå den fra, men kun hvis du holder den inde (der er et hint med tekst + visuelt feedback fra det håndtag man skal trække ned i siden)
Her er en video af det in action:
youtube
^ video af hvordan alarmen ser uden inde i creys playtest mode
0 notes
Text
Stille uge 2: electric boogaloo (Uge 11)
I denne uge lavede jeg lidt videre på Sololearn, programmerede mit eget lille quiz-spil, og udforskede mechanics i crey. Her kommer jeg dog kun til at snakke om programmering.
^ jeg fik lige sat ting på plads på mit trello board
Til den sidste python class onsdag skulle vi lave nogle opgaver i et kursus. Jeg kom hurtigt videre til en opgave hvor jeg skulle færdiggøre et quiz-spil, men jeg kunne ikke få det til at virke, da jeg misforstod opgaven som om at jeg skulle lave et fuldt spil med en funktion der allerede var lavet for mig, mens jeg i virkeligheden bare skulle lave sådan en funktion selv.
^ udklip af opgavebeskrivelsen og fejl. Da jeg læste det kunne jeg ikke forstå hvad det betød at at den her funktion “gjorde” noget - fordi at den ikke refererede til en funktion der eksisterede, men en jeg skulle skabe i det billede
Derfor gik jeg i gang med at prøve at lave et spil i samme stil som det i opgaven fra bunden af mig selv - “sandt eller falsk” med en funktion, der brugte lister med spørgsmål og det korrekte svar (i stedet for en mere ‘lineært’ metode hvor jeg satte spørgsmål og svar ind efter hinanden).
Det sværeste blev at sætte mine spørgsmål op som lister i sig selv, med tekst som index 0 og svar (true/false) som index 1, og så at sætte de lister / spørgsmål ind i en anden liste med alle spørgsmålene, så jeg kunne cycle igennem dem automatisk. Bagefter skulle jeg nemlig hive indviduelle informationer ud fra den liste, og det nemmeste at gøre viste sig at binde det nuværende spørgsmål til en variabel, og så hente informationer ud af den med index.
Her er en illustration fordi at det er lidt kompliceret.
Sådan ser det ud når jeg kører programmet (Python shell):
Det tog alt for meget arbejde for at få Tumblr til at acceptere min gif, da tumblr maks vil have filen på 1 mB, så jeg var nødt til at skrue ned for både frame rate, størrelse/zoom og resolution. Næste gang laver jeg nok bare en video og viser den her via. Youtube.
0 notes
Text
Den stille uge (Uge 10)
Sidste touches på guess the number-scriptet, fælles projekter og Sololearn.
^ jeg fik opdateret mit trello board og gjort det pænere/bedre med farver for kategorisering
Final touches på “guess the number” mod (Python)
Første del af ugen (mest mandag) fik jeg færdiggjort mit python script/mod til den originale “guess the number”. I forhold til den originale ændrer den teksten hvis du ikke sætter et navn ind, den kan ikke crashe ved forkert user-input (af hvad jeg ved), den har et dansk, mere naturligt sprog med lidt ironisk-cringy dialog, den har udvidede kommentarer i koden så det er nemmere at forstå hvad der foregår (både for min egen skyld og så den er mere præsenterbar), den har en slags slutmenu hvor du kan vælge at genstarte eller lukke hvor den også kræver og venter til du skriver ja eller nej, og den har ekstra detaljer i teksten såsom variabler der bruges til at kommunikere information som eksempel hvor mange gæt du har lavet eller hvor mange gæt det tog at vinde/tabe spillet. Her er nogle screenshots af koden (i Python IDLE) + et pastebin link:
^ screenshot af mine kode, link til det fulde script: https://pastebin.com/AgdAzN3x
Den originale kode så til sammenligning sådan ud:
^ fra Invent with python, kapitel 4: https://inventwithpython.com/chapter4.html
Fælles projekt “krøjtøns 2″ (Crey)
I denne uge vi igen op for vores fælles crey projekt, men alle mine gruppemedlemmer var fraværende blev jeg koblet på team 4 sammen med en praktikant. Opgaven går ud på at lave en crey-bane eller spil som kan bruges i forbindelse med dansk eller matematik i folkeskolen (7. til 9. klasse).
^ Vores work-in-progress google docs dokument til opgaven (slet ikke færdigt)
Forsæt af Sololearn course (Python)
Efter at være færdig med at lave mit script syntes jeg at jeg havde brug for at gå tilbage og lære noget mere om python efter en del praktisk øvelse, så jeg begyndte igen på Sololearn courset og lavede lidt over 1 del (færdiggjorde ‘Exceptions & Files’ som omhandlede b.la. om try/except ting som jeg ellers har leget lidt med. Nu mangler jeg kun 4-5 dele, og jeg er ca. halvejs.
^ udklip af Sololearn-python overview siden
Til sidst fik jeg lige kigget lidt på at lave et logo til på Trello (profilbillede), og fordi jeg er så enormt ukreativ og ikke tager selfies så måtte jeg jo finde en dårlig løsning som ikke rigtig hjælper til andet end at jeg kan sige at jeg har ændret mit profilbillede. Jeg er slet ikke sikker på hvad jeg ellers skal lave. Jeg KUNNE bruge et skrald billede af mig men jeg foretrækker dette. :s
^ nye trello profilbillede (måske ikke helt permanent)
0 notes
Text
‘The [crey] is a lie’ (Uge 8 & 9)
Game Jam og Python.
I uge 8 lavede vi et spil og bane i crey til en game jam. Jeg siger vi, men da jeg stadig ikke er god til at bruge crey, så jeg hjalp ikke rigtig til i den rigtige produktion af spillet.
^ “ jeg [hjalp til med at lave] et spil i crey ” - mig
Game jam (crey)
Noget af det første vi gjorde da vi havde fået en nogenlunde idé om hvad vi ville lave (altså efter vi lavede en brainstorm + mindmap) var at inddele roller for at vi alle vidste hvad vi skulle sætte vores fokus på (eller hvad vi gerne ville lave i gruppen).
Da jeg nærmest ikke havde nogen erfaring overhovedet i at bruge crey selv så tænkte jeg, at jeg ville hjælpe til andre steder - så jeg valgte at have fokus på management og præsentering (2 roller):
Min vigtigste opgave blev så at lave vores google slide så den så præsenterbar ud (og med stikord osv.), og så få skrevet lidt tekst i noterne så alle havde en ide om hvad de skulle sige på hver slide (med hjælp fra andre fra på holdet til at skrive).
^ vores google slide til præsentationen
Ud over det var ‘management’ også en rolle jeg havde såt jeg skulle holde styr på vores Trello board og hjælpe til hvis der var forskellige problemer som ikke direkte var crey-tekniske.
^ teamets trello-board
Python
Vi havde en class onsdag I python med André som b.la. handlede om hvad Python og programmering er, hvad det skal bruges til, og hvorfor det er relevant. Bagefter blev vi så sat i gang med at prøve os frem, men da jeg allerede har brugt en del tid på at lære begynderdelen af Python og faktisk gerne bare ville videre med det jeg allerede var i gang med blev jeg lidt træt af at gennemgå det samme som jeg allerede havde lært i hvad jeg følte var en mere besværlig format.
^ MS Azure / Jupyter kursus I python som André viste til os
Derfor gik jeg også hurtigt videre til at lave modifikationer af Invent with python’s “guess the number”-spil i stedet for at forsætte med det kursus indtil videre.
^ min hurtige lille ændrede version af ‘guess the number’
Det jeg først gik efter med scriptet ovenover var sådan set bare at lave en dansk version/kopi af den originale, og imens fik jeg så forkortet eller forbedret koden med lidt af den viden jeg har indtil videre. Eksempelvis satte jeg int-funktionen ind i print-funktionen så jeg ikke behøvede at ændre variablen gæt, og så gjorde jeg teksten lidt mere ligetil og naturlig at læse.
Bagefter fik jeg lige Ricky til at teste den, og den så ud til at virke som den skulle, men det største problem ved den var at man kunne indtaste noget som ikke var et hel-tal og så ville programmet gå i stå med en fejl.
^ min script med “tryInt()”-funktion som tester om den kan lave en string til integers
Løsning blev så at bruge det som hedder try-except som virker som en slags ‘forsøgs-environment’. Jeg bruger det her til at prøve at lave variablen gæt til en integer. Hvis gæt godt kan laves til en integer, sender tryInt() (min funktion med try-except) ‘True’ tilbage til det if-statement der spørger et ‘True’. Hvis gæt ikke kan laves til en Integer så gives den ikke en error, men sender bare ‘False’ tilbage til if statementet, og giver derved ingen errors.
0 notes
Text
Python & mere Python (uge 7)
Denne uge har for det meste bare handlet om at lære Python og begynde at bruge det.
^ det første program jeg lavede i python (dog mere eller mindre kopi af læringsbogens kode)
Jeg har gennemført et introkursus på ‘Datacamp’ som lærer om hvad python er, hvordan man kan bruge det og lidt om hvordan man laver datamanipulation med det.
^ screenshot fra Datacamps ‘Introduction to Python’
Da jeg var færdig med introkurset på Datacamp prøvede jeg at kigge på det mere advancerede Sololearn kursus (også i python), og jeg lavede de 3 første dele.
^ screenshot fra Sololearn. De 3 grønne cirkler er jeg færdige med.
^ sådan ser de forskellige dele ud inden i, med en et par enkelte spørgsmål jeg skal svare på i hver firkant
Jeg blev efterhånden lidt træt af kun at lave opgaver, så jeg ville i gang med noget mere praktisk øvelse så jeg kunne lære lidt om det, og dertil var Invent with python er godt værktøj, og det er hvad jeg er i gang med lige nu.
^ billede af hvor langt jeg er nået indtil videre
^ udklip af programmet ‘Dragon Realm’ fra kapitel 6 i ‘Invent with python’, også mere eller mindre en kopi fra lærebogen
0 notes
Text
Premiere og Python (uge 5 & 6)
Da vi ikke fik opsamlet på hvad vi lavede I fredags da vi var på Københavns Mediegymnasium omhandler dette post 2 uger.
Portal montage projekt / premiere
I uge 5 gjorde jeg det meste af videoen færdig, og mandag i uge 6 lagde jeg den op på YT efter at have finpudset den lidt i Premiere, sammen med en thumbnail jeg havde lavet til den. Jeg følte ikke helt at den var færdig, men samtidigt var jeg i sådan en situation hvor jeg ikke syntes den blev mærkbart bedre for hver time jeg brugte på den (bare lidt anderledes).
^ udklip / screenshot fra projektets Premiere timeline
Undervejs gjorde jeg et forsøg for at projektet skulle holdes overskueligt indenfor mapper osv., og så alting lå på D-drevet (hvor jeg før har haft tingene liggende på C-drevet før det var færdigt.
^ udklip / screenshot af hele projektets mappe
Videoen varer lidt under 5 minutter, og har mere end 70 klip/cuts med 4 forskellige instrumentale musikstykker:
Portal ‘radio tune’
“Reconstructing more science”
“4000 degrees kelvin”
“You will be perfect”
Nedunder finder du videoen fra YouTube. Læg også mærke til thumbnailen som jeg har sammensat. Den består af 4 elementer: Baggrunden, som er et screenshot direkte fra spillet. Baggrunden er fået en farveændringen der gør det mørkere og så det står i større kontrast med logoet. Logoet er fundet fra google, men det er blevet strækket lidt opad/højere, mens at portalen i det er blevet i samme størrelse så de to ting passer bedre sammen. Til sidst har jeg lagt et lille ‘inner glow’ på så billedet ikke er så ‘skarpt’ og passer bedre ind når det står alene.
youtube
^ den færdige video
Factorio gif
Jeg havde syntes at mit baggrundsbillede / header på denne Tumblr blog var lidt kedeligt, så jeg ville forsøge prøve at lave et gif af Factorio (et spil som jeg er glad for), hvor der ofte er meget bevægelse i baggrunden.
Jeg fik optaget et minuts optagelser mens jeg stod stille og min farbrik arbejde i baggrunden. Det lavede jeg så ind i Premiere og prøvede at få den til at loope sådan nogenlunde og samtidig være rimelig kort (så den ikke fyldte alt for meget). Derfra kunne jeg så eksportere i gif-format i forskellige kvaliteter.
Desværre gik det bagefter op for mig at jeg ikke kunne gøre min gif i særlig høj opløsning hvis det skulle være deroppe (baggrund / header), og jeg har ikke helt bestemt mig for hvad jeg nu vil gøre med det. Til gengæld kan jeg sætte et link ind her og vise hvordan det ser ud:
https://imgur.com/a/dmSUgXw
Filen fylder i sig selv fra 80 MB (mindste fil jeg kunne lave) til 428 MB (original, HQ), så den kan ikke indsættes her direkte.
Python
Efter at have snakket med André om hvad jeg gerne ville fordybe mig i, begyndte jeg at lave en online-tutorial på Python af Datacamp, som jeg fandt inde på programmerings-boardet i trello (”Python” -> “Learn python”).
Jeg har nu brugt lidt tid på at lære hvordan programmeringssproget fungerer og lært en del om at manipulere data med Python.
^ Udklip af en opgave jeg lavede på Datacamp med NumPy
Jeg er ikke særlig erfaren i Python endnu, men jeg ved allerede lidt om hvordan f.eks. java ser ud eller virker, så jeg har den fordel.
0 notes
Text
Photoshop og Premiere (uge 4)
I denne uge har jeg arbejdet på at lave simple Photoshop redigeringer og sammensætning af en playthrough af portal 2 banen.
Photoshop
Selvom vi ikke har haft nogle rigtig classes i Photoshop i denne uge har jeg heftigt brugt det. For eksempel til det udvidede post om min Portal 2 bane har jeg redigeret dele af delene af banen adskilt så man kan forkusere på dem individuelt, og de steder hvor der er et vindue eller man kan se igennem f.eks. fra del 1 til 2 har jeg blurret vinduet, hvilket jeg syntes virker rimelig godt.
Jeg har desuden lagt detaljer til thumbnailen i mit playthrough af mappet, som ser sådan ud:
^ Her er der både et udklippet kort af mappet og et logo, og så er portalen i logoet farvet blå (fra en kedelig hvidgrøn farve). Desuden har jeg brugt drop shadows i både logoet og teksten “Progression” (banens ukreative navn) så de passer godt sammen.
Premiere
Portal 2 bane
I denne uge har også brugt premiere en del. Først brugte jeg det mandag til at redigere playthrough’en af min bane i Portal 2 ud af en lang, lang optagelse (jeg gennemgik banen et par gange for at få en god optagelse), og så til at sætte tekst + transistions ind.
^ timeline + preview. Hele videoen består af det, der kan ses i bunden.
Portal (1) playthrough/montage
Onsdag havde vi en class om premiere af André der gennemgik hvordan man kunne begynde at redigere i programmet, og jeg fik lidt mere styr på hvad jeg i forvejen havde gjort før.
Jeg satte i gang med at lave en fuld playthrough af Portal om morgenen som jeg så optog med NVIDIA Shadowplay. Jeg havde regnet med at det ville tage 2-3 timer, men jeg nåede lige at blive færdig kl 11 så jeg kunne være med til at se hvordan man kunne redigere det (vi skulle helst have optagelser klar der). Faktisk var jeg næsten færdig med slutningen da jeg blev kaldt ind, så optagelsen optog lige slut-cutscenes’ne bare til hvis jeg skulle bruge dem, før jeg stoppede den da den blev færdig.
^ den fulde (rå) optagelse af spillet. Med premiere skal jeg så til at klippe alt det mindre spændende ud, så længden går fra 1 time og 12 minutter ned til 3-4 minutter (det bliver nok lidt længere end de anbefalede 2:30 - 3:30 min. dog :/ ).
Jeg er stadig ikke færdig med projektet, men jeg håber på at jeg kan kunne arbejde på det (og måske endda nå at afslutte det?) i næste uge. Nedenunder kan ses hvad jeg har lavet indtil videre.
^ timeline + preview, hvad jeg har indtil videre i mit projekt. Nogle af klippene er meget hurtige og følger melodien i baggrundssangen nogenlunde for at variere tempoet og indikere nye ting (eksempelvis der hvor der læres principper om momentum eller man opgraderet sin ‘portal gun’).
^ jeg bruger et lille notedokument til at holde styr på det mest essentielle i mit premiere projekt, nemlig musikken. Ord som “optakt” og “klimaks” bruger jeg som stikord for at fortælle mig selv hvor de skal bruges. Da jeg går igennem hele spillet i hurtige klip eller hop, så ved jeg nærmest allerede hvordan det skal se ud (det er bare om at finde hvor det bedste øjeblik at bruge er henne).
0 notes
Text
Portal 2 “Progression”
Banen er færdig.
Den består af 3 mindre kamre af forskellige sværhedsgrader: Let, mellem og svær. I banen går jeg ud fra at spilleren har prøvet spillet før, og ved hvordan alle elementerne i banen fungerer. Samtidig er banen dog også skabt sådan at hvis man ikke rigtig havde spillet det så meget kunne man stadig komme ind i det (selvom det kan være udfordrende).
Her er en video der hurtigt gennemgår banen:
youtube
3 dele/rum
Den første del er den lette. Her skal spilleren bare vise at de kan finde ud af at sætte og gå gennem to portaler, trykke på en knap og sætte en cube på den anden flade knap. De 2 andre dele/rum bruger også blandt andet disse ting, så det er vigtigt at forstå det inden rum 2 og 3.
^ del 1
Anden del er lidt sværere. I sig selv introducerer dette rum kun 2 nye ting: “Faith plate” (spring-fod / katapult-tingen) + momentum og laserkassen / refleksions-kassen. Laserkassen skal egentlig kun bruges i sidste del, men du kan forberede dig til 3. rum bedst inden du når dertil ved bruge den og hente companion cuben. Af praktiske årsager er den anden ‘cube’ rund, så den kan kun bruges ved de runde knapper, flade knapper (som spilleren / alle cubes kan bruge), og den kan ikke bruges til laseren eller de firkantede knapper. Det er gjort fordi at det nok vil være enklere at forstå hvilke cubes skal bruge hvor. Ud over det så er banen også designet sådan at du i starten kun har adgang til en enkelt knap (som gør noget), men så snart du klikker knappen og lærer om momentum (nødvendigt for at nå til knappen), så kan du både gå ned og hente cubes, men du får også adgang til en portal-side som både er nødvendig (mere eller mindre) og praktisk.
^ del 2
Tredje del er den sværeste. I sig selv kan man godt sige at det bare er et enkelt hop med portal, lignende det I bane 2, men det kræver hurtigere reflekser og du skal gøre det mens du hopper (ift. at du kunne sætte portalerne inden du hoppede i del 2. Til gengæld for at den er kort, skal man nemlig medbringe cubes fra tidligere rum, og hvis man ikke allerede har gjort det eller forstået hvordan, så kan det være udfordrende. Selv om del 2 nok virker til at være den længste da det er der du bruger det meste af din tid, arbejder du meget af den tid på at hente cubes eller komme frem til del 3.
Kasser der skal hentes:
‘Companion’ cuben
‘Reflector' cuben
‘Sphere’ cuben
De tingester der spawner cubes kan respawne cubesne ved et nyt klik på en knap, så du kan ikke sidde fast uden en cube du mangler. Desuden kan du altid gå tilbage i det forrige kammer/rum, da det bare er et drop der adskiller banerne (men at gå videre til næste bane kræver at cubes / portaler bruges).
^ cubes (forskellige typer)
0 notes
Text
Hvad har jeg lavet i min første uge?
Portal 2 bane/udfordring - “Progression”
Banen virker og mangler måske bare lidt ekstra finpudsning/ændring. Til banen har jeg også lavet lille tekstdokument hvor jeg har skrevet om hvordan jeg forestiller mig banen kan klares, hvordan man kan løse den og hvordan jeg forhindret at spilleren sidder fast (og bliver nødt til at genstarte).
Photoshop class(es)
Jeg har gennemgået nogle af de ting jeg vidste i forvejen og lært nogle nye ting. Nu kan jeg nogenlunde finde ud af at bruge f.eks. brushes, blending, masking og layers. Desuden kan jeg bedre/hurtigere navigere Photoshop og jeg er lidt mere sikker i hvad jeg laver.
1 note
·
View note