Ein interaktives Tabletop-Spiel auf Basis von Arduino und Virtools
Transcription
Ein interaktives Tabletop-Spiel auf Basis von Arduino und Virtools
Ein interaktives Tabletop-Spiel auf Basis von Arduino und Virtools Jakob F. Leitner DIPLOMARBEIT 05/1/0305/016 eingereicht am Fachhochschul-Masterstudiengang Digitale Medien in Hagenberg im September 2007 c Copyright 2007 Jakob F. Leitner Alle Rechte vorbehalten ii Erklärung Hiermit erkläre ich an Eides statt, dass ich die vorliegende Arbeit selbstständig und ohne fremde Hilfe verfasst, andere als die angegebenen Quellen und Hilfsmittel nicht benutzt und die aus anderen Quellen entnommenen Stellen als solche gekennzeichnet habe. Hagenberg, am 5. September 2007 Jakob F. Leitner iii Inhaltsverzeichnis Erklärung iii Vorwort vii Kurzfassung viii Abstract ix 1 Einleitung 1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Interaktivität . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Gliederung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Verwandte Arbeiten 2.1 Tabletop Plattformen . . . . . . . . . . . 2.1.1 DiamondTouch . . . . . . . . . . . 2.1.2 TARBoard . . . . . . . . . . . . . 2.1.3 TViews . . . . . . . . . . . . . . . 2.1.4 Entertaible . . . . . . . . . . . . . 2.1.5 STARS . . . . . . . . . . . . . . . 2.1.6 reacTIVision . . . . . . . . . . . . 2.2 Tabletop Applikationen . . . . . . . . . . 2.2.1 False Prophets . . . . . . . . . . . 2.2.2 TViews Table Role-Playing Game 2.2.3 KnightMage . . . . . . . . . . . . . 2.2.4 Hunting the Snark . . . . . . . . . 2.2.5 Read-It . . . . . . . . . . . . . . . 2.2.6 CarettaKids . . . . . . . . . . . . . 2.2.7 Weathergods . . . . . . . . . . . . 2.2.8 monkeyBridge . . . . . . . . . . . 2.2.9 playAnywhere . . . . . . . . . . . . 2.2.10 Augmented Coliseum . . . . . . . iv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 4 5 7 7 7 8 8 9 9 9 10 10 10 11 11 11 11 12 12 12 13 INHALTSVERZEICHNIS v 3 Konzept 3.1 Idee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Vorbilder . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 The Incredible Machine . . . . . . . . . . . . . . . 3.2.2 Domino . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Spieldesign . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 Interaktionsdesign . . . . . . . . . . . . . . . . . . . . . . 3.4.1 Interaktion mit dem Spieler . . . . . . . . . . . . . 3.4.2 Die Interaktion mit physischen Spielkomponenten . . . . . . . . . . . . . . . . 14 14 14 15 18 18 20 20 22 4 Technologische Grundlagen 4.1 Software . . . . . . . . . . 4.1.1 Virtools . . . . . . 4.1.2 vvvv . . . . . . . . 4.2 Hardware . . . . . . . . . 4.2.1 Anoto . . . . . . . 4.2.2 Arduino . . . . . . . . . . . . . . . . . . 24 24 24 26 26 27 31 . . . . . . . . . . . . . . . . . . . . . . . . . 34 34 35 35 36 41 45 50 50 52 53 57 64 64 65 66 68 70 73 74 75 76 76 77 78 79 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Implementierung 5.1 Spielprinzip . . . . . . . . . . . . . . . . . 5.2 Hardware . . . . . . . . . . . . . . . . . . 5.2.1 Tisch . . . . . . . . . . . . . . . . 5.2.2 Anoto Menüs . . . . . . . . . . . . 5.2.3 Arduino-Sensorbox . . . . . . . . . 5.2.4 Comino-Portale . . . . . . . . . . . 5.3 Software . . . . . . . . . . . . . . . . . . . 5.3.1 Kommunikation mit Arduino . . . 5.3.2 Kommunikation in vvvv . . . . . . 5.3.3 Kommunikation in C++ . . . . . . 5.3.4 Kommunikation in Virtools . . . . 5.4 Umsetzung in Virtools . . . . . . . . . . . 5.4.1 Erste Schritte . . . . . . . . . . . . 5.4.2 Interaktionstechniken . . . . . . . 5.4.3 3D-Modelle . . . . . . . . . . . . . 5.4.4 Arduino-Integration . . . . . . . . 5.4.5 Anoto-Integration . . . . . . . . . 5.4.6 Level Organisation . . . . . . . . . 5.4.7 Integration der Hilfe . . . . . . . . 5.4.8 Unabhängige Virtools-Applikation 5.5 Leveldesign . . . . . . . . . . . . . . . . . 5.5.1 Level 1: . . . . . . . . . . . . . . . 5.5.2 Level 2: . . . . . . . . . . . . . . . 5.5.3 Level 3: . . . . . . . . . . . . . . . 5.6 Interaktionsdesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . INHALTSVERZEICHNIS 5.6.1 5.6.2 5.6.3 5.6.4 Aufstellen . Löschen . . Umstoßen . Verschieben vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 81 82 82 6 Diskussion 6.1 Eingabe . . . . . . . . . . 6.1.1 Stiftinteraktion . . 6.1.2 Anoto Menüs . . . 6.2 Spiel . . . . . . . . . . . . 6.2.1 Interaktionsdesign 6.2.2 Leveldesign . . . . 6.2.3 Spielziel . . . . . . 6.3 Ausgabe . . . . . . . . . . 6.3.1 Grafische Ausgabe 6.3.2 Kameraperspektive 6.3.3 Comino-Portale . . 6.3.4 Audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 84 84 86 86 86 87 87 88 88 88 88 90 7 Schlussfolgerungen 91 7.1 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . 91 7.2 Erreichte Ziele . . . . . . . . . . . . . . . . . . . . . . . . . . 91 7.3 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 A Inhalt der CD-ROM A.1 Diplomarbeit . . . . . A.2 Übersicht . . . . . . . A.3 Comino-Applikation . A.4 Comino-Tools . . . . . A.5 Maya Dateien . . . . . A.6 Virtools Dateien . . . A.7 Visual Studio Dateien A.8 vvvv Dateien . . . . . A.9 Bilder und Grafiken . A.10 Referenzmaterial . . . Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 96 96 96 97 97 97 97 98 98 98 99 Vorwort Diese Arbeit ist meinen Eltern gewidmet, die mich in all meinem bisherigen Tun unterstützt haben und denen ich vieles im Leben verdanke. Ein Dank auch an Geschwister und Freunde, die mich in meiner Arbeit und im Leben begleiten und inspirieren und ein großes Danke an meine Freundin für ihre Geduld und Zuneigung, die sie mir auch in arbeitsreichen Zeiten entgegenbringt. Zu guter Letzt auch ein herzliches Dankeschön an meinen Betreuer, dem ich viele Erfolge in meinem Studium verdanke und dessen unerschöpfliche Motivation nicht nur für mich eine konstante Quelle neuer Inspirationen und Interessen ist. vii Kurzfassung Durch die Entwicklung von Tabletop-Systemen, die herkömmliche Tische zu interaktive Arbeitsflächen umfunktionieren, ist auch für Computerspiele eine neue Plattform entstanden. Die Möglichkeiten und Grenzen der Plattform stellen eine Herausforderung an das Design von Spielen, die das Potential der Systeme ausnützen wollen. Sowohl Spielkonzept als auch Spielinteraktion sind an die Rahmenbedingungen eines neuen Mediums anzupassen, dessen Möglichkeiten durch die raschen technologischen Entwicklungen im Bereich von Tabletop-Systemen und physischen Interfaces noch nicht einmal ausgelotet sind. Die Diplomschrift befasst sich mit relevanten Teilbereichen der Themengebiete Tabletop-Games, Physical-Computing und Interface-Design. Sie gibt Einblick in den aktuellen Entwicklungstand der verschiedenen Themen und fasst eigene Forschungsergebnisse am Beispiel des Tabletop-Spiels Comino zusammen. In der Arbeit werden Grenzen für Tabletop-Spiele aufgezeigt und es wird versucht, durch die Dokumentation des umgesetzten Spieles die Grenzen etwas weiter zu stecken. Bestehende Spiele und Technologien werden als Ausgangspunkt für die Schilderung eigener Entwicklungen herangezogen. Die Arbeit dokumentiert den gesamten Entstehungsprozess des Tabletop-Spiels Comino, das das Spiel mit virtuellen und realen Spielelementen auf einer Tabletop-Plattform vereint. Dabei werden sowohl neuartige Interaktionstechniken für die simultane Benutzung durch mehrere Spieler als auch Techniken für das Zusammenspiel von physischen und virtuellen Spielkomponenten beschrieben. Die Arbeit umfasst sowohl die konzeptionellen Teilbereiche der Entwicklung der benötigten Schnittstellen als auch die Beschreibung der praktischen Umsetzung in Soft- und Hardware. Des weiteren finden sich auch eine Diskussion der Ergebnisse basierend auf Spielerkommentaren und ein theoretischer Ausblick für zukünftige Entwicklungen in der Arbeit. viii Abstract Surface Computing has turned normal tables into interactive workspaces. Embedded display technology allows users to show multimedia content on various surfaces. These advancements in technology have also created a new platform for computer-games. Developers of such games face new challenges and have to consider the affordances of tabletops in order to take full advantage of the platform. Both game-concept and game-interaction have to be adapted to fit the users’requirements . The possibilities are growing rapidly as technology becomes more available and the limits of tabletop-systems haven’t been reached yet. The focus of this thesis is the overlapping area of three research topics: tabletop-games, physical computing and interface design. It gives a brief introduction to the different topics and summarizes the work on the tabletopgame comino. This thesis presents recent research in the field of tabletopapplications and tabletop-platforms, followed by the description and discussion of the implemented tabletop-game Comino. Comino is a tabletop game which combines both virtual and real game elements in a new way. Both custom hardware and software components were implemented for this game to enable new ways of multi-user interaction and interaction between the virtual and the physical world. In this thesis the development process of the game is presented, including game concept, interface-design, level design and discussion of user feedback on the game. Finally, we conclude with an overview over possible future development of similar tabletop games. ix Kapitel 1 Einleitung 1.1 Motivation Games are played for no other reason than for the experience of playing them - unlike a software application, in which the experience or enjoyment of the user is a by-product. If the experience of the interface is not pleasing, players will walk away. Peter Hall, The Principals of Play [13] Entwicklungen auf dem Spielkonsolenmarkt zeigen, dass neuartige Eingabemedien als Kaufanreiz mindestens gleichbedeutend mit grafischen Neuerungen sind. Nintendos1 letzter Beitrag zum Konsolenmarkt, die NintendoWii2 , hat sich mit ihren anders gestalteten Kontrollern trotz der geringeren Rechenleistung und Grafikauflösung gegenüber den Konkurrenten auf dem Markt behaupten können [35]. Die neuartigen Wii-Kontroller erlauben es, auf originelle Art und Weise mit Spielen zu interagieren und nehmen Abstand vom einfachen Drücken von Knöpfen. Abbildung 1.1 zeigt bereits erhältliche und angekündigte Eingabegeräte der Nintendo-Konsole. Eine Tatsache, die bei Nintendos Wii-Kontroller jedoch oft übersehen wird, ist die, dass er auch als Ausgabegerät dient. Neben der bereits in vielen Gamepads und Joysticks üblichen Rumble-Funktion3 ist im Kontroller auch ein kleiner Lautsprecher integriert. So können zusätzliche Geräusche wiedergeben werden, die direkt beim Spieler passieren, wie das Surren einer Bogensehne oder das Geräusch beim Ausblasen einer Kerze. Dies erhöht die atmosphärische Dichte des Spiels. Solche Neuerungen auf dem Markt der Ausgabegeräte versuchen das Erleben von Videospielen mit zusätzlichen Sinneseindrücken zu bereichern. Ein innovatives Beispiel ist das von Philips4 1 http://www.nintendo.com/home http://wii.nintendo.com/ 3 Vibrieren des Kontrollers, dass von der Applikation aus gesteuert werden kann. 4 http://www.philips.com/global/index.page 2 1 KAPITEL 1. EINLEITUNG (a) 2 (b) (c) Abbildung 1.1: Durch neuartige Interfaces wie dem Wii-Kontroller plus Nunchuck (a), und dem angekündigten Wii-Zapper (b) und Wii-BalanceBoard (vorläufiger Produktname) (c) unterscheidet sich die Konsole von seic Nintendo) nen Mitstreitern auf dem Markt. (Abb.: Abbildung 1.2: Mit den zusätzlichen Ausgabegeräten wie Beleuchtungskörpern, Ventilatoren und einem Rumble-Pad für die Tastatur versucht das c KoninkamBX-System das Spiel- und Filmerlebnis zu bereichern. (Abb.: lijke Philips N.V.) vorgestellte amBX5 -System. Zusätzlich zu den klassischen Ausgabegeräten wie Bildschirm und Lautsprechern können über das System etwa Ventilatoren und Hintergrundbeleuchtung gesteuert werden, mit denen Fahrtwind und Umgebungslicht simuliert werden können [32]. This cutting edge set of peripherals allows gamers to experience PC games with all their senses. Light, surround sound, air movement and vibration synch with the game and bring it literally into the room. Abbildung 1.2 zeigt alle Komponenten des amBX PC gaming peripherals Premium kits 6 . Doch nicht nur die Eingabegeräte und Ausgabegeräte für Spiele ändern sich, auch die Spiele selbst sind durch Veränderungen der zur Verfügung 5 http://www.ambx.com/ http://www.consumer.philips.com/consumer/catalog/product.jsp?language= en&country=US&catalogType=CONSUMER&productId=SGC5103BD 17 US CONSUMER 6 KAPITEL 1. EINLEITUNG (a) 3 (b) Abbildung 1.3: Sowohl Philips Entertaible (a) als auch Microsofts Surface (b) erlauben die gleichzeitige Interaktion von mehrere Benutzern. Auch reale Gegenstände werden erkannt und können als Eingabegerät verwendet c Koninklijke Philips N.V., Abb. (b): c Microsoft Corwerden. (Abb. (a): poration) stehenden Technologien gravierenden Änderungen unterworfen. Neue, aufkommende Plattformen wie der Entertaible [21] von Philips oder das erst kürzlich vorgestellte Surface7 von Microsoft8 fordern die Kreativität der Spieleentwickler und bieten gleichzeitig interessante neue Möglichkeiten für zukünftige Spielkonzepte. Spieler solcher Tabletop-Spiele genießen beim Spielen die Vorteile von zwei Welten. Die Verbindung von realen und virtuellen Spielkomponenten ermöglicht einen einzigartigen Mix aus intuitiver Spielsteuerung und interaktivem Gameplay. Dabei bleibt der soziale Aspekt des gemeinsamen Spiels von Brettspielen erhalten und fördert so die Kommunikation der Spieler. Abbildung 1.3 zeigt ein typisches Anwenungsszenario des Entertaibles und von Surface. Die angeführten Beispiele aus den Bereichen Eingabegeräte, Ausgabegeräte und Spiele(-Plattformen) dienten als Motivation für die Umsetzung eines eigenen Spieles, das sich mit den besagten Themenbereichen beschäftigt. Auf Basis eines zum Teil bereits bestehenden Tabletop-Setups sollte ein interaktives Spiel umgesetzt werden, dessen physische Ein- und Ausgabegeräte eine neue und intuitive Art der Interaktion zwischen Spieler und Spiel ermöglichen würden. Zusätzlich sollen reale und virtuelle Spielelemente einander im Spiel beeinflussen können und so einen nahtlosen Übergang zwischen realer und virtueller Spielwelt erlauben. 7 8 http://www.microsoft.com/surface/ http://www.microsoft.com/en/us/default.aspx KAPITEL 1. EINLEITUNG 4 Verarbeitung (Spieler) Eingabe Ausgabe real virtuell Ausgabe Eingabe Verarbeitung (Spiel) Abbildung 1.4: Eine grobe Unterteilung der Interaktion zwischen der virtuellen Spielkomponente und der realen Spielkomponente eines Spieles. 1.2 Interaktivität Da es sich bei dem Begriff Interaktivität“ um einen sehr vielseitig verwen” deten handelt, wird hier zuerst eine für diese Arbeit gültige Definition des Begriffes aus [33, S. xx] übernommen. “Interactive” is a fuzzy term, and often misused for all kinds of ridiculous purposes. Author and game programmer Chris Crawford has a great definition for it: interaction is “an iterative process of listening, thinking, and speaking between two or more actors.” Most physical computing projects (and most computer applications in general) can be broken down into these same three stages: listening, thinking, and speaking–or, in computer terms: input, processing, and output. Bei Interaktion handelt es sich also, etwas vereinfacht gesagt, um einen iterativen Prozess des Horchens, Denkens und Sprechens zwischen Akteuren. Auf die Terminologie des Computers übersetzt, der Eingabe, Verarbeitung und Ausgabe (zwischen Akteuren). Im Fall des implementierten Spiels finden sich diese drei Phasen in vielen Bereichen der Umsetzung. Dies trifft sowohl für Teile zu, die in Software implementiert wurden, als für Spielelemente, die in Hardware umgesetzt wurden. Diese drei Phasen können auch für eine Unterteilung des gesamten Spieles verwendet werden. Für das vorgeschlagene Spiel werden die drei Phasen in weiterer Folge Eingabe, Spiel (Spielelogik ) und Ausgabe genannt. Abbildung 1.4 zeigt stark vereinfacht die Interaktion zwischen der virtuellen Spielkomponente des vorgeschlagene Spieles und der realen Spielkomponente des Spiels. Die Interaktion des Spielers mit einem System ist Gegenstand vieler Publikationen [30, 38, 43] und Forschungsarbeit wie zum Beispiel der der NUI Ei Wa ng hr ab ne ea hm uf u fo ng rd d er er un g KAPITEL 1. EINLEITUNG 5 Ausbleibende Eingabe des Spielers real Pr o u er rd ng Hochfahren des Programmes gr a m ffo au be m st ar t a ng Ei virtuell Abbildung 1.5: Der Spieler fungiert als Bindeglied zwischen Ausgabe und Eingabe in der realen Welt. Ohne sein Zutun kann der Kreislauf nicht geschlossen werden. Group 9 , doch ist es bei Computerspielen üblich, dass der Spieler das einzige Bindeglied zwischen Ausgabe und Eingabe in der realen Welt ist. Er reagiert auf eine Ausgabe des Computers und setzt so den nächsten Impuls für das Spiel. Ohne das Zutun eines Spielers kann dieser Kreislauf in der realen Welt nicht geschlossen werden. Abbildung 1.5 illustriert dies an einem Beispiel. Für das geplante Spiel sollte jedoch auch die direkte Interaktion von virtuellen und realen Spielelementen integriert werden. An bestimmten Stellen im Projekt soll mithilfe spezieller Spielelemente der gezeigte Kreislauf auch auf alternative, spielerischer Weise geschlossen werden können. Ein virtuelles Ereignis soll ein reales Ereignis anstoßen können, das ein virtuelles Ereignis anstößt usw. Der Spieler, als Bindeglied in der realen Welt, kann und soll dabei natürlich nicht durch die Spielelemente ersetzt werden. Der Aufbau der einzelnen Bestandteile dieser Kettenreaktion, die die Grenze der virtuellen und realen Welt überwinden kann, soll den Reiz für den Spieler ausmachen, auch wenn nach dem Start die Kettenreaktion dann ohne sein Zutun abläuft. Der Spieler löst ein Puzzle, das über die üblichen Grenzen eines Computerpieles hinaus geht. Die Interaktion zwischen System und Benutzer kann dabei natürlich nicht außer Acht gelassen werden und muss deshalb ebenso in die Arbeit mit einfließen. 1.3 Gliederung Die Arbeit dokumentiert die Entstehung des umgesetzten Tabletop-Spieles Comino von der Entwurf-Phase über die Implementierung bis hin zur Diskussion der Ergebnisse. Zusätzlich werden relevante Referenz-Projekte und für die Umsetzung relevante Technologien angeführt und erklärt. Kapitel 2 gibt einen Überblick über verwandte Arbeiten. Dabei werden 9 http://nuigroup.com/ KAPITEL 1. EINLEITUNG 6 sowohl aktuelle Tabletop-Technologien und als auch umgesetzte Spiele und Applikationen aufgelistet und kurz beschrieben. Dieses Kapitel soll dem Leser eine Überblick über das Umfeld dieser Arbeit geben. In Kapitel 3 wird auf das Gesamt-Konzept hinter Comino eingegangen. Das Kapitel präsentiert dabei sowohl die Spielidee als auch verschiedene Vorbilder für das umgesetzte Spiel. In weiterer Folge werden konzeptionelle Entscheidungen in Bezug auf Spiel- und Interaktionsdesign angeführt und mögliche Technologien für deren Umsetzung aufgelistet. Die technologischen Grundlagen für die verwendete Soft- und Hardware werden im Anschluss in Kapitel 4 angeführt. Dieser Teil der Arbeit ist der technischen Beschreibung der relevanten Technologien gewidmet und soll es dem Leser ermöglichen, allgemeine Informationen unabhängig von der konkreten Implementierung einzuholen. Zusätzlich findet sich weiterführende Literatur zu den einzelnen Technologien in diesem Kapitel. Die konkrete Implementierung von Comino ist in Kapitel 5 beschrieben. Nach einer kurzen Einführung, die das Spielprinzip zusammenfasst, wird auf die Implementierung der benötigten Hardware- und Software-Komponenten eingegangen. Die beiden Abschnitte inkludieren eine Beschreibung des gesamten Setups, aller physischen Spielkomponenten sowie der Kommunikation der Schnittstellen mit dem Steuerrechner. Im darauffolgenden Abschnitt wird die Umsetzung des Spieles, in mehrere Unterabschnitte aufgegliedert, wiedergegeben. Das Kapitel beinhaltet des weiteren eine Abschnitt zum Leveldesign des Spieles und schließt mit der Umsetzung des Interaktionsdesigns des Spieles. Im darauffolgenden Kapitel 6 werden die Ergebnisse der Umsetzung anhand von Kommentaren von Testspielern diskutiert. Angeführte Kritikpunkte werden aufgegriffen und Lösungsvorschläge formuliert. Im abschließenden Kapitel 7 werden die Ergebnisse der Arbeit zusammengefasst und die erreichte Ziele aufgelistet. Dieses Kapitel endet mit einem Ausblick auf mögliche Erweiterungen des Spieles. Im Anhang der Arbeit findet sich eine Auflistung der Inhalte der zu dieser Arbeit beigelegten CD-ROM, die verwendete Online-Quellen, referenziertes Bildmaterial und implementierte Software beinhaltet. Kapitel 2 Verwandte Arbeiten Der praktische Teil dieser Arbeit befasst sich mit der Umsetzung eines Tabletop-Spieles und der damit verbundenen Entwicklung von speziellen Benutzerschnittstellen, um mit dem System zu interagieren. Im folgenden Kapitel sollen Referenz-Plattformen und Projekte aufgelistet werden, die diese Arbeit inspiriert haben und es soll so für den Leser ein Überblick über den weitreichenden Themenbereich der Tabletop-Applikationen ermöglicht werden. Die angeführten Projekte sind in zwei große Gruppen unterteilt: in Tabletop Plattformen und Tabletop Applikationen. Für zusätzliche Informationen zur Geschichte von Tabletop-Spielen wird an dieser Stelle auf die Masterarbeit von Huong Thu Nguyen [31, Kap. 2] und die Doktorarbeit von Alexandra Mazalek [25, Kap. 2, 3] verwiesen. 2.1 Tabletop Plattformen Im folgenden Abschnitt werden verschiedene Plattformen vorgestellt, die für die Entwicklung von Tabletop-Spielen eingesetzt werden. Ein Vergleich von einigen Eigenschaften verschiedener Plattformen findet sich in [10]. 2.1.1 DiamondTouch [9] Die DiamondTouch Plattform wurde von MERL1 entwickelt. Die Plattform ist in zwei verschiedenen Ausführungen kommerziell erhältlich und erlaubt die gleichzeitige Positionserkennung (Tracking) von bis zu 4 Personen auf einer maximalen Fläche von 86 × 65 cm bei der Verwendung der größeren der beiden Ausführungen. Die Positionserkennung, die auch die Unterscheidung von mehreren Benutzern erlaubt, funktioniert über elektrische Felder. Die Benutzer sitzen auf speziellen Matten, die bei Kontakt mit der Oberfläche eine elektrische Verbindung mit den im Rahmen des DiamondTouch1 http://www.merl.com/ 7 KAPITEL 2. VERWANDTE ARBEITEN 8 Gerätes verbauten Sendern herstellen. Verschiedene Empfänger für jeden der Benutzer werten die Ergebnisse aus und ordnen sie dem jeweiligen Benutzer zu. Die interpolierte Auflösung der Positionserkennung beträgt 2736 × 2048 Punkte, die mit einer Frequenz von 30 Hz ausgelesen werden können. Die DiamondTouch Technologie erlaubt keine Erkennung von Objekten. Durch die spezielle Hardware, die im Gerät verbaut ist, ist die Oberfläche des DiamondTouch nicht transparent und kann deshalb nur in Kombination mit einer Aufprojektion verwendet werden. Die DiamondTouch Plattform wurde für den Einsatz in Büros konzipiert, doch wurde die Plattform auch für eine Reihe von Spielen als Eingabegerät verwendet. Die Plattform ist vor allem durch die Tatsache interessant, dass sie kommerziell erhältlich ist und so von einer größeren Zahl von Forschungseinrichtungen und Universitäten verwendet wird. 2.1.2 TARBoard [19] TARBoard ist ein Tabletop-System, in dem physische Spielelemente erkannt, abgefilmt und mit digitalen Inhalten erweitert dargestellt werden können. TARBoard verwendet dabei ein markerbasiertes optisches Tracking-System. Im Unterschied zu Projekten wie dem MagicBook [7], in dem die verwendeten Marker leicht durch den Benutzer verdeckt werden können, kommen in TARBoard zwei Kameras für die Markererkennung zum Einsatz. Das Setup besteht aus einem Tisch mit Glasplatte, der sowohl von oben als auch von unten gefilmt wird. Die untere Kamera dient der Erkennung und der Marker, die auf der Unterseite der physischen Spielelemente angebracht werden müssen, und so von den Spielern nicht verdeckt werden können. Die obere Kammer nimmt die reale Szene auf, in der die physischen Spielelemente dann mit digitalen Inhalten überlagert werden. Die Ausgabe des überlagerten Bildes erfolgt üblicherweise auf einem Bildschirm. Die TARBoard Technologie erlaubt nur die Erkennung von Objekten mit Markern, Finger und nicht präparierte Alltagsgegenstände werden nicht erkannt. 2.1.3 TViews [27], [25, Kap. 5] Das TViews System wurde von Grund auf als Plattform für mehrere Applikationen konzipiert und ist für den Einsatz mit einer Reihe von Applikationen, darunter auch Spiele entwickelt. Als Einsatzorte von TViews werden Wohnzimmer, Schulen oder Gemeinschaftsräume am Arbeitsplatz genannt. Speziell entwickelte, physische Objekte werden vom System durch eine Kombination von akkustischen- und Infrarot-Sensoren erkannt und können so als Eingabegerät verwendet werden. Für spezielle Eingaben steht auf den Objekten eine zusätzliche Taste zu Verfügung. Das Setup besteht aus einem tischähnlichen Aufbau, in dessen Oberfläche ein Flachbildschirm versenkt ist, der durch eine Glasplatte geschützt wird. Auch der Rest der benötigten KAPITEL 2. VERWANDTE ARBEITEN 9 Hardware findet innerhalb des Tisches Platz und so präsentiert sich TViews dem Benutzer als ein in sich geschlossenes und flexibles System. Für die Entwicklung von Applikationen für das System wurde auf Java basierendes Application Programming Interface(API) entwickelt. Das System erlaubt keine direkte Interaktion durch Alltagsgegenstände und Finger. 2.1.4 Entertaible [21] Wie auch das TViews System verwendet auch der Philips Entertaible einen im Gerät versenkten Flachbildschirm für die Darstellung digitaler Inhalte. Das optische Trackingsystem erlaubt die gleichzeitige Erkennung von bis zu 40 Interaktionspunkten. Die Technologie verwendet Infrarot-LEDs und Photodioden, die um den Bildschirm herum im Gerät verbaut sind und ist aufgrund der Arbeitsweise im Infrarotbereich unabhängig von der Lichtsituation in der Umgebung. Das Tracking-System erlaubt sowohl die Erkennung von Fingern als auch von Objekten. Für den Entertaible wurden auch spezielle Spielsteine entwickelt, deren optisches Aussehen verändert werden kann. Diese Spielsteine sind aus transparentem Material gefertigt und transportieren von der Entertaible-Oberfläche ausgesendetes Licht durch das Prinzip der totalen inneren Reflexion bis zur Deckfläche des Spielsteins. Durch Veränderung des ausgesendeten Lichts verändert sich auch das Aussehen des Spielsteines. Das Entertaible-System wurde als Spieleplattform konzipiert und für die Verwendung in Gemeinschafträumen oder Bars entwickelt. 2.1.5 STARS [23] Die STARS-Plattform kombiniert mehrere Hardware-Komponenten, die im R Rahmen des roomwareProjekts [41] des Frauenhofer Instituts entwickelt wurden, zu einer Plattform für das Spielen von computergestützten Brettspielen. Bestehend aus mehreren Bildschirmen, die zum Teil für alle Spieler sichtbar sind und zum Teil private Informationen darstellen, ermöglicht die STARS Plattform komplexe Spielszenarien, die gleichzeitig kompetitiven und kollaborativen Charakter haben können. Der Spieltisch kombiniert einen drucksensiblen Plasmabildschirm für die direkte Interaktion mit einer über dem Tisch montierten Kamera, die verschiedene Spielobjekte auf dem Tisch erkennen kann. Zusätzlich ist der Tisch mit einem RFID-Leser ausgestattet, der RFID-Tags auf dem Tisch erkennen kann. Sie können zum Beispiel zum Speichern und Laden von Spielen verwendet werden. Die STARS Plattform integriert auch Lautsprecher für die Wiedergabe von Geräuschen sowie Kopfhörer für Nachrichten, die nur an einen der Spieler adressiert sind. 2.1.6 reacTIVision [15] Das Open-Source Framework reacTIVision wurde für die Entwicklung von Tabletop-Interfaces entwickelt und kann von der offiziellen Projekt-Web- KAPITEL 2. VERWANDTE ARBEITEN 10 seite2 heruntergeladen werden. reacTIVision besteht aus mehreren SoftwareKomponenten, die für die Erkennung von eigens entwickelten Markern verwendet werden können. Zusätzlich integriert das System Funktionalität für die Positionserkennung von Fingern. Das Framework ist plattformunabhängig und Beispiel-Implementierungen können für verschiedene Programme und Programmiersprachen wie C++, Java, Processing oder Flash heruntergeladen werden. Im Gegensatz zu den bisherigen Projekten sieht reacTIVision keine Verwendung von spezifischen Hardwarekomponenten vor. In [15] finden sich neben einer allgemeinen Einführung in die Software auch detaillierte Anweisungen für den Bau von eigenen Hardware-Setups. reacTIVision wird zur Zeit aktiv weiterentwickelt und wurde bereits erfolgreich für verschiedene Projekte wie zum Beispiel für reacTable [14] verwendet. 2.2 Tabletop Applikationen Im folgenden Abschnitt wird eine Übersicht über verschiedene TabletopApplikationen gegeben. 2.2.1 False Prophets [24] False Prophets wird auf einem Setup bestehend aus gemeinsam genutztem Spieltisch und mehreren mobilen Endgeräten für die Darstellung von privaten Informationen gespielt. Zwei Teams spielen mit realen Spielfiguren auf einem veränderbaren, virtuellen Spielplan, den es im Laufe des Spiels zu entdecken gilt. Die Spielfiguren werden durch ein eigens entwickeltes TrackingSystem getrackt. 2.2.2 TViews Table Role-Playing Game [26] Wie der Name schon vermuten lässt, basiert das TViews Table Role-Playing Game (TTRPG) auf der in Abschnitt 2.1.3 vorgestellten TViews Plattform. TTRPG basiert auf dem klassischen Kartenspiel Dungeons and Dragons und erlaubt drei Spielern die gleichzeitige Teilnahme am Spiel. Ein vierter Spieler übernimmt die Rolle des Spielleiters und kann über einen externen Bildschirm verschiedene Aktionen im Spiel steuern. Auch in TTRPG ziehen die Spieler mit realen Spielfiguren über eine virtuelle Spielfläche und das Spiel ist ebenfalls rundenbasiert. In TTRPG kann auch die Rotation der Spielfiguren bestimmt werden, was für die Auswahl verschiedener Optionen für die jeweilige Spielfigur direkt auf der Spielfläche verwendet wird. 2 http://mtg.upf.edu/reactable/?software KAPITEL 2. VERWANDTE ARBEITEN 2.2.3 11 KnightMage [22] KnightMage basiert auf der STARS Plattform (Vergleiche Abschnitt 2.1.5) und ist ein kollaboratives Spiel für mehrere Spieler und einen Spielleiter, das auf dem Tisch von STARS gespielt wird. Zusammen müssen die Spieler in der unwirtlichen Spiellandschaft überleben, können dabei jedoch auch auf eigene Faust agieren und Schätze ansammeln. Das Inventar eines jeden Spielers kann über ein mobiles Endgerät eingesehen werden, das private Informationen darstellt. Allgemeine Funktionen zu den Spielern können über ein Wand-Display für alle sichtbar dargestellt werden. Noch nicht besuchte Regionen der virtuellen Spielfläche werden vor den Spielern verborgen und müssen erst entdeckt werden. 2.2.4 Hunting the Snark [36] Hunting the Snark ist ein Lernspiel für Kinder, das verschiedenste Technologien wie RFID und Ultraschall-Tracking in mehreren Levels des Spieles integriert. Ziel des Spieles ist es, möglichst viel über den Snark, ein fiktives, virtuelles Lebewesen herauszufinden. Die Spieler, üblicherweise Kinder im Alter zwischen 7 und 10 Jahren verwenden verschiedenste mobile Endgeräte, um Essensgewohnheiten des Snarks herauszufinden, ihn zu füttern und ihn auf seiner weiteren Reise zu begleiten. Hunting the Snark wird dabei nur zum Teil auf einem interaktiven Tisch gespielt sondern nutzt einen größeren Raum als Spielfläche. 2.2.5 Read-It [39] Read-It ist ebenfalls als Lernspiel für Kinder konzipiert und soll die Spieler beim Lesenlernen unterstützen. Das Projekt verwendet markerbasierte Erkennung von Objekten, die jedoch im Infrarot-Bereich funktioniert und so für das menschliche Auge unsichtbare Marker zulässt. Die Spielidee von Read-It basiert auf dem klassischen Spiel Memory und belohnt das Auffinden von zusammenpassenden Spielkarten durch die Wiedergabe von Audiound Video-Clips. Die virtuellen Spielkarten können dabei mithilfe von realen Objekten umgedreht werden. Read-It ist als kollaboratives Spiel konzipiert. 2.2.6 CarettaKids [42] CarrettaKids ist ein Spiel, bei dem sich Kinder spielerisch in der Stadtplanung üben können. Das Setup von CarretaKids besteht aus einer speziell für das Spiel gebauten Sensoroberfläche, auf die von oben projiziert wird. Die Sensorfläche besteht aus einem Raster aus 20 x 24 Feldern, unter denen RFID-Lesegeräte platziert sind. Die Spieler können die Spielsteine, die Gebäude darstellen und mit RFID-Tags ausgestattet sind, auf jedes freies Feld KAPITEL 2. VERWANDTE ARBEITEN 12 der Spielfläche stellen und sie so in die Stadtsimulation integrieren. Zusätzlich steht jedem Spieler ein mobiles Endgerät zur Verfügung, auf dem eine virtuelle Repräsentation des Spielplans dargestellt wird. Die Spieler können hier Pläne für die Weiterentwicklung der Stadt erstellen und sie dann auf die gemeinsame Spielfläche laden. 2.2.7 Weathergods [3] Weathergods wurde für die Entertaible-Plattform entwickelt und kann von vier Spielern rundenbasiert gespielt werden. Jedem der Spieler stehen drei Spielfiguren zur Verfügung, die verschiedene Aufgaben im Spiel übernehmen. Ziel des Spieles ist es, ausreichend Gold zum Ankauf von Opfergaben für die Wettergötter zu schaffen. Hierfür kann entweder Kamelmilch verkauft werden (Spielfigur Kamelreiter), Gold gestohlen werden (Bandit) oder Bodenschätze gehoben werden (Detektor). Die Spielfläche zeigt die möglichen Spielzüge der Spieler und reagiert auf Spielereignisse durch veränderbare Texturen der virtuellen Spielfläche. 2.2.8 monkeyBridge [5] Als technische Grundlage für monkeyBridge wurde das Studierstube Augmented Reality Project [37] verwendet. In monkeyBridge müssen Brücken für autonom agierende Spielcharaktere gebaut werden. Auf dem Spielfeld, einem virtuellen Ozean, müssen virtuelle und reale Brückenelemente so platziert werden, dass der Spielcharakter von einen vorgegebenen Startpunkt bis zum Endpunkt des jeweiligen Levels gelangen kann. Dabei stellen spezielle reale Gegenstände Hindernisse in der virtuellen Spielewelt dar. Mithilfe eines markerbasierten Eingabesystems muss der Spieler seinen autonom agierenden Charakter sicher um die Hindernisse herumführen und bis ins Ziel bringen. 2.2.9 playAnywhere [45] Im Rahmen des playAnywhere Projektes wurde ein Tabletop-Frontprojektions-System entwickelt, das aufgrund der speziellen Hardware auf die Montage von Projektor und Kamera über der Interaktionsfläche verzichten kann. Das Hardware-Setup besteht aus einem Projektor, der über mehrere integrierte Spiegel auf sehr kurze Distanz projizieren kann, einer InfrarotKamera und einer Infratot-Lichtquelle, die beide am Projektor befestigt sind. Die für das System entwickelte Software erlaubt die Erkennung von Berührung der Tischoberfläche, sowie die Positionserkennung von Fingern, speziellen Markern und die Erkennung und Lokalisierung von Papierseiten. Zusätzlich wurden durch die Verwendung von optical flow Techniken verschiedene Interaktionsmöglichkeiten mit virtuellen Objekten implementiert. Die Erweiterung von playAnywhere ist playTogether [46], das zwei solcher KAPITEL 2. VERWANDTE ARBEITEN 13 Tabletop Systeme miteinander vernetzt und so die Interaktion mit örtlich entfernten Benutzern erlaubt. 2.2.10 Augmented Coliseum [17] Augmented Coliseum ermöglicht den Spielern, reale Miniatur-Roboter in einem Duell mit virtuellen Waffen gegeneinander antreten zu lassen. Gespielt wird auf einer Spielfläche, auf die von oben projiziert wird. Dabei werden die Bewegungen der Roboter durch spezielle, projizierte Muster gesteuert, die auf den Robotern durch mehrere Fotodioden ausgelesen werden. Der Roboter folgt der projizierten Grafik, sobald diese auf der Spielfläche verschoben wird. Der Spieler hat verschiedene offensive und defensive Funktionen, die rund um den realen Roboter auf die virtuelle Spielfläche projiziert werden. Die Spieler duellieren sich mit virtuellen Waffen, die vom eigenen Roboter ausgehend abgefeuert werden können. Wird einer der Roboter zerstört, so wird dies durch eine virtuelle Explosion angezeigt. Kapitel 3 Konzept 3.1 Idee Inspiriert durch verschiedene Projekte, die sich mit kollaborativem Arbeiten und intuitiven Interfaces [9, 21] auseinander setzen, entstand die Idee, neuartige Interfaces als Brücke zwischen realer und virtueller Welt zu gestalten. Das Projekt sollte dabei in Hinblick auf die Implementierung Freiraum zum Experimentieren geben und den Arbeitsverlauf weder durch Technologievorgaben noch durch ein restriktives Szenario zu sehr einschränken. Der Bereich der interaktiven Spiele eröffnet die Möglichkeit mit neuen Interaktionstechniken und Werkzeugen zu experimentieren wie kaum ein anderer. Dies und die gesammelten Erfahrungen mit Tabletop-Anwendungen sollten im Projekt kombiniert werden. Konkret sollte ein Spiel für mehrere Spieler auf einem interaktiven Tisch entwickelt werden. Physische und virtuelle Gegenstände sowie mehrere Spieler sollten auf dem Spieltisch miteinander interagieren können. Der Schwerpunkt dabei sollte dabei auf einer intuitiven Interaktion der aller Komponenten im System liegen. Das implementierte Spiel trägt den Titel Comino 1 und kombiniert das Spiel mit virtuellen und realen Dominosteinen in einem kollaborativen Puzzle. Die Spieler setzen von einem Startpunkt aus eine Kettenreaktion in Gang, die sich dann bis zum Endpunkt fortsetzen muss, um den Level erfolgreich zu beenden. Dabei kann die Kettenreaktion mithilfe spezieller Interfaces zwischen realer und virtueller Welt wechseln. 3.2 Vorbilder Der implementierte Prototyp wurde von zwei Spielen stark beeinflusst. Es handelt sich dabei jeweils um einen bekannten Vertreter aus der virtuellen und aus der realen Welt. Die richtungsweisende Spielidee in Bezug auf das 1 Wortneuschöpfung aus den Worten Computer“ und Domino“ ” 14 KAPITEL 3. KONZEPT (a) 15 (b) Abbildung 3.1: Beim Spielen von The Incredible Machine“ müssen ver” schiedene Gegenstände so kombiniert werden, dass eine levelspezifische Aufgabe gelöst wird (a). Die beiden Screenshots zeigen zwei Levels aus der dritten Auflage des Spieles. Die Komplexität der Level ist abhängig vom Fortschritt innerhalb des Spieles und wird von privat agierenden Leveldesignern oft bis c an die Grenze der Schaffbarkeit gesteigert (b). (Abb.: Sierra Entertainment) Spielprinzip beruht auf dem Computerspielklassiker The Incredible Ma” chine“, die Spielelemente und die Art der Interaktion sind jedoch an das Spiel mit Dominosteinen angelehnt. 3.2.1 The Incredible Machine Diese Serie von virtuellen Logikpuzzles der Spielefirma Sierra“2 nahm 1992 ” ihren Anfang und hat bis heute mindestens fünf Nachfolger hervorgebracht. Spielprinzip und Leveldesign sind dabei im Wesentlichen unverändert geblieben. Abbildung 3.13 zeigt das Leveldesign von einem der Nachfolgespiele. The Incredible Machine“ ist ein rundenbasiertes Spiel, in dem der Be” nutzer mit einer limitierten Anzahl von Alltagsgegenständen verschiedenste kleine Puzzles zu lösen hat. Die wichtigsten Regeln, die den Spielverlauf vorantreiben, sind vereinfachte Gesetze der Physik. Ein Ball fällt zu Boden, eine Kerze erlischt bei aufkommendem Wind, ein gasgefüllter Ballon steigt auf. Die Ziele in den einzelnen Spielrunden variieren genauso wie die verwendeten Spielelemente. Das Umlegen eines Schalters ist genauso ein mögliches Ziel wie das Zerplatzen eines Luftballons oder das Zerschlagen eines Aquariums. Die Spielelemente sind aus der realen Welt übernommen und ermöglichen es, neue Gegenstände in den Spielverlauf einzubinden, ohne dem Benutzer deren Eigenschaften oder Funktion lange erklären zu müssen. Dies ermöglicht dem Spieler einen schnellen Einstieg in die Levels, der nicht durch 2 3 http://www.sierra.com/de/home.html Abb.: http://www.worldvillage.com/wv/gamezone/html/reviews/machine.htm KAPITEL 3. KONZEPT 16 zeitaufwendiges Lesen von Spielanleitungen geprägt ist. Dies ist eines der grundlegenden Prinzipien zur Gestaltung eines guten Spielinterfaces [13]. A good game interface will not bombard the user with information at the outset or rely on a complex instruction manual; it will teach the user everything he or she needs to know on a need-to-know basis. This convention is so entrenched, in fact, that gamers trust the system and never read the manuals. Die Umsetzung in Comino: Auch für Comino war dieses Prinzip ein Grundlegendes, auch wenn durch die Neuartigkeit der verwendeten Interfaces und des Spielkonzepts das Spiel nicht ganz ohne einführende Erklärungen auskommt. Dies ist zum Teil auch in der Tatsache begründet, dass vieles im Spiel aufgrund des Arbeitsaufwandes sehr komprimiert präsentiert werden musste und der Benutzer innerhalb des Spieles nicht langsam an die einzelnen Themen herangeführt werden kann, wie das in den zahlreichen Levels von The Incredible Machine“ passieren kann. ” Ein wesentlicher Unterschied von Comino zum virtuellen Vorbild The ” Incredible Machine“ ist die Orientierung des Spielraumes. Im Original existiert die virtuelle Welt nur im Aufriss. Der Spieler betrachtet das Spielfeld von der Seite. Meist sind zu Beginn eines Levels mehrere fix positionierte Plattformen und Gegenstände vorhanden, die dann vom Benutzer um die zur Verfügung stehenden Levelbausteine erweitert werden. Die Schwerkraft ist bei vielen Rätseln die treibende Kraft des Levels. Dieser Levelaufbau war aber für das angedachte Spiel nicht praktikabel. Sollten reelle und virtuelle Gegenstände miteinander interagieren, so mussten das virtuelle und das reale Spielfeld möglichst deckungsgleich übereinander liegen, so dass die Illusion einer direkten Interaktion geschaffen werden konnte. Für eine vertikale Orientierung des virtuellen Spielfeldes sollte idealerweise auch das reale Spielfeld vertikal angeordnet sein, was das Positionieren von realen Gegenständen nur mithilfe von zusätzlichen Befestigungshilfsmitteln wie Magneten ermöglicht hätte. Somit wurde entschieden, als reales Spielfeld eine Tischfläche zu verwenden und auch die virtuelle Spielfläche wurde in die Horizontale gedreht. Die Benutzer betrachten sowohl das reale als auch das virtuelle Spielfeld von oben. Nun können reelle Spielkomponenten einfach auf das Spielfeld gestellt werden, auf dass auch die virtuellen Komponenten projiziert werden. Zusätzlich wird durch eine Ansicht von oben auch verhindert, dass die Betrachtung des Spielfeldes durch den Benutzer aus einer anderen Position zu einem Problem führen könnte. Bei einer Tabletopanwendung steht des den Benutzern meist frei, sich rund um den Tisch zu bewegen, was zu Einschränkungen bei der Darstellung von Objekten auf dem Bildschirm führt. Ein Rennspiel, bei dem der Fahrer aus dem Cockpit des Vehikels auf die virtuelle Rennstrecke hinaussieht, könnte zum Beispiel nur von einer Tischseite aus richtig KAPITEL 3. KONZEPT 17 Abbildung 3.2: Können sich die Spieler frei um den Tisch bewegen, so muss das im Spiel beachtet werden. Sowohl die Steuerung als auch Interface- oder Textelemente sind schwerer zu erfassen, wenn die Ansicht wie hier auf dem Kopf steht. betrachtet werden. Steht der Spieler auf einer der drei anderern Seiten, so erscheint für ihn das Bild entweder um neunzig Grad gedreht oder es steht auf dem Kopf. Abbildung 3.2 illustriert dieses Beispiel mit einem Screenshot aus dem Rennspiel Need for Speed : Carbon“4 . ” Dies erschwert nicht nur das Erfassen von graphischen Elementen, sondern macht eventuell auch die Spielsteuerung unmöglich. Bei einer Ansicht des Spielfeldes aus der Vogelperspektive ist die Betrachtungsrichtung für alle Spieler im Wesentlichen gleich, das Spiel ist unabhängig vom Standort rund um den Tisch spielbar. Damit einher gehen aber auch einige Schwierigkeiten für ein Spielprizip ähnlich dem von The Incredible Machine“. Die Perspektive von oben verhin” dert das Platzieren von Objekten übereinander, da Spielelemente einander verdecken und so der Level unübersichtlich und eventuell unspielbar wird. Zusätzlich ist die Draufsicht eine ungewöhnliche Perspektive auf viele Alltagsgegenstände, was die Wiedererkennung dieser erschwert. Wie jedoch vorher angeführt emöglicht nur ein Erkennen der zur Verfügung stehenden Gegenständen einen flüssiges Spielverlauf ohne aufwendige Erklärungen. Auch der Einfluss der Schwerkraft auf das Spielgeschehen muß zurückgenommen werden, da fallende Objekte von oben betrachtet ihre Position nur wenig verändern und somit solche Ereignisse im Spielverlauf vom Benutzer kaum 4 http://www.ea.com/nfs/carbon/us/ KAPITEL 3. KONZEPT 18 wahrgenommen werden. Eine neue, spielantreibende Kraft war also nötig. 3.2.2 Domino Es galt also, ein grundlegendes Spielelement zu finden, das leicht verständlich ist und das auf einer horizontalen Spielfläche funktionieren würde. Die vorgeschlagene Lösung hierfür ist die Verwendung von einer größeren Anzahl von Dominosteinen. Dabei geht es weniger um eine Verwendung der Dominosteine im klassischen Sinn, bei dem Steine mit gleicher Augenanzahl aneinandergereiht werden müssen, sondern um das Aufstellen von möglichst vielen Dominosteinen in einer Reihe. Stößt man nun den Ersten der Steine um, so fallen idealerweise in einer Kettenreaktion alle anderen Steine ebenfalls um. Durch geschicktes Platzieren von Steinen können so komplexere Kettenreaktionen ausgelöst werden. Für die Spieler heißt das nun Folgendes: In Comino müssen Dominosteine hochkant so positioniert werden, dass sie, einmal angestoßen, den Impuls von einem designierten Startpunkt bis zum Endpunkt des Levels weiterleiten. Dabei stellt der Computer sicher, dass die Steine hochkant im Level aufgestellt werden, die richtige Positionierung und Orientierung der Steine zueinander obliegt jedoch dem Spieler. Als Ergänzung zu den Dominosteinen können aber auch andere Gegenstände in die Levels verbaut werden, um so die Komplexität der einzelnen Levels zu erhöhen! 3.3 Spieldesign Die Spielelemente: Die Verwendung von Dominosteinen als Hauptelement verändern das Spielprinzip von Comino im Vergleich zum Vorbild The Incredible Machine“ gravierend. Während dort wenige Objekte mit ” sehr spezifischen Funktionen an genau definierten Stellen auf dem Spielplan platziert werden müssen, funktioniert Comino nach einem anderen Prinzip. Der Dominostein ist als einzelnes Element sehr limitiert in seiner Funktion, erst durch die Verwendung von vielen Steinen kombiniert mit interessanten Spielplänen entstehen abwechslungsreiche Szenarios. Die konkreten Einschränkungen und Herausforderungen an den Spieler sehen wie folgt aus: Die Benutzer haben für jeden der Levels eine beschränkte Anzahl, im Fall von Comino 100 virtuelle Steine zur Verfügung, die sie frei auf der Spielfläche platzieren können. Zu Beginn eines jeden Levels stehen mehr Steine zur Verfügung, als das zum Lösen der jeweiligen Aufgabe nötig ist. Im Gegensatz zu den Objekten in The Incredible Machine“ können die Do” minosteine jedoch verloren gehen, wenn sie an Stellen platziert werden, die dafür nicht vorgesehen sind. Somit sind die Benutzer trotzdem angehalten, sparsam mit den verfügbaren Steinen umzugehen, ohne dass eine gewisse Freiheit beim Aufstellen der Dominos durch eine zu strenge Reglementierung verloren geht. Es besteht immer noch die Möglichkeit, Spielereien wie KAPITEL 3. KONZEPT 19 zusätzliche Verzweigungen oder Ähnliches einzubauen, wie das beim Spiel mit echten Dominosteinen meist geschieht. Das Spielziel: Ein weiterer, sehr wesentlicher Unterschied zu The in” credible Machine“ ist die Tatsache, dass nicht gegen die Zeit gespielt wird. Während bei The incredible Machine“ die Puzzles möglichst schnell ge” löst werden müssen, um viele Punkte zu verdienen, wurde in Comino auf die Zeitnehmung verzichtet. Dies hat mehrere Gründe: Zum einen ist Comino als kollaboratives und nicht als kompetitives Spiel konzipiert. Es geht darum, herauszufinden, wie ein Level funktioniert. Das Spiel ist in erster Linie als Geschicklichkeitspiel konzipiert, das auf die Zusammenarbeit und die Neugier der Spieler setzt. Wenn reale Dominosteine in einem Level verwendet werden, verleitet Zeitdruck dazu, dass die Spieler hastiger hantieren und so steigt die Wahrscheinlichkeit, dass sie Steine vorzeitig umzustoßen. Das kann zur Frustration der Benutzer und im schlimmsten Fall zum Aufgeben der Spieler führen. Wird der Spieler jedoch im Gegenzug belohnt, wenn alle Steine wie geplant umfallen oder man zum Lösen der Puzzles möglichst wenige Steine verbraucht, so wird das zu einer stärkeren Motivation der Spieler führen. Zeitdruck könnte auch dazu führen, dass Spieler versucht werden, zu betrügen, um eine möglichst hohe Punktezahl zu erreichen. Dies kann bei der Verwendung von reellen Dominosteine leicht bewerkstelligt und nicht erkannt oder verhindert werden. Mithilfe des technischen Setups ist es nicht feststellbar, ob die Spieler tatsächlich alle realen Spielkomponenten ordnungsgemäß aufgestellt haben oder nicht. Ein weiterer Grund für den verzicht auf das Spiel gegen die Zeit ist der, dass die benötigte Zeit zum erfolgreichen Beendigen eines Levels natürlich von der Anzahl der teilnehmenden Spieler abhängt. Die ist aber von Spiel zu Spiel verschieden und durch das Setup nicht eruierbar, da grundsätzlich beliebig viele Spieler beim Aufbau der Steine helfen können. Über die verwendete Hardware kann kein Aufschluss darüber gegeben werden, wie viele Spieler tatsächlich gemeinsam am Tisch interagieren, eine aussagekräftige Bestenliste ist somit unmöglich. Technisch ist die Integration einer Zeitnehmung kein Porblem und könnte durchaus in einer zukünftigen Version von Comino beinhaltet sein. Die Rollenverteilung: Ein Vorteil, der sich durch die Verwendung eines einfachen Spielelements wie eines Dominosteines ergibt ist, dass kollaboratives Spielen ohne komplizierte Aufgabenverteilung zwischen den Spielern möglich ist. Nachdem mehrere Spieler mit einem in jeder Hinsicht gleichwertigen Interface mit dem Tisch interagieren, sind Rivalitäten aufgrund einer Rollenverteilung zwischen den Spielern von vornherein weitgehend ausgeschlossen. Jeder Spieler hat die gleichen Rechte und Pflichten. KAPITEL 3. KONZEPT 3.4 20 Interaktionsdesign Das für das Spiel nötige Interakionsdesign muss in zwei Bereiche unterteilt werden: die Interaktion des Spieles mit seinen Spielern und die Interaktion mit den physischen Spielkomponenten. 3.4.1 Interaktion mit dem Spieler Das Spiel mit realen Dominosteinen stellt vor allem Anforderungen an das motorische Geschick der Spieler. Die Spieler müssen Stein um Stein aufnehmen, platzieren und genau auszurichten und dabei verhindern, dass Steine unabsichtlich umgestoßen werden. Auch kompliziertere Handlungen wie das Stapeln von Dominosteinen und der Bau von Brücken und Türmen ist natürlich möglich. Präzise Bewegungen sind dabei von äußerster Wichtigkeit. Um all diese Interaktionsmöglichkeiten mit ähnlicher Genauigkeit in der virtuellen Welt abbilden zu können, wäre für die Eingabe ein komplexes technisches Setup erforderlich. Der technische Aufwand wäre überdies um ein Vielfaches höher, wenn es mehreren Spielern gleichzeitig ermöglicht werden sollte, mit dem Spiel zu interagieren. Für Comino stellte sich die Frage, ob die durch die möglichst direkt übernommene Interaktion gewonnenen Freiheiten den Mehraufwand an Hardware, Entwicklungszeit und Kosten rechtfertigen. Auch war anzunehmen, dass ein technisches Setup die Bewegungsfreiheit der Spieler rund um den Tisch beschneiden würde. Bewegung virtueller Dominosteine: Für Comino wurde deshalb beschlossen, auf eine möglichst direkte Abbildung der Handhabung der reellen Dominosteine für die Interaktion in der virtuellen Welt zu verzichten und so den Spielern mehr Freiraum um den Tisch zu lassen. Um die Aufgabe der Interaktion im virtuellen Raum zu lösen, war einer der ersten Schritte, die Bewegungen auf einzelne Teile herunterzubrechen. Diese sollten dann auch mit einem einfacheren technischen Setup umsetzbar sein. Für das Spiel wurden vier Aktionen isoliert, die es ermöglichen, die für das Spiel relevanten Aktionen mit Dominosteinen in der virtuellen Welt abzubilden. Diese Aktionen sind: 1. Aufstellen von neuen Dominosteinen (Create) 2. Verschieben von bereits aufgestellten Dominosteinen(Modify) 3. Umstoßen von Dominosteinen(Push) 4. Löschen von Dominosteinen(Delete) Natürlich gehen durch diese Vereinfachung viele Interaktionsmöglichkeiten verloren, die mit echten Dominosteinen denkbar wären, aber die Vorteile eines einfachen Interfaces sind für das geplante Spiel ungleich höher. Deshalb KAPITEL 3. KONZEPT 21 wurde auf die Integration von weiteren Aktionen verzichtet, einer nachträglichen Integration stünde jedoch nichts im Weg. Zusätzlich wurde die Bewegungsfreiheit der Interaktion von drei Dimensionen auf die Spieloberfläche reduziert. Virtuelle Dominosteine können also nicht frei im dreidimensionalen Raum bewegt und platziert werden, sondern nur entlang einer Oberflächengeometrie, die die jeweilige Untergrundoberfläche im Level repräsentiert. Somit konnten die notwendigen Freiheitsgrade für das Eingabegerät auf zwei Dimensionen reduziert werden. Akzeptiert man diese Lösung, so sind statt einer technisch sehr aufwendigen Schnittstelle nunmehr zwei unkomplizierte nötig, um die Interaktion auf dem Tisch zu realisieren. Moduswechsel: Das erste System muss es dem Spieler ermöglichen, zwischen den vier verschiedenen Modi Create, Modify, Push und Delete zu wechseln. Dies kann in Software genauso realisiert werden wie mithilfe zusätzlicher Hardware. Eine mögliche Implementierung in Software wäre dabei ein virtuelles grafisches Userinterface mit Schaltflächen für die einzelnen Modi. Eine Alternative wäre die Verwendung von Gestenerkennung, wo verschiedenen Aktionen verschiedene Gesten zugeteilt sind. Eine alternative Lösung mit zusätzlicher Hardware wäre zum Beispiel die Verwendung einer herkömmlichen Tastatur. Auf Tastendruck wechselt der Benutzer zwischen den einzelnen Aktionen. Denkbar wäre auch die Verwendung von Gamepads oder speziell für das Spiel entwickelte Hardware. Die Möglichkeiten hier sind vielfältig. Zeigegerät: Das zweite System muss als Zeigegerät funktionieren und es dem Spieler ermöglichen, dem Spiel die Position der Aktion auf dem Tisch mitzuteilen. Auch hierfür sind verschiedenste Technologien als Eingabegeräte denkbar. Als einfachste und naheliegendste Möglichkeit ist hier die Verwendung einer normalen Maus zu nennen, mit der ein Benutzer einen Cursor steuert und so die Position der Interaktion definiert. Verschiedenste Alternativen inkludieren die Verwendung von MERLs5 Diamond Touch [9] zur Positionserkennung von Fingern auf dem Tisch verwendet werden. Auch optische Systeme wie das reacTIVision Framework [15] oder magnetische Lösungen wie der Einsatz eines Flock of Birds 6 zur Positionserkennung würden funktionieren. Wenn daran festgehalten werden soll, dass mehrere Spieler gleichzeitig mit dem Spiel interagieren sollen, bleiben nur mehr einige wenige Technologien übrig, die für mehrere Benutzer eine robuste und dabei in ihrer Bewegungsfreiheit wenig beschneidende Interaktion sicherstellen. In Abschnitt 5.2 wird die für Comino ausgesuchte Technologie vorgestellt. 5 6 http://www.merl.com/ http://www.ascension-tech.com/products/flockofbirds.php KAPITEL 3. KONZEPT 3.4.2 22 Die Interaktion mit physischen Spielkomponenten Ein Großteil der in Kapitel 2 vorgestellten Projekte beschäftigt sich mit der Umsetzung von neuartigen Eingabegeräten für Tabletop-Applikationen. Projekte, die spezielle Ausgabegeräte in Tabletop-Applikationen integrieren, sind jedoch bedeutend seltener, da die Umsetzung dieser Schnittstellen spezielle Hardware erfordert. Für die Umsetzung solcher Interfaces, die unter dem Themenbereich des physical computing“ zusammengefasst werden, ” stehen Entwicklern verschiedenste Möglichkeiten zur Verfügung. Alle Möglichkeiten haben jedoch gemeinsam, dass für die Ausgabegeräte aktive Bauelemente verwendet werden müssen. Aktiv meint in diesem Zusammenhang, dass Komponenten (elektrische) Energie benötigen, um zu funktionieren. Aktive Tische: Je nach Art des Tabletop-Projektes können die aktiven Bauelemente direkt im Tisch integriert werden. Dies hat den Vorteil, dass die Verkabelung vom Spieler versteckt werden kann. Zusätzliche physische Interaktionsobjekte müssen dann meist nicht mehr mit aktiven Bauteilen ausgestattet werden. Beispiele hierfür wären das Projekt PICO7 , in dem durch Elektromagnete im Tisch kleine magnetische Objekte auf der Tischoberfläche bewegt werden können. Ein zweites Projekt, das eine direkte Veränderung der physischen Beschaffenheit der Oberfläche zulässt, ist Hyposurface8 . Solche Shape-Displays erlauben die Interaktion mit allen auf der Oberfläche befindlichen Gegenständen. Informationen über Shape-Displays findet sich in [34]. Für Comino kam die Integration von aktiven Bauteilen in den Tisch nicht in Frage, da Comino auf ein bestehendes Hardware-Setup aufsetzen sollte und ein Umbau des Tisches den Projektumfang gesprengt hätte. Aktive Spielkomponenten: Für Comino wurde deshalb entschieden, die Spielkomponenten selbst als aktive Bauteile umzusetzen. Dies hat den Vorteil, dass die Integration in den Tisch nicht nötig ist und die Komponenten in ihrer Funktionalität, Wartung und Verwendung mehr Flexibilität bieten. Als Nachteil muss jedoch genannt werden, dass die Komponenten mit dem Steuerrechner verbunden sein müssen und dass die Stromversorgung der aktiven Bauteile sichergestellt sein muss. Eine Lösung für die Umsetzung von eigenen Computer-Schnittstellen ist die Verwendung von fertigen Mikro-Kontrollern. Je nach Ausführung können die Systeme entweder wie ein Baukasten einfach zusammengesteckt werden oder müssen von Grund auf selbst verkabelt werden. Je nach Vorwissen und Art des Projektes stellen verschiedene Lösungen die größte Chance auf Erfolg in Aussicht. Eine ausführliche Übersicht über verschiedene Alternativen 7 8 http://www.jamespatten.com/pico/ http://www.hyposurface.org/ KAPITEL 3. KONZEPT 23 findet sich in [6, Kap. 2], eine kompaktere Übersicht im Abschnitt Related ” Work“ in [28]. Mikrokontroller-Systeme: Mikrokontroller-Systeme können in drei Kategorien unterteilt werden: Highlevel-, Lowlevel- und Midlevel-Systeme. Highlevel -Systeme zeichnen sich dadurch aus, dass sie möglichst einfach zu verwenden sind. Vorgefertigte, geschlossene Sensorschaltungen mit dem Mikrokontroller verbunden werden. Der Mikrokontroller ist meist über USB mit einem Computer verbunden und liefert die Sensordaten an diesen weiter. Mithilfe von mitgelieferten APIs können die ausgelesenen Werte dann in der Software weiterverwendet werden und über den Mikrokontroller verschiedene Ausgabegeräte wie LEDs, Servomotoren oder LCD-Bildschirme angesteuert werden. Der Benutzer braucht kaum elektronisches Vorwissen und die Risiken der Zerstörung der Hardware bei der Entwicklung sind gering. Doch die Flexibilität dieser Systeme ist stark eingeschränkt. Meist sind diese Systeme nicht für die Anbindung von eigenen Sensoren geeignet, können nicht ohne angeschlossenen Rechner betrieben werden und sind auch verhältnismäßig teuer. Ein Beispiel für ein solches Highlevel Systeme ist die Phidgets-Plattform [12]. Dem gegenüber stehen Lowlevel -Lösungen, bei denen von der Sensorschaltung, Stromversogung bis zum Mikrokontroller und der Verbindung zum Computer alles selbst umgesetzt werden muss. Die Umsetzung der Schaltungen sowie die Programmierung der Mikroprozessoren setzt meist großes Vorwissen voraus, doch Flexibilität und Preis9 dieser Lösung sind ungeschlagen. Für Beginner ist diese Lösung aufgrund des großen Einarbeitungsbedarfes jedoch meist nicht praktikabel. Nachdem hier alle Komponenten selbst zusammengestellt werden, kann nicht auf bereits bestehende Systeme verwiesen werden. Informationen für die eigene Umsetzung solcher Systeme finden sich in [33]. Als Zwischenlösung finden sich Midlevel -Systeme, bei denen der Mikrokontroller bereits mit der für den Betrieb nötigen Elektronik wie Stromversorgung und Quarz in einem Modul kombiniert ist. Dennoch steht es dem Benutzer frei, den Kontroller selbst zu programmieren und eigene Bauteile für die Sensorschaltungen zu verwenden. Mit der größeren Freiheit steigen natürlich auch die Anforderungen an das Vorwissen des Benutzers sowie das Risiko für die verwendete Hardware, die leicht durch falsche Schaltungen zerstört werden kann. Die in Comino verwendete Arduino-Hardware [28] kann dieser Kategorie zugewiesen werden und wird detailliert in Abschnitt 4.2.2 beschrieben. 9 Aufgrund der zusätzlichen Hardware und Software für die Programmierung meist gilt dies erst bei größeren Mengen. Kapitel 4 Technologische Grundlagen Aus den in Kapitel 3 angestellten Überlegungen zum Spiel und den Interaktionstechniken lassen sich nun verschiedenste Erfordernisse an eine konkrete Umsetzung des Konzeptes ableiten. Im Wesentlichen lassen sich die technischen Anforderungen in zwei große Gruppen einteilen, die softwareseitige Umsetzung des Spieles und die Wahl der richtigen Technologien für die Umsetzung der physikalischen Schnittstellen. Die folgenden Ausführungen sind vor allem als Vorbereitung auf das Implementierungskapitel (Siehe Kapitel 5) gedacht, in dem konkret die Arbeit mit den jeweiligen Technologien im Vordergrund stehen wird. Die folgenden Ausführungen können die jeweiligen Themenbereiche nur streifen und stellen keinen Anspruch auf Vollständigkeit. Deshalb wird schon an dieser Stelle auf die im Text referenzierte, weiterführende Literatur hingewiesen, mit der sich der interessierte Leser über das zusammengestellte Material hinaus weiter informieren kann. 4.1 Software 4.1.1 Virtools Im Gegensatz zu den klassischen Varianten von The Incredible Machine“ ” sollte die neue Umsetzung in 3D erfolgen. Das Spielkonzept erforderte zusätzlich die Einbindung einer Physiksimulation und die Integration von eigener Software für die Kommunikation mit der verwendeten Hardware. Als Entwicklungsumgebung wurde Virtools 41 gewählt, das die gestellten Anforderungen erfüllt. Mit einer auf Havoc Physics2 basierenden Physik-Bibliothek3 kann Virtools 4 um die nötigen Physik-Simulations-Funktionen erweitert werden. Die Kommunikation mit den Hardwarekomponenten erfolgte 1 http://www.virtools.com/solutions/products/virtools 4.asp http://www.havok.com/content/view/17/30/ 3 http://www.virtools.com/solutions/products/virtools-physics-library.asp 2 24 KAPITEL 4. TECHNOLOGISCHE GRUNDLAGEN (a) 25 (b) (c) Abbildung 4.1: Die Abbildung zeigt einen Screenshot des Virtools Interfaces. Links oben befindet sich die 3D-Layout-Ansicht, das sowohl als Anzeigeals auch als Editier-Fenster für das 3D-Layout des Projektes dient. Das Fenster rechts zeigt verfügbare Building-Blocks für die Programmierung, das Fenster unten zeigt den Level Manager, der alle Komponenten eines Projektes verwaltet. über eigens erstellte Building-Blocks, die unter Verwendung der Virtools SDK in C++ implementiert wurden. Abbildung 4.1 zeigt die grafische Benutzeroberfläche von Virtools 4. Das Programm bietet Möglichkeiten zur Erstellung, Verwaltung und Veröffentlichung von interaktiven 3D Applikationen. Virtools stellt dabei eine grafische Benutzeroberfläche für die Programmierung der Applikationen zur Verfügung. Verschiedenste Programm-Bausteine, sogenannte Building-Blocks werden miteinander verknüpft und zu Graphen zusammengefasst, um zur gewünschten Programmlogik zu kommen. Das Programm kann dabei auf verschiedene Virtools Skripts aufgeteilt werden. Weitere Informationen zum Einsatz, der Verwendung und möglichen Erweiterungen von Virtools 4 finden sich in [8] und [11] sowie auf der offiziellen Webseite.4 Abbildung 4.2 zeigt verschiedene Möglichkeiten des Zusammenfassens von Funktionalität, die sowohl übersichtlicheres Arbeiten garantieren, als auch eine effizientere Abarbeitung der Funktionen. 4 http://www.virtools.com/ KAPITEL 4. TECHNOLOGISCHE GRUNDLAGEN 26 Abbildung 4.2: In Virtools werden Builiding Blocks miteinander verknüpft, um die Programmlogik zu implementieren. Große Programmteile können in Scripts gekapselt werden, kleine in Graphen. Die Abbildung zeigt ein Skript(a), dass mehrere geschachtelte Graphen (b) enthält, die wiederum einzelne Building-Blocks(c) beinhalten. 4.1.2 vvvv Als Experimentier- und Testplattform wurde vvvv 5 verwendet. Von den Entwicklern als multipurpose toolkit“6 bezeichnet bietet vvvv eine Viel” zahl an Möglichkeiten für Entwickler von interaktiven Applikationen. Das Programm ist ein toolkit für die Verarbeitung von Echtzeit Video, die Einsatzbereiche liegen bei der Kommunikation mit physischen Interfaces, der Visualisierung von Echtzeit 3D-Grafik und mit Shader-Unterstützung sowie Video- und Audioinstallationen mit gleichzeitiger Interaktion mehrerer Benutzer. Ein weiterer Schwerpunkt ist die Verwaltung von MultimediaInstallationen, die auf mehreren Computern gleichzeitig laufen. Während der Entwicklung von Comino wurde vvvv zum Testen der Kommunikation mit dem verwendeten Hardware Kontroller Arduino verwendet. In vvvv wird wie auch in Virtools grafisch programmiert. Dabei bezeichnen nodes die einzelnen Bausteine, die in vvvv zu patches verknüpft werden. Auch vvvv erlaubt es, Teile eines patches zu kapseln. Diese Gruppen von nodes werden dann als subpatches bezeichnet. Abbildung 4.3 zeigt ein Beispiel eines solchen subpatches. 4.2 Hardware Die mögliche Hardware für die Umsetzung der physikalischen Schnittstellen war implizit durch den engen Zeitrahmen, das Budget und das themenrelevante Vorwissen eingeschränkt. Die Anforderungen für die verwendeten Technologien waren demnach geringer Preis, große Vielseitigkeit bei einfa5 Verwendete Version: vvvv 33beta12“, Download: http://vvvv.org/tiki-download file. ” php?fileId=981 6 http://vvvv.org/tiki-index.php KAPITEL 4. TECHNOLOGISCHE GRUNDLAGEN 27 Abbildung 4.3: Der Screenshot aus vvvv zeigt einen Subpatch aus einem vvvv-Projekt. cher Verwendung und eine umfangreiche Dokumentation. Auch der Einsatz von mehreren Komponenten gleichzeitig war von Bedeutung, da das Konzept auf mehrere Benutzer ausgelegt war. In den folgenden Abschnitten wird auf die gewählte Hardware eingegangen, die für die Implementierung der Benutzerschnittstellen von Comino verwendet wurde. 4.2.1 Anoto Wie in Abschnitt 3.4.1 schon erwähnt sind für den Benutzer zwei Schnittstellen für die Interaktion mit den virtuellen Dominosteinen nötig. Die erste Schnittstelle soll es dem Benutzer ermöglichen, zwischen den einzelnen Aktionen im Spiel zu wechseln, das zweite Interface dient als Zeigegerät für die Interaktion auf der Spielfläche. Die Verwendung von digitalen Stiften, die auf Anoto 7 -Technologie basieren, ermöglichte es, beide Schnittstellen unter Verwendung nur eines Hardware-Devices umzusetzen. Die Stifte werden in weiterer Folge als AnotoStifte bezeichnet. Das Umschalten zwischen den verschiedenen Funktionen 7 http://www.anoto.com/ KAPITEL 4. TECHNOLOGISCHE GRUNDLAGEN 28 im Spiel wurde dabei mit speziellen physischen Menüs bewerkstelligt, die mit Anoto-Stiften bedient werden können. Gleichzeitig funktionieren die Stifte auch direkt als Zeigegeräte auf der Tischoberfläche und erlauben es so mehreren Benutzern, direkt auf der realen Spielfläche mit der virtuellen Welt zu interagieren. Das Konzept eines digitalen Stiftes wurde 1996 von Christer Fåhræus im Rahmen seiner Doktorarbeit vorgestellt, um dann in den darauf folgenden Jahren in Form eines ersten, funktionierenden Prototypen umgesetzt zu werden [1]. Die Anoto-Gruppe, vormals C Technologies“, erkannte das ” Potential der Idee und startete 1998 mit der Vermarktung des ersten kommerziellen digitalen Stiftes, der C-Pen“ in Schweden. 1999 beginnt die in” ternationale Vermarktung des Produktes. In Kooperation mit Sony (2002)8 , Logitech (2002)9 , Nokia (2003)10 und Hitachi Maxell (2003)11 werden die erste, zweite, dritte bzw. vierte Generation von digitalen Stiften basierend auf Anoto-Technologie auf den Markt gebracht. Seit 2006 fokussiert Anoto auf den Vertrieb von intelligenten Formularen plus Stiften für Großkunden unter anderem aus den Bereichen Logistik, Bildungswesen, öffentlicher Dienst, Gesundheits- und Bankwesen12 . Die beiden wesentlichen Bestandteile der Anoto-Technologie sind der digitale Stift sowie Papier, das mit einem speziellen Punktmuster, sogenanntem Anoto-Pattern bedruckt ist. Anoto-Pattern: Das Anoto-Pattern ist ein Punktmuster, das zweidimensionale Koordinaten codiert und das von den Anoto-Stiften ausgelesen werden kann. Für die Bestimmung der absoluten Position (vergleiche auch Abbildung 4.4) wird eine Einheit von sechs mal sechs Punkten benötigt. Die Verschiebung der einzelnen Punkte zueinander erlaubt es, wie in einem Barcode, Daten zu speichern. Für die Erstellung dieses Punktmusters wird ein von Anoto entwickelter und patentierter Algorithmus verwendet, der eine theoretische Gesamtfläche von 60.000.000 km2 einzigartigen Patterns erstellen kann. Diese Fläche ist in verschiedene Regionen unterteilt, denen bei Bedarf verschiedene Funktionalität zugewiesen werden kann. So veranlassen gewisse Regionen des Patterns den Anoto-Stift, die gelesenen Daten zu Speichern während andere Regionen das sofortige Senden aller Daten veranlassen. Um Anoto-Pattern für eigene Projekte drucken und verwenden zu können, müssen von Anoto kostenpflichtige Patternlizenzen angefordert werden. Lesbares Anoto-Pattern muss mit 600 dpi und mit Tinte gedruckt werden, 8 http://www.sonyericsson.com/spg.jsp?cc=global&lc=en&ver=4001&template=pp4 1 1&zone=pp&lm=pp4 1&pid=9753 9 http://www.logitech.com/index.cfm/mice pointers/digital pen/&cl=us,en 10 http://europe.nokia.com/link?cid=EDITORIAL 173765 11 http://www.maxell.co.jp/e/products/industrial/digitalpen/index.html 12 http://www.anoto.com/allcases KAPITEL 4. TECHNOLOGISCHE GRUNDLAGEN 1.5 mm 29 0.3 mm Abbildung 4.4: Die Abbildung zeigt eine schematische Darstellung des Aufbaus des Anoto-Patterns. Wird der Stift über eine mit Anoto-Pattern bedruckte Oberfläche bewegt (a), nimmt die im Stift integrierte Kamera 50 bis 100 Bilder pro Sekunde auf und gibt sie zur Verarbeitung an den Bildverarbeitungsprozessor weiter. Sechs mal sechs Punkte (b) werden benötigt, um die Pattern-ID und die absolute Position zu berechnen. Diese befinden sich auf einer Fläche von 1,5 mal 1,5 Millimeter. Denkt man sich ein Hilfsraster (in der Abbildung grau dargestellt) mit einem Abstand von 0,3 Millimetern über die Anoto-Punkte, so können die einzelnen Punkte sich oben, unten, recht oder links vom gedachten Raster befinden (c). die Licht mit einer Wellenlänge im Infrarotbereich (800nm bis 950nm) absorbiert. Tinte, die im besagten Infrarotbereich ausreichend Licht reflektiert, wird von der optischen Einheit des Stiftes nicht erkannt. Somit können für den Stift unsichtbare Grafiken über das Pattern gedruckt werden, um gewisse Bereiche mit spezieller Funktionalität optisch hervorzuheben. Dies kann verwendet werden, um grafische Benutzer-Interfaces auf Papier zu erstellen, die dann mit Anoto-Stiften bedient werden können. Abbildung 4.5 zeigt einige Anwendungsbeispiele für solche Benutzer-Interfaces auf Papier. In Abschnitt 5.2.2 wird konkret auf die Umsetzung von eigenen ausgedruckten Menüs eingegangen, die in Comino verwendet wurden. Mithilfe dieser Interfaces ist es möglich, verschiedene Aktionen in Comino auszulösen. Anoto-Stift: Anoto-Stifte funktionieren als Lesegeräte für das oben beschriebene Punktmuster und können die Position des Stiftes auf dem Pattern zu berechnen und die Koordinaten für die weitere Verwendung speichern oder an einen über Bluetooth13 verbundenen Computer senden. Die folgenden Ausführungen und Grafiken beziehen sich auf das für die Implementierung verwendete Modell von Hitachi Maxell, die grundlegende Funktionsweise ist für alle auf Anoto-Technologie basierenden Stifte ähnlich. Der Stift wird der Einfachheit halber auch weiterhin als Anoto-Stift bezeichnet. Abbildung 4.6 zeigt die wesentlichen Bestandteile eines Anoto-Stifts. Wie in Abschnitt 4.2.1 erwähnt funktioniert die Erkennung des Punktmusters im 13 http://www.bluetooth.com/bluetooth/ KAPITEL 4. TECHNOLOGISCHE GRUNDLAGEN (a) 30 (b) Abbildung 4.5: Bei Verwendung von Tinte, die das Anoto Pattern nicht überdeckt, können verschiedenste Benutzerinterfaces auf das Papier gedruckt werden, ohne dass die Erkennung gestört wird(a). Diese grafischen Userinterfaces werden dann mithilfe eines Anotostifts bedient(b). Halteöse Vibrator Batterie-LED Verbindungs-LED Power-LED wiederaufladbare Lithium-Ionen-Batterie Bluetooth-Prozessor Leuchtdioden Speicherchip (1 MB) BildbearbeitungsProzessor Mine optische Einheit Infrarot-Leuchtdiode optischer Filter Drucksensor Hauptprozessor Abbildung 4.6: Schematische Darstellung des Maxell-Stiftes mit den wichtigsten Komponenten. Infrarotbereich. Die optische Einheit des Stiftes, bestehend aus Filter, Kamera und Diode, arbeitet demnach im für das menschliche Auge nicht sichtbaren Bereich. Die Diode emittiert das für das Tracking nötige Licht und ermöglicht so eine Verwendung des Stiftes auch bei sehr dunklen Lichtverhältnissen. Mit einer Aufnahmerate von 50 bis 100 Bildern pro Sekunde stellt die Kamera sicher, dass auch schnelle Bewegungen des Stiftes noch erkannt werden. Die von der Kamera aufgenommenen Daten werden bereits innerhalb des Stiftes verarbeitet. Die Bildverarbeitung passiert in einem eigenen Pro- KAPITEL 4. TECHNOLOGISCHE GRUNDLAGEN 31 zessor, der die Kennnummer des Patterns (Pattern-ID) und das Koordinatenpaar auf dem Pattern ermittelt. Der maximale Fehler14 dabei beträgt 1mm. Zusätzlich wird für jedes Koordinatenpaar durch den hinter der Mine platzierten Drucksensor auch die Druckstärke ermittelt. Zwei weitere Werte werden für die einzelnen Punkte ermittelt. Der Stift versieht jeden Punkt mit einem Zeitstempel und mit der Kennnummer des Stiftes (Pen-ID), die es ermöglicht, verschiedenen Punkte verschiedenen Stiften zuzuordnen. Die vom Stift aufgenommenen Daten werden entweder in den internen Speicher geschrieben oder in Echtzeit an einen verbundenen Computer übertragen. Anoto-Stifte besitzen üblicherweise mehrere LEDs, die dem Benutzer Rückmeldungen zum aktuellen Zustand des Stiftes geben können. Die wichtigste Art, mit dem Benutzer zu kommunizieren ist jedoch der eingebaute Vibrator, der bei verschiedensten Anlässen aktiviert wird. Einer dieser Auslöser ist das Auftreten eines Fehlers beim Auslesen des Patterns. Dies kann mehrere Gründe haben: Eine Möglichkeit ist, dass das Pattern an der aktuellen Stelle nicht richtig gedruckt wurde. Sowohl Auflösung als auch Punktgrösse können hier den Ausschlag geben. Eine anderer, häufiger Auslöser ist eine falsche Haltung des Stiftes. Sowohl ein zu steiler Winkel zum Pattern als auch ein zu flacher Winkel können dazu führen, dass das Pattern nicht mehr korrekt ausgelesen werden kann. 4.2.2 Arduino Neben der Interaktion des Spielers mit dem System musste auch eine Interaktion von physischen und virtuellen Spielelementen in Comino umgesetzt werden. Diese Interaktion sollte durch Schnittstellen erreicht werden, die zum einen schnell und kostengünstig umzusetzen sind und dabei Spielraum für Experimente zulassen. Für Comino wurde ein Arduino15 -Hardware-Kontroller (in weiterer Folge Arduino-Board oder Arduino-Kontroller genannt) verwendet. Arduino ist eine Plattform, die sich der Erstellung physischer, interaktiver Objekte widmet. Die Arduino-Plattform wird als Open-Source-Projekt entwickelt und besteht sowohl aus Hardware als auch aus Software. Die benötigte Hardware kann nach frei verfügbaren Plänen entweder selbst zusammengebaut werden oder vormontiert gekauft werden. Eine Liste von Bezugsquellen für die Hardware ist auf der offiziellen Arduino-Webseite zu finden16 . Es können je nach Verwendungszweck verschiedene Arduino-Boards bezogen werden. Erhältlich ist neben einer USB Ausführung auch eine verkleinerte Variante ohne die USB-Schnittstelle sowie ein Kontroller mit Bluetooth-Antenne für die kabellose Verbindung mit einem Computer17 . Die Webseite dient als Aus14 http://www.maxell.co.jp/e/products/industrial/digitalpen/faqs.html http://www.arduino.cc/ 16 http://www.arduino.cc/en/Main/Buy 17 http://www.arduino.cc/en/Main/Hardware 15 KAPITEL 4. TECHNOLOGISCHE GRUNDLAGEN digitale Ein-/Ausgänge Masse 3 2 2 0 9 8 1 1 1 1 7 6 5 4 3 2 1 0 Digital 4 3 2 1 ResetKnopf 4700 Arduino NG 1002 2501 2210 www.arduino.cc 1 X3 2210 0551-A FT232RL 37AJ N001 Quartz 6b 47 25V 6b 47 25V D1 Kondensatoren Schutzdiode S1 ICSP PJ65 GSTM Stecker für externe Stromversorgung U4 ISPStecker 0604I Empfänger-LED TX RX S16B00H6 ATMEGA8 - 16PU Sender-LED 1001 PWR SEL 1 EXT USB 1001 StromversorgungsSelektor Power-LED TX RX AREF GND M.Banzi D.Cuartielles T.Igoe G.Martino D.Mellis X4 USB-Verbindungsstecker Test-LED (Pin 13) 4700 Seriell zu USB Konverter-Chip 32 5V Gnd 9V Masse +5V-Ausgang Analog in 0 1 2 3 4 5 Mikrokontroller analoge Eingänge +9V-Eingang Abbildung 4.7: Schematische Darstellung des Arduino-Kontrollers tauschplattform für Dokumentations- und Beispielmaterial der Entwicklerund Fangemeinde und ist der perfekte Startpunkt für jeden angehenden Arduino-Entwickler und eine wertvolle Informationsquelle für alle Entwickler aus dem Bereich des Physical Computing“. ” Das Arduino Projekt startete im akademischen Bereich und ist hier auch weiterhin stark vertreten. Vor allem wegen des geringen Preises von ungefähr 30 Euro ist es eine gute Wahl für Workshops und Kurse an höheren Schulen und Universitäten. Aufgrund der ausführlichen Dokumentation ist es aber auch ohne Probleme möglich, sich autodidakt das nötige Wissen für die Arbeit mit Arduino anzueignen. Abbildung 4.7 zeigt eine schematische Darstellung des Arduino-Kontrollers mit den wichtigsten Komponenten. Es handelt sich dabei um die USB Variante des Arduino-Boards. Die nachfolgenden Erklärungen beziehen sich ebenfalls auf die USB-Version von Arduino. Eine detailierte Einführung und weitere Informationen zum Thema physical computing“ finden sich in [4] ” und in [33]. Arduino kann je nach Anwendungsszenario autonom oder mit einem Computer verwendet werden. Für den Kontroller können mithilfe der auf der Webseite erhältlichen Arduino-Software18 eigene Programme geschrie18 http://www.arduino.cc/en/Main/Software KAPITEL 4. TECHNOLOGISCHE GRUNDLAGEN 33 ben werden und diese dann über USB auf das Board geladen werden. Das vom Benutzer hochgeladene Programm legt unter anderem auch fest, ob das Arduino-Board für die weitere Verwendung mit dem Computer verbunden bleiben muss oder ob es autonom arbeiten kann. Dem Entwickler stehen bei der USB-Version von Arduino folgende Einund Ausgänge zur Verfügung. • 14 digitale Pins (0-13), die in der Software zwischen Ein- und Ausgang umgeschaltet werden können. • 6 analoge Pins (0-5), die nur als Eingänge verwendet werden können und die anliegende Spannung (0 bis 5 Volt) mit 10 bit quantisieren .19 • 3 pulse width modulation“20 (PWM) Pins, wobei es sich strengge” nommen hierbei um keine eigenen Pins handelt, sondern um einen speziellen Modus der digitalen Pins 9, 10 und 11. Diese drei Pins können im auf dem Kontroller laufenden Programm in den PWM-Modus geschaltet werden. An die Ein- und Ausgabe Pins lassen sich nun verschiedenste elektronische Bauteile wie Sensoren oder LEDs anschließen, die vom auf dem ArduinoBoard laufenden Programm verarbeitet werden. 19 Details zum Analog-Digital Wandler sind unter http://www.atmel.com/dyn/resources/ prod documents/doc2486.pdf auf den Seiten 196 - 209 zu finden 20 Pulsbreiten Modulation: Verfahren, bei dem durch abwechselndes Anlegen von Spannung (HIGH) und keiner Spannung (LOW) analoge Spannungswerte zwischen 0 und der HIGH-Spannung simuliert werden können. Vergleiche auch [4, S. 39–40] und [18, S. 19–21] Kapitel 5 Implementierung 5.1 Spielprinzip Comino ist ein Spiel für mehrere Spieler, das gemeinsam an einem Tisch gespielt werden kann. Die wichtigsten Komponenten des Spieles sind Dominosteine, die von den Spielern auf der Spielfläche platziert werden müssen. Dabei sollen die Dominosteine hochkant in einer Reihe aufgestellt werden, dass der erste Stein, sobald er angestoßen wird, den zweiten und dieser wiederum den dritten Stein zu Fall bringt, bis alle Steine umgefallen sind. In Comino müssen ein Startstein und ein Zielstein miteinander verbunden werden, um einen Level erfolgreich zu absolvieren. Gespielt wird Comino auf einem Rückprojektionstisch mit einer speziellen Tischoberfläche. Diese Oberfläche erlaubt die gleichzeitige Lokalisierung von mehreren digitalen Stiften direkt auf der Oberfläche. Mithilfe dieser Stifte können die Spieler virtuelle Dominosteine auf dem projizierten Spielplan platzieren, die dann vom Projektor dargestellt werden. Der virtuelle Untergrund bestimmt dabei, wo mit den Stiften Dominosteine platziert werden können und wo die virtuellen Steine nicht platziert werden können. Ist es unmöglich, den Start- und Zielstein eines Levels nur mit virtuellen Steinen zu verbinden, so können die Spieler in die reale Welt ausweichen. Spezielle physische Spielkomponenten erlauben es den Spielern, den physikalischen Impuls, der die Dominosteine zum umkippen bewegt, vom virtuellen Spielbrett auf das reale Spielbrett zu übertragen und retour. Diese Schnittstellen, in weiterer Folge Comino-Portale genannt, ermöglichen es also, dass ein virtueller Stein einen echten Dominostein umkippen kann und umgekehrt. Findet sich also in einem Level ein für die virtuellen Steine unüberwindbares Hindernis, so können die Benutzer statt den virtuellen Dominosteinen reelle Steine verwenden, um Start und Ziel miteinander zu verbinden. 34 KAPITEL 5. IMPLEMENTIERUNG Anoto Stifte 35 Rückprojektionsoberfläche Rückprojektionsoberfläche Ventilatoren Projektor Projektor Computer Wartungsklappen Spiegel ProjektorLichtkegel Spiegel Kabelöffnung (a) (b) Abbildung 5.1: Schematische Darstellung der wichtigsten Komponenten des Rückprojektionstisches (a) und des Projektionswegs innerhalb des Tisches (b). 5.2 5.2.1 Hardware Tisch Als Comino Spielfläche wurde ein Rückprojektionstisch verwendet, der in seiner Grundversion für das Augmented-Reality-Spiel Neon Racer“ [20] ge” baut wurde. Der Tisch wurde jedoch für die Verwendung mit Anoto Stiften adaptiert. Abbildung 5.1 zeigt die wichtigsten Komponenten des Rückprojektionstisches für Comino sowie den Lichtkegel des Projektors innerhalb des Tisches. Der Tisch bietet ausreichend Platz, die gesamte benötigte Hardware im Innenraum zu verstauen. Der im Tisch montierte Projektor projiziert auf einen Spiegel, der das Bild auf die Tischoberfläche reflektiert. Dieser Aufbau erlaubt eine maximale Projektionsfläche von 83 × 110 cm bei einer Gesamthöhe von 89 Zentimetern. Der wesentliche Unterschied zum ursprünglichen Rückprojektionstisch ist die abgeänderte Tischoberfläche, die sowohl für Rückprojektion als auch als Tracking-Oberfläche für die Anoto-Stifte geeignet sein muss. Für ein optimales Tracking-Ergebnis der Anoto Stifte spielen viele Faktoren eine Rolle. Abbildung 5.2 zeigt die wichtigsten in einem schematischen Querschnitt durch eine Tracking-Oberfläche. Der konkrete Aufbau der Tischoberfläche ist in Abbildung 5.3 dargestellt. Die Gesamtdicke der Oberfläche im Test-Setup beträgt 8 mm. Bei dieser Dicke ist die Projektionsfläche exakt in der Tischplatte versenkt und ergibt so eine glatte Spielfläche. Die Oberfläche selbst besteht aus drei verschiedenen Materialien. Die unterste Schicht bildet eine 5 mm starke, transparente Glasplatte, die als ebene Unterlage für das Anoto-Pattern dient. Sie verstärkt die Tischoberfläche und verhindert ein Durchhängen der Projektionsfolie. An die Glasplatte bestehen sonst keine speziellen Anforderungen. KAPITEL 5. IMPLEMENTIERUNG (e) (d) 36 (a) (f) (b) (c) Abbildung 5.2: Die Abbildung zeigt sechs Faktoren, die auf das Anoto Tracking Einfluß haben: Die Handhabung des Stiftes (a), die Beschaffenheit der Oberfläche (b) und Unterlage(c), die des Materials mit Anoto-Pattern (d), die Abnützung der Oberfläche durch die Mine (e) sowie verschiedene optische Einflussgrößen (f), die das Tracking beeinflussen. Oben befindet sich eine 3 mm dicke Scheibe, die zum Schutz der ProjektiR Scheibe1 onsfolie dient. Für diese Scheibe wurde eine gehärtete Plexiglas verwendet, da diese Scheibe selbst bei längerer Verwendung der Anoto-Stifte nur sehr wenig zerkratzt und so weitgehend fehlerfreies Tracking auf längere Zeit sichergestellt ist. Auch diese Scheibe muss natürlich transparent sein, um sowohl Projektion als auch Tracking zu ermöglichen. Die mit AnotoPattern bedruckte Projektionsfolie wird zwischen den beiden Scheiben fixiert und dient sowohl als Projektionsfläche als auch als Tracking-Oberfläche. Um als Rückprojektionsfolie zu funktionieren, muss das Material ein möglichst homogen ausgeleuchtetes Bild ermöglichen. Wichtig ist dabei, dass weder zu viel Licht absorbiert wird, noch dass ein starker Hotspot auf der Oberfläche sichtbar ist. Das Material muss bedruckbar sein, wobei idealerweise der Druck nicht verwischbar sein sollte. Zusätzlich müssen die Materialeigenschaften sicherstellen, dass das Projektorlicht das Tracking der Stifte nicht stört. Als Projektionsfolie wurde HP Colorlucent Backlit Film“2 ver” wendet, die alle Anforderungen zufriedenstellend erfüllt. 5.2.2 Anoto Menüs Für Comino wurden verschiedene physische Menüs und Interfaces umgesetzt, die mit den Anoto-Stiften bedient werden können. Sie dienen zum Steuern von verschiedene Funktionen im Spiel. Im Wesentlichen bestehen 1 http://www.interlux.at/produkte.php/pgPath/13 17 100 105/page/ vollplatten-extrudiert-xtp.html 2 http://h30267.www3.hp.com/country/us/en/designjet/supplies/vls32-2103---.html? pageseq=920731 KAPITEL 5. IMPLEMENTIERUNG 37 (d) (a) (c) (e) (b) (f) Abbildung 5.3: Die für das Anoto-Tracking benötigten Bestandteile im Tisch: Durch eine 3mm dicke, kratzfeste Kunststoffplatte (a) geschützt dient eine spezielle Folie (b), die mit Anoto-Pattern bedruckt ist, gleichzeitig als Projektions- und Tracking-Fläche. Darunter liegt eine 5mm dicke Glasplatte (c). Sie verstärkt die Oberfläche und verhindert ein Durchhängen der Projektionsfolie. Die drei Komponenten (a), (b) und (c) wurden für das Foto aus ihrer Umrahmung gehoben. Die beiden Ladestationen (e) dienen zum Aufladen der Stifte (d) bei Nichtgebrauch. Sowohl die Ladestationen als auch die Projektionsfläche sind in den Holzrahmen (f) versenkt. alle diese Menüs aus Papier, das mit Anoto-Pattern bedruckt ist und auf dem zusätzlich ein grafisches Userinterface gedruckt wurde. Das bedruckte Papier kann in weiterer Folge auf die gewünschte Größe und Form zugeschnitten und auf verschiedene Oberflächen geklebt werden. Im folgenden Abschnitt wird kurz auf die Herstellung von solchen druckbaren Interfaces am Beispiel des Hauptmenüs von Comino erklärt. Das Hauptmenü von Comino erlaubt es den Benutzern, zwischen den verschiedenen Interaktions-Möglichkeiten der Stifte zu wechseln. Zusätzlich können verschiedene Aktionen im Level ausgelöst werden. So kann auf dem Hauptmenü die Levelsimulation gestartet werden, der Level kann in den Anfangszustand zurückversetzt werden und es eröffnet die Möglichkeit, sich einen Hilfedialog zu jedem Level anzeigen zu lassen. Wie schon in Abschnitt 4.2.1 erwähnt, muss beim Überdrucken des Patterns darauf geachtet werden, dass im Infrarotbereich das Pattern immer noch klar ersichtlich ist. Da die Verwendung von schwarzer Tinte beim Drucken mit handelsüblichen Tintenstrahl- und Laserdruckern dies oft nicht gewährleistet ist, kann hier beim Vierfarbdruck auf spezielle schwarze Tinte KAPITEL 5. IMPLEMENTIERUNG 38 zurückgegriffen werden [2]. Anoto substitute black is black ink that is not seen by the pen. Therefore Anoto substitute black can be used on top of the pattern without disturbing the functionality. If you wish to print anything in a four-color process on top of the pattern, then the Kchannel in CMYK must be printed with Anoto substitute black. Diese Tinte ist jedoch für den Privatgebrauch schwer erhältlich, was in der Praxis dazu führt, dass Vierfarbdruck nur mit Einschränkungen möglich ist. Eine funktionierende Möglichkeit besteht darin, möglichst nur grafische Interfaces zu drucken, die überhaupt kein oder nur wenig Schwarz verwenden. Da zum Auslösen eines Buttons theoretisch nur ein einziger Punkt erkannt werden muss, kann toleriert werden, dass das Tracking nicht überall einwandfrei funktioniert. Solange der Stift einen Punkt erkennen kann, wird das Interface trotzdem funktionieren. Somit kann zum Beispiel Schwarz zum Drucken von Text auf Buttons verwendet werden, ohne die Funktionalität stark zu beeinträchtigen. Der Stift wird jedoch zu vibrieren beginnen sofern das Pattern nicht erkannt werden kann, was den Benutzer verwirren könnte. Sollen auf dem gedruckten Menü nicht nur Buttons, sondern auch ein- oder zweidimensionale Regler Platz finden, so sollte in jedem Fall die gesamte Fläche vom Stift lesbar sein. In diesem Fall empfiehlt sich eine andere Möglichkeit, die auch für die Erstellung der physischen Menüs für Comino verwendet wurde. Beim Druck von Grafiken auf einem Drucker für den Heimgebrauch ist es üblich, dass der Druckertreiber noch gewisse Änderungen an den Grafiken vornimmt. Eine davon ist das Ersetzen von Farbanteilen bei dunklen, zusammengemischten Farbflächen durch schwarze Tinte. Dies passiert auch, wenn die CMYK-Farbe in der Grafiksoftware keinen Schwarzanteil hat. Dies ist üblicherweise durchaus wünschenswert, da so bei gleich aussehendem Druckergebnis die meist teurere Farbpatrone geschont wird. Für den Druck von grafischen Interfaces über Anoto-Pattern ist diese Funktion jedoch nicht wünschenswert, da das Resultat nicht funktioniert. Dieses Problem lässt sich jedoch umgehen. Im folgenden Teil wird beschrieben, wie durch einen einfachen Trick flächige schwarze Interfaces gedruckt werden können, ohne dass das Anoto-Tracking davon beeinträchtigt wird. Alle für das Projekt benötigten Vektorgrafiken wurden in Adobe Freehand MX3 erstellt. Analog zur Vorgehensweise kann natürlich jedes andere Grafikprogramm verwendet werden. Natürlich unterscheiden sich die programmspezifischen Befehle, die grundlegende Vorgehensweise ist aber gleich. Abbildung 5.4 zeigt die erstellte Vektorgrafik für das Hauptmenü. Bei der Erstellung wurde darauf geachtet, dass nur CMYK Farben verwendet wur3 http://www.adobe.com/products/freehand/ KAPITEL 5. IMPLEMENTIERUNG 39 Abbildung 5.4: Das Design des Hauptmenüs von Comino. den, deren K-Wert auf 0 gesetzt war. Dunkle Farben sind nur aus den drei Farbkomponenten Cyan, Magenta und Yellow zusammengesetzt. Ist die Grafik fertiggestellt, werden im nächsten Schritt die drei Farbkanäle händisch separiert. Hierfür sollte die Grafik innerhalb des druckbaren Bereiches auf einer eigenen Seite platziert werden. Danach empfiehlt es sich, für jeden Farbkanal eine Kopie der Seite mit der Grafik anzulegen. Das Original sollte als Referenz erhalten bleiben. Dabei ist darauf zu achten, dass die Grafik auf den Seiten an exakt der selben Stelle platziert ist. Danach wird die Grafik auf jeder der Seiten auf einen Farbkanal reduziert. Dies funktioniert in Freehand über das Color Control“ Menü (Siehe Abbildung ” 5.5) und wirkt sich auf alle im Vorfeld markierten Objekte aus! Abbildung 5.6 zeigt die Grafiken nach dem Reduzieren auf jeweils einen Farbkanal. Das Interface ist nun für den Druck vorbereitet. Das Mischen der Farben, das normalerweise in einem Druckdurchlauf passiert, erfolgt nun in drei seperaten Druckdurchläufen, bei denen immer auf dieselbe Seite Papier gedruckt wird. Nacheinander wird auf dasselbe Blatt Papier jede der drei farbreduzierten Grafiken gedruckt. Dabei sollten für jeden Durchgang die gleichen Druckeinstellungen verwendet werden, um ein farbechtes Ergebnis zu erhalten. Für manche Drucker empfiehlt es sich, das Ergebnis mithilfe der Treibereinstellungen noch farbzukorrigieren. Hierfür wird jedoch nur eine empirische Anpassung vorgeschlagen, da die erhaltenen Ergebnisse stark von Drucker und verwendeter Grafik abhängen und deshalb keine generellen Aussagen getroffen werden können. Zum Abschluss muss noch mit schwarzer Tinte das Pattern über das Interface gedruckt werden und die ein- KAPITEL 5. IMPLEMENTIERUNG 40 Abbildung 5.5: In Freehand MX ist Funktion zum Verändern der Farbverhältnisse einer Grafik im Menü Xtras->Colors->Color Control zu finden. (a) (b) (c) Abbildung 5.6: Die Abbildung zeigt die Kopien des Hauptmenüdesigns, die mithilfe des Color Control-Menüs auf den Cyan- (a), den Magenta- (b) und Yellowfrabanteil (c) reduziert wurden. In der unteren Reihe finden sich die Menüeinstellungen für das jeweils darüber gezeigte Ergebnis. zelnen sensitiven Bereiche des Interfaces kalibriert werden. Der Druck der einzelnen Durchgänge kann dabei in eine beliebigen Reihenfolge erfolgen! Ist das Interface kalibriert, so kann es zurechtgeschnitten und in verschiedene Bauteile integriert werden. Abbildung 5.7 zeigt das fertig ausgeschnittene Hauptmenü von Comino. Zum Schutz vor Zerkratzen wurde das bedruckte Papier zwischen zwei Acryl-Scheiben fixiert. KAPITEL 5. IMPLEMENTIERUNG (a) 41 (b) Abbildung 5.7: Die Abbildung zeigt die Verwendung eines physischen Menüs in Comino. Der Stift kann sowohl zum Bedienen des Menüs (a) als auch als Eingeabegerät direkt auf dem Tisch (b) verwendet werden 5.2.3 Arduino-Sensorbox Für die Erstellung und das Testen der benötigten elektronischen Schaltungen wurde eine Steckplatine4 verwendet. Mit der Steckplatine können Schaltungen ohne zu Löten erstellt werden. Abbildung 5.8 zeigt einen Testaufbau einer Infrarotschranke sowie mehrere LEDs, die zum Testen der Kommunikation mit dem Arduino-Kontroller verwendet wurden. Für die Verwendung im Spiel sollte die Verkabelung der physischen Spielkomponenten und des Arduino-Kontrollers jedoch vom Benutzer weitgehend verborgen werden, um einer komplizierten Handhabung und falschen Schaltungen entgegenzuwirken. Trotzdem sollte das verwendete Arduino Board auch weiterhin flexibel eingesetzt werden können, um mit zukünftigen Erweiterungen und Projekten kompatibel zu sein. Um diesen Anforderungen gerecht zu werden, wurde der Arduino-Kontroller in ein Plastikgehäuse verbaut und für die Verwendung mit standardisierten Steckverbindungen verkabelt. Dabei sollten möglichst viele der Ein- und Ausgänge des Kontrollers nach dem Verbauen in das Gehäuse (in die Sensorbox) weiterhin verfügbar sein. Abbildung 5.9 zeigt schematisch den Aufbau der Sensorbox. Bei allen folgenden Abbildungen repräsentieren die dargestellten Farben die reellen Farben der verwendeten Kabel der konkreten Umsetzung und keine Pinbelegungen. Die Pinbelegungen der Buchsen finden sich im unteren Teil von Abbildung 5.9. Als Steckverbindungen für die Sensorbox wurden vier 4-polige Mini-DIN5 Stecker und vier Chinch6 (RCA) Stecker verwendet. Weiters wurde für die 4 http://www1.at.conrad.com/scripts/wgate/zcop at/˜====?˜template=PCAT AREA S BROWSE&direkt aufriss area=SHOP AREA 14739 5 http://de.wikipedia.org/wiki/Mini-DIN 6 http://de.wikipedia.org/wiki/Cinch KAPITEL 5. IMPLEMENTIERUNG 42 Abbildung 5.8: Die abgebildete Testschaltung zeigt im Vordergrund eine Infrarot-Lichtschranke sowie einige LEDs. Die dargestellten Bauteile sind über eine Steckplatine mit dem im Hintergrund sichtbaren ArduinoKontroller verbunden und dienten in der Anfangsphase des Projektes als Testschaltungen für die Kommunikation mit Arduino. Stromversorgung von externen Schaltungen ein Hohlstecker7 mit einer Augangsspannung von +5 Volt vorgesehen. Zusätzlich finden sich auf der Sensorbox die USB Buchse des Arduino-Boards sowie ein LED, das über den digitalen Pin Nummer 13 des Arduino-Kontrollers ein und ausgeschaltet werden kann. Abbildung 5.10 zeigt die Sensorbox in geöffnetem Zustand. Die Buchsen sind in zwei Reihen übereinander verbaut. Die USB-Buchse des ArduinoBoards ist auf der gegenüberliegenden Seite platziert. Um in weiterer Folge eindeutige Anleitungen für das Anstecken der verschiedenen Spielkomponenten geben zu können, wurden verschiedene Farben für die Buchsen verwendet. So sind Verwechslungen beim Anstecken weitgehend ausgeschlossen. Zur besseren Übersicht und zum Vergleich mit dem Foto der geöffneten Sensorbox sind in Abbildung 5.11 und Abbildung 5.12 die beiden Buchsen-Typen getrennt voneinander dargestellt. Um direkt im Spiel die Funktionalität der Sensorbox und der Komponenten überprüfen zu können, wurde für die Sensorbox ein eigenes Menü entworfen, das mit Anoto-Stiften bedient werden kann. Mithilfe dieses Menüs ist es möglich, den Zustand aller Ausgänge der Sensorbox zu setzen und so gleichzeitig die Kommunikation mit Arduino und die Funktionsweise al7 http://de.wikipedia.org/wiki/Hohlstecker KAPITEL 5. IMPLEMENTIERUNG Ein-/Ausgänge Sensorbox 43 Ein-/Ausgänge Arduino DIN Buchsen Beschreibung Kabel Farbe M RCA Buchsen as +5 se V Power +5V Ausgang Masse +5V Mini-DIN* Weiß 1 Masse +5V Digital I/O Digital I/O PWM Mini-DIN Weiß 2 Masse +5V Digital I/O Digital I/O PWM Mini-DIN Schwarz 1 Masse +5V Digital I/O Analog I Mini-DIN Schwarz 2 Masse +5V Digital I/O Analog I RCA** Blau Masse PWM RCA Rot Masse Digital I/O RCA Grün Masse Digital I/O RCA Orange Masse Digital I/O LED Masse Daten * 4 polig Pinbelegung RCA: Signal Analoge Eingänge (Analog I) 0 1 2 3 4 5 Digitale Ein-/Ausgänge (Digital I/O) PWM 1 1 1 1 2 3 4 5 6 7 8 9 0 1 2 3 Hohlstecker USB LED ** RCA ist die internationale Steckerbezeichnung für Cinch Hohlstecker: Mini-DIN: Masse Signal +5V Signal Masse +5V Masse Abbildung 5.9: Schematische Darstellung der Sensorbox. Die waagrechten Linien zeigt die Verkabelung von den Buchsen zu den Arduino-Pins, die durch senkrechte Linien repräsentiert sind. Am linken und rechten Rand finden sich schematische Abbildungen der verbauten Buchsen. Im unteren Teil findet sich die Pinbelegung der verwendeten Buchsen. KAPITEL 5. IMPLEMENTIERUNG 44 Abbildung 5.10: Die Sensorbox ohne Abdeckung. Die vier Cinch Buchsen liegen über den vier Mini-DIN Buchsen. Der Hohlstecker und das LED sind der Sensorbox in dieser Abbildung noch nicht hinzugefügt. LED Sensorbox Lochrasterplatine RCA Blau RCA Rot RCA Grün RCA Orange +5V-Ausgang Arduino-Kontroller Abbildung 5.11: Die Verkabelung der vier RCA Buchsen der Sensorbox. Um leicht verständliche Anleitungen für das Anstecken von Spielkomponenten geben zu können, wurden verschiedenfarbige Buchsen verwendet. KAPITEL 5. IMPLEMENTIERUNG 45 Mini-DIN Schwarz 2 Mini-DIN Schwarz 1 Mini-DIN Weiß 2 Mini-DIN Weiß 1 Abbildung 5.12: Die Verkabelung der vier Mini-DIN Buchsen der Sensorbox. Die beiden weißen Buchsen sind jeweils mit einem digitalen Pin mit PWM-Funktion verbunden und können so Servos ansteuern. Die beiden schwarzen Buchsen sind für den Einsatz mit Sensoren gedacht und sind jeweils mit einem analogen Eingang des Arduino-Boards verbunden. (a) (b) Abbildung 5.13: Die Abbildung zeigt das für die Sensorbox implementierte Menü (a), das direkt auf dem Gehäuse angebracht ist. Mithilfe eines AnotoStifts (b) können über dieses Menü alle Ausgänge der Sensorbox gesetzt werden. ler angeschlossenen physischen Komponenten testen. Abbildung 5.13 zeigt die Sensorbox mit dem Menü. Durch einfaches Berühren der vordefinierten Bereiche werden in Comino die jeweiligen Ausgänge am Arduino-Board aktiviert oder deaktiviert. 5.2.4 Comino-Portale Um die virtuellen Spielsteine mit den reellen interagieren lassen zu können wurden zwei physische Portale für Comino entwickelt, die diese Interaktion erlauben. Die Aufgabe der physischen Spielelemente war namensgebend für die beiden Portale. Das Portal, das den physikalischen Impuls von der realen in die virtuelle Welt weiterleitet, wird in Folge R2V (Real-To-Virtual ), das andere Portal mit V2R (Virtual-To-Real ) bezeichnet. Zusätzlich wurde noch KAPITEL 5. IMPLEMENTIERUNG (V2R) (R2V) 46 (2X5L) Abbildung 5.14: Die drei für Comino entwickelten physischen Spielkomponenten. Das erste Portal (V2R) erlaubt den Übergang von der virtuellen Spielfläche auf die reale, Portal Nummer zwei (R2V) erlaubt den Übergang in die andere Richtung. Die dritte physische Schnittstelle (2X5L) dient als Anzeige für spezielle Spielereignisse. eine dritte physische Spielkomponente, ein Lauflicht, gebaut. Das Lauflicht kann als Anzeige für spezielle Spielereignisse verwendet werden. In weiterer Folge wird für die Bezeichnung des Lauflichts auch die Abkürzung 2X5L verwendet. Abbildung 5.14 zeigt die drei phyischen Spielkomponenten. Bei allen drei Spielelementen handelt es sich um Ausgabegeräte, da jede der drei Komponenten über LEDs verfügt, die vom Computer aus angesteuert werden können. Das R2V-Portal ist zusätzlich auch noch Eingabegerät, da es auf Änderungen in der realen Welt reagieren kann und diese für den Computer sichtbar macht. Das V2R-Portal verfügt über eine zusätzliche Ausgabefunktion, die das Umstoßen von Dominosteinen ermöglicht. Funktionsweise der Portale Die Portale sind für den Einsatz mit der in Abschnitt 5.2.3 beschriebenen Sensorbox umgesetzt und sind dafür mit passenden Steckverbindungen ausgestattet. Jedes der beiden Portale verfügt über eine 4-polige Mini-DIN Buchse. Mit einem passenden Kabel (S-Video) kann das Portal an einer vordefinierten Buchse an der Sensorbox angesteckt werden. R2V: Der Übergang von der realen in die virtuelle Welt ist der technisch leichter zu realisierende, da keine physikalische Kraft erzeugt werden muss. Es reicht, den realen physikalischen Impuls zu detektieren, was in Comino mithilfe einer Infrarot-Lichtschranke8 umgesetzt wurde. Im Portal ist auf 8 Bausatz Infrarot-Lichtschranke“ von Electronicum Austria http://www.electronicum. ” at/index.htm?top bausatz/index top.htm˜anzeige KAPITEL 5. IMPLEMENTIERUNG 47 steuerbares LED Kontroll-LED Dominostein Infrarot-LED Infrarot Lichtstrahl Infrarot Fotodiode Abbildung 5.15: Schematische Darstellung des R2V-Portals mit den wichtigsten Elementen. Die Abbildung zeigt die Ausmaße des Portals in Relation zu den verwendeten Domino Steinen, die im Torbogen leicht Platz finden. einer Seite des Torbogens eine Infrarot-Diode verbaut, auf der genau gegenüberliegenden Stelle des Torbogens liegt eine Infrarot-Fotodiode. Abbildung 5.15 zeigt die wichtigsten Bestandteile des Portals. Wird das Portal mit der Sensorbox verbunden, so sendet die InfrarotDiode Licht aus, das von der Fotodiode detektiert wird. Wird genügend Licht erkannt, schaltet die Fotodiode einen Transistor durch und es leuchtet zur Kontrolle ein LED am Portal auf. Ist das Portal richtig angeschlossen, so liegt zu diesem Zeitpunkt beim entsprechenden Eingang des ArduinoKontrollers Spannung an. Der analoge Eingang steht auf einem Wert, der über 1000 liegt. Wird die Sichtverbindung jedoch unterbrochen, etwa durch einen umgefallenen Dominostein, so reicht das Licht nicht mehr aus, den Transistor durchzuschalten. Die Kontrolllampe erlischt und am ArduinoEingang liegt nun ein Wert kleiner 50 an. Will man nun einen Spielimpuls von der realen Welt in die virtuelle übertragen, so reicht es, die realen Dominosteine entsprechend zu platzieren. Abbildung 5.16 illustriert den Vorgang, der zum Durchbrechen der Lichtschranke führt. Dies wird durch den Arduino-Kontroller detektiert, in Virtools ausgewertet und führt im weiterer Folge im Spiel zu einem virtuellen Impuls, der virtuelle Dominosteine zum Umkippen bringt. V2R: Der technisch aufwendigere Übergang ist der von der virtuellen Welt in die reale. In diesem Fall muss eine mechanische Kraft ausgelöst werden, die KAPITEL 5. IMPLEMENTIERUNG (a) (b) 48 (c) Abbildung 5.16: Sind die realen Dominosteine richtig platziert (a), so bewirkt ein Umstoßen der aufgestellten Dominosteine (b), dass die Lichtschranke durch den liegengebliebenen Dominostein durchbrochen wird (c). Diese Information wird am verbundenen Arduino-Eingang ausgelesen, an Virtools weitergeleitet und kann in Folge verschiedenste Aktionen im Spiel auslösen. reelle Dominosteine zu Fall bringen kann. Die Umsetzung dieses Interfaces erfolgte mit einem Servomotors9 , der über einen Schwenkarm Dominosteine umwerfen kann. Mit der richtigen Buchse der Sensorbox verbunden, kann die Stellung des Servomotors über den PWM-Ausgang des Arduino-Kontrollers verändert werden. Wie auch beim zweiten Portal befindet sich auch auf diesem eine Kontroll-LED. Befindet sich das Portal in der Ausgangsstellung mit herabgesenktem Schwenkarm, so leuchtet das Kontroll-LED. Das LED erlischt, wenn der Schwenkarm nach hinten bewegt wird. Abbildung 5.17 zeigt die Komponenten des V2R-Portals. Auch bei dieser Schnittstelle spielt natürlich das richtige Platzieren der realen Dominosteine eine wesentliche Rolle. Die Kettenreaktion wird in diesem Fall von einem Ereignis in der virtuellen Welt ausgelöst. Dieses bewirkt, dass der Schwenkarm sich rasch nach hinten bewegt und dabei darunter platzierte Dominosteine umstößt. Der Bereich, in dem der Schwenkarm Dominosteine umstoßen kann, erstreckt sich über mehr als zwei Drittel des gesamten Torbogens, was das richtige Platzieren einfach gestaltet. In Comino wird der Schwenkarm automatisch nach kurzer Zeit wieder in die Startposition bewegt. Abbildung 5.18 zeigt die Funktionsweise der V2R-Schnittstelle. Interaktive Oberfläche Um die Interaktivität der beiden Portale noch zu erhöhen, wurden sowohl die Seiten- als auch die Deckfläche mit Papier beklebt, das mit Anoto-Pattern bedruckt ist. Somit wird die gesamte physische Schnittstelle zur zusätzlichen Interaktionsfläche für Anoto-Stifte. Über dieses spezielle Interface kann nun auf verschiedenste Einstellungen im Spiel Einfluss genommen werden. Als erste Umsetzung in Comino werden über die sensitiven Oberflächen ver9 Acoms AS-12 KAPITEL 5. IMPLEMENTIERUNG 49 steuerbares LED Kontroll-LED Dominostein Servo Schwenkarm Abbildung 5.17: Mithilfe eines Servomotors, an dem ein Schwenkarm befestigt ist, kann die V2R-Schnittstelle mechanische Impulse an reale Dominosteine weitergeben. (a) (b) (c) Abbildung 5.18: Auch bei diesem Portal ist die richtige Platzierung der Dominosteine von großer Bedeutung (a). Ausgelöst durch ein virtuelles Ereignis bewegt sich der Schwenkarm (b) nach hinten und stößt so darunter aufgestellte Dominosteine um (c). schiedene Parameter von Partikel-Systemen gesetzt, die im Spiel rund um die Portale projiziert werden. Abbildung 5.19 zeigt die Interaktion mit dem Stift sowie die veränderbaren Parameter im Spiel. Dem Benutzer kann zusätzlich zu den projizierten Rückmeldungen auch direkt durch das Portal Feedback gegeben werden. In Comino müssen die Benutzer die beiden Portale erst aktivieren, bevor sie im Spiel verwendet werden können. Dies geschieht mit den Anoto-Stiften direkt auf dem Interface. Durch das Bewegen des Stiftes auf der Seitenfläche kann der Benutzer die Farbe des zum Portal gehörigen Partikel-Systems verändern. Der Deckel KAPITEL 5. IMPLEMENTIERUNG (a) 50 (b) Abbildung 5.19: Die sensitive Oberfläche der Türme erlaubt die direkte Interaktion mit objektrelevanten Parametern im Spiel (a). In Comino kann über die intelligente Oberfläche das um den Turm projizierte Partikel-System verändert werden. Sowohl Farbe als auch Richtung der Partikel können mit den Anoto-Stiften direkt manipuliert werden. Der Screenshot (b) zeigt die drei Partikel-Systeme (grün, orange und pink) deutlich. dient als Interaktionsfläche zum Verändern der Richtung. Für jede der Seitenflächen und Deckflächen wurde demnach unterschiedliches Anoto-Pattern verwendet. Sind die vom Spiel gestellten Anforderungen an Farbe und Richtung des Partikel-Systems erfüllt, so leuchtet auf dem Portal ein zweites LED auf. Jedes Portal besitzt ein solches LED, das unabhängig von der restlichen Funktionalität des Portals ein- und ausgeschaltet werden kann. Abbildung 5.20 veranschaulicht diese Funktionalität. 5.3 Software Wie auch schon in Abschnitt 4.2.2 beschrieben, kann Arduino autonom von einem Computer Sensordaten auslesen, interpretieren und mit verschiedenen Ausgabegeräten darauf reagieren. Für Comino hingegen sollte der ArduinoKontroller direkt mit einem Computer verbunden sein, da das Spiel direkt mit den Comino-Portalen kommunizieren muss. Somit musste eine Kommunikation umgesetzt werden, die einen flexiblen und schnellen Datenaustausch zwischen Arduino und Virtools erlaubt. Die Recherche lieferte bereits fertige Implementierungen für verschiedene Entwicklungsumgebungen und Programmiersprachen wie zum Beispiel C, Processing, Max/MSP/Jitter, vvvv und Phyton. 5.3.1 Kommunikation mit Arduino Simple Message System: Auch für die Art der Kommunikation gab es einige fertige Lösungen, die für die Verwendung im Spiel in Betracht gezogen KAPITEL 5. IMPLEMENTIERUNG (a) 51 (b) Abbildung 5.20: Dem Benutzer können zusätzlich zum projizierten Feedback auch direkt auf dem physischen Spielelement Rückmeldungen zur Interaktion gegeben werden. So bleibt das zweite LED auf dem Portal so lange dunkel (a), bis der Spieler die notwendigen Aktionen gesetzt hat. Das leuchtende LED (b) zeigt nun an, dass das Portal aktiviert wurde. Im Hintergrund kann man einen weiteren Spieler bei der Interaktion mit dem zweiten Portal erkennen. werden konnten. Die erste angedachte Lösung war die Verwendung einer ASCII basierten Bibliothek, für die es schon Anbindung an andere Programme gibt. Das Simple Message System 10 wurde für Arduino ab Version 0004 entwickelt und erlaubt es dem Benutzer, Listen von Integers und Characters an Arduino zu schicken oder von Arduino zu empfangen und zu verarbeiten. Ursprünglich entwickelt für Programme wie Max/Msp oder Pd sollte das Simple Message System für die Anforderungen von Comino angepasst werden. Der Ansatz der Kommunikation mit dem Simple Message System wurde aber nicht weiter verfolgt, da ASCII basierende Protokolle einen großen Nachteil haben. Die Kommunikation mit dem Arduino-Board erfolgt über eine serielle Schnittstelle, was zu Folge hat, dass, um eine schnelle Kommunikation sicherzustellen, die Übertragung der Daten möglichst schnell und effizient erfolgen muss. Werden die Nachrichten in ASCII codiert, so ist die Anzahl an benötigten Bytes um ein Vielfaches höher als bei einem Protokoll, das Nachrichten auf Bit-Ebene codiert. Firmata: Die Lösung für mehr Effizienz bei der Datenübertragung war die Verwendung des Firmata-Protokolls von Hans-Christoph Steiner11 . Firmata adressiert einige der Probleme von ASCII basierten Protokollen [40]. There are a number of simple, ASCII-based protocols out there which are generally pretty easy to implement and understand. 10 11 http://www.arduino.cc/playground/Code/SimpleMessageSystem http://www.arduino.cc/playground/Interfacing/Firmata KAPITEL 5. IMPLEMENTIERUNG 52 The problem is that they are very verbose, and the Arduino is limited to serial rates, so a maximum of 115,200 bits/second. One example is the Simple Message System for Arduino. It is easy to read and implement. But it needs 4 bytes to set one digital pin, 56 bytes to set all digital pins. Firmata needs 3 bytes to set one digital pin or all digital pins. Firmata, das erst wenige Wochen vor Arbeitsbeginn an der ArduinoKommunikation für Comino veröffentlicht wurde, erlaubt es, die wichtigsten Funktionen des Arduino-Boards von einem Steuerrechner aus zu kontrollieren. Während bisher für die Verwendung des Arduino-Boards ein maßgeschneidertes Programm auf den Kontroller geladen wurde, erlaubt Firmata es, die gesamte Programmlogik auf dem Steuercomputer zu implementieren. Auf dem Arduino-Kontroller läuft nur ein Programm, das entsprechend der empfangenen Nachrichten den Modus der digitalen Pins ändert und die Einund Ausgänge der Boards liest beziehungsweise schreibt [40]. Basically, this firmware establishes a protocol for talking to the Arduino from the host software. It allows you to switch pins from input/output/pwm, and it allows you to read and write, of course. In der Entwicklung heißt das für den Benutzer also, dass er sich um die Verarbeitung auf dem Arduino-Kontroller nicht mehr kümmern muß. Der Arduino-Kontroller wird zum reinen Ein- und Ausgabegerät, die Verarbeitung kann direkt auf dem Steuerrechner erfolgen. Das Firmata-Protokoll liegt mittlerweile in überarbeiteten, nicht rückwärtskompatiblen Versionen vor, die Integration der Firmata-Kommunikation in Comino erfolgte jedoch noch mit Version 1.0. Firmata is open source und die aktuelle Version kann vom Firmata Sourceforge.net Repository12 heruntergeladen werden. Firmata bildet die Grundlage für alle weiteren Anstrengungen, eine flexible und schnelle Kommunikation von Arduino und Virtools zu implementieren. In den folgenden Abschnitten wird in chronologischer Reihenfolge die Umsetzung dieser Kommunikation beschrieben. 5.3.2 Kommunikation in vvvv Um die Funktionsweise von Firmata schon im Vorfeld testen zu können, wurde auf eine bestehende Umsetzung der Kommunikation mit Firmata in vvvv zurückgegriffen. Die vvvv Umsetzung ist auf der vvvv Webseite13 verfügbar. Der bestehende Firmata vvvv-Patch wurde während der Testphase 12 http://pure-data.cvs.sourceforge.net/pure-data/externals/hardware/arduino/Pd firmware/Pd firmware.pde?view=markup 13 http://vvvv.org/tiki-index.php?page=arduino05 KAPITEL 5. IMPLEMENTIERUNG 53 mehrmals abgeändert und schlussendlich gänzlich neu implementiert, um einige Mängel auszubessern und den Patch an die eigenen Anforderungen anzupassen. Die eigene Implementierung diente fortan als Testplattform für die Kommunikation mit Arduino und wurde auch als Designreferenz für die Umsetzung in C++ verwendet. Da in vvvv Änderungen am Programm direkt sichtbar sind, ohne neu kompilieren zu müssen, ist es die perfekte Testumgebung für Projekte, die eine Menge an Feinabstimmung erfordern und bei denen Benutzereingaben oft verändert werden müssen. Mit dem umgesetzten vvvv-Patch war es einfach, die Kommunikation mit Arduino umfassend zu testen. Eventuelle Probleme und Fehlerquellen, die später in der C++ Implementierung mit weitaus größerem Zeitaufwand zu finden gewesen wären, konnten so schon im Vorfeld identifiziert und ausgemerzt werden. Abbildung 5.21 zeigt einen Screenshot des vvvv-Patches. Der grundlegende Aufbau wurde auch als Referenz für die Umsetzung in C++ verwendet. 5.3.3 Kommunikation in C++ Basierend auf den Erfahrungen mit Firmata und vvvv wurde als nächster Schritt die Umsetzung der Kommunikation in C++ begonnen. Die C++ Implementierung der Kommunikation mit Arduino über das Firmata-Protokoll erfolgte in mehreren, zeitlich getrennten Schritten. Durch die parallele Implementierung in Virtools entstanden immer wieder neue Anforderungen an die Kommunikation, die dann in Folge eingearbeitet wurden. Grundlage für die Implementierung in C++ ist die Kommunikation über die serielle Schnittstelle der JazzUp Library 14 von Jürgen Zauner. Als erster Schritt wurde eine Applikation umgesetzt, mit der es möglich war, direkt im Quellcode den Modus und Status von Arduino-Pins zu setzen und zu lesen. Die an den Eingängen ausgelesenen Werte wurden auf die Windows-Konsole ausgegeben. Als Abbildung des aktuellen Zustands des Arduino-Boards finden sich in der C++ Implementierung Variablen, die den Modus und Zustand aller Ein- und Ausgänge auf dem Board repräsentieren. Im Folgenden werden diese Variablen mit dem Begriff Pin-Variablen“ ” referenziert. Codebeispiel 5.1 zeigt die nötigen Variablen in der C++ Implementierung. Die Variablen analogPins und digitalPins speichern den aktuellen Status der analogen beziehungsweise digitalen Pins auf dem Arduino-Kontroller. Die Pin-Variable analogReportingCount speichert die Anzahl der aktiven Eingänge auf dem Kontroller, digitalReportingFlag speichert den Aktivierungszustand aller digitalen Eingänge. Dies entspricht im Wesentlichen den Werten, die über Firmata auf dem Arduino-Board beeinflusst 14 http://sourceforge.net/projects/jazzup/ KAPITEL 5. IMPLEMENTIERUNG Abbildung 5.21: Der Screenshot zeigt den Haupt-Patch der FirmataKommunikation in vvvv. Optisch getrennt durch den vertikalen Balken in der Mitte beinhaltet der Patch sowohl das Einlesen der Eingänge als auch das Schreiben der Ausgänge des Arduino-Kontrollers. Oben im Patch sind die Variablen für Ausgänge des Arduino-Kontrollers angelegt, im unteren Teil die Eingänge. Die vvvv-Umsetzung diente als Testplattform für die Kommunikation mit Arduino. 54 KAPITEL 5. IMPLEMENTIERUNG 55 Codebeispiel 5.1: Die Variablen zum Speichern aller wichtigen Zustände des Arduino-Boards in der C++ Implementierung # define A R D U I N O _ N R _ O F _ D I G I T A L _ P I N S 14 # define A R D U I N O _ N R _ O F _ A N A L O G _ P I N S 6 int int int int digitalPins [ A R D U I N O _ N R _ O F _ D I G I T A L _ P I N S ][3]; analogPins [ A R D U I N O _ N R _ O F _ A N A L O G _ P I N S ]; di git al Rep or tin gFl ag [2]; an alo gR epo rt ing Cou nt [2]; werden können. Die Entwicklung der Kommunikation mit C++ ist im folgenden Teil in sechs Implementierungsversionen bis zur finalen Implementierung beschrieben. Die einzelnen Abschnitte geben eine kurze Übersicht über gestellte Anforderungen und dafür vorgeschlagene Lösungen bis hin zur fertigen Version. Sie kommentieren die Arbeit und listen die relevanten Änderungen in chronologischer Reihenfolge auf. Version 1: Erste lauffähige Version Das erste lauffähige Programm implementierte das Firmata-Protokoll nach dem Vorbild der vvvv Implementierung in C++. Erste Tests zeigten jedoch, dass die erste Umsetzung des Auslesens der Eingänge auf dem ArduinoKontroller die Framerate des Programms dramatisch senkte. In dieser Version wurde bei Bedarf das Auslesen der Eingänge direkt auf dem Board aktiviert und danach wieder deaktiviert. In der aktiven Phase lieferte das Board jedoch nicht nur einen einzelnen Wert, sondern Firmata schickte während der gesamten aktiven Zeit die aktuellen Daten an den Rechner. Dabei füllte sich der Buffer der seriellen Schnittstelle. Nachdem ein Wert verarbeitet wurde, mussten die restlichen Daten aus dem Buffer ausgelesen und verworfen werden, um unvollständigen Datensätzen und einem Überlaufen des Buffers vorzubeugen. Diese Vorgehensweise erwies sich aber als zu zeitaufwendig, um in jedem Durchlauf des Programms ausgeführt werden zu können und wurde deshalb in Version 2 des Programmes überarbeitet. Version 2: Überarbeitung des Auslesens der Arduino Eingänge Wie schon im vorigen Abschnitt erwähnt, schickt Firmata die ausgelesenen Werte in einem durchgehenden Datenstrom und nicht in Datenpaketen. In der ersten Version wurde für jeden einzelnen Wert die Übertragung aktiviert und deaktiviert. Dies wurde dahingehend abgeändert, dass das Auslesen der Arduino-Eingänge nur mehr für längere Zeitabschnitte aktiviert und deak- KAPITEL 5. IMPLEMENTIERUNG 56 tiviert wurde. Während der aktiven Zeitabschnitte werden die übermittelten Daten jeden Schleifendurchlauf vom Buffer ausgelesen und die aktuellen Werte in dafür vorgesehene Pin-Variablen geschrieben. Diese Funktionalität wurde in eine eigene Funktion gekapselt. Bei Bedarf werden die aktuellen Werte nun nicht mehr direkt vom Board, sondern aus den entsprechenden Pin-Variablen ausgelesen. Das Auslesen und Verwerfen der überflüssigen Werte aus dem Buffer ist durch diesen Ansatz obsolet, da durch kontinuierliches Abarbeiten des Buffers die oben angeführten Probleme nicht auftreten. Version 3: Abkapseln der Kommunikation von der Übertragungstechnologie Um das Programm übersichtlicher zu gestalten, wurden im Zuge des nächsten Überarbeitungsschritts alle Firmata-spezifischen Programmteile von denen der verwendeten Übertragungstechnologie getrennt. Konkret wurde die Verarbeitung von der Übertragung der Daten über die serielle Schnittstelle getrennt und in verschiedene Funktionen gekapselt. Die Kommunikation über das Firmata-Protokoll kann so schnell und einfach auf eine andere Kommunikationstechnologie umgestellt werden! Denkbare Alternativen wären die Kommunikation via TCP oder Bluetooth. Im Fall von Bluetooth gibt es bereits ein Arduino-Board15 , das diese Art der Kommunikation unterstützt, im Fall von TCP ist die entsprechende Hardware in Arbeit16 . Version 4: Asynchrones Setzen der Pins Die parallele Implementierung der Virtools Building-Blocks (vergleiche auch Abschnitt: 5.3.4) erfordert eine zusätzliche Trennung zwischen dem Setzen der Pin-Variablen und dem eigentlichen Senden derselben Information an das Board. Um dies zu bewerkstelligen, wurden zusätzliche Mechanismen eingeführt, die es erlauben, die Pin-Variablen schon im Voraus im Programm zu setzen, aber erst zu einem späteren Zeitpunkt mit dem Board zu synchronisieren. Somit können in Virtools schon im Vorfeld Werte auf dem ArduinoBoard gesetzt werden, die aber erst nach dem Starten der Anwendung mit dem Board synchronisiert werden. Dies erlaubt es auch, Befehle geblockt an Arduino zu schicken. Version 5: Eigener Thread für das Einlesen der Daten In der fünften Version der Kommunikation mit dem Arduino-Board wurde das Auslesen der Werte an der seriellen Schnittstelle neuerlich überarbeitet. Das bisherige Aufrufen der Lesefunktion in der Hauptschleife des Programmes hatte zur Folge, dass bei einer zu langsamen Ausführung der Buffer der 15 16 http://www.arduino.cc/en/Main/ArduinoBoardBluetooth http://tinker.it/now/2007/06/06/the-arduino-ethernet-board/ KAPITEL 5. IMPLEMENTIERUNG 57 seriellen Schnittstelle überlaufen konnte. Deshalb wurde das Auslesen der Eingänge im Programm in einen eigenen Thread ausgelagert. Nach dem Initialisieren der Kommunikation mit Arduino wird der Thread gestartet und übernimmt fortan parallel zum Hauptprogramm das Auslesen der Werte. Als direkte Folge dieser Umstellung können bei dieser Lösung sehr rasche Änderungen an den Eingängen verloren gehen, da der auslesende Thread die Pin-Variablen einfach überschreibt, unabhängig davon, ob diese jemals ausgelesen wurden oder nicht. Dieses Problem kann in der Praxis für die Verwendung in Comino jedoch vernachlässigt werden, da es sich dabei üblicherweise um Änderungen von einer Dauer kleiner der Framerate des Hauptprogrammes, also üblicherweise kleiner 1/50 Sekunde handeln muss. Spielrelevante Änderungen mit dieser Zeitspanne treten in Comino im Normalfall nicht auf. Version 6: Überarbeitung des Verbindungsaufbaus Für die letzte beschriebene Änderung an der C++ Implementierung war wieder eine Anforderung des Virtools-Building-Blocks der Ausgangspunkt. Für Virtools sollte es möglich sein, den COM-Port der seriellen Schnittstelle auch nach dem Initialisieren der Kommunikation zu ändern. Somit wurde Programmfunktionalität hinzugefügt, die es erlaubt, während der laufenden Virtoolsanwendung die Kommunikation mit dem Arduino-Kontroller zu schließen und mit neuen übergebenen Werten wieder zu etablieren. Zusätzlich wurde im Zuge dieser Umbauten auch das Synchronisieren der PinVariablen in einen eigenen Thread ausgelagert. 5.3.4 Kommunikation in Virtools Virtools Erweiterungen Parallel zur Programmierung der Konsolen-Anwendung in C++ wurde auch mit der Integration von eigener Funktionalität in Virtools begonnen. Erweiterungen für Virtools können mit dem mitgelieferten Software-DevelopmentKit (SDK) entwickelt werden. Eigene Programmfunktionalität wird dabei als neuer Building-Block (BB) umgesetzt. Für die Erstellung von eigenen Building-Blocks stellt Virtools einen Microsoft Visual Studio 17 Assistenten zu Verfügung, der ein vorkonfiguriertes Visual Studio Projekt erstellt und bereits die zu erweiternden Funktionen anlegt. Der folgende Abschnitt fasst die wichtigsten Informationen zu den implementierten Building-Blocks zusammen, gibt jedoch keine allgemeine Anleitung für die Erstellung eigener Building-Blocks. Informationen zum Erstellen von eigenen Building-Blocks finden sich in der auf der Virtools CD mitgelieferten Dokumentation des SDKs [44] und werden hier nicht weiter behandelt. 17 http://msdn2.microsoft.com/en-us/vstudio/default.aspx KAPITEL 5. IMPLEMENTIERUNG 58 Codebeispiel 5.2: Die vier Funktionen sind wesentlich für die Umsetzung eigener Building-Blocks /* Fill */ CKObj ectDecl aration * FillMyBBDecl (); /* Create */ CKERROR CreateMyBBProto ( CKBehav iorProt otype **); /* Execute */ int Execute ( const CKBehaviorContext & BehContext ); /* Callback */ int CallBack ( const CKBehaviorContext & BehContext ); In Codebeispiel 5.2 sind vier Funktionen aufgelistet, die für die weitere Beschreibung der Realisierung der Building-Blocks wichtig sind. Ihre Bedeutung wird kurz allgemein erläutert und dann bei der danach folgenden Beschreibung der eigenen Building-Blocks ergänzt. Die Benennung der Funktionen unterliegt gewissen Nameskonventionen, die sich aus dem Namen des Building-Blocks, in diesem Fall MyBB“, und Erweiterungen ergibt. In ” weiterer Folge werden stellvertretend für den Funktionsnamen die im Code auskommentierten, vorangestellten Bezeichnungen Fill, Create, Execute und Callback verwendet. Im Anschluss daran finden sich die Beschreibungen der zwei implementierten Building-Blocks. Fill: In der Fill-Funktion werden allgemeine Informationen zum BuildingBlock angegeben, die für die Verwaltung vom Building-Block verwendet werden. Dies inkludiert Informationen, die rein für die interne Verwendung in Virtools nötig sind, wie zum Beispiel eine eindeutige Identifikationsnummer, aber auch Informationen für Benutzer wie eine Kurzbeschreibung des Building-Blocks. Create: In der Create-Funktion des Building-Blocks wird spezifiziert, welche Behavior Ein- und Ausgänge der Building-Block haben wird und welche Parameter Ein- und Ausgänge angelegt werden sollen. Hier wird festgelegt, ob der Benutzer den BB später verändern kann, ob spezielle Einstellungen vorgenommen werden können oder ob die Anzahl der Ein- oder Ausgänge des BB veränderbar sind. In dieser Funktion wird des Weiteren auch die Execute- und die Callback-Funktion des Building-Blocks festgelegt. KAPITEL 5. IMPLEMENTIERUNG 59 Execute: Die Execute-Funktion beinhaltet die eigentliche Funktionalität des Building-Blocks. Hier wird für jeden Eingang eine Programmroutine festgelegt, die Parameter einlesen, verarbeiten und wieder ausgeben kann. Je nachdem welcher Eingang aktiviert wurde, können so verschiedenen Funktionen in einem Building-Block gekapselt werden und bei Bedarf gezielt aktiviert werden. Nach dem Verarbeitungsschritt können dann einer oder mehrere Ausgänge des Building-Blocks aktiviert werden. Callback: Die Callback-Funktion wird beim Auftreten von speziellen Ereignissen, für die der Building-Block in der Create Funktion angemeldet werden muss, aufgerufen. Beispiele für solche Ereignisse sind das Hinzufügen des BB zu einem Skript, das Starten des Levels oder das Löschen des BBs. In der Callback-Funktion befinden sich alle Programmteile, die mit der internen Verwaltung der Variablen und Recourcen des BBs zu tun haben. Arduino-BB In diesem Abschnitt wird die konkrete Umsetzung des Building-Blocks für die Kommunikation mit Arduino, im weiteren Verlauf Arduino-BB genannt, erläutert. Der Arduino-BB verpackt die in Abschnitt 5.3.3 beschriebene C++ Implementierung des Firmata-Protokolls in einer dynamic link li” brary“ (DLL), die beim Start von Virtools geladen wird. Alle Funktionen der C++ sind direkt in Virtools verfügbar. Wird ein Virtools Projekt, das einen Arduino-BB beinhaltet, so stellt dieser eine Verbindung mit dem ArduinoBoard her und erlaubt es nunmehr, benutzergesteuert Ausgänge am ArduinoBoard zu setzen und Eingänge einzulesen. Abbildung 5.22 zeigt die grafische Ansicht des Arduino-BB in einem Beispiel-Skript in Virtools. Bei den von 1.)“ bis 8.)“ durchnummerierten hellgrauen Blöcken han” ” delt es sich um Hilfsobjekte, die bei der Beschreibung der Funktionsweise helfen sollen. Die Funktionsweise des Arduino-BB wird anhand des BeispielSkripts in Absatz 5.3.4 erklärt. Der Ablauf des Beispiels geschieht in der Reihenfolge der durchnummerierten Blöcke und inkludiert alle Funktionen des Arduino-BBs. Die Eingänge des Arduino-BBs können natürlich in anderen Skripten nach eigenem Bedarf und zu beliebigen Zeitpunkten aktiviert werden. Der Arduino-BB ist bis zum Start des Virtools Projektes inaktiv. Die Aktivierung erfolgt erst nach dem Starten und der BB ist ab diesem Zeitpunkt einsatzbereit. Sollten Änderungen für die serielle Kommunikation nötig sein, so kann der BB während der laufenden Anwendung neugestartet werden. Dies wird im folgenden Beispiel gemacht, ist aber nicht in jedem Fall zwingend notwendig. Beispielverwendung: Der Block mit der Bezeichnung 1.) (Block 1) wird in diesem Beispiel als Erster nach der Aktivierung des Skripts durchlau- KAPITEL 5. IMPLEMENTIERUNG 60 Abbildung 5.22: Der Arduino Building-Block in einem Beispiel-Skript. Die Parametereingänge an der Oberseite dienen zum Setzen von Werten, die Parameterausgänge an der Unterseite zum Auslesen von Werten vom Arduino Board. Links befinden sich die drei Behavior-Eingänge, deren Aktivierung verschiedene Aktionen des Arduino-BB auslöst und die nach dem Verarbeitungsschritt den jeweils gegenüberliegenden Behavior-Ausgang aktivieren. fen. Er aktiviert den obersten der drei Behavior-Eingänge des Arduino-BBs. Es handelt sich dabei um den Reset-Eingang, der die Kommunikation neu initialisiert. Die Verbindung über die serielle Schnittstelle wird mit den aktuellen Werten für COM-Port und BAUD-Rate neu gestartet. Dafür ist es notwendig, die beiden Threads zum Auslesen und Synchronisieren der Einbeziehungsweise Ausgänge des Arduino-Boards vorher zu beenden und ebenfalls neu zu starten. Nach dem der Reset-Vorgang abgeschlossen ist, wird der aktuelle Zustand aller Eingangsparameter mit dem Arduino-Board synchronisiert und der gegenüberliegende Ausgang aktiviert. Der Arduino-BB ist nun wieder bereit für die Verwendung. Im Beispiel-Skript wird das Signal nun durch die Blöcke 2 und 3 an die Eingänge des Arduino-BBs zurück. Nach der Verarbeitung von Block 4 aktiviert dieser den Update-Eingang des Arduino-BBs. Die Update-Funktion liest die aktuellen Werte aller aktiven Eingänge aus den entsprechenden Pin- KAPITEL 5. IMPLEMENTIERUNG 61 Variablen aus und schreibt sie in die Ausgabe-Parameter des Virtools Building Blocks. In der Abbildung sind die Ausgabe Parameter, durch blaue Linien verbunden, unter dem Building-Block sichtbar. Die eingelesenen Werte stehen nun für die weitere Verarbeitung zur Verfügung. Ist der UpdateSchritt abgeschlossen, so wird der zugehörige Ausgang aktiviert, der durch Block 5 den Signalfluss nun aufspaltet. Zum Ersten wird Block 3 reaktiviert und so eine Rückkopplung gestartet, die ab jetzt jeden Skript-Durchlauf den Update-Eingang aktiviert und die aktuellen Werte der Arduino-Ausgänge ausliest. Zum Zweiten wird Block 6 aktiviert, der ebenfalls das Signal zu den Eingängen das Arduino-BBs zurückführt. Durch Block 7 wird der Synchronize-Eingang aktiviert. Die Synchronize-Funktion liest alle Parameter Eingänge des Arduino-BBs aus und synchronisiert die Werte mit den Arduino Ausgängen. Somit können LEDs ein- und ausgeschaltet oder Servomotoren bewegt werden. Nach Beendigung des Schrittes wird Block 8 durch den Synchronize-Ausgang aktiviert. Das Beispiel-Skript hat nun alle Stationen durchlaufen. Die folgende Auflistung der drei Behavior-Eingänge und der Kurzbeschreibungen (in Klammer) der jeweiligen Funktionen, dient als Übersicht über die Funktionsweise des Arduino-BBs. • Reset-Eingang (Neustart von serieller Kommunikation und Threads) • Update-Eingang (Einlesen der Arduino-Eingänge; Setzen der Parameter-Ausgänge des BBs) • Synchronize-Eingang (Einlesen der Parameter-Eingänge des BBs; Setzen der Arduino-Ausgänge) Alle für die Kommunikation relevanten Einstellungen kann der Benutzer über den Einstellungsdialog des Arduino-BBs festlegen. So kann zum Beispiel definiert werden, welche der digitalen Pin als Eingänge benötigt werden und welche Ausgang sein sollen. Es kann festgelegt werden, wie viele der analogen Eingänge aktiviert sind und ob die digitalen Eingänge Werte aktiv sind oder nicht. Alle benötigten Parameter Eingänge und Ausgänge werden gemäß den vorgenommenen Einstellungen automatisch am Arduino-BB sichtbar gemacht oder versteckt. Abbildung 5.23 zeigt den Einstellungsdialog des Arduino-BBs, der in Abbildung 5.22 sichtbar ist. Anoto-BB Der zweite Building Block (Anoto-BB) wurde für die direkte Integration der Anoto-Stifte in Virtools implementiert. Aufgesetzt wurde bei der Entwicklung auf bereits bestehende Software, die im Rahmen des Office Of ” Tomorrow“18 Projekts entwickelt wurde. Im Wesentlichen handelt es sich 18 http://www.officeoftomorrow.org/ KAPITEL 5. IMPLEMENTIERUNG 62 Abbildung 5.23: Screenshot des Einstellungsdialogs des Arduino-BBs. Er ermöglicht die Einstellung aller für die Kommunikation mit Arduino relevanten Parameter. bei der Umsetzung um die Adaption eines UDP-Empfängers, der alle wichtigen Stiftdaten empfängt und der für die Verwendung in Virtools in einen Building-Block gekapselt wurde. Der Anoto-BB funktioniert nur in Kombination mit einem bereits verfügbaren UPD-Sender (Anoto-Sender), der für die Verwendung mit Comino nicht verändert werden musste. Abbildung 5.24 zeigt die grafische Ansicht des Anoto-BBs in Virtools. Der Anoto-BB ist in der Grafik ebenfalls in ein Beispiel-Skript integriert. Die mit den Parametereingängen verbundenen Variablen oberhalb des AnotoBBs bezeichnen die Identifikationsnummeren (IDs) der verwendeten Stifte. Stimmt eine der benutzerdefinierten Stift-IDs mit einer der Stift-IDs eines empfangenen Datenpaketes überein, so werden die Werte gespeichert. KAPITEL 5. IMPLEMENTIERUNG 63 Abbildung 5.24: Der Anoto-Building-Block in einem Beispiel-Skript. Kommt das empfangene Datenpaket von einem Stift, der nicht angegeben ist, so wird das Datenpaket verworfen. Die intern gespeicherten Stiftwerte werden bei der Aktivierung vom Anoto-BB in die Parameter-Ausgänge geschrieben und sie sind somit innerhalb von Virtools weiter verwendbar. Beispielverwendung: Im Gegensatz zum Arduino-BB wird die Verbindung mit dem Anoto-Sender schon beim Öffnen des Virtools-Projektes initialisiert und nicht erst beim Start. Dies hat den Vorteil, dass auch ohne laufende Anwendung die Funktion des Stiftes sowie die Kalibrierung der Anoto-Menüs getestet werden kann. Auch vor dem Start des Virtools-Skripts kann der Stift bereits Werte liefern, die ähnlich wie die Werte des ArduinoBoards in eine Hilfsdatenstruktur abgespeichert werden. Beim Start des Virtools-Skripts wird also, nachdem Block 1 abgearbeitet wurde, der Update-Eingang des Anoto-BB aktiviert. In der Update-Funktion werden die aktuellen Stiftwerte aus der Hilfsdatenstruktur ausgelesen und damit die Parameterausgänge entsprechend gesetzt. Nach dem Setzen der Parameter aller aktivierten Stifte wird der Update-Ausgang aktiviert, der wiederum weitere Funktionalität, in diesem Fall Block 2, aktivieren kann. Im BeispielSkript reaktiviert Block 2 den Anoto-BB im nächsten Durchlauf wieder, was zu einem kontinuierlichen Auslesen der aktuellen Stiftwerte führt. KAPITEL 5. IMPLEMENTIERUNG 64 Abbildung 5.25: Screenshot des Einstellungsdialogs des Anoto-BuildingBlocks. Hier kann der Benutzer die Anzahl der Stifte festlegen und sich zusätzliche Informationen auf der Virtools-Konsole ausgeben lassen. Wie auch der Arduino-BB bietet auch der Anoto-BB dem Benutzer gewisse Einstellungen. Abbildung 5.25 zeigt den Einstellungsdialog des AnotoBBs. Er erlaubt dem Benutzer, die Anzahl der verfügbaren Stifte festzulegen. Die maximale Anzahl liegt derzeit bei vier Stiften, was der Anzahl der Stifte in Comino entspricht. Es ist jedoch möglich, ohne größeren Aufwand, bei Bedarf die Anzahl der Stifte zu erhöhen. Dies muss natürlich im Sourcecode des Anoto-BB geschehen. Des weiteren kann über den Einstellungsdialog auch eine textuelle Ausgabe aller empfangener Anoto-Stift Werte auf die Virtools-Konsole aktiviert werden. Diese Ausgabe funktioniert auch im nicht gestarteten Zustand des Projektes und erlaubt das Testen der Stiftkommunikation sowie das Auslesen von verschiedenen Regionen auf einem Anoto-Interface. Abbildung 5.26 zeigt die Virtools-Konsole mit einer Reihe von Stift-Datensätzen bestehend aus einem Koordinatenpaar, der Druckstärke, der aktuellen Region auf dem Papier und der jeweiligen Stift-ID. 5.4 Umsetzung in Virtools Im folgenden Abschnitt werden die wichtigsten Teile der Umsetzung von Comino in Virtools beschrieben. Der Abschnitt ist in Abschnitte unterteilt, die die Implementierungsphasen chronologisch wiedergeben. Größere Teilbereiche der Umsetzung, deren Realisierung sich über längere Zeit erstreckte und die sich mit anderen Teilen überschneiden, werden zum Zeitpunkt des Arbeitsbeginns an dem jeweiligen Teilbereich in die Reihung eingegliedert. 5.4.1 Erste Schritte Nach einer zweiwöchentlichen Einarbeitungsphase in Virtools, in der schwerpunktmäßig die von Virtools mitgelieferten Tutorials durchgenommen wurden, wurde mit der Arbeit an Comino begonnen. Abbildung 5.27 zeigt den Entwicklungsstand des Spieles nach drei Tagen. Die gezeigte Version beeinhaltete bereits Mausinteraktion, Physiksimulation und diverse grafische Effekte wie Texturen, Schatten und Spiegelungen. Mit gedrückter linker Maustaste lassen sich in dieser Version auf der Grundfläche Dominosteine platzieren. Physikalische Interaktion konnte bereits erzwungen werden, wenn KAPITEL 5. IMPLEMENTIERUNG 65 Abbildung 5.26: Ausgaben des Anoto-BBs auf der Konsole. Auch während das Projekt nicht gestartet ist, kann der Benutzer hier Informationen zum Stift und seiner aktuelle Position auf dem Anoto-Pattern in Erfahrung bringen, sofern diese Funktion im Einstellungsdialog des Anoto-BBs aktiviert ist. zwei Dominosteine einander überschneidend platziert wurden. Die Physiksimulation lässt die Überscheidung nicht zu und katapultiert die beiden Steine je nach Überschneidung mehr oder weniger stark auseinander. Da die Umsetzung in Virtools auch grafisch ansprechend sein sollte, wurde bereits in einer sehr frühen Entwicklungsphase mit der Integration von grafischen Effekten begonnen, die zum Teil auch in der finalen Version von Comino noch zum Einsatz kommen. 5.4.2 Interaktionstechniken Auch das Grundprinzip des Aufstellens der Dominosteine ist im ersten Prototypen bereits enthalten. Das Design der Interaktion der Spieler mit Comino war eine der zeitaufwendigsten Aufgaben und durchlief viele Änderungen bis zur finalen Version des Spieles. Die Erweiterung der Benutzerinteraktion war bereits der zweite Teilbereich von Comino, der in Angriff genommen wurde und auch einer der letzten Bereiche, der fertiggestellt wurde. Während das Erstellen und Umstoßen zu Testzwecken bereits zu Beginn implementiert wurde, wurden die Interaktionsmodi Löschen und Verschieben erst nach der Integration des Anoto-Stiftes implementiert. Erst nach den ersten Tests des Spiels mit mehreren Benutzern wurden mit den erhaltenen Rückmeldungen die finalen Interaktionstechniken festgelegt und in Comino integriert. Details zur fertigen Interaktion mit den Dominosteinen finden sich in Abschnitt 3.4. KAPITEL 5. IMPLEMENTIERUNG 66 Abbildung 5.27: Der Screenshot zeigt den Entwicklungsstand nach zwei Wochen. Der Prototyp beeinhaltet bereits Mausinteraktion, Physiksimulation und Grafikeffekte wie Spiegelungen und Schatten. 5.4.3 3D-Modelle Um die grafische Komplexität der Level zu erhöhen, wurden im nächsten Schritt eigene 3D-Modelle erstellt und in Virtools importiert. Abbildung 5.28 zeigt einen ersten Test eines selbst erstellten Levels. Neben der Modelle für den zweiten und dritten Level wurden Dominoblöcke sowie die drei Portale modelliert und texturiert. Die drei finalen Comino Levels sind in Abschnitt 5.5 noch detailierter beschrieben. In Abbildung 5.29 sind am Beispiel eines Dominosteines die einzelnen Schritte bis zum fertigen Modell aufgelistet. Die realen Dominosteine wurden vermessen und als Materialreferenz abfotografiert. Aus den Referenzfotos wurden in Adobe Photoshop19 dann Texturen erstellt, die auf die in Autodesk Maya20 erstellten, stark vereinfachten Modelle des Dominosteins aufgetragen wurde. Mithilfe des Virtools Exporters21 für Maya wurden die texturierten Modelle dann in einem für Virtools lesbaren Format gespeichert und in Comino integriert. Im Zuge der Integration von eigenen Levels wurden auch verschiedene Ansätze für die Physiksimulation getestet. In Virtools kann für die Physiksimulation eines Objektes die eigentliche 3D-Geometrie des Objektes verwendet werden, eine das Objekt umschließende konvexe Hülle oder nur eine das gesamte Objekt beinhaltende Kugel. Als zusätzliche Alternative können auch eine oder mehrere Ersatzgeometrien, die im Level nicht sichtbar sein 19 http://www.adobe.com/products/photoshop/index.html http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=7635018 21 http://www.virtools.com/support/downloadList.asp (Zugang nur mit Registrierung) 20 KAPITEL 5. IMPLEMENTIERUNG 67 Abbildung 5.28: Um die Level vielfältiger gestalten zu können wurden eigene 3D-Modelle erstellt und in Virtools importiert. (a) (b) (c) (d) Abbildung 5.29: Die in Comino verwendenten virtuellen Domino Steine wurden den ebenfalls in Spiel integrierten realen Dominosteinen nachempfunden. Aus Referenzfotos (a) der Dominosteine wurde eine Textur erstellt (b), die dann auf ein Modell (c) aufgebracht wurde. Das Modell samt Textur wurde dann in Virtools importiert (d). müssen, verwendet werden. Vor allem bei komplexen Objekten empfiehlt es sich, statt der eigentlichen Geometrie eine Ersatzgeometrie zu verwenden, da sonst die aufwendigere Kollisionsberechnung die Simulation verlangsamen kann. Für die importierten Geometrien wurden einige Test durchgeführt, um die Geschwindigkeit der Simulation zu vergleichen. Abbildung 5.30 zeigt die getesteten Alternativen. Für das gezeigte Objekt war in den Test kein wesentlicher Geschwindgkeitsunterschied bemerkbar, was dazu führte, dass die Geometrie selbst für die Physikberechnung verwendet wurde. Im dritten Level jedoch war das Untergrundobjekt nicht für die Physiksimulation geeignet, was dazu führte, dass Ersatzgeometrien erstellt und verwendet wurden. KAPITEL 5. IMPLEMENTIERUNG (a) (b) 68 (c) Abbildung 5.30: Für die Physiksimulation von Objekten (a) kann unter anderem die eigentliche Geometrie (b) oder eines oder mehrere Ersatzobjekte (c) verwendet werden. White 2 Output White 2 PWM Black 1 Output Black 1 Input Abbildung 5.31: Die mittleren beiden Mini-Din Buchsen verbinden die Comino-Portale mit der Sensorbox. Diese ist über USB mit dem Computer verbunden. Im Arduino-BB werden die Werte ausgelesen und in die entsprechenden Variablen geschrieben. 5.4.4 Arduino-Integration Die Intergration des Arduino-BBs und das Testen desselben war einer der nächsten großen Entwicklungsschritte. Da der Arduino-Kontroller für das Spiel in die Sensorbox verbaut wurde (Vergleiche 5.2.3), wurden auch die Variablen in Virtools entsprechend der Anschlüsse der Sensorbox benannt. Die Comino-Portale benötigen nur zwei der acht Anschlüsse der Sensorbox. Das R2V-Portal, das als Ein- und Ausgabegerät funktioniert, wird an die innere der beiden schwarze Buchsen (Vergleiche Abbildung 5.31) angeschlossen. Das V2R-Portal, bei dem es sich um ein Ausgabegerät handelt, wird an der inneren weißen Buchse an die Sensorbox angeschlossen. Über die Variable Black 1 Output kann die Ausgabe-LED von R2V ein- und ausgeschaltet werden, die Variable Black 1 Input speichert den aktuellen Wert, den die Lichtschranke im Portal liefert. White 2 Output steuert die LED von V2R und White 2 PWM den eingebauten Servomotor, der für das Umstoßen von realen Dominosteinen verwendet wird. Die Integration des Arduino-BBs und der Portale in Comino wird anhand eines illustrierten Beispiels erklärt. In Abbildung 5.32 ist ein Beispielszenario dargestellt, in dem von der realen auf die virtuelle und wieder zurück auf die reale Spielfläche gewechselt wird. Der Wechsel kann natürlich auch in KAPITEL 5. IMPLEMENTIERUNG R2V-Portal 69 V2R-Portal Realer Dominostein Tischoberfläche Virtueller R2V-Domino Virtueller Dominostein Virtueller V2R-Domino Abbildung 5.32: Eine schematische Ansicht des Beispielszenarios, das die Integration der beiden Portale im Spiel illustriert. Jedes der beiden realen Portale wird in der virtuellen Welt durch einen speziellen Portal-Dominostein repräsentiert. Über diesen Stein erfolgt die Interaktion der Portale mit den virtuellen Dominosteinen. umgekehrter Reihenfolge erfolgen. Die Abbildung zeigt sowohl reelle als auch virtuelle Dominosteine in einer schematischen Seitenansicht. Die virtuellen Dominosteine sind strichliert umrahmt und sind unter der Tischoberfläche dargestellt, um eine klare Unterscheidung von den realen Dominosteinen gewährleisten zu können. Jedes der beiden Portale ist in der virtuellen Welt mit einem speziellen Dominostein verbunden, die an vordefinierten Stellen im Level aufgestellt sind und deren Position vom Spieler nicht verändert werden kann. Die Position dieser Portal-Dominosteine indiziert auch die Position der Portale auf der Tischoberfläche, die von den Spielern genau über den projizierten Portal-Steinen platziert werden sollten. In diesem Beispiel wird die Kettenreaktion mit den realen Spielsteinen gestartet. Zu Beginn ist die Infrarot-Lichtschranke des R2V-Portals nicht unterbrochen, die anliegende Spannung am Arduino-Kontroller liefert für den Eingang einen Wert, der über 90022 liegt. Dieser Wert wird an Virtools 60 Mal pro Sekunde übertragen und in die Variable Black 1 Input geschrieben. Kommt ein realer Dominostein in der Lichtschranke zum Liegen, so wird die Sichtverbindung unterbrochen. Am Eingang liegt jetzt ein Wert an, der unter 20 liegt. Der Wert wird an Virtools übertragen, wo jeder Wert der Variable Black 1 Input, der kleiner als 50 ist, einen virtuellen Physikimpuls auslöst. Der Impuls wird an den Portal-Dominostein des R2V-Portals gegeben und bringt diesen zu Fall. Abbildung 5.33 (a) stellt den Übergang noch einmal grafisch dar. Das Umstoßen des ersten virtuellen Steins löst nun eine Kettenreaktion bei den virtuellen Dominosteinen aus, die sich bis zum Portal-Dominostein des V2R-Portals fortsetzt. Für diesen speziellen Dominostein wird in Virtools laufend überprüft, ob er noch aufrecht steht, oder ob er umgefallen ist. 22 Der analog-digital Wandler des Arduino-Kontroller liefert Werte zwischen 0 und 1023. KAPITEL 5. IMPLEMENTIERUNG 70 Lichtschranke unterbrochen Virtueller Impuls an R2V-Domino (a) Reeller Impuls an Dominosteine V2R-Domino umgefallen (b) Abbildung 5.33: Ein Unterbrechen der Lichtschranke löst einen virtuellen Impuls aus, der den ersten virtuellen Portal-Dominostein umstößt (a). Die daraufhin ausgelöste Kettenreaktion bringt den zweiten Portal-Dominostein zu Fall, was wiederum die Rückwärtsbewegung des Schwenkarms (b) des Portals auslöst. Konkret wird dabei überprüft, ob die Y-Komponente23 des normalisierten Up-Vektors des Domino Steins einen gewissen Wert unterschreitet. Ist dies der Fall, wird in einer Schleife der Wert der Variable White 2 PWM schrittweise von 1 auf 0 reduziert. Zusätzlich wird der neue Wert jeden Schleifendurchlauf mit dem Arduino-Kontroller synchronisiert. Dies führt dazu, dass der Schwenkarm sich nach hinten bewegt, und dabei virtuelle Dominosteine umstößt. Nach einer absichtlichen Verzögerung von zwei Sekunden wird der Schwenkarm dann in seine Ausgangsposition zurückgefahren. Abbildung 5.33 (b) illustriert den Übergang von der virtuellen Spielfläche auf die reale. 5.4.5 Anoto-Integration Bisher war die Interaktion mit Comino ausschließlich über die Portale und mit der Maus möglich. Als Haupteingabegerät sollten jedoch mehrere AnotoStifte dienen, denen die Tischfläche als Eingabeoberfläche dient. Deshalb wurde als nächster Schritt die Maus durch einen Anoto-Stift ersetzt. Bei 23 Y-Achse ist in Virtools die vertikale Achse, also normal stehend zur Spielfläche von Comino. KAPITEL 5. IMPLEMENTIERUNG 71 Abbildung 5.34: Die Tastenbelegung der Maus in Comino. Die Anzahl der auslösbaren Aktionen ist durch die Anzahl der Tasten beschränkt. der Verwendung einer Maus, kann das Wechseln zwischen verschiedenen Aktionen durch das Gedrückthalten von verschiedenen Tasten geschehen. Abbildung 5.34 zeigt die Tastenbelegung der Maus im Spiel. Bei der Verwendung von Anoto-Stiften muss dieses Wechseln zwischen den verschiedenen Interaktionsmodis mithilfe des Anoto Menüs erfolgen. Dies verlangsamt zwar das Umschalten zwischen den einzelnen Aktionen, hat aber den Vorteil, dass man nicht wie bei der Maus durch die limitierte Anzahl der verfügbaren Tasten auf wenige Aktionen beschränkt ist. Somit können im Anoto Menü auch weitere Menüpunkte untergebracht werden, die ansonsten über die Tastatur ausgelöst werden müssten. Der Umstieg von Maus auf Stift erforderte intern eine Neustrukturierung der gesamten Verwaltung der Eingabegeräte. Um nach der Umstellung auf die Anoto-Stifte die Maus auch weiterhin verwenden zu können, wurde versucht, eine einheitliche Kapselung für alle Eingabegeräte umzusetzen. Es wurden vier EingabegerätVariablen festgelegt, die die relevanten Informationen eines Eingabegeräts speichern. Die besagten Variablen sind: • Aktion • Zustand • Position • Druck Die Aktion bezeichnet den zuletzt ausgewählten Interaktionsmodus, die für das jeweilige Eingabegerät gewählt wurde. In Comino sind Werte für alle verfügbaren Aktionen vordefiniert, wie zum Beispiel für das Aufstellen, Löschen, Verschieben oder Umstoßen von Dominosteinen. Der Wechsel zwischen den verschiedenen Aktionen erfolgt bei den Stiften mithilfe der Anoto-Menüs, bei der Maus durch das Gedrückthalten verschiedener Tasten. Der Zustand beschreibt, ob das Eingabegerät gerade aktiv ist oder nicht. Für die Maus heißt das, ob gerade eine der Tasten gedrückt wird, für den KAPITEL 5. IMPLEMENTIERUNG 72 Abbildung 5.35: Im Eingabe-Skript werden die empfangenen Werte aller Eingabegeräte für die weiter Verwendung aufbereitet und danach in die Eingabegerät-Variablen geschrieben. Die Abbildung zeigt die Funktionsgraphen für die Anoto-Stifte, die Maus und die Tastatur. Stift, ob er momentan über Anoto-Papier bewegt wird. Für den Wert der Variable Druck wird beim Stift die jeweilige Druckstärke ausgelesen, der entsprechende Wert bei der Maus wird aus der Rotationsgeschwindigkeit des Mausrades errechnet. Die Position speichert üblicherweise Bildschirmkoordinaten, im Fall der Anoto-Stifte kann es sich bei den gespeicherten Werten aber auch um eine Position auf einem der gedruckten Anoto-Menüs handeln. Je nach Typ des Eingabegeräts werden die Variablen unterschiedlich ausgelesen und gesetzt, die weitere Verarbeitung ist dann jedoch für jedes Eingabegerät identisch . Nach dem Auslesen und der Erstverarbeitung der Werte der Eingabegeräte wird in Comino also nicht mehr zwischen MausInteraktion und Stift-Interaktion unterschieden. Abbildung 5.35 zeigt einen Teil des Eingabe-Skripts, in dem die Eingabegerät-Variablen gesetzt werden. Die weitere Verarbeitung der von den Eingabegeräten kommenden Werte passiert im Interaktions-Skript (Vergleiche Abbildung 5.36). Das Interaktions-Skript definiert, wie mit den einzelnen Komponenten in Comino interagiert werden kann. Jede Mögliche Interaktion mit einem Dominostein ist in diesem Skript definiert. Das Interaktions-Skript existiert für jedes Eingabegerät genau einmal und verarbeitet die Eingabegerät-Variablen des jeweiligen Eingabegerätes, die im Eingabe-Skript gesetzt werden. KAPITEL 5. IMPLEMENTIERUNG 73 Abbildung 5.36: Die Abbildung zeigt das Interaktionsskript in fünffacher Ausführung. Für jedes verwendbare Eingabegerät muss eine Kopie dieses Skriptes existieren, das ausschließlich die Werte dieses Eingabegerätes verarbeitet. Eines der Skripte ist in einer Detailansicht dargestellt. Sie zeigt die Graphen, die die Funktionalität für das Aufstellen, Umstoßen, Verschieben und Löschen von Dominosteinen kapseln. 5.4.6 Level Organisation Die Verwaltung von verschiedenen Comino-Levels funktioniert in Virtools über den Level-Manager. Ein einzelner Level wird in Virtools als Szene bezeichnet. Für Comino wurden insgesamt fünf Szenen angelegt. Neben den drei Szenen, die die eigentlichen Spiel-Aufgaben beinhalten, wurden zwei zusätzliche Szenen für die Eingangssequenz (Intro) und die Ausgangssequenz (Outro) des Spiels angelegt. Während der Entwicklungsphase wurden die drei 3D-Szenen in Virtools nebeneinander erstellt. Abbildung 5.37 zeigt alle drei Levels im 3D-Editor von Virtools. Das gleichzeitige Betrachten aller Objekte ist jedoch nur in der Entwicklungsumgebung möglich. Für das Spiel werden die einzelnen Objekte verschiedenen Szenen zugewiesen. Für jede Szene wird definiert, durch wel- KAPITEL 5. IMPLEMENTIERUNG 74 Abbildung 5.37: Im 3D-Raum sind die Objekte der Comino Level nebeneinander angeordnet. Beim Laden eines Spiel-Levels werden nur die der entsprechenden Virtools-Szene zugewiesenen Objekte angezeigt, der Rest wird nicht gerendert. che Kamera die virtuelle 3D-Welt betrachtet wird, welche Objekte in der Szene sichtbar sind und welche Skripts laufen sollen. Alle weiteren Objekte und Skripts werden deaktiviert, benötigen zur Laufzeit keine weiteren Ressourcen des Systems. Auch die verschiedenen Skripts, die in den jeweiligen Szenen gestartet werden müssen, wurden nach Szenen angeordnet, um die Übersicht bewahren zu können. Dabei muss noch eine grundlegende Unterscheidung zwischen verschiedenen Arten von Skripts getroffen werden. Es gibt globale Skripts, die üblicherweise in jeder Szene gestartet werden. Im Unterschied dazu gibt es auch lokale Skripts, die nur in den Szenen aktiv sind, denen sie zugeordnet sind. Abbildung 5.38 zeigt einen Teil der implementierten Skripts, die innerhalb von Virtools farblich codiert wurden, um so ihre Zugehörigkeit schnell erfassen zu können. Ein Großteil der implementierten Skripts ist in der Abbildung ausgeblendet, um die Übersichtlichkeit zu erhöhen. Für jedes Objekt einer Szene muss in Virtools genau definiert werden, wie der Ausgangszustand des Objektes auszusehen hat. Dies ist vor allem bei Objekten wichtig, deren Eigenschaften sich während des Spieles ändern können. Für Comino wurden alle drei Spiel-Levels so gestaltet, dass der Level zu jedem Zeitpunkt in den Anfangszustand zurückversetzt werden kann oder ein anderer Level geladen werden kann. Das Zurücksetzen des Levels ist als eigenes Feld auf dem Anoto-Menü vorhanden, das Laden der einzelen Levels und des Outros kann über die Funktionstasten F5 bis F8 geschehen. 5.4.7 Integration der Hilfe Als einer der letzten Schritte wurde in Comino eine Hilfefunktion integriert, die den Spielern die wesentlichen Spielprinzipien näherbringen sollte. Die KAPITEL 5. IMPLEMENTIERUNG 75 Abbildung 5.38: Zur besseren Übersicht in Virtools wurden zusammengehörige Skripts mit gleichen Farben gekennzeichnet. Die Reihung der einzelnen Scripts ist dem Spielverlauf angepasst. Die oben angeordneten Skripts werden global verwendet. Danach sind die Skripts der fünf Szenen von oben nach unten angeordnet. Hilfefunktion von Comino ist für jeden Level vorhanden und lässt sich über das Anoto-Menü aufrufen. Das Spiel wechselt dann in eine Hilfeansicht des Levels, die sowohl textuelle als auch grafische Hinweise für die Lösung der Aufgabe liefert (Siehe Abb. 5.39 (a)). Eine Besonderheit dabei ist, dass das Spiel nicht angehalten wird. Die Hilfeansicht zeigt den Level nur aus einer anderen Perspektive und überlagert die Echtzeitansicht mit 2D-Grafiken, auf denen Beschreibungen zu den einzelnen Levels stehen. Die Hilfe bietet auch Informationen zu den realen Spielkomponenten. So werden in der Hilfeansicht der dritten Comino-Aufgabe durch eindeutige Symbole, die sich auch auf der Oberfläche der Portale wiederfinden, die Position und Orientierung der Comino-Portale angezeigt. (Vergleiche auch Abb. 5.39 (b)) 5.4.8 Unabhängige Virtools-Applikation Die letzte große Aufgabe war es, das Spiel auch unabhängig von Virtools lauffähig zu machen. Virtools-Projekte können als Web-Applikation exportiert werden, doch können in diesem Fall keine zusätzlichen DLLs geladen werden. Somit können auch keine eigenen Building-Blocks in den exportierten Anwendungen zum Einsatz kommen. Um Comino trotzdem auf einem Computer starten zu können, auf dem Virtools nicht vorinstalliert ist, wurde mithilfe der SDK eine eigenes Programm erstellt, dass die Virtools-Datei direkt öffnen und abspielen kann. Da wichtige Parameter wie der verwendete COM-Port oder die Identifikationsnummern der Anoto-Stifte bisher immer direkt in Virtools geändert werden mussten, was auf einem Rechner ohne Virtools nicht möglich ist, KAPITEL 5. IMPLEMENTIERUNG (a) 76 (b) Abbildung 5.39: Über einen Button des Anoto-Menüs kann der Spieler für jeden Level einen Hilfetext anzeigen lassen. Abbildung (a) zeigt die HilfeAnsicht auf Level Zwei. Grafische Elemente indizieren auch die richtige Position und Orientierung der Comino-Portale (b). wurde im Zuge der Erstellung der unabhängigen Comino-Applikation auch eine Konfigurationsdatei integriert, die vom Spiel beim Start ausgelesen wird und über die die besagten Parameter direkt gesetzt werden können. 5.5 Leveldesign Für Comino wurden drei Level implementiert, die die Spieler zu bewältigen haben. Dabei steigt der Schwierigkeitsgrad von Level zu Level. In jedem Level stehen den Spielern eine begrenzte Anzahl von virtuellen Dominosteinen zu Verfügung, die so aufgestellt werden müssen, dass der Start-Stein des Levels mit dem Ziel-Stein verbunden wird. 5.5.1 Level 1: Der erste Level in Comino ist der einfachste und ist so konzipiert, dass die Spieler den Start- und Zielstein mit einer geraden Linie direkt verbinden können. Der Level-Untergrund stellt noch keine Anforderungen an die Spieler, der Level ist zum kennenlernen der Interaktion gedacht. Trotzdem oder gerade deshalb bietet dieser Level die meisten Möglichkeiten für ein offenes Spiel. Die Dominosteine können in verschiedenen Mustern aufgestellt werden und möglichst komplizierte Szenarien ausgetestet werden. Die Physiksimulation läuft im ersten Level im Vergleich zur realen Welt etwas verlangsamt ab, dennoch soll der erste Level das Gefühl vermitteln, dass sich das Spiel mit den virtuellen Dominosteinen nicht wesentlich von dem mit realen unterscheidet. Holz- und Steintexturen für den Untergrund simulieren eine reale Oberfläche. Abbildung 5.40 zeigt einen Screenshot des ersten Levels. KAPITEL 5. IMPLEMENTIERUNG 77 Abbildung 5.40: Im ersten Level soll der Spieler die Interaktion mit den virtuellen Dominosteinen kennenlernen können. Das Szenario ist möglichst nahe am realen Spiel mit Dominosteinen gehalten. 5.5.2 Level 2: Der zweite Level von Comino erhöht die Anforderungen an die Spieler. Der Untergrund, auf dem die Dominosteine platziert werden müssen, ist uneben und die Verbindung von Start- und Ziel-Stein kann nicht mehr in einer geraden Linie erfolgen. Auch ist in diesem Fall die Anzahl der verfügbaren Steine Abbildung 5.41: Virtuelle Welten können Dominosteine an die ungewöhnlichsten Orte entführen, in diesem Fall auf eine Felspfad, der sich durch ein Lavameer schlängelt. KAPITEL 5. IMPLEMENTIERUNG 78 Abbildung 5.42: Um Level Drei erfolgreich beenden zu können, müssen auch reale Dominosteine verwendet werden. Der Screenshot zeigt nur die virtuellen Spielelemente. so bemessen, dass nicht zu viele Steine verloren gehen dürfen, um den Level zu schaffen. Das Szenario, das sich den Spielern in Level Zwei zeigt, ist im Gegensatz zum ersten Level ein sehr untypisches. Die Dominosteine müssen auf einem Felsenpfad aufgestellt werden, der sich durch ein glühendes Lavafeld schlängelt. Hier soll gezeigt werden, wo die Stärken der virtuellen Welt liegen. Die Dominosteine verlassen die sichere Tischoberfläche und finden sich in einem für Dominosteine untypischen und potentiell gefährlichen Umfeld wieder. Trotzdem wurde die Interaktion der Dominosteine mit der Umgebung auf die Bodenbeschaffenheit reduziert, auch wenn sich hier eine Menge an Möglichkeiten aufgetan hätten. Selbst wenn Dominosteine in die Lava fallen, können sie wieder herausgefischt werden. Abbildung 5.41 zeigt einen Screenshot von Level Nummer zwei. 5.5.3 Level 3: Der dritte Level entführt in die Weiten des Weltraumes. In diesem Level ist die Kombination von realen und virtuellen Dominosteinen die wichtige Neuerung für den Spieler, die es zu meistern gilt. Wie auch in Level Zwei ist es auch hier nicht möglich, virtuelle Dominosteine auf der gesamten Spielfläche zu positionieren. Nur ein metallener Steg erlaubt das Aufstellen von Dominosteinen. An anderer Position aufgestellt entschwebt der Dominostein in das All und ist für den Spieler unerreichbar verloren. Der Steg verläuft jedoch nicht durchgehend vom Startpunkt bis zum Ziel, ein scheinbar unüberwindbares Loch klafft zwischen den beiden Stegteilen. Dieses Loch muss KAPITEL 5. IMPLEMENTIERUNG 79 von den Spielern unter Verwendung der realen Dominosteine überbrückt werden. Dafür müssen die Spieler in diesem Level sowohl virtuelle als auch reale Dominosteine aufstellen, die Comino-Portale richtig anstecken und auf der Spielfläche positionieren und mithilfe der Anoto-Stifte aktivieren. Abbildung 5.42 zeigt einen Screenshot der virtuellen Spieloberfläche von Level Drei. 5.6 Interaktionsdesign Im folgenden Abschnitt wird die Interaktion der Spieler mit den Dominosteinen erklärt. Das Interaktionsdesign wurde mehrere Male überarbeitet, die hier angeführten Erklärungen beziehen sich ausschließlich auf die finale Version des Interaktionsdesigns. Zwischen den verschiedenen Aktionen kann mithilfe des Anoto-Menüs gewechselt werden. Jeder der möglichen Aktionen wurde eine eigene Farbe zugewiesen, die auch auf dem Anoto-Menü sichtbar ist. Berührt der Stift die Tischplatte, so erscheint unter der Stiftspitze eine kleine Kugel als Cursor, die in der Farbe der momentan gewählten Aktion eingefärbt ist. Zusätzlich kann über das Anoto-Menü der aktuelle Level gestartet oder in den Ausgangszustand zurückversetzt werden. Hierfür reicht es, wenn ein Spieler die jeweilige Schaltfläche berührt. Auch die Hilfeansicht kann über die AnotoToolbar aktiviert und deaktiviert werden. 5.6.1 Aufstellen Das Aufstellen der Dominosteine war die erste Interaktionstechnik, die in Comino integriert wurde. Das Aufstellen von realen Dominosteinen wird üblicherweise als eine Tätigkeit gesehen, die ein hohes Maß an Geduld und Geschick erfordert. Das Aufstellen der virtuellen Dominosteine hingegen sollte spielerisch, schnell und einfach sein, und es trotzdem erlauben, Steine auch sehr präzise zu platzieren. Auch sollte es bei einer zu unkonzentrierten oder zu schnellen Interaktion passieren können, dass die Lücken zwischen den einzelnen Steinen zu groß werden oder dass die Dominosteine ungewollt umzufallen beginnen. Das Aufstellen der Dominosteine ist in Abbildung 5.43 abgebildet. Vorausgesetzt der Stift ist im richtigen Modus, wird beim Berühren der Tischoberfläche mit dem Stift der erste Dominostein an der Stiftposition aufgestellt. Wichtig ist dabei, dass der Dominostein noch nicht der Physiksimulation hinzugefügt wurde. Es handelt sich bisher nur um eine Vorschau, die die Position des Dominosteins und Orientierung anzeigt. Die Position des Dominosteins ist bereits fixiert und kann nicht mehr verändert werden doch die Orientierung des Steins ist noch veränderbar. Bewegt der Spieler den Stift im direkten Umfeld rund um das Zentrum des Steines, so rotiert der Stein mit der Breitseite zu Stift. Hat der Spieler den Stein zu KAPITEL 5. IMPLEMENTIERUNG 80 Abbildung 5.43: Die Abbildungen zeigen das Aufstellen von Dominoblöcken in Comino. Die virtuellen Dominoblöcke können in einer durchgehenden Bewegung aufgestellt werden, als würde man sie zeichnen. seiner Zufriedenheit ausgerichtet und will er keine weiteren Steine mehr aufstellen, so braucht er nur den Stift von der Tischplatte abzuheben. Sobald der Stift die Platte verlässt wird der Stein der Simulation hinzugefügt. Im Spiel wird dies grafisch angezeigt: der Stein wirft nun einen Schatten. Will der Spieler jedoch eine ganze Reihe von Steinen erstellen, so braucht er nur den Stift über die Tischplatte zu bewegen. Wird ein gewisser Abstand zum vorherigen Stein überschritten, so wird der erste Stein der Simulation hinzugefügt und eine neue Vorschau angezeigt. Wie oben beschrieben ist auch bei dieser Vorschau die Position bereits fixiert, die Orientierung kann jedoch noch verändert werden. Somit lassen sich ganze Reihen von Steinen ganz einfach zeichnen. Dabei sind ein paar Dinge zu beachten. Bewegt man den Stift schneller, so wird der Abstand zwischen den Dominosteinen größer. Dies kann später dazu führen, dass die Kettenreaktion stockt, da der Abstand zwischen zwei Steinen zu groß geraten ist. Auch beim Erstellen von Dominosteinen in der Nähe von bereits aufgestellten sollte man vorsichtig sein. Wird ein Dominostein in die Physiksimulation eingebunden, der sich mit einem anderen überschneidet, so werden die beiden Steine auseinander katapultiert. Dies kann dazu führen, dass die gesamte Reihe der Dominosteine umfällt, bevor KAPITEL 5. IMPLEMENTIERUNG 81 Abbildung 5.44: Die Abbildungen zeigen das Löschen von Dominosteinen in Comino. Wie das Erstellen von Dominosteinen kann auch das Löschen in einer durchgehenden Bewegung ausgeführt werden. Start gedrückt wurde. 5.6.2 Löschen Bereits aufgestellte Dominosteine können im Lösch-Modus wieder von der Spielfläche entfernt werden. Der Lösch-Modus besitzt zwei verschiedene Modi, die durch verschiedene Stift-Interaktion gezielt ausgelöst werden können. Der erste Modus erlaubt es, ganz gezielt einen Stein zu löschen. Dies kann bewerkstelligt werden, indem kurz auf den besagten Stein geklickt wird. Dieser, und nur dieser Stein wird von der Szene gelöscht. Selbst wenn sich Steine in unmittelbarer Nähe des besagten Steins befinden, wird nur ein einziger Stein gelöscht. Wird der Stift jedoch für längere Zeit auf der Tischoberfläche gehalten, so wird der zweite Modus aktiviert. Dieser Modus löscht alle Dominosteine, die das Cursor-Objekt berühren. Dieser Modus eignet sich für das rasche Löschen von mehreren Dominosteinen, da der Stift wie ein Radierer über die Dominosteine bewegt werden kann. Abbildung 5.44 zeigt das Löschen von Dominosteinen. KAPITEL 5. IMPLEMENTIERUNG 82 Abbildung 5.45: Die Abbildungen zeigen das Umstoßen von Dominosteinen in Comino. Über die Dauer der Interaktion kann die Stärke des ausgesendeten Physikimpulses gesteuert werden. 5.6.3 Umstoßen Das Umstoßen von Dominosteinen kann dazu verwendet werden, die Kettenreaktion wieder in Gang zu bringen, wenn sie einmal nicht durchgehend funktioniert. Die Idee dabei war, den Spieler nicht dazu zu zwingen, den Level neu starten zu müssen, sollte einmal die Reihe der Dominosteine nicht wie geplant umfallen. Dies wurde integriert, da auch beim Spiel mit realen Dominosteinen nachgeholfen werden kann. Zusätzlich kann die UmstoßenFunktion dazu verwendet werden, um eine Kettenreaktion zu starten, die nicht die Beendigung des Levels zum Ziel hat, sondern einfach nur eine bestimmte Aufstellung von Dominosteinen zu Fall bringen soll. Die UmstoßenFunktion kann auf der gesamten Tischfläche ausgelöst werden und beeinflusst alle vorhandenen Dominosteine. Sobald der Stift von der Tischfläche abgehoben wird, wird ein Physikimpuls, ausgehend von der letzten Stiftposition, an alle Dominosteine ausgesendet. Die Stärke des Impulses, der auf den einzelnen Stein wirkt, ist abhängig vom Abstand des Steines zur letzten Stiftposition sowie der Dauer, die der Stift auf der Oberfläche war. Je länger sich der Stift auf der Oberfläche befand, desto stärker ist auch der ausgelöste Impuls. Ein kurzer Klick bringt nur ganz nahe Dominosteine zu Fall, während ein längeres Drücken einen großen Teil des Tisches leerfegen kann. Abbildung 5.45 zeigt die Verwendung der Funktion. 5.6.4 Verschieben Die Verschieben-Funktionalität kann verwendet werden, um Dominosteine, die falsch platziert wurden, neu auszurichten ober zu verschieben. Zusätzlich können umgefallene Dominosteine wieder aufgestellt werden. Im Verschieben-Modus ist der Stift mit dem ersten Dominostein verbunden, den er berührt. Erst durch ein Aufheben des Stiftes von der Tischplatte wird die Verbindung gelöst. Wie auch beim Aufstellen von Dominosteinen erlaubt KAPITEL 5. IMPLEMENTIERUNG (c) 83 (d) Abbildung 5.46: Die Abbildungen zeigen das Verschieben von Dominosteinen in Comino. Aufgestellte oder bereits umgefallene Dominosteine können neu positioniert werden. ein Bewegen des Stiftes in der unmittelbaren Nähe des Steins ein Drehen desselben. In diesem Fall dreht sich der Stein jedoch mit der schmalen Seite zum Stift. Wird eine gewisse Distanz überschritten, so springt der Stein an die aktuelle Position des Stiftes und folgt dieser nun, die schmale Seite voran. Dies erlaubt das genaue Neupositionieren in einer bestehenden Reihe. Verweilt der Spieler eine gewisse Zeit auf einer Stelle, so wird automatisch wieder in den ersten Modus zurückgewechselt. Abbildung 5.46 illustriert die beschriebene Funktion. Kapitel 6 Diskussion Comino wurde im Rahmen einer Reihe von Usability-Tests von TabletopSpielen von zwölf Benutzern getestet. Die Testreihe war Teil einer Diplomarbeit [16], die am Fachhochschul-Masterstudiengang Digitale Medien 1 in Hagenberg verfasst wurde. Die Teilnehmer konnten während der gesamten Versuchsdauer Fragen zum Spiel an die Versuchsleitung stellen. Während der Tests wurden Rückmeldungen zum Spiel in Form von Kommentaren aufgezeichnet und für die Auswertung dem Autor von der Versuchsleitung zu Verfügung gestellt. Zum Teil wurden Ergebnisse der Tests bereits in die Implementierung von Comino eingearbeitet. Im Rahmen dieser Arbeit werden nur die am häufigsten genannten Punkte aufgelistet. Zusätzlich werden auch Erfahrungen, die durch Beobachtungen und Rückmeldungen von Benutzern außerhalb der Testreihe gewonnen werden konnten, in die Diskussion mit einbezogen. Zu guter Letzt werden bei einigen Punkten auch die Erfahrungen aus Sicht des Autors zu Papier gebracht. Um die Diskussion der Erfahrungen und Rückmeldungen übersichtlicher präsentieren zu können, wurden alle besprochenen Punkte jeweils einer der drei Phasen Eingabe, Spiel und Ausgabe zugeteilt, die in Abschnitt 1.2 vorgestellt wurden. 6.1 6.1.1 Eingabe Stiftinteraktion Die Mehrheit der Spieler hatte mit der Verwendung der Anoto-Stifte (Siehe Abb. 6.1) keine Schwierigkeiten. Die Genauigkeit der Positionserkennung wurde nur von einer Person kritisiert und auch mit der richtigen Haltung der Stifte hatten die Spieler nach einer kurzen Eingewöhnungsphase keine 1 http://www.fh-ooe.at/campus-hagenberg/studiengaenge/studiengaenge/ master-studien/vollzeit/digitale-medien.html 84 KAPITEL 6. DISKUSSION 85 Abbildung 6.1: Die Handhabung der Anoto-Stifte führte bei keinem der Spieler zu größeren Schwierigkeiten, und auch die Genauigkeit der Kalibrierung war in den meisten Fällen ausreichend. Probleme. Auch aus Entwicklersicht war die Entscheidung, Anoto-Stifte als Eingabegeräte zu verwenden, eine Gute. Die Anoto-Tracking-Technologie liefert eine skalierbare und robuste Positionserkennung von mehreren, unterscheidbaren Benutzern. Die Interaktion mit Stiften erlaubt es den Spielern, sehr kleine Objekte anzuklicken und durch eine gute Kalibrierung kann sogar pixelgenaue Selektion vom System unterstützt werden. Die Genauigkeit war auch für präzise Aktionen in Comino ausreichend. Das Tracking der AnotoStifte ist des weiteren sehr unempfindlich gegenüber wechselnder Lichtsituation, was beim Einsatz von Projektoren oft problematisch sein kann. Auch wird das Tracking durch die Platzierung von Objekten auf der Interaktionsoberfläche nicht gestört und eignet sich deshalb hervorragend für die gemeinsame Verwendung mit weiteren physischen Komponenten. Die Tracking-Lösung ist sowohl in Bezug auf die verwendbare Fläche als auch in Bezug auf die Anzahl der verwendeten Stifte skalierbar und dabei relativ billig. Auch ermöglicht die Anoto-Technologie eine einfache und schnelle Integration von zusätzlichen Interfaces, den Anoto-Menüs. Der Entwickler spart so sowohl Entwicklungszeit, da er keine komplizierten Menüstrukturen entwickeln muss. Vor allem wird auch auch wertvoller Platz auf dem Bildschirm gespart. Auch das Problem der beliebigen Rotierbarkeit, die für Menüelemente auf einer Tabletop-Oberfläche gegeben sein soll, kann durch diese KAPITEL 6. DISKUSSION 86 Interfaces umgangen werden. Zusätzlich kann das Menü auf verschiedene physische Objekte verteilt und beliebig oft verwendet werden. Es besteht auch keine Grund, dass Buttons für alle Benutzer gleich aussehen müssen. Kinder können andere Interfaces bekommen wie Erwachsene, ohne dass am Programm etwas verändert werden muss. Das Interface ist dabei in der Herstellung sehr billig, ist leicht und verbraucht während der Verwendung keine Energie. Dazu kommt eine hohe Lebensdauer, sofern das Interface durch eine transparente, kratzfeste Oberfläche wie Hartplastik oder Glas geschützt wird. 6.1.2 Anoto Menüs Ein Kritikpunkt, der von mehreren Benutzern aufgebracht worden war, war des Fehlen eines eigenen Anoto-Menüs für jeden Spieler. Vor allem für das Wechseln zwischen den verschiedenen Aktionen wünschten sich gleich mehrere Spieler eine eigene, kleine Tool-Palette, um so im Falle eines ungewollten Umstoßens eines virtuellen Dominosteins schnell auf das Löschen-Werkzeug wechseln zu können. Gleichzeitig wurde aber auch bemerkt, dass das Teilen des Menüs die Kommunikation zwischen den Spielern fördere. Im Zusammenhang mit den Anoto-Oberflächen der Portale wurde oftmals erwähnt, dass die Interaktionsfläche besser als solche erkennbar sein sollte. Auch sollte die Oberfläche bereits Aufschluss über die jeweilige Funktion der Interaktionsfläche geben. Zusätzlich wurde bemängelt, dass aufgrund des nicht vorhandenen Feedbacks des Stiftes das Einstellen der jeweiligen Parameter langwierig ausfallen konnte. Dies war zum Teil jedoch auch durch einen Programmfehler bedingt, der erst nach der Benutzerstudie entdeckt und behoben wurde. Hierzu muss aus Entwicklersicht ergänzt werden, dass die Integration der intelligenten Oberflächen der Türme erst für einen späteren Level vorgesehen war, aufgrund von Zeitmangel jedoch bereits in den dritten Level vorgezogen wurde. Die Funktion der intelligenten Oberflächen der Comino-Portale wurde integriert, um die Möglichkeiten, die sich durch die Verwendung von Anoto Pattern auf physischen Spielelementen ergeben, aufzuzeigen. 6.2 6.2.1 Spiel Interaktionsdesign Die meisten Kritikpunkte am Spiel wurden an der Interaktion mit den virtuellen Dominosteinen geäußert. Dies führte auch dazu, dass diese noch einmal komplett überarbeitet und die neue Umsetzung noch während der Tests in Comino integriert wurde. Mehrere Benutzer wurden nach dem offiziellen Test gebeten, die neue Steuerung mit der alten zu vergleichen und die Ergebnisse waren ausnahmslos positiv. Ein Großteil der aufgezeigten Mängel konnte KAPITEL 6. DISKUSSION 87 somit bereits während der Testphase behoben werden. Dennoch stellt vor allem das exakte Platzieren von Dominosteinen für viele Spieler eine Herausforderung dar. Ein Teil wertete dies jedoch nicht als Problem des Interfaces, sondern als Herausforderung, die das Spiel an seine Spieler stellt. 6.2.2 Leveldesign Bei Leveldesign gab es einige Punkte, die von mehreren Spielern kritisiert wurden. Einige Spieler kritisierten, dass der Sprung vom zweiten auf den dritten Level zu viele Neuerungen mit sich bringt. Die Funktionen der einzelnen Portale hätten besser vorgestellt und ihr Einsatz besser vorbereitet werden müssen. Ohne die Hilfe von eingeweihten Personen wäre Level Nummer Drei nicht lösbar gewesen. Die integrierte Hilfefunktion wurde von keinem der Spieler als hilfreich angesehen. Als Grund hierfür wurde angegeben, dass die Hilfe den Spieler mit zu viel Text konfrontiert. Als Alternative wurden kurze praktische Beispiele für die verschiedenen Interaktionstechniken und Portale vorgeschlagen, die den Spieler auf den nächsten Level vorbereiten. Vor allem für den zweiten Level wurde auch eine veränderbare Kameraposition erwünscht, die es erlauben sollte, die Oberfläche des Spielfeldes genauer unter die Lupe zu nehmen. Der wohl wichtigste Kritikpunkt am Spiel war das Fehlen einer Anzeige, die die Anzahl der noch verfügbaren Steine wiedergibt. Dies wurde vor allem dann gefordert, wenn im ersten Level ausführlich getestet wurde und dabei alle verfügbaren Dominosteine zum Einsatz kamen. In der derzeitigen Umsetzung von Comino ist es, nachdem alle verfügbaren Steine aufgebraucht sind, nicht mehr möglich, neue Steine aufzustellen. Es wird im Spiel darauf jedoch nicht explizit hingewiesen, dass alle Steine aufgebraucht sind. Verschiedene Ausführungen einer Anzeige wurden mit Spielern diskutiert, doch wurde bisher keine Anzeige in Comino integriert. 6.2.3 Spielziel Auch in Bezug auf das Spielziel wurde von einer Testgruppe Kritik geäußert. Die Spieler kritisierten das Fehlen einer Auswertung am Spielende und den fehlenden Vergleich mit anderen Spielern, sei es durch eine Zeitnehmung oder eine andere quantitative Auswertung des Spieles Aus Entwicklersicht ist dazu zu sagen, das die Mehrheit der Spieler mit den in Abschnitt 3.3 beschriebenen Spielmechanismen zufrieden waren und das es schwer ist, ein für alle Spieler zufriedenstellendes Konzept zu entwickeln und umzusetzen. Dennoch wurden verschiedene andere Spielmodi in Betracht gezogen, die jedoch nicht in die finale Version integriert wurden. Mögliche alternative Spielziele wären das Spiel gegen die Zeit, die Verwendung möglichst weniger Dominosteine oder möglichst wenige Spieleraktio- KAPITEL 6. DISKUSSION 88 nen im Level. Auch gewisse Farbkombinationen umgefallener Dominosteine in einem Level könnten zum Beispiel ein besseres Spielergebnis bringen. Natürlich wären auch Kombinationen aus den genannten Punkten denkbar. Die größte Schwierigkeit bei der Implementierung dieser System sind dabei die nötigen Kontrollmechanismen, die das Betrügen von Spielern verhindern. Dies war der Hauptgrund, warum keine zusätzlichen Spielziele in Comino integriert wurden. 6.3 6.3.1 Ausgabe Grafische Ausgabe Das grafische Design der Levels wurde von den meisten Spielern als ansprechend empfunden, nur vereinzelt wurden Details der Umsetzung kritisiert. Die meisten dieser Kritikpunkte sind direkt oder indirekt auf den geringen Kontrast zurückzuführen, denn die Projektion in einem hellen Raum liefert. Dies führt dazu, dass sowohl die Sichtbarkeit der Dominosteine als auch die Lesbarkeit der Hilfetexte darunter leidet. Generell ist zu empfehlen, die (Farb-)Kontraste im Vergleich zu einem Spiel, das für einen normalen Bildschirm entwickelt wird, stark zu erhöhen, um gute Unterscheidbarkeit der verschiedenen Objekte sicherzustellen. Positiv im Zusammenhang mit der grafischen Umsetzung wurden die Verwendung von Partikel-Systemen und Schatten kommentiert. 6.3.2 Kameraperspektive Da auf die Position der Spieler in Comino nicht Rücksicht genommen werden kann, wird der virtuelle Level immer aus der gleichen Perspektive dargestellt und ist für Spieler, die rund um den Tisch stehen, verzerrt dargestellt. Vor allem bei gleichzeitigem Einsatz von realen und virtuellen Dominosteinen ist die unterschiedliche Perspektive deutlich sichtbar. Abbildung 6.2 illustriert dieses Phänomen. Wider Erwarten wurde dieses Phänomen von keinem Spieler kommentiert oder gar als störend empfunden. 6.3.3 Comino-Portale Auch wenn die Idee der Comino-Portale ausnahmslos als eine sehr interessante und gute kommentiert wurde, so wurde doch Kritik an der Umsetzung der Portale geäußert. Konkret war die notwendige Verkabelung der Portale Stein des Anstoßes, die laut Spielern nicht nur beim Aufstellen sowohl von virtuellen als auch realen Dominosteinen behindere, sondern auch den optischen Gesamteindruck des Spieles zerstören würde. Für die Spieler war außerdem nicht unmittelbar ersichtlich, wie virtuelle und reale Dominosteine zu platzieren sind, um die korrekte Funktionsweise KAPITEL 6. DISKUSSION 89 Abbildung 6.2: Die Perspektive von realer und virtueller Spielfläche stimmt in Comino nicht überein. Während die realen Dominosteine von der Seite betrachtet werden, sind die virtuellen von oben sichtbar. der Portale sicherzustellen. Zusätzlich würden die Portale, einmal auf der Projektionsfläche platziert, es erschweren, virtuelle und reale Dominosteine in der unmittelbaren Umgebung zu platzieren. Aus Entwicklersicht muss hierzu gesagt werden, dass das Problem der störenden Verkabelung durchaus als solches erkannt worden war und dass auch verschiedene Möglichkeiten für dessen Lösung existieren, doch wäre es nicht möglich gewesen, das Problem mit vertretbar geringem finanziellen und technischen Aufwand zu lösen. Zwei der Möglichkeiten werden hier kurz beschrieben: Die erste kann wohl eher als Umgehung des Problems angesehen werden und hätte vorgesehen, die Verkabelung nicht auf dem Tisch sondern im Tisch durchzuführen. Hierfür wäre es nötig gewesen, die notwendigen KabelBuchsen an verschiedenen Stellen in der Tischplatte zu versenken und innerhalb des Tisches mit der Sensorbox zu verbinden. Die Verkabelung auf der Tischplatte ist dann zwar immer noch vorhanden, kann jedoch kürzer und dezenter ausfallen und muss nicht quer über den Tisch verlegt werden. Diese Lösung wurde aus Flexibilitätsgründen nicht durchgeführt, da Bohrungen für die versenkten Kabel-Buchsen die Tischplatte beschädigt hätten, der Rückprojektionstisch jedoch auch für andere Projekte einsetzbar sein sollte. Der zweite Lösungsansatz wäre die Verwendung von Bluetooth-Arduino Kontrollern, die eine kabellose Verbindung zum Steuerrechner ermöglichen. KAPITEL 6. DISKUSSION 90 Diese Lösung würde für jedes Portal einen dieser Kontroller plus nötiger Stromversorung durch eine Batterie erfordern. Abgesehen vom relativ hohen Stückpreis (ca. 100 Euro pro Kontroller) hätte in diesem Fall auch die Kommunikation über das Firmata-Protokoll überarbeitet werden müssen. Die unterschiedlichen Hardwarespezifikationen der beiden Arduino-Boards erlauben keine direkte Wiederverwendung des bestehenden Codes. Das Design und die Umsetzung der Portale sind auf maximale Flexibilität bei minimalen Kosten ausgerichtet und sind in ihrer prototypischen Umsetzung durchaus verbesserungswürdig. Dennoch ist die derzeitige Implementierung aus Karton für Testzwecke hervorragend geeignet, da Größe und Form leicht veränderbar sind. 6.3.4 Audio Ein Aspekt, der normalerweise in keinem Spiel fehlen darf, wurde bei der Umsetzung von Comino gänzlich ausgeklammert. Comino hat keine AudioAusgabe. Sowohl Geräuscheffekte als auch Musik fehlen im Spiel gänzlich und wurden auch von mehreren Spielern vermisst. Vor allem das fehlende Geräusch der fallenden Dominosteine und diverser Audio-Effekte in den einzelnen Levels wie bei der erfolgreichen Beendigung wurden von mehreren Spielern als ein verbesserungswürdiger Punkt angesehen. Die Integration von Audio-Effekten und Musik wurde vor allem deshalb nicht in Angriff genommen, da dies nicht der Kernbereich der Arbeit war und keine passenden fertigen Tonbeispiele verfügbar waren. Aus technischer Hinsicht ist die Integration von Audio in Virtools jedoch kein Problem und könnte jederzeit nachgeholt werden. Kapitel 7 Schlussfolgerungen 7.1 Zusammenfassung Diese Arbeit dokumentiert die Ergebnisse und Erfahrungen der Umsetzung des Tabletop-Spieles Comino. Das Spiel Comino kombiniert virtuelle und reelle Spielelemente in einer gemeinsamen Spielumgebung. Gespielt wird auf einem Rückprojektionstisch, bei dem die Projektionsfläche gleichzeitig auch die reale Spielfläche des Spieles ist. Ziel des Spieles ist das erfolgreiche Lösen von verschiedenen Puzzles, was nur durch die geschickte Kombination von virtuellen und reellen Spielelementen bewerkstelligt werden kann. Das Spiel bedient sich dabei spezieller Schnittstellen, sogenannten Comino-Portalen, die den nahtlosen Wechsel zwischen realer und virtueller Spielfläche erlauben. Die Umsetzung der speziellen Hardware integriert bestehende Mikrokontroller und speziell entwickelte Software für die direkte Kommunikation mit dem Steuerrechner. Die virtuelle Umgebung wurde in 3D umgesetzt und inkludiert eine Vielzahl unterschiedlicher Objekte, die selbst modelliert und texturiert wurden. Die Interaktion der Benutzer mit den virtuellen Spielkomponenten erfolgt über spezielle digitale Stifte, deren Position auf der Tischoberfläche bestimmt werden kann. Das System wurde für die gleichzeitige Interaktion von bis zu vier Spielern entwickelt und getestet. Die Arbeit illustriert die unterschiedlichen Arbeitschritte beginnend bei der Erstellung des Spielkonzeptes bis hin zur Diskussion von Kommentaren von Testspielern des fertigen Setups. Zusätzlich werden in der Arbeit Referenzprojekte aufgelistet und verwendete Soft- und Hardware vorgestellt. 7.2 Erreichte Ziele Die für das geplante Spiel im Vorfeld angeführten Inspirationsquellen (Vergleiche Abschnitt 1.1) aus den Bereichen Eingabegeräte, Ausgabegeräte und Spiele(-Plattformen) dienten als Motivation für die Umsetzung eines eigenen 91 KAPITEL 7. SCHLUSSFOLGERUNGEN 92 Verarbeitung be ga ga be an Au ge H d Dominosteine Po Po rta l Ei n s Au Spieler l rta real virtuell ik e o Ei be ng ab An ot af gr Virtools o el a sg Virtools in Ar d ui no du Ar i Sp Au Spielelogik Verarbeitung Abbildung 7.1: Die Interaktion zwischen realen und virtuellen Spielkomponenten in Comino. Spieles. Alle drei Themenbereiche wurden für die Umsetzung von Comino aufgegriffen und wurden in die fertige Umsetzung des Spieles integriert. Die Umsetzung von Comino integriert sowohl neuartige Ein- als auch Ausgabegeräte, als Schnittstellen für ein neuartiges Spielkonzept basierend auf Dominosteinen und ist eines der ersten Spiele, das auf einer neuen TabletopPlattform entwickelt wurde. Die in Abschnitt 1.2 gestellten Anforderungen für die Umsetzung eines Spieles, dessen Spielgeschehen die virtuelle Spielumgebung verlassen und in die reale Welt übertragen kann, werden in Comino erfüllt. Abbildung 7.1 zeigt den Interaktionskreislauf der reellen und virtuellen Teilbereiche von Comino. Die speziell entwickelten Comino-Portale erlauben eine Übertragung des Spielgeschehens über diese Grenze hinweg. Das Bindeglied, das Ausgang und Eingang miteinander verbindet, fungieren von den Spielern aufgestellte Dominosteine. Comino integriert verschiedene Technologien als Eingabegeräte. AnotoStifte können verwendet werden, um direkt mit der virtuellen Welt zu interagieren. Mithilfe der Comino-Portale, die über einen Arduino-Kontroller mit dem Computer verbunden sind, kann die Interaktion zwischen virtuellen und echten Dominosteinen erfolgen und Virtools erlaubt die Integration von Maus und Tastatur und gibt grafisches Feedback an die Spieler. Trotz der in Abschnitt 6 angeführten Kritikpunkte am Spiel und an den Schnittstellen kann gesagt werden, dass das Projekt erfolgreich abgeschlossen wurde. Die umgesetzten Interfaces erlauben sowohl die Interaktion zwischen Spieler und Spiel als auch zwischen physischen Spielelementen und virtuellen Spielelementen und erfüllen somit die für die Arbeit gesteckten Ziele. KAPITEL 7. SCHLUSSFOLGERUNGEN 7.3 93 Ausblick Die Arbeit an und die Recherche für Comino war eine reiche Inspirationsquelle für mögliche Erweiterungen, die in das Spiel integriert werden können. Dabei sind sowohl zusätzliche Levels und virtuelle Spielelemente als auch alternative Spielmodi und Spielziele denkbar. An dieser Stelle werden zwei mögliche Erweiterungen beschrieben, die im speziellen die Möglichkeiten der Interaktion mit realen Spielelementen bereichern würden. Kameras: Das bestehende Setup von Comino ermöglicht weder herauszufinden, ob die Comino Portale an die richtigen Stellen platziert wurden, noch ob tatsächlich reale Dominosteine eingesetzt wurden, oder die Lichtschranke einfach durch einen Spieler unterbrochen wurde. Das Comino-Setup verlässt sich darauf, dass der Spieler von sich aus den Ehrgeiz besitzt, das Puzzle ordnungsgemäß zu lösen. Durch die Integration einer Kamera in den Tisch in Kombination mit Bildverarbeitung könnte ein Teil der angeführten Informationslücken geschlossen werden. Physische Gegenstände erscheinen vom Tischinneren aus gesehen als klar abgegrenzte Schatten auf der diffusen Projektionsoberfläche. Abbildung 7.2 zeigt die Projektionsoberfläche von einer Kamera im Inneren des Rückprojektionstisches aufgenommen. Die Schatten der Portale und Dominosteine sind im Bild deutlich sichtbar und könnten durch Bildverarbeitung ausgewertet werden. Natürlich muss hier gesagt werden, dass die Auswertung der Bilder in Echtzeit keinesfalls trivial ist und eine funktionierende Umsetzung einen nicht zu unterschätzenden Aufwand darstellen würde. Sieht man von den technischen Schwierigkeiten ab, so wäre eine Integration von Kameras durchaus erstrebenswert, da sich für das Spiel durch die zusätzlichen Informationen interessante Möglichkeiten ergeben. Zum einen könnte die Position der Portale dynamisch ausgewertet werden und so auch eine flexible Platzierung innerhalb des virtuellen Levels ermöglichen. Sowohl die Portale als auch die realen Dominosteinen könnte durch projizierte Effekte rund um die Objekte stärker mit den virtuellen Inhalten verknüpft werden. Auch könnte zum Beispiel durch die Erkennung von Bewegung im Bild darauf geschlossen werden werden, ob wirklich reale Dominosteine von einem Portal bis zum nächsten aufgestellt worden waren und diese auch ordnungsgemäß umgefallen sind. Roboter: Eine weiter interessante Möglichkeit wäre die Integration von realen Robotern in des Spiel. Das im Inami Laboratory1 entwickelte Dis” play-based Tracking and Control System“2 kann für die Steuerung und Lokalisierung von speziellen Robotern verwendet werden. Mit projizierten op1 2 http://www.hi.mce.uec.ac.jp/inami-lab/en/index.html http://www.hi.mce.uec.ac.jp/inami-lab/en/projects/display-based/index.html KAPITEL 7. SCHLUSSFOLGERUNGEN (a) (b) 94 (c) Abbildung 7.2: Abbildung (a) zeigt die Tischoberfläche mit einer Reihe stehender Dominosteine, die im umgefallenen Zustand einen fast durchgehenden Schatten zwischen den beiden Portalen werfen (b). Abbildung (c) zeigt ein Differenzbild von (a) und (b), bei dem zusätzlich der Kontrast erhöht wurde. tischen Markern können Roboter innerhalb der projizierten Fläche bewegt werden. In Abschnitt 2.2.10 findet sich eine kurze Beschreibung des Systems und eines Spieles, das auf Basis dieser Technologie umgesetzt wurde. Die Möglichkeit, reale Roboter ohne zusätzliche Hardware steuern zu können, macht diese Technologie zu einer, die sie für die Integration in Comino interessant macht. Eine erfolgreiche Integration ergäbe eine Vielzahl neuer Möglichkeiten für das Spiel. Roboter können zum Beispiel dazu verwendet werden, reale Dominosteine umzustoßen und so stellten so eine alternative Möglichkeit dar, aufgrund virtueller Vorgänge reale Ereignisse auszulösen. Da die Position des Roboters auch in der virtuellen Welt bekannt ist, kann der reale Roboter auch virtuelle Dominosteine zum Umfallen bringen. Der Roboter kann auch verwendet werden, um in gewissen Bereichen des Tisches das Aufstellen von realen Dominosteinen zu verhindern. Kombiniert mit einer Positionserkennung von physikalischen Dominosteinen wie im vorherigen Abschnitt beschrieben, könnte der Roboter gezielt reale Dominosteine ansteuern und umstoßen. Abbildung 7.3 zeigt einen Roboter im Mixed-Reality Spiel Augmented Coliseum“ [17]. ” Die Möglichkeiten, die sich durch die kreative Auseinandersetzung mit Technologie ergeben, sind nicht nur für Comino eine Bereicherung, sondern werden in Zukunft zu einer Vielzahl interaktiver Tabletop-Applikationen führen und möglicherweise ein neues Spiel-Genre hervorbringen. Der Erfolg von Plattformen wie Arduino und Projekten wie LEGO MINDSTORMS“ ” [29] (Abb.: 7.4 (a)), die Kinder und Jugendliche spielerisch an Themenbereiche wie Physical Computing heranführen, verspricht eine interessante Zukunft dieses Bereiches. Kombiniert mit intelligenten Spielkonzepten wie zum Beispiel dem von LittleBigPlanet“3 (Abb.: 7.4 (b)), das die Spieler ” selbst Levels gestalten lässt, ergeben sich eine Fülle an Möglichkeiten, die virtuelle und reale Spielewelt zu vereinen. 3 http://www.mediamolecule.com/games.html KAPITEL 7. SCHLUSSFOLGERUNGEN 95 Abbildung 7.3: Die Integration von Robotern in Comino würde zahlreiche neu Interaktionsmöglichkeiten zwischen realen und virtuellen Spielelementen c Inami Laboratory) ermöglichen. (Abb.: (a) (b) Abbildung 7.4: (Der Umgang mit Technik in LEGO MINDSTORMS“ (a) ” und Spielkonzepte wie das von LittleBigPlanet“ (b) sind interessante Aus” gangspunkte für zukünftige Entwicklungen im Bereich der Spiele, sowohl mit c LEGO MINDrealen als auch mit virtuellen Spielelementen. (Abb. (a): c Media Molecule) STORMS, Abb. (b): Anhang A Inhalt der CD-ROM File System: Joliet Mode: Single-Session (CD-ROM) A.1 Diplomarbeit Pfad: / jl diplomarbeit.pdf . . . jl diplomarbeit href.pdf A.2 Diplomarbeit (PDF-Datei) Diplomarbeit mit Hyperlinks (PDF-Datei) Übersicht Pfad: / application/ . development/ images/ . . . references/ . A.3 . . . . . . . . . . . . . . . . . . . . . . . . Comino-Applikation und -Tools Entwicklungs-Dateien Bilder und Grafiken Referenzen Comino-Applikation Pfad: /application/comino/ BuildingBlocks/ Managers/ . . . Plugins/ . . . . . RenderEngines/ Comino.exe . . . . . . . . . . . . . . . . . . . . . . . Building Block Spielressourcen Manager Spielressourcen Plugin Spielressourcen Renderengine Spielressourcen Executable-Datei für Comino Spiel 96 ANHANG A. INHALT DER CD-ROM 97 comino levels.cmo . . . Virtools Composition (CMO) der Comino-Levels config.txt . . . . . . . . Konfigurationsdatei (Allgemein) patternConfiguration.xml Konfigurationsdatei (Anoto-Menüs) readme.txt . . . . . . . Readme-Datei A.4 Comino-Tools Pfad: /application/tools/ configurator/ . . . . . . drivers/ . . . . . . . . . sender/ . . . . . . . . . A.5 Anoto-Pattern Konfigurator Treiber für Arduino-Board Anoto UDP-Sender Maya Dateien Pfad: /development/maya/ files/ . . . . . . . . . . . textures/ . . . . . . . . A.6 Maya Dateien für virtuelle Spielelemente Texturen der virtuellen Spielelemente Virtools Dateien Pfad: /development/virtools/ bb/ . . . . . . . . . . . cmo/ . . . . . . . . . . nmo/ . . . . . . . . . . A.7 Virtools Building Blocks (BBs) Virtools Compostion des Spieles Virtools Objekt Dateien von virtuellen Spielelementen Visual Studio Dateien Pfad: /development/visual/ anotobb/ . . . . . . . . arduinobb/ . . . . . . . consoleapp/ . . . . . . . dependencies/ . . . . . version/ . . . . . . . . . Visual Studio Projekt des Anoto BBs Visual Studio Projekt des Arduino BBs Visual Studio Projekt der Konsolenanwendung Ressourcen für Visual Studio Projekte Entwicklungsstadien der Konsolenanwendung ANHANG A. INHALT DER CD-ROM A.8 vvvv Dateien Pfad: /development/vvvv/ modules/ . . . . . . . . arduino.v4p . . . . . . . A.9 Subpatches der vvvv-Anwendung Arduino Kommunikations Patch Bilder und Grafiken Pfad: /images/ anoto/ . . . . . arduino/ . . . . comino/ . . . . dominoblock/ . . . . . . . . . . . . . . . . . . . . . interaction/ . other/ . . . . portals/ . . . screenshots/ sensorbox/ . table/ . . . . toolbar/ . . . virtools/ . . . vvvv/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.10 . . . . . . . . . Anoto Abbildungen Arduino Abbildungen Abbildungen zum Spiel Abbildungen zur Entstehung der virtuellen Dominoblocks Abbildungen zur Benutzerinteraktion Diverse Abbildungen Abbildungen der Comino Portale Screenshots des Spieles Abbildungen der Sensorbox Abbildungen des Tisches Abbildungen der Anoto Menüs Abbildungen zu Virtools Abbildungen zu vvvv Referenzmaterial Pfad: /references/ doc/ . . . . . . . . . . . img/ . . . . . . . . . . . Kopien referenzierter Webdokumente Referenziertes Bildmaterial 98 Literaturverzeichnis [1] AB, A. G.: Anoto History, Juli 2007. com/filearchive/1/1579/Timeline.pdf Kopie (anoto history.pdf). http://www.anoto. auf CD-ROM [2] AB, A. G.: Pattern and Print, Juli 2007. http://partner.anoto.com/ cldoc/3146.htm Kopie auf CD-ROM (pattern and print.pdf). [3] Bakker, S., D. Vorstenbosch, E. van den Hoven, G. Hollemans und T. Bergman: Tangible interaction in tabletop games: studying iconic and symbolic play pieces. In: ACE ’07: Proceedings of the international conference on Advances in computer entertainment technology, S. 163–170, New York, NY, USA, 2007. ACM Press. [4] Banzi, M.: Getting started with Arduino, Juli 2007. http://www. arduino.cc/en/uploads/Booklet/Arduino booklet02.pdf Kopie auf CDROM (getting started with arduino.pdf). [5] Barakonyi, I., M. Weilguny, T. Psik und D. Schmalstieg: MonkeyBridge: autonomous agents in augmented reality games. In: ACE ’05: Proceedings of the 2005 ACM SIGCHI International Conference on Advances in computer entertainment technology, S. 172–175, New York, NY, USA, 2005. ACM Press. [6] Barragán, H.: Wiring: Prototyping Physical Interaction Design. Doktorarbeit, Interaction Design Institute Ivrea, Juni 2004. [7] Billinghurst, M., H. Kato und I. Poupyrev: The MagicBook moving seamlessly between reality and virtuality. Computer Graphics and Applications, IEEE, 21:6–8, 2001. [8] Carthy, C. M. und D. Callele.: Virtools User Guide. CD-ROM, 2006. Kopie auf CD-ROM (virtools user guide.pdf). [9] Dietz, P. und D. Leigh: DiamondTouch: a multi-user touch technology. In: UIST ’01: Proceedings of the 14th annual ACM symposium on User interface software and technology, S. 219–226, New York, NY, USA, 2001. ACM Press. 99 LITERATURVERZEICHNIS 100 [10] Frapolli, F., B. Hirsbrunner und D. Lalanne: Dynamic Rules: Towards interactive games intelligence. In: Tangible Play: Research and Design for Tangible and Tabletop Games, Workshop at the 2007 Intelligent User Interfaces Conference, Honolulu, Hawaii, USA, 2007. [11] Gauthier, J.-M.: Building Interactive Worlds in 3D. Virtual Sets and Pre-visualization Games, Movies and Web.: Virtual Sets and Previsualization for Games, Film and the Web. Elsevier LTD, Oxford, Pap/Cdr Aufl., Okt. 2004. [12] Greenberg, S. und C. Fitchett: Phidgets: easy development of physical interfaces through physical widgets. In: UIST ’01: Proceedings of the 14th annual ACM symposium on User interface software and technology, S. 209–218, New York, NY, USA, 2001. ACM Press. [13] Hall, P.: The Principals of Play, Sep. 2006. http://www. metropolismag.com/cda/story.php?artid=2283 Kopie auf CD-ROM (the principals of play.pdf). [14] Jordà, S., G. Geiger, M. Alonso und M. Kaltenbrunner: The reacTable: exploring the synergy between live music performance and tabletop tangible interfaces. In: TEI ’07: Proceedings of the 1st international conference on Tangible and embedded interaction, S. 139–146, New York, NY, USA, 2007. ACM Press. [15] Kaltenbrunner, M. und R. Bencina: reacTIVision: a computervision framework for table-based tangible interaction. In: TEI ’07: Proceedings of the 1st international conference on Tangible and embedded interaction, S. 69–74, New York, NY, USA, 2007. ACM Press. [16] Köffel, C. A.: Heuristics for Tabletop Games. Diplomarbeit, Fachhochschul-Masterstudiengang Digitale Medien in Hagenberg, Sep. 2007. [17] Kojima, M., M. Sugimoto, A. Nakamura, M. Tomita, H. Nii und M. Inami: Augmented coliseum: an augmented game environment with small vehicles. In: Horizontal Interactive Human-Computer Systems, 2006. TableTop 2006. First IEEE International Workshop on, S. 6 pp., 2006. [18] Kurt, E. T.: Spooky Projects Class 3 , Okt. 2006. http://todbot.com/ blog/wp-content/uploads/2006/10/arduino spooky projects class3.pdf Kopie auf CD-ROM (spooky projects class 3.pdf). [19] Lee, W., W. Woo und J. Lee: TARBoard: Tangible Augmented Reality System for Table-top Game Environment. In: Proceedings of PerGames2005 , Munich, Germany, Mai 2005. ACM Press. LITERATURVERZEICHNIS 101 [20] Litzlbauer, W., I. Stuppacher, M. Waldner und M. Weilguny: Neon Racer: Augmented Gaming. In: 10th Central European Seminar on Computer Graphics, Castá-Papiernicka, Slovakia, Apr. 2006. [21] Loenen, E. van, T. Bergman, V. Buil, K. van Gelder, M. Groten, G. Hollemans, J. Hoonhout, T. Lashina und S. van de Wijdeven: Entertaible: A Solution for Social Gaming Experiences. In: Tangible Play: Research and Design for Tangible and Tabletop Games, Workshop at the 2007 Intelligent User Interfaces Conference, S. 16–19, Honolulu, Hawaii, USA, 2007. [22] Magerkurth, C., M. Memisoglu, T. Engelke und N. Streitz: Towards the next generation of tabletop gaming experiences. In: GI ’04: Proceedings of Graphics Interface 2004 , S. 73–80, School of Computer Science, University of Waterloo, Waterloo, Ontario, Canada, 2004. Canadian Human-Computer Communications Society. [23] Magerkurth, C., R. Stenzel und T. Prante: STARS – a ubiquitous computing platform for computer augmented tabletop games. In: 5th International Conference on Ubiquitous Computing, Seattle, WA, USA, Okt. 2003. [24] Mandryk, R. L. und D. S. Maranan: False prophets: exploring hybrid board/video games. In: CHI ’02: CHI ’02 extended abstracts on Human factors in computing systems, S. 640–641, New York, NY, USA, 2002. ACM Press. [25] Mazalek, A.: Media Tables: An extensible method for developing multi-user media interaction platforms for shared spaces. Doktorarbeit, Massachusetts Institute of Technology, Sep. 2005. [26] Mazalek, A., B. Mironer, E. O’Rear und D. V. Devender: The TViews Table Role-Playing Game. In: PerGames ’07 , S. pp.127–134., Salzburg, Austria, Juni 2007. [27] Mazalek, A., M. Reynolds und G. Davenport: TViews: An Extensible Architecture for Multiuser Digital Media Tables. 26:47–55, 2006. [28] Mellis, D. A., M. Banzi, D. Cuartielles und T. Igoe: Arduino: An Open Electronics Prototyping Platform. In: CHI 2007 , San Jose, USA, Apr. 2007. ACM Press. [29] Mindell, D., C. Beland, W. Chan, D. Clarke, R. Park und M. Trupiano: LEGO Mindstorms The Structure of an Engineering (R)evolution, Dez. 2000. http://web.mit.edu/6.933/www/Fall2000/ LegoMindstorms.pdf Kopie auf CD-ROM (lego mindstorms.pdf). LITERATURVERZEICHNIS 102 [30] Morris, M. R., A. Huang, A. Paepcke und T. Winograd: Cooperative gestures: multi-user gestural interactions for co-located groupware. In: CHI ’06: Proceedings of the SIGCHI conference on Human Factors in computing systems, S. 1201–1210, New York, NY, USA, 2006. ACM Press. [31] Nguyen, H. T.: Tabletop Games as Social Catalysts. Doktorarbeit, University of Illinois Urbana-Champaign, Aug. 2006. [32] N.V., K. P. E.: Gaming just got better . http://www.consumer.philips. com/media/master/consumer/microsites/ambx/pdf/ambx leaflet EN.pdf Kopie auf CD-ROM (gaming just got better.pdf). [33] O’Sullivan, D. und T. Igoe: Physical Computing: Sensing and Controlling the Physical World with Computers. Premier Press, Mai 2004. [34] Poupyrev, I., T. Nashida und M. Okabe: Actuation and tangible user interfaces: the Vaucanson duck, robots, and shape displays. In: TEI ’07: Proceedings of the 1st international conference on Tangible and embedded interaction, S. 205–212, New York, NY, USA, 2007. ACM Press. [35] Reuters: Wii are the champions? | Technology | Reuters, Apr. 2007. http://www.reuters.com/article/technologyNews/ idUSN0236164420070402?pageNumber=1&sp=true Kopie auf CDROM (wii are the champions.pdf). [36] Rogers, Y., M. Scaife, E. Harris, T. Phelps, S. Price, H. Smith, H. Muller, C. Randell, A. Moss, I. Taylor, D. Stanton, C. O’Malley, G. Corke und S. Gabrielli: Things aren’t what they seem to be: innovation through technology inspiration. In: DIS ’02: Proceedings of the conference on Designing interactive systems, S. 373–378, New York, NY, USA, 2002. ACM Press. [37] Schmalstieg, D., A. Fuhrmann, G. Hesina, Z. Szalavári, L. M. Encarnaçäo, M. Gervautz und W. Purgathofer: The studierstube augmented reality project. Presence: Teleoper. Virtual Environ., 11(1):33–54, 2002. [38] Shen, C., K. Ryall, C. Forlines, A. Esenther, F. D. Vernier, K. Everitt, M. Wu, D. Wigdor, M. R. Morris, M. Hancock und E. Tse: Informing the Design of Direct-Touch Tabletops. IEEE Comput. Graph. Appl., 26(5):36–46, 2006. [39] Sluis, R. J. W., I. Weevers, C. H. G. J. van Schijndel, L. Kolos-Mazuryk, S. Fitrianie und J. B. O. S. Martens: ReadIt: five-to-seven-year-old children learn to read in a tabletop environ- LITERATURVERZEICHNIS 103 ment. In: IDC ’04: Proceeding of the 2004 conference on Interaction design and children, S. 73–80, New York, NY, USA, 2004. ACM Press. [40] Steiner, H.-C.: Arduino playground : Firmata. URL, http://www. arduino.cc/playground/Interfacing/Firmata, Juli 2007. Kopie auf CDROM (arduino playground firmata.pdf). [41] Streitz, P. T. N.: Roomware: Towards the next generation of humancomputer interaction based on an integrated design of real and virtual worlds. In: Carroll, J. (Hrsg.): Human-Computer Interaction in the New Millenium, S. 553–578. Addison-Wesley, Aug. 2001. [42] Sugimoto, M., K. Hosoi und H. Hashizume: Caretta: a system for supporting face-to-face collaboration by integrating personal and shared spaces. In: CHI ’04: Proceedings of the SIGCHI conference on Human factors in computing systems, S. 41–48, New York, NY, USA, 2004. ACM Press. [43] Valli, A.: Notes on Natural Interaction. http://www.idemployee.id. tue.nl/g.w.m.rauterberg/lecturenotes/valli-2004.pdf Kopie auf CD-ROM (notes on natural interaction.pdf). [44] Virtools SA: Virtools SDK Documentation. Virtools 4 DistributionsDVD, 2006. Kopie auf CD-ROM (virtools sdk documentation.chm). [45] Wilson, A. D.: PlayAnywhere: a compact interactive tabletop projection-vision system. In: UIST ’05: Proceedings of the 18th annual ACM symposium on User interface software and technology, S. 83–92, New York, NY, USA, 2005. ACM Press. [46] Wilson, A. D. und D. C. Robbins: Playing Games across Multiple Interactive Tabletops. In: Tangible Play: Research and Design for Tangible and Tabletop Games, Workshop at the 2007 Intelligent User Interfaces Conference, Honolulu, Hawaii, USA, 2007. Messbox zur Druckkontrolle — Druckgröße kontrollieren! — Breite = 100 mm Höhe = 50 mm — Diese Seite nach dem Druck entfernen! — 104