Object Oriented Competition Locating System for Online Gaming

Transcription

Object Oriented Competition Locating System for Online Gaming
OBJECT ORIENTED COMPETITION
LOCATING SYSTEM FOR ONLINE
GAMING
By
Keith M. Churchill, 137605
A thesis submitted in partial fulfillment of
the requirements for the degree of
Bachelor of Computer Science: Software
& Computing
Carleton University
March 9, 2005
Approved by : Dr. Tony White
Carleton Honours Project Coordinator : Weixuan Li
COMP 4905 - Honours Project
CARLETON UNIVERSITY
ABSTRACT
OBJECT ORIENTED
COMPETITION LOCATING
SYSTEM FOR ONLINE GAMING
By: Keith M. Churchill
Supervisor: Dr. Tony White
Department of Computer Science
The problem with online gaming is the inability to locate competition in a
consistent and relevant fashion. PC gamers are often separated by different
communication networks such as Internet Relay Chat or complete isolated from
fellow gamers altogether. ScrimNet helps unify the gaming communities by
providing a centralized service that connects gamers to gamers, using both the
resources of the web as well as IRC. This system brings together two distinct
communities of gamers into one large community providing a better online
gaming experience for the end user.
TABLE OF CONTENTS
Chapter 1 – Introduction................................................................................................... 1
Chapter 2 – User Interface Design .................................................................................. 3
Chapter 3 – Relational Database Design ........................................................................ 6
Chapter 4 – Web Application Design ............................................................................. 7
Chapter 5 – IRC Application Design ...........................................................................10
Chapter 6 – Final Summary ...........................................................................................12
References ............................................................................................................................I
Appendix A – IRC Command Line Interface .............................................................II
Appendix B – Relational Database Tables .................................................................. III
Appendix C – Web Application Processes ................................................................... V
Appendix D – ScrimBot Test Output.........................................................................XV
Appendix E – LiveBot Test Output.......................................................................XVIII
Appendix F – Contents of CD.....................................................................................XX
LIST OF FIGURES
Number
Page
FIGURE 1 – ScrimNet main welcome screen.
FIGURE 2 – ScrimNet new user registration process.
FIGURE 3 - ScrimNet new user registration process. (continued)
FIGURE 4 – ScrimNet account activation email.
FIGURE 5 – ScrimNet result of successful account activation.
FIGURE 6 – ScrimNet logon process.
FIGURE 7 – ScrimNet successful logon.
FIGURE 8 – ScrimNet add scrim process.
FIGURE 9 – ScrimNet add scrim process. (continued)
FIGURE 10 – ScrimNet add scrim process. (continued)
FIGURE 11 – ScrimNet list scrim process.
FIGURE 12 – ScrimNet list scrim process. (continued)
FIGURE 13 – ScrimNet accept scrim process.
FIGURE 14 – ScrimNet accept scrim email.
FIGURE 15 – ScrimNet accept scrim completed.
FIGURE 16 – ScrimNet update user account information.
FIGURE 17 – ScrimNet admin functionality.
FIGURE 18 – ScrimNet admin functionality. (continued)
FIGURE 19 – ScrimNet clan leader functionality.
FIGURE 20 – ScrimNet clan leader functionality. (continued)
ii
V
V
VI
VI
VII
VII
VIII
VIII
IX
IX
X
X
XI
XI
XII
XII
XIII
XIII
XIV
XIV
GLOSSARY
Bot. Short for robot, a computer program that runs automatically.
Clan. A clique; a sect, society, or body of persons; esp., a body of persons united
by some common interest or pursuit
HTTP. Short for HyperText Transfer Protocol, the underlying protocol used by the
World Wide Web. HTTP defines how messages are formatted and transmitted,
and what actions Web servers and browsers should take in response to various
commands.
IRC. Short for Internet Relay Chat, a chat system developed by Jarkko Oikarinen
in Finland in the late 1980s. IRC has become very popular as more people get
connected to the Internet because it enables people connected anywhere on the
Internet to join in live discussions. Unlike older chat systems, IRC is not limited
to just two participants.
JDBC. Short for Java Database Connectivity, a Java API that enables Java programs
to execute SQL statements. This allows Java programs to interact with any SQLcompliant database.
Scrim. Short for scrimmage. A practice session or informal game, as between two
units.
iii
Chapter 1
INTRODUCTION
Due to the increasing and ever growing popularity of online gaming in the
computer industry. Many dedicated networks have been established for gaming
communities around the world to communicate. The problem lies in the shear
number of networks, it is often difficult to locate players that play the same game
and or players of similar skill level. Often game clans reside on different networks
and it is a constant burden to locate a rival clan. Additionally, some clans do not
reside on any IRC network. In this case, these clans often use web forums or
email listings for organizational purposes. A few game developers have addressed
this problem and have included adequate in-game solutions for locating
competition. Most notably, BattleNet developed by Blizzard Entertainment
provided full in-game matchmaking. There are many advantages and
disadvantages to the in-game solution. For instance, the fact that the solution is
part of the game reduces the support for other game titles. Although, the
framwork around solution can be easily ported to other titles. On the plus side,
having an in game solution greatly speeds up the process of finding an opponent
and provides a centralized arena for discussion and game play. Unfortunately,
Blizzard is the exception rather then the norm. The majority of games developed
today provide the connection method only for online gaming and no way to
locate players and or clans. As a result, the gaming communities has been forced
to find alternative methods of locating skilled competition. Mainly,
communicating on websites using forums, by email or chatting on the many IRC
networks which often leads to confusion and miscommunication.
1
The system developed for this project titled ScrimNet, which is based on the
terminology of a Scrim, short form scrimmage, facilitates the connection and
acquiring of competition among the many gamers spread across various networks
using different communication protocols. This system will aid gaming clans in
locating and communicating with other clans on remote networks who are
looking to play either an official match for one of the many gaming leagues and
ladders or locating another clan to hold a practice match known as a Scrim.
ScrimNet attempts to solve the problem of competition acquiring by bridging
many existing gaming network which currently use the IRC protocol and provide
access to a centralized database through several user interfaces. The two main
protocols supported are HTTP and IRC. These protocols were chosen since they
are mature technologies and are widely supported in both application
development and already in use by gaming communities. The majority of avid
gamers have access to clients for each of these protocols such as web browsers
and IRC clients. Each corresponding protocol has a user interface associated with
it. The HTTP protocol uses a web application, while the IRC protocol offers a
text or message based interface.
2
Chapter 2
USER INTERFACE DESIGN
In general, there are many principles to consider when designing a user interface.
Every user interface must be designed with a particular user demographic in
mind. It is important to understand the types of people that will use the system.
Attributes such as, age/intelligence/origin are all key factors that should be
considered. In addition, determining the average users computer literacy is also
very important during the design process. Assumptions are often made according
to the designers literacy level rather then the users. Gamers, in general cover a
wide demographic. When considering only PC gamers the spectrum of users is
tightened. With the average PC gamer being male 18-35 with novice level of
computer literacy. This demographic should be the primary target for the
application. After careful consideration of the users of the system, three distinct
criteria should be evaluated, usability, visualization and functionality. Usability
referring to the ease of use and how straight forward each process is within the
application. Visualization, is the graphic appeal and accurate representation of the
status of the application. Lastly, functionality which represents the services the
application provides.
In the case of ScrimNet the web user interface has been designed for the novice
computer user, menus are straightforward and easy to use. The application is
divided into four distinct sections, the header, footer, the sidebar, and the main
window. The header and footer are self explanatory. They simply provide an area
to display information regarding the application. (Fig. 1) The layout of the web
application uses primarily html tables arranged in a series of layers. In addition,
3
cascading style sheets are used to enhance the visual appeal. This approach allows
the application to have a simplistic design that is easy to navigate and from a
developer point of view, maintain, since the content is often generated
dynamically at runtime. From a usability standpoint, the navigation menu has
been placed in the header of the application so that it is always available to the
user. The buttons are clearly labeled as to their functionality. Clicking on any of
the navigation buttons will take the user to a particular section of the application
and start the requested process. The main screen indicates any instructions that
need to be taken or errors that needs to be addressed. Any input that needs to be
gathered from the user is done in the form of selections, with the exception of
account creation and modification. This makes processes such as adding a scrim
or listing scrims on a particular game very easy and straight forward to perform.
All of these elements combine, create an easy to navigate web application that can
be used by the majority of gamers.
On the other hand since the IRC interface is text based, and it relies on a series of
command with properly formatted parameters to perform the similar operations
to that of the web application. IRC users tend to be very knowledgeable regarding
the games that they play as well as general computer literacy. So, this particular
interface is geared for a user who is comfortable using a command based
interface. The advantages of text based interfaces is that experienced users can
accelerate or even automate frequently used processes using scripts commonly
found in the most popular IRC clients. Also, users of IRC do not have to leave
the chat client in order to interact with users located on a different server or
network. The command line interface is described completely in Appendix A.
4
Having multiple interfaces benefits the end user in many ways. It brings together
users who use the Internet differently. Novice user who may not even know what
IRC is can acquire competition from IRC users and conversely IRC users can
draw from the massive web user space. In this way the system as a whole caters
to both the novice and expert users, which assist in the adoption of ScrimNet
amongst the gaming communities worldwide. This is all made possible from the
centralized, interface independent database that ScrimNet maintains.
5
Chapter 3
RELATIONAL DATABASE DESIGN
The ScrimNet system uses a relational database to store a variety of information.
This information can be divided into three distinct sets of data. The first being
data relating the users of the system. Details such contact & logon information.
The next set of data, game specific details contains games supported and all the
various configurations of supported games. Also, details pertaining to users
locating other users. For the purposes of this project they will be referred to as
Scrim details. Each set of data has a corresponding set of tables within the
database. Furthermore, each set has a unique identifier associated with it. These
unique identifiers serve as the primary keys. The supporting set of tables are all
indexed by the primary keys. This maintains simplicity as well as minimizes the
number of table join operations needed, resulting in faster data access. For
complete listings of the tables defined by the ScrimNet database see Appendix B.
For the creation of the database I choose the popular database applicatiom
mySQL. Mainly since the application is free and supports all the required SQL
functionality and offers decent performance. Although any SQL compatible
database would serve the same purpose. The data is accessed by the backend
systems thought the MySQL Connector/J 3.0 which is a native Java driver that
converts JDBC calls into the network protocol used by the MySQL database.
MySQL Connector/J is a Type IV JDBC driver and has a complete JDBC feature
set that supports the capabilities of MySQL.
6
Chapter 4
WEB APPLICATION DESIGN
As I eluded to in the previous chapters, the user interfaces are built upon two
backend applications which are coded in Java 2 Enterprise Edition 1.3. Java was
chosen primary for its ability to function and operate in multiple environments.
The development environment for the web application was done under Linux
Mandrake 8.1, using Tomcat 4.1 as the application server and Ant 1.5.4 as the
application deployment tool. Complete source code and development tools used
can be found on the CD accompanying this report, see Appendix F.
The web application is a Java Servlet developed around the delegation event
model. Event delegation is a generic model built into the Java language.
Extending this model to Java servlet design brings a more generic Java
programming style and philosophy to servlet applications. The main Advantage
of using this model is having a single entry point for all http get and post
requests. As a result, application security and dispatching requests can be handled
uniformly through-out the application on a per request level. Each request is
forwarded to a specific request handler designed to perform an application
process. Once the processing is complete the resulting information is passed to
the Java Server Pages which are responsible for the generation of the HTML
code seen by the users. This allows dynamic content to be produced upon
request from the user.
Application security is also handled by the servlet’s front-end controller. Within
this controller framework three security levels are defined. The first level is
reserved for ScrimNet Members, the second for ScrimNet Clan Leaders and the
third for ScrimNet Administrators. When a user first logs into the application,
7
and the username and password have been verified with the database, a serverside session is created containing the user details and security access level. (Fig. 67) Every request from the browsers checks against this access level to verify if the
user has access to the particular file/page or area within the application. A
registration process is in place for new members to join. (Fig. 2-3) After filling
out a form providing contact information and choosing a username and
password an activation email is sent to the users specified email address. (Fig. 4)
This activation process ensures that the email address provided is correct. (Fig. 5)
As a ScrimNet Member, you are able to access ScrimNet main functionality. The
simplest of processes is too acquire competition. This is achieved by selecting the
list scrims button from the navigation menu. The user will be prompted to select
which game they would like to view (Fig. 11). After which, ScrimNet will return
all available scrims (Fig. 12). If the user happens to own one or more of the scrim
requests, they are able to remove it from this screen. Otherwise, they may click
on a scrim which will send an request email to that particular scrim owner (Fig.
13-14). If the owner of the scrim chooses to accept, he may do so by clicking the
link within the email to acknowledge acceptance (Fig. 15). This will provide both
parties with contact information so that time and location can be determined. At
this point the scrim is set to inactive within the system. The other process a
ScrimNet member may wish to use is add a scrim request to the system. This
process is started by clicking on the add scrim button on the navigation bar (Fig.
8). The user is prompted to answer a series of questions related to the game they
select such as map name, game type, etc. (Fig. 9). After selecting the appropriate
criteria, the scrim is added to the system. Other users of the system will then be
able to see the scrim in the listing and chose to accept. Users with clan leader
status can perform all the functions that members can perform, in addition they
can manage clan details, add users to a particular clan, change clan name, etc. (Fig.
19-20) Administrators are able to manage all users, promote users to clan leader
8
or ban users who may be abusing the system (Fig. 17). Administrator, also are
able to manage a game specific data from within the application such as adding a
new game/maps or types of play pertaining to a specific game (Fig. 18).
All of the processes come together and produce an application that is easy to
navigate and functional. Users are able to quickly logon to the application and
search for scrims, or add a new scrim if need be. The event delegation model
allows the application to uniformly handle requests from the user and provides
centralized security. In addition, this framework allows the application to be
extensible and robust.
9
Chapter 5
IRC APPLICATION DESIGN
The IRC component of the system is two fold. The first application being the
connection for IRC users to interface with ScrimNet know as the ScrimBot. The
second application is a relay that broadcast game activity on a particular game
server to a particular IRC channel, this application is known as LiveBot. This
allows high profile matches to be delivered in real-time to users on IRC chat
channels.
Communication with the ScrimBot is achieved through a set of trigger
commands defined by the command line user interface. These commands allow
the same functionality as the web application. Users must first authenticate
themselves with the bot in order to gain access to the commands. Once proper
authentication is achieve the bot provides the user with a set of commands
specific to the users security level within the system. Using the ScrimBot, users
can add/view/remove/accept scrims that are added via IRC or the WEB.
Confirmation is still maintained through an email process that notify the user of
acceptance (Appendix D). ScrimBot is a modular application that consists of
three modules. The authentication module deals strictly with tasks such as
authenticating users, tracking IRC session data and user session detail. The IRC
module provide the means for connecting to various IRC servers and is
responsible for the sending and receiving of data from the IRC networks. The
parser module processes all the raw IRC data, searches for trigger commands and
formats data for the forth module, which provides access to the backend mySQL
database and provide functionality such as adding / removing and listing scrims.
10
The LiveBot was an attempt to bring high profile matches and playoff game to
the masses of users and fans throughout the gaming communities. The difficulty
with this type of application is that each game is designed differently and not all
games provide functionality to retrieve game status in real time. This portion of
the system could easily have become a project on its own. For the scope of our
purposes within ScrimNet, I have made the decision to provide an example using
the game ‘Soldiers Of Fortune 2’ since it provide a real time logging feature that
can be accessed by the LiveBot. For this application to be successful on a larger
scale, the LiveBot would have to be built into the game source code. Since I did
not have access to any game source for this particular project, I have left this as a
future area of development. Appendix E provides the output of the LiveBot
application on a Soldier of Fortune 2 local server.
The Principle for this
application is that it would gather stats on players at the same time provide IRC
users the ability to experience the excitement of high profile matches by very
skilled players. This application collects the raw information sent through the
logging service and parses and formats the data so that it is meaningful to the
users.
11
Chapter 6
FINAL SUMMARY
The ScrimNet application serves the gaming communities as a search engine for
competition when it is very often difficult to locate other gamers with tools
provided by in-game by developers. ScrimNet attempts to reach as many users as
possible by provided both web and IRC access. User are able to easily search for
competition through very well defined processes and the exchange of contact
information take place upon success completion. The LiveBot attempts to
capture the excitement of high profile matches to the masses of fans by bringing
real-time status of a particular match and broadcasting into an IRC chat channel.
This is a difficult task since no two games are alike, and not every games offers
the ability to capture game information in the real-time manner. For future
revisions of the LiveBot, the best solution would be to program a Mod for each
game that would interface with the LiveBot application providing the necessary
raw data required to broadcast a match similar to a sporting event. Other features
such a game announcers could be supported in future releases. The main
accomplishment of the ScrimNet system is the centralized arena for gamers
young and old, from novice to expert and to organize matches with each other,
which increases the overall enjoyment of online gaming today.
12
REFERENCES:
Bergsten, Hans. Java Server Pages: Pocket Reference. O’Reilly & Associates, 2001.
Cooper, Alan. About Face: The Essentials of User Interface Design. Hungry Minds,
Inc.
Hall, Marty, Brown, Larry. Core Servlets and Java Server Pages. Volume 1: Core
Technologies. 2nd Edition. Sun Microsystems Press, 2004.
Hernandez, Michael. Database Design for Mere Mortals. 2nd Edition. AddisonWesley, 2003.
Powell, Thomas. Web Design: The Complete Reference. 2nd Edition. McGraw-Hill /
Osborne, 2002.
Ramakrishnan and Gehrke, Database Management Systems, McGraw Hill, 2003.
Walsh, Aaron, Fronckowiak, John. Java Bible. IDG Books Worldwide, Inc., 1996.
RFC 1459 - Internet Relay Chat Protocol, http://www.ietf.org/rfc/rfc1459.txt , 1993.
Dictionary.com, http://www.dictionary.com
Webopedia, http://www.webopedia.com
I
APPENDIX A: IRC Command Line Interface
[ ] = optional parameter.
General Commands:
!help [<command>] – displays help for a specific command or list of commands.
!logon <username> <password> - authenticates user with the ScrimBot.
!logout – logs the user out of the application, destroys session data for user.
Members Commands:
!listgames [<game id>] – lists supported games, if game id is provided, lists all
options for particular game.
!listscrims <game id> - lists the scrims for a particular game.
!addscrim <game id> <map> <size> <type> - adds scrim to database.
!acceptscrim <scrim id> - accepts a scrim, sends email to scrim owner.
!removescrim <scrim id> – removes scrim from database.
Admin Commands:
!shutdown – shuts down the bot.
!sendmsg <message> - broadcasts a message to all chat channels.
!advertise – advertise ScrimNet in all chat channels.
II
APPENDIX B: Relational Database Tables
TABLE 1 – Scrimnet Tables;
+--------------------+
| Tables_in_scrimnet |
+--------------------+
| clandata
|
| clans
|
| gamemaps
|
| games
|
| gamesize
|
| gametype
|
| scrims
|
| useractive
|
| userdata
|
| users
|
+--------------------+
TABLE 2 - users;
+-------+----------+------+-----+---------+----------------+
| Field | Type
| Null | Key | Default | Extra
|
+-------+----------+------+-----+---------+----------------+
| id
| int(11) |
| PRI | NULL
| auto_increment |
| user | char(25) | YES |
| NULL
|
|
| pass | char(25) | YES |
| NULL
|
|
+-------+----------+------+-----+---------+----------------+
TABLE 3 - userdata;
+-----------+----------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+-----------+----------+------+-----+---------+----------------+
| id
| int(11) |
| PRI | NULL
| auto_increment |
| firstname | char(25) | YES |
| NULL
|
|
| lastname | char(25) | YES |
| NULL
|
|
| clan
| char(25) | YES |
| NULL
|
|
| icq
| char(25) | YES |
| NULL
|
|
| msn
| char(50) | YES |
| NULL
|
|
| email
| char(50) | YES |
| NULL
|
|
| security | int(1)
| YES |
| NULL
|
|
+-----------+----------+------+-----+---------+----------------+
TABLE 4 - useractive;
+--------+---------+------+-----+---------+----------------+
| Field | Type
| Null | Key | Default | Extra
|
+--------+---------+------+-----+---------+----------------+
| id
| int(11) |
| PRI | NULL
| auto_increment |
| active | int(11) | YES |
| NULL
|
|
+--------+---------+------+-----+---------+----------------+
TABLE 5 - clans;
+-------+----------+------+-----+---------+----------------+
| Field | Type
| Null | Key | Default | Extra
|
+-------+----------+------+-----+---------+----------------+
| cid
| int(11) |
| PRI | NULL
| auto_increment |
| id
| int(11) | YES |
| NULL
|
|
| clan | char(25) | YES |
| NULL
|
|
+-------+----------+------+-----+---------+----------------+
III
TABLE 6 - clandata;
+-------+---------+------+-----+---------+-------+
| Field | Type
| Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| cid
| int(11) | YES |
| NULL
|
|
| id
| int(11) | YES |
| NULL
|
|
+-------+---------+------+-----+---------+-------+
TABLE 7 - games;
+-------+----------+------+-----+---------+----------------+
| Field | Type
| Null | Key | Default | Extra
|
+-------+----------+------+-----+---------+----------------+
| gid
| int(11) |
| PRI | NULL
| auto_increment |
| game | char(25) | YES |
| NULL
|
|
+-------+----------+------+-----+---------+----------------+
TABLE 8 - gamemaps;
+-------+----------+------+-----+---------+-------+
| Field | Type
| Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| gid
| int(11) | YES |
| NULL
|
|
| maps | char(25) | YES |
| NULL
|
|
+-------+----------+------+-----+---------+-------+
TABLE 9 - gamesize;
+-------+----------+------+-----+---------+-------+
| Field | Type
| Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| gid
| int(11) | YES |
| NULL
|
|
| size | char(25) | YES |
| NULL
|
|
+-------+----------+------+-----+---------+-------+
TABLE 10 - gametype;
+-------+----------+------+-----+---------+-------+
| Field | Type
| Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| gid
| int(11) | YES |
| NULL
|
|
| type | char(25) | YES |
| NULL
|
|
+-------+----------+------+-----+---------+-------+
TABLE 11 - scrims;
+----------+---------------+------+-----+---------+----------------+
| Field
| Type
| Null | Key | Default | Extra
|
+----------+---------------+------+-----+---------+----------------+
| sid
| int(11)
|
| PRI | NULL
| auto_increment |
| game
| char(25)
| YES |
| NULL
|
|
| map
| char(25)
| YES |
| NULL
|
|
| size
| char(25)
| YES |
| NULL
|
|
| type
| char(25)
| YES |
| NULL
|
|
| active
| int(1)
| YES |
| NULL
|
|
| timedate | timestamp(14) | YES |
| NULL
|
|
| id
| int(11)
| YES |
| NULL
|
|
+----------+---------------+------+-----+---------+----------------+
IV
APPENDIX C: WEB Application Processes
FIGURE 1 – ScrimNet main welcome screen.
FIGURE 2 – ScrimNet new user registration process.
V
FIGURE 3 - ScrimNet new user registration process. (continued)
FIGURE 4 – ScrimNet account activation email.
VI
FIGURE 5 – ScrimNet result of successful account activation.
FIGURE 6 – ScrimNet logon process.
VII
FIGURE 7 – ScrimNet successful logon.
FIGURE 8 – ScrimNet add scrim process.
VIII
FIGURE 9 – ScrimNet add scrim process. (continued)
FIGURE 10 – ScrimNet add scrim process. (continued)
IX
FIGURE 11 – ScrimNet list scrim process.
FIGURE 12 – ScrimNet list scrim process. (continued)
X
FIGURE 13 – ScrimNet accept scrim process.
FIGURE 14 – ScrimNet accept scrim email.
XI
FIGURE 15 – ScrimNet accept scrim completed.
FIGURE 16 – ScrimNet update user account information.
XII
FIGURE 17 – ScrimNet admin functionality.
FIGURE 18 – ScrimNet admin functionality. (continued)
XIII
FIGURE 19 – ScrimNet clan leader functionality.
FIGURE 20 – ScrimNet clan leader functionality. (continued)
XIV
APPENDIX D: ScrimBot Test Output
Start of [SN]Scr1mb0t buffer: Mon Apr 05 18:19:33 2004
Session Ident: [SN]Scr1mb0t (guest@ghazghkull)
<tec9> !help
<[SN]Scr1mb0t> [..::Scrimnet Help::..]
<[SN]Scr1mb0t> Scrimnet Commands available to you are:
<[SN]Scr1mb0t> General Commands: !help, !logon, !logout
<[SN]Scr1mb0t> If you do not have a Scrimnet account, please visit
http://nazdreg.tec9.ca:8080/scrimnet/main to sign up!
<[SN]Scr1mb0t> Help Usage: !help <command>, ie. !help addscrim
<tec9> !logon xeno.tec9 xenoclan
<[SN]Scr1mb0t> Logon successful xeno.tec9!
<[SN]Scr1mb0t> Access Lvl: Scrimnet Admin
<[SN]Scr1mb0t> [..::Scrimnet Help::..]
<[SN]Scr1mb0t> Scrimnet Commands available to you are:
<[SN]Scr1mb0t> General Commands: !help, !logon, !logout
<[SN]Scr1mb0t> Members Commands: !listgames, !listscrims, !addscrim,
!acceptscrim, !removescrim
<[SN]Scr1mb0t>
Admin Commands: !shutdown, !sendmsg, !advertise
<[SN]Scr1mb0t> Help Usage: !help <command>, ie. !help addscrim
<tec9> !listgames
<[SN]Scr1mb0t> [..::Scrimnet Game Listings::..]
<[SN]Scr1mb0t> [Game ID] [Game Name]
<[SN]Scr1mb0t>
#4
BF1942
<[SN]Scr1mb0t>
#3
SoF2
<[SN]Scr1mb0t>
#2
ut2k3
<[SN]Scr1mb0t>
#1
Quake3
<[SN]Scr1mb0t> To list all valid parameters for a particular game, user
!listgames <game id>
<[SN]Scr1mb0t> To list the scrims of a particular game use !listscrims <game
id>, ie. !listscrims 1
<tec9> !listgames 1
<[SN]Scr1mb0t> [..::Scrimnet Game Parameters::..]
<[SN]Scr1mb0t> Game: Quake3
<[SN]Scr1mb0t> Maps: [q3dm1] [q3dm2] [q3dm3] [q3dm4] [q3dm5] [q3dm6]
<[SN]Scr1mb0t> Sizes: [1v1] [5v5] [FFA] [2v2]
<[SN]Scr1mb0t> Types: [CCTF] [CTF] [DM] [RA] [Custom]
<[SN]Scr1mb0t> These are the valid parameters for adding a scrim, for more
information type !help addscrim
<tec9> !listscrims
<[SN]Scr1mb0t> Invalid parameters, Usage: !listscrims <game id>
<tec9> !listscrims 1
<[SN]Scr1mb0t> [..::Scrimnet Scrim Listings::..]
<[SN]Scr1mb0t> [#2] Quake3 [Map:q3dm3] [Size:FFA] [Game Type:RA]
<[SN]Scr1mb0t> [#12] Quake3 [Map:q3dm1] [Size:5v5] [Game Type:CCTF]
<[SN]Scr1mb0t> [#13] Quake3 [Map:q3dm4] [Size:1v1] [Game Type:CCTF]
<[SN]Scr1mb0t> To Accept a scrim use !acceptscrim, Usage: !acceptscrim <scrim
id>, ie. !acceptscrim 1
<tec9> !addscrim
<[SN]Scr1mb0t> Invalid parameters, Usage: !addscrim <game id> <map> <size>
<type>
<tec9> !addscrim 1 q3dm1 1v1 DM
<[SN]Scr1mb0t> Scrim has been successfully added, Thank You for using
Scrimnet!
<tec9> !listscrims 1
XV
<[SN]Scr1mb0t> [..::Scrimnet Scrim Listings::..]
<[SN]Scr1mb0t> [#2] Quake3 [Map:q3dm3] [Size:FFA] [Game Type:RA]
<[SN]Scr1mb0t> [#12] Quake3 [Map:q3dm1] [Size:5v5] [Game Type:CCTF]
<[SN]Scr1mb0t> [#13] Quake3 [Map:q3dm4] [Size:1v1] [Game Type:CCTF]
<[SN]Scr1mb0t> [#14] Quake3 [Map:q3dm1] [Size:1v1] [Game Type:DM]
<[SN]Scr1mb0t> To Accept a scrim use !acceptscrim, Usage: !acceptscrim <scrim
id>, ie. !acceptscrim 1
<tec9> !removescrim 14
<[SN]Scr1mb0t> Scrim #14 has been removed successfully.
<tec9> !acceptscrim 2
<[SN]Scr1mb0t> Processing request, this may take a few moments...
<[SN]Scr1mb0t> Accept Request has been sent, please wait for acknowledgement
via email. Thank you for using Scrimnet
End of [SN]Scr1mb0t buffer
Mon Apr 05 18:19:33 2004
Start of [SN]Scr1mb0t buffer: Mon Apr 05 18:27:44 2004
Session Ident: [SN]Scr1mb0t (guest@ghazghkull)
<tec9> !help
<[SN]Scr1mb0t> [..::Scrimnet Help::..]
<[SN]Scr1mb0t> Scrimnet Commands available to you are:
<[SN]Scr1mb0t> General Commands: !help, !logon, !logout
<[SN]Scr1mb0t> If you do not have a Scrimnet account, please visit
http://nazdreg.tec9.ca:8080/scrimnet/main to sign up!
<[SN]Scr1mb0t> Help Usage: !help <command>, ie. !help addscrim
<tec9> !logon xeno.tec9 xenoclan
<[SN]Scr1mb0t> Logon successful xeno.tec9!
<[SN]Scr1mb0t> Access Lvl: Scrimnet Admin
<[SN]Scr1mb0t> [..::Scrimnet Help::..]
<[SN]Scr1mb0t> Scrimnet Commands available to you are:
<[SN]Scr1mb0t> General Commands: !help, !logon, !logout
<[SN]Scr1mb0t> Members Commands: !listgames, !listscrims, !addscrim,
!acceptscrim, !removescrim
<[SN]Scr1mb0t>
Admin Commands: !shutdown, !sendmsg, !advertise
<[SN]Scr1mb0t> Help Usage: !help <command>, ie. !help addscrim
<tec9> !listgames
<[SN]Scr1mb0t> [..::Scrimnet Game Listings::..]
<[SN]Scr1mb0t> [Game ID] [Game Name]
<[SN]Scr1mb0t>
#4
BF1942
<[SN]Scr1mb0t>
#3
SoF2
<[SN]Scr1mb0t>
#2
ut2k3
<[SN]Scr1mb0t>
#1
Quake3
<[SN]Scr1mb0t> To list all valid parameters for a particular game, user
!listgames <game id>
<[SN]Scr1mb0t> To list the scrims of a particular game use !listscrims <game
id>, ie. !listscrims 1
<tec9> !listgames 1
<[SN]Scr1mb0t> [..::Scrimnet Game Parameters::..]
<[SN]Scr1mb0t> Game: Quake3
<[SN]Scr1mb0t> Maps: [q3dm1] [q3dm2] [q3dm3] [q3dm4] [q3dm5] [q3dm6]
<[SN]Scr1mb0t> Sizes: [1v1] [5v5] [FFA] [2v2]
<[SN]Scr1mb0t> Types: [CCTF] [CTF] [DM] [RA] [Custom]
<[SN]Scr1mb0t> These are the valid parameters for adding a scrim, for more
information type !help addscrim
<tec9> !listscrims
<[SN]Scr1mb0t> Invalid parameters, Usage: !listscrims <game id>
<tec9> !listscrims 1
<[SN]Scr1mb0t> [..::Scrimnet Scrim Listings::..]
<[SN]Scr1mb0t> [#2] Quake3 [Map:q3dm3] [Size:FFA] [Game Type:RA]
<[SN]Scr1mb0t> [#12] Quake3 [Map:q3dm1] [Size:5v5] [Game Type:CCTF]
<[SN]Scr1mb0t> [#13] Quake3 [Map:q3dm4] [Size:1v1] [Game Type:CCTF]
<[SN]Scr1mb0t> To Accept a scrim use !acceptscrim, Usage: !acceptscrim <scrim
id>, ie. !acceptscrim 1
<tec9> !addscrim
XVI
<[SN]Scr1mb0t> Invalid parameters, Usage: !addscrim <game id> <map> <size>
<type>
<tec9> !addscrim 1 q3dm1 1v1 DM
<[SN]Scr1mb0t> Scrim has been successfully added, Thank You for using
Scrimnet!
<tec9> !listscrims 1
<[SN]Scr1mb0t> [..::Scrimnet Scrim Listings::..]
<[SN]Scr1mb0t> [#2] Quake3 [Map:q3dm3] [Size:FFA] [Game Type:RA]
<[SN]Scr1mb0t> [#12] Quake3 [Map:q3dm1] [Size:5v5] [Game Type:CCTF]
<[SN]Scr1mb0t> [#13] Quake3 [Map:q3dm4] [Size:1v1] [Game Type:CCTF]
<[SN]Scr1mb0t> [#14] Quake3 [Map:q3dm1] [Size:1v1] [Game Type:DM]
<[SN]Scr1mb0t> To Accept a scrim use !acceptscrim, Usage: !acceptscrim <scrim
id>, ie. !acceptscrim 1
<tec9> !removescrim 14
<[SN]Scr1mb0t> Scrim #14 has been removed successfully.
<tec9> !acceptscrim 2
<[SN]Scr1mb0t> Processing request, this may take a few moments...
<[SN]Scr1mb0t> Accept Request has been sent, please wait for acknowledgement
via email. Thank you for using Scrimnet
<tec9> !sendmsg Welcome to scrimnet!
<tec9> !advertise
<tec9> !shutdown
End of [SN]Scr1mb0t buffer
Mon Apr 05 18:27:44 2004
Start of #scrimnet buffer: Mon Apr 05 18:27:51 2004
* Now talking in #scrimnet
* Retrieving #scrimnet info...
<tec9> !help
<[SN]Scr1mb0t> *NEW SCRIM ADDED* {Quake3 -[Map:q3dm1] - [Size:1v1] [Type:DM] } Added by: tec9
<[SN]Scr1mb0t> Welcome to scrimnet!
<[SN]Scr1mb0t> [..::Scrimnet v1.0:Type !help to learn more::..]
* [SN]Scr1mb0t has quit IRC (shutdown requested by admin_)
End of #scrimnet buffer
Mon Apr 05 18:27:51 2004
XVII
APPENDIX E: LiveBot Test Output
Start of #scrimnet buffer: Tue Apr 06 03:56:40 2004
* [SN]L1veb0t has joined #scrimnet
<[SN]L1veb0t> [..::ScrimNet::LiveBot **NOW BROADCAST MATCH** ::..]
<[SN]L1veb0t> themrok666 has taken the Blue Flag!
<[SN]L1veb0t> themrok666 has captured the Blue Flag!
<[SN]L1veb0t> D!ce[test] was shot by .'_Luci__'.=AM7's AK74
<[SN]L1veb0t> Trillian{KMF}: u boyz should go get gna or aimbot. L8r guyz
<[SN]L1veb0t> D!ce[test]: bah 2
<[SN]L1veb0t> sourw@l was shot by mobes's AK74
<[SN]L1veb0t> mobes has dropped the Red Flag!
<[SN]L1veb0t> mobes was shot by DogMan's AK74 [ HeaDShoT ]
<[SN]L1veb0t> sourw@l disconnected
<[SN]L1veb0t> D!ce[test]: i got gna
<[SN]L1veb0t> D!ce[test]: lmfao
<[SN]L1veb0t> Trillian{KMF}: i know
<[SN]L1veb0t> matai-vos irmaos was shot by Trillian{KMF}'s AK74
<[SN]L1veb0t> DogMan was pumped full of lead by [onex]diumraid's M590
<[SN]L1veb0t> mobes was shot by D!ce[test]'s AK74 [ HeaDShoT ]
<[SN]L1veb0t> .'_Luci__'.=AM7 was shot by D!ce[test]'s AK74 [ HeaDShoT ]
<[SN]L1veb0t> [onex]diumraid was shot by matai-vos irmaos's AK74
<[SN]L1veb0t> Trillian{KMF}: i am talkin to the other people on ur team
<[SN]L1veb0t> D!ce[test]: k
<[SN]L1veb0t> themrok666 was shot by Trillian{KMF}'s AK74
<[SN]L1veb0t> mobes was shot by D!ce[test]'s AK74 [ HeaDShoT ]
<[SN]L1veb0t> The Red Flag has returned!
<[SN]L1veb0t> Trillian{KMF} was shot by D!ce[test]'s AK74
<[SN]L1veb0t> [onex]diumraid was shot by D!ce[test]'s AK74 [ HeaDShoT ]
<[SN]L1veb0t> DogMan was shot by .'_Luci__'.=AM7's AK74
<[SN]L1veb0t> matai-vos irmaos was shot by Trillian{KMF}'s AK74 [ HeaDShoT ]
<[SN]L1veb0t> .'_Luci__'.=AM7 was shot by D!ce[test]'s AK74
<[SN]L1veb0t> D!ce[test] was shot by Trillian{KMF}'s AK74
<[SN]L1veb0t> D!ce[test]: lolz
<[SN]L1veb0t> D!ce[test] disconnected
<[SN]L1veb0t> DogMan was shot by Trillian{KMF}'s AK74
<[SN]L1veb0t> mobes was shot by matai-vos irmaos's AK74 [ HeaDShoT ]
<[SN]L1veb0t> Trillian{KMF} was shot by themrok666's AK74
<[SN]L1veb0t> [onex]diumraid has taken the Red Flag!
<[SN]L1veb0t> themrok666 was shot by .'_Luci__'.=AM7's AK74
<[SN]L1veb0t> DogMan was shot by .'_Luci__'.=AM7's AK74
<[SN]L1veb0t> matai-vos irmaos has taken the Blue Flag!
<[SN]L1veb0t> matai-vos irmaos has dropped the Blue Flag!
<[SN]L1veb0t> matai-vos irmaos was shot by Trillian{KMF}'s AK74
<[SN]L1veb0t> DogMan was shot by .'_Luci__'.=AM7's AK74
<[SN]L1veb0t> TeaCup is connecting...
<[SN]L1veb0t> TeaCup joined the red team.
<[SN]L1veb0t> themrok666 was shot by .'_Luci__'.=AM7's AK74
<[SN]L1veb0t> TeaCup disconnected
<[SN]L1veb0t> [onex]diumraid has captured the Red Flag!
<[SN]L1veb0t> Trillian{KMF} was shot by matai-vos irmaos's AK74
<[SN]L1veb0t> [onex]diumraid was shot by DogMan's AK74
<[SN]L1veb0t> matai-vos irmaos was shot by Trillian{KMF}'s AK74 [ HeaDShoT ]
<[SN]L1veb0t> themrok666 was shot by .'_Luci__'.=AM7's AK74
<[SN]L1veb0t> Minimum Payne is connecting...
<[SN]L1veb0t> Minimum Payne joined the red team.
<[SN]L1veb0t> DogMan has taken the Blue Flag!
<[SN]L1veb0t> DogMan has dropped the Blue Flag!
<[SN]L1veb0t> DogMan was shot by Trillian{KMF}'s AK74 [ HeaDShoT ]
<[SN]L1veb0t> mobes has taken the Red Flag!
XVIII
<[SN]L1veb0t> matai-vos irmaos was shot by .'_Luci__'.=AM7's AK74
<[SN]L1veb0t> DogMan was shot by Trillian{KMF}'s AK74
<[SN]L1veb0t> Minimum Payne disconnected
<[SN]L1veb0t> themrok666 has taken the Blue Flag!
<[SN]L1veb0t> mobes has dropped the Red Flag!
<[SN]L1veb0t> mobes was shot by themrok666's AK74
<[SN]L1veb0t> DogMan was shot by Trillian{KMF}'s AK74 [ HeaDShoT ]
<[SN]L1veb0t> themrok666 has dropped the Blue Flag!
<[SN]L1veb0t> themrok666 was shot by Trillian{KMF}'s AK74
<[SN]L1veb0t> Trillian{KMF} was shot by matai-vos irmaos's AK74
<[SN]L1veb0t> matai-vos irmaos has taken the Blue Flag!
<[SN]L1veb0t> matai-vos irmaos has dropped the Blue Flag!
<[SN]L1veb0t> matai-vos irmaos was shot by .'_Luci__'.=AM7's AK74
<[SN]L1veb0t> themrok666 was shot by .'_Luci__'.=AM7's AK74 [ HeaDShoT ]
<[SN]L1veb0t> mobes has taken the Red Flag!
<[SN]L1veb0t> themrok666 was shot by .'_Luci__'.=AM7's AK74
<[SN]L1veb0t> matai-vos irmaos was shot by Trillian{KMF}'s AK74
<[SN]L1veb0t> Trillian{KMF} was shot by DogMan's AK74 [ HeaDShoT ]
<[SN]L1veb0t> DogMan was shot by .'_Luci__'.=AM7's AK74
<[SN]L1veb0t> mobes has captured the Red Flag!
<[SN]L1veb0t> .'_Luci__'.=AM= has taken the Red Flag!
<[SN]L1veb0t> matai-vos irmaos has taken the Blue Flag!
<[SN]L1veb0t> themrok666 was shot by .'_Luci__'.=AM7's AK74
<[SN]L1veb0t> matai-vos irmaos has dropped the Blue Flag!
<[SN]L1veb0t> matai-vos irmaos was shot by .'_Luci__'.=AM7's AK74
<[SN]L1veb0t> Trillian{KMF} was shot by DogMan's AK74 [ HeaDShoT ]
<[SN]L1veb0t> themrok666 was shot by .'_Luci__'.=AM7's AK74
<[SN]L1veb0t> .'_Luci__'.=AM= has dropped the Red Flag!
<[SN]L1veb0t> .'_Luci__'.=AM7 was shot by DogMan's AK74
<[SN]L1veb0t> matai-vos irmaos has taken the Blue Flag!
<[SN]L1veb0t> matai-vos irmaos has captured the Blue Flag!
<[SN]L1veb0t> mobes was shot by DogMan's AK74
<[SN]L1veb0t> Trillian{KMF} was shot by DogMan's AK74 [ HeaDShoT ]
<[SN]L1veb0t> themrok666 was shot by .'_Luci__'.=AM7's AK74
<[SN]L1veb0t> matai-vos irmaos was shot by Trillian{KMF}'s AK74
<[SN]L1veb0t> DogMan was shot by Trillian{KMF}'s AK74
<[SN]L1veb0t> themrok666 disconnected
<[SN]L1veb0t> The Red Flag has returned!
<[SN]L1veb0t> .'_Luci__'.=AM= has taken the Red Flag!
<[SN]L1veb0t> DogMan was shot by Trillian{KMF}'s AK74
<[SN]L1veb0t> mobes was shot by matai-vos irmaos's AK74 [ HeaDShoT ]
<[SN]L1veb0t> DogMan disconnected
<[SN]L1veb0t> matai-vos irmaos was shot by Trillian{KMF}'s AK74
<[SN]L1veb0t> .'_Luci__'.=AM= has captured the Red Flag!
<[SN]L1veb0t> mobes was shot by matai-vos irmaos's AK74 [ HeaDShoT ]
<[SN]L1veb0t> Trillian{KMF}: SOMEONE GO RED
<[SN]L1veb0t> [..::ScrimNet::LiveBot **BROADCAST FINISHED** ::..]
* [SN]L1veb0t has quit IRC (shutdown requested by admin_)
End of #scrimnet buffer
Tue Apr 06 03:56:40 2004
Start of [SN]L1veb0t buffer: Tue Apr 06 03:56:49 2004
Session Ident: [SN]L1veb0t (guest@ghazghkull)
<tec9> !logon xeno.tec9 xenoclan
<[SN]L1veb0t> Logon successful xeno.tec9!
<[SN]L1veb0t> Access Lvl: Scrimnet Admin
<tec9> !start
<tec9> !stop
<tec9> !shutdown
End of [SN]L1veb0t buffer
Tue Apr 06 03:56:49 2004
XIX
APPENDIX F: Contents of CD
Folder Structure:
/src/web – source code for web application.
/src/scrim – source code for scrimbot irc application.
/src/live – source code for livebot irc application.
/build – compiled copies of web/scrimbot/livebot application.
/files – development tools used for this project.
/screenshots – screenshots from the web application.
final-report.doc – this document.
build.xml – development build configuration.
XX