Generiek Template/Gui voor een interactieve quiz voor het iDTV Platform

Project aangeboden door Tim Bogaert voor het behalen van de graad van Bachelor in de Multimedia en Communicatie Technologie Academiejaar 2004-2005

1. Voorwoord
Aan het einde van mijn studie Multimedia & Communicatie Technologie gekomen restte mij alleen nog de stage. Voor deze stage was ik op zoek naar iets nieuws en uitdagends en heb dit dan ook gevonden. 3 maanden ging ik werken bij de VRT in Brussel op het iDTV kenniscentrum. Op het stage aanzoek waren de vereisten Java en XML, wat me zeker boeide. Dan kwam hier nog MHP bij. Deze specificatie (geschreven in Java) wordt enkel gebruikt bij Interactieve Digitale Televisie en ik zag er reeds naar uit om dit te bestuderen en toe te passen. Tijdens deze uitdagende stage heb ik enorm veel bijgeleerd over het hoe en wat van iDTV. Ook het traject dat je moet afleggen om aan een project te werken dat vanaf het begin moet worden aangemaakt is iets dat heel wat meer inhoudt dan ik oorspronkelijk dacht. Dankzij mijn stagebegeleider Dhr. Rousseaux en zijn collega Dhr. Van Aert heb ik enorm veel bijgeleerd. Bedankt aan alle mensen die mij steeds hebben gesteund tijdens deze stage. Tim Bogaert

1

2. Index
1. Voorwoord .............................................................................................................................. 1 2. Index ..................................................................................................................................... 2 3. Inleiding ................................................................................................................................. 4 3.1 Opdracht........................................................................................................................... 4 3.2 Contact informatie ............................................................................................................. 5 Student .............................................................................................................................. 5 Begeleider .......................................................................................................................... 5 Verantwoordelijke................................................................................................................ 5 3.3. Organigram...................................................................................................................... 6 4. Analyse................................................................................................................................... 7 4.1 Inhoud.............................................................................................................................. 7 4.2 Wat nog? .......................................................................................................................... 7 Afstandsbedieningstest ........................................................................................................ 7 Achtergronden .................................................................................................................... 7 5. Structuur Applicatie ................................................................................................................. 8 5.1 MHP ................................................................................................................................. 8 5.2 UML Schema ..................................................................................................................... 8 5.3 De start van de Structuur Manager...................................................................................... 8 5.4 Dagverslag ........................................................................................................................ 8 Maandag 11 april................................................................................................................. 8 Dinsdag 12 april ................................................................................................................ 10 Woensdag 13 april............................................................................................................. 10 Donderdag 14 april ............................................................................................................ 11 Vrijdag 15 april.................................................................................................................. 11 Maandag 18 april............................................................................................................... 12 Dinsdag 19 april ................................................................................................................ 13 Woensdag 20 april............................................................................................................. 13 Donderdag 21 april ............................................................................................................ 14 Vrijdag 22 april.................................................................................................................. 14 6. Content Manager................................................................................................................... 15 6.1 Introductie ...................................................................................................................... 15 6.2 dagverslag ...................................................................................................................... 15 Maandag 25 april............................................................................................................... 15 Dinsdag 26 april ................................................................................................................ 15 Woensdag 27 april............................................................................................................. 16 Donderdag 28 april ............................................................................................................ 16 Vrijdag 29 april.................................................................................................................. 16 Maandag 2 mei 2005 ......................................................................................................... 16 Dinsdag 3 mei ................................................................................................................... 17 Woensdag 4 mei ............................................................................................................... 17 7. Xlets en MHP......................................................................................................................... 18 7.1 Intro............................................................................................................................... 18 7.2 Wat is MHP?.................................................................................................................... 18 7.3 Dagverslag ...................................................................................................................... 18 Maandag 9 mei ................................................................................................................. 18 Dinsdag 10 mei ................................................................................................................. 19 Woensdag 11 mei.............................................................................................................. 19 Donderdag 12 mei ............................................................................................................. 20 Vrijdag 13 mei................................................................................................................... 21 Dinsdag 17 mei ................................................................................................................. 22 Woensdag 18 mei.............................................................................................................. 22

2

Donderdag 19 mei ............................................................................................................. 23 Vrijdag 20 mei................................................................................................................... 24 Weekend 20 en 21 mei ...................................................................................................... 24 8. Settopbox ............................................................................................................................. 25 8.1. Intro.............................................................................................................................. 25 8.2. Dagverslag ..................................................................................................................... 25 Maandag 23 mei................................................................................................................ 25 Dinsdag 24 mei ................................................................................................................. 27 Woensdag 25 mei.............................................................................................................. 28 Donderdag 26 mei ............................................................................................................. 29 Vrijdag 27 mei................................................................................................................... 30 9. Appendix UML Schema’s en opbouw applicaties ....................................................................... 32 9.1 Structuur Applicatie.......................................................................................................... 32 UML Schema ..................................................................................................................... 32 Opbouw............................................................................................................................ 32 9.2 Content........................................................................................................................... 33 UML Schema ..................................................................................................................... 33 Opbouw............................................................................................................................ 33 9.3 Platform Convertor........................................................................................................... 34 9.4 Xlet ................................................................................................................................ 34 10. Appendix – MHP Emulators................................................................................................... 35 10.1 XletView........................................................................................................................ 35 10.2 IRT ............................................................................................................................... 36 11. Appendix – MILO StreamEvents ............................................................................................ 37 11.1. Intro ............................................................................................................................ 37 11.2. Aanmaken Applicatie ..................................................................................................... 37 11.3 . Toevoegen van Event Object ........................................................................................ 38 11.4 Event Object name aanpassen ....................................................................................... 38 11.5 Aanmaken van een stream Event .................................................................................... 39 11.6 Do it now Event ............................................................................................................. 39 11.7 Events toevoegen aan de applicatie ................................................................................. 40 11.8 Controle van de Stream Events ....................................................................................... 40 11.9 Do-It Now Events afvuren............................................................................................... 41 11.10 Controle in de settopbox logs ........................................................................................ 41 12. Appendix – Planning laatste 2 weken..................................................................................... 42 13. Appendix – Analyse.............................................................................................................. 43 13.1 Algemeen...................................................................................................................... 43 13.2 Probleem....................................................................................................................... 43 13.3 Oplossing ...................................................................................................................... 43 13.4 Overzicht....................................................................................................................... 44 13.5 Overzicht Talen.............................................................................................................. 45 13.6 Analyse ......................................................................................................................... 45 13.6.1 Wat bevat een quiz nu eigenlijk? .............................................................................. 45 13.6.2 Dieper ingaan op een quiz........................................................................................ 45 13.7 Verwoording van de functionaliteiten ............................................................................... 49 13.7.1 Algemene structuur ................................................................................................. 49 13.8 Analyse – Quizzen .......................................................................................................... 51 Algemeen ......................................................................................................................... 51 Kenmerken ....................................................................................................................... 51 Problemen bij interactiviteit ................................................................................................ 54

3

3. Inleiding
3.1 Opdracht

Toen ik aankwam kreeg ik een duidelijke opdracht. Ik zou 3 applicaties moeten maken die samen als doel het tot stand brengen van een interactieve quiz voor het iDTV platform zouden hebben. De eerste 2 applicaties zouden de structuur en de content van de quiz moeten kunnen veranderen. De 3e zou een module zijn die deze informatie converteert naar iDTV. De uitdaging om een applicatie te maken die een heel groot deel van de bestaande en ook nieuwe quizzen zou kunnen maken is enorm groot en niemand wist of dit wel mogelijk was. Daarom zou eerst een grote analyse gedaan worden. Indien het na deze analyse mogelijk bleek zou het project groen licht krijgen en gemaakt worden. Wat moest elke applicatie precies bevatten: • Structuur Manager o Hier moest je de algemene quiz kunnen vormgeven. o De algemene gegevens van de quiz o Hoeveel rondes zijn er, welke timers worden gebruikt,... o Hoe ziet de quiz er visueel uit • Content Manager o Wat zijn de vragen o Wat zijn de antwoorden o In welk vak wordt de tekst getoond op het scherm o Welke hints zijn er, welk extra beeldmateriaal Metadata o Hier wordt alle informatie opgeslagen die door de structuur en content manager zijn aangemaakt. Module iDTV o Applicatie die de metadata converteert naar een MHP Applicatie. Deze kan dan naar de settopbox gestuurd worden

Een uitgebreidere projectomschrijving kan je vinden in appendix 13 - Analyse

4

3.2 Contact informatie

Student Tim Bogaert Vuurkruisenstraat 29 9240 Zele Tel: 052/44.71.96 Gsm: 0473/33.92.62 E-mail: tim.bogaert@howest.be Begeleider Koen Samyn E-mail: Koen.Samyn@howest.be Verantwoordelijke Sven Rousseaux E-mail: Sven.Rousseaux@vrt.be

5

3.3. Organigram
Gedelegeerd bestuurder Tony Mary

Financiën Willy Wijnants

Televisie Aimé Van Hecke

Radio Frans Leven

S,T en I Harry Sorgeloos

HR & FM Hugo De Vreese

Operationele Activiteiten Jan Cuypers

Beleidsondersteuing Marketing Canvas/ Ketnet Eén

Ontwerp en Ontwikkeling

iDTV Sven Rousseaux Jeroen Van Aert Stage: Tim Bogaert

6

4. Analyse
4.1 Inhoud

De bedoeling was om in een periode van 3 weken alle quizzen die beschikbaar waren op de kabel te analyseren. Wat zijn de hoofdkenmerken van een quiz, uit welke timers bestaat deze, hoe zit het antwoordensysteem in elkaar, hoe zit het met de extra’s, is een vraag steeds zichtbaar, is er geluid en video bij de vraag, hoe wordt er een antwoord gekozen, ... Na 3 weken was er een resultaat van 27 bestudeerde quizzen. In dit resultaat kun je zien welke de hoofdkenmerken zijn van elke quiz. Elk kenmerk is opgedeeld in een categorie en er is bekeken of dit frequent voorkomt of heel zelden. Daarna is er een selectie gemaakt van wat er geïmplementeerd zou worden en wat niet. Uit deze analyse werd dan een UML Schema gemaakt van de ‘Structuur’ en de ‘content’ applicatie en wat dit als resultaat zou geven als metadata zodat er modules kunnen geschreven worden die dit omzetten naar een platform. De uiteindelijke versie vind je in Appendix 13 - Analyse
4.2 Wat nog?

Naast deze analyse heb ik nog twee kleinere projecten gemaakt. Afstandsbedieningstest Jeroen gaf me de opdracht om zoveel mogelijk afstandsbedieningen te testen met een infra-rood ontvanger op de computer. Zo kon hij zien welke afstandsbediening het beste en duidelijkste signaal doorgaf. Voor deze opdracht ben ik met mijn laptop en een infra-rood ontvanger langs mijn familie rondgeweest en steeds hun televisiebakjes getest en de resultaten uitgetypt.

Achtergronden Jeroen was op dit moment bezig met een iDTV testproject voor VRT Nieuws. Ze zochten hiervoor een goede achtergrond en ik heb toen een 8-tal testexemplaren gemaakt.

7

5. Structuur Applicatie
5.1 MHP

In de paasvakantie ben ik de laatste vrijdag (8 april) naar het werk gekomen omdat er dan een paar powerpoints van MHP werden getoond. Deze taal wordt gebruikt voor applicaties die op een settopbox werken en ik zou deze nodig hebben voor de iDTV Module te maken. Over MHP bestaat er een interessante website waarop een paar tutorials en code voorbeelden staan: http://www.mhp-interactive.org Op deze dag heb ik ook xletView gedownload, samen met de MHP Stubs. xletView is een opensource project dat MHP xlets kan draaien. Het grote voordeel is dat dit een gratis programma is, maar er zijn wel enkele nadelen. XletView heeft maar een partiële implementatie. Dus wanneer xletView een foutmelding geeft kan het toch zijn dat dit werkt op een settopbox en omgekeerd. De MHP Stubs is een jar file die alle interfaces bevat. Deze kan je gebruiken bij het compilen van een xlet. (xlet = MHP Applicatie).
5.2 UML Schema

Maandag 11 april is de finale versie van het UML Schema afgewerkt. Hierin werd de structuur en content beschreven. Daarna is het groen licht gegeven voor het programmatie werk.
5.3 De start van de Structuur Manager

Op 11 april ben ik begonnen met de ‘Structuur Manager’. Deze zal bestaan uit verschillende tabbladen met daarin de verschillende opties voor de structuur. Er werd me duidelijk gemaakt dat dit zo dynamisch mogelijk moest opgebouwd worden. De bedoeling is dat er enorm veel keuzemogelijkheden moeten zijn en de applicatie moest eenvoudig uitgebreid worden. Ik mocht zelf kiezen in welke taal ik alle applicaties schreef en heb dus maar gekozen voor c#.
5.4 Dagverslag

Maandag 11 april Het algemene tabblad werd afgewerkt met de volgende opties. • Naam van de quiz o Hoe ga je de quiz noemen.

8

Formaat o Eerst had ik de keuze gegeven tussen slechts 2 formaten, namelijk PAL en NTSC. Mijn stagebegeleider maakte me hierop attent dat de quiz later eventueel op nog andere formaten zou komen (zoals HDTV) en daarom heb ik ervoor gezorgd dat je formaten kan toevoegen of verwijderen. Deze worden opgeslagen in een xml file in de applicatie. Achtergrond o Bij iDTV bestaat je TV uit 3 lagen. Namelijk de achtergrondlaag, de videolaag en de graphics laag. De graphics laag is by default transparant. Wanneer je wil dat je videolaag niet gezien wordt kan je dit resizen naar 0,0. De achtergrond laag bevat ofwel een iFrame of een egaal kleur, maar die egale kleur blijkt niet volledig te werken op de settopbox die wij gebruiken. Ratio o De standaard 4:3 en 16:9 is een belangrijke keuze. Bij 4:3 en 16:9 heb je namelijk non-square pixels. Op een computerscherm heb je square pixels. Vanaf photoshop cs kan je dit simuleren en zo de juiste verhoudingen tekenen. Een cirkel wordt dan gezien als een cirkel en niet als een ei-vorm. Startbedrag o Bij vele quizzen is er reeds een startbedrag aanwezig. Dit kun je hier invullen. Natuurlijk is er een controle op de numerische waarde van de textbox. Wel opmerkelijk is dat de isNumeric die je in vb.net terugvindt niet hebt bij c#. Heb deze dan maar zelf geschreven (werkt met regex).

Problemen: Er was een probleem met het tweemaal inladen van een XML document omdat ik op 2 verschillende forms werkte. Heb het XML Document dan statisch gemaakt zodat ik het maar 1 maal diende aan te roepen. Vroeg me af hoe de layerstructuur zou werken in visual studio.net. Wist niet of de z-layer te bepalen was zoals je in css had. Of werd dit bepaald door welk object je eerst plaatste. Dit zou ik morgen onderzoeken. Mijn stagebegeleider Mr. Rousseaux vertelde me dat ik het mocht proberen om dit te programmeren. Na deze grondige analyse is het nog steeds mogelijk dat dit een ‘nogo’ project wordt, maar het is het proberen waard. Er is me ook verteld geweest na de programmatie een gespecialiseerd iemand in quizzen te laten komen om de applicatie te testen en eventueel hierop een nieuwe quiz te maken.

9

Dinsdag 12 april Vandaag het schermentabblad voor mijn rekening genomen. Welke schermen zijn er, waar komen ze voor, in welke volgorde? Deze schermen worden volledig dynamisch ingeladen uit de instellingen xml. Voor elke user control is er de mogelijkheid om een image in te laden en deze op het tv scherm te toveren. Je kan meteen zien waar precies de image wordt getoond aan de hand van een panel die automatisch picture boxen inlaadt. De z-index kan veranderd worden door ze onzichtbaar en terug zichtbaar te maken. Heb het ook mogelijk gemaakt de images te resizen in design time. Hierdoor krijg je een perfect beeld van hoe het resultaat er gaat uitzien. Vandaag ook een sleutel van het lokaal gekregen aangezien beide collega’s naar een meeting waren. Problemen: Had heel wat problemen met de user controls wanneer het formaat aangepast werd. Dan veranderde de hoogte en breedte van het panel en klopte de image grootte en positie niet meer. Dit is opgelost door het formaat te locken na bevestiging van het algemene tabblad. Het idee van in tabs te werken is gebleven ook al worden bepaalde tabs gelocked vanwege de mogelijkheid om wel nog de data te zien, maar niet meer te veranderen. Je kan eventueel cancellen. Dan hebben de volgende tabs hun informatie wel verloren, vanwege de onstabiliteit van de formaten. Woensdag 13 april Afwerking van de schermen. Na een controle van mijn stagebegeleider kwam hij tot de volgende conclusies. De background layer moest hernoemd worden aangezien je anders kon denken dat het de background layer was en niet de background net boven de video layer. Een kleine presentatie gekregen over de precieze werking van de verschillende lagen in MHP. (namelijk background, video en graphics) De integratie van safe margins. Elke televisie snijdt een bepaald deel van het video gedeelte weg. Hetgene waar men een grote zekerheid van weergave bij heeft noemt men de veilige zone. Deze zone wordt weergegeven door safe margins. Dit houdt in dat er een bepaald percentage links, rechts, onder en boven kan worden weggesneden. Gemiddeld is dat ongeveer 5% van alle zijden. Maar ik moest ervoor zorgen dat je dit percentage aantal kon aanpassen. Problemen: C# componenten en transparantie zijn elkaar niet gezind. Wanneer je namelijk transparantie aanzet op een control gaat deze de achtergrond nemen van de control waarin hij geladen is en niet de achtergrond van de control die er meteen achter staat. Als je dus met vele controls werkt geeft dit vreemde effecten. Een safe margin die getekend was op een panel met daarin een 10

image en waarboven je dan een picturebox zette met transparantie had als gevolg dat enkel de background van de panel en de margins die op die panel getekend waren verdwenen. Heb dit eerst zo gelaten. Donderdag 14 april Categorieën tabblad aangemaakt. Hier kunnen categorieën aangemaakt worden voor de bepaalde vragen. (Bijvoorbeeld een makkelijke en een moeilijke vraag) Een categorie kan toegevoegd worden, bewerkt en verwijderd. Dit is uniek voor elke quiz dus er is geen standaard categorie die geladen wordt. De categorieën zorgen voor de puntentelling. Rondes tabblad aangemaakt. Hierin kan je dynamisch rondes toevoegen en verwijderen. Deze worden één per één toegevoegd of verwijderd. Samen met elke user control van de ronde wordt er tegelijk ook een user control aangemaakt voor de Timer. Wanneer je een ronde control verandert wordt de timer usercontrol meteen veranderd met behulp van Events. Elke keer de timer wijzigt wordt er een event afgevuurd vanuit de ronde en wordt dit opgevangen door het hoofdform. Deze form zorgt er dan voor dat de user control vervangen wordt. Problemen: Een vreemde situatie die ik voorhad is wanneer je een dynamische user control toevoegt terwijl je reeds op een scrollable panel gescrolled hebt dat hij niet de top en left van de user control, maar van de zichtbare panel neemt. Heel wat opzoekingswerk wanneer je dit niet weet. Je kan dit eenvoudig corrigeren met autoscrollPosition.X en .Y. Eerst had ik bij het toevoegen of verwijderen een volledige refresh van de user controls in dat panel. Dit was natuurlijk niet bijzonder gebruiksvriendelijk. Ook bij de timers werd bij een wijziging de volledige panel gerefreshed. Dit heb ik opgelost met een beetje meer code. Vrijdag 15 april Vandaag kwamen de extra’s aan de beurt. Deze worden met een toolbox dynamisch ingeladen vanuit de instellingen.xml. Bij het klikken op de toolbox wordt dan een usercontrol geladen met de nodige instellingen en ook uitgeladen vanuit de instellingen.xml. Tijdens het werken aan de graphics vroeg mijn stagebegeleider om de hele applicatie eens te tonen. Het zag er vrij goed uit, maar hij had enkele opmerkingen bij het schermentabblad. 1. De transparantie is niet sourceOver bij panels en pictureboxen. 2. Geen grid te bespeuren voor eenvoudige plaatsing van schermen. 3. de safe margin staat onder de schermen. 4. geen grid, dus ook geen snap to grid. 5. geen drag and drop functie van de schermen. 11

Er stond me dus nog heel wat te doen. Ik heb de extra’s even gelaten voor wat ze zijn en ben begonnen met opzoekingswerk naar hoe ik de transparency beter kan krijgen. Samen met mijn stagebegeleider en zijn collega heb ik enkele nuttige links gevonden. Na enige tijd zoeken heb ik ook op microsoft een interessante applicatie gevonden. Deze is eigenlijk puur GDI+. Hier worden de images stap voor stap getekend op het scherm en er wordt dus niet gewerkt met panels, pictureboxen en dergelijke. De applicatie wordt steeds hertekend, waardoor de transparency geen probleem vormt. Deze middag ben ik de hele tijd bezig geweest met het bestuderen van hoe de GDI+ precies werkt. Ik ben ook begonnen met een user control te maken die de grid tekent en automatisch images tekent op de grid. Hierdoor hoef ik deze maar toe te voegen aan de applicatie, wat het eenvoudig maakt om eventueel ergens anders te implementeren. Maandag 18 april Verder werken aan de custom control die ervoor zorgt dat er een panel getekend wordt met een instelbaar grid en een instelbare safe margin. De safe margin moet steeds boven andere objecten zichtbaar zijn. Na vandaag kon je dit met de custom control: • een panel wordt getekend met daarop een grid • het panel is dynamisch opgebouwd. Je geeft een schermbreedte en formaat op. Het paneel berekent zijn grootte automatisch. • Grid lijnen. Je geeft hier de pixelgrootte op en de gridlijnen worden automatisch aangepast aan de grootte van het panel. • Images toevoegen. *.png, *.jpg en *.gif zijn ondersteund door MHP. • De alpha waarde van images blijft steeds bewaard • Images slepen. Wanneer je een image selecteert en sleept gaat deze mee met je muis. De x en y waarde worden rechtstreeks via een event op de form getoond zodat je makkelijk kan zien op welke positie de image nu is. • Alle images verwijderen. • Geselecteerde image deleten • Auto snap ability. (Deze is vrij processor belastend) • events. Wanneer de image veranderd wordt van positie, wordt een event getriggerd die het image object meegeeft en de positie. Ook wanneer een andere image geselecteerd wordt, wordt een event getriggerd. Dit is nodig om de delete knop te enablen aangezien hij anders een image zou deleten die er niet meer is. • Double buffering. Hierdoor krijg je het geflikker niet bij het verslepen van een image.

12

Dinsdag 19 april De panel is nu bijna afgewerkt. Er zijn verschillende extra methodes geschreven die de geselecteerde image kunnen bewerken. De autosnap is geoptimaliseerd, maar blijkt nog steeds een beetje te veel processorkracht in te nemen. Hij overloopt nu elke lijn nog steeds en gaat hier kijken voor elke lijn binnen de 5 pixels of hij daarop ligt. Zal deze dus opnieuw moeten herschrijven. Je kan nu images zichtbaar en onzichtbaar zetten als het te druk wordt op het scherm. Dit is gedaan door een extra property aan het image object mee te geven. De z-index kan worden veranderd. Dit werd gedaan door de image te verwijderen uit de collectie en meteen weer toe te voegen op het eind van de collectie. De grid lijnen en safe margin kunnen nu af en aan gezet worden en je kan bepalen hoe groot deze moeten zijn. Ook de kleur hiervan is te bepalen. Achtergrond image wordt in de panel geladen. Optie om te centreren over de X-as en de Y-as. Een tweede statusbar bijgezet die de x en y waarde van de mousemove laat zien en bij verkleinde versie automatisch omrekent naar de werkelijke waarden. Problemen: Had een bug bij het verwijderen van een image. Wanneer je een image selecteert komt hier een kader rond, maar deze verdween niet bij het deleten omdat deze niet tot het image object behoorde. Gezorgd voor een boolean die de zichtbaarheid van de kader controleert.

Woensdag 20 april Vandaag opnieuw begonnen aan de autosnap. Deze keer veel minder processor belastend. Er wordt slechts naar de twee dichtste gridlines gekeken in plaats van alle gridlines. De extra toepassing waar ik vorige week vrijdag aan begonnen was is nu ook afgewerkt. Heb de toolbox veranderd van pushbuttons naar togglebuttons aangezien je maar 1 maal een extra van een bepaald soort kan kiezen. Problemen: Was van plan om een video te kiezen als mogelijkheid om te tonen hoe dit was met de schermen erboven, maar GDI+ kan blijkbaar niet tekenen over een video tenzij het gebeurd met windows media player. De autosnap werkt enkel met de linkerbovenhoek. Dit geeft conflicten als je ook de rechterbovenkant en onderkanten doet als je gridlines bijna even groot zijn als je image. 13

Donderdag 21 april presentatie van Microsoft Information Bridge Framework gedaan ‘s morgens voor mijn collega’s. Het resultaat hiervan was goed. Daarna verderwerken aan de structuur applicatie. Proberen herschrijven van de mousemove aangezien die heel wat cpu gebruikt, maar zelfs bij de simpelste invalidate van een beperkte region ging de cpu de hoogte in, dus heb ik ze zo gelaten. Opslaan mogelijkheid aangemaakt. Ook een reset functie geschreven zodat het meteen mogelijk is een nieuwe quiz te starten. Alle instellingen van de structuur Manager worden opgeslagen in een zelf gekozen xml file. Mogelijkheid toegevoegd om zowel de werkelijke als de verkleinde versie van het scherm te laten zien omdat je enkel met de verkleinde versie nooit accuraat kan werden door de afrondingen van de x en y waarde. Vrijdag 22 april Kreeg deze week de opmerking dat ik erg weinig commentaar schrijf. Mijn stagebegeleider zei dat dit heel belangrijk was omdat code geheel nutteloos wordt zonder commentaar. Wanneer er iemand anders mijn project overneemt en hierop moet verder schrijven gaat deze er helemaal niet wijs uit geraken. Vandaar heb ik deze morgen bijna elke methode becommentarieerd. Heb ontdekt dat er een tooltje in visual studio.net zit dat automatisch de code die met /// geschreven is genereert in een comment doc. Deze middag een nieuwe evaluatie gekregen van mijn project. Enige opmerking was dat ik geen mogelijkheid had om text toe te voegen aan de grafische interface. Deze middag bezig geweest aan de mogelijkheid om dus ook textboxen mee te geven aan de form. Hier worden dan de coördinaten en de breedte en hoogte meegegeven zodat dit in de content gebruikt kan worden. Ook even bezig geweest met een soort toolbox implementatie die gewone controls op de form kon slepen. Achteraf gezien geen goed idee omdat labels en textboxen en dergelijke niet dezelfde kenmerken hebben als bij java 1.1. Ook was er het probleem van de transparantie dat dan weer boven zou komen. Er moet rechtstreeks gepaint worden en dan zouden de controls hier fout op geven. Optimalisatie van de plaats en tabpositie

14

6. Content Manager
6.1 Introductie

De content manager werkt volledig apart van de structuur manager. Deze twee applicaties kunnen dus door twee verschillende mensen gemaakt worden. Hierin komt alle content die de quiz bevat op basis van de structuur die reeds is aangemaakt.
6.2 dagverslag

Maandag 25 april Beginnen aan de content manager. Deze manager zou de verschillende ronden per tabbladen laten zien en per tabblad de vragen met daarbij de antwoorden. Ook zal er een scherm aanwezig zijn waar het mogelijk is tekst in te vullen of een vraag of de timer of dergelijke. De mogelijkheid moet toegevoegd worden om fonts uit te lezen van een xml file die verwijzen naar een pfr bestand. Het formaat waarmee settopboxen werken is het PFR formaat. Deze kan je eventueel op een settopbox zetten. Om het font op computer te simuleren maakt men soms van het PFR formaat een TTF formaat. Dinsdag 26 april Het is nu mogelijk om een structuur bestand te openen en dit te bewerken. Dat wil zeggen: - je kan de tekstvakken opvragen en zeggen welke tekst er in moet komen - je kan de kleur van de tekst kiezen - je kan de grootte in pixels van het lettertype kiezen - voorlopig is enkel het font 'Tiresias' beschikbaar - je kan standaard waarden toevoegen (= dynamisch tekstvak) - kleine kader rond het tekstvak getekend voor betere afbakening op witte achtergrond - mogelijkheid tot opslaan van het geheel in een xml file. De toevoegmogelijkheid van dynamische velden wordt ingelezen door een instellingen.xml. Wanneer je ze toevoegt wordt dit weergegeven als "<naam van het veld>". Later kan ik hierop mijn regex baseren die de patronen &lt; en &gt; herkent. De 'open' functie is ook aangepast zodat ze enkel bestanden kan lezen met de extensie "*_structuur.xml" De structuur gegevens worden overgepompt naar de content xml zodat ik de structuur xml niet meer nodig heb hierna.

15

Problemen: het doorgeven van de antwoorden en vragen via de usercontrol. en de user controls van de ronde naar de form. Aangezien ik niet wou dat hij steeds elke user control moest doorlopen en dan steeds de antwoorden en controleren of deze nummers gelijk waren heb ik gezorgd dat de rondes in een hashtable opgeslagen werden. Hierdoor kon ik rechtstreeks de goede ronde opvragen. Bij de vragen en antwoorden heb ik 2 arraylists gedeclareerd die opvraagbaar zijn via de usercontrols van ucRonde en ucVraag. Hierdoor kan ik per ronde ook opvragen welke antwoorden en vragen hiervoor beschikbaar zijn. Dan nog het opslaan als...Ik wou het zo maken dat er automatisch _structuur.xml en _content.xml achter het bestand werd gezet. Dit geeft echter een probleem als je wil overschrijven van een file aangezien je dan de bepaalde file niet overschrijft maar renamed. Dit was eenvoudig opgelost door het controleren van de naam, wel beetje tricky aangezien hij automatisch renamed naar .xml als je een filter inzet die "*_structuur.xml" is. Woensdag 27 april Presentatie van het Information Bridge Framework op school. Donderdag 28 april Jobhappening voor 3MCT op school. Vrijdag 29 april verder afwerken van de content manager. Kleine probleempjes beter maken. De align van de tekst in de content manager aanpassen zodat het ook mogelijk is center, left en right align te doen. Bezig geweest aan een custom control die voor die aligning zorgt. Deze control erft van button maar wordt volledig opnieuw getekend zodat de aligning er uit ziet zoals je in onder andere Microsoft Word hebt. Maandag 2 mei 2005 Maken van de custom control 'ucAligneer'. Deze zorgt ervoor dat er 3 align buttons gemaakt worden en maakt een event die ervoor zorgt dat de form weet wanneer de align verandert en dus kan meegeven aan de panel die de tekst verandert. De align invoer blijft bewaard per tekstveld. Onderzoek naar eventueel sneller verplaatsen van de image. Wanneer je een panel versleept op een egaal vlak is dit niet processor belastend, maar wanneer die panel over een background wordt gezet gaat de processor naar 100%. Niet erg efficiënt. Proberen oplossen met enkel een kader te laten verslepen, maar de belasting bleef dezelfde.

16

Hints aanmaken. Deze optie had ik over het hoofd gezien wanneer ik deze middag een paar quizzen testte om na te maken. Deze optie wordt in de structuur en de content aangepast. In de structuur moest ik ervoor zorgen dat de puntenverliezen werden veranderd en welk soort hint het precies was per ronde. In de content wordt per vraag gekeken welke soort hint het inhoudt. Wat is de tekst, na hoeveel seconden komt hij tevoorschijn. De update van de content is reeds gebeurd. Dinsdag 3 mei Content Manager is afgewerkt. Studie van MHP. Woensdag 4 mei Studie van MHP XletView bekijken en test applicaties aan de praat krijgen. PHP en JSP pagina maken die een simpele berekening uitvoeren. Dit was gemaakt voor een test project op iDTV waar de settopbox verbinding maakt met de server, daar een berekening uitvoert en deze terugstuurt.

17

7. Xlets en MHP
7.1 Intro

Na de structuur en content Manager diende er nog een module geschreven te worden die de xml uitkomst vertaalt naar iDTV. Deze module zou een xlet worden die dan begrijpbaar is door een settopbox.
7.2 Wat is MHP?

MHP is een open standaard voor interactieve TV Middleware. Applicaties worden geschreven in Java of in HTML. De specificatie van MHP kan je gratis downloaden. De populairste is DVB-J (java). Deze zijn ook bekend als Xlets. Deze zijn een beetje zoals applets voor webpagina’s. Zoals een applet heeft de xlet interface een start en stop methode. De startklasse moet dan ook de xlet implementeren. MHP werkt enkel met Java 1.1!
7.3 Dagverslag

Maandag 9 mei Dit weekend dacht ik dat het probleem dat ik vorige week had met het inlezen van de xml een java probleem was. Aangezien je maar versie 1.1 mag gebruiken dacht ik dat de xmlReader hier nog niet geïmplementeerd was. Ben dan op zoek gegaan en in de bib een boek gevonden over sax-readers. Hierin werden enkele parsers beschreven die ik dan deze morgen zou uittesten. Deze morgen heb ik dan nog problemen gehad met de javac te laten compilen in 1.1, maar deze bleef hier fout bij geven. Uiteindelijk eclipse gedownload en geïnstalleerd. Hier kon ik de optie 1.3 aanduiden en als target 1.1. Hierna heb ik nog eens geprobeerd om mijn oude code te compileren. Want als dit nu goed zou compileren zou het eigenlijk een compiler fout moeten geven. Dat deed het dus niet en dus heb ik me nog eens toegelegd op de code. Nu blijkt dat MHP het maar niets vindt om met IO te werken. Heb deze dan eens veranderd naar een URL en dat blijkt dus te werken.. :) Een code regel dus waar ik 3 dagen naar op zoek geweest ben. Goed, nu kon ik eindelijk de xml uitlezen. Heb vandaag de schermensoorten uitgelezen. Deze gepaint op het scherm samen met de tekst bestanden. De tekst in java werkt wel helemaal anders als windows. Bij java is de x en y links onderaan. Bij c# links bovenaan. Bij c# is mijn font in pixels en bij java is dit blijkbaar niet mogelijk. Enkel points. Vandaag ook het programma IRT gekregen. Dit is hetzelfde als xletView, maar wel volledig en helemaal niet gratis.

18

Xlets moeten gedropt worden in een eigen carrousel (bij mij 0.0.2) C:\Program Files\IrtMhpRI\windows\mhpri\runtime\fileio\dsmcc\0.0.2 Als je een applicatie bijmaakt moet je de Applications.cfg aanpassen namespace.klasse;350;9 = Naam zichtbaar in irt;dvb://carrousel in mijn voorbeeld be.vrt.stage.QuizMHP;353;9 = VRT: Quiz Applicatie;dvb://0.0.2 Dinsdag 10 mei Zat vandaag hele dag alleen op bureau omdat mijn begeleiders een cursus deden hier op het bedrijf zelf. Bijna hele dag bezig geweest met het onderzoeken van dat IRT programma en hoe verschillende xlets draaiende te krijgen. Blijkbaar lag het aan xletview dat de IO niet werkte aangezien deze op de IRT wel werkt. Heb dan een xlet geschreven waarin xml werd uitgelezen, maar toen Jeroen dit zag had hij een ander voorstel. Het zou erop neerkomen dat het programma als een 'module' zou geschreven worden in c#. De module die ik maak zou dus java code aanmaken en compileren. Daardoor zou de xml niet uitgelezen moeten worden in java en dus zonder xml verscheept kunnen worden via een carrousel. Er kunnen dan andere modules geschreven worden die bijvoorbeeld html genereren voor DVB-HTML. Heb www.mhp-interactive.org bekeken. Hierop staat een tutorial van de MHP. De api van mhp heb ik teruggevonden in het irt programma. De mhpstubs heb ik van mhp-interactive. Dit is een jar die de klassen bevat die de settopbox gebruikt om de gecompileerde java te runnen. Woensdag 11 mei Het maken van de quiz met hardgecodeerde objecten. Ben bezig met een xlet aan te maken in java die de quiz op een degelijke wijze laat zien. Ben nog niet meteen begonnen aan het schrijven van c# die die java code genereert aangezien ik eerst gewoon in java wil testen of dit wel zou werken. Voorlopige implementatie van de quiz: • Intro scherm geschreven. Laat tekst zien die je wil in het midden van het scherm via een HText (Havi component) • HoofdXlet. Wordt gestart wanneer je de 'ok' toets van afstandsbediening indrukt. • HoofdXlet beheert Quiztekenen, de keylisteners worden daar naar doorgestuurd - hierin worden de vragen en antwoorden getekend • 2 implementaties reeds geschreven om te antwoorden. Namelijk de cijfers en de kleuren • Wanneer je rechtse pijl duwt ga je naar volgende vraag

19

• •

4 kleuren van antwoorden : gewoon, geselecteerd, goed antwoord en fout antwoord. Timer: - Beslist hoe lang je kan antwoorden op de vraag - pauzetijd: beslist hoe lang de vraag (+ of het antwoord goed of fout is) zichtbaar is na het verlopen van de timer - Geeft steeds door aan de hoofdXlet wanneer er een seconde voorbij is. hoofdxlet beheert wanneer de tijd verlopen is en wanneer hij de volgende vraag of ronde moet weergeven. is de tijd verlopen en is er nog niet geantwoord dan zal hij een fout antwoord genereren.

• •

in irt wordt het resourcepath gewoon meegegeven als de root van de carrousel String resourcePath = "/be/vrt/stage/"; Een graphicslayer bevat een scene. Hieraan kunnen componenten toegevoegd worden. Eerst wordt de HELP aan de scene toegevoegd. Aan die scene wordt dan ook de HText toegevoegd. Wanneer de quiz geladen wordt worden deze beide geremoved van de scene en komen de vragen erop. Donderdag 12 mei Hoe een xlet manueel destroyen? Exitten Scene disposen en op null zetten Context.notifyDestroyed(); Vandaag heb ik de images toegevoegd aan de quiz. Deze worden in een nieuwe component aan de scene toegevoegd. Een component alleen hertekenen gaat niet. De hele scene wordt hertekend. Omdat je dus elke keer moet herpainten is dit vrij intensief. De images worden wel slechts 1 maal geload en zo steeds op de scene gezet. Het help scherm is uitgebreid naar een eindscherm. Dit is dezelfde component waar je nu de tekst van de HText component kan veranderen. Structuur en Content applicatie aangepast met de 'special' feature. Dit houdt in dat een tekstvak bijvoorbeeld een vraag inhoudt (of antwoorden, thema, timer). Deze eigenschappen van het tekstvak worden dan gebruikt in de paint methode van de component waar antwoorden en dergelijke worden getekend om de correcte plaatsing van de tekst weer te geven. Opletten. De g.drawString in java is niet hetzelfde als in c# waardoor er een conflict was. In java is de y coördinaat namelijk de onderkant van de tekst. In c# is dit de bovenkant. Opgelost door de FontMetrics. Deze kan de hoogte en de descent opvragen. De y property in c# is dus hetzelfde als de y property in java min de getHeight() + getDescent();

20

Wat ik nog veranderd heb in de content manager is de manier waarop de images worden behandeld in xml. Vroeger werd het gehele path mee gestuurd. Nu wordt het iets anders gedaan. Enkel de naam wordt opgeslagen in de xml file (via de FileInfo klasse). En de image wordt gekopieerd naar de folder waarin de Content file wordt opgeslagen. Hierdoor gaat het makkelijker worden om te weten welke files nodig zijn om in de carrousel mee te sturen. Ook de kleuren worden aangepast bij de vragen, timer, thema en antwoorden. Ik had nog 'n klein probleempje bij het veranderen van de setFont. Ik zou de size moeten aanpassen, maar dan moet ik ook het lettertype aanpassen en een nieuw font aanmaken op die irt bleek dit niet vanzelfsprekend aangezien er plots heel wat vertraging ontstond. De background van de Help functie is ook iets aangepast en werkt nu met alpha waarden. De kleuren in MHP zijn DVBColors. Bij de help functie is er een kleine achtergrond in het midden van het scherm waar het rondom nog transparant is. Bij de gewone quiz is er nog een doorschijnende achtergrond. Deze optie zal ik best nog laten kiezen in de structuur van de applicatie. Sommige quizzen willen namelijk een gewone achtergrond en andere geen. Een andere aanpassing die ik gedaan heb is de 4 verschillende kleuren bij het raden van het antwoord: gewone staat, ok staat, fout staat en geselecteerde staat. Dit ook best nog aanpassen in de content manager waar je nu enkel het kleur kan kiezen van de gewone staat. Vandaag vrij veel bugs tegengekomen. Niet zo eenvoudig om te debuggen zo een xlet omdat die irt op mijn pc ongelooflijk traag draait. Wil binnenkort wel eens mijn voorlopige xlet op de tv laten draaien. Jeroen is op dit moment met een xlet bezig en deze stuurt die via een seriële kabel door naar een settopbox (degene van telenet). Deze kan dan op de tv bediend worden. Als je op irt werkt moet je de volgende shortcuts weten als je een afstandsbediening wil simuleren: - de cijfers zijn de cijfers - de letters de letters - de kleuren zijn F5,F6,F7,F8 - exitten van het programma : F1 Vrijdag 13 mei Deze morgen begonnen met de implementatie van de hints. Even nagedacht over hoe het eenvoudigst de hints implementeren en wat het minste processorwerk zou leveren. Een aparte klasse gemaakt die de timer van de hints controleert. Deze enkel laten afvuren wanneer de hint getoond moet worden. Toen een bespreking gehad met de stagebegeleider over de volledige werking van het project en hoe ver ik precies zat.

21

Daarna heeft hij me een presentatie laten zien van MHP. Hierin zat de werking van de xlet en een bespreking van de havi componenten. Een handig iets aan de havi componenten is het automatisch moven van de focus. Dit kan ik gebruiken voor buttons te maken. Dinsdag 17 mei Na een hele dag programmeren schrijf ik zelf al een ; achter een gewone zin :) Deze morgen ervoor gezorgd dat de hints goed zichtbaar zijn. De routine herschreven zodat er geen tweede timer gebruikt wordt. Dit zorgde voor een vertraging en geen correcte timing met de andere timer. Nu luisteren de hints gewoon naar de hoofdtimer van de vraag. Extra timer implementatie. Hierin wordt een timer over de hele ronde gebruikt. Wanneer je antwoordt wordt de score meteen berekend en krijg je de volgende vraag. Implementatie van de pauze voor een vraag. Bij de pauze zie je enkel de vraag en nog geen antwoorden. De timer gaat dan ook nog niet af. (in mijn code noemt deze 'voorTijd'). De pauzeTijd wordt nu per ronde meegegeven. Niet per quiz. Zo is het mogelijk om een andere pauze per ronde te hebben. Dit geldt ook voor de voorTijd. Mogelijkheid om een background zichtbaar te maken of niet. Deze background neemt het hele scherm in. TODO: Wanneer er geen background zichtbaar is, is dit nu een half doorschijnende laag. Ik moet er nog voor zorgen dat je het kleur kan kiezen en de transparantie. Structuur en content applicatie zijn aangepast voor de wijzigingen van de hints en timer structuur. Bij de antwoorden staan nu images voor het antwoord. De rode knop is bijvoorbeeld een rode knop etc. Deze images worden uitgelezen uit de carrousel. (naamgeving: rood, geel, blauw en groen.png) javac compiler via command prompt uitgetest en moet via classpath gebeuren omdat je anders de klassen die de bepaalde klasse gebruikt niet vindt (deze zitten in een package). Woensdag 18 mei structuur en content applicatie zijn verder in orde gemaakt. Hier zaten nog enkele problemen in. Verder is het timertype in de structuur applicatie aangepast omdat er nu een pauze en voortijd bestaat en er enkele opties overbodig zijn. De content applicatie heeft een extra tabblad dat er voor zorgt dat je de 3 kleuren voor de selectie, goed antwoord en fout antwoord kan kiezen. Ook de achtergrond is geoptimaliseerd. Je kan nu kiezen tussen een achtergrond of een kleurvlak. Bij dit

22

kleurvlak kun je de alpha waarde kiezen zodat dit volledig doorzichtig of volledig ondoorzichtig is. Deze middag begonnen aan de module waarin c# java code genereert die de xml uitleest en vertaalt naar een java class die dan wordt uitgelezen door reeds aangemaakte code die de quiz beheert. Deze avond is deze module afgewerkt. Hier moet wel nog een GUI voor geschreven worden die meteen modules kan bijvoegen voor andere applicaties gebaseerd op dezelfde data. Nadat de broncode van de module was geschreven en ik dit wou compileren met een 1.1.8 compiler in de command prompt gaf deze een foutmelding. Hij kon namelijk de util.list niet vinden...Blijkbaar geeft eclipse geen compilerfout hierop ook al zet je de compliance op 1.1. Ook werkt dit op de IRT nog steeds aangezien die blijkbaar de jdk 1.4 gebruikt. Nu die util.list moest ik dus vervangen. Daardoor moesten alle Lists en Arraylists vervangen worden. Welke collectie klasse ik daarvoor gebruikt heb is de Vector. Hierdoor moesten alle klasses veranderd worden en dus ook de module generator. Uiteindelijk was dit niet zoveel werk omdat de vector en arraylist dezelfde methodes gebruiken voor het halen en het toevoegen van objecten in hun lijst. Donderdag 19 mei Deze morgen begonnen met te bekijken hoe het makkelijkst gecompileerd wordt via de command prompt. Dit moest compileren met een zo laag mogelijke versie, maar blijkt dat de 1.1.8 jdk moeilijkheden gaf om via de command prompt klassen in te laden dus heb de jdk1.3 gebruikt. Deze heb ik als variabele in de app.config gestoken aangezien deze per computer een andere locatie kan hebben. Dan gekeken hoe te compileren via de command prompt in c#. Dit bleek dan via de System.diagnostic.process te gaan zodat je de cmd.exe kon oproepen en daar kan je dan een variabele mee meegeven. Een klein probleempje was als er spaties in de naam zaten, maar dit is simpel opgelost door quotes. Dan kun je bij je variabele ook nog kiezen of je /c of /k ervoor zet. Bij /k blijft het cmd openstaan, bij /c sluit deze na bewerking. Wel jammer dat je even een zwart venster ziet, maar dit is niet meteen te vermijden. Nog een paar foutjes weggehaald in de content klasse. Deze was nog niet volledig upgedate volgens de structuur die upgedate was. Daarna ons lokaal opgeruimd en alles in dozen gestoken aangezien morgen onze verhuis gebeurt. We verhuizen naar 5L71. We hebben hier ook 2 racks staan die eigenlijk een hele tv uitzender is met alles erop en eraan: carrousel, modulators, etc...Veel geld :) Volgende week gaan we een test doen met de xlet naar de settopbox te verplaatsen. Ook zal ik daarna de triggering moeten implementeren. Hierdoor kan de vraag eindigen door triggering. Deze triggering kan men enkel uitvoeren in een echte situatie waardoor we van de 2 racks zullen gebruik moeten maken. Interessant want dit wil ik echt wel eens zien werken :) Op IRT kan je dit niet testen omdat deze geen triggering kan veroorzaken. Hopelijk werkt m'n xlet op de settopbox eerst en vooral :) Morgen verhuisdag! 23

Vrijdag 20 mei Het verhuisteam was ‘s morgens bezig met ons lokaal. Daarna alles uitgepakt en in orde gezet. In de namiddag een format van een pc moeten doen en windows 2000 erop gezet. Dan een voorbeeldcode van Jeroen gekregen over eventTriggering vanuit de studio naar een xlet. Dit weekend eens toepassen op mijn applicatie. Weekend 20 en 21 mei Documentatie geschreven en voorpagina gemaakt. Mijn xlet aangepast zodat deze reageert op eventTriggering. Op IRT geeft dit wel een foutmelding aangezien deze niet in verbinding staat met de carrousel.

24

8. Settopbox
8.1. Intro

Een Xlet moet op een settopbox komen zodat deze in elke huiskamer, die er eentje in het bezit heeft, kan afgespeeld worden. Een settopbox is een klein bakje (ongeveer 30cm x 20cm) dat je aansluit op je kabel. Dan verbind je je settopbox en je TV met een scart kabel. Bij een settopbox krijg je een afstandsbediening en een draadloos keyboard. Op de VRT hadden we 3 settopboxen. 2 van Philips die gebruikt zullen worden door Telenet en nog 1 van Nokia die signalen vanuit de lucht kan plukken.
8.2. Dagverslag

Maandag 23 mei Een gouden tip: Denk niet dat je applicatie gereed is wanneer deze op de IRT werkt! Vandaag werd mijn applicatie op de settopbox getest. Eerst alle tools gekregen van Jeroen om een seriële verbinding te maken met de settopbox. Op mijn laptop is er geen seriële poort dus werk ik ook met de andere pc op mijn bureau. Wat is nu de precieze werkwijze om te testen op de settopbox: 1) een folder 'Xlets' aanmaken op de pc met seriële poort. 2) Hierin de class files van het project zetten 3) de file xlets.dat wijzigen zodat het startup path verwijst naar het goeie bestand (zoals in de applications op IRT) 4) de seriële poorten van de settopbox en de computer verbinden met elkaar 5) stbproxy starten (deze zorgt voor de seriële communicatie) 6) command prompt openen 7) volgende regel invoeren: stupload localhost xlets.dat Xlets 8) baretail openen indien je de uitvoer van de settopbox wil zien. Wat ik dus moest doen was mijn class files naar de andere computer overzetten elke keer ik iets wijzig in de code. Dan de class files uploaden naar de settopbox waar ik de applicatie kan runnen. Problemen: na het uploaden geeft de settopbox vaak de fout Xlet already in use. Oplossing: - ofwel enkele keren aan en af zetten - ofwel power uittrekken en opnieuw uploaden Na de installatie en know how van het overzetten kon ik beginnen met het testen van mijn applicatie. 25

Dit ging niet zo soepel en ik kwam de volgende problemen tegen: - Foutmelding over color.BLACK, ... Oplossing : black moest met kleine letters ipv hoofdletters (dit geeft nochtans geen compiler fout in de stubs) - Foutmelding over Vector methods Oplossing : Volgens de JDK1.4 is de methode clear(), get(int) en add(object) mogelijk, maar blijkt dat de JDK1.1 deze niet toelaat! Elke vector methode moest dus vervangen worden door respectievelijk removeAllElements(), ElementAt(int) en addElement(Ojbect). Deze moeten nog vervangen worden in de module die java genereert. - Foutmelding over de streamEvents Dit is omdat er nog geen carrousel is gemaakt om de objecten in te bewaren. Dit zou moeten opgelost zijn na de milo test. - Timer: Deze bleek niet goed meer te werken bij het vaak repainten van het scherm. Je kon dus niet betrouwen op het feit dat deze echt elke seconde een event afvuurt en volledig uitwerkt. Oplossing : Jeroen had dit vroeger ook voorgehad bij een applicatie. De oplossing is vrij eenvoudig. In plaats van dat je de timer om de seconde laat vuren laat je deze vlugger afvuren. Bijvoorbeeld om de 200 milliseconden. Dan kijk je elke keer of je tijd al 1 seconde gepasseerd is. Is de 1 seconde gepasseerd, dan voer je je acties uit. Anders niet. - Repaint: Dit was blijkbaar veel te zwaar om telkens de componenten te hertekenen bij het passeren van een seconde. Daardoor was er een grote vertraging op de keylistener, de timer en de antwoorden Oplossing : - Van de images die getekend worden heb ik 1 container gemaakt die aan de scene wordt gehangen. Deze container bevat voor elk scherm een nieuwe component met de bounds beperkt aan de image. Op zich maakt dit nog niet zo veel uit want de component met antwoorden etc bevat het hele scherm. Wanneer ik echter de antwoorden etc. nog ga opsplitsen in verschillende componenten zou dit wel wat tekenwerk besparen. - Bij elke seconde van de timer werd er een repaint gedaan omdat de seconden moesten gezien worden. Hier heb ik een region aan toegevoegd zodat de repaint enkel het scherm van de timer hertekent. - De backgroundImage verwijderd. De jpg die over heel het scherm gestretched wordt blijkt enorm veel kracht van de settopbox te vergen. Ik heb dit opgelost door gebruik te maken van background en videolayer. De videolayer wordt geresized zodat deze niet het hele scherm vult en op de backgroundlayer wordt een iFrame gezet. Dit ga ik wel moeten aanpassen in de structuur form. Een jpg, gif of png op de backgroundlayer zetten gaat niet. Enkel 26

-

een kleur of iFrame, maar enkel een kleur blijkt ook niet te werken op deze settopbox. Je kan jpg's converteren naar iFrames met het programma TMPGenc. Font: Blijkbaar ondersteunt de settopbox maar enkele font groottes. Moet dit nog verder onderzoeken.

Het testen gaat bijzonder traag aangezien het nogal wat tijd vraagt om het hele project steeds op de settopbox te zetten. Het VNC programma op de andere computer gezet zodat deze eenvoudig kan bestuurd worden. De test voor de streamEvents zal pas tegen vrijdag worden gedaan aangezien Jeroen deze week cursus heeft en ik milo nog niet voldoende onder de knie heb om dit volledig te besturen. TODO: De size van het tv beeld wordt gedaan met een x,y, breedte en hoogte, dus kan deze implementeren als een tekstvak in de structuur applicatie. Dit zou dan de plaats zijn waar het scherm zich bevindt. TODO: Fonts uitmeten en werkende krijgen zonder foutmelding...MHP specs daarvoor eens bekijken TODO: kijken wat beste manier is om een achtergrond op mijn applicatie te zetten. Ook eens kijken hoe zwaar een kleur is over mijn video signaal. Eventueel hoef ik dan geen backgroundlayer te gebruiken bij een egaal kleur. Dinsdag 24 mei Onderzoek naar de fonts. Heb in de MHP Specification gelezen dat de volgende fonts zeker ondersteund worden: • 36 • 31 • 26 • 24 Na verder onderzoek denk ik dat mijn log eigenlijk geen fout weergeeft. Het volgende wordt gedisplayed:

PFR: /system/fonts/Tires-o_802.pfr fontsize (Tiresias, 350 glyphs)

Dit is dus geen foutmelding, maar er wordt gewoon in de log van de settopbox gezet dat de font grootte veranderd is. Hierna de videoresizing in orde gemaakt. In de structuur moest hier niet meteen iets veranderd worden en er moest enkel een plugin in de content manager gezet worden. de Java writer is ook aangepast zodat deze de oude vector methodes verandert in jdk1.1 compatibele code. Dan mijn xlet aangepast zodat de video op de goede positie wordt gezet en geresized. Wanneer er geen videoscherm is wordt de video geresized op punt 0,0 en 27

breedte en hoogte 0. Wanneer er geen background aanwezig is vult de videolayer het volledige scherm en is er mogelijkheid om een kleur over de video te tekenen (het is mogelijk om de alpha waarde hiervan in te stellen). De achtergrond werkt enkel met iFrames en aangezien het heel veel tijd vraagt om TMPGenc steeds te openen om iFrames te maken van jpg's heb ik dit geïmplementeerd in mijn code. Wanneer je nu de quiz naar een xlet converteert wordt automatisch van je achtergrond een iFrame gemaakt, handig nietwaar :) Je moet er wel voor zorgen dat je image de grootte heeft van je formaat (bv PAL) omdat het anders niet altijd goed wordt weergegeven op de TV. Ter informatie: TV's kunnen beter overweg met iFrames en een iFrame op het scherm tekenen duurt niet zo lang als steeds een jpg op de graphics layer zetten. Op het einde van de werkdag nog gezien dat er een foutje is bij het plaatsen van de controls als die over elkaar liggen. Dit zou omgekeerd moeten zijn en heb dit opgelost door de for lus om te keren, maar hier is blijkbaar nog een probleempje in geslopen aangezien mijn irt hierop crashte. Nog eventjes oplossen dus... Woensdag 25 mei Deze morgen een gloednieuwe quiz getest die alle fasen overloopt. Had een beetje schrik dat de background layer niet precies zou gepositioneerd worden tov de geresizede videolayer maar dit is gelukkig wel het geval. Een bug uit de content applicatie gehaald. Wanneer je de content file in dezelfde folder als de images bewaarde dan gaf deze een foutmelding. Opgelost door elke keer te checken of deze image reeds in de folder zit via de exists methode in fileInfo. Tot de constatatie gekomen dat een iFrame van veel betere kwaliteit is dan een jpg op de graphics layer. Implementatie van een nieuwe timer, namelijk het opnemen van de tijd. Hiervoor een extra property voor het Ronde object gemaakt. Deze middag gezorgt dat het intro scherm en het eindscherm beter wordt weergegeven. De HText wordt nu niet over het hele scherm gecentreerd maar enkel op de getekende achtergrond. Je kan nu als extra parameter meegeven hoe je het wil aligneren. 0 = links 1 = midden 2 = rechts Extra modulevariabele inset zorgt voor de randen rondom het scherm die zeker zonder tekst blijven.

28

Daarna een volledige quiz gemaakt zoals 'één jaar gratis': 3 rondes, elke keer minder antwoorden en elke keer een andere score en timer eraan gekoppeld. Enig probleempje dat ik hier nog mee had was de weergave van de PNG. Deze bleek aan de zijkant vreemde pixels te tonen. Ook had ik een lijn van slechts 1 pixel op mijn graphics layer en deze was steeds aan het pinken. De reden hiervan is de interlacing, waardoor een lijn minstens 2 pixels en zelfs best meer moet zijn. Ook moet je er voor zorgen dat je images niet te veel kleuren hebben op de graphics layer want dit wordt niet zo goed weergegeven. Op de backgroundlayer is dit geen probleem.

TODO: - nadenken over welke quiz ik wil maken zodat ik hier aan het nodige bronmateriaal kan geraken. - Foto's nemen van Milo om te tonen tijdens de presentatie Aandachtspunt: De grootte van een image op de graphics layer kan voor enorme vertraging zorgen. Een image groter dan 10kb is zeker niet aan te raden. Een iFrame mag wel groter zijn omdat deze niet steeds hertekend dient te worden. Donderdag 26 mei Deze morgen de mogelijkheid bekeken om mijn images te schalen in de structuur applicatie. Dit zal echter niet goed lukken omdat de images gewoon op het scherm worden getekend en ik dus geen gewone labels of dergelijke aan het imageobject kan zetten. Jeroen kwam op het idee om een nieuwe trigger te implementeren. Dit gebeurt ook via events en zorgt ervoor dat de vraag en het antwoord niet zichtbaar zijn. Wanneer je de vraag zichtbaar wil maken dan wordt dit afgevuurd met een trigger en hetzelfde geldt voor het antwoord. Vandaag de comments van de content manager, de platform manager en de xlet aangemaakt. Javadoc gegenereert en voor de drie c# applicaties de comment builder van visual studio.net Pixel verhouding tov square pixels - 1,066 voor PAL - 1,422 voor PAL Widescreen Deze middag ervoor gezorgd dat alle timers getest werden. Daarna een controle van de stagebegeleider gehad. 29

Er moeten heel wat wijzigingen gemaakt worden. Heb deze allemaal in een Word document gezet met de minimum tijd en de maximum tijd die ik ervoor nodig zou hebben. Morgen controleren we samen en zeggen we wat door zal gaan en wat niet. TODO: van opname timer een boolean maken.Dit zorgt ervoor dat je bij elk soort Timer de tijd kan opnemen. Vrijdag 27 mei Testen voor streamEvents op Milo. Milo is een simulatie van een TV uitzending. Dit bevat alles wat je nodig hebt om TV signalen uit te zenden. Erg grote en dure apparatuur met het geluid van een vliegtuig. Deze morgen klein stroomprobleempje gehad. Wanneer we Milo wilden opstarten kwam de hele kamer zonder elektriciteit te zitten. Twee techniekers zijn toen opgetrommeld en toen bleek dat er teveel stroom werd verbruikt in onze kamer door alle pc's, tv's en die Milo. Voorlopig een verlengkabel naar een andere kamer gelegd, maar er wordt een nieuw circuit aangelegd (waarschijnlijk volgende week). Mijn computer moest dan verbinding leggen met Milo, maar dat werd een netwerkprobleem omdat er een switch in de rack zat, maar dan heb ik geen netwerkverbinding meer met de andere pc. Dus kleine netwerkkaart in laptop gekoppeld zodat ik op twee netwerken verbinding heb. Connecteren naar Computer 192.168.1.12 Hierop staat coral MHP die bepaalt welke xlets er draaien en welke events erop zitten Op 192.168.1.13 staan de logs van de settopboxen. Er is een probleem met het path van de events. Hopelijk lossen we dit deze middag op. Om 12u. naar de repetitie van ‘De kampioenen’ gaan kijken (de 200ste aflevering). Iets na 13u. terug aan het werk en verder zoeken naar wat het probleem met de events is. Nagedacht over de werkwijze van de streamevents en tot de conclusie gekomen dat er zeker een object moet aangemaakt worden en dat we dit niet kunnen inladen. We wilden zeker zijn dat onze naamgeving wel klopte en daarom een kleine functie geschreven die de files in de root directory en de package uitlas. Daar bleek dan te staan dat het streamevent 'object0002' ipv 'MYEVENT' heette. Gekeken waar dit ingesteld zou worden in coral MHP en uiteindelijk gevonden in het tabblad location als je een object toevoegt.

30

Met de volgende opties dan de xlet terug in de carrousel gestopt en doorgestuurd naar de settopbox. En deze kreeg de events die afgevuurd werden perfect binnen! De vreugde was groot :) Applicatie aangepast zodat er naar 3 triggers wordt geluisterd. 1. naam: volgendeVraag: zorgt dat de volgende vraag wordt aangeroepen 2. naam: toonVraag: maakt vraag zichtbaar 3. naam: toonAntwoord: maakt antwoord zichtbaar TODO: Misschien de applicatie nog aanpassen zodat een event per vraag wordt getriggerd. Waarom is dit nodig? Indien de settopbox een event zou missen zou de hele applicatie in de war lopen en als je weet aan welke vraag je zit zou je dit nog goed kunnen maken. Daarna een kleine opname gemaakt van mijn quiz. Een tv-kaart aangesloten aan mijn computer. Deze tv kaart wordt verbonden met een settopbox (die in verbinding staat met MILO). Alles wat je dan op tv ziet wordt opgenomen op computer. Ideaal om te demonstreren op school aangezien ik MILO moeilijk kan meenemen (reden: heel groot, heel zwaar en heel duur). Daarna nog enkele kleine aanpassingen aan de structuur applicatie gedaan. Het tekstvak toevoegen heb ik veranderd door het woord container omdat dit meer past bij de functie. Je kan namelijk aan een container ook een videolaag hangen en dan is tekstvak niet meer duidelijk. Dan nog een aanpassing gedaan aan de checklist die de schermen bijhoudt. Het probleem hierbij was dat als je een scherm selecteert deze niet automatisch de bijhorende control in de checklist aanduidt. Omgekeerd gebeurde dit ook niet als je een control in de checklist aanduidt dan werd deze niet geselecteerd, maar meteen invisible of visible gezet. Heb er nu voor gezorgd dat wanneer je op een item in de checklist klikt deze geselecteerd wordt en wanneer je het aan of afvinkt het visible of invisible wordt. TODO: Moet nog zorgen dat wanneer je de image selecteert het checklistitem ook geselecteerd wordt. Anders zit je namelijk met 'invalid data'. Heb screenshots genomen van alle stappen die je in MILO moet doen zodat dit als referentie kan gebruikt worden.

31

9. Appendix UML Schema’s en opbouw applicaties
9.1 Structuur Applicatie

UML Schema

Opbouw

32

9.2 Content

UML Schema

Opbouw

33

9.3 Platform Convertor

Opbouw

9.4 Xlet

Opbouw

34

10. Appendix – MHP Emulators
10.1 XletView

Als je op de PC applicaties voor de settopbox ontwikkelt is het eenvoudiger als je dit kunt testen op een emulator. XletView is een opensource emulator en dus gratis. Het nadeel is wel dat deze emulator maar een gedeeltelijke implementatie van MHP heeft.

Hier zie je een test applicatie die op xletView draait.

35

10.2 IRT

De emulator die ik vooral gebruikt heb is IRT. Deze was aangekocht door de VRT voor het ontwikkelen van MHP applicaties. Deze ondersteunt de volledige MHP specificatie. Exacte zekerheid dat dit hetzelfde resultaat geeft als op de settopbox is niet zeker. Enkele problemen: - bevat JDK 1.4 (settopbox JDK 1.1) - geen stream events ondersteuning - geen iFrame ondersteuning

Index scherm met alle applicaties

Quiz Applicatie

Configuratiescherm waar je de caroussel, naam en id meegeeft van je applicatie.

36

11. Appendix – MILO StreamEvents
11.1. Intro

Milo bestaat uit 2 racks vol met Televisie apparatuur. Dit is eigenlijk een soort uitzendketen van een digitaal signaal dat via een caroussel data doorstuurt naar de settopbox. Ik moest gebruik maken van een caroussel omdat ik met events moest werken. Je moest vanuit de studio kunnen zeggen wanneer een timer moest stoppen met lopen, wanneer er een vraag moest getoond worden enz. Dit was niet mogelijk om op een stand alone settopbox uit te proberen dus moest ik hiervoor op Milo werken. De volgende stappen leggen de procedure uit om een xlet te publiceren en events aan te maken.
11.2. Aanmaken Applicatie

Opstarten van het programma Coral MHP. Druk hier op het toverstafje en je kunt de naam van je applicate, de directory van je xlet en de startup klasse aanduiden.

37

11.3 . Toevoegen van Event Object

Ga naar het Object menu en klik daar op ‘Add’. Wees er zeker van dat je rechts de ‘Gateway Caroussel’ hebt aangeduid
11.4 Event Object name aanpassen

Op het tabblad location vul je bij object name de naam van het event in die je xlet inlaadt.

38

11.5 Aanmaken van een stream Event

Selecteer Stream Event en druk op create
11.6 Do it now Event

Selecteer het tabblad ‘Do-It-Now Event’ en voeg zoveel events toe als je wil gebruiken. Wees er wel zeker van dat je id uniek is.

39

11.7 Events toevoegen aan de applicatie

Voeg nu je events toe rechts onderaan. Voor elk id dien je ook een event name meegeven. Deze zal je kunnen uitlezen in je applicatie.
11.8 Controle van de Stream Events

Je applicatie is nu automatisch gestart en in de caroussel meegestuurd. Controleer of je event goed is toegevoegd.

40

11.9 Do-It Now Events afvuren

Dubbelklik op je event dat je wil afvuren. Zorg dat ‘start now’ is aangeduid en druk op ok. Het event wordt nu afgevuurd en ontvangen door de settopboxen.
11.10 Controle in de settopbox logs

In de logs van je settopbox kan je zien dat het event ontvangen is.

41

12. Appendix – Planning laatste 2 weken
Onderwerp
Rechts klik menu in het scherm om items te centreren, …

Minimum tijd
2 uur

Maximum tijd
6 uur

Apps die moeten worden aangepast: Structuur Manager

Deel van de content applicatie naar de structuur applicatie verschuiven zodat het mogelijk is de specials (vraagstelling, thema, …) reeds in het schermen tabblad van de structuur applicatie toe te voegen.

1 dag (8u)

2 dagen (16u)

Apps die moeten worden aangepast: Structuur Manager Content Manager

In de structuur Manager zorgen dat je door het aanduiden van de control de control ook selecteert. Het zichtbaar maken gebeurt door het aanvinken

2 uur

Halve dag (4u)

Apps die moeten worden aangepast: Structuur Manager Apps die moeten worden aangepast: Structuur Manager

Zorgen voor het resizen van controls op het scherm via slepen De mogelijkheid om tijd op te nemen niet bij de timers zetten, maar als boolean bij de ronde

1 dag (8u)

3 dagen? (24u)

2 uur

5 uur

Apps die moeten worden aangepast: Structuur Manager Platform Manager Xlet Apps die moeten worden aangepast: Structuur Manager Content Manager Platform Manager Xlet
Tekstvak veranderen door Container

Meerdere schermen mogelijk maken zodat elke ronde een eigen layout heeft

3 dagen (24u)

6 dagen (48u)

Apps die moeten worden aangepast: Structuur Manager
Platform Manager integreren in de Content Manager zodat het meteen mogelijk is om te exporteren naar een bepaald platform.

5 minuten 2 uur

5 minuten Halve dag (4u)

Apps die moeten worden aangepast: Content Manager Platform Manager Apps die moeten worden aangepast: Content Manager Xlet
Stream Events doen werken

Beeld en audio als special in een container zetten

Halve dag (4u)

1dag (8u)

Apps die moeten worden aangepast: Xlet Milo

1 dag (8u)

2 dagen? (16u)

Min: 60u

Max: 127u

42

13. Appendix – Analyse
13.1 Algemeen

Er is een nieuwe verandering op til in de televisiewereld, namelijk de interactieve digitale televisie (iDTV). Deze nieuwe technologie laat interactie toe tussen de gebruiker en de TV-zenders. Op deze manier wordt het leuker voor de gebruiker, aangezien hij meer beschikbare informatie en controle krijgt. Hij kan ook nog eens kiezen waar en wanneer hij wat wil zien. Daarbij kan hij zelf eenvoudig deelnemen aan wedstrijden, een quiz, televoting, … Het enige wat je er voor nodig hebt is een settopbox. Op de site www.broadbandbananas.com kan je enkele filmpjes zien die de mogelijkheden van iDTV laat zien.
13.2 Probleem

Omdat iDTV ons de mogelijkheid geeft om een interactieve quiz te maken, willen we dit ook doen, maar hier hebben we steeds een programmeur voor nodig. We zouden graag hebben dat ook niet-programmeurs een quiz kunnen maken. Het is dus de bedoeling dat er op een eenvoudige en snelle manier een interactieve quiz gemaakt kan worden door 2 personen. De eerste persoon staat in voor de algemene opmaak van de quiz. De andere persoon verzorgt de inhoud. Deze personen werken niet samen en mogen elkaars werk niet beïnvloeden.
13.3 Oplossing

Er worden twee applicaties gemaakt. Het ene zorgt voor de algemene opmaak, het andere voor de data die wordt meegegeven. Het resultaat bevat de opmaak en data van de eigenlijke quiz. Met deze informatie kan de quiz op verschillende platformen gecreëerd worden. Het uiteindelijke resultaat hoeft dus niet alleen voor iDTV te zijn, maar kan ook bekeken worden door bijvoorbeeld een browser. De reden van de twee applicaties is simpelweg omdat de ene persoon het werk van de andere persoon dan niet beïnvloedt. De twee applicaties zijn eenvoudig te bedienen waardoor er geen programmeerkennis nodig is.

Voorbeeld: Piet en Jan werken beide voor de VRT. Er is een quiz over de slimste mens ter wereld die gemaakt moet worden voor iDTV, zodat de gebruiker thuis zelf kan meedoen aan de quiz.

43

Omdat het niet eenvoudig is om steeds vanaf het prille begin een volledige quiz te ontwerpen maken ze gebruik van deze toepassing die ervoor zorgt dat een quiz gemaakt wordt met enkele vlugge ingrepen. Piet zorgt voor de lay-out, het aantal ronden, … zodat het algemene idee van de quiz gemaakt is. Nu krijgt Jan de opdracht om voort te werken op de structuur die Piet reeds gemaakt heeft om daar de vragen en antwoorden aan toe te voegen.
13.4 Overzicht Algemene structuur

iDTV Quiz Browser …

Data

Algemene structuur

Dit is het begin van de ontwerpfase. Dit werk kan herbruikt worden voor meerdere afleveringen. De algemene structuur bevat vele onderwerpen zoals hoeveel rondes zijn er, hoeveel vragen per ronde, is er een introscherm, …

Data

De data applicatie steunt op de algemene structuur. Telkens men een andere ‘algemene structuur’ gebruikt zal deze applicatie ook anders zijn. Hier wordt de quiz aangevuld met tekst.

Quiz

De kern van de zaak. Wanneer de 2 voorgaande applicaties doorlopen zijn is de quiz structuur af. Dit kan gebruikt worden voor de verschillende platformen.

iDTV, Browser,…

Hier wordt ervoor gezorgd dat men de quiz converteert naar het juiste platform.

44

13.5 Overzicht Talen

Applicaties voor algemene structuur en data
Het zou interessant zijn om deze programma’s in C# te schrijven. Deze taal heeft een goede ondersteuning voor xml en dit is dan ook de taal waar het resultaat van deze programma’s naartoe kan worden geschreven.

De quiz
Dit document is de basis van de quiz. Het meest voor de hand liggende is xml. Deze taal is door veel programmeurs gekend en wanneer er verdere uitbreidingen worden geschreven is de leercurve kleiner.

iDTV
Deze keuze is snel gemaakt. MHP/Java is de enige taal die de settopbox ondersteunt.
13.6 Analyse

13.6.1 Wat bevat een quiz nu eigenlijk? Als we ons een algemeen beeld vormen van een quiz denken we meteen aan verschillende vragenrondes. Deze rondes bevatten een aantal vragen en deze vragen hebben dan weer een paar antwoorden. Elke vraag bevat één of meerdere correcte antwoorden, die dan punten oplevert. Een quiz heeft natuurlijk steeds een naam. Denk maar aan ‘De thuisploeg’ of ‘Blokken’. 13.6.2 Dieper ingaan op een quiz Een quiz houdt meer in dan een paar rondes en vragen. Hoe werkt het puntensysteem? Hoe kun je stemmen? Op deze punten gaan we nu iets dieper ingaan.

De score
Als je al eens meegespeeld hebt met ‘de thuisploeg’ dan weet je dat je per vraag met een correct antwoord één punt verdient. Wanneer de spelers thuis niet meer kunnen meespelen zijn er soms twee correcte antwoorden. De score wordt dan per correct

45

antwoord berekend. Maar dit is niet in alle quizzen zo. Het kan goed zijn dat je alle correcte antwoorden moet geven om slechts één punt te verdienen. Het kan zelfs zijn dat je anders punten verliest! Een score is dus heel verschillend van quiz tot quiz. Een moeilijke vraag kan meer punten opleveren dan een makkelijke vraag. Bij sommige quizzen kan je ook meer punten krijgen als je vlugger het correcte antwoord raadt. Het hoeven daarom niet altijd punten te zijn zoals in Blokken, maar het is ook mogelijk om met geld te werken zoals in ‘De Pappenheimers’. Wanneer is zo een score precies zichtbaar? Zie je de punten steeds op je scherm of enkel wanneer een ronde voltooid is. Of misschien wil je dat ze enkel op het einde van de quiz zichtbaar zijn.

De Timer
Omdat een quiz niet eeuwig kan blijven duren wordt er tijd gezet op een vraag. In die tijd mag je een antwoord geven op de vraag. Blijf je binnen die tijd dan is het antwoord geldig, anders niet. Het aantal seconden dat je krijgt om te antwoorden hangt steeds af van quiz tot quiz. Het is zelfs mogelijk dat de timer over de hele quiz heen loopt. Als je kijkt naar ‘De slimste mens’ dan zie je dat het puntensysteem eigenlijk samenloopt met de timer. Hoe wordt een timer precies in beeld gebracht? In de ene quiz wordt deze helemaal niet getoond (bijvoorbeeld in Blokken). In een andere quiz is dit een schuifbalk die steeds kleiner wordt, soms is het zelf een klein klokje. De werking is hier steeds hetzelfde, enkel het uitzicht is anders. Een timer kan ook variabel zijn afhankelijk van de persoon die de quiz oplost. Hoe beter die persoon iets gedaan heeft (bv een spel goed gespeeld of een aantal vragen na elkaar correct opgelost), hoe meer tijd hij krijgt voor de finale. Hier wordt de timer dus opgebouwd afhankelijk van bepaalde factoren. Dit kan ook omgekeerd gebeuren. Je krijgt een bepaald aantal tijd, maar deze wordt afgebouwd als je vragen niet kan oplossen. Uiteindelijk is er nog het systeem van triggers. Een voorbeeldje: Een persoon krijgt 1 minuut om zo veel mogelijk vragen op te lossen. Wanneer de ene vraag opgelost is krijgt hij meteen de andere. Je kan hier dus al zien dat als je deze quiz thuis meespeelt, je enkel mag antwoorden voordat de persoon op televisie het antwoord heeft gezegd. Er wordt dus een signaal gegeven vanuit de tv-studio die het einde van de antwoordtijd activeert. Een kleine illustratie vindt u op de volgende pagina.

46

Werking van Triggers Speler op TV

Thuisspeler

Geeft antwoord

stopt de antwoordtijd via trigger

TV Studio

Vragen
Een vraag hoeft niet steeds enkel tekst te zijn, maar kan ook samen met een tekening of foto zijn. Het is ook mogelijk dat er geen vraag is en er enkel antwoorden te zien zijn. Bij deze situatie vertelt de quizmaster de vraag en hoeft er niets te zien zijn op het scherm buiten de antwoordmogelijkheden. Er kunnen ook tips meegegeven worden per vraag. Na een bepaalde tijd komt er een tip tevoorschijn. Hoe meer tips hoe makkelijker de vraag wordt, maar hoe minder punten je krijgt. Het aantal tips loopt dan samen met de timer. Hoe langer je timer loopt, hoe minder punten. Een andere mogelijkheid is het uitvallen van personen. Wanneer je niet bij de top behoort mag je niet meer verder spelen. Er valt dus steeds iemand uit waarvoor de quiz niet meer beschikbaar is.

Eigenschappen voor een interactieve quiz
Omdat we hier steeds met een interactieve quiz te maken hebben mogen we enkele punten die specifiek zijn voor een interactieve quiz niet uit het oog verliezen. Is er een intro scherm aanwezig? Zal de gebruiker voordat de quiz begint een kleine uitleg krijgen over hoe het systeem precies in elkaar zit? Wat ook specifiek is bij een interactieve quiz is een scherm dat steeds aanwezig is. Zo weet de gebruiker dat de applicatie werkt, ook al is hij op dat moment geen vraag aan het oplossen. Wat je hier ook kan toevoegen is het wachtsysteem. Hoe laat men de gebruiker weten dat men aan het wachten is op een volgende vraag? Bij vele quizzen staat er op het scherm ‘de volgende vraag komt er zo aan’, maar soms staat er ook helemaal niets. De werking van het antwoorden is behoorlijk uitgebreid. De mogelijkheden om te antwoorden hangen af van de quiz. In ‘de thuisploeg’ worden de 4 kleurknoppen gebruikt, maar het kan evengoed zijn dat er cijfers of letters gebruikt worden wanneer er meer dan 4 antwoorden voor een vraag zijn. De antwoorden kunnen bevestigd worden door op de ‘ok’ knop te duwen of het kan ook mogelijk zijn om te 47

wachten tot de timer afgelopen is en de laatste keuze dan als definitief antwoord te gebruiken. Een antwoord hoeft ook niet enkel tekst te zijn. iDTV biedt ons de mogelijkheid om met het keyboard of de afstandsbediening zelf een antwoord in te vullen. Een belangrijk onderdeel bij een interactieve quiz is de manier waarop deze de score verwerkt. Kan de quiz lokaal gezet worden of is er verbinding nodig met de server om de score te berekenen. Een groot verschil is dat de lokale versie gehacked kan worden, zodat je er niet zeker van kan zijn dat de score wel eerlijk is. Een interactieve quiz heeft ook steeds een scherm waar de vragen opkomen. Hoe dit eruit ziet hangt van quiz tot quiz af.

Technische details
Waar je op moet letten bij het switchen van computer naar televisie is de non-square pixels. De pixels op een computer zijn vierkant en op televisie zijn deze rechthoekig. Een optie om te kiezen tussen de 4:3 en 16:9 aspect ratio is ook belangrijk. Bij het kiezen van een intro scherm, een wacht scherm en dergelijke is het belangrijk bij de ontwikkelfase om ook de coördinaten mee te geven waar het precieze scherm moet komen. Het is belangrijk om rekening te houden met de verschillende formaten. De bedoeling is dat iedereen op gelijk welke standaard een quiz kan ontwikkelen. Voor PAL houdt dit dus in dat er gewerkt wordt in een 720x576 formaat, maar voor NTSC is dit 720x480. HDTV werkt met 1280x720 of 1920x1080 beeldpunten.

48

13.7 Verwoording van de functionaliteiten

13.7.1 Algemene structuur
Bevat.. Naam van de quiz Achtergrond Hoeveel rondes Hoeveel vragen per ronde Verwoording Bevat de naam waar de quiz herkenbaar mee is. De algemene Look and Feel van de quiz - image - x en y positie De quiz kan uit verschillende grotere delen bestaan. Hier bepaalt men hoeveel rondes er zijn Je kan kiezen hoeveel vragen er per ronde zijn. Hoe worden ze gedisplayed - aantal rijen en kolommen - x en y positie; breedte - Input o Tekstueel: Via het keyboard. o 4 kleuren: De 4 kleuren die op het bakje staan. Hier kan je maximum 4 antwoorden verwachten. o Cijfers: Dit is ook mogelijk via het bakje, maar geeft meer mogelijkheden dan de kleuren De mogelijkheid bestaat om twee soorten quiz te maken. Lokaal: Op deze manier speelt de hele quiz zich af op het DTV bakje van de gebruiker. Er wordt geen connectie met de servers van VRT gemaakt. Het nadeel is dat men deze manier kan hacken en zo de quiz kan manipuleren. Server: De antwoorden worden over ip naar de server gestuurd. Deze server berekent dan de score en zorgt ervoor dat deze score teruggestuurd wordt. Op deze manier is de applicatie een stuk veiliger, maar ook veel duurder. Zichtbaar: De score is steeds zichtbaar op het scherm Soms zichtbaar: De score wordt enkel getoond als deze verandert. Niet zichtbaar: Er wordt enkel op het eind van de quiz een score getoond. - image - x en y positie - lettertype en grootte Actief: Er wordt steeds een Timer getriggerd bij de start van de vraag Non-actief: De Timer wordt in real time gestopt

Lokaal of Server

Score

Timer

49

Wachten op vraag

Algemeen scherm

Bevestiging

- slider, klok, teller - image Is er geen of wel een scherm te zien - image - x en y positie - lettertype en size Welk scherm is er de hele tijd te zien? Zodat de gebruiker weet dat het systeem werkt. - image - x en y positie Dient er op ‘ok’ gedrukt te worden om een bevestiging van het antwoord te geven? Anders wordt het antwoord genomen dat het laatst is gekozen nadat de tijd vestreken is. - ok knop - x en y positie Wel of geen intro scherm beschikbaar. - image - x en y positie

Intro scherm Conversie van square naar rectangular pixels. Keuze scherm Tip

4:3 of 16:9 ; PAL, NTSC, HDTV Worden er tips meegegeven?

50

13.8 Analyse – Quizzen

Algemeen Totaal aantal quizzen Periode Zenders 27 7 maart 2005 – 27 maart 2005 België:

Duitsland:

Engeland:

Frankrijk:

Nederland:

Kenmerken

Rondes

-

1 of meerdere rondes 1 of meerdere vragen per ronde Mogelijk een finale

Timer

-

Soorten Timers Geen specifieke timer Steeds hetzelfde aantal seconden • Aantal seconden begint vanaf het begin van de vraagstelling • Aantal seconden begint na de vraagstelling • Aantal seconden begint wanneer de studio beslist. Per ronde een ander aantal seconden Algemene timer voor de hele ronde 2 timers na een vraagstelling 51

-

• 1 voor de eerste (vb: publiek of groep medespelers) • 1 voor de tweede (vb: hoofdquizzer) Antwoordtijd opnemen • Vb: snelste antwoordtijd mag naar volgende ronde. Timer is afhankelijk • Van punten in vorige rondes • Van tijd die over was in vorige rondes Elke ronde kan er een ander soort timer zijn.

Score

-

Mogelijkheden Elke ronde blijft puntentelling dezelfde Elke ronde verandert puntentelling Elke vraag verandert puntentelling Puntentelling kan afhankelijk zijn van: • Niets • Gekregen hints • Timer • Medespelers (tegenspelers of afvallers) • Geluksitem (vb: rad van fortuin) • Soort vraag (makkelijk, moeilijk, …) Indien fout antwoord: • Negatieve puntentelling. • Alles blijft gelijk. • Tegenstanders krijgen bonus als ze het juist hebben Punten zijn uiteindelijke seconden voor finale Je krijgt een beginbedrag (Maximum bedrag) • De punten gaan hier naar beneden. Score loopt gelijk met de teller. Iedere seconde gaan er punten af. Mogelijkheid om jokers te verdienen bij een bepaalde score in een ronde. Volgende ronde enkel beschikbaar indien je niet het minst scoort. Per ronde begint de score terug opnieuw

Vragen

-

-

Gewone vraag (= puur tekst) Gewone vraag met: Foto Video Geluid Verschillende categorieën Makkelijk Moeilijk … 52

-

Thema dat aan de vraag of de ronde vooraf gaat Geen vraag: enkel één of meerdere tips per ronde Bij algemene timer worden vragen gesteld tot einde van de timer.

Antwoorden
-

-

Mogelijkheden Meerkeuze: • 2 tot 9 meerkeuze antwoorden. • Letters (A, B, C, D, …) • Cijfers (1, 2, 3, 4, …) • Kleuren (rood, groen, geel, blauw) Zelf zeggen Schrijven Per ronde kan het een andere antwoordmogelijkheid zijn

Lay-out

-

-

Tussenscore van een bepaalde ronde zichtbaar per vraag Tussenscore van een bepaalde ronde zichtbaar na die bepaalde ronde Totale score is wel of niet zichtbaar Tussen de vragen Tussen de rondes Op het eind van de quiz Helemaal niet Eerst vraag zichtbaar, na voorlezen komen de antwoorden (meerkeuze) erop. Vraag en meerkeuze antwoorden komen op hetzelfde moment op het scherm. Vraag is wel of niet zichtbaar Antwoorden zijn wel of niet zichtbaar Juiste antwoord wel of niet zichtbaar na beantwoording Vraag en antwoorden zichtbaar onderaan het scherm Vraag en antwoorden zichtbaar over het hele scherm Timer zichtbaar Altijd Vanaf een bepaalde tijd Tijdens vraag Niet

Hints – Jokers – Pasbeurten – Extra
-

Hints aanwezig 1 of meerdere hints volledig in het begin 1 of meerdere hints tijdens de antwoordtijd op geregelde tijdstippen 1 of meerdere hints tijdens de antwoordtijd op zelf bepaalde tijdstippen 53

-

-

-

-

-

Hints kopen door punten (of geld) af te geven Pasbeurten aanwezig Onbeperkt passen zonder punten- of tijdsverlies Onbeperkt passen met punten- of tijdsverlies Beperkt passen zonder punten- of tijdsverlies Beperkt passen met punten- of tijdsverlies Jokers Als een vraag fout is wordt ze toch goedgekeurd 1 of meerdere jokers • Inzetten met punten- of tijdsverlies • Inzetten zonder punten- of tijdsverlies Verdubbelaar Totaal score wordt verdubbeld Vraagscore wordt verdubbeld • Indien fout: dubbel van de punten kwijt • Indien fout: dubbel van de punten niet kwijt Punten opzij zetten Mogelijkheid om punten opzij te zetten die je niet meer kan verliezen Indien punten opzij gezet: • Terug van 0 beginnen Verandering vraagstelling Na een bepaald tijdstip de vraag veranderen 0,1 of meerdere keren Opbieden van geld waar men die vraag voor speelt Punten worden hier dynamisch bepaald Maximum is hun eigen bedrag. 50:50 Meerkeuze antwoorden verminderen met de helft. 1 of meerdere 50:50 hints Hulplijn Mogelijkheid om antwoord te vragen aan een Persoon 1 of meerdere hulplijn hints Publiek Mogelijkheid om antwoord te vragen aan het publiek 1 of meerdere publiek hints

Problemen bij interactiviteit Wanneer een interactieve quiz gemaakt wordt brengt dit een aantal problemen met zich mee. Tussen de quizzer thuis en degene op tv zijn namelijk enkele verschillen.

Ik ga het zeggen Walter…:
Een quizmaster gaat een thuisgebruiker niet kunnen horen. In vele quizzen dient het antwoord gezegd te worden. Welke mogelijkheden biedt de iDTV ons dan wel? 54

o het is mogelijk om het antwoord te typen. Een keyboard is bij een settopbox bijgeleverd (+) Meestal moet men binnen de tijd een antwoord geven. Het antwoord typen duurt langer dan het uitspreken (-) Niet iedereen heeft steeds het keyboard bij de hand (-) Je kan spellingsfouten maken (-) o Meerkeuze antwoord maken van het antwoord Geen keyboard nodig De vraag wordt makkelijker De quiz is niet exact hetzelfde als te zien op tv

(+) (-)(+) (-)

o Digitaal keyboard zichtbaar op het scherm waarmee je kunt typen via de pijltjestoetsen en de ok knop Geen keyboard nodig (+) Duurt nog langer dan met een keyboard om het antwoord te geven (-) Neemt een deel van het scherm weg (-) Spellingsfouten zijn mogelijk (-)

Ik gok op C…:
Wanneer je een quiz met meerkeuze vragen te zien krijgt gebeurt het vaak dat je kunt kiezen tussen A, B, C, … Maar wat als dat keyboard nu enkele meters van onze luie zetel ligt? o De kleuren op de afstandsbediening gebruiken Eenvoudig om een kleur te kiezen Je bent beperkt tot 4 kleuren en dus ook 4 antwoorden. o De cijfers op de afstandsbediening gebruiken Geen beperking tot 4, maar tot 10 antwoorden (+) Cijfers moeilijker te vinden dan kleuren

(+) (-)

(-)

o Toch de letters behouden Je beperking voor meerkeuze antwoorden gaan tot 26 (+) Je kan werken met het GSM systeem op afstandsbediening (+) Keyboard nodig (-) Lastig om letters te zoeken op het keyboard (-)

Ik zie tweemaal de antwoorden:
55

Het gebeurt vaak dat wanneer je naar een niet-interactieve quiz kijkt toch de meerkeuze antwoorden te zien krijgt. Je ziet dan wat de quizzer aanduidt als correct antwoord en of dit antwoord goed is. Als je zelf meedoet met de quiz is dit niet interessant om te zien en heb je liever dat je je eigen antwoorden ziet. Hoe lossen we dit dan op? o We zorgen voor een laag boven de tv-laag Je ziet je eigen input Rekening houden met 4:3 en 16:9 Zorgen dat dit goed gepositioneerd is

(+) (-) (-)

o We zorgen dat de TV geen antwoorden meer laat zien Personen die op dat moment geen iDTV gebruiken zien niets (-) Werking tussen tv en interactieve tv zijn niet gescheiden (-)

Ik heb het goede antwoord al op tv gehoord:
Wanneer een quizzer zoveel mogelijk vragen in een bepaalde tijd moet oplossen kan dit soms een probleem zijn. Aangezien jij op de interactieve quiz dezelfde vragen krijgt als de quizzer op tv is het mogelijk dat het antwoord heel erg vlug komt. Hoe lossen we dit op? o We houden geen rekening met de quizzer op tv en lossen de vragen op eigen tempo op Je kan op je eigen tempo de vragen oplossen (+) Het is mogelijk dat je de antwoorden reeds op voorhand hoort (-) o We houden rekening met de quizzer op tv via triggering Wanneer je het antwoord hoort kan je zelf niet meer antwoorden Je hebt zelf geen controle over de tijdslimiet

(+) (-)

Publiek en hulplijnen:
Bij verscheidene quizzen kun je de hulp van het publiek oproepen of iemand die je kent bellen. Hoe doen we dit bij interactieve televisie? o Publiek en hulplijn hints niet beschikbaar maken Er kunnen al mensen naast jou zitten die je kunnen helpen bij het oplossen van de vragen. Je kan tenslotte zoveel mensen bellen die je wilt tijdens de vragen. (+)

56

Je kunt enkel profiteren van de hulplijnen als de quizzer op tv die opvraagt. (-)(+) Het unieke van die quiz is niet aanwezig (-) o Publiek en hulplijn simuleren door een computer De features van de quiz blijven aanwezig Niet realistisch

(+) (-)

En wat kunnen wij winnen:
Wanneer een quiz wordt gespeeld is er steeds een winnaar. Die winnaar krijgt meestal nog een prijs ook wanneer hij goed gespeeld heeft. Krijgen wij thuis ook zoiets als we goed spelen? o geen speciale prijs. Enkel je score wordt getoond goedkoop, kan offline werken enthousiasme om te spelen is minder

(+) (-)

o een top 10 score. De beste spelers worden getoond enthousiasme ligt hoger. Iedereen wil in de top-10 komen (+) Er dient een connectie te zijn naar server die score bijhoudt.(-) o Een echte prijs voor de beste speler Enthousiasme is groot wanneer er iets te winnen valt (+) Bij een quiz heb je maximum 20 spelers, bij een interactieve quiz heb je vele duizenden deelnemers. De kans dat er heel wat winnaars zijn is dus groot. (-) Er dient een connectie te zijn die score doorstuurt (-)

Ik speel beter dan de quizzer op tv:
Wat gebeurt er als je het beter doet als de tv quizzer en dat de quiz zo in elkaar zit dat de quiz afgelopen is wanneer hij een fout antwoord heeft gegeven? o De quiz stopt ook De quiz blijft gelijk met de tv uitzending Je moet stoppen, ook al ben je nog bezig Geeft geen gevoel van voldoening

(+) (-) (-)

o Je doet verder Je score hangt af van je kennis en niet van wat er op tv gebeurt (+) Je stopt als je klaar bent (+)

57

Het tv programma kan al afgelopen zijn wat er voor zorgt dat je niet meer verder kan spelen (-) o Je doet de volgende keer dat het programma op tv is verder De score blijft bewaard Je kan naar de volgende programma’s kijken De quiz blijft gelijk met de uitzending Je hebt geen eindscore op het einde van de quiz.

(+) (+) (+) (-)

58

10 voor Taal
5 rondes en een finale

1 jaar gratis
3 rondes en een finale

1 fach Super!
3 rondes en een finale

A question of sport
7 rondes

Blokken
3 rondes en een finale

Das Quiz
1 ronde

De kortste quiz
1 ronde

De Tabel van Mendelejev
5 rondes en een finale

De Thuisploeg
4 rondes en een finale

Rondes

aantal seconden afhankelijk per ronde. Finale: algemene timer voor hele ronde (60 seconden)

8 seconden voor achterban (enkel vraag zichtbaar) 5 seconden voor antwoord (ook antwoorden zichtbaar) Finale: Geen specifieke Timer.

5 seconden na vraag

Geen specifieke Timer.

aantal seconden afhankelijk per ronde. Finale: algemene timer voor hele ronde (120 seconden)

Geen specifieke Timer.

Na vraagstelling krijgt men 5 seconden.

Timer

1e ronde: 5 sec na vraagstelling na vraagstelling krijgt men 7 2e ronde: 5 sec na vraagstelling seconden. 3e ronde: 3 minuten over hele ronde. Dit ook bij de finale 4e ronde: geen specifieke Timer 5e ronde: 30 sec per vraag Finale: geen specifieke Timer

Score

per ronde afhankelijk. Ook afhankelijk van aantal hints dat je gekregen hebt. Komt erop neer dat je steeds punten krijgt. Degene met het meest aantal punten gaat naar de finale. Finale: per vraag 10 punten + aantal seconden over * 10

afhankelijk van het aantal personen dat in het vak van de goede antwoorden staat.

per ronde afhankelijk

per ronde afhankelijk. Soms 2 punten per ronde. Indien fout dan bonus voor de tegenstrevers als ze het correct antwoorden. Soms 1 punt per ronde indien juist Indien fout -1 punt.

per ronde en per vraag afhankelijk. Je krijgt punten per correct antwoord + een aantal blokjes waarmee je tetris kan spelen. Per lijn verdien je extra punten in 2e ronde: mogelijkheid om zelf aantal punten aan een vraag te koppelen.

Per correct antwoord krijg je een bepaalde geldprijs die steeds groter wordt. Hoe meer correcte antwoorden hoe groter de geldprijs

Quizzer moet ervoor zorgen dat hij niet het minst aantal correcte antwoorden heeft. Indien dit zo is krijgt hij geld en gaat hij door. Quizmaster moet ervoor zorgen dat hij 3 goeie vragen stelt (= quizzers antwoorden niet alledrie hetzelfde)

1 punt per correct antwoord. De punten worden samengeteld per ploeg. In de finale hangt het aantal punten per vraag af.

1 punt per correct antwoord, indien fout geen punt. Degene met de meeste punten gaat door.

Finale: afhankelijk van het soort vraag.

woord of zin gewone vraag. gewone vraag. per ronde is er steeds een Er kan foto,video- of audiofragment hoofdvraag. Vb: 'omschrijf cryptisch?' Finale: makkelijk, tussenin en moeilijk aan vooraf gaan

gewone vraag. Er kan foto, video- of audiofragment aan vooraf gaan.

gewone vraag. Er kan een foto, video- of audiofragment aan vooraf gaan

gewone vraag. Maximum 12 vragen. Tot 300.000 euro.

Maximum 6 gewone vragen.

gewone vraag met eventueel video, foto of audio.

Gewone vraag met eventueel video, foto of audio. Een bepaalde ronde heeft steeds vragen over hetzelfde thema. Elke ronde heeft evenveel vragen.

Vragen

Voor een vraag kan het zijn dat je Voor een vraag gaat er een thema of moet kiezen voor een bepaald thema. tip aan vooraf. Je kan hier dan beslissen of je wil antwoorden en dan wordt de werkelijke vraag gesteld.

Antwoorden

1e ronde: meerkeuze 2e ronde: zelf typen 3e ronde: selecteren uit vraag 4e ronde: zelf typen 5e ronde: meerkeuze finale: meerkeuze

1e ronde: meerkeuze (4) 2e ronde: meerkeuze (3) 3e ronde: meerkeuze (2) in de finale: zelf zeggen

meerkeuze antwoorden

zelf zeggen. 5e ronde: meerkeuze

Per vraag afhankelijk. Soms meerkeuze Soms zelf zeggen

meerkeuze antwoord (4) 1e persoon antwoord. 2e persoon bevestigd of geeft veto. Indien veto telt de score niet. Indien bevestiging telt score wel. Keuze van antwoorden via letters (A,B,C,D)

zelf schrijven

meerkeuze antwoord (3) zelf zeggen

meerkeuze antwoord (4) Beantwoorden van de vragen gebeurd via de kleurknoppen van je afstandsbediening. In de laatste ronde kan er meer dan 1 correct antwoord zijn.

Tussenscore per vraag zichtbaar. Eindscore tussen de rondes zichtbaar. Vragen en antwoorden onderaan het scherm

Eerst vraag zichtbaar tot timer van vraag en antwoorden zichtbaar achterban is afgelopen. Dan Score tussen de ronden zichtbaar antwoorden ook zichtbaar Het juiste antwoord is zichtbaar nadat de vraag is beantwoord. Aantal punten is per ronde zichtbaar op het hele scherm

Vraag niet zichtbaar. Foto of videofragment wel zichtbaar voor de vraag. Score zichtbaar na een vraag.

Vragen en eventueel meerkeuze niet zichtbaar op het scherm. Score steeds zichtbaar. Het juiste antwoord wordt verteld door de quizmaster

Lay-out

Score enkel zichtbaar op einde van vraag. Aantal veto's is dan ook zichtbaar. Vraag en antwoorden zichtbaar onderaan het scherm Het juiste antwoord is zichtbaar nadat de tijd op is

Score zichtbaar tussen de rondes Vraag zichtbaar onderaan het scherm. Wanneer tijd verstreken is door. Vraag en antwoorden zichtbaar zie je de antwoorden onder de vraag. onderaan het scherm. Het juiste antwoord wordt gezegd door de quizmaster

Score krijg je niet te zien. Onderaan je scherm zie je de vraag en de antwoorden. Het juiste antwoord is zichtbaar nadat de tijd op is

Hints aanwezig in bepaalde rondes. Totale antwoordtijd: 21 seconden. Indien 2 hints: hint 1: op 7 seconden hint 2: op 14 seconden

Je hoeft enkel de vraag te beantwoorden als je bij de 3 laatste van de score zit. Wanneer je daar niet bij zit speel je mee achteraan het spel.

geen tips

geen tips.

Een hint wordt voor de vraag gegeven. In finale kan je passen, dan wordt meteen nieuwe vraag gegeven Tijdens finale komen er hints (letters die het woord vormen) tevoorschijn als je goed antwoord.

Er kan een veto gebruikt worden. Geen tips, geen passen, geen Hierdoor verlies je niet als je verkeerd extra's. bent. Extra: Reclame in het scherm tijdens denktijd.

Hint: in de finale krijg je twee letters geen tips of pasbeurten. die in de zin of het woord voorkomen, waaronder al zeker de beginletter. Dit Je hebt teletekst nodig. krijg je in het begin van de vraag reeds.

Tips - Pas - Extra

Een tegen 100
1 ronde

Jet Set
3 rondes en finale

Mastermind
8 rondes

Nevermind the Buzzcocks
4 rondes

Per seconde wijzer

Popquiz a gogo

Puzzeltijd
4 rondes en 1 finale

Questions pour un champion

Rad van Fortuin
2 rondes en 1 finale

4 rondes per speler. 2 rondes Er kunnen meerdere spelers per dag zijn, dus dan beginnen de ronden terug van het begin.

2 rondes en 1 finale

Rondes

6 seconden voor het publiek 6 seconden er bij voor de quizzer

1 minuut per ronde

120 seconden per ronde

geen Timer

200 seconden per ronde In de laatste ronde wordt de resterende tijd van de vorige rondes erbij geteld

geen specifieke Timer.

1e en 2e ronde: 10 seconden 3e en 4e ronde: 5 seconden Finale: over de hele ronde 60 seconden

1e ronde: 3 seconden om te antwoorden 2e ronde: 35 seconden over de hele ronde finale: bepaald aantal seconden per vraag + antwoord.

rondes : 5 seconden om letter te kiezen finale: 10 seconden om het woord te raden.

Timer

Elke speelbeurt hangt de score af van het aantal afvallers. Prijs per afvaller = 50.000 / overblijvers

geen score. Wel uitvallen indien je een rode kaart hebt.

1 punt voor een correct antwoord

1 punt per correct antwoord

Het geld (en dus de score die je verdient) hangt af van het aantal juiste antwoorden. De resterende seconden worden opgeteld in de finale.

afhankelijk van de soort vraag. 1 punt voor makkelijk. 2 punten voor behoorlijk 3 punten voor moeilijk 4 punten voor heel moeilijk Indien gedrukt: Dubbel van de punten bij of als fout: dubbel van de punten af.

Rondes: steeds 10 punten voor een correct antwoord. Finale: per correct antwoord een groter geldbedrag. Indien fout ben je alles verloren.

Ronde 1: steeds 1 punt voor een correct antwoord. Ronde 2: punt erbij indien juist, punt eraf indien fout. Hoogste score blijft bewaard. Finale: punten hangen af van de Timer

Score

Je krijgt ‘aantal afvallers * prijs per afvaller’ keer punten. Mogelijkheid bestaat om verdubbelaar in te zetten. Dit kan je maar 1 maal doen. 2 soorten vragen. Moeilijk of gemakkelijk. Je kan zelf kiezen welke vraag je wil als ze je het thema tonen. gewone vraag. gewone vraag. Vragen blijven gesteld worden tot timer op is. gewone vraag

Je score hangt af van wat je draait aan het rad. Wanneer je een klinker koopt gaat er een bedrag van je score af. Wanneer een foute medeklinker gaat er 1 beurt af van je beurten.

Voor elke ronde een thema 9 vragen. Deze bestaan uit tekst en een tekening of audiofragment. De rondes gaan over een bepaald thema.

4 soorten vragen makkelijk, behoorlijk, moeilijk, heel moeilijk

normale vraag, een door elkaar geschud woord, een aantal woorden

normale vraag.

Geen vragen. Enkel een tip naar het woord dat dient geraden te worden.

Vragen

meerkeuze antwoord (3) eerst moet het publiek antwoorden. Dan kan de quizzer antwoorden.

zelf zeggen.

zelf zeggen.

zelf zeggen of meerkeuze

Antwoorden

meerkeuze antwoord (9) zelf zeggen. Beantwoorden van de vragen gebeurt hier door het juiste antwoord aan te duiden. De negen vragen hebben dezelfde antwoordreeks, dus op het eind heb je maar 1 mogelijk antwoord meer.

zelf zeggen.

Zelf zeggen.

Zelf zeggen. Wanneer iemand het weet is de ronde gedaan. Je kan maar één maal het antwoord raden. Indien fout eindigt de ronde hier voor jou.

Vraag en keuzeantwoorden zijn altijd Timer steeds zichtbaar. Geen vragen zichtbaar. Het juiste antwoord is zichtbaar nadat de tijd op is

score steeds zichtbaar. Geen vragen geen vragen of antwoorden zichtbaar. De vragen en antwoorden zijn of antwoorden zichtbaar. Enkel soms de video of foto's zichtbaar over het hele scherm. De voorlopige score (geldbedrag) is zichtbaar onderaan het scherm.

Vraag niet zichtbaar. Muziekfragment, audiofragment of foto wel. Score steeds zichtbaar

Vragen zijn zichtbaar onderaan het scherm. Er zijn geen antwoorden te zien omdat je die zelf moet zeggen. Score wel zichtbaar

vragen zijn niet zichtbaar. Score is per ronde, niet in het totaal. Steeds zichtbaar

score is steeds zichtbaar. Er zijn geen vragen

Lay-out

Het is mogelijk om een vraag te passen. Per pasbeurt gaat er wel geld af. Je kan maximaal 3 maal passen. De verdubbelaar kan je ook eenmaal inzetten. Dit verdubbelt het aantal punten dat je zou winnen.

geen tips

geen tips of pasbeurten

geen tips

Jokers: Deze kunnen na de antwoorden worden ingezet. Wanneer je dan een fout antwoord hebt telt dit niet mee. Een joker verdien je wanneer je een vragenreeks helemaal goed hebt. Je begint met 2 jokers. Wanneer gepast wordt, dan kan je op het eind van de vragenreeks het antwoord invullen

Verdubbelaar als je afdrukt. Dit verdubbelt de score van de vraag. Wanneer je dit fout hebt gaan de dubbele punten van je score

Bij bepaalde rondes worden er op zekere tijdstippen tips gegeven.

geen Tips.

1 tip die reeds te zien is in het begin.

Tips - Pas - Extra

Schuif Af
1 ronde

That's the Question
1 ronde en 1 finale

The weakest link
8 rondes en 1 finale

Toeters en Bellen
2 rondes en per ronde een finale

Tout vu Tout lu
3 rondes en een finale

Twee voor Twaalf
3 rondes

Rondes

het antwoord binnen de 10 seconden ronde: 5 seconden om antwoord te geven geven finale: de verdiende score wordt de timer over de hele finale heen

ronde: binnen de 5 seconden antwoorden finale: 60 seconden

Als ze zelf willen beslissen ze dat het nog 2 minuten te gaan is. Om de n aantal minuten wordt de prijs verhoogt en worden er ook tips gegeven.

geen specifieke Timer om te antwoorden. Opbieden is 10 seconden.

1e ronde: 13 minuten 2e ronde: 12 minuten 3e ronde: 11 minuten

Timer

Finale: 3 minuten over de hele ronde steeds 2 minuten voor het zoeken van het twaalfletter woord.

Per correct antwoord verdien je 1 punt (een trivia blokje) Bij een score van 6 (blokjes) heb je gewonnen. Degene met de meeste punten wint dus.

De punten zijn eigenlijk seconden voor in de finale. Bij een juist antwoord: 1 seconde Als je de vraag en antwoord raadt: 5 seconden

Degene die het slechtst speelt volgens de medespelers valt eruit. Finale: bij goed antwoord ga je een stapje hoger (meer geld). Bij fout antwoord ga je een stapje lager (minder geld).

Score

Er is geen score, maar enkel een Je hebt een beginbedrag. Dit gaat Score loopt gelijk met Timer. geldbedrag dat steeds omhoog gaat. steeds naar beneden afhankelijk van Je begint met 600 euro en hoe verder wie het juiste of foute antwoord zegt. je tijd loopt hoe meer geld er van het bedrag afgaat. Finale is geen quiz, maar een spelletje waar je gewoon de prijs kiest.

normale vraag.

normale vraag.

normale vraag.

een woord dat door elkaar is geschud.

normale vraag.

Gewone vraag met audio, video of fotomateriaal

Vragen

meerkeuze antwoord. Soms 2, soms zelf zeggen. Het antwoord moet dan 3 meerkeuze antwoorden. de vraag en het antwoord zijn. Het is ook mogelijk dat je het zelf moet typen.

3 meerkeuze antwoorden en zelf typen

zelf zeggen.

meerkeuze (4 antwoorden) keuze via cijfers (1,2,3,4) In finale: zelf zeggen

zelf zeggen. Eerste letter van het antwoord wordt onthouden

Antwoorden

score is steeds zichtbaar. Vragen niet De vraag is steeds zichtbaar onderaan het scherm. Aantal seconden is ook zichtbaar. Score ook steeds zichtbaar

de vraag en de eventuele meerkeuze De vraag staat onderaan het scherm. Score steeds zichtaar. Vragen en antwoorden zijn niet zichtbaar. Ook het geldbedrag staat onderaan antwoord onderaan het scherm samen met de resterende tijd (enkel zichtbaar. In de finale is de score wel zichtbaar laatste twee minuten).

de vraag en foto staan onderaan het scherm. Score is steeds zichtbaar.

Lay-out

geen tips of pasbeurten. Extra: Om het punt te verdienen na een correct antwoord dien je door een ritser te gaan en een trivia blokje mee te nemen. Er wordt wel eens een tip gegeven, maar dit hoort niet bij de quiz. Eerder improvisatie

mogelijk om geld opzij te zetten in de Om de n aantal minuten worden er finale. Wanneer je dit doet moet je tips gegeven. De vraag kan ook wel terug van helemaal beneden anders gesteld worden dan. beginnen.

opbieden van aantal geld dat er mogelijk kan afgaan voor de werkelijke vraag is gesteld. Je krijgt enkel een tip over wat de vraag zal gaan.

Mogelijkheid om een letter te kopen voor een geldbedrag.

Tips - Pas - Extra

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.