This is a comprehensive course in both the theory and practice of Virtual Environments (VEs). Virtual Environments are simulations that engage the senses of users through real-time 3D graphics, audio and interaction to create an experience of presence within an artificial world. VEs are used in a variety of settings, including training, education, health, online collaboration, scientific visualization and entertainment. Their use is becoming more and more pervasive as hardware gets more capable of simulating reality in real-time (including graphics, physics and intelligent behavior). As part of the theoretical overview, the course will introduce the history of VEs, what kind of problems VEs have proven to be best at addressing, what are their shown limitations, what models of human-computer interaction apply to VEs and how these models are evolving and pushing the state-of-the-art in interactivity. The technical portion of the course will lead students through the construction and population of VEs in a very hands-on manner, covering topics such as world representation, real-time graphics and simulation issues, networked environments, avatars and interactive characters, event scripting and AI control, special real-time visual and aural effects and intuitive user interfaces.
Course Pages: [Spring 2012] [Fall 2010] [Spring 2009] [Spring 2008] [Spring 2007]
The course covers the theory and practice of game engine software development, bringing together topics that range from large-scale software architectures and modern game programming paradigms to the design and implementation of subsystems for rendering, collision, physics and animation. Through practical lab exercises and group projects, the students will get technical hands-on experience in C++ game development, including the use and development of supporting tool pipelines.
Course Pages: [Spring 2012]
This course is a colloboration between Reykjavik University (School of Computer Science, School of Science and Engineering) and The Iceland Academy of the Arts (Department of Fine Arts and Department of Music). The aim of the course is for students to gain an understanding of the basic aspects of interaction in electronic media and its use in art creation. An emphasis is on students’ technical training in the use of different programming software, as well as the use of programmable sensors and mechanisms. The course concludes with a public art exhibit during the Reykjavik electronic arts festival Raflost. [Spring 2012]
One of the most important goals of Human Language Technology, as a field within Computer Science, is to make it possible for people to interact with computer systems using their own natural manner of communication through language. Human Language Technology is an interdisciplinary field that for example relies on knowledge from linguistics, statistics, psychology, engineering and classic computer science. This course focuses on the fundamentals of Natural Language Processing (NLP), an important subfield of Human Language Technology, and introduces state-of-the-art research in the field with particular regard to the Icelandic language. Students will gain understanding of the various stages in language processing, for example morphological analysis, part-of-speech tagging, syntactic analysis, semantic analysis, discourse analysis and dialog control. Students will get a chance to explore these techniques through programming assignments and an independent project.
Course Pages: [Fall 2010] [Fall 2009] [Fall 2008] [Fall 2007]
Artificial intelligence (AI) is devoted to the computational study of intelligent behavior, including areas such as problem solving, knowledge representation, reasoning, planning and scheduling, machine learning, perception and communication. This course gives an overview of the aforementioned AI subfields from computer science perspective and introduces fundamental solution techniques for addressing them. The course is divided into two parts. The first part gives a thorough overview of classical AI topics whereas the second part is a hands-on in-depth study of a selected specialized topic.
Course Pages: [Spring 2011] [Spring 2009] [Spring 2008] [Spring 2007]
Stories play an important part in our society. In most computer games the quality and entertainment value of the in-game story are as important as the quality of the graphics. Stories have to be well planned and thought through. From small games to big virtual-environments that boast of a massive game world with many players and a number of NPCs, pre-planning stories, interactions and behaviour is a difficult task if the designers want to avoid a brittle outcome. Many methods have been proposed as a solution to this problem and recently a narrative theory, separate and exclusive to virtual environments, has begun to emerge. The aim is for the student to get a good overview of narrative theory as it’s defined for virtual reality as well as history of narrative systems. A special focus is on the two main branches in the field: interactive narrative and emergent narrative. The material is divided into "Narrative theory and history", "Interactive narrative" and "Emergence and narrative"
Create an interactive walk-through of the new Reykjavik University campus building with detail such as furniture and glass. The goal of the study is to learn and apply an industry grade methodology for constructing an interactive virtual environment. Focus is on open source tools such as Blender and low cost real-time rendering software such as Unity 3D. Source materials include building floor plans, but photography for textures and direct measurements for detail are required.
A game engine is the core element of any modern video game. It is composed of a number of smaller elements. An example of such elements would be a graphics engine, which handles rendering the game world onscreen and a physics engine, which simulates real-world behavior of objects. The game engine ties these elements together to deliver a foundation for a dynamic virtual world. The student will first study the subject of game programming/game engine design and later in the semester apply the newfound knowledge in practice by making a simple game engine.
Procedural animation uses methods in real-time to autonomously animate objects, without the use of conventional key frame animation. This study will focus on the creation of a system that requires the understanding of methods to procedurally generate realistic body movement. The aim of this independent study is for the student to learn and develop methods that procedurally control the upper body of an anthropomorphic skeleton. A system will be constructed that contains these methods and will enable an embodied virtual agent, attached to this skeleton to display realistic body movement. The resulting system will then be modular enough to be easily integrated into other systems as a sub-system.The student will research methods and literature concerning: body movement, virtual motor control, kinematics, simulation and other systems of similar kind. Methods will then be developed that can be used in the construction of the system and a report written during the process containing detailed technical descriptions on the study and its results. The system will focus on an embodied virtual agent accomplishing the three following goals: express facial expressions, gaze at a target and move its arms realistically. Each action will require the agent to set itself a goal to procedurally generate movement to this target state from its present state.
The goal is to both understand and develop a pathfinding system that can be integrated with the CADIA-Populus social simulation framework, to make it possible to move an avatar following the lowest cost path between two points through an environment with static obstacles. This problem is composed of three parts; the first one is the process of getting a navigation mesh from the virtual environment, the second part is to get the path from the start point to the goal point, and the third one is to let the solution path guide an agent in the CADIA-Populus social simulation framework.
Free-and-open-source-software (FOSS) promises an attractive alternative to the ever-increasing costs of commercial middleware, which threatens the profitability of modern game development. As MMO development is typically an order of magnitude more expensive than classical game development, this promise seems even more attractive within this sub segment of the industry. There is however little evidence of widespread FOSS usage within the gaming industry. This paper attempts to shed light on some of the underlying reasons through performing an in-depth evaluation of the OGRE open-source rendering engine from the perspective of an MMO developer. The author shows that there are great savings to be had when using the engine as a foundation when compared to building a proprietary rendering engine from scratch, but it does not actually offer significant cost advantages over commercial alternatives in the context of MMO development. The engine also comes with the added risk that it is virtually unproven in the field of high-end gaming, although a number of low-end and mid-range games based on the engine have shown great promise. Furthermore, while OGRE is highly praised by industry professionals it is however uncompetitive in high-performance gaming due to its lack of parallelism. The author concludes that while using OGRE as a rendering engine in a high-end MMO is almost certainly doable, unquestioning commitment to the engine would be folly. [PDF]
Behavior of living beings can be viewed as an abstraction of complex biological processes that we do not completeley understand yet. Behavioral drives, that is the forces that drive creatures to behave can be viewed in several ways. The Ethological perspective deals with the issues of relevance, coherance and adaption along with a simple non-cognitive explanations of behavior (Blumberg, 1996). Another way to view the behavioral drives is by Maslow’s hierarchy of needs, with the physiological forces (such as hunger and thirst) at the bottom level working upto the self-transcendence (such as helping others to find self-fulfillment) on the top (Huitt, 2004). Yet another way to view behavioral drives is from the perspective of Chaos and Complexity theories, where creatures “ . . . as a complex dynamical system self-organize their lives both in order to survive and to find or make meaning. . . ” (Pryor & Bright, 2007). In this independant study the student will study the the behavioral models mentioned above and implement a model of one selected behavior model with the creatures displayed as birds living on a cliff.
The study focus is twofold: (1) study human behaviour in groups in which some form of social interaction is taking place, as much as it is relevant for creating a
convincing model of such behaviour and (2) consider existing theoretical models and
implementations of the mentioned phenomena and getting familiar with ways of designing agent behaviour in virtual environments.
In addition to the general understanding of the problems and methods in this field, example situations of group behaviour using the existing CADIAPopulus social simulation framework will also be implemented. Such a situation could be a group of avatars forming a queue (and possibly starting conversations within the queue) or a conversation forming in the immediate proximity of obstacles such as furniture or within a larger gathering of avatars.
TERRAble is an independent study project done at Reykjavik University. The purpose of the project is to increase the student’s knowledge and experience in computer graphics and related matters, beyond that what the basic computer graphics course teaches. The project focuses on 3 main objectives; 1) creating an OpenGL framework to use for development, 2) research and implementation of performance optimization techniques and comparisons and 3) research and implementation of programmable real-time shaders.
The Procedural Content Creation (PCC) software is a helper tool for the complete automation of 3D model creation. It’s intended purpose is to help create dynamic content for the “Secrets of Rigel” computer game where players compete against AI opponents for dominance of star systems in the galaxy. The game is meant as a test-bed for various AI projects and experiments. The PCC program will be used to dynamically generate planet models in the game as well as terrain models (valley tunnels or generic terrains). The tool is a simple command line program and will therefore not run in a normal window. Instead it is meant to be called by another program or human through a command line interface, with parameters defining it’s input, affecting it’s output.
Tölvuleikir og sýndarheimar eru flókin fyrirbæri, slíkur hugbúnaður notast við margskonar flókin reiknirit til að bæði geta birt hluti á skjá og ekki síst að koma hreyfingu á þá hluti sem eru í slíkum leikjaheimi. Ein tegund af slíkum reikniritum eru leitarreiknirit (e. Pathfinding algorithms), en þau eru fengin af láni frá netafræði. Leitarreiknit flokkast sem gervigreind í tölvuleikjum, en hlutverk þeirra er að finna leið milli upphafsstaðs og áfangastaðs, sem einhver hlutur í tölvuleiknum getur svo ferðast um. Hér er einmitt fjallað um hvernig hlutir, t.d. bílar, skrímsli, hermenn o.fl sem finna má í almennum tölvuleikjum, ferðast um í tölvuheiminum sem þeir eru í. En vandamálið við að láta einhvern slíkan hlut ferðast frá A til B getur verið margþætt, t.d. geta verið hindranir á leiðinni, s.s. vötn, fjöll, hæðir, veggir og ár, sem þarf að komast fram hjá.
In this independent study, the student learned about two fields of study that together form an important backbone for further enquiry into avatar based online communication and collaboration. The first is the science of human face-to-face communication, which describes the ideal case for a collaborative setting, and explains how various subtle nonverbal behaviors contribute to a successful interaction. The second is the science of coupling between human and autonomous control in socially behaving embodied agents. The student learned to formalize procedures from the former and apply those formalizations in a system based on the latter. Furthermore, the student learned to build a simple multi-user online environment using python and Panda 3D.