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!).
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
â Live Streamingâ Interactive Chatâ Private Showsâ HD Quality
Anya is LIVE right now
FREE
Free to watch âą No registration required âą HD streaming
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:
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.
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.
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:
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)â).
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.
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
â Live Streamingâ Interactive Chatâ Private Showsâ HD Quality
Anya is LIVE right now
FREE
Free to watch âą No registration required âą HD streaming
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:
^ 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.
...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)
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.
^ trump bossfight i vores fĂŠrdige prototype af spillet
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):
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:
^ video af hvordan alarmen ser uden inde i creys playtest mode
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.
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
â Live Streamingâ Interactive Chatâ Private Showsâ HD Quality
Anya is LIVE right now
FREE
Free to watch âą No registration required âą HD streaming
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)
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
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.
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.
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
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.
^ 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.
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.
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).
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
â Live Streamingâ Interactive Chatâ Private Showsâ HD Quality
Anya is LIVE right now
FREE
Free to watch âą No registration required âą HD streaming
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:
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).
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.