Sandscape

From Arcmage Wiki
Jump to: navigation, search

Abstract

CCG (Collectible Card Game) players usual meet face to face, in clubs, local game stores or bigger events to play the game that requires, at least, two players and corresponding sets of cards. The game is played over the course of a few hours, in settings that go from a simple table to complex scenarios created by using various accessories (mats, plastic figures, etc.).

It is not possible to bring the experience of face to face play onto a computer game, but several attempts have been made with various degrees of success and usefulness and, though a complete copy of such experience is not possible, computer games have their own audience and may be a good way to mitigate the problems that exist in real life: lack of a playing community, lack of money to buy real cards, not enough time or resources to setup a proper game environment, etc.

WTactics appears in this context as an alternative to the existing CCGs and, due to it's characteristics, as an obvious candidate to be used as base for a new Virtual CCG.

Virtual CCG and WTactics

WTactics, well described in the projects general design document, is a new and open source CCG in heavy and steady development. It's connection to the Virtual CCG world is that it needs a method for rapid prototyping and playtesting of the cards. There is also a feeling amidst the current involved developers that WTactics as a lot to offer in the Virtual CCG market by bringing it's open philosophy, quality and professionalism to the digital world. Offering what costs money elsewhere for free.

The electronic version of WTactics can be played using several different and already existing free card game engines. They are traditional and local software that need to be installed on the users machine in order to function. Sandscape, the name of the project that strives to make WTactics playable using only browsers alone, should provide the same minimalistic set and freedom to play the game as such software: Offering players a way to control their cards, as freely as they want, use the rules they want. The player is the sole controller, the computer only eases the settings, administration and execution of the game by providing a virtual table scenario coupled with direct access to cards and decks.

Description

The purpose of Sandscape project is to create a virtual online and purely browser based environment where players can meet to play a CCG. Sandscape is, as all things WT, an open source endeavor that should be generic, easy to extend and modify so that it can be of use in other projects, making it possible to play almost any CCG with it. To the best of our knowledge there is no such existing libre software around today.

Sandscape does not intend to compete with the existing open source solutions for online CCG play, alas the fact that Sandscape follows, to some extent, the same concept as systems like OTCGN2, LackeyCCG or gCCG will make Sandscape a competitor in the same way that WTactics is a competitor with other established CCGs.

Nevertheless, Sandscape will bring innovation into the market by freeing the player from the constraints set by forcing him/her to follow predefined rules, by offering a lighter version that is not graphically cumbersome and that is easier to use in comparison to existing solutions.

Following the steps of WTactics, Sandscape is an open source, generic and extensible project that can be used by other projects to allow almost any CCG to be played.

Development

The project should seek to provide only the features that are important and necessary, offering low but well developed features that meet the project's goals. Above everything else, there should be no feature in Sandscape that is superfluous or that steps away from the original simplicity. The software should be simple, both in interface an features, keeping the project small and making it possible to release usable versions that users will appreciate.

The project should be small enough to be developed by one programmer. Please refer to the Sandscape Development page for a roadmap and other development related information.

Features

  • No rule implementation: There should be no rules imposed by the system. Players should be able to use any rules they want.
  • Replicate table setting:
    • Placement of cards on the table, visible to the user.
    • Free movement of cards, including: Drag around, flip, turn 90º, move from and to a pile of cards, move several cards at once.
    • Card zones, which are piles of cards on top of or next to each other:
      • Hand: Cards held in a player's hand, only viewable to him/her.
      • Draw deck: Pile of cards where player draws new cards from while playing.
      • Graveyard: Pile of cards where player puts discarded cards.
      • Removed from game: Pile of cards that are said to be "removed from the game" in game terminology.
  • Card actions:
    • Put cards into play face down. Usually when cards are moved form hand onto table (known as "into play" in CCG terminology) they are always face up per default. If a player needs to she must be able to put the card from hand on table face down, without opponent ever seeing it's identity.
    • Able to place so called tokens (small markers in diff colors) on table or cards.
  • User management:
    • User account
    • Deck creation and management
  • In-game system actions:
    • Shuffle decks/piles
    • Take a card(s), randomly, from card zone x and put it on the table
  • General system features
    • Text chat for players
    • Roll dices
    • Flip coin
    • Allow players to define a set of variables to track, e.g. points, life, energy, etc.
    • Allow for game spectators
    • Inform players about what has happen in the game

Additional features

These are features that are not strictly necessary but that might be of interest to discuss and use in future releases:

  • More than two players, possibly up to four.
  • Save and replay a game execution.
  • Log game and export text file with complete game actions.
  • Tokens:
    • Attach tokens to card(s)
    • Show number of a specific token (e.g. green tokens) instead of showing those tokens graphically if there are more than x of tokens type y on a card. Example: More than 5 green tokens on a card would show one single green token with the number 5 on it.

Technical

Sandscape will be a client-server application, browser-based.

It will be developed using open technologies, specifically:

  • PHP, MySQL, HTML5, CSS and JavaScript.
  • Any capable text editor or IDE.
  • Git for revision control.
  • Dia and UMLet for diagrams and/or sketches.
  • jQuery for JavaScript code.
  • Yii PHP framework.
  • Blueprint CSS framework.

Any tools mentioned above are just suggestions, as long as the tools used achieve the result we want, any tool is allowed.

An early sketch was posted in the forums and can be seen in [1].

About

This is an introductory document, aiming to provide information about a project currently named Sandscape. This page will provide a complete description of the project and it's goals and be used as a base for development. It will not, however, be update as soon as the development as started and should not be changed to reflect any change made in the development of the project. Such updates, if necessary, will be provided by the existing communication channels, listed in WTactics.org.