OpenTCG Blog
Friday, November 11, 2005
  Back!
Long period of inactivity, indeed. This short update is meant to be followed by serious updates as the project is now back in development.

I have converted the project to .NET 2.0 Final, and Visual C# Express 2005 as an IDE (it's free). We might have a new coder soon, but more details on that later.
 
Tuesday, September 27, 2005
  Reunion
Just because I don't post anything here doesn't mean OpenTCG isn't being developped, right? ... Actually, it does. Unfortunately I haven't written a single line of code lately, because of accute lack of time (between work, d&d, magic, etc.).

But, there is a new and interesting development. Reunion.

Reunion

Reunion will be the most important Game System in OpenTCG, a completely original, highly-developped, trading card game that aims to offer as much entertainment value as MTG and other popular TCG. Actually, more entertainment value, because, as you will see, while we aim to mimic real physical TCGs in many behaviours, the computer medium, allows us to do stuff traditional Game Designers wouldn't even begin to consider. Ah, but I'm not going to reveal anything about that, because it's no longer my job.

Introducing Ahriman. The brand new Lead Game Designer for OpenTCG, and the man in charge with Reunion. As soon as we get a moderately stable core system (moderately stable = doesn't change in the next 2 hours of game design) I'll make him blog about it and developments about it. >:)

Anyway, all I'm going to say is that, already, it is a very different system compared to Magic (and the other 20 systems we've analyzed) and sounds exciting.
 
Monday, September 12, 2005
  CardContainer
This class represents a group of related cards that can be sent/processed as one piece of well-formated XML. It's purpose is to mimic the physical concepts of booster, card pack, and so on, and allow for an easy way to send a whole such pack to a client.

CardContainer creation is in no way restricted - while the cards themselves need to be validly signed, the container does not have a signature or any other authentication.

Besides the cards themselves, enumerated in the card container, it has the following properties:

Name - should be a word or two describing the type of container: "Booster" "Card Pack" are valid suggestions.

Description: may contain further details such as Expansion names or maybe, for fun, some flavor text :P.


Implementation status of feature:
* AuthClient can generate CardContainers for AuthPublished cards (via the new button Add to Card Container and the tool window "CardContainer"). Properties such as Name and Description are not configurable and container management is limited.
* Client can now add a whole container of cards at once (via the same dialog/menu option that is used for single cards).
* The CardContainer class is implemented in OpenTCG.Core assembly as OpenTCG.Core.CardContainer.
 
Sunday, September 04, 2005
  CardContentSelector
The Authority Client now has a reusable window that can be used to select a card content from a local database. This is, of course, highly preferable to manually copy-pasting a card content id :P.

Other improvements include:
* AuthPublish requests fully working from the Authority Client
* AuthClient "Response" window for showing XML responses
* All untested features of yesterday were tested. Well, most of them.

I know slow day - exam tommorow. Oh and a first screenshot... I'll start posting more of these.

Screenshot of the new selector in AuthClient

P.S. : The AuthClient doesn't correctly set any Image Folder for CardView so the cards appear using no images (only backup elements). Because a lot of programs seem to need a dynamic Image cache for cardview I am considering starting a specialized project (The Global Image Cache or something :P) that will handle storing, finding, downloading, caching etc. images. Well, maybe.
 
  Note: Authority and authority
The game right now is obviously not very well thought of if the Authority of the game is actually formed of many people, which might happen eventually. Obviously it is a bad idea to have each one of them have the authority private key file - that file should be a very well kept secret - if one of them "leaks" it then it can/will RUIN everything. If someone can just pretend to be the Authority then OpenTCG must be, well, restarted with new keys - and if the game is developped that will be bad.

This is even more a problem for the Designer Key. Surely there will be more than one designer, but can we give them each the designer key? No!

Yet, having a dynamic set of keys be accepted as, say, authority, is not a solution - the game becomes more tied to a server that must now be checked for keys too. Therefore, the solution will be proxies.

Take, for instance, Authority key authentication. The key will ONLY be stored on ONE computer (well, excluding mine :P), a server. That server will emit all authority requests - those automated by OpenTCG Software (yes, a lot of the projects will make Authority Requests to other projects) and the manual ones sent by people who have the rights. For the manual requests, the server will have a separate mechanism for authenticating the ones he's proxying for.

This allows for security and flexibility while keeping things very simple where in matters most - in the main servers and clients: for those Authority is Authority.

In conclusion the idea is that none of the keys (authority, publisher, designer, server) will leave the opentcg servers at any time.
 
Saturday, September 03, 2005
  Authority begins...
New Developments:

There is now a new subcategory of requests - the Authority requests (they contain an
<Authority>
token, have
<PlayerId>Authority</PlayerId>
and must be digitally signed by the Authority key which is embedded into the executable. Currently there is only one Authority request:
AuthPublish - authority request for a new card to be published. The publisher will, if possible honor this request and return the new card, as requested.

Also, there's a new project in OpenTCG (there's now 12 projects), the AuthorityClient. The AuthorityClient allows someone possesing the Authority Private Key (therefore me :P) to send authority commands to the services.

Implemented Today:
* Additional check in TradeRequests - check if cards are expired. [Untested]
* PublisherDB - Maintains an in-memory database of all known card-contents. They are loaded on startup by searching a given folder for xml files.
* Publisher support for AuthPublish requests. [Untested as there is yet no functional AuthorityClient]
* AuthorityClient - Startup, basic UI and Authority Key Loading (does not yet test if the key is actually an Authority key, but hey.).
* New Important Key generated and stored - the Authority Key. Can be accessed (the public one of course) as OpenTCG.Security.CommSecurity.AuthorityKey
 
Friday, September 02, 2005
  Where the project is
The project has evolved a lot since when I started it. I haven't put anything new on CVS for some time because I'm very lazy and practically no one is interested in this besides me so what's the point? I hate CVS (love svn :)) and won't commit to it until I get really far or people will start wanting to see the code/project.

Anyway, here is the current status on main components:
Important known issues:
 
  Why it started
OpenTCG has started about a month ago, from the wish that there was some real _free_ system for playing Trading Card Games on-line. Yes, I know there's Magic WS that you can use too play on-line but frankly it's way to primitive for me. First of all, there's no automatic judging at all - you have to do everything, and I mean EVERYTHING manually. Also, the game really lacks much of the Magic feeling. I realized that when I first started it and it displayed a big list of 11000 cards. A TCG/CCG is fun BECAUSE it's collectible, because you DON'T have all the cards.

Ah, there's a lot of reasons why I wanted to make this - a nice concept of it all can be found here.
 
Development Blog for the first free, open and secure multiplayer on-line Trading Card Game, OpenTCG.

LINKS
OpenTCG Website
Sourceforge Project Page

ARCHIVES
September 2005 November 2005


Powered by Blogger