• 沒有找到結果。

CHAPTER 1 INTRODUCTION

1.2 M OTIVATION

Due to the popularity and similarity of online tabletop games, we are motivated to facilitate the development of tabletop games. We expect to design and implement an online tabletop game system practically based on the similarity mentioned in Section 1.1 so that an

online tabletop game can be easily developed. We first survey the past work for tabletop games below.

There are several popular online tabletop game sites in the Internet. Some of these sites are dedicated to single tabletop game. For example, Free Internet Chess Server (FICS) [24] is dedicated to Chess while Internet Go Server (IGS) [53] is dedicated to Go. Other tabletop game sites, such as Yahoo! Games [95] and Acer Game Zone [30], support a series of tabletop games. Although these game sites are well-designed and attractive to players, they rarely describe the design of their systems in detail.

A research topic related to tabletop games is to develop artificial intelligence systems that can play games with human. For example, the IBM Deep Blue project [33] developed the epochal Chess game system that won the World Chess Champion in 1997. Besides, the research on playing Chinese Chess [91, 96], Go [77], and Connect6 [92, 93] also made achievements. Since the research topic focuses on artificial intelligence, they seldom discuss about how to develop tabletop games.

The research in [55, 56] presented a system named Extensible Graphical Game Generator (EGGG) that can use to develop tabletop games. EGGG defines a high-level script language that allows users to design games. The rules, graphical content, and network functionality of an online tabletop game can be designed with the script language. The authors of EGGG expect that users can use the script language to design a game easily, therefore they claim that a game is easy to be designed and debugged. However, they did not formalize their game model so that it is unknown about how general their systems are. Besides, EGGG does not provide the matchmaking functionality so that the users must develop the functionality if needed.

Eeik et al. proposed a multiplayer board game framework [49] for developing online

board games. It supported a set of reusable components for network communication and graphic user interface. Besides, it also provides default control flow for board games.

Although the framework provides some supports board games, it does not support other types of tabletop games, such card games or tile-based games.

In the dissertation, we try to facilitate the development of online tabletop games in the following way. First we design two models for online tabletop games. The first one named Grouped Online Tabletop Game (GOTG) model that allows players to search for their friends in a virtual room and then play games with them in the room. The second one named the Tabletop Game (TG) model that defines game objects, game states, and playing operations for tabletop games. For the TG model, we formalize the definition of tabletop games and related terminologies and then prove that it is general for all tabletop games.

Based on the TG and GOTG models, we implement a system also named GOTG for developing online tabletop games. The GOTG system provides services over the Internet that allow players to gather in groups to play tabletop games. Besides, it also supports the service for matchmaking so that players can search for their friends to play games together. For developing a tabletop game, the GOTG system provides a framework based on the TG model to help developers handling objects used in the game and operations that manipulate these objects.

While implementing the GOTG system practically, we encounter two issues that may block or disrupt the services of our system. The two issues are briefly described as follows.

z Resolving problems of blocking I/O operations for server programming

The game servers in the GOTG system use the event-driven model for the concurrent message (or event) handling. However, using blocking I/O operations in an event-driven server may freeze the whole server so that the services of the server stop for an

unexpected period of time. We have identified two common blocking problems due to the use of blocking I/O operations and provide solution to them. The solution have been integrated into the GOTG system so that the game servers in the GOTG system can be immune from the two blocking problems.

z Fast recovery from overflow failures for non-disruptive game services

The GOTG system provide services that allow tabletop games to be played over the Internet. These services rely on the collaboration of several kinds of servers, including game servers, web servers, database severs, etc. However, the services may disrupt if some of these servers crash. To continuously provide the services, the servers should try to recover from failures timely. In the dissertation, we address the buffer overflow failure that may disrupt some of these servers. To prevent buffer overflow failures from disrupting servers, we develop a technique to detect and recover from buffer overflow failures efficiently.

Since we expect the GOTG system to continuously provide services for players, we try to solve the two issues. We present our solutions in the dissertation that make our system provide services correctly and smoothly without suffering from the two issues.