You are on page 1of 12

<Bot Application for the game Magic The Gathering Online.

>
Version <0.06>

Internal Use Only

Page 1 of 12

Revision History
Date 04/11/2013 04/12/2013 0414/2013 04/15/2013 04/16/2013 04/19/2012 Version 0.01 0.02 0.03 0.04 0.05 0.06 Description First cut draft for the project- based on initial discussion with Eric Post discussion with Eric on server specific requirements Post discussion and review with Eric on overall SRS Minor changes as suggested by Eric and also addition of mockups(reviewed with Eric) Further changes suggested by Eric on mockups and processes which do not have UI Removing calculations for Modified pricelist from this document and moving those to process functionality document, based on inputs from Eric. Swati Swati Swati Swati Swati Swati Author

Approvals
The signatures below indicate the acceptance of this document.
Approval Role Name Approval Mail Header
(Paste approval emails below)

Internal Use Only

Page 2 of 12

Table of Contents
1 System Overview..........................................................................................................................4 2 System Description.......................................................................................................................4 2.1 System Boundaries.................................................................................................................5 3 Scope.............................................................................................................................................5 4 Assumptions..................................................................................................................................5 5 Definitions, Acronyms and Abbreviations...................................................................................5 6 Risks ............................................................................................................................................6 7 Functional Requirements..............................................................................................................6 7.1.1 .......................................................................................................................................6 7.1.2 ........................................................................................................................................8 7.1.3 ........................................................................................................................................9 7.1.4 ......................................................................................................................................10 8 Non-Functional Requirements....................................................................................................11 8.1 Usability Requirements........................................................................................................11 8.2 Performance Requirements..................................................................................................11 9 References...................................................................................................................................12 10 Annexure...................................................................................................................................12 10.1 UI Mock-ups Wire Frames................................................................................................12

Internal Use Only

Page 3 of 12

1 System Overview
The project is to create a bot (robot-an automated application) that will automate functions for the game Magic The Gathering Online. Currently the game user downloads game client and via this application user connects to game server to play the game online. User opens up a chat window to interact with other users and begin the game. The game as such does not expose its APIs or code. The automated bot application will have following key functions although detailed functionality is listed in subsequent sections of this SRS.
-

Open chat windows Respond to game users chat with preset messages Control the inventory of the account Initiate trades (buy/sell/trade/rent) Maintain pricelist Maintaining User credits Maintaining transaction `details Account leveling .

2 System Description
Admin Interface Web user interface for buying paypal credits Bot server Bot settings on SQL Server

Bot Client1 (user1)

Bot Client2 (user2)

Bot Client 3 (user3)

Bot Client 4 (user4)

Bot Client n (userN)

Game Client (for game user interaction with bot client)

Game server

Internal Use Only

Page 4 of 12

2.1 System Boundaries


-

3 Scope
-

4 Assumptions 5 Definitions, Acronyms and Abbreviations


Term Trade Rent User or game user Definition buying and selling together Rent is essentially flat fee per month unlimited usage of cards based on deposit, User is anybody that controls the bot using the predefined commands. User doesnt have direct access to bot. They interact with bot through their game client words like buy, sell, ttrade, rent, help, etc are trigger words. these are entered by the user in the ingame chat to make the bot do specific actions these are words in database reply text like [user] [balance] [cardprice] [cardname] that will be replaced with the value from the database, as related to the user that the message is going to be sent to. For e.g. when a user types BALANCE the reply in db will be listed like Hi [user], Your current balance is [balance]. he would see Hi John, Your current balance is $12.51.

trigger

Shortcode

Internal Use Only

Page 5 of 12

6 Risks
None specifically stated at this stage

7 Functional Requirements
7.1.1
Requirement Description Bot Server will have following capabilities: Ability to configure/set global price adjustment values o o global BUY value adjustment global SELL value adjustment

Ability to maintain information related to Pricelists for the cards o Current pricelist ( Unique ID, number, Card name , Buy price and Sell price). It will be updated with results from third party website, every 15 minutes. Expect a large number around 7K new records getting inserted every 15 minutes into Current Pricelist. Price modifiers (Unique ID, Card name, Buy price adjustment, Sell price adjustment) Modified pricelist (Unique ID, Card name, Buy adjustment, Sell Adjustment) (derived from Current Pricelist and Price Modifiers based on two formulae given below). This pricelist will be inserted, every 15 minutes, with adjustments accordingly to the formulae given in the process functionality document (a supporting doc to this SRS document). Pricelist history Records from Modified pricelist will be moved into this Pricelist history while overwriting existing records and adding datestamp to it.

o o

Internal Use Only

Page 6 of 12

Ability to maintain following user information: - User name(captured by bot client when game user opens a chat window, also called ingame chat) - Password (for future use, not needed as of now) - Email id - Credits (maintained and updated through paypal purchase and buy/sell/trade transactions) - Number of warnings - Number of times they have connected to bot - Blacklisted flag Note: Credits and tickets are for now 1:`1. In future we may need to change cash to credit ratio. Credits may not always translate to equivalent dollars, on game applications credits are called as tickets

Ability for Bot Admin to able to change the availability of the cards. Admin will be provided with the inventory listing for each bot. Quantity at hand and quantity available for trade for each card on each bot client. These quantities may be different. For each card, number of copies of actual cards, and number of copies available for sale. Ability to record all the transaction details for each user transaction o Detail such as -user name -card name -type of transaction (buy/sell/trade/rent) -transaction amount -date of the transaction Note: Record as much statistical data as possible, for each transaction, for future analysis and reporting. Note: A separate table for rental expiration and deposit, return (yes/no) will be required Note: For a rent transaction, for rent buy and sell price needs to be logged when card is checked out, and when card is returned/kept we add to transaction the buy and sell price

o o o

Ability to balance accounts when there is excess and deficiency o Each bot will have its own user account and each one will have diff inventory levels for each card. For e.g. Card a has quantity of 100 bot 1, quantity of 0 bot 2, account balancing will mean sending 50 from bot 1 to bot 2 so that both have balanced inventory levels. Ability to automatically flag a user from bot client as Blacklist user. The blacklisting will be based on following criteria o If ingame chat window is open longer than 3 min, post "kick warning text from db" to user in chat, delay 15 seconds, if still no activity from user force close chat window, increment users warning level +1, if warning level exceeds 3, then block user in database, as well as perform ingame block user function. If user does more than 30 add or remove card actions in a trade ,

Internal Use Only

Page 7 of 12

post "add and remove excess warning text from db" to user in chat, force close chat window, increment users warning level +1, if warning level exceeds 3, then blacklist the user in database, as well as perform ingame block(blacklist) user function. Assumption Rule /

Source Dependencies Acceptance Criteria Change History Priority / Scope

Reference Doc

High / A

7.1.2
Requirement Description Bot Client will have following features: Ability to respond with Preset/automated messages for each bot client, as user types in certain commands (listed below): o o o o o o o When game user starts chat, bot server will send specific welcome message. When game user writes word buy then trade window gets opened up and bot server will send an automated reply <?> When game user types word sell, then trade window gets opened up and bot server will send an automated reply <?> When game user types word trade, then trade window gets opened up and bot server will send an automated reply <?> When game user types word rent, then trade window gets opened up and bot server will send an automated reply <?> When game user types word help, bot server will send an automated reply <?> When game user types <balance> then bot server will send automated reply as Hi, username. Your balance is $ xx

Ability to pause and unpause the bot Ability to login to game client on startup or lost connection Ability to monitor game client offline and reestablish connection

Internal Use Only

Page 8 of 12

Assumption Rule

Source Dependencies Acceptance Criteria Change History Priority / Scope

Reference Doc

High / A

7.1.3
Requirement Description User web interface User should be able to buy paypal credits through this interface

Assumption Rule

Source Dependencies Acceptance Criteria Change History Priority / Scope

Reference Doc

High / A

Internal Use Only

Page 9 of 12

7.1.4
Requirement Description Admin interface will have Ability to remotely control each bot. - Manual account leveling - Check what bots are online and whether they are running properly or are facing any problems - Account balancing for each bot by initiating a transaction in a open up a new trade Ability to provide bot client authentication - bot client will attempt to connect to server until admin approves it - The connectivity between bot client and server will be in encrypted form. Ability to check inventory and update (one colulmn In Stock and other Available) - Listing of name of the card and number of those cards, for each bot client Ability to view the pricing and update the price list - For each card, it will display the price(?s) for which each card is selling for Ability to flag manually flag a user as blacklisted

Assumption Rule /

Source Dependencies Acceptance Criteria Change History Priority / Scope

Reference Doc

High / A

Internal Use Only

Page 10 of 12

8 Non-Functional Requirements
8.1 Usability Requirements
The following mockups are only to outline the flow and help with visualizing the user interface oriented features. Detailed design stage would reveal further details and/or changes to them.

As provided in the mockups/wireframes zip file

8.2 Performance Requirements


It is expected that technically unlimited bot clients should be supported. In reality for the first go-live in general there will be 10 bot clients running at the same time.

Internal Use Only

Page 11 of 12

9 References
The direct link to the install exe http://mtgoclientdepot.onlinegaming.wizards.com/setup.exe Alternatively you can get the "WIDE BETA VERSION" (not the current version) at http://www.wizards.com/Magic/Digital/MagicOnline.aspx?x=mtg/digital/magiconline/download

10 Annexure
10.1 UI Mock-ups Wire Frames
-

Internal Use Only

Page 12 of 12

You might also like