
WinproGames - Online Entertainment
Winpro is in the process of developing a number of online games for Scrabble(R) and crossword buffs.
The first two: "Spell's-a-Poppin'" and "SpellAround" are in closed beta testing at this time. Three more games are
in the works: "Spellevator", "SpellKeeper", and "SpellSnake". We will soon be posting links to a "Coming Attractions"
page so you will be able to get an idea of what the games will be like.
If you wish to become a beta tester, please send email to WinproMisc@aol.com requesting to become a WinproGames
Beta Tester. Include your email address and your name and address so we can send you a beta test agreement.
Winpro Multiplayer Game Server / Client
Winpro has developed an Internet based (TCP/IP) client-server
system for producing multiplayer "game show" games. The system can reliably
service tens of thousands of simultaneous players in a rich, interactive environment.
The system, which is implemented primarily in C++, can easily be adapted
to a wide variety of online games.
The Power of "Game Show" Games
Good game shows have a long history of financial success. "Game show" games have timed rounds during which players engage in game actions. Rounds can happen simultaneously for all players (such as in Jeopardy!) or can be turn-based (such as Wheel of Fortune). "Game show" games also require scoring and historical score-access mechanisms. Successful on-line "game show" games also provide interactive chat among players in the game and in some cases the capacity for passive observation of games in progress.
Over the past four years, through its work for Slingo, Inc. and other clients, Winpro has developed an approach that is flexible enough to accommodate all types of games as well as to capitalize on the nature of on-line game show players and audiences. We recognize the following characteristics:
- People like to play games
- alone (solitaire) and
- with friends and
- even with strangers (Internet play offers a unique opportunity to include players who are normally too shy to participate).
- People like to passively observe game shows (as on TV) and
- People like to play on game shows for the prestige, fleeting as it might be, that it brings.
The Game Server-the Power Behind the Scenes
Good game technology feels easy and natural to game players, allowing them to concentrate on the fun of playing the game. Play and response time must be calibrated to game needs and players should not be distracted by technical mechanisms to effect play. Winpro's game server and client capabilities are designed to meet these needs.
Server Architecture: On the server side, the system developed by Winpro has a two-part architecture we call the Lobby and the Room. Rooms may be public or private. In the Lobby, players can join public rooms to play with complete strangers. Public rooms keep up the excitement by ensuring that a player will almost always be in a nearly full game. Alternatively, players can create password-protected private rooms and invite only their friends to play with them or they can play solitaire. Optionally, public rooms can be further subdivided by area of interest. For example, a question-and-answer game could provide categories such as Movie Trivia, Literature and Sports. Players coming into the Lobby could see how many people are playing in each category, and choose to play in rooms with people who share their interests.
Game Play: Once a player has decided what kind of game to play -- public or private -- and perhaps what interest area, he is routed to the appropriate room. Within a room, a typical game will consist of a wagering round (if applicable), followed by round of play, followed by an brief pause, followed by the next round of play, a pause, the next round, and so on. Chat is available at all times. During the pause after each round, the names and current scores of the top players at the end of the round are displayed. After some number of rounds, a game is completed and final scores are announced. The end of the game is followed by an inter-game intermission. At the end of the intermission, the cycle is repeated.
Game Client: The implementation of a typical game client has two parts: the game logic and the communications system. The game logic is specific to the game. The communications system is infrastructure. Development of a game involves implementation of the game logic (some of which resides in the server and some of which resides in the game client) and the design and development of messages to be exchanged between the server and the client. In addition to game-specific messages, there are a number of general messages used for score reporting, chat, "heartbeat", etc.
Winpro's server / client architecture enables us to implement game client programs to run on Windows, Macintosh, Linux, or palmtop. The client technology is fully compatible with popular game technologies such as MFC, DirectX, OpenGL and QuickTime. Clients can be written in any language, such as C++ and Java.
Use of the Technology for Slingo®
Using this technology, Winpro, Inc. has developed a number of games for Slingo, Inc.: Slingo, Slingo X-press, Private Slingo, etc.. Winpro, Inc. participated in the design of these games and had complete responsibility for the design and implementation of the game client that executes on the player's computer. We implemented the game clients in C++ to run on all versions of Windows, including Window 3.1, Windows 95, Windows 98, and Windows/NT.
The Slingo game is the most popular site on AOL (after the obligatory welcome screen). Slingo and Slingo X-press have been the most popular games on AOL for the past three years. During that time, the software has run reliably almost continuously. The only restarts have been due to hardware failures. At peak, the Slingo system handles over 16,000 simultaneous players in over 5,000 games. Each day, the system serves over 150,000 players. The proprietary, high-performance custom database Winpro developed maintains score and room records for over 4 million users and those scores may be queried from a special web site. The system includes a "heartbeat" feature between the client and the server to ensure the greatest possible accuracy in billing.
Scoring Database
The scoring database maintains cumulative scores for each unique player: for the day, for the week, for the month, for the year, and lifetime. Each day, the database produces a list of the top 50 players and scores for each of these time periods. In addition the database can be used to record scores for an arbitrary time period under the control of the game administrator, e.g., scores for a marathon periods (e.g., the first Saturday of each month, a weekend, or Spring Break)
"Twitch" Games
Games like Quake are not timing-critical in the same way as "game show" games. In Quake, the positions and actions of other players can be predicted in advance (although for a very short time) and player characters can be displayed based on those predictions. At some future time, a correction may be required when actual data from another player arrives. At that time, Quake and games like it make corrections. For example, Quake might show an opponent moving left when in fact that player moved right. In "game show" games, it isn't generally possible to predict what the user will do (which multiple-choice answer he will choose, for example). Instead, it is critical that information about the user action reaches the server in a timely fashion so that scoring can be performed and so that a player does not have to wait too long for another player to finish.
Winpro's current server technology can be easily adapted to work with a "twitch" game like Quake. Most of the system would be used as-is: The Lobby, game tracking and placement, scoring database, and in-game chat would remain the same, but the game logic module would use datagram-based instead of stream-based network communications. Since the game logic module is in general the only module that varies from game to game, implementing a twitch game is not significantly different from implementing a new "game show" game.
Playing Across the Internet
The technology can interface directly with an online service such as AOL, using screen names registered with the service. However, because our design objective for the system was to create a generic Internet (TCP/IP based) capability, the core technology is not tied to AOL. In fact, as we develop games, they are made available over the Internet for testing. We are currently developing a module for custom hosting on the Web, enabling a player to visit the game website, register, and pick a nickname to use while playing. We have experience with a number of game client "download, install and launch" systems, including one designed and implemented in-house.
System Requirements
Winpro has developed game servers to run on Intel x86 Linux, Hewlett-Packard HP-UX, and Sun Solaris. At AOL, the Slingo server system currently runs on multiple quad-processor HP-UX computers. Our implementation of the server's key components does not require functionality which is proprietary to any single manufacturer, so porting to other UNIX variants is straightforward and usually requires little more than a recompilation for the target hardware.
Scalability
Winpro designed its server technology for easy scalability. When one computer becomes overloaded, server capacity can be scaled up simply by connecting more computers and installing the software. In order to predict server load, we have developed and use a volume testing system that can load the server with robot players ("bots"). The bots are highly configurable and can simulate loads of a few dozen or many thousands of players.
Web Clients
Winpro's game server technology also supports WWW CGI clients so that dynamic web pages can allow players to look up their individual scores, view the Top 50 of the day, week, month, year, and lifetime, and check their status in a game player "Hall of Fame." In addition, daily statistics tallying counts of players per game, total games played, peak players, etc. are delivered automatically to game administrators.
Integrated Chat Server
Winpro's technology includes an integrated in-game chat server, which has proved itself in handling tens of thousands of concurrent players on AOL. The chat server features spoof-proof in-game announcements, high score of the day reporting, and game history for gambling-oriented games. The ability to exchange chat messages with user-selectable fonts, font sizes, and colors, is under development.
In-Game Advertising
Our client / server technology will implement most business models: free with advertising, pay per game, per hour played, per day, per month, or per year. Additionally, it will accomdate commercials during inter-game intermission periods. Since "game show" games only require small game data packets sent sparsely between server and client, there is a tremendous amount of unused communication bandwidth which can be used to stream commercials to the client and played during intermissions.
Gambling
Many casino games follow the "game show" template. Although not specifically designed for gambling games; a feature exists which selects a player in a game as Host. At the start of each round, the Host can choose a wager. The other players are asked if they Accept or Decline the wager. Those who accept the wager play the next round; those who do not "sit out" but are still able to chat. "Banking" and wager transactions are handled on the server. Based on our company's experience with secure transaction-based systems, we believe that the technology could be readily adapted for real Internet gambling.
Security
Winpro has developed a highly secure, mutating challenge-response system to prevent denial-of-service overload attacks. For maximum hacker resistance, all scoring is performed by the server. The chat system includes technology that virtually eliminates the possibility of "spoofing" (pretending to be someone else). Servers can be administered remotely, but support the use of secure sockets to minimize the likelihood of password theft.