[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [DotGNU]A webservice game project ((TODO))

From: Ian Fung
Subject: Re: [DotGNU]A webservice game project ((TODO))
Date: Sun, 19 Jan 2003 13:36:02 -0500

why dont you just implement magic: the gathering?

On Sunday, January 19, 2003, at 09:42 AM, Peter Minten wrote:

Hi folks,

here's a showoff project idea which might be beneficial to DotGNU.

--- REASONS ---

Everybody knows a game is the best way to show off since it's more attractive than the average test file :-). So far there are a few small examples of specific areas (CGI, QT# with pnet), but how about creating a bigger game that covers all the aspects of DotGNU. IMHO that's a good way to catch bugs and logic

I was thinking of a Trading Card Game. The game would have the following

* Programmable cards, the game cards must be able to do custom things. The best way to implement this is IMHO embedded scripting. Scripting is something we need to implement sometime anyway. I personally think the biggest problem with scripting will be callbacks from C to C# code, the rest of the stuff is just
P/Invoking an interpreter lib.

* Online tournaments with rankings and stuff, tournaments are one of the most fun elements of TCG's. Users of a webservice must be able to interact with
eachother, which isn't possible in our current design but is needed.

* Card winning, in tournaments cards could be earned. The cards could be exported to the user's drive in a human readable format, but with an encrypted checksum by the webservice where they were created. The cards could be imported into another TCG webservice, but any cheating would be exposed by the checksum. A user could use the cheated cards locally however. This is a good test for

* Downloadable webservices, the webservices must be downloadable and should be usable for U2U (user-to-user) play. This is a good test of our downloading

* Graphical User Interface, the webservice should create windows on the client
and is thus a test for our remote GUI systems.

--- GAME RULES ---

This is what I had in mind as game rules (roughly):

There are 3 types of cards: resource, spell and creature. Resources are needed to create spells and creatures. Spells can do a lot of different things, but only once (unless overridden). Creature can be used to attack time and time
again and to block attacks from other creatures.

There are 4 alignments (influences the strategy which is best for the cards):
Bear (red): Power play, bear cards often do or die. Playing bear means
sacrificing units for power.
Fox (blue): Trickery, fox cards are the opposite of bear cards, they will first get as many advantages as possible and then attack. Playing fox means fighting
at your terms.
Leopard (yellow): Speed, leopard cards are fast, they can often attack at the first turn, but are not very durable. Playing leopard means attacking before
your opponent can get his act together.
Turtle (green): Durability, turtle cards are hard to destroy, this has it's price in speed however. Playing turtle means waiting for your opponent to be
weakened and then attacking.

The game is played with a set of 40 card for each player composed by the player. For tournaments the cards must be earned. This is done with an experience system, every won game increases experience, based on the experience of the player and the experience of the opponent. When the experience level of a player reaches a certain threshold the level of the player get's increased. Every card has a level which tells it's power, to use (or more exactly to accuire) a card a player must have at least the level of a card. Every game won also gives the player 1 credit, cards have prices based on the relative level of the player to the card. If a player can afford a card he/she can accuire the card class and
use cards of that class.

The system is a little tricky so here are the rules again:
* You win experience by winning games, the amount of experience you gain is more
or less opponent_experience/your_experience * certain_amount +
* You gain levels by gaining experience (level = experience div 100).
* Every game won gives you one credit (note that the tournament engine will
match you with a more or less equal opponent.
* The cost of cards is based on the level difference between the card and you.
* To acquire a card class you must have furfil these requirements:
  - your_level >= card_level
  - your_credit >= card_cost



Developers mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]