This is part 2 of a series of dev blogs, where I will be documenting our progress in the design and implementation of an Online Trading Card Game Maker app, as part of our work in the final capstone project during our final year at the program of Computer Science at Oregon State University.
If you haven’t already, you can refer to part 1 of this series from the link below:
The biggest question we had to answer during the start of our journey in the development of this app, was how do you approach designing such a thing? how do you design it in a way that is both appealing to fans of TCGs from various backgrounds, as well as giving them the freedom to easily customize their games, without it being too complex to program?
Our initial answer was, design a fixed universal TCG rules framework, where we set the basic rules and customization options (for both the game and the deck building), and let users only adjust the parameters, without letting them create new rules themselves; An example of this would be, in the creation of a new card, we decide and set the general rules and customization options for all new cards, such as adding slots for card type, name, description, cost, and power; The users then can set the parameters of these general card rules in their own custom decks, changing card names, background picture, power, cost, description, and type, without adding new rules to the cards, or new customization options, where programming such a thing would be a nightmare.
The same idea can be applied on general game rules, we could decide the basic set of game rules, like game duration, number of cards in a hand, number of cards on the floor.. etc, and the users set the parameters of these basic rules without creating new game rules themselves.
Now, in light of the above reasoning, our main challenge is to design a universal TCG rules framework that adopts a familiar universal TCG language inspired by popular games like Magic: The Gathering, Yu-Gi-Oh! and many others, without this framework being too bloated with customization options, and in turn, making the creation of a TCG both confusing to the users, and challenging to develop. So, this means we had to pick and decide the basic rules we would include in our framework in such a way that is both doable from a development standpoint, and enjoyable to customize from a user perspective, and in such a way that encompasses the spirit of these various popular TCG games.
Currently, we are still in the process of developing a TCG Creation panel using the above methodology, where users can create a new game, set the parameters of the game’s rules, and build and customize their decks, to the point right before clicking “play”. Such a TCG Creation panel could incorporate the following sections:
- New Game: A button or link that allows users to create a new game and set game rules. This could include options to select the number of players, the length of the game, and any special rules or restrictions.
- Deck Building: A section where users can create and customize their own decks. This could include a list of available cards, with filters to sort by card type, color, or other attributes. Users could also have the ability to search for specific cards or add new cards to the deck.
- Card Creation: A section where users can create new cards and set card parameters. This could include options to select the card’s name, type, and attribute, as well as options to set the card’s power and toughness, or other attributes. Users could also have the ability to upload images to use as the card’s illustration.
- Game Rules: A section where users can set the universal game rules that will apply to all games created on the platform. This could include options to set the starting life total, the number of cards in a starting hand, and any special rules or restrictions that apply to certain card types or attributes.
- Preview: A section where users can preview the game, including the current deck and the game rules that have been set. This could include a visual representation of the game board, as well as a list of the cards in the user’s deck, and the attributes of each card.
- Save: A button that allows users to save the game and the deck they have created.
In the next part of this series, I will shed more light on the progress of our development of this Universal TCG Creation and Customization panel, which should be finished by then, before we start working on the TCG battlefield itself, where all the game logic will live, and the decks the users have built, and the game rules they have set, can finally come to life in a ruthless duel against the machine.
References:
https://magic.wizards.com/en/news/feature/original-magic-rulebook-2004-12-25
Leave a Reply