Due to life's many pressures and the shock of home electricity bills, I am no longer maintaining this program. Feel free to have fun with it and its SourceForge code.
I've been working on a magic program from some time, and use it frequently with friends. While its by no means complete, I believe its ready enough to be of use to others. The Quickstart Guide below will help a lot in getting into a game and seeing how it works.
If you have some time and want to play magic online without downloading or installing anything, try it out.
It is open source, so if you want to check out the code its available at http://sourceforge.net/projects/tccg/
Click "Run", or whatever is required to assure your computer I'm not an evil genius.
Click "Connect".
Click "Instant Game."
Drag card names from the list box representing your hand to central empty playing field to play them, move them to graveyard or removed from game the same way.
When you're ready to play something else, hit "Exit Game" in the upper right.
Features
75+ different decks myself and my friends have already entered
Easily enter your own decks or copy-paste in Apprentice format decks
Goldfish single-player, or play with as many friends as can fit their cards onscreen at once
Full database of all Magic cards ever printed
Chat with other folks who are on at the same time
General Program Info
Text Collectible Card Game
An Internet-based system for playing collectible card games
created by David Moore
1. Purpose
The Text Collectible Card Game (TCCG) is intended as a free tool for people to play against their friends or test decks solo. It seeks to fill a hole in the set of CCG-related computer programs: browser-based games that play without installing anything. It supports games with as many players as you wish. Its name is a holdover from its earlier text-based days.
2. History
TCCG originated as a side project to play Magic against friends and goldfish decks over telnet.
Indeed, up to version 1.0, it was text-based. After six months or so, however, I wanted to make it more accessible, and so I wrote a Java client for it, moving it away from its text-based origins and into the Graphical World.
But, if you feel the urge to connect the good old fashioned way, open a telnet client and connect to port 3490 of the magic server. See Appendix A for the game protocol. For a better-looking text experience, you'll have to go back to version 1.0.
3. Quickstart Guide
a. Go to http://tccg.servegame.com/GUITextClient/GUITextClient.html
b. Click "Run", or whatever is required to assure your computer I'm not an evil genius.
c. Click "Connect".
d. Click "Instant Game"
g. Drag cards from your hand to the field to play them, move them to graveyard or removed from game the same way.
h. When you're ready to play something else, hit "Exit Game" in the upper right.
4. FAQ / Troubleshooting
Q: Why does my browser lock up when I try to go to load the game?
A: It appears that some networks block the ports TCCG uses, which can result in your browser locking. Try again from a less restricted network.
Q: My computer says I need Java installed, what do I do?
A: Install Java! Go to www.java.com and install it, it is required for many Internet sites. Linux users, you need to be sure you have the browser plugin installed, the base Java itself is not enough.
Q: I can't connect. It says "No server running?".
A: I have probably taken down the server to update it or fix something. If that's the case, it should be up soon. Alternately, the server address may be blocked on your network.
Q: When I play, I regularly get an error of some kind. Cards jump, disappear, or move in funny ways.
A: You may have discovered a bug or problem with the communication. I might be able to fix it! Please turn on "Log All Messages" and continue to make it glitch. Then send me the log text on the mtgsalvation forums via a PM. My name is Aranthar.
5. Deck Editing
TCCG has a built in deck editor which you can use to create, store, and hone the decks you play with. It understands Apprentice format for decks, so you can copy-paste your favorite decks right in.
Whenever you select a deck from the list on the left, it is loaded into view on the right.
At the same time, the deck is parsed by the game and all cards you'd actually play are displayed in the center.
If you click on a card in that center list, you'll see its card text pop up in the card single view box at the bottom.
You can modify the list of cards on the right like a text editor: adjust the count, add and remove cards, or even add comments or a sideboard by prefacing a line with "//" or "SB:". After you've modified a deck, be sure to click the "Save Deck" button to save your changes.
If you're made an error in your deck, like naming a card incorrectly or not giving a number for a card, an error will show up in the log at the bottom, and the deck won't parse (you won't see the middle list load). Correct any errors and save the deck again.
You can always create a new deck, or save the currently loaded deck with a different name. Use the "New Deck" button or change the name shown just above the "Save Changes" button.
Finally, this set of decks is not specific to you: everyone who uses the server shares the same deck pool, so please don't overwrite other people's decks. If you want to fix or update a deck you didn't make, save it with a new name.
Every few weeks I will probably wipe unused decks from the server to keep too many from piling up.
6. Advanced Commands
When you are playing games, most common commands are done by simply clicking or dragging cards around.
Right-click to add counters or unmorph creatures, double-click to tap or untap.
Draw, Pass, Untap (all), and Shuffling are easily done with the buttons, but sometimes you want to do more.
If a card calls on you to modify your library somehow, hit the "Show Library" button. You can drag cards straight from it to play or any of the other zones. Hit the button again to hide the library, and be sure to Shuffle if its called for.
If a card needs to be put on the top or bottom of your library without you seeing the library's order, drag and drop the card appropriately onto the "Library Top / Bottom" text next to the Untap bottom, and it will go to whichever location you released it on.
If you want to look up a specific card's text, you can just type its name in the card view window, and once your text matches a card name, it rules text will appear. Capitalization matters here.
There is access to a large variety of powerful commands that you must do via the command prompt. To use these commands, type them in the chat line.
Each is prefaced with a "/" so the game knows you aren't trying to send a message to other players.
/mill <X>
- Puts X cards from your library straight into your graveyard.
/morph <X>
- Puts card X from your hand into play face-down. Counts from the top of your hand. Use this if you need to remove something from the game face-down as well.
/draw <X>
- Draws X cards.
/reveal <X>
- Puts the top X cards of your library into play in the upper-left corner of the field. The first card is leftmost. Useful for clashing or Cascading.
/scry <X>
- Opens up your library, showing the first X cards of it. When you're done, use
"/scry 0" to hide the library.
/mulligan
- Shuffles your hand into your library, and then draws a new hand with 1 less card.
/create <Card Name>
- Creates a temporary card in-play with the given name. Use this for tokens.
/reset_game
- Shuffles all permanents you own in all zones into your library, and draws you 7 cards. Good for resetting goldfish games.
There are other various commands which were used when the program was text-only, and some commands that are more easily done by using the user interface. You can find them in the player class file in the source if you are really interested. There are no commands to let you cheat, and if you do look at and re-arrange your library, your opponent will be able to tell you are doing it.
Finally, there is a small macro interface to automate often-used text commands. Click the "Macros" button and you'll see three fields, each with a button beside it. Clicking the matching button will send whatever text is in the field, so when you play your saporling hordes, you can just enter "/create 1/1 Green Saporling" in macro 1, and spam it every upkeep as your Mycoloth dominates the board.
If you would like to help develop, or have any questions, complaints, advice, bug notes, or feature requests, please PM me on the mtgsalvation forums, username Aranthar.
If you are having problems with the game, try restarting your browser in its entirety, and please turn on "Log All Messages" and include the entire text of the message log with your report.
If you would like to run your own magic server using TCCG, please include this document linked from the page that serves it, and let me know so I can follow its progress and keep a link around.
If you want to use TCCG for another card-game besides magic, just update the Collection.txt file on the server with different card data.
8. Features in planning
Some sort of user authentication.
Better card color usage.
9. Known Issues
Sometimes tokens or cards placed on the playing field by the game engine disappear when you first move them. It appears they are going to the bottom of your library (and if they are tokens, ceasing to exist as a result). Its intermittent, but I plan to fix it soon.
10. Special Thanks
Matt Tardiff without whom I never would have been able to parse 15000 cards. Amazing bash skills.
Matt Meyer and Evan Hartig who play-tested many versions with me. And such wierd deck ideas...
Clint Olson who provided testing and advice on user interface. The only player I know more Johnny then me.
My lovely wife who puts up with my Magic silliness. Also occasionally* kicks my butt with her Spike decks.
Appendix A: TCCG Protocol
If you care what style of communication the client and server have, here it is, defined.
Legal headers for messages from the server
* GENERAL_ERROR_MESSAGE
- An error message will follow this
* GENERAL_SUCCESS_MESSAGE
- A success message will follow this
* CLIENT_GAME_STATUS
- Game state will follow, a number 0-4 corresponding to: Unamed, Awaiting Deck, Awaiting Game Selection, Awaiting Game Start, or In Game
* SERVER_DECK_LIST
- A list of all the decks
* SERVER_PLAYER_LIST
- List of all players and their states <player name>:<state> one per line
* SERVER_GAME_LIST
- List of all the games running
* PRIVATE_CHAT_MESSAGE
* AREA_CHAT_MESSAGE
- Self explanatory
ALL_CARD_INFO:
//<Owner ID>:<Zone ID>:<Card ID>:<Card Name>:<Power>:<Toughness>:<Tapped Status>:<GUI X Pos>:<Gui Y Pos>::<Card Text>
All cards will be reported in this format, some fields may be empty if not applicable or unknown.
GENERIC_CARD_INFO:
- Used to report a single card's info w/out a source
GAME_PLAYER_INFO
- <Player ID>:<Player Name>:<Player Hand Size>:<Player Library Size>:<Player Life Total>
- Used to give player info while in-game
Legal headers for messages from the client
If not one of these, assume it is chat
Valid Commands
State 0 (un-named)
* /SET_NAME <name>
* /GET_STATE
State 1 (awaiting deck)
* /NEW_DECK
* /SAVE_DECK\n<deck name>\n <deck text>
* /SELECT_DECK <deck name>
* /LIST_DECKS
* /LIST_GAMES
* /LIST_PLAYERS
State 2 (awaiting game selection)
* /JOIN_GAME <game id>
* /NEW_GAME <size> <name>
State 3 (awaiting game start)
* /LEAVE_GAME
State 4 (in-game)
* <Any of the in-game engine commands>
I'll load up a copy of Safari this weekend and see if I can work out any issues I find.
It does require Java, but I presume Safari is cool enough for that not to be the problem.
More updates will follow when I'm home and can put my hands on the server again.
Edit
Turns out the free name addressing service I was using had issues, I resynched it and now the IP links properly again.
Until I start my computer again, if the URL stops work the IP 69.217.166.134 should work just as well.
Edit
I beat on the DNS and it started forwarding properly again.
However I just took down the server to diagnose some issues with local traffic. I also have updated cards, so when I put it back up, I'll put all the M10 cards on it too.
Edit
Server is back up, but I forgot to bring the new cardlist home, so it shan't be updated with M10 for a few days at least.
I had a hard drive outage, but the server is back up. I have a data file that includes all of Zendikar as well, should be available before the end of the week.
Although I suspect no one has tried to use this in a while, I believe a brief update is in order.
Having moved into a new house, I have decided that leaving my computer running 24/7, when I use it only a few hours a day, is not worth the electricity, and as a result the server is no longer available with any regularity. As such, support and updates have ended for this program for the foreseeable future.
I hope someone else got some use out of it, at the very least it was a fun learning experience to code and a useful tool for my own deck brewing.
I know its been a while since u last posted... BUT if you could email me @
[email]mceg13@yahoo.com[/email] i have a server and would love to run this program... saying that you think it is worthwhile... but i would not be able update it myself... i might need your help since it is your program... you would just have to email me the program with the updates in it... but i assure i do have a 24 / 7 server
Just returned to mtg. For playtesting all I can really do is do first 5-6 turns but without having another decent deck to fight against the results are unrealistic.
Just returned to mtg. For playtesting all I can really do is do first 5-6 turns but without having another decent deck to fight against the results are unrealistic.
Sorry G_MaG, life and work have been too busy, and I haven't been maintaining or running the Server. If you have a propensity for the techie, it is fairly easy to set up, and a little script-fu can convert a card database from some of the other modern programs to work with TCCG.
I've been working on a magic program from some time, and use it frequently with friends. While its by no means complete, I believe its ready enough to be of use to others. The Quickstart Guide below will help a lot in getting into a game and seeing how it works.
If you have some time and want to play magic online without downloading or installing anything, try it out.
It is open source, so if you want to check out the code its available at http://sourceforge.net/projects/tccg/
I appreciate any input, thanks folks.
Quickstart Guide
- Go to http://tccg.servegame.com/GUITextClient/GUITextClient.html
- Click "Run", or whatever is required to assure your computer I'm not an evil genius.
- Click "Connect".
- Click "Instant Game."
- Drag card names from the list box representing your hand to central empty playing field to play them, move them to graveyard or removed from game the same way.
- When you're ready to play something else, hit "Exit Game" in the upper right.
Features- 75+ different decks myself and my friends have already entered
- Easily enter your own decks or copy-paste in Apprentice format decks
- Goldfish single-player, or play with as many friends as can fit their cards onscreen at once
- Full database of all Magic cards ever printed
- Chat with other folks who are on at the same time
General Program InfoText Collectible Card Game
An Internet-based system for playing collectible card games
created by David Moore
1. Purpose
The Text Collectible Card Game (TCCG) is intended as a free tool for people to play against their friends or test decks solo. It seeks to fill a hole in the set of CCG-related computer programs: browser-based games that play without installing anything. It supports games with as many players as you wish. Its name is a holdover from its earlier text-based days.
2. History
TCCG originated as a side project to play Magic against friends and goldfish decks over telnet.
Indeed, up to version 1.0, it was text-based. After six months or so, however, I wanted to make it more accessible, and so I wrote a Java client for it, moving it away from its text-based origins and into the Graphical World.
But, if you feel the urge to connect the good old fashioned way, open a telnet client and connect to port 3490 of the magic server. See Appendix A for the game protocol. For a better-looking text experience, you'll have to go back to version 1.0.
3. Quickstart Guide
a. Go to http://tccg.servegame.com/GUITextClient/GUITextClient.html
b. Click "Run", or whatever is required to assure your computer I'm not an evil genius.
c. Click "Connect".
d. Click "Instant Game"
g. Drag cards from your hand to the field to play them, move them to graveyard or removed from game the same way.
h. When you're ready to play something else, hit "Exit Game" in the upper right.
4. FAQ / Troubleshooting
Q: Why does my browser lock up when I try to go to load the game?
A: It appears that some networks block the ports TCCG uses, which can result in your browser locking. Try again from a less restricted network.
Q: My computer says I need Java installed, what do I do?
A: Install Java! Go to www.java.com and install it, it is required for many Internet sites. Linux users, you need to be sure you have the browser plugin installed, the base Java itself is not enough.
Q: I can't connect. It says "No server running?".
A: I have probably taken down the server to update it or fix something. If that's the case, it should be up soon. Alternately, the server address may be blocked on your network.
Q: When I play, I regularly get an error of some kind. Cards jump, disappear, or move in funny ways.
A: You may have discovered a bug or problem with the communication. I might be able to fix it! Please turn on "Log All Messages" and continue to make it glitch. Then send me the log text on the mtgsalvation forums via a PM. My name is Aranthar.
5. Deck Editing
TCCG has a built in deck editor which you can use to create, store, and hone the decks you play with. It understands Apprentice format for decks, so you can copy-paste your favorite decks right in.
Whenever you select a deck from the list on the left, it is loaded into view on the right.
At the same time, the deck is parsed by the game and all cards you'd actually play are displayed in the center.
If you click on a card in that center list, you'll see its card text pop up in the card single view box at the bottom.
You can modify the list of cards on the right like a text editor: adjust the count, add and remove cards, or even add comments or a sideboard by prefacing a line with "//" or "SB:". After you've modified a deck, be sure to click the "Save Deck" button to save your changes.
If you're made an error in your deck, like naming a card incorrectly or not giving a number for a card, an error will show up in the log at the bottom, and the deck won't parse (you won't see the middle list load). Correct any errors and save the deck again.
You can always create a new deck, or save the currently loaded deck with a different name. Use the "New Deck" button or change the name shown just above the "Save Changes" button.
Finally, this set of decks is not specific to you: everyone who uses the server shares the same deck pool, so please don't overwrite other people's decks. If you want to fix or update a deck you didn't make, save it with a new name.
Every few weeks I will probably wipe unused decks from the server to keep too many from piling up.
6. Advanced Commands
When you are playing games, most common commands are done by simply clicking or dragging cards around.
Right-click to add counters or unmorph creatures, double-click to tap or untap.
Draw, Pass, Untap (all), and Shuffling are easily done with the buttons, but sometimes you want to do more.
If a card calls on you to modify your library somehow, hit the "Show Library" button. You can drag cards straight from it to play or any of the other zones. Hit the button again to hide the library, and be sure to Shuffle if its called for.
If a card needs to be put on the top or bottom of your library without you seeing the library's order, drag and drop the card appropriately onto the "Library Top / Bottom" text next to the Untap bottom, and it will go to whichever location you released it on.
If you want to look up a specific card's text, you can just type its name in the card view window, and once your text matches a card name, it rules text will appear. Capitalization matters here.
There is access to a large variety of powerful commands that you must do via the command prompt. To use these commands, type them in the chat line.
Each is prefaced with a "/" so the game knows you aren't trying to send a message to other players.
/mill <X>
- Puts X cards from your library straight into your graveyard.
/morph <X>
- Puts card X from your hand into play face-down. Counts from the top of your hand. Use this if you need to remove something from the game face-down as well.
/draw <X>
- Draws X cards.
/reveal <X>
- Puts the top X cards of your library into play in the upper-left corner of the field. The first card is leftmost. Useful for clashing or Cascading.
/scry <X>
- Opens up your library, showing the first X cards of it. When you're done, use
"/scry 0" to hide the library.
/mulligan
- Shuffles your hand into your library, and then draws a new hand with 1 less card.
/create <Card Name>
- Creates a temporary card in-play with the given name. Use this for tokens.
/reset_game
- Shuffles all permanents you own in all zones into your library, and draws you 7 cards. Good for resetting goldfish games.
There are other various commands which were used when the program was text-only, and some commands that are more easily done by using the user interface. You can find them in the player class file in the source if you are really interested. There are no commands to let you cheat, and if you do look at and re-arrange your library, your opponent will be able to tell you are doing it.
Finally, there is a small macro interface to automate often-used text commands. Click the "Macros" button and you'll see three fields, each with a button beside it. Clicking the matching button will send whatever text is in the field, so when you play your saporling hordes, you can just enter "/create 1/1 Green Saporling" in macro 1, and spam it every upkeep as your Mycoloth dominates the board.
7. Related Resources
You can find relatively recent source for TCCG on sourceforge at http://sourceforge.net/projects/tccg/
If you would like to help develop, or have any questions, complaints, advice, bug notes, or feature requests, please PM me on the mtgsalvation forums, username Aranthar.
If you are having problems with the game, try restarting your browser in its entirety, and please turn on "Log All Messages" and include the entire text of the message log with your report.
If you would like to run your own magic server using TCCG, please include this document linked from the page that serves it, and let me know so I can follow its progress and keep a link around.
If you want to use TCCG for another card-game besides magic, just update the Collection.txt file on the server with different card data.
8. Features in planning
Some sort of user authentication.
Better card color usage.
9. Known Issues
Sometimes tokens or cards placed on the playing field by the game engine disappear when you first move them. It appears they are going to the bottom of your library (and if they are tokens, ceasing to exist as a result). Its intermittent, but I plan to fix it soon.
10. Special Thanks
Matt Tardiff without whom I never would have been able to parse 15000 cards. Amazing bash skills.
Matt Meyer and Evan Hartig who play-tested many versions with me. And such wierd deck ideas...
Clint Olson who provided testing and advice on user interface. The only player I know more Johnny then me.
My lovely wife who puts up with my Magic silliness. Also occasionally* kicks my butt with her Spike decks.
Appendix A: TCCG Protocol
If you care what style of communication the client and server have, here it is, defined.
Legal headers for messages from the server
* GENERAL_ERROR_MESSAGE
- An error message will follow this
* GENERAL_SUCCESS_MESSAGE
- A success message will follow this
* CLIENT_GAME_STATUS
- Game state will follow, a number 0-4 corresponding to: Unamed, Awaiting Deck, Awaiting Game Selection, Awaiting Game Start, or In Game
* SERVER_DECK_LIST
- A list of all the decks
* SERVER_PLAYER_LIST
- List of all players and their states <player name>:<state> one per line
* SERVER_GAME_LIST
- List of all the games running
* PRIVATE_CHAT_MESSAGE
* AREA_CHAT_MESSAGE
- Self explanatory
ALL_CARD_INFO:
//<Owner ID>:<Zone ID>:<Card ID>:<Card Name>:<Power>:<Toughness>:<Tapped Status>:<GUI X Pos>:<Gui Y Pos>:
All cards will be reported in this format, some fields may be empty if not applicable or unknown.
GENERIC_CARD_INFO:
- Used to report a single card's info w/out a source
GAME_PLAYER_INFO
- <Player ID>:<Player Name>:<Player Hand Size>:<Player Library Size>:<Player Life Total>
- Used to give player info while in-game
Legal headers for messages from the client
If not one of these, assume it is chat
Valid Commands
State 0 (un-named)
* /SET_NAME <name>
* /GET_STATE
State 1 (awaiting deck)
* /NEW_DECK
* /SAVE_DECK\n<deck name>\n <deck text>
* /SELECT_DECK <deck name>
* /LIST_DECKS
* /LIST_GAMES
* /LIST_PLAYERS
State 2 (awaiting game selection)
* /JOIN_GAME <game id>
* /NEW_GAME <size> <name>
State 3 (awaiting game start)
* /LEAVE_GAME
State 4 (in-game)
* <Any of the in-game engine commands>
Check out Odds//Ends - My articles on Quirky Cards and Oddball Builds
Long-time PucaTrade member and sometime author. Send me cards!
Currently playing Knight of the Reliquary - Retreat to Coralhelm Combo
Check out Odds//Ends - My articles on Quirky Cards and Oddball Builds
Long-time PucaTrade member and sometime author. Send me cards!
Currently playing Knight of the Reliquary - Retreat to Coralhelm Combo
It does require Java, but I presume Safari is cool enough for that not to be the problem.
More updates will follow when I'm home and can put my hands on the server again.
Edit
Turns out the free name addressing service I was using had issues, I resynched it and now the IP links properly again.
Until I start my computer again, if the URL stops work the IP 69.217.166.134 should work just as well.
Edit
I beat on the DNS and it started forwarding properly again.
However I just took down the server to diagnose some issues with local traffic. I also have updated cards, so when I put it back up, I'll put all the M10 cards on it too.
Edit
Server is back up, but I forgot to bring the new cardlist home, so it shan't be updated with M10 for a few days at least.
Check out Odds//Ends - My articles on Quirky Cards and Oddball Builds
Long-time PucaTrade member and sometime author. Send me cards!
Currently playing Knight of the Reliquary - Retreat to Coralhelm Combo
Check out Odds//Ends - My articles on Quirky Cards and Oddball Builds
Long-time PucaTrade member and sometime author. Send me cards!
Currently playing Knight of the Reliquary - Retreat to Coralhelm Combo
Check out Odds//Ends - My articles on Quirky Cards and Oddball Builds
Long-time PucaTrade member and sometime author. Send me cards!
Currently playing Knight of the Reliquary - Retreat to Coralhelm Combo
Having moved into a new house, I have decided that leaving my computer running 24/7, when I use it only a few hours a day, is not worth the electricity, and as a result the server is no longer available with any regularity. As such, support and updates have ended for this program for the foreseeable future.
I hope someone else got some use out of it, at the very least it was a fun learning experience to code and a useful tool for my own deck brewing.
Check out Odds//Ends - My articles on Quirky Cards and Oddball Builds
Long-time PucaTrade member and sometime author. Send me cards!
Currently playing Knight of the Reliquary - Retreat to Coralhelm Combo
[email]mceg13@yahoo.com[/email] i have a server and would love to run this program... saying that you think it is worthwhile... but i would not be able update it myself... i might need your help since it is your program... you would just have to email me the program with the updates in it... but i assure i do have a 24 / 7 server
you ok with a highschool tech class running it?
Just returned to mtg. For playtesting all I can really do is do first 5-6 turns but without having another decent deck to fight against the results are unrealistic.
Sorry G_MaG, life and work have been too busy, and I haven't been maintaining or running the Server. If you have a propensity for the techie, it is fairly easy to set up, and a little script-fu can convert a card database from some of the other modern programs to work with TCCG.
Check out Odds//Ends - My articles on Quirky Cards and Oddball Builds
Long-time PucaTrade member and sometime author. Send me cards!
Currently playing Knight of the Reliquary - Retreat to Coralhelm Combo