DADIU Produktion. en introduktion til Source for DADIU programmører. Bo Bendtsen Lasse Laursen 23.

Størrelse: px
Starte visningen fra side:

Download "DADIU Produktion. en introduktion til Source for DADIU programmører. Bo Bendtsen [bobend@diku.dk] Lasse Laursen [gazoo@diku.dk] 23."

Transkript

1 DADIU Produktion en introduktion til Source for DADIU programmører Bo Bendtsen Lasse Laursen 23. august 2006 Vejleder: Jon Sporring

2 Indhold 1 Forord Definition af termer DADIU Dolores Produktions forløb Praktiske forhold Arbejdspladsen og roller Konflikter og problemer Hvad er Source? Kilder til Source Klient-server-design Entiteter Input/Output systemet Hammer Arbejde i Source Partiel eller fuldstændig konvertering Programmering i Source Ungarsk notation Konkrete tips til programmering i Source Entiteter Tilstande og funktioner Entiteter og Data Descriptions Input/Output Source AI Think-funktioner States, schedules, tasks & conditions Interessante funktioner i Sources AI Gennemgang af en entitet QC-Scripting En rekvisitmodel En NPC model Materialer og teksturer Lydsystemet i Source Soundscripts Soundscapes Ambient_generic Response System Source konsollen Optimering af spillet og dets baner

3 4.9.2 Fintuning af forskellige aspekter ved motoren Manipulation af selvdefinerede konsolvariabler Tilgang til banens entiteter Afprøvning og debugging af Source AI Scripts og ressourcer Ressource-mapper Scripts-mapper GCF-filer og decompiling Afsluttende bemærkninger 48 A Nyttigt Software 50 B Kildekode til base NPC klassen 52 C Billeder fra Dolores 55 D Designdokument 58 Litteratur 59 2

4 1 Forord Videnskabelig arbejde forløber i den ideelle verden tilnærmelsesvis med, at man på grundlag af teoretisk viden efterprøver en idé og dokumenterer resultatet. Forløbet, der førte til denne rapport, passer ikke med denne beskrivelse. DADIU er det nye, danske spilakademi. DADIUs mål er at uddanne mennesker på tværs af faggrupper i at producere computerspil. Forfatterne til rapporten, du nu læser, deltog i en DADIU-spilproduktion, der blev afholdt i marts måned Det specielle ved situationen var, at vi som forfattere ikke havde nogen videre teoretisk eller praktisk viden om spilproduktion og slet intet kendskab til den udleverede spilmotor. Denne rapport er paradoksal i den forstand, at vi har skrevet den til os selv - og fremtidige studerende. Den skulle gerne svare på nogle af de spørgsmål, vi havde, før vi gik i gang med spilproduktionen. Source SDK er navnet på værktøjspakken, der i skrivende stund bliver brugt i DADIU-regi. Det er en spilmotor, der er blevet brugt til succesfulde kommercielle spil som f.eks. Half-Life 2. Source SDK et består af en række værktøjer og en delvist åben kildekode. Desværre er den eksisterende dokumentation til Source i bedste fald mangelfuld og lidet pædagogisk. Det er det forhold, der har motiveret os til at skrive en introduktion til Source foruden en beskrivelse af selve spilproduktionen. Vi håber at kunne dokumentere forståelse af stoffet, og formidle nogle af de erfaringer vi gjorde til fremtidige programmører på DADIU produktionerne. Denne rapport er ikke en komplet dokumentation af Source. Da rapporten bygger på vores praktiske erfaringer og tydning af tilgængelige dokumentation, ved vi, at den ikke belyser alle aspekter af motoren. Den svarer heller ikke på alle de spørgsmål, der måtte komme gennem en spilproduktion. Men vi håber, den kan bruges til at skabe overblik over motoren og de opgaver, der kan forekomme i en spilproduktion. En stor del af spilproduktion for programmørerne ligger i at finde ud af, hvordan forskellige spilmekanikker før er blevet implementeret i Source og få hele spillet til at spille, før deadlinen. Det er i langt højere grad en praktisk opgave, end de teoriske opgaver vi er vant til i universitetsverdenen. Rapporten har vi valgt at opdele i tre dele - den første del (kapitel 2) beskriver DADIU-spilproduktionsforløbet. Den anden (kapitel 3) er en overordnet introduktion til Source, opbygningen og organisation. Og den tredie og sidste (kapitel 4) går mere i dybden med udvalgte aspekter. Den sidste del er meget programnær, og bør ikke læses fra ende til anden. Underkapitlerne kan læses efter behov, mens man arbejder med Source. Rapporten bliver som nævnt meget programnær, og forudsætter derfor, at læseren kan bruge C++. Vi har valgt at bruge engelske fagtermer, hvor vi mente, at danske oversættelser ville forvirre mere end gavne. I det efterfølgende afsnit findes en 3

5 oversigt over termer og forkortelser. 4

6 1.1 Definition af termer Følgende er en liste af termer som vi benytter løbende i denne rapport: AI - Forkortelse af Artificial Intelligence. Kunstlig Intelligens. Brush - Et geometrisk objekt i verdenen. Der skelnes mellem to forskellige typer brushes i Hammer. World brushes som er et solidt objekt der ikke kan flyttes eller tilintetgøres i selve spillet. Brush-entiteter som er entiteter knyttet til volumen, som brushen udspænder. Bumpmapping - En teknik der giver en tekstur yderligere detaljer uden at gøre formen på overfladen den ligger på mere kompleks. Teknikken giver en plan overflade en slags dybde. Klient-entitet - En entitet der bliver afviklet på klientsiden af Source motoren. NPC - Forkortelse af non-player character. En figur i spillet der ikke bliver kontrolleret af spilleren. Path-finding - Direkte oversat betyder dette sti-søgning. Udtrykket bruges ofte i en algoritmisk forbindelse, hvor formålet er at finde fra et punkt frem til et andet i f.eks en virtuel verden. SDK - Forkortelse for Software Development Kit. Server-entitet - En entitet der bliver afviklet på serversiden af Source motoren. Spekular refleksion - En del af Phongs lysmodel, der benyttes til visuelt at efterligne lys. Trigger - Udløser. Bliver brugt i sammenhæng med entiteter, til at informere om tilstandsændringer. Wiki - En wiki et internetværktøj til i fællesskab at se og vedligeholde en hjemmeside. 5

7 2 DADIU DADIU[2] - Det Danske Akademi for Digital Interaktiv Underholdning - er et samarbejde mellem ni kandidatuddannelser og tre kunstskoler spredt ud over hele danmark. Formålet er at uddanne mange forskellige faggrupper i at lave computerspil. En grov opdeling af faggrupperne ville være de organisatoriske, de kreative og de tekniske. DADIU-forløbet består dels af fagspecifik undervisning på de deltagende uddannelser, en gennemgang af fællespensum i DADIU-regi og to fællesproduktioner. Fællespensum foregår som 3 ugers fællesundervisning på tværs af faggrupperne. Målet er at give deltagerne en basal indsigt i de andre faggruppers arbejde og skabe et fælles sprog. De to produktioner bliver løst i hold sammensat af folk fra de forskellige uddannelsessteder. Alle faggrupper, der befinder sig i en kommerciel produktion, er tilstede i dette forløb. Dette skal sikre, at det færdige projekt er en afrundet og realistisk produktion, dog i mindre størrelsesforhold. Der skal laves en spilbar prototype. Det har hvert deltagende hold fire ugers præproduktion og fire ugers reel produktion til. Først og fremmest er det de tværfaglige udfordringer og kulturforskellene mellem uddannelserne, der gør DADIU-produktioner mere realistiske end de opgaver, folk ellers løser på deres respektive uddannelser. Der er også rigelig udfordring til de forskellige faggrupper, dog er fokus væsentlig mere praktisk end teoretisk. Opgaverne, som nogle deltagere, især også datalogerne, vil blive stillet overfor i sådan en produktion, vil i visse tilfælde være mindre fagligt relevante end andre. DIKU er ny deltager i DADIU, så det var første gang, der var DIKUstuderende med i en DADIU-produktion i marts Som DIKU-studerende betød det, at vi ikke havde fået direkte spilorienteret undervisning eller deltaget i mere end en trediedel af fællespensumet. Fællesproduktionen marts 2006 var DADIUs første årgangs anden og afsluttende produktion. Til den første produktion blev der brugt et udviklingsværktøj, der hed Virtools[9], men det var der ikke stor tilfredshed med og de færdige produktioner kunne ikke frit distribueres. Så værktøjspakken blev skiftet ud med Valves Source, der ikke lider under den samme restriktive distributions aftale. Dog skal man eje Valve Softwares spil, Half-Life 2 - som Source oprindeligt er udviklet til - for at kunne spille DADIU-produktionerne. Half-Life 2 er et populært og anmelderrost første-persons-skydespil. Det har et delvist åbent SDK og bliver i forvejen brugt til mange hobbyproduktioner i form af modifikationer til originalspillet (se afsnit 4.1). 6

8 2.1 Dolores Dolores[3] er titlen på vores holds spilproduktion. Vi vil igennem rapporten hovedsageligt tage udgangspunkt i de erfaringer, vi gjorde os på vores hold. Vi vil dels prøve at give et indblik i, hvordan vi oplevede produktionen og bruge det som enkelte eksempler i vores tekniske introduktion til Source. Holdet bestod af: 1 instruktør, Jan Rahbek 1 spildesigner, Henrik Bennetsen 1 projektleder, Hans von Knut Skovfoged 2 grafikere/designere, Rune Hauberg Brimer (Lead Artist) og Susanne Møller Nielsen 1 lyddesigner, Frans Galschiøt Quaade 2 animatorer, Karsten Madsen og Jeppe Sandholt 3 programmører, Anders Thaulow og denne rapports forfattere; Bo Bendtsen og Lasse Laursen. Vi vil i afsnit 2.4 komme mere ind på, hvad de enkelte roller dækker over. 2.2 Produktions forløb Præproduktionen startede som nævnt fire uger før selve produktionen. Her var det instruktøren, spildesigneren, projektlederen og Lead Artist ens opgave at få på plads, hvilket spil de ville lave, hvordan historien og rammen skulle være, hvordan det skulle se ud og desuden lave en produktionsplan for at sikre et afrundet og spilbart slutprodukt. Designdokument, manuskript, concept art og produktionsplan blev udarbejdet i februar. Som programmører forberedte vi os ved at se på de praktiske forhold (se afsnit 2.3) og sætte os ind i Source. Det sidstnævnte gjorde vi ved at søge efter dokumentation og tutorials (se litteraturlisten og f.eks. My First Mod på Valves wiki[6]). Vi havde også en række møder med projektlederen, spil- og lyddesignerne så vi kunne få en overordnet idé om, hvilke udfordringer vi kunne forvente i marts. Produktionen løb igennem hele marts. Vi havde aftalt en almindelig arbejdsuge fra ni til sytten, mandag til fredag. Hver dag blev indledt med et morgenmøde. Morgenmødet blev brugt til at fortælle hinanden, hvad man lavede, og hvor langt man var med sine opgaver. Det var især projektlederen, der styrede mødet og sikrede sig, at folks opgaver overholdt produktionsplanen. Udover at møderne opfyldte et praktisk behov for kontrol med produktionsplanen, var de også meget motiverende, fordi man kunne høre, 7

9 at det gik i den rigtige retning på alle fronter. Selve arbejdsgangen foregik meget selvstændigt. Vi sad i det samme lokale, så hvis man havde brug for at snakke med nogen fra de andre faggrupper, spurgte man bare. Den flade stuktur vi havde på holdet, i modsætningen til en hierarkisk struktur, førte til et meget naturligt samarbejde. Vi spiste frokost i fællesskab og brugte også spisepausen til hyggelige, uformelle møder. Ikke alle faggrupper var med i hele produktionen. Vores animatorer deltog kun i de to midterste uger. Derfor var meget af planlægningen og pipeline en tilrettelagt efter hvornår, de var tilgængelige. Det var ikke de store dramaer, der prægede hverdagen. Vi arbejdede fremad mod deadlinen og da vi nærmede os den, arbejdede vi endnu mere. Ellers var den daglige rutine kun afbrudt af spiltest og besøg af DADIU og branchefolk. Mod slutningen af forløbet blev visse ressourcer, der ikke kunne deles, flaskehalse. Det krævede mere koordination og ledelse. Projektlederen sørgede for at optimere udnyttelsen af de kritiske ressourcer. Der var dog mod afleveringsfristen konflikter, der blussede op, som ikke blev bilagt. Det førte heldigvis ikke til nedbrud i selve produktionen, men lagde lidt en dæmper på det gode humør. Under projektforløbet blev der udarbejdet et designdokument (bilag D). Projektlederen stod hovedsageligt for dette dokument, men det var tanken, at de forskellige faggrupper hver skulle lave et afsnit. Da designdokumentet skulle færdiggøres var programmørernes arbejde med spillet langt fra slut. Vi vurderede, at hvis vi skulle skrive et afsnit til designdokumentet, ville vi ikke kunne nå at få spillet færdig i den tilstand, vi ønskede. Vi står ved vores prioritering af selve produktet, i retrospekt må vi sande, at det var en fejl udelukkende at lade vores projektleder skrive vores afsnit. Hvis vi havde prioriteret programmørnotaterne i designdokumentet minimalt, ville det have gjort en verden til forskel. Det var heldigvis ikke dårligt humør og konflikter, der prægede produktionen, tværtimod var det god stemning og engagement, der bedst beskrev vores produktionshold. Det færdige spil var et, vi alle var glade for. I bilag C er der billeder fra spillet, der i øvrigt kan hentes fra hjemmesiden: [3]. 2.3 Praktiske forhold Formålet med dette afsnit er at videregive nogle gode råd om de praktiske forhold, der er ved en DADIU-produktion. Som programmør på et DADIUprojekt forventes det, at du supporterer og vedligeholder de maskiner, holdet arbejder på. Eller i det mindste at stå for kontakten med det personale, der har ansvaret. Der er flere ting, man bør gøre for at forberede sig på projektarbejdet: Man kan sikre sig, at der er fungerende maskiner, og at de har installeret det software produktionsholdet har brug for. Man kan se en liste 8

10 i appendiks A over noget af det software, vi gjorde brug af til vores produktion. Vi fandt det uundværligt at have et versioneringsystem. Vores valg faldt på Subversion (SVN) der stort set gnidningsfrit kan integreres i Microsoft Windows Explorer med TortoiseSVN. Det er ikke nok at programmørerne kan bruge SVN, de bliver nødt til at sætte sig nok ind i systemet til at kunne lære resten af holdet at bruge det. Der findes et par gode manualer på nettet: [16] og [7]. Husk Murphys lov! Sørg for at der dagligt bliver lavet backup af serveren med versioneringssystemet. Husk at fortælle resten af holdet at det er kun er de ting, der er committed til versioneringssystemet, der bliver taget backup af. Under forløbet brugte hele holdet en wiki til at samle alle informationer om projektet. Og vi brugte siden til at koordinere og dokumentere vores arbejdsindsats og til at oprette en vidensdatabase. Det er værktøj, der skal være oppe at køre allerede fra dag et i præproduktionen. (I vores gruppe havde spildesigneren allerede sat en wiki op til holdet.) Alle fire punkter ligger udenfor programmørernes opgaver til selve spilproduktionen, men de er kritiske og skal løses. Og programmører er dem, der er bedst kvalificerede til at løse de opgaver på et DADIU-hold. 2.4 Arbejdspladsen og roller I det forrige afsnit (2.2) skitserede vi produktionsforløbet og den flade struktur vi havde i vores gruppe. Formelt set var spildesigneren, instruktøren og projektlederen den øverste ledelse i gruppen. Så længe det gik, som det skulle, havde folk selv lov til at bestemme over, hvordan de arbejdede. Det var kun de få gange, planen var ved at skride, at folk påtog sig deres lederroller og gav deciderede ordrer. Det førte til enkelte konflikter. Nogle handlede grundlæggende om forskellig prioritering, men de overskyggede ikke den fælles vilje til at lave et færdigt og afrundet produkt. Andre bundede i kreativ uenighed, for det meste pga. miskommunikation. Den sidste type konflikter, vi vil se lidt mere på, er nogle af de tværfaglige konflikter, vi oplevede. Næsten alle de delelementer af spillet, der blev lavet, krydsede ind over programmørernes fagområde. Når de færdige ressourcer - lyd, grafik, animation, baner osv. - skulle ind i selve spillet, var det programmørerne, der for det meste lavede den sidste efterbehandling. I vores produktion var programmørerne den højeste autoritet, omkring hvad der var teknisk muligt, og hvor meget arbejde, det ville kræve. Et konkret eksempel var lydsystemet. Lyddesigneren havde skitseret et avanceret system, der bl.a. skulle kunne væsentligt mere end Sources eksisterende system. Det ville bestemt være 9

11 muligt at implementere, men vi vurderede, at det ville tage alle de programmørressourcer, vi havde, hvis ikke mere. Men så ville vi ikke have kunnet lave noget andet. Dette er også et godt eksempel på, hvor smidig vores flade stuktur var: Lyddesigneren og programmørerne tog diskussionen direkte med hinanden og fandt frem til praktisk mulige løsningsforslag. På vores hold var vi meget heldige med, at alle faggrupperne var fleksible nok til at krydse indover hinandens faggrænser. Det betød f.eks., at vores spildesigner stod for det meste af bane-implementationen, at vores lead artist selv fandt ud af de fleste tekniske krav for modeller til Source og at vores projektleder og instruktør lavede nogle af de trivielle teksturer og banedesign. Denne fleksibilitet gjorde, at alle folk hele tiden hjalp til, også selvom alle opgaverne ikke altid lå i deres ansvarsområde. De tværfaglige udfordringer var dem, der gav os allermest i DADIUforløbet, og det bør betrages som et af de vigtigste aspekter for at deltage i et sådan projekt. 2.5 Konflikter og problemer Vores hold oplevede en række problemer under selve spilproduktionen (se afsnit 2.2 og 2.4). Fra forfatternes perspektiv var vores problemer minimale i forhold til nogle af problemerne de andre DADIU-hold oplevede. I dette kapitel vil vi nævne nogle af problemerne, som andre grupper oplevede i deres produktionsforløb for at fremhæve, at det mere er reglen end undtagelsen, at der opstår problemer. De er kun medtaget for at skabe et mere alsidigt billede af, hvilke udfordringer et DADIU-forløb kan indeholde. I en enkelt gruppe var der folk i ledelsen, der faldt fra mellem præproduktionen og selve produktionen. Det kan give stor turbulens og uro i en gruppe, når der pludselig skal hyres en ny person til jobbet udefra. Der kan nemlig være forskel på motivationen til et betalt job og et uddannelsesprojekt. Der var også grupper der havde problemer med faglig fleksibilitet og kommunikation. Det er meget vigtigt, at kommunikation ikke kun går fra ledelse og ned til fodfolket. Man bliver nødt til at være villig til at lytte til hinanden og stole på hinandens faglighed, hvis der ikke skal opstå uløselige problemer. Fordomme om, at kunstnere er nogle følsomme gemytter, der ikke vil gå på kompromis med deres kunstneriske ambitioner, gik også i opfyldelse i visse grupper. Det er en balancegang mellem, hvornår man skal stå ved sine ambitioner, eller hvornår man skal kill your darlings. Designvalg, kreative og tekniske kan også vise sig at være beskæmmende for det færdige produkt. Der er ikke andet at sige til det, end 10

12 at man skal være dygtig og heldig til at træffe de rigtige valg. Det er ikke tid til ombestemme sig mange gange. Der skal sættes realistiske mål. Vores gruppe havde planlagt en minimumsløsning for alle spillets aspekter. Så blev der bygget ovenpå den plan med yderligere indhold og funktioner. På den måde var det lettere at skære fra, når ressourcerne blev knappe. Hvis man ikke følger en lignende fremgangsmåde, kan man risikere at ende med et spil, der helt mangler visse aspekter. I sidste ende afhænger meget af forløbet, og hvor mange problemer man får undervejs, af kemien mellem holdets medlemmer. Det er ikke nok, at folk er fagligt kompetente. DADIU-produktionsforløbet er meget intenst og tidskrævende, så det afhænger af, hvor heldig man er med sin gruppe. Hvis man ikke fungerer godt sammen, bliver det en meget hård opgave at komme igennem. Man skal ikke undervurdere, hvor meget det betyder for projektforløbet, at holdets deltagere lægger vægt på de sociale aspekter. 11

13 3 Hvad er Source? Source er en spilmotor udviklet af Valve Software[8]. Motoren blev udviklet til spillet Half-Life 2 og er siden blevet brugt i andre spil og til et utal af modifikationer af spillene (se afsnit 4.1). Source følger mange af de traditioner, som Quake[10] grundlagde. De har spilstilen tilfælles - første-personsskydespil. Udover det har de også en åbenhed overfor at ændre på spillet tilfælles, bl.a at ændre på reglerne eller spillets design. Source er en ekstrem skalerbar motor med mange kraftfulde komponenter som f.eks. animationssystemer, GUI, kunstig intelligens, netværkskode og fysikmotor. For at få et overblik over hvad spilmotoren Source kan, er det en meget god idé at spille Half-Life 2 igennem. Det giver et rigtig godt indblik i, hvad motorens muligheder er. Når man så ønsker at implementere noget nyt, der i større eller mindre grad ligner noget, man har set i Half-Life 2, har man muligheden for at kigge på ressourcerne (f.eks. kode, såvel som bane - se afsnit ) for at lære, hvordan det er gjort før. Valve har frigivet et SDK til Source. SDK et indeholder en delvist åben kildekode og en samling af værktøjer. En stor del af værktøjet er konverteringsværktøjer, der skal gøre det muligt at importere ressourcer til spilmotorens format. De mest interessante dele af SDK et er kildekoden og leveleditoren Hammer, der gør det muligt at ændre spillet fundamentalt. Source er en meget kraftfuld motor, men det er som tidligere nævnt ikke al kildekoden, der er frigivet i SDK et. Du får ikke lov til at lave din egen eksekverbare main-fil eller til at kigge under motorhjelmen på de grundlæggende grafik- eller fysikmotorer. Source burger den kommercielle Havok[4] pakke til simulering af fysik. Dvs. til at udregne de fysiske objekters opførsel i spilverdenen, når de kastes rundt, eller når modstanderne falder sammen som kludedukker. I resten rapporten vil vi kort komme ind på nogle af de værktøjer, vi brugte i produktionsforløbet, men hovedsageligt vil vi dykke ned i kildekoden og dennes opbygning og design. 3.1 Kilder til Source På trods af at Source ikke er en veldokumenteret spilmotor, findes der en stor brugerbase og et stort fællesskab omkring den. Der er en god chance for, at andre mennesker har forsøgt at implementere et eller andet, som man selv sidder og kæmper med. Vi brugte selv en del tid på at undersøge andre modifikationer, der allerede fandtes og var dokumenterede: [17] og [15]. Selvom det ikke nødvendigvis giver indsigt i de problemer, man selv skal løse, er det stadig meget fornuftigt at få indblik i, hvad andre har forsøgt, og lære af deres erfaringer i Source. 12

14 Valves wiki[6] var den kilde, vi brugte mest. I resten af rapporten vil vi mange gange henvise til sider i denne wiki. På trods af dens mangler er det den eneste officielle, online kilde til Source. 3.2 Klient-server-design Source er bygget efter en klient-server-model. Dette designvalg gennemsyrer hele Source og medfører, at også et single-player-spil vil have en klientog en serverdel. Dvs. at et Source spil kører en serverproces og mindst en klientproces. Det er en åbenlys fordel, hvis man skal lave et multi-player-spil, men hvis man står med et klassisk single-player-spildesign kan det være sværere at acceptere, at man skal sætte sig ind i en klient-server-arkitektur. Der er dog et par fordele ved det; helt åbentlyst er der færre omkostninger ved at få tilføjet mulighed for multi-player til sit spil senere, hvis man allerede har designet sin kode til at understøtte et klient-server-design. Derudover opfordrer det også til pænt kodedesign. Man er tvunget til at tænke sig om pga. det klare snit mellem klient og server. Det betyder dog også, man skal tænke kreativt for at gøre ting, der ikke helt passer ind i interfacet mellem klient og server. Da klient-server-kommunikation skal kunne foregå over nettet, er der visse begrænsninger på, hvad man kan sende mellem de to dele. Alene det at synkronisere de to dele er en stor udfordring. Der er en meget traditionel ansvarsfordeling i Source - det er serveren der vedligeholder den virtuelle verdens tilstand, og klienterne der gør den tilgængelig for brugerne. 3.3 Entiteter Den virtuelle verden, som Source simulerer, består af aktive og inaktive elementer. I Source bliver de aktive elementer kaldt for entiteter, og de inaktive for brushes. Fjender, venner, møbler, våben og triggers er alle sammen entiteter. Det er entiteterne, der introducerer liv i en ellers statisk verden kun bestående af ubevægelig geometri. Entiteterne kan betragtes som byggeklodserne for en interaktiv verden, og samtidig tilbyder de også en uafhængig og nem tilgang til at introducere nye funktioner i Source. Der findes tre hovedtyper af entiteter i Source: Logical Entity - En såkaldt logisk entitet. Denne type entitet har ikke nogen position i verdenen eller nogen visuel repræsentation. Praktisk set har entiteten faktisk en position, men denne er for alle intentioner og formål unødvendig. En logisk entitet eksisterer kun for at kunne modtage input, udføre en given funktion og til sidst sende output afhængig af hvad entiteten skal kunne. Et eksempel på denne slags entitet er en tæller, der tæller det antal fjender, man har nedkæmpet. 13

15 Model Entity - En entitet med en tilknyttet model som visuel repræsentation. Den kan bevæge sig igennem verden og er ofte interaktiv. Et godt eksempel på denne slags entitet er en NPC. Brush Entity - Disse entiteter er skabt fra brushes, og udgør et volumen i spilverden. Ofte bruges disse entiteter som triggers, der bliver aktiveret, når brugere bevæger sig ind i entiteten. En anden funktion ville være døre og elevatorer. Bliver en brush brugt som en entitet, går den fra at være et statisk element til et aktivt element. Omvendt kan man lave modeller om til statiske brushes. Hver af disse kan bruges til samme formål, men der vil ofte være en type, der egner sig bedre end de andre. I det udleverede SDK til Source er kildekoden til mange af entiteterne, som blev brugt til Half-Life 2, også tilgænglige. Desværre er dog ikke alle tilgænglige. F.eks. er lydentiteten evn_soundscape (omtalt i kapitel 4.8) ikke direkte at finde i den udleverede kildekode Input/Output systemet Næsten al dynamik, Source kan levere, er resultatet af, at forskellige entiteter kommunikerer sammen og reagerer på kommunikationen. Kommunikationen, der foregår iblandt entiteterne, er ofte stærkt afhængig af den verden, de befinder sig i. På grund af dette bliver kommunikationen tilrettelagt i Valves level-editor - Hammer - ved at bruge et system ved navn Input/output system, eller forkortet IO System. Alle entiteter i Source kan kommunikere vha. et antal input og output. Dvs. en entitet kan sende et output eller modtage et input fra en anden entitet. Ethvert output kan forbindes med ethvert input, hvilket tillader avanceret og kompleks interaktion mellem forskellige entiteter. Et output bliver som regel sendt afsted når en entitetstilstand ændrer sig, f.eks. hvis der bliver trykket på en knap, en dør er blevet lukket, eller et ur har talt ned. Et input sørger for en tilstandsændring ved en entitet. Når et output, som er forbundet med et andet input, sendes afsted, bliver inputtet aktiveret. Et eksempel på dette kunne være, at spilleren bevæger sig ind i et område, hvilket medfører at et output bliver sendt til en lysentitet. Områdets output var forbundet med lysets tænd -input, og dermed tændtes lyset. Teoretisk set er der ingen begrænsning på antallet af reaktioner, som man kan bygge ind i én lang kæde. Vi vil beskrive selve input/output-systemet nærmere i afsnit

16 3.4 Hammer Som tidligere nævnt er Hammer Valves egen level-editor, der følger med Sources SDK. Bemærk at definitionen level-editor ikke er bred nok til at dække alt det, som Hammer reelt kan bruges til. For at give et indblik i hvor omfattende Hammers indflydelse på et Source-baseret spil er, skal man blot se på Half-Life 2. En stor del af indholdet, der findes i Half-Life 2, er blevet sammensat eller konstrueret i Hammer. Hammer bruges til alt fra at bygge spilverdenens struktur til at definere dets indhold, funktioner og reaktioner. Man vil hurtigt finde frem til, at Hammer spiller en stor rolle i et produktionsforløb. På trods af at denne rapport dækker de mere programmelle aspekter af en produktion i Source, er Hammers involvering så stor, at den ikke kan undgås at benævnes. Dog vil vi ikke komme særlig dybt ned i Hammer, da den er godt dokumenteret i forvejen. En uddybende dokumentation til brug af Hammer i forbindelse med Source kan findes på Valves wiki[6]. 15

17 4 Arbejde i Source Formålet med dette kapitel er at dele vores erfaringer i de områder, vi har beskæftiget os med i Source. I kapitel har vi udledt nogle konkrete tips til at programmere i Source. Derefter uddyber vi de specifikke emner vi har beskæftiget os med. Som nævnt i kapitel 3.2, er Source bygget efter en klient-server-model. Størstedelen af koden, som vi skrev i forbindelse med vores spil Dolores[3], blev sat på serversiden, da spillet ikke implementerer nogen form for multiplayer. Konsekvensen er, at informationerne i denne rapport ikke nødvendigvis gælder for funktionaliteten, der skal implementeres på klientsiden af Source. Vi vil gøre læseren opmærksom de steder, hvor vi ved, der er forskel mellem implementationen på klient- og serversiden. 4.1 Partiel eller fuldstændig konvertering Inden man kaster sig ud i et så omfattende projekt som at skabe et spil i Source, er der en beslutning, man skal tage på forhånd. Enten at skabe en partiel eller en komplet konvertering af Half-Life 2. Dvs. hvor meget af Half-Life 2 man har tænkt sig at genbruge i sit eget spil. Beslutningen kan ændres undervejs, dog er det ikke helt uden omkostninger. Forskellen mellem de to er, om Sources SDK stiller alle Half-Life 2 s ressourcer til rådighed. Ved begge valgmuligheder er der fordele og ulemper. Partiel konvertering Den største fordel ved en partiel konvertering er, at alle Half-Life 2 s ressourcer står til rådighed. Hvis det er første forsøg på at skabe et spil i Source, er det helt klart denne variant, der skal vælges. Intet er mere hjælpsomt end at kunne se, hvad andre har gjort, og hvordan det fungerer. Ulempen er, at det kan virke overvældende, da Half-Life 2 har en meget stor mængde indhold i alle former. Det vil tage tid at forstå, hvordan det hele hænger sammen, og hvordan man kan bruge det til sin egen fordel. Fuldstændig konvertering Man kan også vælge kun at bygge på spilmotoren. Ulempen ved den fuldstændige konvertering er at meget skal laves fra bunden. Alle Half-Life 2 s ressourcer, dvs. lyd, grafik, mange entiteter og NPCer, kan ikke genbruges. De er naturligvis stadig til rådighed som reference, men for at spillet kan kaldes for en fuldstændig konvertering, må kun den grundlæggende spilmotor genbruges. Det er det rette valg hvis man vil lave et spil der er grundlæggende forskelligt fra Half-Life 2. 16

18 4.2 Programmering i Source At spille Half-Life 2 igennem giver et godt overblik over og samtidig indsigt i, hvad der kan lade sig gøre i Source. Men at finde ud af hvordan de forskellige spilmekanikker er implementeret, er dog ikke altid så lige til. Heldigvis er der ofte folk, der har forsøgt noget lignende før. Bl.a. denne hjemmeside [5] indeholder en masse information om diverse funktioner, der ligger skjult i Source Ungarsk notation Valve har valgt at benytte sig af ungarsk notation[12] i deres kodestil. Ungarsk notation benyttes til at hjælpe programmører med at gennemskue, hvilke egenskaber forskellige variabler har. Notationen afslører ofte, hvilken type variabel der er tale om (integer, float, double osv.), og om denne tilhører en klasse. Ydermere har Valve vedtaget den konvention, at klasser, der hører til serversiden, hedder CNavn, mens klasser, der hører til på klientsiden, hedder C_Navn. Begge konventioner anbefaler vi, at man følger for lettere at læse Valves kode Konkrete tips til programmering i Source Vejledningerne (tutorials) der ligger på Valves wiki[6] er et godt udgangspunkt for at lære at programmere i Source. Til gengæld er det svært at opnå en dybere forståelse af de enkelte objekter og funktioner ud fra disse vejledninger. Vi brugte meget energi på at gennemskue den eksisterende kode og finde de funktioner, vi havde brug for. De følgende elementer, funktioner såvel som objekter, er desværre ikke beskrevet i den udleverede dokumentation til Source. Situationerne, som elementerne kan blive benyttet i, er dog så mangfoldige, at de ikke burde undlades. Gennemgangen af de følgende elementer kan ikke betragtes som udtømmende forklaringer, da vi ikke selv har forstand på deres fulde funktionalitet. Listen skal betragtes som et vink om, hvilke vigtige elementer der ikke burde overses. gpglobals Dette objekt indholder diverse globale tilstande og informationer, så som den globale tid i spilverdenen. Vi brugte f.eks objektet til at finde det næste tidspunkt hvor forskellige entiteter skulle fortage beslutninger i spilverdenen. g peffects g_peffects bruges til at visualisere forskellige effekter indenfor spilverdenen, som f.eks. støv- eller lyseffekterne ved pistolaffyring. Et 17

19 eksempel kunne være en af fjenderne fra spillet Dolores som opvivler støv, når den kolliderer med gulvet. devmsg() Denne funktion udskriver en besked til skærmen, når spillet afvikles. Det er yderst nyttigt, når man forsøger af afprøve forskellige dele af sit program. ConVar ConVar er en makro, der gør en variabel tilgængelig fra konsollen i Source. I kapitel 4.9 vil vi uddybe brugen af konsollen. Kort sagt giver denne adgang til en stor mængde af kommandoer og informationer under spillets kørsel. Tilgang til disse variabler under spillets afvikling, gør det nemt at teste og fintune dem. 18

20 4.3 Entiteter Som tidligere nævnt findes der tre overordnede entitetstyper i Source: Logical Entity, Model Entity og Brush Entity. Praktisk set er de tre typer kun vejledende. De giver et godt overblik og hjælper med at afgøre, hvilken type entitet man har brug for. Hver især har entiteterne en klasse, de nedarver fra, der tilbyder funktionalitet specifikt for den type entitet. Logiske entiteter nedarver fra CLogicalEntity, modelentiteter fra CBaseAnimating og brush-entiteter fra CBaseToggle. I tilfælde af at den nye entitet ikke falder i en af de kategorier, som de tre typer tilbyder, er det oplagt at lade den nye entitet nedarve fra CBase- Entity. Denne klasse er absolut basis for entiteter, og det er denne klasse, som de tre typer også nedarver fra. Den reelle nedarvning ses i figur 1. Figur 1: Nedarvning af entitetsklasser i Source. For at opnå et hurtigere resultat, når man er i gang med at lave en ny entitet, er det en mulighed at omskrive en af de eksisterende Half-Life 2 entiteter. I det tilfælde er det oplagt at vælge den entitet i Half-Life 2, der på forhånd kan nogle af de ting, man ønsker. Ulempen ved at vælge en eksisterende entitet er, at koden til denne ikke umiddelbart er til at gennemskue. Derfor er det uden tvivl en fordel selv at sammenkæde en entitet fra bunden. En gennemgang af en meget enkel entitet findes i kapitel Tilstande og funktioner Formålet med dette kapitel er at skitsere nogle af de tilstande en entitet kan indtage, samt vigtige funktioner. Entiteters tilstande i Source Udover de tilstande som en entitet er programmeret til at kunne indtage, kan man betragte en entitet som havende nogle overordnede tilstande i spilverdenen: Før den bliver oprettet, mens den eksisterer, og efter den er blevet slettet. 19

Spil Rapport. Spil lavet i GameMaker. Kevin, Mads og Thor 03-02-2011

Spil Rapport. Spil lavet i GameMaker. Kevin, Mads og Thor 03-02-2011 Spil Rapport Spil lavet i GameMaker Kevin, Mads og Thor 03-02-2011 Indholdsfortegnelse Indledning... 2 HCI... 2 Planlægning / Elementær systemudvikling... 2 Kravspecifikationer... 4 Spil beskrivelse...

Læs mere

Bilag 1: Interviewguide:

Bilag 1: Interviewguide: Bilag 1: Interviewguide: Vores interview guideforskningsspørgsmål Spiller folk på ITU multiplayer, frem for singleplayer? Skaber onlinespil sociale relationer mellem folk på ITU? Interviewspørgsmål Foretrækker

Læs mere

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen Programmering C Eksamensprojekt Lavet af Suayb Köse & Nikolaj Egholk Jakobsen Indledning Analyse Læring er en svær størrelse. Der er hele tiden fokus fra politikerne på, hvordan de danske skoleelever kan

Læs mere

Projekt - Valgfrit Tema

Projekt - Valgfrit Tema Projekt - Valgfrit Tema Søren Witek & Christoffer Thor Paulsen 2012 Projektet Valgfrit Tema var et projekt hvor vi nærmest fik frie tøjler til at arbejde med hvad vi ville. Så vi satte os for at arbejde

Læs mere

Greenfoot En kort introduktion til Programmering og Objekt-Orientering

Greenfoot En kort introduktion til Programmering og Objekt-Orientering Greenfoot En kort introduktion til Programmering og Objekt-Orientering Greenfoot er et computer-program, som kan benyttes til at skrive andre computer-programmer, i et programmeringssprog kaldet Java.

Læs mere

Gruppe: 2 Hold: MulB Årgang 2013 Lærere: Merete Geldermann Lützen & Jesper Hinchely

Gruppe: 2 Hold: MulB Årgang 2013 Lærere: Merete Geldermann Lützen & Jesper Hinchely Bannerpage: http://spicegirls.creativefolder.dk/bannerpage/ Landingpage: http://spicegirls.creativefolder.dk/ René Skovgaard Andersen cph-ra73@cphbusiness.dk Stig Hamborg Nielsen cph-sn9@cphbusiness.dk

Læs mere

Michael Jokil 11-05-2012

Michael Jokil 11-05-2012 HTX, RTG Det skrå kast Informationsteknologi B Michael Jokil 11-05-2012 Indholdsfortegnelse Indledning... 3 Teori... 3 Kravspecifikationer... 4 Design... 4 Funktionalitet... 4 Brugerflade... 4 Implementering...

Læs mere

Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX

Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX IT -Eksamen Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX [Vælg en dato] Indhold Indledning... 2 Teori... 3 Hvorfor dette design... 4 Produktet... 4 Test og afprøvning... 9 Konklusion... 10 Indledning

Læs mere

IT opgave. Informationsteknologi B. Vejleder: Karl. Navn: Devran Kücükyildiz. Klasse: 2,4

IT opgave. Informationsteknologi B. Vejleder: Karl. Navn: Devran Kücükyildiz. Klasse: 2,4 IT opgave Informationsteknologi B Vejleder: Karl Navn: Devran Kücükyildiz Klasse: 2,4 Dato:03-03-2009 1 Indholdsfortegnelse 1. Indledning... 3 2. Planlægning... 3 Kommunikationsplanlægning... 3 Problemstillingen...

Læs mere

I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.

I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen. Denne guide er oprindeligt udgivet på Eksperten.dk Grundlæggende PHP I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.

Læs mere

Følgende spørgsmål omhandler den faglige del af modulet: Hvordan vurderer du planlægningen af modulet? Hvordan vurderer du modulets relevans for dig?

Følgende spørgsmål omhandler den faglige del af modulet: Hvordan vurderer du planlægningen af modulet? Hvordan vurderer du modulets relevans for dig? Følgende spørgsmål omhandler den faglige del af modulet: Hvordan vurderer du planlægningen af modulet? Hvordan vurderer du modulets relevans for dig? Hvordan vurderer du modulets faglige indhold? 1 19.06.2018/Pia

Læs mere

Introduktion. Gruppesnak. Dokumentation

Introduktion. Gruppesnak. Dokumentation Introduktion Opgaven gik ud på at lave et spil, hvor vi selv skulle stå for alt arbejdet, altså programmeringen, figurere, baggrunde og lyde. Der har været forskellige værktøjer og programmer, som vi har

Læs mere

XProtect-klienter Tilgå din overvågning

XProtect-klienter Tilgå din overvågning XProtect-klienter Tilgå din overvågning Tre måder at se videoovervågning på For at skabe nem adgang til videoovervågning tilbyder Milestone tre fleksible brugergrænseflader: XProtect Smart Client, XProtect

Læs mere

Procesbeskrivelse - Webprogrammering

Procesbeskrivelse - Webprogrammering Procesbeskrivelse - Webprogrammering Indholdsfortegnelse Forudsætninger... 1 Konceptet... 2 Hjemmesiden... 2 Server-side... 3 Filstrukturen... 3 Databasehåndtering og serverforbindelse... 4 Client-side...

Læs mere

Exceptions i Delphi. Try except

Exceptions i Delphi. Try except Exceptions i Delphi Exceptions er en teknik til at fange fejl under programafviklingen. Ikke programmeringsfejl, men fejl der opstår i forskellige situationer, f.eks. en fil der mangler en fil der er skrivebeskyttet,

Læs mere

Programmering C RTG - 3.3 09-02-2015

Programmering C RTG - 3.3 09-02-2015 Indholdsfortegnelse Formål... 2 Opgave formulering... 2 Krav til dokumentation af programmer... 3 ASCII tabel... 4 Værktøjer... 5 Versioner af ASCII tabel... 6 v1.9... 6 Problemer og mangler... 6 v2.1...

Læs mere

af Philip De Skæve Gallere Birk-Jensen

af Philip De Skæve Gallere Birk-Jensen mirc Guide af Philip De Skæve Gallere Birk-Jensen Side 1 Forord Der er mange som har problemer med at komme i gang med IRC, selvom dette er et yderst nyttigt værktøj, når man skal kommunikere. Når der

Læs mere

HTX, RTG. Rumlige Figurer. Matematik og programmering

HTX, RTG. Rumlige Figurer. Matematik og programmering HTX, RTG Rumlige Figurer Matematik og programmering Vejledere: Jørn Christian Bendtsen og Karl G. Bjarnason Morten Bo Kofoed Nielsen & Michael Jokil 10-10-2011 In this assignment we have been working with

Læs mere

AFSLUTTENDE PROJEKT KOM/IT

AFSLUTTENDE PROJEKT KOM/IT 5/5-2017 AFSLUTTENDE PROJEKT KOM/IT Daniel & Frederik Klasse 1.1 Indledning Vi startede med at få valget stillet om vi ville lave noget med e-learning, databehandling og præsentation eller vi kunne lave

Læs mere

Design dit eget computerspil med Kodu

Design dit eget computerspil med Kodu Design dit eget computerspil med Kodu I sensommeren var vi to CFU-konsulenter ude i SFO en på Borup Ris Skolens Grønbro-afdeling. Her var vi sammen med børnene for at få erfaringer i arbejdet med platformen

Læs mere

Afstande, skæringer og vinkler i rummet

Afstande, skæringer og vinkler i rummet Afstande, skæringer og vinkler i rummet Frank Nasser 9. april 20 c 2008-20. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her.

Læs mere

Undervisningsbeskrivelse

Undervisningsbeskrivelse Undervisningsbeskrivelse Stamoplysninger til brug ved prøver til gymnasiale uddannelser Termin Institution Uddannelse Fag og niveau Lærer(e) Hold Termin hvori undervisningen afsluttes: maj-juni 2013 HTX

Læs mere

SEMESTEREVALUERING MODUL 1 OG 2 EFTERÅRET Køn

SEMESTEREVALUERING MODUL 1 OG 2 EFTERÅRET Køn SEMESTEREVALUERING MODUL 1 OG 2 EFTERÅRET 2014 Køn Jeg oplevede, at der var sammenhæng mellem semesterets forskellige undervisningsmoduler (fagområder, projekter m.m.) Bemærkninger/kommentarer til Studiemiljøet

Læs mere

Undervisningsbeskrivelse

Undervisningsbeskrivelse Undervisningsbeskrivelse Stamoplysninger til brug ved prøver til gymnasiale uddannelser Termin Institution Uddannelse Fag og niveau Lærer(e) Hold Termin hvori undervisningen afsluttes: maj-juni 2013 HTX

Læs mere

Afstande, skæringer og vinkler i rummet

Afstande, skæringer og vinkler i rummet Afstande, skæringer og vinkler i rummet Frank Villa 2. maj 202 c 2008-20. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold

Læs mere

Arduino Programmering

Arduino Programmering Microcontroller, Arduino I teknologi skal vi lære at lave programmer til uc for at have muligheden til eksamen at kunne lave intelligente el-produkter. I hvert fald skal vi have set mulighederne, og forstået

Læs mere

Gentofte Skole elevers alsidige udvikling

Gentofte Skole elevers alsidige udvikling Et udviklingsprojekt på Gentofte Skole ser på, hvordan man på forskellige måder kan fremme elevers alsidige udvikling, blandt andet gennem styrkelse af elevers samarbejde i projektarbejde og gennem undervisning,

Læs mere

Komunikation/It C Helena, Katrine og Rikke

Komunikation/It C Helena, Katrine og Rikke HTX Afsluttende projekt E-learning Komunikation/It C Helena, Katrine og Rikke 1.1 01-05-2013 Systemudvikling Indledende aktiviteter Kommunikationsplanlægning for projektet, Laswells fem spørgsmål. o Hvem

Læs mere

Projekt - Visual Basic for Applications N på stribe

Projekt - Visual Basic for Applications N på stribe Projekt - Visual Basic for Applications N på stribe Mikkel Kaas og Troels Henriksen - 03x 3. november 2005 1 Introduktion Spillet tager udgangspunkt i det gamle kendte 4 på stribe, dog med den ændring,

Læs mere

Læringsprogram. Christian Hjortshøj, Bjarke Sørensen og Asger Hansen Vejleder: Karl G Bjarnason Fag: Programmering Klasse 3.4

Læringsprogram. Christian Hjortshøj, Bjarke Sørensen og Asger Hansen Vejleder: Karl G Bjarnason Fag: Programmering Klasse 3.4 Læringsprogram Christian Hjortshøj, Bjarke Sørensen og Asger Hansen Vejleder: Karl G Bjarnason Fag: Programmering Klasse 3.4 R o s k i l d e T e k n i s k e G y m n a s i u m Indholdsfortegnelse FORMÅL...

Læs mere

Hensigten har været at træne de studerende i at dele dokumenter hvor der er mulighed for inkorporering af alle former for multimodale tekster.

Hensigten har været at træne de studerende i at dele dokumenter hvor der er mulighed for inkorporering af alle former for multimodale tekster. Projekt edidaktik Forsøg med multimodal tekstproduktion På Viden Djurs er der I to klasser blevet gennemført et forsøg med anvendelse af Microsoft Office 365. Hensigten har været at træne de studerende

Læs mere

Arbejdsblad. Indhold. 27. maj 2010 A312. 1 Projektplanlægning 1. 2 Samarbejdet i gruppen 3. 3 Samarbejdet med vejlederne 5

Arbejdsblad. Indhold. 27. maj 2010 A312. 1 Projektplanlægning 1. 2 Samarbejdet i gruppen 3. 3 Samarbejdet med vejlederne 5 Arbejdsblad 27. maj 2010 A312 Indhold 1 Projektplanlægning 1 2 Samarbejdet i gruppen 3 3 Samarbejdet med vejlederne 5 1 Procesanalyse 1 Projektplanlægning I projektarbejdet har vi benyttet Google kalender

Læs mere

Introduktion til projekter

Introduktion til projekter Introduktion til projekter v. 1.0.3 Introduktion I dette materiale ser vi overordnet på, hvad projekter egentlig er, hvordan de er skruet sammen og hvilke begreber, som relaterer sig til projekter. Vi

Læs mere

ABCD- E-Learning UDVIKLING

ABCD- E-Learning UDVIKLING ABCD- E-Learning 2018 Prolearning ApS ABCD- E-Learning Når du skal udvikle e-læring bliver dine evner for alvor udfordret: Redigering af billeder, tegning af interaktive figurer, lyd- og videoredigering

Læs mere

Girls Day in Science - En national Jet

Girls Day in Science - En national Jet Girls Day in Science - En national Jet Jet Net.dk event Vejledning til Virksomheder Hvorfor denne vejledning? Denne vejledning til virksomheder indeholder ideer til, tips og eksempler på ting der tidligere

Læs mere

Jeg ville udfordre eleverne med en opgave, som ikke umiddelbar var målbar; Hvor høj er skolens flagstang?.

Jeg ville udfordre eleverne med en opgave, som ikke umiddelbar var målbar; Hvor høj er skolens flagstang?. Hvor høj er skolens flagstang? Undersøgelsesbaseret matematik 8.a på Ankermedets Skole i Skagen Marts 2012 Klassen deltog for anden gang i Fibonacci Projektet, og der var afsat ca. 8 lektioner, fordelt

Læs mere

Visualiseringsprogram

Visualiseringsprogram Visualiseringsprogram Programmering C - eksamensopgave Rami Kaddoura og Martin Schmidt Klasse: 3.4 Vejleder: Karl Bjarnason Roskilde Tekniske Gymnasium Udleveringsdato: 02-03-2012 Afleveringsdato: 11-05-12

Læs mere

Planlægning er en god idé

Planlægning er en god idé Planlægning er en god idé TÆLL3R OGSÅ! Kom godt i gang med at arbejde med det psykiske arbejdsmiljø i butikken Læs mere på www.detdumærker.dk større indsats / Dialogmetoden og Gode råd undervejs BAR Handel

Læs mere

Rollespil Projektsamarbejde Instruktioner til mødeleder

Rollespil Projektsamarbejde Instruktioner til mødeleder Instruktioner til mødeleder Introduktion Med dette rollespil træner I det lærte i lektionen Hjælp en kollega i konflikt. Der skal medvirke to personer, der skal spille henholdsvis Christian og Bente, hvor

Læs mere

Dokumentation af programmering i Python 2.75

Dokumentation af programmering i Python 2.75 Dokumentation af programmering i Python 2.75 Af: Alexander Bergendorff Jeg vil i dette dokument, dokumentere det arbejde jeg har lavet i løbet opstarts forløbet i Programmering C. Jeg vil forsøge, så vidt

Læs mere

Succeskriterier og mål for projektet

Succeskriterier og mål for projektet Page 1 of 5 Succeskriterier og mål for projektet Individuelle Lasse Bager: Min personlige målsætning med det her projekt er først og fremmest at lave et projekt at jeg og hele gruppen i sidste ende vil

Læs mere

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Kursusgang 11 Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Design af brugerflader 11.1 Samme sted Forskellige steder Sidste kursusgang Samtidigt

Læs mere

Flere ligninger med flere ukendte

Flere ligninger med flere ukendte Flere ligninger med flere ukendte Frank Villa 14. februar 2012 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her.

Læs mere

Spørgsmål og svar om inddragelse af pårørende

Spørgsmål og svar om inddragelse af pårørende Spørgsmål og svar om inddragelse af pårørende I Hej Sundhedsvæsen har vi arbejdet på at understøtte, at de pårørende inddrages i større omfang, når et familiemedlem eller en nær ven indlægges på sygehus.

Læs mere

klassetrin Vejledning til elev-nøglen.

klassetrin Vejledning til elev-nøglen. 6.- 10. klassetrin Vejledning til elev-nøglen. I denne vejledning vil du til nøglen Kollaboration finde følgende: Elev-nøgler forklaret i elevsprog. En uddybende forklaring og en vejledning til hvordan

Læs mere

Detaljering af BIM-objekter

Detaljering af BIM-objekter Detaljering af BIM-objekter BIM-objektet skal ikke være en fotorealistisk visualisering af byggematerialet - kvaliteten af de tilknyttede produktdata er vigtigere (og ofte overset). Hvilke krav stiller

Læs mere

Ugeseddel 4 1. marts - 8. marts

Ugeseddel 4 1. marts - 8. marts Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,

Læs mere

KENDER DU DEN NYE GENERATION AF HUNDEEJERE?

KENDER DU DEN NYE GENERATION AF HUNDEEJERE? KENDER DU DEN NYE GENERATION AF HUNDEEJERE? EN UNDERSØGELSE UDARBEJDET AF BOEHRINGER INGELHEIM Revision 1, 2019. Inkluderer detaljerede datasæt Value Through Innovation HUNDEEJERE ER IKKE LÆNGERE, SOM

Læs mere

Roskilde Tekniske Gymnasium. Eksamensprojekt. Programmering C niveau

Roskilde Tekniske Gymnasium. Eksamensprojekt. Programmering C niveau Roskilde Tekniske Gymnasium Eksamensprojekt Programmering C niveau Andreas Sode 09-05-2014 Indhold Eksamensprojekt Programmering C niveau... 2 Forord... 2 Indledning... 2 Problemformulering... 2 Krav til

Læs mere

It-sikkerhedstekst ST9

It-sikkerhedstekst ST9 It-sikkerhedstekst ST9 Single Sign-On og log-ud Denne tekst må kopieres i sin helhed med kildeangivelse. Dokumentnavn: ST9 Version 1 Juli 2015 Single Sign-On og log-ud Betegnelsen Single Sign-On (SSO)

Læs mere

Vejledning til Teknisk opsætning

Vejledning til Teknisk opsætning Vejledning til Teknisk opsætning v. 1.0 Adm4you, 2010. Indhold Kort om denne vejledning... 3 Generelt om easyourtime... 3 Installation af databasen... 3 Sikkerhed og rettigheder... 4 SQL Login... 4 Rettigheder

Læs mere

KOLLABORATION. Vejledning til elevnøgle, klasse

KOLLABORATION. Vejledning til elevnøgle, klasse Vejledning til elevnøgle, 6.-10. klasse I denne vejledning vil du finde følgende: Elevnøgler forklaret i elevsprog. Vejledning og uddybende forklaring til, hvordan man sammen med eleverne kan tale om,

Læs mere

Projektplan for DIKU studenterprojekter

Projektplan for DIKU studenterprojekter Projektplan for DIKU studenterprojekter Forfatter: Anders Johansen, Softwareudvikler, Det Kongelige Bibliotek 29. januar, 2007 Projektplan version 1.0 Det Kongelige Bibliotek Postboks 2149, DK-1016 København

Læs mere

1: Hvilket studium er du optaget på: 2: Hvilke af nedenstående forelæsninger har du deltaget i?

1: Hvilket studium er du optaget på: 2: Hvilke af nedenstående forelæsninger har du deltaget i? 1: Hvilket studium er du optaget på: 2: Hvilke af nedenstående forelæsninger har du deltaget i? 3: Hvis du har deltaget i mindre end halvdelen af kursusgangene bedes du venligst begrunde hvorfor har deltaget

Læs mere

Computerspil rapport. Kommunikation og IT. HTX Roskilde klasse 1.4. Casper, Mathias Nakayama, Anders, Lasse og Mads BC. Lærer - Karl Bjarnason

Computerspil rapport. Kommunikation og IT. HTX Roskilde klasse 1.4. Casper, Mathias Nakayama, Anders, Lasse og Mads BC. Lærer - Karl Bjarnason Computerspil rapport Kommunikation og IT HTX Roskilde klasse 1.4 Casper, Mathias Nakayama, Anders, Lasse og Mads BC Lærer - Karl Bjarnason Indledning Vi har lavet et computerspil i Python som er et quiz-spil

Læs mere

SmartFraming Et vindue til nationale sundhedssystemer. Version 3.0

SmartFraming Et vindue til nationale sundhedssystemer. Version 3.0 SmartFraming Et vindue til nationale sundhedssystemer Version 3.0 Infrastruktur i dagens sundheds IT Det sundhedsfaglige personale benytter sig i dag af en række forskellige systemer i forbindelse med

Læs mere

Manual til Kundekartotek

Manual til Kundekartotek 2016 Manual til Kundekartotek ShopPlanner Customers Med forklaring og eksempler på hvordan man håndterer kundeoplysninger www.obels.dk 1 Introduktion... 3 1.1 Formål... 3 1.2 Anvendelse... 3 2 Referencer...

Læs mere

Specialiseringen Rapport Lavede Af Rasmus R. Sørensen Side 1 af 6

Specialiseringen Rapport Lavede Af Rasmus R. Sørensen Side 1 af 6 Side 1 af 6 Indholdsfortegnelse INDHOLDSFORTEGNELSE 1 INTRO 3 STARTEN AF SPECIALISERINGEN 3 ANKOMST TIL SKOTLAND 4 DATABASER 5 NETVÆRK 5 INTERAKTION 5 AFSLUTNING AF SPECIALISERINGEN 5 KONKLUSION 6 Side

Læs mere

Det her får du ud af at deltage på uddannelsen: MejlhedeHalskov.dk

Det her får du ud af at deltage på uddannelsen: MejlhedeHalskov.dk Integrativ NLP Practitioner og Master Practitioner Vi tilbyder nu en unik uddannelse, som kombinerer det bedste fra en NLP Practitioner og en NLP Master Practitioner med Enneagrammet indsat i en integral

Læs mere

DM536. Rapport og debug

DM536. Rapport og debug DM536 Rapport og debug Kilder Vigtig.it (Felix Palludan Hargreaves) http://vigtig.it/dm502/howto_report.pdf http://vigtig.it/blog/teaching/#toc-relevant-tips Peter Schneider-Kamp http://imada.sdu.dk/~petersk/dm536/project2.pdf

Læs mere

Database for udviklere. Jan Lund Madsen PBS10107

Database for udviklere. Jan Lund Madsen PBS10107 Database for udviklere Jan Lund Madsen PBS10107 Indhold LINQ... 3 LINQ to SQL og Arkitektur... 3 O/R designere... 5 LINQ Den store introduktion med.net 3.5 er uden tvivl LINQ(udtales link): Language-INtegrated

Læs mere

Andengradsligninger. Frank Nasser. 12. april 2011

Andengradsligninger. Frank Nasser. 12. april 2011 Andengradsligninger Frank Nasser 12. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk: Dette

Læs mere

Projektarbejde med scrum- metoden

Projektarbejde med scrum- metoden Projektarbejde med scrum- metoden Indhold Indhold... 1 1 Indledning... 2 2 Roller og terminologi i scrum... 3 Opgavestilleren... 3 Scrum Masteren... 3 Projektgruppen... 3 Sprint... 3 3 Møder... 3 Planlægningsmødet...

Læs mere

EVALUERING AF BOLIGSOCIALE AKTIVITETER

EVALUERING AF BOLIGSOCIALE AKTIVITETER Guide EVALUERING AF BOLIGSOCIALE AKTIVITETER Det er rart at vide, om en aktivitet virker. Derfor følger der ofte et ønske om evaluering med, når I iværksætter nye aktiviteter. Denne guide er en hjælp til

Læs mere

Indholdsfortegnelse Valg af opgave... 2 Introduktion... 2 Problem... 2 Målgruppe... 2 Afsender... 2 Budskab... 2 Kodning... 3 Effekt...

Indholdsfortegnelse Valg af opgave... 2 Introduktion... 2 Problem... 2 Målgruppe... 2 Afsender... 2 Budskab... 2 Kodning... 3 Effekt... Indholdsfortegnelse Valg af opgave... 2 Introduktion... 2 Problem... 2 Målgruppe... 2 Afsender... 2 Budskab... 2 Kodning... 3 Effekt... 3 Information... 3 Programmering... 3 Design... 4 Brochure... 4 Hjemmeside...

Læs mere

Computerens Anatomi. Kom/IT C - Computer Anatomi - Daniel og Fie - 3/3 2015. Planlægning af kommunikationsvalg og medieprodukt.

Computerens Anatomi. Kom/IT C - Computer Anatomi - Daniel og Fie - 3/3 2015. Planlægning af kommunikationsvalg og medieprodukt. Computerens Anatomi Planlægning af kommunikationsvalg og medieprodukt. Vi startede med at snakke om modtager, afsender og budskab og blev enige om at det skulle være simpelt for at få modtagernes interesse.

Læs mere

Når man skal udfylde i feltet: branche, kan det være relevant, at se valgmulighederne lidt igennem for at finde den mest passende.

Når man skal udfylde i feltet: branche, kan det være relevant, at se valgmulighederne lidt igennem for at finde den mest passende. Sådan opretter du en LinkedIn profil: - Først starter man med at klikke ind på LinkedIn.com På forsiden ser man en boks til højre på skærmen. Her har man mulighed for at oprette sin profil ved hjælp af

Læs mere

5/11/2015. Programmering. Hussein Al-Saidi ROSKILDE TEKNINSK GYMNASIE VEJLEDER: CHRISTOFFER S.

5/11/2015. Programmering. Hussein Al-Saidi ROSKILDE TEKNINSK GYMNASIE VEJLEDER: CHRISTOFFER S. 5/11/2015 Hussein Al-Saidi ROSKILDE TEKNINSK GYMNASIE VEJLEDER: CHRISTOFFER S. 1 Contents... 0 Indledning... 3 Analyse... 3 Problemformulering... 3 Målgruppe... 3 Løsningsforslag... 3 Detaljeret beskrivelse

Læs mere

Løsning af simple Ligninger

Løsning af simple Ligninger Løsning af simple Ligninger Frank Nasser 19. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk:

Læs mere

Mark Jeays simple solution to the Rubik s cube oversat og redigeret af Jess Bonde. -

Mark Jeays simple solution to the Rubik s cube oversat og redigeret af Jess Bonde. - Mark Jeays simple solution to the Rubik s cube oversat og redigeret af Jess Bonde. jess@rubiks.dk - http://www.rubiks.dk Trin 0 Introduktion & notation Trin 1 De tre øverste sidestykker Trin 2 Hjørner

Læs mere

Microcontroller, Arduino

Microcontroller, Arduino Microcontroller, Arduino Programmerbar elektronik. uc Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Forstå princippet i programmering af en uc og se mulighederne. Programmeringen

Læs mere

Hvordan håndteres. den svære samtale. i mindre virksomheder?

Hvordan håndteres. den svære samtale. i mindre virksomheder? Hvordan håndteres den svære samtale i mindre virksomheder? 1. Den svære samtale 2. Forberedelse til samtalen 3. Afholdelse af selve samtalen 4. Skabelon til afholdelse af samtalen 5. Opfølgning på samtalen

Læs mere

Kundetilfredshedsundersøgelse Oktober 2015

Kundetilfredshedsundersøgelse Oktober 2015 Kundetilfredshedsundersøgelse Oktober 2015 Introduktion Den 18. september fik alle kunder tilsendt en e-mail med et link til en kundetilfredshedsundersøgelse. 28 % valgte at besvare spørgsmålene, og der

Læs mere

Andengradsligninger. Frank Nasser. 11. juli 2011

Andengradsligninger. Frank Nasser. 11. juli 2011 Andengradsligninger Frank Nasser 11. juli 2011 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

INDHOLDSFORTEGNELSE. INDLEDNING... 7 Kristian Langborg-Hansen. KAPITEL ET... 9 I gang med App Inventor. KAPITEL TO...

INDHOLDSFORTEGNELSE. INDLEDNING... 7 Kristian Langborg-Hansen. KAPITEL ET... 9 I gang med App Inventor. KAPITEL TO... INDHOLDSFORTEGNELSE INDLEDNING... 7 Kristian Langborg-Hansen KAPITEL ET... 9 I gang med App Inventor Installation af App Inventor... 10 Trådløs installation... 11 Installation af emulator (Windows)...

Læs mere

Spil og svar. Journal nr. 13.12.599. Et webbaseret værktøj udviklet af Programdatateket i Skive

Spil og svar. Journal nr. 13.12.599. Et webbaseret værktøj udviklet af Programdatateket i Skive Journal nr. 13.12.599 Spil og svar Et webbaseret værktøj udviklet af Programdatateket i Skive E-mail: programdatateket@viauc.dk Web: http://www.programdatateket.dk Kolofon HVAL-vejledning Spil og svar

Læs mere

LEVERANCE 1.3. Model for kvalitetssikring

LEVERANCE 1.3. Model for kvalitetssikring LEVERANCE 1.3 Model for kvalitetssikring Udarbejdelse af kvalitetssikringsmodel, krav til open source kode og dokumentation og godkendelsesprocedurer m.v. Samt fokus på understøttelse af CE-mærkning. 1

Læs mere

RETNINGSLINIER FOR KAMPE SPILLET UDEN DOMMER - opdateret d. 15. marts 2010

RETNINGSLINIER FOR KAMPE SPILLET UDEN DOMMER - opdateret d. 15. marts 2010 RETNINGSLINIER FOR KAMPE SPILLET UDEN DOMMER - opdateret d. 15. marts 2010 Generelle retningslinjer for Referees/referee assistenten der virker ved turneringer hvor der spilles kampe spillet uden dommer:

Læs mere

Lavet af Danni jensen og David Olsen

Lavet af Danni jensen og David Olsen Projekt Delfin Lavet af Danni jensen og David Olsen 19/5-2008 Indholdsfortegnelse. Side 1: Indholdsfortegnelse og forord. Side 2: Kravsliste. Side 3: Use Case Model. Side 4: Formandens aktørbeskrivelse

Læs mere

Undervisningsbeskrivelse

Undervisningsbeskrivelse Undervisningsbeskrivelse Programmering C ved mst Termin Juni 117 Institution Uddannelse Fag og niveau Lærer Hold Erhvervsskolerne Aars hhx Programmering C Michael Stenner (mst) 2-3g16 pro Forløbsoversigt

Læs mere

Harald Michalsen og Lasse Storr-Hansen

Harald Michalsen og Lasse Storr-Hansen 1 af 9 02MAJ2007 03MAJ2007 06MAJ2007 14MAJ2007 Rettet en fejl i installationsprogrammet. Ny installationer kunne ikke køre igennem og stoppede halvvejs. Rettelsen blev lagt på nettet klokken 16:40 mandag

Læs mere

Afsluttende Projekt - Kom/IT

Afsluttende Projekt - Kom/IT 1 Afsluttende Projekt - Kom/IT Rasmus H. Plaep 1 Billedkilde: http://blog.snelling.com/files/2015/01/business-107.jpg Indhold... 0 Indledning... 2 Problemafgrænsning... 2 Problemformulering... 2 Teori...

Læs mere

Indledning...1 Hvad er en konflikt?...1 I institutionen...1 Definition af konflikt:...2 Hvem har konflikter...2 Konfliktløsning...

Indledning...1 Hvad er en konflikt?...1 I institutionen...1 Definition af konflikt:...2 Hvem har konflikter...2 Konfliktløsning... Indledning...1 Hvad er en konflikt?...1 I institutionen...1 Definition af konflikt:...2 Hvem har konflikter...2 Konfliktløsning...3 Hanne Lind s køreplan...3 I Praksis...5 Konklusion...7 Indledning Konflikter

Læs mere

Manual til Groupcare: Indhold, formål og brug

Manual til Groupcare: Indhold, formål og brug Manual til Groupcare: Indhold, formål og brug Indledning Groupcare er en elektronisk, internetbaseret kommunikationsform som vi bruger i forbindelse med din DOL-uddannelse. Grundlæggende set er Groupcare

Læs mere

Analysen er din, og skal kun bruges til, at du kan tænke over, hvordan du oplever dig selv som leder.

Analysen er din, og skal kun bruges til, at du kan tænke over, hvordan du oplever dig selv som leder. Ledelsesstilanalyse Dette er en analyse af den måde du leder på, med fokus på at lede mennesker. Det er vigtigt for din selvindsigt, at du er så ærlig som overhovedet mulig overfor dig selv når du svarer.

Læs mere

Funktionsterminologi

Funktionsterminologi Funktionsterminologi Frank Nasser 12. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk: Dette

Læs mere

ALGORITMER OG DATA SOM BAGGRUND FOR FORUDSIGELSER 8. KLASSE. Udfordring

ALGORITMER OG DATA SOM BAGGRUND FOR FORUDSIGELSER 8. KLASSE. Udfordring ALGORITMER OG DATA SOM BAGGRUND FOR FORUDSIGELSER 8. KLASSE Udfordring INDHOLDSFORTEGNELSE 1. Forløbsbeskrivelse... 3 1.1 Overordnet beskrivelse tre sammenhængende forløb... 3 1.2 Resume... 5 1.3 Rammer

Læs mere

N: Jeg hedder Nina og jeg er 13 år gammel. Jeg har været frivillig et år.

N: Jeg hedder Nina og jeg er 13 år gammel. Jeg har været frivillig et år. Interview Fokusgruppe med instruktører i alderen - år 0 0 0 0 Introduktionsrunde: I: Vil I starte med at præsentere jer i forhold til hvad I hedder, hvor gamle I er og hvor lang tid I har været frivillige

Læs mere

Medarbejder- udviklingssamtaler - MUS

Medarbejder- udviklingssamtaler - MUS fremtiden starter her... Gode råd om... Medarbejder- udviklingssamtaler - MUS INDHOLD Hvad er MUS 3 Fordele ved at holde MUS 4 De fire trin 5 Forberedelse 6 Gennemførelse 7 Opfølgning 10 Evaluering 10

Læs mere

Spørgeskemaer i SkoleIntra

Spørgeskemaer i SkoleIntra Spørgeskemaer i SkoleIntra Brug det indbyggede værktøj, når du vil vide mere! Version: August 2012 Indholdsfortegnelse Spørgeskema kun for skoler med ElevIntra!...4 Spørgeskemaer i SkoleIntra...4 Hvor

Læs mere

Fang Prikkerne. Introduktion. Scratch

Fang Prikkerne. Introduktion. Scratch Scratch 2 Fang Prikkerne All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/ccwreg to register your club. Introduktion

Læs mere

Projektarbejde. AFL Institutmøde den 6.10.2005 Pernille Kræmmergaard Forskningsgruppen i Informatik

Projektarbejde. AFL Institutmøde den 6.10.2005 Pernille Kræmmergaard Forskningsgruppen i Informatik Projektarbejde AFL Institutmøde den 6.10.2005 Pernille Kræmmergaard Forskningsgruppen i Informatik Ønske for dagen Jeg håber, at i får et indblik i: Hvad studieprojekter er for noget Hvordan projektarbejdet

Læs mere

Museu de Aveiro. af Jeffrey Lai. Februar-April 2010 Praktikophold i Aveiro

Museu de Aveiro. af Jeffrey Lai. Februar-April 2010 Praktikophold i Aveiro Museu de Aveiro af Jeffrey Lai Februar-April 2010 Praktikophold i Aveiro 1 Formålet med mit praktikophold i Aveiro var at lave det lokale museum i 3D, således at man kunne begive sig rundt i museet i den

Læs mere

SOCIAL KAPITAL SAMARBEJDE SKABER RESULTATER TÆLL3R OGSÅ! OM PSYKISK ARBEJDSMILJØ I DETAILHANDLEN LEDER/ARBEJDSGIVER

SOCIAL KAPITAL SAMARBEJDE SKABER RESULTATER TÆLL3R OGSÅ! OM PSYKISK ARBEJDSMILJØ I DETAILHANDLEN LEDER/ARBEJDSGIVER OM PSYKISK ARBEJDSMILJØ I DETAILHANDLEN Læs mere på www.detdumærker.dk TÆLL3R OGSÅ! LEDER/ARBEJDSGIVER SOCIAL KAPITAL SAMARBEJDE SKABER RESULTATER Årets store udsalg skal forberedes, men da medarbejderne

Læs mere

Bliv opdaget på Internettet! - 10 gode råd til at optimere din hjemmeside til søgemaskiner

Bliv opdaget på Internettet! - 10 gode råd til at optimere din hjemmeside til søgemaskiner Bliv opdaget på Internettet! - 10 gode råd til at optimere din hjemmeside til søgemaskiner Af Henrik Bro og Martin T. Hansen I har måske allerede en flot, og informativ hjemmeside. Og alle jeres kursister

Læs mere

Vurder samtalens kvalitet på følgende punkter på en skala fra 1-5, hvor 1 betyder i lav grad og 5 betyder i høj grad.

Vurder samtalens kvalitet på følgende punkter på en skala fra 1-5, hvor 1 betyder i lav grad og 5 betyder i høj grad. Vurder samtalens kvalitet på følgende punkter på en skala fra 1-5, hvor 1 betyder i lav grad og 5 betyder i høj grad. Samtalens rammer og indhold I hvor stor grad fik du afklaret samtalens rammer (formål,

Læs mere

Microcontroller, Arduino

Microcontroller, Arduino Microcontroller, Arduino Kompendium til Arduino-programmering i Teknologi. Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Vi skal forstå princippet i programmering af en uc og se

Læs mere