PDA

View Full Version : [Essentials script] Pokémon TCG mod


Maruno
September 17th, 2012, 11:08 AM
Has anyone been working on making a Pokémon TCG system in RMXP (either for Essentials or stand-alone)? If so, what kind of progress have you made? I feel like helping out with a project like that.

Otherwise, this can be a thread for the discussion of creating a Pokémon TCG system for RMXP. It's a big task, certainly, but I'm interested to see how much active support it could get (and by "active" I mean actually helping out, not "I'd like to see that" messages).

Whitney's Shaymin
September 18th, 2012, 01:11 PM
Im not sure how we could do this but that would be pretty cool. I'm supporting!

~JV~
September 18th, 2012, 04:30 PM
I fully support this, I already thought about making a tcg game some years ago! Well, I can't help being a main developper or something because I don't have time and also because my coding is ugly and I'm not good at coding from scratch, I'm used to make modifications (heavy or not) to scripts. But you have my assistance on this if it gets started!

FL
September 18th, 2012, 05:25 PM
I saw some adepts on the past, but I don't know any that is still active. Maybe you can reuse some code from http://code.google.com/p/shoddytcg/ (isn't RPG Maker related).

Do you plan to cover which expansions? My TCG knowledge is limited, but I suggest you to use the Basic, Jungle and Fossil at first. You can find the resources from the two game boy games in http://www.spriters-resource.com/gameboy/poketcg/index.html and http://www.spriters-resource.com/gameboy/poketcg2/index.html, but I suggest you to use the real card pictures.

Maruno
September 19th, 2012, 11:50 AM
I told myself I wasn't going to start anything until discussion had happened and any previous attempts came to light. I told myself that was the sensible thing to do.

...Which is why I've started making my own code. Yeah.

So far I've come up with a compiler script which can read multiple PBS txt files (all txt files within the PBS\Cards folder), and compiles all the information in them. I've also created a card entity class, which is pretty pointless unless you want to make some cards 1st Edition or otherwise special (I wouldn't, and that will probably be discarded later for convenience). A card is referred to by its ID, which is the name of the txt file it appears in followed by its number (e.g. BASE42 for the card numbered 42 in the file BASE.txt); the ID is functionally identical to a Pokémon's internal name.

Now, much of a card's information isn't currently accepted by my scripts. So far, a card's PBS information looks like this:

[1]
CardType=BasicPokemon
CardSubtype=Dark
Name=Bulbasaur
Species=BULBASAUR
HP=4
Type=Grass
Weakness=Fire,0
Resistance=Water,1
RetreatCost=1We need to come up with a decent layout for this, and make sure all the information is included.

The next thing to do will be to create a library (like $PokemonBag), a library viewer, and a way to create decks. Then we can worry about making the duel scene.


I saw some adepts on the past, but I don't know any that is still active. Maybe you can reuse some code from http://code.google.com/p/shoddytcg/ (isn't RPG Maker related).

Do you plan to cover which expansions? My TCG knowledge is limited, but I suggest you to use the Basic, Jungle and Fossil at first. You can find the resources from the two game boy games in http://www.spriters-resource.com/gameboy/poketcg/index.html and http://www.spriters-resource.com/gameboy/poketcg2/index.html, but I suggest you to use the real card pictures.
Some of the information on that website was useful, although I'd already thought about it myself by now.

The project should be able to accept every kind of card, which means all existing cards can be included. The only issues then are the graphics and the effects of moves/PokéPowers/etc. While things are being invented, we'll use various cards which showcase a particular feature (e.g. Pokémon-ex cards, Stadium cards, etc.), and not be restricted to certain sets.



What we really need now is art. Preferably designs for the duel and library/deck-builder screens. What should they look like? Card pictures are not important at the moment.

Another question to think about is: how accurate should it be? For example, Pokémon cards used to have Pokémon Powers, but they were then split into PokéPowers and PokéBodies. Should this kit support Pokémon Powers at all, or should the older cards be reworked to make them match the most current system? Another example is whether Stadium/Supporter cards should be their own types or a subtype of Trainer cards.

hansiec
September 19th, 2012, 12:12 PM
To create a shuffled deck


# create deck here

deck = deck.shuffle



Why create a new PB file for the cards? Why not use the PBSpecies data and manipulate the stats there, more cards can be created faster like that. Although for stadium/Supporter cards would be the only use for this as items can also be taken out of the PBItems data.

and a card's id can be made like so:


# create a base 42 character code here
id = [put all needed statistics here].pack("42 chararacter string here")
main_id = ""

# get the main id with the XXXX-XXXX-XXXX (and so forth)
for i in 0..id.length-1
main_id += " "
main_id[main_id.length-1] = id[i]
if i % 4 == 0
main_id += "-"
end
end


I hope this helps a little bit.


I really am not a graphics designer so no help designing

Maruno
September 19th, 2012, 01:25 PM
I think you've very much misunderstood what this project is about. It's a video game recreation of the Pokémon Trading Card Game (http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_Trading_Card_Game) (TCG), not a made-up little thing I'm inventing myself. Everything you said (except for mentioning the shuffle method) is irrelevant.

hansiec
September 19th, 2012, 01:37 PM
I think you've very much misunderstood what this project is about. It's a video game recreation of the Pokémon Trading Card Game (http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_Trading_Card_Game) (TCG), not a made-up little thing I'm inventing myself. Everything you said (except for mentioning the shuffle method) is irrelevant.

I thought you were implementing this into essentials, the id generation thing was because I thought the TCG had a key id which most card games have to determine a card.

Maruno
September 19th, 2012, 02:35 PM
If it does, those long codes are just passwords used to unlock particular cards, and they're that long to discourage people from just trying out random combinations.

This project needs clear IDs, so the user will know which cards they're working with. The set name plus number is the best solution.

mewlover22
September 19th, 2012, 03:17 PM
this sounds like a good idea count me in.

yaywalter
September 19th, 2012, 06:26 PM
I was working on a Pokemon TCG game a while back, but have sadly abandoned it. I was using Game Maker though, not RPG Maker.

Maruno
September 20th, 2012, 03:08 AM
Even so, do you have any resources or concept art or notes or code you want to share?


this sounds like a good idea count me in.
And what exactly will you be bringing to this project if I count you in? Did you mean to say "I'm looking forward to seeing what you come up with" instead?

mewlover22
September 20th, 2012, 03:20 PM
Sorta i have a lot of knowledge on the Pokemon tcg and can give you an idea on what sets to use and more ideas like that i have played both gbc games and own of 500 Pokemon cards.

FL
September 20th, 2012, 05:20 PM
And what exactly will you be bringing to this project if I count you in? Did you mean to say "I'm looking forward to seeing what you come up with" instead?You're smart, so you can find some use for these supporting people. If you can't, simply use them as testers. This without counting that Mewlover22 also has TCG knowledge that can be very useful. Even the feedback/opinions can be useful. The most important is the intention.

Maruno
September 20th, 2012, 05:23 PM
At the moment I need two main things: an idea of how things should look, and an idea of how things should work. The two are related, of course; one design for a Library screen will mean it should work in one way, while a different design will require it to work in a different way.

I need direction, a guide to what people want it to be like. Is the way the GBC game works suitable, or maybe a different approach inspired by Yu-Gi-Oh! or something? My only reference is the GBC game, which is obviously old stuff, and I want to know if there's a better way to go about it.

I don't want to waste a whole load of time making a questionnaire about as many facets of the game as I can think of, not least because I'll miss parts, and half of it will be technical. I just need to know what it should end up like, so that I know what I'm aiming for. I need a design document, which means I need to make a lot of decisions about how the game will work.

If you have any opinions about how any aspect of the game should be (card-acquiring, Library, deck-building, duels, AI, defining opponents, etc.), please let me know.

mewlover22
September 20th, 2012, 05:23 PM
thanks i will do what ever i can.

~JV~
September 20th, 2012, 05:34 PM
At the moment I need two main things: an idea of how things should look, and an idea of how things should work. The two are related, of course; one design for a Library screen will mean it should work in one way, while a different design will require it to work in a different way.

I need direction, a guide to what people want it to be like. Is the way the GBC game works suitable, or maybe a different approach inspired by Yu-Gi-Oh! or something? My only reference is the GBC game, which is obviously old stuff, and I want to know if there's a better way to go about it.

I don't want to waste a whole load of time making a questionnaire about as many facets of the game as I can think of, not least because I'll miss parts, and half of it will be technical. I just need to know what it should end up like, so that I know what I'm aiming for. I need a design document, which means I need to make a lot of decisions about how the game will work.

If you have any opinions about how any aspect of the game should be (card-acquiring, Library, deck-building, duels, AI, defining opponents, etc.), please let me know.

Maruno, I think the old GBC game worked well enough, BUT there is a japan-only TCG game for the DS. Take a look: http://www.youtube.com/watch?v=U1_nqYeBU40

If we do it using the mouse it will be very easy to mimic the mechanics shown in the video. Graphics wise, we should go for the regular 4th gen style I guess... We are already used to it and it's pretty easy to edit etc.

P-Sign
September 20th, 2012, 09:46 PM
If you need my help, just send me a message. I've been playing the Pokémon TCG competitively (playing tournaments :p) for the past three years.

Maruno
September 21st, 2012, 05:08 AM
I'll have a look at Asobikata. The main issue with mimicking that is that it's very much made for a dual screen. Some kind of mixture of that and the GBC game may be the way forward.

P-Sign, I'm sure I'll have a lot of questions for you. Mostly mechanics-based, I think.

yaywalter
September 21st, 2012, 05:11 PM
Even so, do you have any resources or concept art or notes or code you want to share?



And what exactly will you be bringing to this project if I count you in? Did you mean to say "I'm looking forward to seeing what you come up with" instead?

I don't have any real useful code to share... I only got as far as making the general movement and the card library/deck builder. And it was in Game Maker, so it wouldn't be useful to somebody trying to make an RPG Maker game. And to be honest, I don't know where the files for it are anymore or if I've even still got them.

But I was able to find these 3 screenshots in the thread I made for it:
http://www.64digits.com/users/S3xySeele/tcg_screen012.png
http://www.64digits.com/users/S3xySeele/tcg_screen02.png
http://www.64digits.com/users/S3xySeele/tcg_screen002.png

The game was going to have a structure more similar to a traditional Pokemon game, rather than the structure of the GBC TCG game. You'd earn money from defeating trainers and gym leaders, which you'd be able to use at stores to buy booster packs or individual cards. There would be 8 gym leaders, as well as an Elite Four.

the__end
September 22nd, 2012, 05:08 AM
ok i am done with about 75% of the library screen...
i think today i can show the first results... ;)
hope you will like it... ^^

Rayquaza.
September 22nd, 2012, 09:57 AM
This sounds like a good project. I was planning on making a TCG-based game (Not pokemon) and started looking for RPG maker kits, this may be a pokemon kit but if this becomes an official project its definitely something to go on.

Maruno
September 22nd, 2012, 11:52 AM
I have created the first draft of what I think is a design document. The process is as new to me as it is to many of you.

Everyone, please have a look through it and comment on anything you find. Is what has been described suitable for every reasonable possibility and usage?


I don't have any real useful code to share... I only got as far as making the general movement and the card library/deck builder. And it was in Game Maker, so it wouldn't be useful to somebody trying to make an RPG Maker game. And to be honest, I don't know where the files for it are anymore or if I've even still got them.

But I was able to find these 3 screenshots in the thread I made for it:


The game was going to have a structure more similar to a traditional Pokemon game, rather than the structure of the GBC TCG game. You'd earn money from defeating trainers and gym leaders, which you'd be able to use at stores to buy booster packs or individual cards. There would be 8 gym leaders, as well as an Elite Four.
I remember seeing those screenshots ages ago. I have a bit of a soft spot for TCG games, but on the rare occasions they're mentioned they always fall through (like most other games, actually, but unlike them the TCG games have a good reason for failing). It's always interesting to see how people envisage these kinds of things.


ok i am done with about 75% of the library screen...
i think today i can show the first results... ;)
hope you will like it... ^^
Looking forward to it.

FL
September 22nd, 2012, 03:22 PM
Nice GDD for a minigame option in a engine. This is almost a profissinal one! A profissinal Design Document generally have more description (even more detailed) and diagrams. But for a draft this is excellent (excluding the lack of duel info). You're skilled at it, I can't believe that is your first time!

I agree with almost all items.

Should Stadium/Support cards be completely separate types of cards, or variants of Trainer cards? The real TCG has flop-flopped over this matter.I vote for Stadium/Support cards as separate types, but will be the same in some effects (just like real TCG). The real TCG can't edit the old cards.

Subtype – The card’s subtype. Optional.I suggest you to make this a string array defined in card rather that several subtypes defined in scripts.

HP – The HP of this card, divided by 10.I suggest you to use the actual number and only allow 10 multiples. I predict people having problems with this.

There will not be a card shop.Maybe in future?

Duels will be possible using 3 or 6 Prize Cards (short or long). Disagree. Put a number option (1-6) for more convenience

Likely to have multiple pages, like the GBC game hasDisagree, Probably Isn't possible to put all in one page, so put two with the second page a continuation from the first one.

The prize will be a list of one or more booster packs (usually one). This is the only possible form that the prize can take.Put also a money/coins/card points option from buying boosters or cards.

A Pokédex for cards. Effectively nothing more than a differently-arranged Library; used only for seeing completion percentages.I prefer this as a mode for Library.



About the game board I prefer the Game Boy TCG one rather that the actual board. Try to mix some options and display the moves and Poké-power in the main duel screen (at least without the effect or even only the names). Try to display also the weakness, resistance and retreat cost.

Instead of Hand, Attack, Check, Pkmn Power, Retreat and Done, I suggest you to use Hand, Action (with Attack and Done options) and Board (with Pkmn Power and Retreat options).

I prefer that you use the pokémon card artwork rather that the entire card.

yaywalter
September 22nd, 2012, 03:41 PM
I have created the first draft of what I think is a design document. The process is as new to me as it is to many of you.

Everyone, please have a look through it and comment on anything you find. Is what has been described suitable for every reasonable possibility and usage?



I remember seeing those screenshots ages ago. I have a bit of a soft spot for TCG games, but on the rare occasions they're mentioned they always fall through (like most other games, actually, but unlike them the TCG games have a good reason for failing). It's always interesting to see how people envisage these kinds of things.



Looking forward to it.

My TCG project fell through simply due to laziness and getting distracted by other projects. But the idea still appeals to me, so I might revisit it... I'm thinking about even integrating it into my current project, so it'll be like two games in one: A regular Pokemon game, and a Pokemon TCG game.

Anyway, well-done design document. I should probably start making 'em for my projects instead of just jotting down random notes. I wish you the best of luck with your TCG game, but we might just become rivals if I include the TCG in my Pokemon game. But that might even be beneficial...

Rickyboy
September 22nd, 2012, 04:25 PM
Personally the original gba title is what I'd like to see remade because I like it so much, but that's because we haven't really had much else to compare it to.

I'd also really like to see the gameboard incorporated into the game. Essentially a background that will be different every time you play, to mimic the different poster/board things that come with the booster packs nowadays. This would be a great incentive to get more artists aboard, since they could literally draw almost anything for the boards.

I'd say show the overall board between turns, and then when it comes time to attack, the screen switches to the gbc style card vs. card set-up.

Lastly, I'm free as a artist for whatever when the framework gets set-up. I know that doesn't help you right now, but whether it be menu design, card art, or whatever, I can help.

Maruno
September 22nd, 2012, 05:39 PM
Nice GDD for a minigame option in a engine. This is almost a profissinal one! A profissinal Design Document generally have more description (even more detailed) and diagrams. But for a draft this is excellent (excluding the lack of duel info). You're skilled at it, I can't believe that is your first time!
This design document is pretty much just a list of notes I've thought of, arranged into sections. Some important notes are unnecessary, as they're mechanics of the game and assumed known (e.g. you draw a card at the beginning of your turn, and attack at the end), or things are described as "like X unless stated" and are also taken for granted (e.g. the Library works like the Bag). That's probably where the lack of description is. That and me not thinking of everything, of course.


I vote for Stadium/Support cards as separate types, but will be the same in some effects (just like real TCG). The real TCG can't edit the old cards.

I suggest you to make this a string array defined in card rather that several subtypes defined in scripts.

I suggest you to use the actual number and only allow 10 multiples. I predict people having problems with this.
The only thing against the complete separation of Trainer and Stadium/Supporter cards is that most recently they've gone back to being subtypes of Trainer cards. In this particular situation, it's easier to pick one option and stick to it (situations like "how do Fossil Pokémon work?", on the other hand, should probably remain identical to the real cards despite a variety of methods).

I know how to define the various card properties (I just need to know which ones are needed). Trust me, it's better my way. Smaller HP values are simpler to work with, and if people can't read the instructions and observe the hundreds of example cards, I'd say there's something wrong with them rather than the system being at fault.


Maybe in future?

Disagree. Put a number option (1-6) for more convenience

Disagree, Probably Isn't possible to put all in one page, so put two with the second page a continuation from the first one.

Put also a money/coins/card points option from buying boosters or cards.

I prefer this as a mode for Library.
Card shops are, to say the least, difficult when there's no currency (which is about the first thing I stated). The GBC game managed without money, and it's not something I'm going to worry about. This also applies to your comment about alternatives to booster prizes - I did consider cash alternatives, but decided against it (because that's not how the GBC game rolls, it doesn't feel right/appropriate to me, and it deters save-scumming for better booster pack contents).

I understand that duels are only done with either 3 or 6 Prize cards, which is why I wrote that. 1 is rather unfair as there's too much chance involved in the early game, and any other number seems random.

You can disagree all you want about the layout of the card summary, but it hasn't even been designed yet. All I know is that it's impossible to fit all the information on one screen, and I know how the GBC game does it, which is what I wrote. I don't know whether it will just show the entire card image (probably not), or show screens similar to the GBC game. It's up to the artists.

The Card Dex performs a different function to the Library. The Library shows you what cards you have (and how many you have), while the Card Dex is mainly used to show you what you're missing (just like the Pokédex, including where you can get missing cards from - booster packs are based on sets). The Library also has many pockets, making it impossible to use it as a set completion record. The Card Dex will remain as a separate feature.


About the game board I prefer the Game Boy TCG one rather that the actual board. Try to mix some options and display the moves and Poké-power in the main duel screen (at least without the effect or even only the names). Try to display also the weakness, resistance and retreat cost.

Instead of Hand, Attack, Check, Pkmn Power, Retreat and Done, I suggest you to use Hand, Action (with Attack and Done options) and Board (with Pkmn Power and Retreat options).

I prefer that you use the pokémon card artwork rather that the entire card.
Again, all that is mainly up to the artists who will come up with the appearance of the duel screen. I've tried playing around with some graphics, but it's very difficult for me to figure anything out (it's not my forte).

I imagine it would work like Asobikata, in that you select a card and a pop-up menu appears listing the appropriate actions that card can do (rather than the GBC method of choosing the action first then finding a card that can do it). The card graphics in the duel screen would have a number of icons on them, indicating a few things (whether retreat is possible, whether it has a PokéPower, whatever).

It would be best to use card templates, and just have card-specific illustrations.


My TCG project fell through simply due to laziness and getting distracted by other projects. But the idea still appeals to me, so I might revisit it... I'm thinking about even integrating it into my current project, so it'll be like two games in one: A regular Pokemon game, and a Pokemon TCG game.

Anyway, well-done design document. I should probably start making 'em for my projects instead of just jotting down random notes. I wish you the best of luck with your TCG game, but we might just become rivals if I include the TCG in my Pokemon game. But that might even be beneficial...
I'm not making a game myself. This is mainly a whim, and if it comes to fruition, it will be available to all as a kit (an addition to Essentials). I don't think I'll include it in Essentials itself, though.

That's why I won't consider you a "rival". Sharing ideas would be beneficial, of course, particularly between two people who are actually working on such projects.


Personally the original gba title is what I'd like to see remade because I like it so much, but that's because we haven't really had much else to compare it to.

I'd also really like to see the gameboard incorporated into the game. Essentially a background that will be different every time you play, to mimic the different poster/board things that come with the booster packs nowadays. This would be a great incentive to get more artists aboard, since they could literally draw almost anything for the boards.

I'd say show the overall board between turns, and then when it comes time to attack, the screen switches to the gbc style card vs. card set-up.

Lastly, I'm free as a artist for whatever when the framework gets set-up. I know that doesn't help you right now, but whether it be menu design, card art, or whatever, I can help.
The dual background random artwork is an interesting idea, and one which I probably wouldn't have thought of. It's up to the artists as to whether the dual will look like an actual playing field or just a mass of information (but I'd prefer the former).



By the way, when I say "artists", I mean: "anyone of you people who want to make a doodle in Paint of how you think something should look or be laid out". You don't need to be a good artist; you just need to visually show where you think the discard pile should appear (or whatever).

I need this concept art now. I can't really make any progress at all until I know what the screens are supposed to look like (and I'm bad at that). The more art, the better. Draw everything. Thanks.

FL
September 22nd, 2012, 06:30 PM
In the deck card count make like (example): if you have 3 Rattata cards, you can put 3 in a deck, 1 in other, 3 in even other, etc... in the same time, but without way to put 4 in one deck.

I know how to define the various card properties (I just need to know which ones are needed). Trust me, it's better my way.I am thinking about the user side. If a dev wish to create a new subtypes, he just make something like: "Subtype=Super, Hyper", rather than putting a internal name and adding in scripts.

Card shops are, to say the least, difficult when there's no currency (which is about the first thing I stated). The GBC game managed without money, and it's not something I'm going to worry about. This also applies to your comment about alternatives to booster prizes - I did consider cash alternatives, but decided against it (because that's not how the GBC game rolls, it doesn't feel right/appropriate to me, and it deters save-scumming for better booster pack contents).Most of the TCG games use a current, so the dev that will use this kit probably will use this, and isn't hard to make. Don't put this is like a fight against the current.

I understand that duels are only done with either 3 or 6 Prize cards, which is why I wrote that. 1 is rather unfair as there's too much chance involved in the early game, and any other number seems random.The Game Boy game has this option and isn't hard to do. Like you say: you are making a feature in a dev kit, not one actual game.

Maruno
September 23rd, 2012, 05:13 AM
In the deck card count make like (example): if you have 3 Rattata cards, you can put 3 in a deck, 1 in other, 3 in even other, etc... in the same time, but without way to put 4 in one deck.
You're suggesting that decks act like "recipes", where the cards themselves remain in the Library (rather than the decks physically containing the cards). I did consider this approach, but it would be harder to make sure that decks aren't broken if you get rid of a card (via selling/tossing/trading). I don't think it's worth the effort, it makes less sense than decks physically containing their cards, and it either doesn't affect the player or encourages them to get more cards so they can have both desired decks at once.


I am thinking about the user side. If a dev wish to create a new subtypes, he just make something like: "Subtype=Super, Hyper", rather than putting a internal name and adding in scripts.

Most of the TCG games use a current, so the dev that will use this kit probably will use this, and isn't hard to make. Don't put this is like a fight against the current.

The Game Boy game has this option and isn't hard to do. Like you say: you are making a feature in a dev kit, not one actual game.
If you're adding a new card Subtype, you're going to need to edit the scripts anyway in order to make it do anything. It's as simple as adding the line "Super = 12" in the appropriate place. My way also makes it easier to create cards, as if you mistype a card's Subtype, it simply won't compile and will immediately tell you why (rather than it compiling with the wrong Subtype and then be incompatible with whatever effects you create for that Subtype, which is a harder error to track down).

Support for a currency isn't important at the moment. As I've said, I don't know if I'll ever add a currency anyway. It's a matter of what feels right for the game, and I don't think duels for cash feels right.

Where in the GBC game can you decide how many prize cards you will use? I don't recall any choice at all.

FL
September 23rd, 2012, 05:59 AM
You're suggesting that decks act like "recipes", where the cards themselves remain in the Library (rather than the decks physically containing the cards). I did consider this approach, but it would be harder to make sure that decks aren't broken if you get rid of a card (via selling/tossing/trading). I don't think it's worth the effort, it makes less sense than decks physically containing their cards, and it either doesn't affect the player or encourages them to get more cards so they can have both desired decks at once.Yes, like recipes! I consider this even easier, like, if you have 3 cards and want to sell/toss/trade 2 you only need to check if some deck contain 3 or 2 cards, if any contain, them block it. The recipe idea encorage the player to try several different decks without needing to disassemble the old ones, almost all (if isn't all) actual TCG electronic games use recipes concept.

Where in the GBC game can you decide how many prize cards you will use? I don't recall any choice at all.This choice I am talking for devs. In the Game Boy TCG, every duel have their prizes previous set by the developer, the importants ones (plus Imakuni?) are 6.This duel (http://youtu.be/r6y-WGNYsR4) have 4 prizes.

the__end
September 23rd, 2012, 09:54 AM
The Card Dex performs a different function to the Library. The Library shows you what cards you have (and how many you have), while the Card Dex is mainly used to show you what you're missing (just like the Pokédex, including where you can get missing cards from - booster packs are based on sets). The Library also has many pockets, making it impossible to use it as a set completion record. The Card Dex will remain as a separate feature.

well it looks like i have misunderstood something... ^^
you remember me saying i want to start with a "deck construction screen"?
i actually meant something like the library you mentioned above where it is shown which cards the player owns and stuff like this...
i thought you mean with "library" something like a Card Dex so i made a design for a card dex screen... :embarrass
english is not my native language so sry for the misunderstanding! :(
cant you just start the project with the dex screen where you add the first set of cards?
here is what i made even thought its not what you wanted: http://www.mediafire.com/?f8lkuytc126jnb1
i wanted to make the info screen for the cards after this but it looks like i should make the library like you described... ^^
ahh by the way i have all the existing cards as scans so i resized the base set to fit in the card dex screen... (i will resize more sets later)
here they are: http://www.mediafire.com/?gt77e7x7b5ka11k
these cards are pretty small because otherwise i couldnt fit them in the dex screen...
i already prepared bigger size cards (where you can read the text on the cards) for the info screen...
i will upload them after i am finished with the info screen...
and here is a screenshot for everyone who dont want to download the psd file...
http://i.imgur.com/9Xd3V.png

EDIT:
if you dont have photoshop you can open .psd files with paint.net and this plugin: http://www.chip.de/downloads/Paint.NET-PSD-Plug-in_41383756.html

Maruno
September 23rd, 2012, 11:41 AM
I can start creating pretty much any part of the game; I would just have preferred to begin with the Library.

Thanks for the card images, but we shouldn't be using images of the whole card. We just need the illustration itself. Making those should wait, though, until we've decided what a card is actually going to look like (e.g. the size of it, which will depend on the designs of the various screens). Ideally, a card will look the same in every screen (except the Card Info, where all its information will be displayed rather than just the important stuff).


http://i.imgur.com/9Xd3V.png
Your design certainly looks nice, but the layout needs improving.

The whole point of the Card Dex is for it to display a list, which means it's better if you can see more of the list at once. What you've done is waste some vertical space for the header and footer, and then space out the list more than necessary (48 pixels per line as opposed to the standard 32), resulting in just 5 entries visible at once.

The only sorting method will be by index number, so the footer is completely unnecessary.

I don't know whether we'll bother with "seen". It's simpler to use just "owned". And in that case, there's no need for an icon to show that a card is owned - the name being shown will suffice.

the__end
September 23rd, 2012, 01:28 PM
Thanks for the card images, but we shouldn't be using images of the whole card. We just need the illustration itself. Making those should wait, though, until we've decided what a card is actually going to look like (e.g. the size of it, which will depend on the designs of the various screens). Ideally, a card will look the same in every screen (except the Card Info, where all its information will be displayed rather than just the important stuff).
well imo its better to use the whole card because the use of a blank card where you add the illustration like in the gbc games is limited after a certain point...
you know in the newer cards the pokemon started to go out of the card window...
look at this example: http://pokebeach.com/scans/next-destinies/54-mewtwo-ex.jpg

there are 2 sizes i would suggest for a card...
first we need a small image like the cards i uploaded in my previous post (132x182 pixel)
the other one is a full view of the card like these: http://www.mediafire.com/?wqw1ug175vpc7gc
their size is 276x380 which barely fits in the current screen size of essentials... ^^
you can see & read almost anything in this size...
it looks even better with the newer cards where you have a lot of details... :)
ahh and of course we need tiny cards for the library screen...
they dont need to have any details so a tiny card for each card type should be enough...

Your design certainly looks nice, but the layout needs improving.

The whole point of the Card Dex is for it to display a list, which means it's better if you can see more of the list at once. What you've done is waste some vertical space for the header and footer, and then space out the list more than necessary (48 pixels per line as opposed to the standard 32), resulting in just 5 entries visible at once.

The only sorting method will be by index number, so the footer is completely unnecessary.
i will improve these points...
i hope i can make 10-12 card names visible at once next time... ^^
and well a sorting method for the card dex is not that use full...
but we need a sorting method for the library right?
otherwise it would take hours to make a deck...

I don't know whether we'll bother with "seen". It's simpler to use just "owned". And in that case, there's no need for an icon to show that a card is owned - the name being shown will suffice.
without the "seen" option how will the players know which cards are missing in their collection? ^^
after seeing a card (for example in battle) that you want to have how are you supposed to get it if you dont know which boosters you need to open? :)
its like in the pokemon games you know...
if you dont know the location where the pokemon are you cant find them without some luck...
it would be almost impossible to get a rare pokemon with a 1% rate to find...
with rare cards its even worse because there are tons of them and if you have the luck to get one its most likely not the one you wanted... ^^

EDIT
changed the layout a little bit... ;)
http://www.mediafire.com/?sfy9y87az6p75rw
screenshot:
http://i.imgur.com/6t3EJ.png
if this is ok for the beginning i will start work on the card info screen... :)

Maruno
September 24th, 2012, 10:42 AM
well imo its better to use the whole card because the use of a blank card where you add the illustration like in the gbc games is limited after a certain point...
you know in the newer cards the pokemon started to go out of the card window...
look at this example: http://pokebeach.com/scans/next-destinies/54-mewtwo-ex.jpg

there are 2 sizes i would suggest for a card...
first we need a small image like the cards i uploaded in my previous post (132x182 pixel)
the other one is a full view of the card like these: http://www.mediafire.com/?wqw1ug175vpc7gc
their size is 276x380 which barely fits in the current screen size of essentials... ^^
you can see & read almost anything in this size...
it looks even better with the newer cards where you have a lot of details... :)
ahh and of course we need tiny cards for the library screen...
they dont need to have any details so a tiny card for each card type should be enough...
I'm pretty sure we'd just need the one image per card (the largest one), since the game can resize it where necessary.


i will improve these points...
i hope i can make 10-12 card names visible at once next time... ^^
and well a sorting method for the card dex is not that use full...
but we need a sorting method for the library right?
otherwise it would take hours to make a deck...
I don't know if even the Library needs sorting methods. Can't it just act like the Bag, where you can sort it yourself, and new cards are added to the bottom? Besides, I don't know what sorting method would be best.

If having too many cards becomes a serious general concern, I may add a "Trunk" option to the PC, where you can dump cards you don't use. However, it's not something I'm going to bother with now.


without the "seen" option how will the players know which cards are missing in their collection? ^^
after seeing a card (for example in battle) that you want to have how are you supposed to get it if you dont know which boosters you need to open? :)
its like in the pokemon games you know...
if you dont know the location where the pokemon are you cant find them without some luck...
it would be almost impossible to get a rare pokemon with a 1% rate to find...
with rare cards its even worse because there are tons of them and if you have the luck to get one its most likely not the one you wanted... ^^
I'm still not convinced.


EDIT
changed the layout a little bit... ;)
http://www.mediafire.com/?sfy9y87az6p75rw
screenshot:
http://i.imgur.com/6t3EJ.png
if this is ok for the beginning i will start work on the card info screen... :)
This new layout is a lot better than your first attempt.

The card numbers should appear next to each card, in place of the ball symbol (which isn't needed if we're not using a "seen" option).

There shouldn't be any scrolling left/right to change sets here. The sets will be listed in another screen first (like the list of Regional Dexes in Essentials).

I'm also not sure about using BW graphics.



I've attached my very poor attempt at a Library screen, just so you have an idea of what I was thinking of. If you have a better layout, go for it. You'll certainly have better graphics.

mewlover22
September 24th, 2012, 01:41 PM
all good ideas this will be a great project when its done any chance of being able to add our own sets when this game comes out?

the__end
September 24th, 2012, 01:52 PM
I'm pretty sure we'd just need the one image per card (the largest one), since the game can resize it where necessary. if the quality is acceptable this would save me some work... ^^
so should i send you the first sets (size: 276x380)? :)

I don't know if even the Library needs sorting methods. Can't it just act like the Bag, where you can sort it yourself, and new cards are added to the bottom? Besides, I don't know what sorting method would be best.

If having too many cards becomes a serious general concern, I may add a "Trunk" option to the PC, where you can dump cards you don't use. However, it's not something I'm going to bother with now.
at the beginning its not needed because the first 3 sets have together like 200 cards...
but each set adds about 100 cards so a sorting system is essential after you have reached like 1000 cards... ^^
imo the most important sorting method is alphabetical but there are some more points which can be used to sort the cards like hp, atk, type, rarity and so on... :)

I'm still not convinced.
well i dont know what else i can tell you about the "seen" option to convince you expect the points i told you in my other post... ^^
how about hearing the opinions of other users?
imo its important to know which cards can be found in which booster but if its just me that thinks this way i will remove the "seen" option without regrets... :)

The card numbers should appear next to each card, in place of the ball symbol (which isn't needed if we're not using a "seen" option).

There shouldn't be any scrolling left/right to change sets here. The sets will be listed in another screen first (like the list of Regional Dexes in Essentials).

I'm also not sure about using BW graphics.
i knew i forgot something (index numbers)! xD
i will add them to the next version... :)
but i dont know if i should remove the ball symbol which marks the cards as "seen"...
is it ok for you if i move it to a different position where it can be removed easily until some more people tell us their opinion about the "seen" option? ^^

removing the arrows is an easy task...
should i give this screen where the sets are listed a try too?
i can already see it before me! ^^

well i used the BW style because its easy to work with ad the results look good... ^^
i wanted to replace them with a more unique style after some more progress is done...
if you want i can change the style with the next version but it would take a lot of time where i could work for other important stuff like info or library screen...
imo we should stick with the BW graphics until we have a concept for some more screen (library, card info, deck construction and the set screen mentioned above) but well its not my decision... ^^

I've attached my very poor attempt at a Library screen, just so you have an idea of what I was thinking of. If you have a better layout, go for it. You'll certainly have better graphics.
this is realy helpfull! :)
an idea i had right after seeing your screen it that the icons on the top can be made to dropdown boxes where you can add sorting methods!
for example a dropdown box for the set, one for the cardtype, one for the first letter of the card (which is a way of sorting alphabetical), one box with numbers for hp, one to check if the card has pokepower/body and so on...
this way you can find exactly the card you look for... ^^
there is still some time until i start with the library screen so think about it and add all the stuff you want there... ;)

Maruno
September 24th, 2012, 03:37 PM
Progress update
Since the last time I mentioned my progress, I've rewritten the compiler and added pretty much every card aspect to the list of things it compiles, created a Library array whose cards are auto-sorted into the correct pocket, created a Deck object and array for the player's decks, added a load of methods which make manipulating cards easier, and today I created another compiler script which reads a PBS file containing pre-made decks (which must each be 60 cards long).

Nearly all of this is behind-the-scenes code, which means the user won't ever need to bother with it. Amongst other things, I can now add a card to the Library or a deck with a single line of code, knowing that the appropriate checks are made (such as the 4-card limit per species). Deleting is also just as simple and complete (e.g. deleting a card from the Library makes sure it's not being used in a deck first). It may all be rather disjointed at the moment, but it'll come together when the screens have been created.

I have 4 script sections and 678 total lines of code to do all the above.

Just thought you might be interested. Not bad for a week's work, particularly considering I haven't spent as long on it as I could have due to laziness and waiting for a screen to create.


all good ideas this will be a great project when its done any chance of being able to add our own sets when this game comes out?
Of course. Each set is its own txt file, so you can easily throw in more and they'll be added automatically. The relatively hard part is filling the file in correctly, and the actual hard part is programming in all the new effects.


if the quality is acceptable this would save me some work... ^^
so should i send you the first sets (size: 276x380)? :)
As I said, we should wait until we have decent designs for the screens, because we can't know what size card graphics we'll need until then.


at the beginning its not needed because the first 3 sets have together like 200 cards...
but each set adds about 100 cards so a sorting system is essential after you have reached like 1000 cards... ^^
imo the most important sorting method is alphabetical but there are some more points which can be used to sort the cards like hp, atk, type, rarity and so on... :)
Remember that the contents of each set will (probably) be divided up into many Library pockets (one per Pokémon element, Trainers, Energy). It'll be quite a while before you start losing cards.

Alphabetical sorting is fair enough, as is by card type (Basic/Stage 1/Baby/etc.). I think I'm just about able to manage that - remember that I do have to code all this, and I don't want to give myself a harder time than necessary.


well i dont know what else i can tell you about the "seen" option to convince you expect the points i told you in my other post... ^^
how about hearing the opinions of other users?
imo its important to know which cards can be found in which booster but if its just me that thinks this way i will remove the "seen" option without regrets... :)
I see the Card Dex as more of a checklist than of a way of learning where cards can be found. In the real world, you don't keep a track which which cards you know exist, do you? Other CCG-based games don't. If you want to know the contents of a set, you can use the Internet. Plus, there's the joy of opening a booster pack and discovering what lies within (new cards will be marked as such, so you at least know if you gained anything new).


i knew i forgot something (index numbers)! xD
i will add them to the next version... :)
but i dont know if i should remove the ball symbol which marks the cards as "seen"...
is it ok for you if i move it to a different position where it can be removed easily until some more people tell us their opinion about the "seen" option? ^^

removing the arrows is an easy task...
should i give this screen where the sets are listed a try too?
i can already see it before me! ^^

well i used the BW style because its easy to work with ad the results look good... ^^
i wanted to replace them with a more unique style after some more progress is done...
if you want i can change the style with the next version but it would take a lot of time where i could work for other important stuff like info or library screen...
imo we should stick with the BW graphics until we have a concept for some more screen (library, card info, deck construction and the set screen mentioned above) but well its not my decision... ^^
You can do what you like with the designs. I'm not expecting the absolute final designs immediately; I don't mind if I just have placeholder graphics, so long as I know what layout to work to.

The screen listing the sets would be nice to have too; I imagine it looks pretty much the same as the Card Dex. Each set should list its completion next to it. Sets for which the player has no cards will not be shown at all, like empty Regional Dexes in Essentials. There's no need to display an overall completion value. You may want to put each set's icon next to it to liven things up; I haven't decided either way.


this is realy helpfull! :)
an idea i had right after seeing your screen it that the icons on the top can be made to dropdown boxes where you can add sorting methods!
for example a dropdown box for the set, one for the cardtype, one for the first letter of the card (which is a way of sorting alphabetical), one box with numbers for hp, one to check if the card has pokepower/body and so on...
this way you can find exactly the card you look for... ^^
there is still some time until i start with the library screen so think about it and add all the stuff you want there... ;)
I think a better way would be to open a menu with the Z key (like it used to in the Pokédex), and this menu would list several sorting methods to use. Again, deciding which methods should exist is the key. That is, if there will be multiple sorting methods at all.

I think what you are describing are filters (i.e. hide cards which don't match the criteria), but I'm not sure I'd be able to do that.

hansiec
September 24th, 2012, 04:47 PM
I could help here, if you give me a script to work on considering that it's not relative to graphics directly (drawing images and or text directly) I am fine at what you want to throw at me.

Maruno
September 25th, 2012, 06:06 AM
Pretty much everything I can think of is either directly related to drawing things on-screen, or are fragments of code which aren't really useful at the moment and would be subject to change anyway.

That's why, if you can, I'd like you to think about how best to implement card effects in battle, and how/when to check them.

Ideally I would like all effects of each kind (attack, ability, held item, general card effects) to to be grouped together in their own section, like move effects do with their function codes (card effects have their own function codes). That is, have something similar to class PokeBattle_Move (a basic class for a standard effect), then a PokeBattle_MoveEffects-type script section containing addition classes, one for each function code. The basic class would do nothing, but would contain all the methods which are called at every time any possible effect would be checked/used (which each function code's class can overwrite).

This would require a TCGBattle_CardEffect (or TCGBattle_AttackEffect, TCGBattle_AbilityEffect, etc.) entity to be created for each effect, but should they be created/discarded only while being used/checked, or should they constantly exist for as long as the card with that effect is on the field? Should there be multiple classes, one per kind of effect, which are used solely for their effect, or should there be just the one class for the card itself (which will exist anyway) with all possible effects/checks merged into that? Should the four kinds of function code mentioned above be separated into distinct function code continuums at all? Should handlers (like those used for some item effects) be used instead of the PokeBattle_Move-style "basic plus addition" classes? Could a hybrid of function codes and handlers work better, or even be possible?

Then we have the question of when effects need to be checked (e.g. before/during/after using an attack, upon flipping a coin, between turns, after drawing a card, when picking a Prize Card, etc. etc.). There are obviously many points during a duel when an effect could occur, so there would need to be many methods/handlers to cover all these occasions. And some effects only affect their own card, while some affect all cards in play - should these be differentiated in how they are checked, or just in the effect itself?

I hope this has made any sense at all.

the__end
September 25th, 2012, 06:52 AM
As I said, we should wait until we have decent designs for the screens, because we can't know what size card graphics we'll need until then.
ok... ^^
just thought that the cards could be useful when scripting stuff...
after all they are the max. size the current screen can show so having them would be useful i thought... :)

Remember that the contents of each set will (probably) be divided up into many Library pockets (one per Pokémon element, Trainers, Energy). It'll be quite a while before you start losing cards.

Alphabetical sorting is fair enough, as is by card type (Basic/Stage 1/Baby/etc.). I think I'm just about able to manage that - remember that I do have to code all this, and I don't want to give myself a harder time than necessary.

I see the Card Dex as more of a checklist than of a way of learning where cards can be found. In the real world, you don't keep a track which which cards you know exist, do you? Other CCG-based games don't. If you want to know the contents of a set, you can use the Internet. Plus, there's the joy of opening a booster pack and discovering what lies within (new cards will be marked as such, so you at least know if you gained anything new).
i have to apologize!
i just realized that the features i mentioned are nice and all but they are a pain to script right?
i will remove the "seen" marks from the card dex screen...
that the new cards are marked as "new" should be enough! :)
and the sorting system is unnecessary if its possible for you to make the filters you mentioned...

The screen listing the sets would be nice to have too; I imagine it looks pretty much the same as the Card Dex. Each set should list its completion next to it. Sets for which the player has no cards will not be shown at all, like empty Regional Dexes in Essentials. There's no need to display an overall completion value. You may want to put each set's icon next to it to liven things up; I haven't decided either way.
should the completion value shown in percent?
it would definitely look better and save some space...

I think a better way would be to open a menu with the Z key (like it used to in the Pokédex), and this menu would list several sorting methods to use. Again, deciding which methods should exist is the key. That is, if there will be multiple sorting methods at all.

I think what you are describing are filters (i.e. hide cards which don't match the criteria), but I'm not sure I'd be able to do that.
yeah i meant filters! :)
they are much better then just sorting the cards...
hope you will find a way to add this feature...

filters are often used in TCG video games like "Yu-Gi-Oh! 5D's World Championship 2011" to sort your cards in your library and find the one you want to have in your deck... ^^
here is a screen:http://i.imgur.com/29A4D.png
i thought we could do the library something like this...
not as complicated but the structure should look similar...
of course we have to implement the top ds screen (where the card image is) to the bottom one...
maybe make it pop up if you click a button?

hansiec
September 25th, 2012, 09:23 AM
Alright, I did understand what you said there.



I prefer a signle class (PokeBattle_Effects) with different variables that will in the outcome suit every needed situation
and to make it more flexible add a custom_code segment which allows you to evaluate a custom code just for incase there are
some un-defined methods required within the effect

OR

We can do something simmilar to Essentials where we must create a code for every move (which is time more time consuming in
my opinion)

the PokeBattle_Effects class can store any type of effect: Move/Ability/Card and can be activated at selected points:
Turn Started/Turn Ended/Coin Flipped/Coin Heads/Coin Tales/Your Turn/Enemy Turn/ect. using an array you can select multiple
points to activate this at. I also did create a sample of what I mean (I only spent about 5 minutes or so on this so it's
not perfect and may seem a little confusing) but this is what I made:



=begin
This is an example of what I would do for Effects, I can make any changes you wish
You can add to this as you wish and or modify it. If you don't like this system,
I can completely reconstruct this to Essential's style.
=end
class PokeBattle_Effects

attr_accessor :type # Integer -- 0 = card, 1 = move, 2 = ability
attr_accessor :activation_type # Integer -- when to activate the effect (0= your turn, 1= enemy's turn, 2= coin flip, 3= before attack, 4= during attack, ect.)
attr_accessor :hold_effect # Integer -- how many turns to hold the effect
attr_accessor :effect # Integer -- 0 = damage, 1 = status, and so forth
attr_accessor :effect_attribute# Integer -- how much damage?, which status?, ect.
attr_accessor :chance # Integer -- Percentage chance of the succes of the effect
attr_accessor :custom_function # String -- A string containing ruby code on what to execute (executes every time called)
attr_accessor :activated # Boolean -- Is this effect active?
attr_accessor :turns # Integer -- Maximum turns to hold the effect (auto selected by hold_effect)

# startup of the class
def initialize(type, activation_type, effect, hold_effect = 1, custom_function = "")
@type = type
@activation_type = activation_type
@effect = effect
@hold_effect = hold_effect
@custom_function = custom_function
@turns = hold_effect
end

# returns wether the ability is avaible to activate
# if it is activatable it reset the activation turns (unless already active)
def activatable?(a_type)
@hold_effect = @turns if @activation_type == a_type && !@activated
@activated = true if @activation_type == a_type && !@activated
return @activation_type == a_type
end

# returns if the effect is currently active
def updatable?
return @activated
end

# updates and returns an array (the length will be 1 if it did not do anything)
def update
@hold_effect -= 1
destroy = @hold_effect > 0
ret = [destroy]
if rand(100-@chance) == 0
ret.push(effect)
ret.push(effect_attributes)
ret.push(eval(@custom_function)) if @custom_function != ""
end
return ret
end

end




also, if you are going to read data ini-style like essentials does I made a small tool for this too:




=begin
Just a handy tool for reading ini files

Reads ini files and stores them in data.

You can get values like so:
ini.read_value(section(string or int), variable(string or int), default(anything))
returns the value of the ini you set, but returns default if it does not exist
=end


class IniReader
attr_accessor :data
def initialize(ini)
array = IO.readlines(ini)
@data = {}
startoff_section = "["

section_name = ""
section_hash = {}
for i in 0..array.length-1
if array[i][0] == startoff_section[0]
if i != 0
@data[section_name] = section_hash
end
section_name = array[i].split("[")[1].split("]")[0]
elsif array[i].count("=") != 0
tary = array[i].split("=")
value = ""
for i in 0..tary.length-2
value+=tary[i+1]
end
section_hash[tary[0]]=value
end
end
@data[section_name] = section_hash
end

def read_value(section, variable, default=-1)
section = "#{section}"
variable = "#{variable}"
if @data[section][variable] == nil
ret = default
else
ret = @data[section][variable]
end
return ret
end

end


n = IniReader.new("Game.ini")
print n.read_value("Game", "Title")



so if you have a different idea or have improvements for the PokeBattle_Effects class, let me know.

Maruno
September 25th, 2012, 02:26 PM
i have to apologize!
i just realized that the features i mentioned are nice and all but they are a pain to script right?
i will remove the "seen" marks from the card dex screen...
that the new cards are marked as "new" should be enough! :)
and the sorting system is unnecessary if its possible for you to make the filters you mentioned...


should the completion value shown in percent?
it would definitely look better and save some space...
Adding filters is the thing I'm not sure I'm able to do. A "seen" counter and list sorting are doable, and probably not too difficult. As I said, it's about deciding what's needed, and what people just want for the sake of wanting things. I don't think a "seen" counter is needed; you just want it because the Pokédex has it.

Completion should be in the form 86/102 rather than a percentage.

I've attached my tweaking to your design. I'm not sure about having the card icons there (which mean the same as in the GBC game; element symbols are for energy cards only), but it's a thought. I hope there's enough space for all possible card names.


yeah i meant filters! :)
they are much better then just sorting the cards...
hope you will find a way to add this feature...

filters are often used in TCG video games like "Yu-Gi-Oh! 5D's World Championship 2011" to sort your cards in your library and find the one you want to have in your deck... ^^
here is a screen:http://i.imgur.com/29A4D.png
i thought we could do the library something like this...
not as complicated but the structure should look similar...
of course we have to implement the top ds screen (where the card image is) to the bottom one...
maybe make it pop up if you click a button?
That's a huge mass of information there. I notice it just has the one pocket for cards, and displays the deck in a separate tab. That's why the filters are so important in the Yu-Gi-Oh! game: all the cards are shown at once, and only 4 are visible at a time. My game will separate owned cards into pockets (and show more cards at once), which drastically reduces the huge card lists. Large lists will still be a problem, but not as soon (for example, having all cards from Base Set, Jungle and Fossil make the biggest pocket the Grass Pokémon one, with 40-odd cards, which isn't that big considering). Basically, I'm trying to ignore the issue.

One of the things to decide upon when designing the Library is which pockets to have. I've just been assuming one per Pokémon card element plus the others (see my sketch). There may be alternatives.

Another thing to remember is that the player will be using the keyboard. This will affect the design. Remember also that, if possible, the game should fit a screen size of 256x192.

The top screen in your screenshot is simply the card summary screen, which is a separate screen to be designed.


Alright, I did understand what you said there.

I prefer a signle class (PokeBattle_Effects) with different variables that will in the outcome suit every needed situation
and to make it more flexible add a custom_code segment which allows you to evaluate a custom code just for incase there are
some un-defined methods required within the effect

OR

We can do something simmilar to Essentials where we must create a code for every move (which is time more time consuming in
my opinion)

the PokeBattle_Effects class can store any type of effect: Move/Ability/Card and can be activated at selected points:
Turn Started/Turn Ended/Coin Flipped/Coin Heads/Coin Tales/Your Turn/Enemy Turn/ect. using an array you can select multiple
points to activate this at. I also did create a sample of what I mean (I only spent about 5 minutes or so on this so it's
not perfect and may seem a little confusing) but this is what I made:



=begin
This is an example of what I would do for Effects, I can make any changes you wish
You can add to this as you wish and or modify it. If you don't like this system,
I can completely reconstruct this to Essential's style.
=end
class PokeBattle_Effects

attr_accessor :type # Integer -- 0 = card, 1 = move, 2 = ability
attr_accessor :activation_type # Integer -- when to activate the effect (0= your turn, 1= enemy's turn, 2= coin flip, 3= before attack, 4= during attack, ect.)
attr_accessor :hold_effect # Integer -- how many turns to hold the effect
attr_accessor :effect # Integer -- 0 = damage, 1 = status, and so forth
attr_accessor :effect_attribute# Integer -- how much damage?, which status?, ect.
attr_accessor :chance # Integer -- Percentage chance of the succes of the effect
attr_accessor :custom_function # String -- A string containing ruby code on what to execute (executes every time called)
attr_accessor :activated # Boolean -- Is this effect active?
attr_accessor :turns # Integer -- Maximum turns to hold the effect (auto selected by hold_effect)

# startup of the class
def initialize(type, activation_type, effect, hold_effect = 1, custom_function = "")
@type = type
@activation_type = activation_type
@effect = effect
@hold_effect = hold_effect
@custom_function = custom_function
@turns = hold_effect
end

# returns wether the ability is avaible to activate
# if it is activatable it reset the activation turns (unless already active)
def activatable?(a_type)
@hold_effect = @turns if @activation_type == a_type && !@activated
@activated = true if @activation_type == a_type && !@activated
return @activation_type == a_type
end

# returns if the effect is currently active
def updatable?
return @activated
end

# updates and returns an array (the length will be 1 if it did not do anything)
def update
@hold_effect -= 1
destroy = @hold_effect > 0
ret = [destroy]
if rand(100-@chance) == 0
ret.push(effect)
ret.push(effect_attributes)
ret.push(eval(@custom_function)) if @custom_function != ""
end
return ret
end

end

Your first suggestion is meaningless, since it isn't a solution in itself but just a restating of the problem. The only relevant part is where you imply that there's only one kind of function code, which covers any and all possible effects of anything.

Basically, how do you know which effect a particular card has? You can either code in an effect which happens only when the card is XYZ, or you can define the card to have a function code and then code in an effect which happens for any card with that function code. I'm suggesting the latter, since it allows for reusing of some common card effects (e.g. "Flip a coin and paralyse the target if Heads.").

There will be an equivalent of PokeBattle_Effects, which contains some of the more common effects that can happen (e.g. paralysing a Pokémon). However, putting every single possible effect in here is pointless, as most will only be used for one card and may as well go in PokeBattle_MoveEffects under the appropriate function code.

No, I think having a PokeBattle_MoveEffects for card effects (probably one for an attack's effect and one for any other kind of effect), plus creating a PokeBattle_Move entity for each attack and effect when the card is played (and remaining while the card is still in play) is the best option I can think of. It may use elements of your code.

I'm sure I'm not explaining this fully enough, but I have a vague picture in my head. It's a complicated picture. It'd be easier if there were no effects in the game.


also, if you are going to read data ini-style like essentials does I made a small tool for this too:




=begin
Just a handy tool for reading ini files

Reads ini files and stores them in data.

You can get values like so:
ini.read_value(section(string or int), variable(string or int), default(anything))
returns the value of the ini you set, but returns default if it does not exist
=end


class IniReader
attr_accessor :data
def initialize(ini)
array = IO.readlines(ini)
@data = {}
startoff_section = "["

section_name = ""
section_hash = {}
for i in 0..array.length-1
if array[i][0] == startoff_section[0]
if i != 0
@data[section_name] = section_hash
end
section_name = array[i].split("[")[1].split("]")[0]
elsif array[i].count("=") != 0
tary = array[i].split("=")
value = ""
for i in 0..tary.length-2
value+=tary[i+1]
end
section_hash[tary[0]]=value
end
end
@data[section_name] = section_hash
end

def read_value(section, variable, default=-1)
section = "#{section}"
variable = "#{variable}"
if @data[section][variable] == nil
ret = default
else
ret = @data[section][variable]
end
return ret
end

end


n = IniReader.new("Game.ini")
print n.read_value("Game", "Title")


so if you have a different idea or have improvements for the PokeBattle_Effects class, let me know.
I've already made scripts which compile the new PBS files and access that data, so I don't think I need to muck around with any ini files. I'm not sure why you mentioned this.

the__end
September 25th, 2012, 04:37 PM
I've attached my tweaking to your design. I'm not sure about having the card icons there (which mean the same as in the GBC game; element symbols are for energy cards only), but it's a thought. I hope there's enough space for all possible card names.
hmm ok i will make it similar to this... ^^
and it will be possible to few the card summary screen from the card dex screen right?
if yes the card icons are unnecessary because you can see the card types in the card summary... ^^

That's a huge mass of information there. I notice it just has the one pocket for cards, and displays the deck in a separate tab. That's why the filters are so important in the Yu-Gi-Oh! game: all the cards are shown at once, and only 4 are visible at a time. My game will separate owned cards into pockets (and show more cards at once), which drastically reduces the huge card lists. Large lists will still be a problem, but not as soon (for example, having all cards from Base Set, Jungle and Fossil make the biggest pocket the Grass Pokémon one, with 40-odd cards, which isn't that big considering). Basically, I'm trying to ignore the issue.
actually the 1873 cards shown in the screen are the cards i own... :)
the cards i dont own arent shown there...
but i understand what you mean...
if more cards are shown at once and there are less cards there is no need for that many filters right?
you are right...
this is an issue that can be talked about after it becomes a problem because it will take some time until then... ^^

One of the things to decide upon when designing the Library is which pockets to have. I've just been assuming one per Pokémon card element plus the others (see my sketch). There may be alternatives.
i will most likely add alternatives and remove them if you dont like them... :)

Another thing to remember is that the player will be using the keyboard. This will affect the design. Remember also that, if possible, the game should fit a screen size of 256x192.
the usage of the keyboard i have always in mind...
what wonders me is the screen size...
the essentials screen is 512x384 right?
i know it uses double size graphics but i didnt thought it have to use them...
is it possible to show an image with the size of 276x380 (max. card size that would fit without changing card proportions) completely in the current essentials screen?
or does it need to be half the size so the game can double it (which includes much quality loss) to show it completely?
hope i could explain what i mean...

It'd be easier if there were no effects in the game.
i dont know much about scripting but if the effects are that annoying just make a working version without effects and add the effects one after another... ^^
changing existing effects to fit with the newly added effect is maybe easier than making many effects at the same time so that they will work together...

FL
September 26th, 2012, 03:29 AM
I've attached my very poor attempt at a Library screen, just so you have an idea of what I was thinking of. If you have a better layout, go for it. You'll certainly have better graphics. I liked your idea, having the text small provides more space! I suggest you to put the horizontal type bar as a vertical bar to a better use of this space, and, maybe, remove the pokémon level.

No, I think having a PokeBattle_MoveEffects for card effects (probably one for an attack's effect and one for any other kind of effect), plus creating a PokeBattle_Move entity for each attack and effect when the card is played (and remaining while the card is still in play) is the best option I can think of. It may use elements of your code.I thought in something like this.

hmm ok i will make it similar to this... ^^
and it will be possible to few the card summary screen from the card dex screen right?
if yes the card icons are unnecessary because you can see the card types in the card summary... ^^I like theses icons, but do a color revamp.

One of the things to decide upon when designing the Library is which pockets to have. I've just been assuming one per Pokémon card element plus the others (see my sketch). There may be alternatives.Put one pocket for each subtype and one for "All". For others, use search filters.


I suggest you to take a look in the online game Dueling Network (http://www.duelingnetwork.com) to gather ideas/concepts.

Maruno
September 26th, 2012, 05:10 AM
hmm ok i will make it similar to this... ^^
and it will be possible to few the card summary screen from the card dex screen right?
if yes the card icons are unnecessary because you can see the card types in the card summary... ^^
Of course it will be possible to view the card details screen from the Card Dex. I just thought the icons might make the screen look a bit less dull. There's also the possibility of including the rarity icons somewhere, and/or colouring in card names depending on their rarity.


the usage of the keyboard i have always in mind...
what wonders me is the screen size...
the essentials screen is 512x384 right?
i know it uses double size graphics but i didnt thought it have to use them...
is it possible to show an image with the size of 276x380 (max. card size that would fit without changing card proportions) completely in the current essentials screen?
or does it need to be half the size so the game can double it (which includes much quality loss) to show it completely?
hope i could explain what i mean...
Yes, Essentials has a 512x384 screen. However, it also has the option of halving this, and playing at 256x192, which means if graphics aren't made to suit this smaller size, they'll look odd when they're shrunk. I know, only a prat would play at the smaller size, but I'd still like for the screens to suit those dimensions if possible.

You're still assuming that the card information screen will be nothing more than displaying a screen-filling image of the entire card at once. That screen's design hasn't been decided yet.


I liked your idea, having the text small provides more space! I suggest you to put the horizontal type bar as a vertical bar to a better use of this space, and, maybe, remove the pokémon level.

I like theses icons, but do a color revamp.

Put one pocket for each subtype and one for "All". For others, use search filters.
The text is only that small because I ripped it straight from a screenshot of the GBC game, just for the sake of demonstration. All text will be regular size and font unless otherwise necessary. The same goes for the icons. I'm bad at creating graphics.

The pocket icons in the Library only just fit horizontally. They probably won't fit vertically, and even if they did, they would take up valuable horizontal space which could be used for displaying long card names (I'd like to know what the longest card name is).

You don't seem to understand how pockets work. The pockets physically exist, with cards physically inside each of them; they're not a filter on one big list of cards. A particular card cannot appear in multiple pockets. I don't even think there's any need at all for an "All cards" pocket.

Awkward Squirtle
September 26th, 2012, 06:20 AM
I have a couple of suggestions.

First, ditch the deck editing layout from the Game Boy game. It's a real pain to work with to make decks - you can't see your actual decklist anywhere while editing. This makes stuff like adding energy cards to the deck annoying, since you don't have a list of how many Pokémon of each type you're using.

Since this is going to only be playable on a PC, you should make use of its advantages. For example, use RMXP's full resolution instead of the DS's tiny screen size - you'll be able to fit more on the screen, and card images will be easier to read. Also, try to implement mouse controls; it's much easier just to hover your mouse over a card to see what it does, or drag it to move it between your library and your deck, than to use the keyboard for the same things.

Take a look at some PC versions of TCGs and how their interfaces work. Figure out their problems and how to fix them; use the things that work in your own game. For example, the ones I've played show both your library and your decklist at the same time on the deck editing screen, side by side. They also allow you to filter the list of visible cards in various ways, such as by card type or expansion set. Filtering in particular I don't think I could live without; I know you want to organise the cards into pockets, but what if I want to find a Stage 1 Pokémon capable of doing at least 80 damage with one attack, regardless of type? With your plan, I'd have to manually search through hundreds, possibly thousands, of cards.

I second the 'recipes' suggestion. The main thing I didn't like about the Game Boy game was that if I wanted to use my Double Colorless Energy cards in a new deck, I'd have to remove them from the deck that's using them first; a waste of time, especially since I'd have to move them back if I wanted to go back to that deck.
Discarding/trading/etc cards isn't a big problem - after each discard/trade/etc, go through each decklist, and if they contain any cards in a greater quantity than you actually have, fix it. This means you can trade cards that are currently in a deck too, which is a nice thing to be able to do.

In regards to acquiring cards, I think it would be best to let the developer decide whether to use currency or just get cards after winning. On the note of acquiring cards, please implement a switch that gives the player access to unlimited quantities of every card in the game, or at least a command that gives the player 4 of each card (and 60 of each Basic Energy/Arceus card). Some people want to earn their cards themselves, while others (like me) just want to build decks. I understand if you don't want to put this in, though!

I would try to simulate the card game as closely as possible, so things like Pokémon Powers and Abilities would stay as they are. It wouldn't be impossible for someone using the kit to change this if they wanted to.

I made a small start in implementing a Pokémon TCG system, and one of the things I found troublesome was deciding whether you have enough Energy to use an attack. With only Basic Energy cards or only single-type attack costs, this is easy. But once you start to include attacks that require multiple types and Energy cards that provide several types, it's a bit trickier. For example, say your Pokémon has a Rainbow Energy and a Darkness Metal Energy attached, and you want to use an attack that costs 1 Darkness and 1 Fire. A human player will tell you it's OK, but a computer will need to figure out that the Rainbow Energy must be used as the Fire requirement rather than the Darkness requirement. I haven't really thought about it that much; can you figure something out?

FL
September 26th, 2012, 06:28 AM
The text is only that small because I ripped it straight from a screenshot of the GBC game, just for the sake of demonstration. All text will be regular size and font unless otherwise necessary. The same goes for the icons. I'm bad at creating graphics.

The pocket icons in the Library only just fit horizontally. They probably won't fit vertically, and even if they did, they would take up valuable horizontal space which could be used for displaying long card names (I'd like to know what the longest card name is).If the longest card have a great name (like more than 40 characters), consider putting "..." in some card names that have more that 20-30 characters, with full name restricted to card details.

You don't seem to understand how pockets work. The pockets physically exist, with cards physically inside each of them; they're not a filter on one big list of cards. A particular card cannot appear in multiple pockets. I don't even think there's any need at all for an "All cards" pocket.I know this, but if you have only type filters (yes, I know that this is an example), this have the same effect. Please note that is very easy to get lost with a huge number of cards, several filters are necessary.

the__end
September 26th, 2012, 07:53 AM
Yes, Essentials has a 512x384 screen. However, it also has the option of halving this, and playing at 256x192, which means if graphics aren't made to suit this smaller size, they'll look odd when they're shrunk. I know, only a prat would play at the smaller size, but I'd still like for the screens to suit those dimensions if possible.

You're still assuming that the card information screen will be nothing more than displaying a screen-filling image of the entire card at once. That screen's design hasn't been decided yet.
well cards cant be made to suit the smaller size without losing important details...
and this kit should be compatible with essentials and not copy anything essentials has right? ^^
imo this kit should have the screen size of 512x384 and if people want to add this kit to essentials they have to use essentials at 512x384 screen size as well...

and i dont assume that only the cards will be displayed on the card info screen...
if we insert the cards on the right (or left) side of the info screen in the size i suggested there will be enough space (almost half of the screen) where more stuff can be written/shown/added...

Since this is going to only be playable on a PC, you should make use of its advantages. For example, use RMXP's full resolution instead of the DS's tiny screen size - you'll be able to fit more on the screen, and card images will be easier to read. Also, try to implement mouse controls; it's much easier just to hover your mouse over a card to see what it does, or drag it to move it between your library and your deck, than to use the keyboard for the same things.
you forget that this kit will be compatible with essentials...
so adding full screen and mouse control will most likely not implemented...

They also allow you to filter the list of visible cards in various ways, such as by card type or expansion set. Filtering in particular I don't think I could live without; I know you want to organise the cards into pockets, but what if I want to find a Stage 1 Pokémon capable of doing at least 80 damage with one attack, regardless of type? With your plan, I'd have to manually search through hundreds, possibly thousands, of cards.
i agree with you that filters are important but i think adding them at the beginning of the kit would make things more complicated then they need to be... ^^

If the longest card have a great name (like more than 40 characters), consider putting "..." in some card names that have more that 20-30 characters, with full name restricted to card details.
for to long names using a smaller font would be the best way to solve the problem...

Maruno
September 26th, 2012, 08:49 AM
First, ditch the deck editing layout from the Game Boy game. It's a real pain to work with to make decks - you can't see your actual decklist anywhere while editing. This makes stuff like adding energy cards to the deck annoying, since you don't have a list of how many Pokémon of each type you're using.
If you have a better design in mind, show me. Don't just say "I don't like this design" without offering an alternative. For the one specific gripe you mentioned, a number next to each pocket's icon could indicate how many cards in that pocket are in one's deck.


Since this is going to only be playable on a PC, you should make use of its advantages. For example, use RMXP's full resolution instead of the DS's tiny screen size - you'll be able to fit more on the screen, and card images will be easier to read. Also, try to implement mouse controls; it's much easier just to hover your mouse over a card to see what it does, or drag it to move it between your library and your deck, than to use the keyboard for the same things.
You're missing the point that I'm making this as an add-on to Essentials (because it has useful code I want to use). I'm restricted by what Essentials does (i.e. screen size, no mouse). If you're suggesting that I turn it into a standalone project, then say so. And if that's the case, I might as well make it in Java or something free and even less restrictive, and etc. etc. I need to stop somewhere, and all I know is Essentials, so it might as well be there.

If there's an existing project I can contribute to instead, let me know and I'll consider jumping ship.


Take a look at some PC versions of TCGs and how their interfaces work. Figure out their problems and how to fix them; use the things that work in your own game. For example, the ones I've played show both your library and your decklist at the same time on the deck editing screen, side by side. They also allow you to filter the list of visible cards in various ways, such as by card type or expansion set. Filtering in particular I don't think I could live without; I know you want to organise the cards into pockets, but what if I want to find a Stage 1 Pokémon capable of doing at least 80 damage with one attack, regardless of type? With your plan, I'd have to manually search through hundreds, possibly thousands, of cards.
Why would you ever need to search for such a card? The way I understand the card game, you make decks based around elements, so having Pokémon cards arranged by element is a good start. I've already said I want to ignore anything further than that for now.

Please bear in mind that I'm not a genius who can just whip up anything he wants but is choosing to restrict himself just for the sake of it. I'm lacking in many areas of knowledge, and any restrictions I have are to make my life easier and to avoid areas I know I'm not capable of tackling. I don't have experience with filters or list sorting.

Once again, if you can think of a better system, show it to me rather than make offhanded comments along the lines of "system X is better because of a vaguely described feature whose relevance and importance to your project isn't even explained or justified".


I second the 'recipes' suggestion. The main thing I didn't like about the Game Boy game was that if I wanted to use my Double Colorless Energy cards in a new deck, I'd have to remove them from the deck that's using them first; a waste of time, especially since I'd have to move them back if I wanted to go back to that deck.
Discarding/trading/etc cards isn't a big problem - after each discard/trade/etc, go through each decklist, and if they contain any cards in a greater quantity than you actually have, fix it. This means you can trade cards that are currently in a deck too, which is a nice thing to be able to do.
Decks are already recipes. You cannot get rid of a card if it is being used in a deck. A deck is not allowed to be incomplete, for simplicity.


In regards to acquiring cards, I think it would be best to let the developer decide whether to use currency or just get cards after winning. On the note of acquiring cards, please implement a switch that gives the player access to unlimited quantities of every card in the game, or at least a command that gives the player 4 of each card (and 60 of each Basic Energy/Arceus card). Some people want to earn their cards themselves, while others (like me) just want to build decks. I understand if you don't want to put this in, though!

I would try to simulate the card game as closely as possible, so things like Pokémon Powers and Abilities would stay as they are. It wouldn't be impossible for someone using the kit to change this if they wanted to.
I'd rather have something that exists and works first, before trying to cater to people just wanting a duel simulator. I don't think I ever would anyway, because that's not a game and it's not what I want to make.

Of course it will work as much like the TCG as possible; otherwise there's no point saying it's a TCG-based game.


I made a small start in implementing a Pokémon TCG system, and one of the things I found troublesome was deciding whether you have enough Energy to use an attack. With only Basic Energy cards or only single-type attack costs, this is easy. But once you start to include attacks that require multiple types and Energy cards that provide several types, it's a bit trickier. For example, say your Pokémon has a Rainbow Energy and a Darkness Metal Energy attached, and you want to use an attack that costs 1 Darkness and 1 Fire. A human player will tell you it's OK, but a computer will need to figure out that the Rainbow Energy must be used as the Fire requirement rather than the Darkness requirement. I haven't really thought about it that much; can you figure something out?
I store attack costs in an array (e.g. [Fire,Fire,Colorless]). When checking whether a cost can be met, I would create a "cost pool" from this, and an "energy pool" from the attached energies (Rainbow counts as Rainbow for now, but some other energy-providing effects are counted). I would then delete energy pairs from each pool. From what's left in the cost pool, remove one per Rainbow energy (this is the final step; other Energy cards like Blend Energy should be considered before it, as they're more limited). In the end, if the cost pool is empty, you can afford it.

It's just a matter of considering the most restricted energy providers first (Fire Energy can only provide 1 Fire) and the least restricted last (Rainbow can provide 1 anything).

For attack effects along the lines of "+10 damage per attached Water energy not used to pay for this attack", that amount could probably be calculated afterwards, using what's left in the energy pool.


If the longest card have a great name (like more than 40 characters), consider putting "..." in some card names that have more that 20-30 characters, with full name restricted to card details.

I know this, but if you have only type filters (yes, I know that this is an example), this have the same effect. Please note that is very easy to get lost with a huge number of cards, several filters are necessary.
It's quicker to start with pockets as I've described than to apply a filter you're probably going to use anyway.

I'm still ignoring filters for now, anyway.


well cards cant be made to suit the smaller size without losing important details...
and this kit should be compatible with essentials and not copy anything essentials has right? ^^
imo this kit should have the screen size of 512x384 and if people want to add this kit to essentials they have to use essentials at 512x384 screen size as well...

and i dont assume that only the cards will be displayed on the card info screen...
if we insert the cards on the right (or left) side of the info screen in the size i suggested there will be enough space (almost half of the screen) where more stuff can be written/shown/added...
You could still have the big graphics, but show only the top or bottom half at once (like in Asobikata but alternating/scrolling between its two screens). That's an example of how to overcome your concern; whether it's a good design or not is irrelevant, because it's a design you didn't suggest (proving that you're still stuck on the idea of the entirety of the card being shown at once). Think outside the box and consider all possibilities, even bad ones.

the__end
September 26th, 2012, 09:42 AM
You could still have the big graphics, but show only the top or bottom half at once (like in Asobikata but alternating/scrolling between its two screens). That's an example of how to overcome your concern; whether it's a good design or not is irrelevant, because it's a design you didn't suggest (proving that you're still stuck on the idea of the entirety of the card being shown at once). Think outside the box and consider all possibilities, even bad ones.
well you won... ^^
i just told you my opinion of the easiest way to show the cards with the best possible quality...
but if you think that there is a better way or that someone will find a better way its fine with me... ^^

and it would work only limited if you "cut" the cards in two halves because you just considered the height of the screen...
the half card would take the complete width of the screen (it dont even fit completely) without leaving space to add anything else...
i know that you are just giving examples for showing me that there could be alternative ways...
but imo there arent without giving up on other things...

hansiec
September 26th, 2012, 10:10 AM
Your first suggestion is meaningless, since it isn't a solution in itself but just a restating of the problem. The only relevant part is where you imply that there's only one kind of function code, which covers any and all possible effects of anything.

Basically, how do you know which effect a particular card has? You can either code in an effect which happens only when the card is XYZ, or you can define the card to have a function code and then code in an effect which happens for any card with that function code. I'm suggesting the latter, since it allows for reusing of some common card effects (e.g. "Flip a coin and paralyse the target if Heads.").

There will be an equivalent of PokeBattle_Effects, which contains some of the more common effects that can happen (e.g. paralysing a Pokémon). However, putting every single possible effect in here is pointless, as most will only be used for one card and may as well go in PokeBattle_MoveEffects under the appropriate function code.

No, I think having a PokeBattle_MoveEffects for card effects (probably one for an attack's effect and one for any other kind of effect), plus creating a PokeBattle_Move entity for each attack and effect when the card is played (and remaining while the card is still in play) is the best option I can think of. It may use elements of your code.

I'm sure I'm not explaining this fully enough, but I have a vague picture in my head. It's a complicated picture. It'd be easier if there were no effects in the game.



I guess it's best for you to do this, I do know the basis of what you mean though and I think a full explanation would be helpful for me.



I've already made scripts which compile the new PBS files and access that data, so I don't think I need to muck around with any ini files. I'm not sure why you mentioned this.


The basis of the Pokemon.txt is built in the manor of an ini, and I do not recall ruby having an ini loader. I just thought that it would provide some use.

Awkward Squirtle
September 27th, 2012, 07:57 AM
Firstly, I apologise for forgetting this is an extension to Essentials - it slipped my mind when I was writing the reply.

Here's a layout I quickly threw up for the deck edit screen:
http://i49.tinypic.com/o6ctbq.png
You can see the deck contents in the right pane, and switch between deck and library panes with a key press (ideally with a smooth slide animation).
There's still probably a lot missing, but you get the idea. 256x192 isn't much to work with :/

You don't necessarily make a deck based around a type. Sure, it's the easiest way, and starting players will probably do that. But more advanced players might want to make decks based around other things than type.
For example, the most popular (and powerful) deck back when the TCG was new was based around strong basic Pokémon that had efficiently-costed attacks (e.g. Hitmonchan, a 70HP Pokémon that deals 20 damage for a single Energy, or Electabuzz, capable of paralysing opponents with just a single Energy and dealing 40 damage with two).
It would be useful to have some sort of filtering function for this kind of thing.

Define a simple set of filters, such as type and evolutionary stage, and allow multiple filters (of different types) to be on at once. And allow sorting by values such as HP, attack damage, or even Pokédex number. That should be enough to satisfy the majority of players.

I would personally allow people to have incomplete decks, as long as they have at least one complete deck to use. Surely it can't be difficult to implement a check for this/automatically switch to a complete deck if cards are removed from the current deck?

In regards to Energy costs, you're proposing a greedy algorithm (always choose the most limited Energy first). This won't necessarily work. Imagine you have an attack that costs [Metal, Darkness], and your attached energies are [BlendWLFM, DarknessMetal]. Using the greedy algorithm, you'd match DarknessMetal first, and match it with the first cost (Metal). Then, you'd pair BlendWLFM with Darkness, and what do you know, it doesn't match. You might say "well then, you'd start by pairing DarknessMetal to Darkness". But how does the game know to do this? Once you have a method that you think works, can you prove it works, for all possibilities?
Anyway, I have a suggestion on the same topic in regards to 'optional' Energy costs (e.g. Secret Wonders Blastoise's Hydro Pump (http://bulbapedia.bulbagarden.net/wiki/Blastoise_%28Secret_Wonders_2%29)). I'd give such attacks a preference as to what Energy should be left over (alternatively what Energy should be used for the attack). Blastoise's Hydro Pump should prioritise keeping Water Energy aside for its effect. If you just used the greedy algorithm, a Blastoise with 3 Water Energy and a Blend Energy GFPD would assign the 3 Waters to the main cost, leading to a 50 damage attack (when it could have done 70).

Filters/sorting in Ruby/RGSS are both really easy. You can use code blocks to supply sort/filter criteria to Ruby's built-in methods. For example, this code sorts a list of cards by HP (the <=> method returns -1, 0, or 1 depending on the results of comparing the left value with the right value, used by the sort method):
sortedList = cardList.sort {|a, b| a.hp <=> b.hp}
And this filters out only stage 2 cards:
stage2 = cardList.find_all {|card| card.stage == Stage2}
If you don't have experience with something, it's an opportunity to expand your skills in that area. Don't just say "I don't know how to do it, so it's not happening" ;)

Maruno
September 27th, 2012, 01:11 PM
I guess it's best for you to do this, I do know the basis of what you mean though and I think a full explanation would be helpful for me.
I would need to have made half the battle system before I figured out enough details to let me explain it fully. I'm mainly going on instinct at the moment.

There's so much that could go on at once in a battle that it's very off-putting. And that's not even considering the AI, which is a topic I will absolutely avoid at all costs. I'm starting to wonder if it would be easier to make it a network play-only game instead (i.e. play against other people online rather than a computer, which is also very complicated which is my point).


Firstly, I apologise for forgetting this is an extension to Essentials - it slipped my mind when I was writing the reply.

Here's a layout I quickly threw up for the deck edit screen:
http://i49.tinypic.com/o6ctbq.png
You can see the deck contents in the right pane, and switch between deck and library panes with a key press (ideally with a smooth slide animation).
There's still probably a lot missing, but you get the idea. 256x192 isn't much to work with :/

You don't necessarily make a deck based around a type. Sure, it's the easiest way, and starting players will probably do that. But more advanced players might want to make decks based around other things than type.
For example, the most popular (and powerful) deck back when the TCG was new was based around strong basic Pokémon that had efficiently-costed attacks (e.g. Hitmonchan, a 70HP Pokémon that deals 20 damage for a single Energy, or Electabuzz, capable of paralysing opponents with just a single Energy and dealing 40 damage with two).
It would be useful to have some sort of filtering function for this kind of thing.

Define a simple set of filters, such as type and evolutionary stage, and allow multiple filters (of different types) to be on at once. And allow sorting by values such as HP, attack damage, or even Pokédex number. That should be enough to satisfy the majority of players.

I would personally allow people to have incomplete decks, as long as they have at least one complete deck to use. Surely it can't be difficult to implement a check for this/automatically switch to a complete deck if cards are removed from the current deck?
I think the small screen size is too limiting after all, considering what it needs to show.

Obviously the design of the Library (and other screens) needs a lot of work. That's probably why games have whole teams of designers who know what they're doing, and we... don't.

I'd still like for some segregation in the Library, though, even if I dismiss the many-pockets interpretation (subtle physics pun). Surely you couldn't object to keeping Trainers/Energies/Pokémon cards separate? For one, it'd make filters easier.

Allowing incomplete decks is a can of worms. What if you sell a card that was used in every one of your complete decks, thus making them all incomplete? What if you toss cards so you only have 59 left, and aren't able to gain any new ones? You'll say that such situations are rare/unlikely, or the user's fault (which is true), or that the game should forbid the losing of a card were this to happen (in which case, it's easy to extrapolate this argument to come up with "no incomplete decks allowed" which is what I've done). If you suggest that a deck which becomes incomplete like this should be filled in with a random card from the Library just to keep it complete, what about if there are no cards which can legally be added to it? Again, unlikely, but still a can of worms.


In regards to Energy costs, you're proposing a greedy algorithm (always choose the most limited Energy first). This won't necessarily work. Imagine you have an attack that costs [Metal, Darkness], and your attached energies are [BlendWLFM, DarknessMetal]. Using the greedy algorithm, you'd match DarknessMetal first, and match it with the first cost (Metal). Then, you'd pair BlendWLFM with Darkness, and what do you know, it doesn't match. You might say "well then, you'd start by pairing DarknessMetal to Darkness". But how does the game know to do this? Once you have a method that you think works, can you prove it works, for all possibilities?
Anyway, I have a suggestion on the same topic in regards to 'optional' Energy costs (e.g. Secret Wonders Blastoise's Hydro Pump (http://bulbapedia.bulbagarden.net/wiki/Blastoise_%28Secret_Wonders_2%29)). I'd give such attacks a preference as to what Energy should be left over (alternatively what Energy should be used for the attack). Blastoise's Hydro Pump should prioritise keeping Water Energy aside for its effect. If you just used the greedy algorithm, a Blastoise with 3 Water Energy and a Blend Energy GFPD would assign the 3 Waters to the main cost, leading to a 50 damage attack (when it could have done 70).
This is what I was saying earlier in this post about too many things going on at once. The simplest way out would be for the player to manually choose which cards are used for each part of the cost, but obviously this isn't appealing. No, I tell a lie: the simplest way out would be to not include difficult cards, but I'm sure people would complain about that.

One option would be to simulate all possible combinations of energy that the attached energy could provide, and check each of those against the cost. This would also work for Blastoise's effect, whereby each (cost-meeting) combination has the cost subtracted and the game accepts the result which has the most Water energy left over. This initially strikes me as rather inefficient (moreso for higher numbers of Colorless in the cost), but actually might not be so bad (and it'd be much easier to code than any "preference" method). It's not as though this needs to be calculated that often (once per turn at most).


Filters/sorting in Ruby/RGSS are both really easy. You can use code blocks to supply sort/filter criteria to Ruby's built-in methods. For example, this code sorts a list of cards by HP (the <=> method returns -1, 0, or 1 depending on the results of comparing the left value with the right value, used by the sort method):
sortedList = cardList.sort {|a, b| a.hp <=> b.hp}And this filters out only stage 2 cards:
stage2 = cardList.find_all {|card| card.stage == Stage2}If you don't have experience with something, it's an opportunity to expand your skills in that area. Don't just say "I don't know how to do it, so it's not happening" ;)
The Pokédex includes filters, and some menus in Essentials have sorting in them (usually alphabetical). I know I could figure something out. I just wanted to make sure it was necessary before I devoted any time to it (which I'm still not convinced of). Figuring out how to incorporate it into the designs is a big task, and it's an important part of the code.

I'm not doing this game because I want to expand my horizons and skills (if I were, I'd learn C++ or another useful language to do it in). I just thought it'd be nice if something like this existed for RMXP, and I was in the mood to play around. Not knowing how to do something is a valid excuse for me, particularly if it's something that obviously needs a lot of learning to achieve - I have other things to do.

Awkward Squirtle
September 28th, 2012, 03:48 AM
Please don't make the TCG network-play only before implementing proper network play for the main game :P

A simple AI isn't impossible to code. Make it attach Energy to Pokémon that don't have enough (prioritising the Active Pokémon), use the attack that does the most damage (ideally, program attack effects to influence this, as in poccil's battle AI), and use Trainer cards when appropriate (vague, but there are a ton of effects you'd have to consider individually).
A more advanced AI would consider longer-term effects and what the opponent can do (for example, only using a Potion if it would actually save their Pokémon), and use tactics like attaching extra Energy to an unevolved Pokémon to prepare it for its evolved form. Of course, the latter would also require the AI to know how the components of its deck interact, so it might be a little ambitious.

Hmm... Thinking about the interface a bit more, maybe a horizontal layout could work for the deck edit screen? If the small card images are clear enough, you have more horizontal space to fit cards onto the screen. But then you can't really have much info in the card list.
Horizontal for the deck, vertical for your card library maybe?

Why does not letting the player sell/trade cards that would cause them to have no legal decks extrapolate to not letting them have any illegal decks whatsoever?
It's useful to have incomplete decks. For example, if I'm working on acquiring cards to make a Blastoise deck, I want to be able to make an incomplete Blastoise deck to see what cards I still need to get, rather than having to fill the rest in with pointless cards (I won't be playing the deck until it's complete anyway).
And some random code you might find useful:
def hasLegalDeckAfterRemoving(card, quantityToRemove)
quantity = library.quantity(card) - quantityToRemove
for deck in decks
if deck.quantity(card) <= quantity
return true
end
end
return false
end

Brute-forcing Energy costs would certainly work, but as you say, it would be inefficient. If you have m Energy attached, and an attack needs n Energy, you need to check n permutations of m Energy. I don't know of any attacks that have a total cost of more than 5, and realistically I don't think anyone will be attaching more than 10 Energy to a Pokémon. But that still leaves over 30000 ways you could pair them up.
Duplicate attached Energy reduces the actual number of unique permutations, so you can skip those. You can also define attacks to not care about Energy ordering (for example, any attack that only uses one type of Energy and doesn't do anything with the leftover Energy should be correctly catered to with the greedy approach).

Finally, as a side note, Ruby is no less useful than C++ - a language doesn't have to be hyper-efficient to be useful. I know C++, but still use Ruby a lot. Its versatile syntax that lets you do things like the one-line sort/filters above, and not requiring compilation, makes it good when you just want to get stuff done :P

Maruno
September 28th, 2012, 07:00 AM
A simple AI isn't impossible to code. Make it attach Energy to Pokémon that don't have enough (prioritising the Active Pokémon), use the attack that does the most damage (ideally, program attack effects to influence this, as in poccil's battle AI), and use Trainer cards when appropriate (vague, but there are a ton of effects you'd have to consider individually).
A more advanced AI would consider longer-term effects and what the opponent can do (for example, only using a Potion if it would actually save their Pokémon), and use tactics like attaching extra Energy to an unevolved Pokémon to prepare it for its evolved form. Of course, the latter would also require the AI to know how the components of its deck interact, so it might be a little ambitious.
Making the computer do something isn't so hard. Making it do something logical (i.e. don't attach worthless energies) is harder. Making it look like it knows what it's doing is very much a difficult task.


Hmm... Thinking about the interface a bit more, maybe a horizontal layout could work for the deck edit screen? If the small card images are clear enough, you have more horizontal space to fit cards onto the screen. But then you can't really have much info in the card list.
Horizontal for the deck, vertical for your card library maybe?
Horizontal in what sense? The sense that, in your drawing of the Deck Editor, the cards in the deck are drawn vertically?

I have a bit of an idea for a design. It looks a lot like that Yu-Gi-Oh! screenshot posted earlier, but with the "pocket" tabs at the top rather than the bottom, and the filter bar at the bottom. When deck-building, there would be an extra "pocket" tab for the deck - you couldn't see both it and the Library at once, but you could at least see it at all.


Why does not letting the player sell/trade cards that would cause them to have no legal decks extrapolate to not letting them have any illegal decks whatsoever?
It's useful to have incomplete decks. For example, if I'm working on acquiring cards to make a Blastoise deck, I want to be able to make an incomplete Blastoise deck to see what cards I still need to get, rather than having to fill the rest in with pointless cards (I won't be playing the deck until it's complete anyway).
Because it makes more sense to the average player to use absolutes. You can either lose cards without restriction, or you can't do anything to a card already in use. It's simpler to understand than "do what you want except for a few cases which are hard to spot and are seemingly random".

If you're placing restrictions on how the player can lose cards, and you must place at least some, then it's both simpler to code and simpler to understand if you "round it off" to the nearest absolute. I honestly don't think this will cause a problem, and it's just you being picky.

Forbidding incomplete decks also makes things simpler to deal with, from my perspective (which is the only one I've got). I've not thought about this too much yet, though.


Brute-forcing Energy costs would certainly work, but as you say, it would be inefficient. If you have m Energy attached, and an attack needs n Energy, you need to check n permutations of m Energy. I don't know of any attacks that have a total cost of more than 5, and realistically I don't think anyone will be attaching more than 10 Energy to a Pokémon. But that still leaves over 30000 ways you could pair them up.
Duplicate attached Energy reduces the actual number of unique permutations, so you can skip those. You can also define attacks to not care about Energy ordering (for example, any attack that only uses one type of Energy and doesn't do anything with the leftover Energy should be correctly catered to with the greedy approach).
It's not combinatorial. In my game, an attack's cost pool will be an array like [0,1,0,0,0,2] (meaning 1 Fire + 2 Colorless), and the available energy pool will be a similar-looking array (i.e. they don't depend on the order in which the cost is listed/the energies are attached). If you only have basic energies attached, there will only be one possible energy pool array, so only one comparison to make. Adding a Blend energy makes it 4 possible arrays to check in turn.

What can/should be done with Rainbow energy is to treat them separately and deal with them last. Checking the remnants of a cost against available Rainbow energies is as simple as counting them. For special effects such as counting a particular energy surplus, a Rainbow energy would automatically be +1 at the end. Similar effects can deal with Rainbow energies however they want/need, and will do so in those effects' function codes only.

Thus, the only cards able to multiply the number of possible energy pool arrays is very limited (5 by my count) (http://bulbapedia.bulbagarden.net/wiki/List_of_all_Special_Energy_cards), and they all either double, triple or quadruple the possibilities only. This makes the number of energy pool combinations equally very limited, and very much acceptable.


Finally, as a side note, Ruby is no less useful than C++ - a language doesn't have to be hyper-efficient to be useful. I know C++, but still use Ruby a lot. Its versatile syntax that lets you do things like the one-line sort/filters above, and not requiring compilation, makes it good when you just want to get stuff done :P
Ruby's fine and all, but knowledge of other languages would be nice. I don't know any others, and if I were to start a project whose aim is to improve my abilities (which this project isn't), then I'd go for C++ or Python. I don't often see Ruby being mentioned 'round the Tubes (not as often as C++, anyway).

P-Sign
September 28th, 2012, 07:18 AM
Coding an AI is not something I'd do. It will take so many time that can be spent way better. Players have to think ahead of the game, predict what their opponent is going to do and make strategical choices. I don't know if these can be done by the AI, but I am sure it will not be flawless and it will take a lot of time. A good example can be found on pokemontcg.com, the official online simulator of the Pokémon TCG. The AI there is bad if not terrible.

hansiec
September 28th, 2012, 12:04 PM
I know a small basis of coding AIs I have done it before in GM for an RTS test and currently a platformer for interactions with items such as vehicles, ladders, weapons, ect. This seems a little more complicated as I barely know the rules of the TCG, I might attempt a small basis after I learn the rules fully, and alongside of that I am pretty well in RTS games so thinking of good combos for more advanced AIs will be easy for me. I will take a look at the rules again and I will make a demo of what I can make.

Maruno
September 28th, 2012, 01:15 PM
I've knocked up a new design for the Library (still in small screen mode, but it works well enough like that). See attached. The deck tab (the grey one at the top right) is only shown during deck-building, and the name/numbers at the top would be changed to the deck's name/size at the same time (and a number put in each tab to show quantities of its cards in the deck). The filter buttons need redesigning to show suitable options (which will be different in each tab, and probably missing altogether in the Energy tab). The colour scheme also needs changing. I'm not sure whether icons-only is a good idea; even if it looks nice, the clarity/meaning may suffer.

As for navigation, when you enter it you'll be at the "top", where you can switch between tabs. Pressing C dives you into the current tab to scroll through the cards within. Pressing Z while in a tab puts your cursor onto the filter icons at the bottom, most of which will show pop-up menus upon pressing C containing the appropriate filter options therein - pressing C therein toggles a filter. The list updates automatically after any filter is toggled. There will be a "cancel all filters" button. Filters will be persistent, even after closing the Library (unless we decide they should only be persistent while in the Library screen instead). Pressing X, of course, goes back. List sorting will always be in alphabetical order.

If mouse support ever gets into this thing, this design fully supports it.


Coding an AI is not something I'd do. It will take so many time that can be spent way better. Players have to think ahead of the game, predict what their opponent is going to do and make strategical choices. I don't know if these can be done by the AI, but I am sure it will not be flawless and it will take a lot of time. A good example can be found on pokemontcg.com, the official online simulator of the Pokémon TCG. The AI there is bad if not terrible.
Thanks for your words of support. :cheeky:


I know a small basis of coding AIs I have done it before in GM for an RTS test and currently a platformer for interactions with items such as vehicles, ladders, weapons, ect. This seems a little more complicated as I barely know the rules of the TCG, I might attempt a small basis after I learn the rules fully, and alongside of that I am pretty well in RTS games so thinking of good combos for more advanced AIs will be easy for me. I will take a look at the rules again and I will make a demo of what I can make.
The big challenge will be to make the computer "look ahead" and make plans. It's not so bad if you just want it to react to what's there right now. As for actual strategies, that's way out there.

If possible, I'd like to not have the AI do things in an ordered manner (i.e. always play Pokémon first and always play trainers last). However, that would be complicated.

Maybe this is how Skynet will begin...

hansiec
September 28th, 2012, 02:09 PM
The big challenge will be to make the computer "look ahead" and make plans. It's not so bad if you just want it to react to what's there right now. As for actual strategies, that's way out there.

If possible, I'd like to not have the AI do things in an ordered manner (i.e. always play Pokémon first and always play trainers last). However, that would be complicated.


"look ahead" plans are things which I don't plan on adding immediately but I do have ideas for. I can make simple algorithms quickly by using a series of checks on some obvious info then the minor info lastly, afterwards we determine what is best to put out (if we can place anything) and then do so.

So the ordered manner will not be looked at, also if needed I will add a custom Pseudo-Random algorithm to determine if something really needs the random attribute (I won't use 'rand' as it can be very un-predicting if you want smooth layouts.)

Also, strategies can be pre-determined as of trying to follow along the lines of a generated strategy made after the AI draws the cards and recalculating small portions of it per visible action (unless by chance the AI draws the desired card it wants)
Oh yes, I am reading a long pdf on the rules, I should be done soon but memorizing it all will take a few hours more, and finally playout strategies will take a few days or so. Afterwards all that has been finished I will startup on the AI system. (I am looking in about a week)

Maybe this is how Skynet will begin...

If I remember right, Terminator? I'm not THAT experienced with AIs

TheDarkShark
September 29th, 2012, 05:48 AM
I'm not THAT experienced with AIsUnless someone comes up with an even more revolutionary paradigma than object orientation, I doubt anyone will ever get to that an AI that powerfull. Even though, of course, it will always be broke down to ASM code, but let's not discuss realism in Holywood movies right now, 'kay?
I'm not an expert on AI, and certainly not Ruby, so I won't be much help here, sorry.

First, concerning the toss-cards-in-your-deck-problem: I've never played the Pokémon TCG very much, but I used to play Yu-Gi-Oh! a lot, so I can speak from experience here. We (I and most my friends I played with, that is) used to keep deck-lists, recipes if you want to call them that. Since we didn't have all the must-be-in-your-deck-cards like 20 times, you had to choose one or two decks to stick with, until you either had enough cards or wanted a change. This is why I suggest differing between decks and recipes. Let the player have recipes he can construct decks from, if he's got the cards to do so, but consider the decks physical stacks of cards that must be complete: They couldn't toss cards from their decks, but cards that they used in a recipe may be tossed, even if that recipe could not be used to build a deck from anymore.

The next thing to think about is how to deal with card effects, that automatically (or may be) trigger at a certain point of a turn, right? I don't know Ruby and it's possibilities, but here's what I'd do in a C# based game:
1. The abstract class Card, which is inherited by TrainerCard, PokeCard and EnergyCard has some virtual methods called (or events triggered, for that matter [I haven't thought about this too much, yet]), that must be called at the respective moments. Alternatively, another class CardEffect could be used, which holds a method Activate(), which had to be called. So, at the beginning of the player's turn, you'd call (assuming that activePokemonP is the player's active Pokemon, an instance of the PokeCard class)
activePokemonP.ActivePlayerBeginTurn();
activePokemonP.ActivePlayerTurnBeginning.Invoke(); // Event-based approach
activePokemonP.ActivePlayerBeginTurnEffect.Activate(); // Object oriened approach
Depending on what aproach you'd want to use, of course. I'd recommend both of the latter two, because you wouldn't have to create a new class for each card, but I don't know whether Ruby supports these approaches.

About the energy-problem: stop nuclear powe-- NO I WON'T MAKE THAT JOKE. Not now, anyway.
I'm eager to see a working solution to this, as I'm a little stuck on that one, too. However, asking the player what energies to use isn't even that bad an approach. I've seen it like that in EVERY SINGLE simulation of Magic The Gathering, why not use it here, at least until you're certain your algorithm works in all cases, which, if I was you, I wouldn't be too sure about.

Last but not least; the screen layout(s). If Nintendo could do with 160x160 pixels, we should be able to get this done with... what was it again? 256x192? Yup, that should be more than enough. I'll throw something together later: I think I can provide both, good-looking graphics and a working layout. How about starting with the card-summary screen? It's quite independent from the heavily-discussed library and something you should originally have started with, anyway, since the card-summary-screen will be needed for pretty much all menus. Yes, I'm a fan of the global-to-specific-approach (Is that the correct English term? I'm from Germany, y'know?), simply because it has always proven useful to me

cYa, folks.

Anglican
October 1st, 2012, 11:57 AM
For an AI looking forward, why not do the opposite of the AI does? What I mean is, in Pokemon Essentials, the AI checks for moves, type advantages, etc. So why not so something similar-ish, but on the player's side? so check the players energy to attacks, types, etc. just an Idea

Also, in terms of effects, why not define the basic ones with parameters(e.g. Many cards have multiplication damage, based on coin flips. So why not have an effect of, flip a coin x times, attack does Y times the number of b. So the function code, if I'm not mistaken, assuming the code is 012, then coin is getting flipped twice, and it is times 50, and it's based on heads, then the code would be 012(2, 50, true). Not sure if valid though) It's just an idea, but would really help save space

TheDarkShark
October 14th, 2012, 04:17 AM
Sorry it took me so long, I had some trouble with a virus and needed to setup windows anew. BUT I managed to save most my data, so here you go:
(The colorful stuff in the background is a placeholder for card images)
http://imageshack.us/a/img41/3747/overviewl.png
Oookay, explanation time - in the top-left we have #1, top-right is #2, center-left is #3 and so on:
#1 - Pokémon Card summary page 1: pretty self-explanatory, right? The red stuff would only be visible during battle, since it is unneeded, even unchanged information during deck construction etc.
#2 - Pokémon Card summary page 2:the idea is, that you scroll through moves and PokéBody / PokéPower and press A (if we were using a GBA, idk what the corresponding keyboard key for RMXP is) to jump to something similar to screen #4, only that the top-bar would still contain the HP value and element symbol. The dark line between the PokéBody and the moves would not always be placed under the first entry, but under the last PokéBody / -Power.
#3 - Trainer Card summary page 1: the card image and the cardname. Shouldn't be hard to implement, right?
#5 (yup, I skipped #4, you'll see why) - Energy Card summary page 1: the only page for basic energies, since they don't need much information
#4 - Trainer / Special Energy Card summary page 2: you've guessed it by now, right? The card's effect is shown. Yay!

Very well, that's pretty much it. I'll put a *.zip-file in the attachements, containing the *.pdn-files, the preview and the finished *.png-files.

Since I don't seem to be able shut my mouth any longer, I'll comment on my own post, concerning the suggested code: Even though you could use events for the moves (like 'Move1Used.Invoke();' 'Move2Used.Invoke();' and 'PokePowerUsed.Invoke();') I'd recommend using OOP instead, since then you could just say Pokemon.Moves[0..3].Use(), assuming there was a pokemon with, like, 2 PokePowers and 2 moves. PokeBodies don't need to be counted, since they aren't manually activated, if I remember correctly. Then, you'd have to use lots of objects, of course.

mewlover22
October 16th, 2012, 01:37 PM
so could we use this as a way to make our own tcg based games?

Maruno
October 16th, 2012, 02:40 PM
I've not been doing anything with this recently, due to working on Essentials instead. Motivation is another factor.

I really don't think the card summary screen is that important right now. I'd much rather get something technical working (like the Library) than be able to look at a card's details.

TheDarkShark, I'm not sure what you mean by saying that the coloured background will be a card image. The screen is the wrong shape for a card, for one.

I was thinking that the card summary screen would be identical regardless of where it was accessed from. That is, it wouldn't show damage/status/energy - that can be shown on the battlefield itself.


so could we use this as a way to make our own tcg based games?
It will work just like the Pokémon TCG, but you can easily create your own cards for it. It's intended to be a kit, like Essentials, so you can take it and make a game out of it.

mewlover22
October 21st, 2012, 06:11 PM
This is looking good we can use this as part of the regular kit right?

Maruno
October 22nd, 2012, 04:45 AM
Yes, once it exists. It is being developed as an add-on for Essentials (although of course it can be used instead of regular Pokémon battles rather than in addition to them).

TheDarkShark
October 26th, 2012, 01:05 PM
Maybe we just do our work very differently. Like I said, I like to start with the very basic stuff and build everything around it. Anyway, should you have read my previous posts, you might've noticed that I did mention some of my ideas concerning the library and the battle system.
Anyway, when I referred to the card image, I was actually referring to the card's artwork panel. I didn't measure the side ratio, so I'm not too sure it actually fits perfectly, but I didn't have any Pokémon Cards at hand when I did the layout.
Concerning the battle info on the card summary screen; I think it might really come in handy for players planning their turn while looking through all the cards on the field and their hand. Assume you would have to constantly switch between the battle field screen and the summary screen. That'd be pretty annoying, since there can be 2x5 (bench) + 2x1 (active) + 1 (stadium) + 7 (hand) = 20 cards of interest, not even counting (special-)energy cards. I imagine it to be a lot more comfortable to use L and R or something to swicth from one card's summary to another one's. In that case, the player should be able to see information, such as a pokémon's HP and status. Also, it's just one boolean variable to consider (since you need to render the info anyway, you can probably just copy the draw-logic), it can't be such a pain to implement that with Ruby, can it? I know, you had a similar discussion about the filters already, I just want you to consider it before just scrapping the idea for simplicity.

cYa

Maruno
October 27th, 2012, 03:23 AM
I have read all the posts in this thread, and absorbed the information therein (although perhaps not some of the more techy stuff since I'm not at that stage yet). Please bear this in mind even if I don't respond to it all - I write it down and think about it a lot.

Anyway...


Progress update
See attached. Yes, it's the Card Library screen (and the Deck Builder screen). What you see is actually coded and actually works... pretty much. All graphics can easily be placeholders if better artwork comes along.

The Library shows 9 cards at once, each with an icon and quantity. Each pocket displays the number of cards in it. Ignore the item icon overlapping with the card picture, because I've not done that yet. Moving between pockets is the same as for the Bag, i.e. left and right.

Selecting a card allows you to either examine or toss it. You can toss any cards that aren't being used in a deck - if you try to toss more than are spare, the game will say so and ask if you want to toss just the spare ones instead.

Filters are fully supported, although I've only bodged one in so far ("Basic Pokémon only", as you can see in the screenshot). The pocket quantity doesn't change even if you apply filters. Filters are per-pocket and persistent. Once a GUI has been invented to allow filter toggling, it will be available from a menu which pops up by pressing Alt - this menu will also contain a "Remove all filters" option and a couple of sorting options (alphabetical, "smart"). The exact filter/sorting options are undecided so far. Free sorting (like in most of the Bag's pockets) is also available, and applying a sort option is a one-off rearranging action when selected rather than constant reins.

The Deck Builder is built on the Library, and does whatever it can do. However, cards cannot be tossed. The numbers in each pocket's tab indicate how many cards from that pocket are in the deck; again, these numbers are unaffected by filters. Adding/removing cards from the deck is done by pressing S/D. There is already a 4-cards-of-the-same-name restriction, but it doesn't apply to Basic Energy cards. The deck list cannot be filtered or sorted, and will always be arranged in the "smart" way (see below).

The Alt options menu will also contain a "Rename Deck" option, and an option to change the deck's icon - the icon is decoration only, and separate to the "incomplete/complete/main deck" icon.

It is intended that decks can be left incomplete, unless it is the main deck which must be complete.

--------------------

The "smart" sorting method is a bit involved. The cards are first grouped into types, with monsters coming before trainers coming before energies. Trainers are then divided into trainers/stadium/item/whatever, with each group in alphabetical order, and energies are similar but with basic/special types. Pokémon are grouped together according to evolution family (in ascending order), and are then put into element super-groups according to the type of the first Pokémon in that group (e.g. Eevee-related cards will be in the Colourless group).

The only part of this I've done so far is the "monsters then trainers then energies" for decks only. Coding the other aspects of it, particularly the evolution family grouping, will be... interesting.

--------------------

There are many things still to do before the Library/Deck Builder is actually usable. There is no "choose deck to work on" screen yet, nor a way to save/discard changes. The aforementioned filters and sorting options need to be created. And so on. I just thought you might like to know what's going on.


EDIT: I couldn't attach a file when I made this post, so I had to create it then edit it before I was allowed to attach the screenshots. Seems like a bug with the forum to me.

venom12
October 28th, 2012, 04:59 AM
Wow man it looking so great, i will like to play this and make game with this or import it into my game and make a tournament with card game haha :D.

Maruno
December 26th, 2012, 12:00 PM
A whole single response to my last post in nearly 2 months. Wow.

I've done almost nothing in this project since my last post, due to lack of interest and my working on Essentials instead. Recently, I've wanted to get started on the duel scripts, which meant I needed a design. So I hacked up screenshots of Asobikata and made the attached. They still need tidying up, of course.

The idea is that everything will take place on one of three views of the playing field (player's side, centre or opponent's side), ideally with a smooth scrolling between each one. There'll be a few sub-screens too (e.g. one for choosing a prize card, one for listing cards to choose from), but they'll be overlaid on the field. It's very ambitious, I know.

There's just enough space for 2 Active Pokémon, but not if either is paralysed or asleep (which rotates the card sideways; I could forego card rotations in favour of status icons instead). Double battles aren't something I'm worrying about right now, though.

Opinions?

Rayd12smitty
December 26th, 2012, 12:11 PM
A whole single response to my last post in nearly 2 months. Wow.

I've done almost nothing in this project since my last post, due to lack of interest and my working on Essentials instead. Recently, I've wanted to get started on the duel scripts, which meant I needed a design. So I hacked up screenshots of Asobikata and made the attached. They still need tidying up, of course.

The idea is that everything will take place on one of three views of the playing field (player's side, centre or opponent's side), ideally with a smooth scrolling between each one. There'll be a few sub-screens too (e.g. one for choosing a prize card, one for listing cards to choose from), but they'll be overlaid on the field. It's very ambitious, I know.

There's just enough space for 2 Active Pokémon, but not if either is paralysed or asleep (which rotates the card sideways; I could forego card rotations in favour of status icons instead). Double battles aren't something I'm worrying about right now, though.

Opinions?


I think this looks really nice. It could definitely use some touching up, but I really like it. I hope this happens, because I love the TCG games.

ppooookkkkkkk
December 26th, 2012, 01:03 PM
I think you should add online facility with it so we can play together with each other :D

Maruno
December 27th, 2012, 01:50 PM
I think this looks really nice. It could definitely use some touching up, but I really like it. I hope this happens, because I love the TCG games.
Do you have any useful comments, such as what you think needs touching up? I don't have a perfect idea of what it's going to be like and how it'll work, so opinions are very welcome.


I think you should add online facility with it so we can play together with each other :D
I'd rather make something first, and then worry about unnecessary stuff like that afterwards.

Rayd12smitty
December 27th, 2012, 02:44 PM
Do you have any useful comments, such as what you think needs touching up? I don't have a perfect idea of what it's going to be like and how it'll work, so opinions are very welcome.



I'd rather make something first, and then worry about unnecessary stuff like that afterwards.

The main thing I noticed is the prize card area needs to be bigger. You will need to fit 6 cards for most duels. I'm not really a fan of the color, but that's just my opinion. Other that that it looks nice

Maruno
December 27th, 2012, 04:20 PM
I came up with the attached for the 6-prizes version. I know there's limited space, but you can always "zoom in" to them if you need to. I remember seeing one card while randomly browsing Bulbapedia (I like to look at the cards and imagine how to make them work) which allows you to increase the number of prize cards, so I don't yet know how that's going to work. It's a minor worry at the moment.

Eventually the project will support the choosing of which backgrounds to use. The green was just ripped from the Asobikata game (and I happen to like it - it's like a felt card table).

Rayd12smitty
December 27th, 2012, 05:07 PM
I came up with the attached for the 6-prizes version. I know there's limited space, but you can always "zoom in" to them if you need to. I remember seeing one card while randomly browsing Bulbapedia (I like to look at the cards and imagine how to make them work) which allows you to increase the number of prize cards, so I don't yet know how that's going to work. It's a minor worry at the moment.

Eventually the project will support the choosing of which backgrounds to use. The green was just ripped from the Asobikata game (and I happen to like it - it's like a felt card table).

In that case everything seems great. I really hope this is continued and implemented into essentials.

Maruno
December 30th, 2012, 01:31 PM
It's not going to be included with Essentials. It's just a side project of mine which will require Essentials to run.

I don't like making promises, because I don't know when I'll lose interest in this again (or stop having time to work on it), but I may have an alpha ready at some point in January. So far I've got the Library/Deck Builder (mentioned earlier in this thread), and I'm working on the duel system at the moment. I'm quite proud of it, actually.

Maruno
January 11th, 2013, 11:00 AM
I'm beginning to think no one's actually interested in this. I was hoping for a bit more activity.

What would you like to see in an alpha? Bear in mind that, because it'd be an alpha, it will be a rough-and-ready affair and not in a reasonable playable condition which you could immediately use in a game. Proof of concept, if you will.

DaSpirit
January 11th, 2013, 02:18 PM
I'm interested in this. I loved the Gameboy TCG game. I still play it from time to time. How many cards do you have implemented so far? All you need for an alpha are two different decks. I'd love to try it out.

RikuCrafter
January 11th, 2013, 05:53 PM
I'm really interested!

Love the TCG, and would love even more to just have a go against the AI every once in a while since I'm apparently "too old" to play with Pokemon cards at school.

Maruno
January 12th, 2013, 06:37 AM
I have a card file with all the Base Set cards in it. (Practically) all of their various effects (attack effects, Pokémon Powers, trainer cards, etc.) aren't in yet, though. I've also listed the 5 starter decks from the Base Set. Adding cards/premade decks isn't at all difficult.

AI, on the other hand, is considerably more of a pain. At the moment the only AI is deciding whether it should draw a mulligan card (yes if it currently has 8 or fewer cards) and which Pokémon to play as active/benched Pokémon at the start (random).

DaSpirit
January 12th, 2013, 10:05 AM
To create a good AI, you can create various AI types and let the programmer decide which one to use. I can imagine 3 (a random playing one, one that always plays their strongest, and another that likes to play risks depending on what else they have in their deck or waits until they get the card they need).

Maruno
January 12th, 2013, 10:29 AM
To create a good AI, you can create various AI types and let the programmer decide which one to use. I can imagine 3 (a random playing one, one that always plays their strongest, and another that likes to play risks depending on what else they have in their deck or waits until they get the card they need).
To create a good AI...
You've not said anything about how to create a good AI. You've just said: "make several of them", which is "several" times harder.

On the same line, no one's said anything about this alpha and what they want to see in it. Card Dex? Library/Deck Builder? Should the duel be properly structured like one (with turns/play max. 1 energy per turn/etc.), or is "get in then muck around" enough? And come up with your own questions to answer too - I want to know what you guys are expecting when you think of an alpha for this project.

I suppose it's difficult to answer this when you don't know anything about it. Perhaps the answers to "what do you expect from alpha 2?" will be easier when you know what's already there. Still...

mewlover22
January 13th, 2013, 02:41 PM
Love to see if this is still gonna happen

Maruno
January 13th, 2013, 03:18 PM
Love to see if this is still gonna happen
Perhaps you've not heard of me. Essentials still happens because I happened to it. This will happen.

Happen.

Funny word.

Cilerba
January 13th, 2013, 05:44 PM
Just because you work on some Pokémon Starter Kit doesn't give you the right to be rude to these members.

Maruno
January 14th, 2013, 04:19 AM
I honestly wasn't trying to come off that way. I'm sorry that you read it like that. I was just pointing out that I actually have a record of doing what I say, and of releasing it, so a bit more optimism regarding the future of this project would be nice. I know what I've been doing, and it's a bit disappointing to see people saying "if".

Maybe once the first alpha comes out, there will be more confidence. Some time this month. Actually, I don't know whether it could more accurately be called a beta; I don't do all this version naming stuff.

ppooookkkkkkk
January 14th, 2013, 05:37 AM
I'm also interested, in this.

I think it's an unique idea. To make a TCG, engine in RMXP.

Also it'll, Help newbie TCG players. Since i think you'll Include a tutroial.

Nintendork15
January 14th, 2013, 11:39 AM
I'm verryy intrested in this, and will experiment around with it when it comes out.
That's a 'when' not an 'if'. But most people will doubt things like this, it's not everyday you find something amazing and promising on the internet, which isn't dead, dying, or deleted from the web. But, hey! Great to see your motivated.

As for suggesting features, it's hard to suggest anything without seeing what you've got so far, whether it's a list, screenshots, or even a mini alpha/beta demo thingie.

Maruno
January 18th, 2013, 05:00 PM
Screenshot!

Options include renaming the deck, changing its icon, designating it the main deck, and deleting it. It works fully, as does the Library/Deck Builder. A deck is only complete (green icon) if it has exactly 60 cards in it, including at least 1 Basic Pokémon.

venom12
January 19th, 2013, 03:02 AM
Nice options man :D I like idea, you doing great progress on that, keep it up.

Maruno
January 28th, 2013, 02:21 PM
Alpha released!
Download! (http://www.mediafire.com/?p14hl2btw1tr3o9)

The alpha features a Card Library/Deck Builder, Deck List, a basic duel and a couple of debug options. Screenshots attached.

The Library/Deck Builder is about as complete as it ever will be. Some extra filter options may be added in the future, but it's not something I'm going to worry about now.

The duel includes most of the important features (except prize card interactions and fainting). Various animations (e.g. showing a card being drawn or a coin being flipped) don't exist yet. The AI is practically non-existent. There are, however, 28 attack effects programmed in (exactly 1/3 of the total number of attack effects I aim to include), and Bill also works. Controls are fairly straight-forward. You can view card summaries of the cards shown in the panels in the bottom two screenshots by moving the cursor to them and pressing C or Z respectively. If the scripts run into a problem, the current turn will immediately end, so if that happens, that's a bug and you should report it.

The TCG scripts are entirely stand-alone, and have been put into a copy of Essentials v11. Some unnecessary files (Pokémon sprites/icons/cries, etc.) have been deleted to save space.

Card images provided by the__end. All other graphics were ripped or created by me.

As I said, this is an alpha. That means it's very much a work in progress, which means many things aren't as smooth as they should be, are missing, are placeholders, or you can do what you might not expect to be able to do. As it stands, these scripts can certainly NOT be used as an actual game, so don't even try. I've released them to show you what I've been doing, and what I envisage this project will do.

All comments are very welcome, especially thoughts on game mechanics (which I'm currently getting from here (http://www.warpcore.org/~chairmankaga/pokemon/rulebook.pdf)). What do you think of it so far? What would you like to see? Please be constructive rather than simply saying "I like it".

p.claydon
January 28th, 2013, 03:28 PM
looks good bypassed this thread really because i forgot TCG was trading card game was thinking it was a different game engine thing

if you need it ive got a psd template that i use when making my own cards i could upload it for you?

EDIT
ok just tried the demo and looks pretty cool shame you cant have a proper match atm but its promising

when you progress further with this will you be allowing essentials to be played along side the card game (the alpha replaces the essentials debug menu but not sure if it makes other things unusable or not)

tymime
January 28th, 2013, 06:58 PM
I totally support this add-on. :D
How many cards do you intend to include? The sequel to the GBC game included the Team Rocket set... (Promos? Cards exclusive to the Gameboy, e.g. Legendary cards?)

Ayutac
January 29th, 2013, 01:54 AM
So yes, I'm a little bit late on this one and may say something about already made decisions, but please bear with me. After all, I sat 2 hours here to work through this thread. I will bold what is most important to me.

So far I've come up with a compiler script which can read multiple PBS txt files
What exactly are PBS files? And I guess you guys don't HAVE a list of all cards by now? Because that is my main offer: A program to extract that data from a website.

Should this kit support Pokémon Powers at all, or should the older cards be reworked to make them match the most current system? Another example is whether Stadium/Supporter cards should be their own types or a subtype of Trainer cards.
I guess we should handle it as it is handled officially. And through I don't know how, I bet they will match the current system. For example (in Yu-Gi-Oh!), cards which referred to the "Fusion Deck" will now be interpreted as they target the "Extra Deck", because that is what the Fusion Deck became. As I recall, the games actually rewrote the cards for things like this.

Maruno, I think the old GBC game worked well enough, BUT there is a japan-only TCG game for the DS. Take a look: http://www.youtube.com/watch?v=U1_nqYeBU40
Japan get all the cool stuff <__<

I imagine it would work like Asobikata, in that you select a card and a pop-up menu appears listing the appropriate actions that card can do (rather than the GBC method of choosing the action first then finding a card that can do it). The card graphics in the duel screen would have a number of icons on them, indicating a few things (whether retreat is possible, whether it has a PokéPower, whatever).This is very much like the Yu-Gi-Oh! games.

You're suggesting that decks act like "recipes", where the cards themselves remain in the Library (rather than the decks physically containing the cards). I did consider this approach, but it would be harder to make sure that decks aren't broken if you get rid of a card (via selling/tossing/trading). I don't think it's worth the effort, it makes less sense than decks physically containing their cards, and it either doesn't affect the player or encourages them to get more cards so they can have both desired decks at once.
Only so difficult that a player can't exit the deck building screen until his deck is playable again. I vote for recipes.

Support for a currency isn't important at the moment. As I've said, I don't know if I'll ever add a currency anyway. It's a matter of what feels right for the game, and I don't think duels for cash feels right.In addition, a currency would be easy to add, after all.

Where in the GBC game can you decide how many prize cards you will use? I don't recall any choice at all.
Where in the Pokemon games can't you decide with how many Pokemon to battle. 1 or 2 prices could be good for training purposes. Also, extendability. I don't want to see something like "threePrices = True" but rather "prices = 3".

@the__end: Your screens looks great!

well i dont know what else i can tell you about the "seen" option to convince you expect the points i told you in my other post... ^^
how about hearing the opinions of other users?
In YGO you don't get to know where the cards used against you are from, but you have the names and can save up duel points (cash) to get them through their ID, implying you look the ID up through the net. As you, Maruno, don't want cash I would recommend something like the "seen" option – wherever you add it – so the player can get a certain card somehow.

[some discussion about filters]
I'm glad you implemented them after all.

There will be an equivalent of PokeBattle_Effects, which contains some of the more common effects that can happen (e.g. paralysing a Pokémon). However, putting every single possible effect in here is pointless, as most will only be used for one card and may as well go in PokeBattle_MoveEffects under the appropriate function code.

No, I think having a PokeBattle_MoveEffects for card effects (probably one for an attack's effect and one for any other kind of effect), plus creating a PokeBattle_Move entity for each attack and effect when the card is played (and remaining while the card is still in play) is the best option I can think of. It may use elements of your code.
I don't understand this. Guess because I didn't looked into Essentials code so much by now.
But for the effects, I would implement certain effects, e.g. "draw/search X cards from Y", where X and Y are to specify in the specific card. Yes, pretty much like that what Anglican wrote, even if I'm not sure where the 012 comes from.

Surely you couldn't object to keeping Trainers/Energies/Pokémon cards separate? For one, it'd make filters easier.
What is with Fossils?

Pokémon are grouped together according to evolution family (in ascending order), and are then put into element super-groups according to the type of the first Pokémon in that group (e.g. Eevee-related cards will be in the Colourless group).
I can't give you an example, but I'm pretty sure there were Pokemon which had one time this type, the other time another type, but both cards still a basic pokemon. How would that be sorted?

Maybe once the first alpha comes out, there will be more confidence. Some time this month. Actually, I don't know whether it could more accurately be called a beta; I don't do all this version naming stuff.
Alpha means basically untested, beta is when you have your own testers, as far as my understanding goes.

end of commenting old stuff

Naturally, effects and the AI is the most difficult when it comes to card games. I would like to see them and I will as soon as I test out what you did so far. I would like to help with the effects, too. Not so sure about AI, but we will figure something out.

I just wonder where all the other commentators from last year's september have been gone? Do you receive their input by PM now or what?

Maruno
January 29th, 2013, 05:45 AM
looks good bypassed this thread really because i forgot TCG was trading card game was thinking it was a different game engine thing

if you need it ive got a psd template that i use when making my own cards i could upload it for you?

EDIT
ok just tried the demo and looks pretty cool shame you cant have a proper match atm but its promising

when you progress further with this will you be allowing essentials to be played along side the card game (the alpha replaces the essentials debug menu but not sure if it makes other things unusable or not)
Your template may be useful for other people, but not for me. I'm only worrying about the cards that already exist.

I don't intend to let the TCG be playable alongside regular Essentials, because I think the TCG is too big a thing to be relegated to mini-game status. Doubtless, the first thing people will do is try to turn it into a mini-game, and I don't think it'd be that difficult to do, but I do think any game which features both regular Pokémon gameplay and the TCG will be too cluttered for its own good.


I totally support this add-on. :D
How many cards do you intend to include? The sequel to the GBC game included the Team Rocket set... (Promos? Cards exclusive to the Gameboy, e.g. Legendary cards?)
All the cards I want to include are already included. Anything extra is a bonus, not a goal.


What exactly are PBS files? And I guess you guys don't HAVE a list of all cards by now? Because that is my main offer: A program to extract that data from a website.
PBS files are txt files in the PBS folder. A quick glance at them should tell you what they do.

"You guys" means me. I'm the only one working on this project.

You can make your program if you want, but I personally don't need it. As I've said, I've already got all the cards I need, and I don't intend to add any more.


I guess we should handle it as it is handled officially. And through I don't know how, I bet they will match the current system. For example (in Yu-Gi-Oh!), cards which referred to the "Fusion Deck" will now be interpreted as they target the "Extra Deck", because that is what the Fusion Deck became. As I recall, the games actually rewrote the cards for things like this.


Only so difficult that a player can't exit the deck building screen until his deck is playable again. I vote for recipes.


Where in the Pokemon games can't you decide with how many Pokemon to battle. 1 or 2 prices could be good for training purposes. Also, extendability. I don't want to see something like "threePrices = True" but rather "prices = 3".
I've already decided on these things. Cards remain as they originally are, and the engine accommodates/modernises their effects internally. Decks behave as recipes. You can define the number of prize cards for each duel individually, as any value.


In addition, a currency would be easy to add, after all.
The ease of adding currency isn't important. What matters is whether it suits the game, and I don't think it does, as I've already said.


In YGO you don't get to know where the cards used against you are from, but you have the names and can save up duel points (cash) to get them through their ID, implying you look the ID up through the net. As you, Maruno, don't want cash I would recommend something like the "seen" option – wherever you add it – so the player can get a certain card somehow.
That red part is the important bit. It states you've done something outside of the game to figure out where to get certain cards from, whether it be look at a real copy of the card you really own, or look it up online. Nothing in the game indicates where cards come from.

In any case, the Card Dex will show gaps if you don't have the card in question, so you'll know there's something missing. You'll also know when you've received a brand new card from a booster pack, because it'll be marked as such. I think that's good enough.


I don't understand this. Guess because I didn't looked into Essentials code so much by now.
But for the effects, I would implement certain effects, e.g. "draw/search X cards from Y", where X and Y are to specify in the specific card. Yes, pretty much like that what Anglican wrote, even if I'm not sure where the 012 comes from.
I know what I'm doing, and I've done most of what you quoted and suggested already anyway.


What is with Fossils?
Fossils are Trainer Cards with interesting effects.


I can't give you an example, but I'm pretty sure there were Pokemon which had one time this type, the other time another type, but both cards still a basic pokemon. How would that be sorted?
I'm ignoring that particular sorting method because it's way fiddly, so it's not a problem. I hadn't actually considered what you said, though, and if I ever do decide to add that sorting method after all, it's something else to consider.


I just wonder where all the other commentators from last year's september have been gone? Do you receive their input by PM now or what?
I released the alpha less than 12 hours before you posted. Give them a chance!

p.claydon
January 29th, 2013, 06:15 AM
would you like bug reports from this alpha or you already aware of the times it ctd?

and thats a good point about the tcg mixed with essentials didnt think of that bit tbh :P

Maruno
January 29th, 2013, 06:45 AM
As far as I'm aware, what exists should work. If there's anything that causes a crash or an immediate end of the turn (which is what a script problem does during a duel), please let me know.

Nintendork15
January 29th, 2013, 07:16 AM
http://i.snag.gy/Q2Xs2.jpg
This ponyta has been dead a while now.
Little help?

Maruno
January 29th, 2013, 07:20 AM
I said fainting wasn't programmed in yet. It's a bit tangled up with prizes and win conditions and choosing replacement Active Pokémon, none of which are in either.

p.claydon
January 29th, 2013, 03:58 PM
well this is still pretty damned kool keep up the good work

Ayutac
January 30th, 2013, 09:20 AM
Sorry again for necroreplying to some points before.

So here is what I get: As a coder and concerning this project, there is no way to help you right now, is there?

Maruno
January 30th, 2013, 10:23 AM
Any comments, observations, ideas and suggestions about any part of the project (existing or not) are welcome. I've never worked on code alongside someone else before, so I don't know exactly what you could do. I'd like some opinions on how well my code works, as well as pointing out if there are any gaps.

If you want to help in a more direct sense, there's the Card Dex and the Card Summary screens to be created, as well as a way to receive booster packs. I imagine the first two to be direct copies of the Pokédex and Pokémon summary screens respectively. All of these would need to be designed via concept art, obviously.

p.claydon
January 30th, 2013, 11:04 AM
i guess the booster pack would depend on what sortta game your planning on but possibly buy them from shops
i dont know how things work fully but in an older version of essentials when i tried to get pokemon in exchange for game corner coins i set up dummy items and once the shop process had finished it would convert the items into pokemon via an event maybe boosters could be the same

Maruno
January 30th, 2013, 03:55 PM
There'll be no such thing as "buying" in this project. Booster packs can either be free gifts, or rewards for winning duels. Either way, it works the same, as I shall now explain.

I imagined a screen showing the available booster packs (which can either be "all that exist" or "a defined selection of them"), and clicking on a pack will open it and show you what cards you've received. If you're allowed to choose more than 1 booster pack, you then go back to the first screen and choose another pack.

Each booster pack can be finite (you can choose it once and then it disappears from your choices) or infinite (you can choose it as many times as you like). Note that this only applies to a single instance of getting booster packs, and what you choose in one instance has no effect on the next instance (which may well have a different selection of packs to choose from).

I imagine that the "infinite" option would be used either always or never, i.e. not "just some of the time". It would depend on how the user wants their game to work. It only matters in the player can get more than 1 pack at once anyway. Both options have their perks.

Something like this:
http://www.mobygames.com/images/shots/l/61846-yu-gi-oh-the-eternal-duelist-soul-game-boy-advance-screenshot.png
The finite/infinite status of booster packs doesn't need to be shown. A single card set can have multiple booster pack artworks (which are part of the definitions alongside the quantity), in which case each one is defined separately and will appear separately.

This method is done even if you can only choose 1 pack. That pack is still shown first in this screen, which you click on to open.

Does anyone know the chances of cards of each rarity appearing in a booster pack? Should booster packs be throttled to force at least (or exactly) 1 rare card (or higher rarity) in every pack?

p.claydon
January 30th, 2013, 06:13 PM
fair enough sounds acceptable

donavannj
January 30th, 2013, 07:33 PM
Does anyone know the chances of cards of each rarity appearing in a booster pack? Should booster packs be throttled to force at least (or exactly) 1 rare card (or higher rarity) in every pack?

Speaking as someone who actively collects and plays the TCG, every booster after Base Set has had to include a rare card, due to allegations of it basically being gambling targeted at kids.

While I do not know the exact odds of secret rare card pulls, I do know that it has changed over the years and I do know which secret rare types are rarer than others.

I have very limited knowledge of programming, but I do have extensive knowledge about the workings of the TCG and would be willing to lend my knowledge with regards to how some situations would and should play out.

I'm currently downloading your Alpha right now to give what you've currently got developed a look-over.

EDIT: Okay, something that stands out - there is no limit to how much energy can be attached in a single turn in your game engine. In the physical TCG, you can only attach 1 energy per turn unless a PokePower/Ability (Ability technically being the proper current name for PokePowers & PokeBodies), an effect of a card, or an effect of an attack allows you to attach additional energy.

Maruno
January 31st, 2013, 06:36 AM
Speaking as someone who actively collects and plays the TCG, every booster after Base Set has had to include a rare card, due to allegations of it basically being gambling targeted at kids.

While I do not know the exact odds of secret rare card pulls, I do know that it has changed over the years and I do know which secret rare types are rarer than others.

I have very limited knowledge of programming, but I do have extensive knowledge about the workings of the TCG and would be willing to lend my knowledge with regards to how some situations would and should play out.
Your knowledge would be very helpful.

Here's a couple of questions to start off with:

Are the Metronome attacks for Clefairy (http://bulbapedia.bulbagarden.net/wiki/Clefairy_%28Base_Set_5%29) and Clefable (http://bulbapedia.bulbagarden.net/wiki/Clefable_%28Jungle_1%29) intended to be identical? Clefable also says to ignore costs of attack (e.g. Charizard's (http://bulbapedia.bulbagarden.net/wiki/Charizard_%28Base_Set_4%29) "discard 2 energy"), whereas Clefairy doesn't.
Should Raticate's (http://bulbapedia.bulbagarden.net/wiki/Raticate_%28Base_Set_40%29) Super Fang attack ignore all effects/weaknesses/resistances and always deal the amount of damage it says, or is that calculation just for the base damage and it would then be affected by PlusPower and the like?

I'm sure I'll come across more questions when I get round to the various effects. If you can think of any cards/effects/interactions from Base/Jungle/Fossil that you think might be tricky, please let me know.

One thing I was pleased to discover was how cards like Pokémon Breeder (http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_Breeder_%28Base_Set_2_105%29) should work - the intermediate card (if skipping from Basic to Stage 2) must exist as a card, even if it's not in the deck, and it doesn't work on Baby Pokémon. That makes things more convenient to code.

If possible, could you have a look at the order in which things happen during an attack? It's as follows:

def pbUseAttack(user)
@battle.pbDisplay(_INTL("{1} used {2}!",user.name,self.name))
target=pbGetTarget(user) # Usually done automatically.
return if !pbBabyCheck(user,target)
return if !pbOnStartUse(user) # e.g. Flip a coin. If Tails, this attack does nothing.
pbPayAttackCost(user,target) # e.g. Discard 2 energy.
pbCheckEffects(user,target)
return if !pbConfusionCheck(user)
if target
dmg=pbBaseDamage(user,target)
dmg=pbModifyDamageBefore(dmg,user,target) # Modifiers on attacker
dmg=pbEffectiveness(dmg,user,target) # Weakness/resistance
dmg=pbModifyDamageAfter(dmg,user,target) # Modifiers on target
pbDealDamage(dmg,user,target)
end
pbEffect(user,target)
endI've tried to take account of whatever I can think of, but I'm sure there'll be things I've overlooked. If an attack can't be used (e.g. don't have enough energy, Farfetch'd's (http://bulbapedia.bulbagarden.net/wiki/Farfetch%27d_%28Base_Set_27%29) Leek Slap), it can't even be chosen to be used in the first place, so the above code assumes the attack can be used. Checking fainting cards is a separate thing that happens immediately after the attack (as well as on other occasions).


EDIT: Okay, something that stands out - there is no limit to how much energy can be attached in a single turn in your game engine. In the physical TCG, you can only attach 1 energy per turn unless a PokePower/Ability (Ability technically being the proper current name for PokePowers & PokeBodies), an effect of a card, or an effect of an attack allows you to attach additional energy.
Yes, it's an alpha. There aren't yet any limits on what you can do in your turn - it helps with debugging, they're easy enough to implement, and I've got other things to worry about at the moment.

donavannj
January 31st, 2013, 03:51 PM
Your knowledge would be very helpful.

Here's a couple of questions to start off with:

Are the Metronome attacks for Clefairy (http://bulbapedia.bulbagarden.net/wiki/Clefairy_%28Base_Set_5%29) and Clefable (http://bulbapedia.bulbagarden.net/wiki/Clefable_%28Jungle_1%29) intended to be identical? Clefable also says to ignore costs of attack (e.g. Charizard's (http://bulbapedia.bulbagarden.net/wiki/Charizard_%28Base_Set_4%29) "discard 2 energy"), whereas Clefairy doesn't.
Should Raticate's (http://bulbapedia.bulbagarden.net/wiki/Raticate_%28Base_Set_40%29) Super Fang attack ignore all effects/weaknesses/resistances and always deal the amount of damage it says, or is that calculation just for the base damage and it would then be affected by PlusPower and the like?

I'm sure I'll come across more questions when I get round to the various effects. If you can think of any cards/effects/interactions from Base/Jungle/Fossil that you think might be tricky, please let me know.


1. Based on the fact that both cards were reprinted in Base Set 2 and follow the wording on Jungle Clefable, they're both intended to work the way Jungle Clefable is worded.

2. Unless the attack specifically says to ignore those effects, those effects still apply to Super Fang. The attack has to specifically say to ignore those effects.


One thing I was pleased to discover was how cards like Pokémon Breeder (http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_Breeder_%28Base_Set_2_105%29) should work - the intermediate card (if skipping from Basic to Stage 2) must exist as a card, even if it's not in the deck, and it doesn't work on Baby Pokémon. That makes things more convenient to code.


There may be a catch if someone were to implement a later card-set into your engine, as that would make a later Alakazam card (it was printed in the Diamond & Pearl era along with an Abra, but no Kadabra was ever printed to accompany those two in that set or any other set released around it) effectively unplayable if the person implementing that set wasn't aware of this being how your code processes how cards like Pokemon Breeder and Rare Candy work. That's probably a problem to save for a later time, however.




If possible, could you have a look at the order in which things happen during an attack? It's as follows:

def pbUseAttack(user)
@battle.pbDisplay(_INTL("{1} used {2}!",user.name,self.name))
target=pbGetTarget(user) # Usually done automatically.
return if !pbBabyCheck(user,target)
return if !pbOnStartUse(user) # e.g. Flip a coin. If Tails, this attack does nothing.
pbPayAttackCost(user,target) # e.g. Discard 2 energy.
pbCheckEffects(user,target)
return if !pbConfusionCheck(user)
if target
dmg=pbBaseDamage(user,target)
dmg=pbModifyDamageBefore(dmg,user,target) # Modifiers on attacker
dmg=pbEffectiveness(dmg,user,target) # Weakness/resistance
dmg=pbModifyDamageAfter(dmg,user,target) # Modifiers on target
pbDealDamage(dmg,user,target)
end
pbEffect(user,target)
endI've tried to take account of whatever I can think of, but I'm sure there'll be things I've overlooked. If an attack can't be used (e.g. don't have enough energy, Farfetch'd's (http://bulbapedia.bulbagarden.net/wiki/Farfetch%27d_%28Base_Set_27%29) Leek Slap), it can't even be chosen to be used in the first place, so the above code assumes the attack can be used. Checking fainting cards is a separate thing that happens immediately after the attack (as well as on other occasions).

That seems to be largely the correct order by current rules. I have been looking, and I have yet to see a damage booster or a damage reducing card/effect break this order, other than the original PlusPower print, which says to apply the damage after weakness and resistance.

Yes, it's an alpha. There aren't yet any limits on what you can do in your turn - it helps with debugging, they're easy enough to implement, and I've got other things to worry about at the moment.

Ah, okay. Makes sense.

Maruno
February 1st, 2013, 08:06 AM
1. Based on the fact that both cards were reprinted in Base Set 2 and follow the wording on Jungle Clefable, they're both intended to work the way Jungle Clefable is worded.

2. Unless the attack specifically says to ignore those effects, those effects still apply to Super Fang. The attack has to specifically say to ignore those effects.
Ah, I didn't think about reprints. That's convenient - only one attack effect there instead of two.

Super Fang was easy to fix. Fair enough.


There may be a catch if someone were to implement a later card-set into your engine, as that would make a later Alakazam card (it was printed in the Diamond & Pearl era along with an Abra, but no Kadabra was ever printed to accompany those two in that set or any other set released around it) effectively unplayable if the person implementing that set wasn't aware of this being how your code processes how cards like Pokemon Breeder and Rare Candy work. That's probably a problem to save for a later time, however.
I considered this "problem" too, but I for one am definitely not going to get to a point where there's no Kadabra (stupid Geller). Besides, all that needs to be done is to create a "dummy" card set (a real set but which the player can never obtain any cards from) containing whichever Kadabra cards you want, just for the sake of them existing. It would ideally contains a Kadabra, Dark Kadabra, and Sabrina's Kadabra to cover all the bases.


That seems to be largely the correct order by current rules. I have been looking, and I have yet to see a damage booster or a damage reducing card/effect break this order, other than the original PlusPower print, which says to apply the damage after weakness and resistance.
Good to hear. I'm not surprised PlusPower is a little odd, given that it's an original card. Still, I'm following the original rules as close as possible, so this PlusPower will still apply itself after weakness/resistance calculations (assuming the damage hasn't already been dropped to 0 by then, of course; if the damage ever hits 0 after a step, all later steps are skipped and no damage is dealt).

Obviously the cards I'm using are way before the double battle rules. Can I assume that, unless specifically stated otherwise (which these cards won't), any reference to the "Defending Pokémon" will actually refer to the attack's target? That is, if the opponent has a Charizard and a Blastoise as Active Pokémon, I can only Metronome a Charizard move against Charizard, and a Blastoise move against Blastoise? Not that I'm worrying too much about double battles at the moment, though.

p.claydon
February 1st, 2013, 09:56 AM
wit what TCG had double battles (i only got up2 the 1st movie with promo mewtwo) that makes it sound complicated now

donavannj
February 1st, 2013, 12:18 PM
Ah, I didn't think about reprints. That's convenient - only one attack effect there instead of two.

Super Fang was easy to fix. Fair enough.


No problem.


I considered this "problem" too, but I for one am definitely not going to get to a point where there's no Kadabra (stupid Geller). Besides, all that needs to be done is to create a "dummy" card set (a real set but which the player can never obtain any cards from) containing whichever Kadabra cards you want, just for the sake of them existing. It would ideally contains a Kadabra, Dark Kadabra, and Sabrina's Kadabra to cover all the bases.


Makes sense.


Good to hear. I'm not surprised PlusPower is a little odd, given that it's an original card. Still, I'm following the original rules as close as possible, so this PlusPower will still apply itself after weakness/resistance calculations (assuming the damage hasn't already been dropped to 0 by then, of course; if the damage ever hits 0 after a step, all later steps are skipped and no damage is dealt).


I'm assuming that you'd consider making a version for the newer PlusPower prints at some point? The newer PlusPower prints do apply before Weakness and Resistance are applied. Though all the newer versions of PlusPower are from 2007-onward, so you may not ever get to that point, based on your response to the possible Kadabra problem above.


Obviously the cards I'm using are way before the double battle rules. Can I assume that, unless specifically stated otherwise (which these cards won't), any reference to the "Defending Pokémon" will actually refer to the attack's target? That is, if the opponent has a Charizard and a Blastoise as Active Pokémon, I can only Metronome a Charizard move against Charizard, and a Blastoise move against Blastoise? Not that I'm worrying too much about double battles at the moment, though.
Yes, you can assume this. That move wouldn't take on the opponent's typing, however. It would just use Clefairy's/Clefable's, if you weren't sure about that.


wit what TCG had double battles (i only got up2 the 1st movie with promo mewtwo) that makes it sound complicated now

Double battles were attempted to be implemented sometime around 2006/2007, iirc. It didn't catch on, however.

Maruno
February 1st, 2013, 02:03 PM
I'm assuming that you'd consider making a version for the newer PlusPower prints at some point? The newer PlusPower prints do apply before Weakness and Resistance are applied. Though all the newer versions of PlusPower are from 2007-onward, so you may not ever get to that point, based on your response to the possible Kadabra problem above.
My goal is to make an engine containing the Base Set/Jungle/Fossil cards. Anything beyond that would be a bonus. Eventually I'll be asking for a selection of cards which demonstrate every new mechanic (e.g. burned status, Baby Pokémon, Lv.X, Stadiums, Plasma cards, LEGEND, etc.) so that I can add in some support for them too, but that's only for after I'm done and if I still care by then (the AI and prettying are bound to take a lot out of me).

p.claydon
February 5th, 2013, 10:04 AM
hows the progress going looking forward to seeing this more complete

Fransferdy
February 5th, 2013, 11:51 AM
If anyone gets all the cards graphics, and one internet page saying what each card do, i can make a database and a card battle engine, for Game Maker.

tymime
February 5th, 2013, 12:27 PM
If anyone gets all the cards graphics, and one internet page saying what each card do, i can make a database and a card battle engine, for Game Maker.
Well, there is Bulbapedia.

Maruno
February 5th, 2013, 12:31 PM
hows the progress going looking forward to seeing this more complete
I've not done too much recently. Special conditions are now in (both their effects and the card rotations), I'm working on card fainting (it currently works except for the prize card part which needs prize cards in general to be made functional), and I've made some general tweaks. I'm not actually keeping a list of my changes for this, so I couldn't say specifically what I've done.


If anyone gets all the cards graphics, and one internet page saying what each card do, i can make a database and a card battle engine, for Game Maker.
the__end provided me with card images, and I had Bulbapedia. You have access to both of those too, so "lack of resources" isn't an excuse. You can start making your thing now.

Fransferdy
February 5th, 2013, 12:38 PM
Thanks for the tips, i'll see what i can do. Also good work with Essentials =D

About the TCG Engine, not sure if you are willing to add this, but you could make tcg battles worth of Pokemons, like if each side(you and your enemy) makes a bet, and the winner gets a Pokemon.

p.claydon
February 5th, 2013, 02:11 PM
here is the link for bulbapedia if you still would like it
http://bulbapedia.bulbagarden.net/wiki/List_of_Pok%C3%A9mon_Trading_Card_Game_expansions

Maruno
February 5th, 2013, 03:21 PM
About the TCG Engine, not sure if you are willing to add this, but you could make tcg battles worth of Pokemons, like if each side(you and your enemy) makes a bet, and the winner gets a Pokemon.
If you're talking about playing a card game for actual Pokémon, I've already said that I don't support using the TCG extension alongside the classic game, which means there will be no such thing as actual Pokémon in a TCG game. However, if you mean something like an ante rule, I have no particular desire to add that in. Playing for booster packs is good enough (you can always set a duel to give out 0 booster packs, and/or afterwards give the player a specific card if you want).

Oh, I'm always accepting contributions of new premade decks (and deck icons - the ones I bodged together are a bit iffy). Remember that the vast majority of premade decks will belong to enemy trainers only, and will not be accessible to the player, so you can make decks just for Club Masters if you want. Should all (or as many as possible given the card pool) of the decks that appear in the TCG games be included?

yakoo
February 5th, 2013, 04:22 PM
Exactly what do you want? I can make / Design Cards (Big and Icons) and everything, but i don't understand the english very well :( so i am not understanding what do you want

DaSpirit
February 5th, 2013, 04:55 PM
Hey Maruno, can you update your first post with all of the information about this?

I'm wondering, is this an addition to Essentials, or at least an editable? I thought you said earlier that it wasn't going to be, but now I see you talking about others adding stuff in (maybe I'm making stuff up lol).

Maruno
February 7th, 2013, 06:02 PM
Exactly what do you want? I can make / Design Cards (Big and Icons) and everything, but i don't understand the english very well :( so i am not understanding what do you want
The PBS file tcgdecks.txt contains all the premade decks, such as:

1,STARTERDECK,Starter Deck,0,BASEDIGLETT,3,BASEMACHOP,4,BASEMACHOKE,2,
BASECHARMANDER,4,BASECHARMELEON,2,BASEGROWLITHE,1,BASEPONYTA,4,BASERATTATA,2,
BASEDRATINI,1,BASEBILL,1,BASEENERGYREMOVAL,1,BASEENERGYRETRIEVAL,1,
BASEGUSTOFWIND,1,BASEPOKEDEX,1,BASEPOTION,2,BASESWITCH,2,BASEFIGHTING,14,
BASEFIRE,14I was asking if people wanted to make their own decks like this, to be included with the project.


Hey Maruno, can you update your first post with all of the information about this?

I'm wondering, is this an addition to Essentials, or at least an editable? I thought you said earlier that it wasn't going to be, but now I see you talking about others adding stuff in (maybe I'm making stuff up lol).
I'm calling it an extension to Essentials. Essentials itself remains untouched, and the TCG scripts are maybe a dozen additional script sections you can throw in. They're as editable as any Essentials script.

What I was saying is that, if you want to play a regular Pokémon game and have the TCG as just a mini-game within it (rather than having the TCG be the main focus of the game), I'm not going to help you. I've said before that I don't think it should be a mini-game, so I'm not going to support anyone who tries to turn it into one.

There's a huge difference between that and asking for new premade decks.


In other news, I've finally added prize card functionality, including being able to take prize cards for knocking out Pokémon. Once I've added in the win condition checks, you'll be able to play properly! (Except that the AI is a vegetable that does nothing, many card effects don't exist, and there are no restrictions on actions per turn. Apart from all that, though, the only real things left to do are cosmetic.) Of course, there's also still many out-of-duel things to do (Card Dex, summary, booster packs, etc.).

donavannj
February 7th, 2013, 06:42 PM
I could certainly contribute some decklists for NPCs.

I'll get back to you when I get the first of those done.

the__end
February 8th, 2013, 06:18 AM
1,STARTERDECK,Starter Deck,0,BASEDIGLETT,3,BASEMACHOP,4,BASEMACHOKE,2,
BASECHARMANDER,4,BASECHARMELEON,2,BASEGROWLITHE,1,BASEPONYTA,4,BASERATTATA,2,
BASEDRATINI,1,BASEBILL,1,BASEENERGYREMOVAL,1,BASEENERGYRETRIEVAL,1,
BASEGUSTOFWIND,1,BASEPOKEDEX,1,BASEPOTION,2,BASESWITCH,2,BASEFIGHTING,14,
BASEFIRE,14I was asking if people wanted to make their own decks like this, to be included with the project.
Maybe you are interested in adding the decks from the GBC game?
Practice deck 1 (The one you use against Sam):

14x Water energy
10x Psychic energy
2x Squirtle
1x Wartortle
1x Blastoise
2x Seel
1x Dewgong
2x Staryu
1x Starmie
3x Goldeen
2x Seaking
1x Lapras
2x Abra
1x Kadabra
1x Alakazam
3x Drowzee
2x Hypno
1x Jynx
3x Rattata
2x Raticate
2x Bill
1x Full heal
2x Potion

Practice deck 2 (The one Sam uses against you):

13x Lightning energy
11x Fighting energy
1x Double colorless energy
2x Pikachu lvl 12
1x Pikachu lvl 14
1x Raichu lvl 40
1x Raichu lvl 45
2x Jolteon lvl 29
1x Electabuzz lvl 35
4x Machop
2x Machoke
2x Machamp
2x Diglett
1x Dugtrio
2x Rhyhorn
1x Rhydon
1x Hitmonchan
1x Onix
3x Eevee
2x Rattata
2x Raticate
1x Prof. Oak
1x Bill
1x Gust of wind
1x Potion

Fire & lightning deck:

10x Fire energy
10x Lightning energy
2x Double colorless energy
2x Charmander
1x Charmeleon
1x Charizard
2x Growlithe
1x Arcanine lvl 45
2x Ponyta
1x Rapidash
1x Magmar lvl 24
1x Magmar lvl 31
1x Pikachu lvl 12
1x Pikachu lvl 14
1x Raichu lvl 40
3x Voltorb
1x Electrode lvl 35
1x Electrode lvl 42
2x Magnemite lvl 13
1x Magneton lvl 28
2x Rattata
1x Raticate
1x Prof. Oak
2x Energy search
2x Bill
1x Potion
2x Pluspower
2x Defender
2x Switch

Water & fighting deck:

12x Water energy
10x Fighting energy
2x Double colorless energy
2x Poliwag
1x Poliwhirl
1x Poliwrath
2x Seel
1x Dewgong
2x Staryu
1x Starmie
2x Goldeen
1x Seaking
2x Sandshrew
1x Sandslash
3x Machop
2x Machoke
1x Machamp
2x Rhyhorn
1x Rhydon
1x Hitmonchan
1x Prof. Oak
3x Potion
2x Bill
2x Full heal
2x Energy search

Grass & psychic deck:

12x Grass energy
12x Psychic energy
2x Weedle
1x Kakuna
1x Beedrill
2x Exeggcute
1x Exeggcutor
2x Nidoran (female)
1x Nidorina
2x Paras
1x Parasect
1x Pinsir
3x Abra
2x Kadabra
3x Drowzee
2x Hypno
1x Jynx
1x Farfetch'd
1x Tauros
2x Bill
2x Potion
1x Full heal
2x Energy search
2x Gust of wind

Imakuni? deck:

10x Water energy
16x Psychic energy
4x Psyduck
3x Golduck
4x Drowzee
3x Hypno
2x Slowpoke lvl 9
2x Slowpoke lvl 18
3x Slowbro
4x Farfetch'd
4x Imakuni?
2x Pokemon flute
2x Maintenance
1x Gambler

I'm Ronald deck:

9x Fire energy
10x Water energy
8x Fighting energy
3x Charmander
2x Charmeleon
3x Growlithe
1x Arcanine lvl 45
3x Squirtle
2x Wartortle
2x Seel
1x Dewgong
2x Lapras
3x Cubone
2x Marowak lvl 26
1x Prof. Oak
2x Energy search
2x Gust of wind
1x Switch
1x Pluspower
1x Defender
1x Energy retrieval

Invincible Ronald deck:

7x Grass energy
6x Fire energy
7x Fighting energy
4x Double colorless energy
3x Grimer
2x Muk
4x Scyther
3x Magmar lvl 31
3x Geodude
2x Graveler
2x Kangaskhan
2x Chansey
2x Prof. Oak
2x Pluspower
2x Scoop up
2x Gust of wind
2x Energy retrieval
2x Bill
2x Energy removal
1x Gambler

Powerful Ronald deck:

7x lightning energy
9x Fighting energy
7x Psychic energy
3x Double colorless energy
3x Electabuzz lvl 35
2x Hitmonchan
2x Hitmonlee
1x Mr. mime
2x Jynx
1x Mewtwo lvl 53
2x Doduo
1x Dodrio
2x Kangaskhan
2x Lickitung
3x Tauros
1x Energy search
2x Gust of wind
2x Energy retrieval
1x Super energy retrieval
2x Energy removal
2x Pluspower
1x Switch
1x Full heal
1x Gambler

Love to battle deck:

26x Fighting energy
4x Machop
3x Machoke
2x Machamp
2x Mankey
1x Primeape
3x Rattata
2x Raticate
2x Doduo
1x Dodrio
1x Tauros
4x Defender
2x Full heal
3x Potion
4x Pluspower

Muscles for brains deck:

26x Fighting energy
2x Double colorless energy
3x Machop
2x Machoke
2x Machamp
1x Mankey
1x Primeape
2x Hitmonchan
2x Hitmonlee
3x Meowth lvl 15
2x Persian
1x Lickitung
2x Tauros
1x Kangaskhan
1x Bill
1x Energy removal
1x Revive
1x Potion
1x Super potion
2x Pluspower
1x Full heal
2x Gust of wind

Hard pokemon deck:

25x Fighting energy
4x Geodude
3x Graveler
2x Golem
3x Cubone
2x Marowak lvl 26
2x Rhyhorn
1x Rhydon
3x Onix
1x Snorlax
3x Bill
2x Potion
2x Poke ball
3x Gust of wind
4x Defender

Blistering pokemon deck:

4x Fire energy
7x Fighting energy
5x Psychic energy
2x Double colorless energy
3x Ponyta
2x Rapidash
4x Cubone
2x Marowak lvl 26
4x Rhyhorn
2x Rhydon
4x Onix
3x Jynx
2x Prof. Oak
3x Bill
2x Gust of wind
3x Defender
3x Switch
2x Pokemon trader
2x Mr. fuji
1x Energy retrieval

Lovely Nidoran deck (The one used in the science club):

24x Grass energy
3x Nidoran (male)
2x Nidorino
1x Nidoking
4x Nidoran (female)
2x Nidorina
2x Nidoqueen
2x Grimer
1x Muk
2x Koffing
1x Weezing
1x Pinsir
2x Doduo
2x Meowth lvl 15
2x Farfetch'd
1x Prof. Oak
2x Bill
2x Pokemon breeder
2x Poke ball
1x Switch
1x Gambler

Etcetera deck:

8x Grass energy
4x Fire energy
4x Lightning energy
4x Fighting energy
4x Psychic energy
1x Caterpie
1x Weedle
2x Nidoran (female)
2x Oddish
2x Tangela lvl 12
2x Charmander
1x Magmar lvl 31
2x Pikachu lvl 12
1x Magnemite lvl 13
2x Machop
1x Diglett
2x Gastly lvl 8
1x Jynx
3x Bill
3x Energy search
3x Pluspower
3x Poke ball
2x Defender
2x Energy retrieval

Anger deck:

10x Fire energy
8x Fighting energy
4x Double colorless energy
3x Growlithe
2x Arcanine lvl 34
3x Cubone
3x Rattata
2x Raticate
3x Doduo
2x Dodrio
3x Tauros
2x Prof. Oak
3x Bill
2x Defender
2x Computer search
2x Energy retrieval
2x Gust of wind
4x Pluspower

Flamethrower deck:

22x Fire energy
4x Double colorless energy
2x Charmander
2x Charmeleon
1x Charizard
2x Growlithe
1x Arcanine lvl 45
2x Vulpix
1x Ninetails lvl 32
3x Magmar lvl 24
2x Flareon lvl 28
3x Eevee
1x Pokemon trader
3x Energy retrieval
3x Bill
3x Gust of wind
2x Pluspower
1x Super energy retrieval
2x Switch

Reshuffle deck:

23x Fire energy
2x Double colorless energy
2x Ponyta
2x Growlithe
1x Arcanine lvl 45
4x Vulpix
3x Ninetails lvl 35
4x Pidgey
3x Pidgeotto
2x Pidgeot lvl 38
1x Jigglypuff lvl 13
1x Wigglytuff
1x Tauros
2x Lickitung
1x Kangaskhan
2x Bill
1x Energy removal
1x Super energy removal
2x Switch
2x Energy retrieval

Ghost deck:

6x Grass energy
15x Psychic energy
3x Double colorless energy
4x Zubat
3x Golbat
2x Gastly lvl 8
2x Gastly lvl 17
2x Haunter lvl 17
2x Haunter lvl 22
4x Gengar
3x Meowth lvl 15
3x Ditto
2x Prof. Oak
1x Bill
1x Full heal
2x Potion
2x Pokemon breeder
1x Gust of wind
2x Recycle

Naptime deck:

8x Grass energy
18x Psychic energy
4x Paras
4x Exeggcute
4x Gastly lvl 8
2x Haunter lvl 17
2x Haunter lvl 22
4x Jigglypuff lvl 14
3x Wigglytuff
2x Bill
3x Pluspower
2x Gust of wind
2x Potion
2x Switch

Waterfront pokemon deck:

18x Water energy
7x Psychic energy
2x Squirtle
1x Wartortle
1x Blastoise
2x Poliwag
1x Poliwhirl
1x Poliwrath
2x Goldeen
1x Seaking
2x Psyduck
1x Golduck
2x Staryu
1x Starmie
2x Slowpoke lvl 18
1x Slowbro
1x Farfetch'd
2x Dratini
1x Dragonair
2x Bill
1x Pokedex
2x Switch
2x Potion
2x Energy retrieval
1x Gust of wind
1x Super potion

Lonely friends deck:

8x Grass energy
9x Water energy
4x Double colorless energy
4x Scyther
4x Poliwag
2x Omanyte
1x Omastar
1x Aerodactyl
2x Jigglypuff lvl 13
2x Jigglypuff lvl 14
4x Wigglytuff
2x Prof. Oak
2x Bill
4x Mysterious fossil
4x Clefairy doll
4x Potion
2x Scoop up
1x Super potion

Sound of the waves deck:

24x Water energy
2x Tentacool
1x Tentacruel
3x Krabby
2x Kingler
3x Shellder
2x Cloyster
2x Horsea
1x Seadra
3x Seel
2x Dewgong
3x Lapras
3x Bill
3x Pluspower
2x Energy removal
2x Pokemon trader
2x Full heal

Pikachu deck:

6x Water energy
16x Lightning energy
2x Surfing Pikachu
2x Surfing Pikachu (Different version)
1x Pikachu lvl 12
1x Pikachu lvl 14
1x Pikachu lvl 16
1x Pikachu lvl 16 (Different version)
2x Raichu lvl 40
2x Raichu lvl 45
4x Flying Pikachu
4x Bill
4x Potion
4x Full heal
4x Poke ball
4x Switch
2x Super potion

Power generator deck:

26x Lightning energy
2x Pikachu lvl 12
1x Pikachu lvl 14
1x Raichu lvl 40
1x Magnemite lvl 13
1x Magnemite lvl 15
1x Magneton lvl 28
1x Magneton lvl 35
3x Voltorb
1x Electrode lvl 35
1x Electrode lvl 42
1x Electabuzz lvl 20
1x Electabuzz lvl 35
3x Jolteon lvl 29
2x Zapdos lvl 64
4x Eevee
2x Bill
2x Switch
2x Pokemon trader
4x Defender

Boom boom selfdestruct deck:

8x Grass energy
14x Lightning energy
8x Fighting energy
4x Koffing
3x Weezing
4x Magnemite lvl 15
2x Magneton lvl 28
2x Magneton lvl 35
4x Geodude
3x Graveler
2x Golem
2x Prof. Oak
2x Energy search
2x Defender

Legendary Ronald Deck:

20x Fire energy
4x Double coloress energy
1x Gambler
2x Pokemon breeder
3x Energy removal
1x Pokemon trader
1x Professer oak.
2x Scoop up
4x Bill
4x Evee
4x Dratini
3x Dragonair
2x Dragonite (legendary)
2x Kangaskan
2x Moltres (legendary)
1x Zapdos (legendary)
1x Articuno (legendary)
1x Vaporeon (colorless energy version)
1x Joltien (colorless energy user version)
1x Flareon (colorless energy user version
And do you plan on adding the tcg decks like "Blackout", "Overgrowth", "Zap!" and "Brushfire"?

EDIT
A suggestion how to manage the AI:
Why not add some check for strategies to the prefabricated decks in the PBS file?
For example you could make a check if the deck is an "Evolution deck" or if you mainly use Basic cards.
And because the AI can only use prefabricated decks you have to make different AI for "Evolution decks" and "Basic Card decks".
For example "Evolution decks" should concentrate to evolving their pokemon as fast as possible and using them and "Basic Card" decks (with cards like Electabuzz) should try to overwhelm the opponent at the beginning of the game.
This way you can even combine different checks.
As an example lets use the both strategies above. If you have selected "Evolution deck" and "Basic Card deck" the AI should try to overwhelm the opponent with strong Basic cards at the beginning and try to evolve their other Basic cards as fast as possible. After the weak Basic Cards are evolved the AI should stop using strong Basic cards and start using evolved pokemon cards.
You see that if you combine strategies you need a priority for each one. In the above example the "Basic Card deck" strategy should have a little bit higher priority then the "Evolution Deck" strategy. This way the AI should use the "Basic Card deck" as its main strategy but it doesn't ignore the "Evolution deck" strategy.
Of course you need conditions for each strategy when to get higher or lower priority. For example the "Basic Card deck" should have a condition that this strategy gets lower priority when you have evolved cards. And because the "Basic Card deck" strategy has now lower priority then the "Evolution deck" strategy the AI starts to use evolved pokemon.
And you need to determine which cards can be called "strong" Basic cards so the "Basic Card deck" AI knows with which cards it should try to overwhelm the opponent.
Of course there are more Strategies you can determine for each deck and there are a lot of more ways to combine them. This way you can make a lot of different AI behavior! There are restrictions as well. This way each deck has just one combination of strategy that you can determine. If you want more you have to copy past the deck in the PBS file and change the checks i think. Maybe there is a better way thought. :)

Hope the stuff i said makes sense. I am not a programmer so i don't know how programming actually works. So sorry if i talked nonsense. :)

Maruno
February 8th, 2013, 09:00 AM
Maybe you are interested in adding the decks from the GBC game?

And do you plan on adding the tcg decks like "Blackout", "Overgrowth", "Zap!" and "Brushfire"?
I've already added the Blackout, etc. decks that came alongside the first 3 sets (9 decks in total). As for the decks in the GBC game, some of them use cards that aren't included in this project, so they'd need to at least be altered accordingly by someone who knows more about deck-building than I. They're all listed on Bulbapedia. (http://bulbapedia.bulbagarden.net/wiki/Auto_Deck_Machine)


EDIT
A suggestion how to manage the AI:
Why not add some check for strategies to the prefabricated decks in the PBS file?
For example you could make a check if the deck is an "Evolution deck" or if you mainly use Basic cards.
And because the AI can only use prefabricated decks you have to make different AI for "Evolution decks" and "Basic Card decks".
For example "Evolution decks" should concentrate to evolving their pokemon as fast as possible and using them and "Basic Card" decks (with cards like Electabuzz) should try to overwhelm the opponent at the beginning of the game.
This way you can even combine different checks.
As an example lets use the both strategies above. If you have selected "Evolution deck" and "Basic Card deck" the AI should try to overwhelm the opponent with strong Basic cards at the beginning and try to evolve their other Basic cards as fast as possible. After the weak Basic Cards are evolved the AI should stop using strong Basic cards and start using evolved pokemon cards.
You see that if you combine strategies you need a priority for each one. In the above example the "Basic Card deck" strategy should have a little bit higher priority then the "Evolution Deck" strategy. This way the AI should use the "Basic Card deck" as its main strategy but it doesn't ignore the "Evolution deck" strategy.
Of course you need conditions for each strategy when to get higher or lower priority. For example the "Basic Card deck" should have a condition that this strategy gets lower priority when you have evolved cards. And because the "Basic Card deck" strategy has now lower priority then the "Evolution deck" strategy the AI starts to use evolved pokemon.
And you need to determine which cards can be called "strong" Basic cards so the "Basic Card deck" AI knows with which cards it should try to overwhelm the opponent.

Hope the stuff i said makes sense. I am not a programmer so i don't know how programming actually works. So sorry if i talked nonsense. :)
I really don't think such strategies need to be separated. It all boils down to "use the best cards", and what constitutes a "best card" depends on the environment (i.e. what other cards are in play, etc.). This can certainly become convoluted very quickly as the AI develops, as there'll be all sorts of checks and evaluations. This is especially true when you start thinking of combos.

Of course, the AI is going to cheat. That is, it'll make its choices while knowing about cards it shouldn't be able to know about (e.g. cards in the player's hand, which prize card is best to take, whether it'll draw something good because of Professor Oak (http://bulbapedia.bulbagarden.net/wiki/Professor_Oak_%28TCG%29)). However, it won't influence the outcomes of coin flips or whatever, so it'll be fair that way. I think making the AI omniscient is the only way it can be made to stand a chance against players.

As for how the AI will actually work, I have a vague idea. At the start of its turn, it looks around the duel and lists everything it is able to do (play a card from the hand, use an in-play effect such as a Pokémon Power, retreat, etc.), and then assign a desirability value to it. Calculating this value for each action depends a lot on the environment, and is the convoluted part. Once all the values are calculated, it will do the most desirable action and repeat (recalculating the values for what's left). Once there's nothing left to do, it will attack if possible and desirable - the good thing is that an attack is always the last thing in a turn (and there's always just 1 attack per turn), which makes it a bit simpler.

It sounds simple when I write it in just one paragraph, and some actions will always be desirable (e.g. play Bill (http://bulbapedia.bulbagarden.net/wiki/Bill_%28Base_Set_91%29)) and some will never be worth using (e.g. Mankey's Pokémon Power (http://bulbapedia.bulbagarden.net/wiki/Mankey_%28Jungle_55%29), as the AI will know all those cards via cheating anyway). However, when is the best time to play Energy Removal (http://bulbapedia.bulbagarden.net/wiki/Energy_Removal_%28Base_Set_92%29), and which Pokémon/energy should be hit by it? How about Super Energy Removal (http://bulbapedia.bulbagarden.net/wiki/Energy_Removal_%28Base_Set_79%29), which involves a cost to the user and may not be worth it (and if so, which card should the AI pay)? There's a huge amount of thought that needs to go into the AI for even a single effect, and I think that such thought needs to be done in order to make the AI worthwhile.

Tuning can come much later, e.g. deciding the threshold desirability value below which an action shouldn't be done, and how much randomness to involve in the choices.

As you can see, any emergent "strategy" will depend entirely on the make-up of the deck. It can only depend on the cards you've got available ("work with what you've got"), and it's up to the AI calculations for each card to decide how useful (and therefore desirable) it is. The overall behaviour of the AI will simply look like what it does the most, which depends on what it's got (e.g. an energy-controlling strategy will appear if there are a lot of energy-controlling effects in the deck). I don't think there's any need to include deck-specific AI profiles (particularly as it would tend to rail-road and hurt decks which could sometimes benefit from profiles they don't have), and instead throw every situational calculation into the one AI used for everything.

the__end
February 8th, 2013, 10:50 AM
I've already added the Blackout, etc. decks that came alongside the first 3 sets (9 decks in total). As for the decks in the GBC game, some of them use cards that aren't included in this project, so they'd need to at least be altered accordingly by someone who knows more about deck-building than I. They're all listed on Bulbapedia. (http://bulbapedia.bulbagarden.net/wiki/Auto_Deck_Machine)
Yeah the list is on Bulbapedia but you shouldn't mix up the Auto Deck Machine decks with the decks not available in the Auto Deck Machine! The Auto Deck Machine decks are meant for players and the other decks for the AI. There are cards that make the AI harder to beat and cards that need a strategy which the AI cant come up with.

Can you tell me some cards that aren't included but are needed for a deck? Maybe i can come up with a replacement. ^^

Of course, the AI is going to cheat. That is, it'll make its choices while knowing about cards it shouldn't be able to know about (e.g. cards in the player's hand, which prize card is best to take, whether it'll draw something good because of Professor Oak (http://bulbapedia.bulbagarden.net/wiki/Professor_Oak_%28TCG%29)). However, it won't influence the outcomes of coin flips or whatever, so it'll be fair that way. I think making the AI omniscient is the only way it can be made to stand a chance against players.
You should be careful so that the "cheat" is not to obvious. :D

As for how the AI will actually work, I have a vague idea. At the start of its turn, it looks around the duel and lists everything it is able to do (play a card from the hand, use an in-play effect such as a Pokémon Power, retreat, etc.), and then assign a desirability value to it. Calculating this value for each action depends a lot on the environment, and is the convoluted part. Once all the values are calculated, it will do the most desirable action and repeat (recalculating the values for what's left). Once there's nothing left to do, it will attack if possible and desirable - the good thing is that an attack is always the last thing in a turn (and there's always just 1 attack per turn), which makes it a bit simpler.
So the AI will do anything that it is able to do before attacking? Isn't it sometimes better (smarter) if the AI skips some actions if it doesn't need to do it? For example saving an Energy card for next turn is sometimes better then putting it on a Benched Pokemon that doesn't need any more energy. Or saving Professor Oak until you have less cards in your hand.


It sounds simple when I write it in just one paragraph, and some actions will always be desirable (e.g. play Bill (http://bulbapedia.bulbagarden.net/wiki/Bill_%28Base_Set_91%29)) and some will never be worth using (e.g. Mankey's Pokémon Power (http://bulbapedia.bulbagarden.net/wiki/Mankey_%28Jungle_55%29), as the AI will know all those cards via cheating anyway). However, when is the best time to play Energy Removal (http://bulbapedia.bulbagarden.net/wiki/Energy_Removal_%28Base_Set_92%29), and which Pokémon/energy should be hit by it? How about Super Energy Removal (http://bulbapedia.bulbagarden.net/wiki/Energy_Removal_%28Base_Set_79%29), which involves a cost to the user and may not be worth it (and if so, which card should the AI pay)? There's a huge amount of thought that needs to go into the AI for even a single effect, and I think that such thought needs to be done in order to make the AI worthwhile.
Energy Removal should hit the active Pokemon if it has enough energy to attack or if it will get enough energy to attack next turn. If the active pokemon will not get enough energy to attack next turn the AI chooses the pokemon with the most energy on the Bench. This is the simple way you could do it. If you want it smarter you should make it check the attack power of the benched pokemon and if they have enough energy to do this attack. If there is a benched pokemon that has a much stronger attack then the opponents active pokemon and enough energy to do this attack and if your opponents active pokemon have/will get enough energy to retreat next turn choose the benched pokemon. Which energy to choose is easier then choosing the pokemon i guess. "Color" energy should always get priority over "colorless" energy. "Color" energy that has the same type as the card should always get priority over other "color" energy.

Super energy removal should first check if you have more energy then you need in game. There is an order you can check this. First control the active pokemon. If AIs active pokemon doesn't has enough Energy to attack there is no need for other checks because you don't have enough energy.
If the active pokemon has enough energy check your bench for the amount of pokemon with energy cards. If its zero super energy removal would target AIs active pokemon and it is not worth it. If you have pokemon with energy on your bench check if you have at least one energy on your hand. If you dont you should check if your active pokemon has enough hp to survive next turn. if it has or you have an energy card on your hand there is no problem using super energy removal and choosing the weakest pokemon on the AIs bench. Colorless energy is preferred to pay of course. :)

You are right that the thoughts need to be done! But not by you alone you know. :D

As you can see, any emergent "strategy" will depend entirely on the make-up of the deck. It can only depend on the cards you've got available ("work with what you've got"), and it's up to the AI calculations for each card to decide how useful (and therefore desirable) it is. The overall behaviour of the AI will simply look like what it does the most, which depends on what it's got (e.g. an energy-controlling strategy will appear if there are a lot of energy-controlling effects in the deck). I don't think there's any need to include deck-specific AI profiles (particularly as it would tend to rail-road and hurt decks which could sometimes benefit from profiles they don't have), and instead throw every situational calculation into the one AI used for everything.
Yeah an AI that can handle any situation is much better but much more complicated as well. I thought a deck-specific AI is more intelligent and easier to do and that is why i suggested it. After all the AI can't use any other deck then the specific decks you give it. And any prefabricated deck you can give the AI has most likely a strategy that would benefit that deck. Instead of hoping the AI comes up with the strategy itself you can guide it a little right? :)

p.claydon
February 8th, 2013, 11:50 AM
well the template i posted in the tcg section on here has decent deck icons and energy icons (different sizes)

Maruno
February 8th, 2013, 11:52 AM
Yeah the list is on Bulbapedia but you shouldn't mix up the Auto Deck Machine decks with the decks not available in the Auto Deck Machine! The Auto Deck Machine decks are meant for players and the other decks for the AI. There are cards that make the AI harder to beat and cards that need a strategy which the AI cant come up with.
There is no Auto Deck Machine, so that's not a problem (and in any case, the available decks would be defined by the Machine itself). Every single premade deck, no matter how it's used or where/if it's available to the player, is defined in the same way.

I linked to that Bulbapedia page because at the bottom there's a list of every single deck in the game.


So the AI will do anything that it is able to do before attacking? Isn't it sometimes better (smarter) if the AI skips some actions if it doesn't need to do it? For example saving an Energy card for next turn is sometimes better then putting it on a Benched Pokemon that doesn't need any more energy. Or saving Professor Oak until you have less cards in your hand.
That's all part of making the AI. It's all calculations about whether it should play a particular card. Whether it is able to play that card is only the first (easy) step.


Energy Removal should hit the active Pokemon if it has enough energy to attack or if it will get enough energy to attack next turn. If the active pokemon will not get enough energy to attack next turn the AI chooses the pokemon with the most energy on the Bench. This is the simple way you could do it. If you want it smarter you should make it check the attack power of the benched pokemon and if they have enough energy to do this attack. If there is a benched pokemon that has a much stronger attack then the opponents active pokemon and enough energy to do this attack and if your opponents active pokemon have/will get enough energy to retreat next turn choose the benched pokemon. Which energy to choose is easier then choosing the pokemon i guess. "Color" energy should always get priority over "colorless" energy. "Color" energy that has the same type as the card should always get priority over other "color" energy.

Super energy removal should first check if you have more energy then you need in game. There is an order you can check this. First control the active pokemon. If AIs active pokemon doesn't has enough Energy to attack there is no need for other checks because you don't have enough energy.
If the active pokemon has enough energy check your bench for the amount of pokemon with energy cards. If its zero super energy removal would target AIs active pokemon and it is not worth it. If you have pokemon with energy on your bench check if you have at least one energy on your hand. If you dont you should check if your active pokemon has enough hp to survive next turn. if it has or you have an energy card on your hand there is no problem using super energy removal and choosing the weakest pokemon on the AIs bench. Colorless energy is preferred to pay of course. :)
I only mentioned those cards to give an example of how there's a lot of calculations involved in deciding whether to use them; I wasn't actually looking for help with them right now. However, your large paragraphs show that there are a lot of things to consider.

I disagree with your last sentence, though. The only Colorless energy is Double Colorless, which can be very useful (for any Colorless Pokémon, or Charizard, etc.). I'd say figuring out if there's an excess card anywhere is a good place to start (the level of emergency can allow alternatives, of course).


Yeah an AI that can handle any situation is much better but much more complicated as well. I thought a deck-specific AI is more intelligent and easier to do and that is why i suggested it. After all the AI can't use any other deck then the specific decks you give it. And any prefabricated deck you can give the AI has most likely a strategy that would benefit that deck. Instead of hoping the AI comes up with the strategy itself you can guide it a little right? :)
Possibly, but you'd need to do it over and over for each AI profile (not the entire thing, of course, but significant amounts). I imagine strategy is the hardest thing to make an AI do, and that it's probably actually easier to let it deal with each card on its own merit rather than teach it how to follow a strategy. There's the added bonus of being able to adapt to changes in the game, such as shifting to an aggressive style when you can afford it (e.g. when you could win by being aggressive rather than following a stall-type AI profile).

The one big thing needed for creating a half-decent AI is testing. That means the game itself needs to work first, so I can throw out a release and let you all report on how the AI worked (noting any particular cleverness or stupidity), which then lets the AI be modified and improved. This is one of the reasons I'd like to concentrate only on one AI rather than a variety. It's also easier to troubleshoot.

the__end
February 8th, 2013, 03:04 PM
II disagree with your last sentence, though. The only Colorless energy is Double Colorless, which can be very useful (for any Colorless Pokémon, or Charizard, etc.). I'd say figuring out if there's an excess card anywhere is a good place to start (the level of emergency can allow alternatives, of course).
Colorless Energy is useless for Charizard. Any Colorless energy card can only be used to pay for Colorless energy requirements on a Pokemon. For example, if a Charizard required a Fire energy for one of its attacks, you cannot use a Colorless energy card for it.
However, any energy card can be used to pay for any Colorless energy requirements.
That is why it is much easier to pay for Colorless energy requirements and that makes the Colorless energy worthless/dispensable. Double Colorless is a useful card because it provides two energy at once and that is good for some cards with more then one colorless attack requirements.

Possibly, but you'd need to do it over and over for each AI profile (not the entire thing, of course, but significant amounts). I imagine strategy is the hardest thing to make an AI do, and that it's probably actually easier to let it deal with each card on its own merit rather than teach it how to follow a strategy. There's the added bonus of being able to adapt to changes in the game, such as shifting to an aggressive style when you can afford it (e.g. when you could win by being aggressive rather than following a stall-type AI profile).
You are right about it taking more effort and time to create AI profiles. But IMO its worth it. I know a guy who is improving the AI from the good old "Age of Empires 2" because the included AI was dumb. You could beat the computer opponent in minutes in "extreme" mode. But after i updated with his patch i cant even beat in "middle". You know what he did? He made an independent AI for each Civilization! This way he maximized the use of their advantages in battle and minimized their wasteful behavior in terms of resources. If you are a AoE2 player i can link you to his site if you want. :)
The point is that in some games it is smarter to make an specific AI which can handle a situation perfectly instead of making an general AI that can handle any situation average. I don't know if the TCG is one of these games but i think so.

The one big thing needed for creating a half-decent AI is testing. That means the game itself needs to work first, so I can throw out a release and let you all report on how the AI worked (noting any particular cleverness or stupidity), which then lets the AI be modified and improved. This is one of the reasons I'd like to concentrate only on one AI rather than a variety. It's also easier to troubleshoot.
This is a good point! I can imagine that troubleshooting would be more time consuming if you have more then one AI which uses the same broken part. On the other hand you would know where to fix the other AI before you even look at it.
But like i said i don't know much about programming myself. I just see interesting stuff people do and i try to apply it theoretically on other things. :)


well the template i posted in the tcg section on here has decent deck icons and energy icons (different sizes)
Could you post them here again if it doesnt bothers you? :)

Maruno
February 8th, 2013, 03:44 PM
Colorless Energy is useless for Charizard. Any Colorless energy card can only be used to pay for Colorless energy requirements on a Pokemon. For example, if a Charizard required a Fire energy for one of its attacks, you cannot use a Colorless energy card for it.
However, any energy card can be used to pay for any Colorless energy requirements.
That is why it is much easier to pay for Colorless energy requirements and that makes the Colorless energy worthless/dispensable. Double Colorless is a useful card because it provides two energy at once and that is good for some cards with more then one colorless attack requirements.
I see you're forgetting Charizard's Pokémon Power (http://bulbapedia.bulbagarden.net/wiki/Charizard_%28Base_Set_4%29). I know how energy works, and I still say that Double Colorless Energy is great in the right deck.


You are right about it taking more effort and time to create AI profiles. But IMO its worth it. I know a guy who is improving the AI from the good old "Age of Empires 2" because the included AI was dumb. You could beat the computer opponent in minutes in "extreme" mode. But after i updated with his patch i cant even beat in "middle". You know what he did? He made an independent AI for each Civilization! This way he maximized the use of their advantages in battle and minimized their wasteful behavior in terms of resources. If you are a AoE2 player i can link you to his site if you want. :)
The point is that in some games it is smarter to make an specific AI which can handle a situation perfectly instead of making an general AI that can handle any situation average. I don't know if the TCG is one of these games but i think so.

This is a good point! I can imagine that troubleshooting would be more time consuming if you have more then one AI which uses the same broken part. On the other hand you would know where to fix the other AI before you even look at it.
But like i said i don't know much about programming myself. I just see interesting stuff people do and i try to apply it theoretically on other things. :)
AoE is a bit different because a given civilisation's units are always the same, and the progression between ages and tech trees and all that are fixed. TCG decks can contain many different cards, and cards are drawn randomly in a duel. I think it's far too much hassle to make multiple AIs, given this randomness which would need to be accounted for.

As I've said, all you can really do is work with what you're given, and what you're given is some random cards from your deck. Now, you can go into any amount of detail you like when it comes to making the AI for a particular card (e.g. defining circumstances in which it will prefer one target over another), but it would get very convoluted if you get too invested in it. Even so, taking each card as it comes is a modular system, and easier to manage and tinker with.


One thing I'd like to hear from someone who knows about AI is: is my idea any good? Is there an alternative system to calculating desirability for each action that would be more suitable for this kind of game?

As for how the AI will actually work, I have a vague idea. At the start of its turn, it looks around the duel and lists everything it is able to do (play a card from the hand, use an in-play effect such as a Pokémon Power, retreat, etc.), and then assign a desirability value to it. Calculating this value for each action depends a lot on the environment, and is the convoluted part. Once all the values are calculated, it will do the most desirable action and repeat (recalculating the values for what's left). Once there's nothing left to do, it will attack if possible and desirable - the good thing is that an attack is always the last thing in a turn (and there's always just 1 attack per turn), which makes it a bit simpler.

the__end
February 8th, 2013, 04:16 PM
I see you're forgetting Charizard's Pokémon Power (http://bulbapedia.bulbagarden.net/wiki/Charizard_%28Base_Set_4%29). I know how energy works, and I still say that Double Colorless Energy is great in the right deck.
I cant believe i forgot its ability. xD Maybe because I always preferred (and played) Blastoise over Charizard.

And i didn't said Double Energy is a bad card. I said that it is better to remove a Colorless Energy from your Pokemon with "Super Energy Removal" then removing a Basic Energy because every Basic Energy can be paid for a Colorless energy requirement.

And you once mentioned that you will make boosters for energy cards right?
Maybe instead of this you should give an infinite number of each Basic Energy to the player. Basic Energies are always needed in mass and its bothersome to open boosters (even if they are for free) to get them.

Maruno
February 8th, 2013, 05:12 PM
And you once mentioned that you will make boosters for energy cards right?
Maybe instead of this you should give an infinite number of each Basic Energy to the player. Basic Energies are always needed in mass and its bothersome to open boosters (even if they are for free) to get them.
I said it will be possible, eventually. I may include an energy-only booster set as an example of how to create mix-'n'-match booster sets, but it certainly doesn't need to be a feature. Mix-'n'-match booster sets will cause problems with throttling rarities, though, so I may ditch throttling and have booster pack contents be entirely random.

If you want to give the player 60 of each energy card, you can do that yourself. It makes finding energy cards in booster packs pointless and annoying, though. Besides, I think the need for energy cards encourages the player to duel more in order to get more booster packs.

Ayutac
February 8th, 2013, 10:00 PM
The point is that in some games it is smarter to make an specific AI which can handle a situation perfectly instead of making an general AI that can handle any situation average. I don't know if the TCG is one of these games but i think so.
That depends on the AI. If it's really good, it will develop a strategy according to the cards in the deck. I.E. In YGO there are effects that make you discarding cards as a effect, not as a cost. For most cards that doesn't changes a thing and you would want to avoid it, but in certain decks it is the main strategy to discards cards because of effects (because that will activate their effects respectively) or to have an empty hand.
On the other side, we may want to have different difficulties for AIs.

And you once mentioned that you will make boosters for energy cards right?
Maybe instead of this you should give an infinite number of each Basic Energy to the player. Basic Energies are always needed in mass and its bothersome to open boosters (even if they are for free) to get them.
Personally, I would include that as a feature.

X3
February 9th, 2013, 04:11 PM
I just came across this thread today when I was thinking of making a Pokemon TCG, I thought 'Why bother if someones already making one right?' So how far have you actually got with this whole project, in terms of programming and such?

p.claydon
February 10th, 2013, 03:23 AM
ok for those who want it here is my card template thing
http://www.mediafire.com/?ob349ajyqu15pc6

Ooka
February 10th, 2013, 08:58 AM
Sorry, I'm replying without reading the thread yet, I'll get to that later this evening probably.

I'd like to contribute (inb4 fullmetal stabs me xDD). Is the interface going to be an exact clone of the old games, or are you trying to reinvent it to a nicer, newer interface?

I could help with that (I'm a graphic designer by trade), or with coding.

Maruno
February 10th, 2013, 03:43 PM
I just came across this thread today when I was thinking of making a Pokemon TCG, I thought 'Why bother if someones already making one right?' So how far have you actually got with this whole project, in terms of programming and such?
That was my thought when I made this thread. Turns out I started making my own anyway.

I've already put an alpha out which includes a library/deck builder and half of a duel, plus many background scripts which support it all (like the compilers). There's a link in here somewhere, and I'll get round to editing the first post to include the latest information.


Sorry, I'm replying without reading the thread yet, I'll get to that later this evening probably.

I'd like to contribute (inb4 fullmetal stabs me xDD). Is the interface going to be an exact clone of the old games, or are you trying to reinvent it to a nicer, newer interface?

I could help with that (I'm a graphic designer by trade), or with coding.
That's very nice to hear. Your skills will be very welcome, as soon as I come up with an actual list of what needs doing.

As far as the visual style goes, I'm replicating the Asobikata (http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_Card_Game:_How_to_Play_DS) game, albeit with a few tweaks to suit a single screen and keyboard controls. That game doesn't have any visuals for anything other than duels, though, so I'm making up other screens (e.g. Library, Card Dex) as I go along - they could certainly use improvements, if you want to have a go at them.

Have a play with my alpha first, see how things work.

Ooka
February 10th, 2013, 08:41 PM
Had a read through some of the thread. I made a little mockup, let me know what you think.

http://i3.minus.com/ibv0h6VkufeU2P.png

http://i4.minus.com/iIlrOrS1jeJMI.png

Whitney's Shaymin
February 10th, 2013, 10:14 PM
Sir, your fire energy turned into a dark energy!

Ooka
February 10th, 2013, 10:59 PM
Yeah it's just a mockup, not a playable version or anything. xD

Maruno
February 11th, 2013, 06:48 AM
Your mock-ups look a little rough. I have to say it's very difficult to tell which card in the list is being selected, and there's no space for a "Deck" tab.

The design itself doesn't support a half-size screen, which I'd prefer it to do if possible. The fact that you're using a different (smaller) font doesn't help show whether the design would actually work properly in-game.

On the other hand, I like the idea of fading out the non-current tabs, and of having some kind of border around the list itself to mark it off. The black background is also nice, better than the current grey, and the simple tab design is also nice.

However, as I've alluded to, space is an issue. "Imposter Professor Oak" is the longest card name, so that needs to be able to fit in the list area using the appropriate font. I'd prefer to show more cards at once rather than less, and currently it shows nine while yours shows eight. This means that border around the list probably won't fit after all.

The various card symbols were taken directly from the old TCG game, or knocked together by me. They could definitely be improved. You've just fancied up one of those old symbols, and while it does look nice, I'm wondering whether different designs might work as well.

the__end
February 11th, 2013, 08:13 AM
That depends on the AI. If it's really good, it will develop a strategy according to the cards in the deck. I.E. In YGO there are effects that make you discarding cards as a effect, not as a cost. For most cards that doesn't changes a thing and you would want to avoid it, but in certain decks it is the main strategy to discards cards because of effects (because that will activate their effects respectively) or to have an empty hand.
On the other side, we may want to have different difficulties for AIs.
An entire team is working on the Yugioh games but the AI is still dumb and slow. Of course they need to make a general AI because there are just to many cards with to many different effects that need to be considered. Because of some effects it needs to do tons of calculation which makes it so slow. It even calculates all the cards the opponent has which is pretty ridiculous because it can't know what you are planning and it will make the wrong decision anyway.
Do you think that much effort is needed for a (non-profit) Starter Kit that just one person is coding? IMO not.
I think, because of how the Pokemon TCG is build and that the AI is forced to use the deck you give it, you can achieve much more with an AI that is concentrated on the deck it is using. An AI that "knows", that it needs Blastoises Ability as often as possible to support his water deck, is much smarter then an AI that "knows" how to use its ability but doesn't do it correctly.

Had a read through some of the thread. I made a little mockup, let me know what you think.

http://i3.minus.com/ibv0h6VkufeU2P.png

http://i4.minus.com/iIlrOrS1jeJMI.png
These look nice! But i agree with Maruno and you should make a little place for the deck building i guess. Like the first screen Maruno showed (http://www.pokecommunity.com/attachment.php?attachmentid=67186&d=1359410043).

The design itself doesn't support a half-size screen, which I'd prefer it to do if possible.
The cards will lose important details by displaying a lower resolution. And its harder to make good looking concepts. I don't understand why you want a kit that supports half sized screens. It makes stuff more complicated then they need to be. But if you still insist on it i can cut out the images out of the cards so you can only display them with written information. This way we can save quality and you can have a half sized game.

Ooka
February 11th, 2013, 08:38 AM
Your mock-ups look a little rough. I have to say it's very difficult to tell which card in the list is being selected, and there's no space for a "Deck" tab.


Well considering there's a huge picture of it on the right I don't see how xDD I can make the selected item on the left stand out more probably. As for Deck tab space completely slipped my mind. I'll look into that.


The design itself doesn't support a half-size screen, which I'd prefer it to do if possible. The fact that you're using a different (smaller) font doesn't help show whether the design would actually work properly in-game.


The idea was that the card list would expand/contract as the screen size increased/decreased. And the font is just one of the ones included with Essentials, so it should work fine in-game.


On the other hand, I like the idea of fading out the non-current tabs, and of having some kind of border around the list itself to mark it off. The black background is also nice, better than the current grey, and the simple tab design is also nice.

However, as I've alluded to, space is an issue. "Imposter Professor Oak" is the longest card name, so that needs to be able to fit in the list area using the appropriate font. I'd prefer to show more cards at once rather than less, and currently it shows nine while yours shows eight. This means that border around the list probably won't fit after all.


Again the font used is included with Essentials (Power Red and Green) so there shouldn't be a problem using it.

http://i5.minus.com/iW2CsPo3jLjOh.png


As far as one card difference, is it really that huge a deal? I mean, at least personally, when items are really skinny on a list clicking them can tend to be aggravating. I end up clicking the wrong one and having to undo whatever it is I just did. Anyways, that's really up to you, I just figured a "sort by" option would be nice, and didn't mind slightly bigger options.


The various card symbols were taken directly from the old TCG game, or knocked together by me. They could definitely be improved. You've just fancied up one of those old symbols, and while it does look nice, I'm wondering whether different designs might work as well.

Sure, you're meaning completely custom symbols that don't look like the originals at all? I thought about that but didn't know how well it would be received. I'm all for it though.

Ayutac
February 11th, 2013, 10:36 AM
An entire team is working on the Yugioh games but the AI is still dumb and slow.What? Last time I checked – I think it was World Tournament 2011 – the AI knew a lot of different difficulties and when it needed time, especially when it was in a though situation, it felt more like battling a human who have to think about his decisions rather then immediately coming with an reaction to the situation.

However, we will solve this issue one way or another. The difficulty with deck-depending AIs is if the programmer can even see all possibilities and combinations I guess.

Maruno
February 11th, 2013, 10:41 AM
An entire team is working on the Yugioh games but the AI is still dumb and slow. Of course they need to make a general AI because there are just to many cards with to many different effects that need to be considered. Because of some effects it needs to do tons of calculation which makes it so slow. It even calculates all the cards the opponent has which is pretty ridiculous because it can't know what you are planning and it will make the wrong decision anyway.
Do you think that much effort is needed for a (non-profit) Starter Kit that just one person is coding? IMO not.
I think, because of how the Pokemon TCG is build and that the AI is forced to use the deck you give it, you can achieve much more with an AI that is concentrated on the deck it is using. An AI that "knows", that it needs Blastoises Ability as often as possible to support his water deck, is much smarter then an AI that "knows" how to use its ability but doesn't do it correctly.
This isn't a single game though, wherein the functionality doesn't have to extend beyond what I personally want the game to do. Anyone can create any deck and give it to an NPC, which under your idea means that they would also need to make a new AI to support that deck (or use an existing "close enough" AI).

Let's consider what a profile AI would do anyway. It looks at a card and decides whether it should be used. This means analysing the field and deciding how best to use it. This is no different than what an all-encompassing AI would do, with the one exception being that for your way, there would be a few more calculations which check the kind of AI and alter various calculations accordingly.

I honestly think making a single AI would be easier than making several.


The cards will lose important details by displaying a lower resolution. And its harder to make good looking concepts. I don't understand why you want a kit that supports half sized screens. It makes stuff more complicated then they need to be. But if you still insist on it i can cut out the images out of the cards so you can only display them with written information. This way we can save quality and you can have a half sized game.
Because Essentials lets the player reduce the screen size. It's an utterly stupid thing to do, but it's possible, and I'd like to keep the design intact if someone does it. I really don't think it's any more complicated to design for a 256x192 screen anyway - I've never had any problems with doing so.

The card images don't need messing with. Perhaps I'll show them like the duel background (half at once, and you can move it up and down).


The idea was that the card list would expand/contract as the screen size increased/decreased. And the font is just one of the ones included with Essentials, so it should work fine in-game.
None of the regular fonts that Essentials uses are that small. I don't want to use the smaller versions of those fonts because they're harder to read.


As far as one card difference, is it really that huge a deal? I mean, at least personally, when items are really skinny on a list clicking them can tend to be aggravating. I end up clicking the wrong one and having to undo whatever it is I just did. Anyways, that's really up to you, I just figured a "sort by" option would be nice.
If anything, the items in your list are a little "skinnier" than how they already are. There's no clicking anyway - no mouse support. Having more items visible at once makes it easier to find what you're looking for. There are some sorting and filter options too.


Sure, you're meaning completely custom symbols that don't look like the originals at all? I thought about that but didn't know how well it would be received. I'm all for it though.
Well, whatever works best. It's an opportunity to create something, see what works.

Ooka
February 11th, 2013, 12:08 PM
None of the regular fonts that Essentials uses are that small. I don't want to use the smaller versions of those fonts because they're harder to read.



Alright, I don't really know what to do with "Red's Cards" or "Alt: Options" yet, but I increased the font size used for the card listings.


If anything, the items in your list are a little "skinnier" than how they already are. There's no clicking anyway - no mouse support. Having more items visible at once makes it easier to find what you're looking for. There are some sorting and filter options too.



Oh, sorry about that must have missed it. I removed the options around the card listing. It gave enough room for one more card name.



Well, whatever works best. It's an opportunity to create something, see what works.

I gave it a shot, just ideas if anything.

http://i7.minus.com/ibij1BOkR6pv6n.png

the__end
February 11th, 2013, 12:50 PM
I gave it a shot, just ideas if anything.

http://i7.minus.com/ibij1BOkR6pv6n.png

Personally i think the Icons don't fit. You need following Icons: 7 Types of "Basic Pokemon" Icons, "Stage 1" Icon, "Stage 2" Icon, "Trainer Card" Icon, "Energy" Icon, "Special Energy" Icon.
And i think it is preferably that they resemble what they stand for. ;)

The difficulty with deck-depending AIs is if the programmer can even see all possibilities and combinations I guess.
Hmm you might be right about that. But that is a way how we as a community can help. ;)
And the Yugioh AI is dumber then you maybe think. It looks smarter then it is because of the decks the creators gave it. And that is how they give it different difficulties.

Ooka
February 11th, 2013, 12:55 PM
Personally i think the Icons don't fit. You need following Icons: 7 Types of "Basic Pokemon" Icons, "Stage 1" Icon, "Stage 2" Icon, "Trainer Card" Icon, "Energy" Icon, "Special Energy" Icon.
And i think it is preferably that they resemble what they stand for. ;)

Sure thing, I'm not really a TCG player but I loved the one for Gameboy (So I don't know too much about what's needed/isn't). I'll look around for a resource or something to go off of and give it another shot.


Edit (Icons are just filler):

http://i5.minus.com/ie7UYUYkcPSHI.png

Maruno
February 11th, 2013, 03:31 PM
Of course, I could always use newer/better deck icons as well. The ones I've got are entirely placeholders.

Hmm, since the TCG extension will be used all by itself (i.e. not alongside any existing pixelly Essentials screens), I think it might as well use graphics designed for a 512x384 screen (i.e. not pixelly). Yes, I've changed my mind. It does mean that all the graphics I've got already would need up-rezzing, though.

All this decision will affect is the fine detail - the actual layouts and things will be the same anyway.

p.claydon
February 23rd, 2013, 10:09 AM
how are things going? looking forward to seeing updates

Maruno
February 23rd, 2013, 04:18 PM
Things are going fine, I suppose. Prizes are in, win conditions are in, lots of various other things are done too. I don't keep track of what I've done, but things are being tidied up a bit.

It would be nice to find a rulings pdf or something for the Base/Jungle/Fossil sets which describes various scenarios and answers what is supposed to happen (e.g. exactly when Gastly's Destiny Bond (http://bulbapedia.bulbagarden.net/wiki/Gastly_%28Base_Set_50%29) occurs, before or after the attack's extra effect if it has one?). It'd help with programming in the various card effects. Actually, rulings for other sets would be nice too, to make sure there were places for any new effects people might want to add.

Aside from effects related to specific attacks or cards, are there really only four factors to keep track of? By this I mean, 1 Energy Card limit per turn, 1 retreat limit per turn, 1 evolution per Pokémon per turn, and (for most Pokémon Powers) 1 Power use per Pokémon per turn. I can't think of any other general game mechanics that would need to be tracked like these are, which aren't specific to particular card effects.

alphazeta126
February 24th, 2013, 08:58 AM
Things are going fine, I suppose. Prizes are in, win conditions are in, lots of various other things are done too. I don't keep track of what I've done, but things are being tidied up a bit.
May I ask what you mean by win conditions? Does this just mean that the player will win after they get all prizes specified for the battle or that there will be special conditions to play by like Pokemon TCG 2 for the GameBoy?

Maruno
February 24th, 2013, 09:18 AM
You win if you take your last prize card. You lose if you don't have an Active Pokémon. You lose if you can't draw a card at the start of your turn. If multiple conditions occur at once (i.e. the first two), then the person who "wins most" wins (or it's a draw). That's it.

I've not played the TCG2 game, just the first one (and not very much). I don't intend to add any gimmick features in anyway.

alphazeta126
February 24th, 2013, 09:45 AM
You win if you take your last prize card. You lose if you don't have an Active Pokémon. You lose if you can't draw a card at the start of your turn. If multiple conditions occur at once (i.e. the first two), then the person who "wins most" wins (or it's a draw). That's it.

I've not played the TCG2 game, just the first one (and not very much). I don't intend to add any gimmick features in anyway.
Okay cool, thanks for the quick reply. By the way do you need any help creating new graphics? I saw in the earlier posts that you were thinking of changing them so that pixel size was not doubled. If so I can help. Just tell me what type of graphics I would have to make

the__end
February 25th, 2013, 01:40 PM
It would be nice to find a rulings pdf or something for the Base/Jungle/Fossil sets which describes various scenarios and answers what is supposed to happen (e.g. exactly when Gastly's Destiny Bond (http://bulbapedia.bulbagarden.net/wiki/Gastly_%28Base_Set_50%29) occurs, before or after the attack's extra effect if it has one?). It'd help with programming in the various card effects. Actually, rulings for other sets would be nice too, to make sure there were places for any new effects people might want to add.

Here is what you are looking for:
http://www.mediafire.com/?4379z78ci5q7poo

These could be useful too:
http://www.pojo.com/pokemon/rules/oldbasicrules.html
http://www.pojo.com/pokemon/rules/oldexpertrules.html

For the neo sets:
http://www.pojo.com/pokemon/rules/neorules1.pdf

The current rules:
http://assets23.pokemon.com/assets/cms/pdf/tcg/rulebooks/bw_next_destinies_rulebook.pdf
http://www.pocketmonsters.net/TCG_Tutorial

Hope i could help. :D

Maruno
February 25th, 2013, 03:48 PM
Okay cool, thanks for the quick reply. By the way do you need any help creating new graphics? I saw in the earlier posts that you were thinking of changing them so that pixel size was not doubled. If so I can help. Just tell me what type of graphics I would have to make
Just up-rezzing the existing graphics would be fine, at least for the ones used in duels. The other existing screens could probably stand to be redesigned to some extent.


Here is what you are looking for:
http://www.mediafire.com/?4379z78ci5q7poo
That's exactly what I was looking for! That'll be extremely useful. Your other links will be useful also.

So many rulings on Ditto...

the__end
February 25th, 2013, 03:55 PM
So many rulings on Ditto...

That's why it is not included in the gbc game. :P

EDIT
Changed a few pixel so the cards doesn't look so "round".
http://i.imgur.com/M1qYsWE.png

Replaced the Energy icons with better ones.
http://i.imgur.com/gwPxUBt.png

alphazeta126
February 25th, 2013, 05:07 PM
Just up-rezzing the existing graphics would be fine, at least for the ones used in duels. The other existing screens could probably stand to be redesigned to some extent.
Just logged on and saw this response. I actually have an essay to work on right now but immediatley after that I will start on this.

fayt666
March 2nd, 2013, 09:29 AM
if ur lookin for sites that give all details on cards

http://www.serebii.net/card/base/

http://www.pokemon.com/us/pokemon-trading-card-game/database/

seribii has all cards with details.

pokemon.com focuses from ex to newest seen as alot original series cards were banned.

●•ΛΣЯӨЩ•●
March 16th, 2013, 06:47 AM
This would certainly be interesting, compared to the normal Pokemon games, the TCG is also a great game when one gets the hold of it.

TheDarkShark
April 18th, 2013, 05:44 AM
*blows away dust*
Sorry for reviving this thread (I'll assume these (http://www.pokecommunity.com/showthread.php?t=257078) rules apply in this subforum, too, because no limit to thread revival is mentioned in the specific rules), just found it again.
Since you already said, you'd finish this definetly, I'll gladly state that I still have interest in this project. In fact, I think I might be able to help you with the AI, though I still haven't looked into Ruby. I'm probably the only one who recently read the entire thread, so I'm going to quote the particular part I'm talking about:

I really don't think such strategies need to be separated. It all boils down to "use the best cards", and what constitutes a "best card" depends on the environment (i.e. what other cards are in play, etc.). This can certainly become convoluted very quickly as the AI develops, as there'll be all sorts of checks and evaluations. This is especially true when you start thinking of combos.

Of course, the AI is going to cheat. That is, it'll make its choices while knowing about cards it shouldn't be able to know about (e.g. cards in the player's hand, which prize card is best to take, whether it'll draw something good because of Professor Oak (http://bulbapedia.bulbagarden.net/wiki/Professor_Oak_%28TCG%29)). However, it won't influence the outcomes of coin flips or whatever, so it'll be fair that way. I think making the AI omniscient is the only way it can be made to stand a chance against players.

As for how the AI will actually work, I have a vague idea. At the start of its turn, it looks around the duel and lists everything it is able to do (play a card from the hand, use an in-play effect such as a Pokémon Power, retreat, etc.), and then assign a desirability value to it. Calculating this value for each action depends a lot on the environment, and is the convoluted part. Once all the values are calculated, it will do the most desirable action and repeat (recalculating the values for what's left). Once there's nothing left to do, it will attack if possible and desirable - the good thing is that an attack is always the last thing in a turn (and there's always just 1 attack per turn), which makes it a bit simpler.

It sounds simple when I write it in just one paragraph, and some actions will always be desirable (e.g. play Bill (http://bulbapedia.bulbagarden.net/wiki/Bill_%28Base_Set_91%29)) and some will never be worth using (e.g. Mankey's Pokémon Power (http://bulbapedia.bulbagarden.net/wiki/Mankey_%28Jungle_55%29), as the AI will know all those cards via cheating anyway). However, when is the best time to play Energy Removal (http://bulbapedia.bulbagarden.net/wiki/Energy_Removal_%28Base_Set_92%29), and which Pokémon/energy should be hit by it? How about Super Energy Removal (http://bulbapedia.bulbagarden.net/wiki/Energy_Removal_%28Base_Set_79%29), which involves a cost to the user and may not be worth it (and if so, which card should the AI pay)? There's a huge amount of thought that needs to go into the AI for even a single effect, and I think that such thought needs to be done in order to make the AI worthwhile.

Tuning can come much later, e.g. deciding the threshold desirability value below which an action shouldn't be done, and how much randomness to involve in the choices.

As you can see, any emergent "strategy" will depend entirely on the make-up of the deck. It can only depend on the cards you've got available ("work with what you've got"), and it's up to the AI calculations for each card to decide how useful (and therefore desirable) it is. The overall behaviour of the AI will simply look like what it does the most, which depends on what it's got (e.g. an energy-controlling strategy will appear if there are a lot of energy-controlling effects in the deck). I don't think there's any need to include deck-specific AI profiles (particularly as it would tend to rail-road and hurt decks which could sometimes benefit from profiles they don't have), and instead throw every situational calculation into the one AI used for everything.

This reminds me a lot of Dragon Age's threat system, which basically makes each individual enemy attack the character that poses the greatest threat to them. If you're interested in it, as some kind of reference, a better explanation can be found here (http://dragonage.wikia.com/wiki/Threat).
Why do I think this is relevant? Well, depending on the game's difficulty settings, the equipped armor and weapons increase the threat, making enemies on lower difficulties more likely to attack your tank. Let's think this idea through a little bit:

Let's say there's a number of variables that scale the desirability of each action. This could be used to individualize the playstyle of characters and adjust the AI to the deck. Assume, for instance, the previously discussed evolution-/base-decks, where evolving pokémon and getting energy on base-pokémon should have different priorities. If there's two floats named evolution and baseEnergy, respectively, these could be set in the PBS-entries. In the evolution themed deck, you'd set evolution=1.1 and baseEnergy=0.8. The desire to play an energy on a base pokémon would be multiplied by 0.8, and the desire to evolve a pokémon by 1.1.
Of course, you'd need more variables (and better names), but I'm pretty sure this would pay off, since you'd have to do a lot less fine tuning (except for standard values, when the user doesn't set them for the deck).

To simplify the decision on what trainer card to play, you could also categorize them and apply values. Let's say both Bill and Professor Oak are in the category deckspeed (that's what this kind of cards are used for in YGO, anyways), Bill would have the value 20 and Professor Oak would have the value 40 (arbitrary example, don't count on me for the exact balancing). If you assume a float deckspeedPriority, similar to the previous evolution and baseEnergy variables, the cards would get assigned the proper desire. If deckspeedPriority=1.5, playing Bill would stand at 30 desire, and Professor Oak would stand at 60.
I'll admit though, that this is not optimal, since Professor Oak makes you toss all cards in your hand, so the desire should be decreased depending on what cards the CPU player currently has. Applying multiple properties to a card might help. To keep the example going, assume Professor Oak had the properties deckspeed 70 and toss 0, where 0 basically means all. The desire to play Professor Oak would then be 70 * 1.5 = 105, reduced by an appropriate amount of desire, depending on the number of cards.

If you want actual strategy, as in playing combos of cards that work well together, consider having the user specify them for the deck. If none are specified you're fine. However, if the AI's supposed to wait for this card in the deck before playing that card, the desire to play that card would be drastically reduced, maybe by the priority of the combo.

All of these are ideas I came up with while brainstorming, haven't really done much more thinking, though. I know, they look like a lot of extra work, but please consider them at least.

Maruno
April 18th, 2013, 10:51 AM
This section's description says the thread revival limit doesn't apply in here, so don't worry about that.

Your first suggestion, defining a deck with one or more keywords that are used to alter AI calculations of how/when cards should be used (including as parts of combos), is reasonable enough. It'll be fiddly to insert those alterations into the scripts to actually produce the desired style, of course, but that's a matter of balancing and tweaking. Any rail-roading (forcing one style when another would be more preferable) would probably not be too blatant, because if another style really is more preferable, the effect of the defined style won't be enough to override it. Again, that's a balancing issue.

Your second suggestion, categorising cards by their effects, doesn't seem that useful. Every unique card effect has its own function code, and the calculations for how/when to use it can depend on that. Basically, the effect function codes already serve as a kind of categorising, albeit a very fine one. Similar effects will have similar desirability calculations; it's not hard to copy-paste. While this does make the AI for using a card hardcoded, I really don't think that's a problem. In the end, the code's going to be the same as using card keywords, and in fact function code-based calculations can allow greater customisation of a card's AI since you can easily edit the AI for just a single unique effect. So no, this idea doesn't convince me.

There's currently no AI at all. I'd prefer to get something simple in first and then possibly modify it later, than worry about loads of different subtleties from the beginning. The AI style keywords are definitely one of the "ignore for now" things, but I've written it down.

TheDarkShark
April 21st, 2013, 03:29 AM
Well, the mechanisms I suggested are only tweaks to the original idea, so implementing the simpler version first is only reasonable.

Hardcoding AI for every single card seems really tedious to me, though, even if it's only copy/paste. Other than using keywords, I can only think of reflection to calculate their desirability, which would give you a really tedious, hard to understand AI code (depending on how well reflection is implemented in Ruby, if it is in at all). I won't judge you for refusing to do this, especially since this is a kit for other game developers. Maybe hard code really is the best option, though I usually don't like to think that way.

If currently no AI is implemented, what are you currently working on and what have you achieved in the 2 months since your last post here? Have you progressed at all, seeing as people's interest in this has decreased recently? Not trying to be rude, just curious.

Maruno
April 21st, 2013, 05:49 AM
I know that hardcoding is frowned upon and harder to change. However, it's simpler to do, will be pretty straightforward to edit anyway in this case, and this is only a small little project of mine which was never intended to be massively customisable, so I don't need to worry about it.

I never learnt the names of things like reflection (http://en.wikipedia.org/wiki/Reflection_%28computer_programming%29#Ruby) (which Ruby has); all I know is how to use them. I use reflection to check whether a particular attack or trainer effect exists, and if so, to call it. However, I might as well just make one huge method to do all the desirability calculations for a particular kind of action (play trainer, play energy, retreat, use Power are all different things), like Essentials does for using moves - it'd be practically the same thing as using reflection anyway, and good enough for this project.

I've done very little since whenever my last update was; I've drifted back to working on Essentials a bit since then. I don't keep a change log for this, so I couldn't list what I've done. I've looked through the rulings posted above and clarified exactly how the various card effects should work, and I've done a little background work for them (e.g. making an array which remembers what an attack's result was, for the purpose of Mirror Move (http://bulbapedia.bulbagarden.net/wiki/Pidgeotto_(Base_Set_22)) and Leech Life (http://bulbapedia.bulbagarden.net/wiki/Zubat_(Fossil_57)), etc.). I've fiddled with prize cards. I've generally been tweaking things to work smoother or better, and been planning out what else needs doing. A lot of what I've been doing is incomplete, and there's not much to show off.

This project was only ever a "because I felt like it" thing. Because I like sharing, it'll (probably) be available for anyone to use, but that's not specifically a guideline for the project, nor is making it easy to customise. I'm just doing what I want to do, and if it happens to be user-friendly, that's just a bonus.

bugsy555
June 15th, 2013, 07:18 PM
Hi Maruno. I've read this entire thread and i can't wait untill you finish it:) I must say i agree with how you want to do it. It understand it's just a side project and you don't want to spend too much time messing with stuff you don't have to. I'm sure people can change the things they want once the groundworks there. Unfortunately i have next to no experience with scripting so i can't help with any of that but i have played both GB games (a lot) and if there's any questions you have i'm more then happy to help if i can. As for thoughts and suggestions, i think its looking good. It's just an alpha and it doesn't have to look pretty. The layout is great and the cards look good. I am currently researching and learning everything i can about scripting and pokemon essentials in the hope i might be able to do small things and i must say i have heaps of respect for what you've done. It looks like a lot of work. Anyway, keep up the good work and i'm sure this will be awesome when you finish:)

p.claydon
June 16th, 2013, 04:14 AM
yay finally found this thread again

how are things doing?

Maruno
June 16th, 2013, 06:34 AM
I've not done anything for a while, as I've been working on Essentials instead. Once v12 is out (very soon), I'll want to get back to this.

I forget where I'm up to. I need to make a more generalised "choose a card(s) on the field" method which will require some kind of graphic indicating which cards have been selected, and there's some other small technical things (like changing how attached energy cards are recorded to more easily allow for Electrode's Pokémon Power to work). After that, it's just adding the rest of the card effects, making things look pretty and making the AI. That'll be the battle system finished, then, as far as I know.

Superqami
July 12th, 2013, 09:08 AM
will this be with a newer tileset and new graphics for cards because the old ones are weird......

Maruno
July 12th, 2013, 09:45 AM
What do you mean by "weird"? They're images of the cards.

I have no need to change the tileset for this add-on.

the__end
July 12th, 2013, 01:49 PM
What do you mean by "weird"? They're images of the cards.

I have no need to change the tileset for this add-on.

I think he means the old GBC graphics.

Superqami
July 13th, 2013, 03:11 AM
I think he means the old GBC graphics.

Yes that's right. Because I hear everyone talking in a way that makes me feel like the old graphics from GBC or going to be used.

Maruno
July 13th, 2013, 05:50 AM
Ah, right.

A quick read through this thread would come up with screenshots and a playable alpha which shows that this add-on is using better graphics than the GBC games.

This add-on is going to include the cards from Base Set, Jungle and Fossil. The graphics for these cards are scans of the actual cards.

http://www.pokecommunity.com/attachment.php?attachmentid=67186&d=1359410043

mewlover22
July 13th, 2013, 07:44 PM
is there a way to add our own cards?

the__end
July 13th, 2013, 07:57 PM
is there a way to add our own cards?

If you can script i think it will be possible. But maybe Maruno will add a way where you can create cards with effects already included in the add-on. For example a card with an effect that makes you flip a coin or something simple like this. This way you could be able to add simple cards without scripting. ;)

Maruno
July 14th, 2013, 09:10 AM
If you have the demo, check the PBS folder. Each card set has its own txt file, in which all their cards are defined. New card effects require scripting.

p.claydon
November 23rd, 2013, 01:25 PM
hows the progress going looking forward to being able to play few tcg matches

Maruno
November 25th, 2013, 08:02 AM
I haven't worked on this mod since the last time I posted about it. It's still on my To Do list; I just don't know when I'll come back to it.

Zeak6464
November 25th, 2013, 08:38 AM
Can you write a guide on how to add it in ?

Maruno
November 25th, 2013, 08:55 AM
No, of course not. This mod doesn't exist yet. All I've got so far is a handful of half-complete scripts, and there's no way I'm going to provide support for them.

Worldslayer608
November 25th, 2013, 09:26 AM
So is this going to be something to add to Essentials so you can play both a classic pokemon game with a TCG kind of "mini" game? I am not sure if I am understanding this correctly, or if it is part of a project you are calling Essentials which is basically a collection of building blocks for different pokemon based game types.

Maruno
November 25th, 2013, 09:52 AM
I think the TCG is too big to be used as a "mini-game". My intention is for this to be more like a total conversion than an add-on, wherein any game using this mod will be a TCG game only. I will absolutely not support anyone wanting to use this as just part of a regular Pokémon game (even though it'll be possible to do so).

Once I get back into this, I'll rewrite the first post of this thread to have all the information and such.

Worldslayer608
November 25th, 2013, 10:01 AM
I think the TCG is too big to be used as a "mini-game". My intention is for this to be more like a total conversion than an add-on, wherein any game using this mod will be a TCG game only. I will absolutely not support anyone wanting to use this as just part of a regular Pokémon game (even though it'll be possible to do so).

Once I get back into this, I'll rewrite the first post of this thread to have all the information and such.

YAY! To me, Essentials is more about an array of core mechanics and I really like the idea of it basically being the building blocks for different approaches on Pokemon FGD than just a compilation of scripts to encompass something that is more of an all-in-one kind of set up. Once I get my 3D modeling down and a base of Pokemon and Characters I wanted to try and find a collaborative partner for setting up a 3D engine core. However, it is such a big undertaking XD.